Sculpt OS 26.10 releases [OSnews]
Sculpt OS 26.10 brings quite a few new features, like scalable cursors, support for UK keyboards, better webcam support, and more, but the real meat of this release is much tastier.
First, Sculpt 26.10 is the first version based on Genode’s custom microkernel instead of relying on a 3rd-party kernel. This kernel – designed from the ground up for the needs of Genode and Sculpt OS in particular – is not only more “micro” than any other of the microkernels supported by Genode, it also solves long-standing deficiencies concerning CPU scheduling and kernel-memory management. Sculpt OS finally stands on Genode’s own footing!
[…]
Finally, Sculpt OS 26.10 pays tribute to this year’s overall theme of “building bridges” by featuring our software development kit (Goa SDK) running directly on Sculpt OS without virtualization. This entails a wealth of tooling including GCC, Binutils, Git, Sequoia, Expect, Curl, man, Make, and CMake having landed on Genode. Although still young and not time-tested yet, it shows what’s possible today and allows us developers to gradually shift more and more development routine into this self-hosted environment, stressing the general-purpose qualities of Genode and motivating further optimizations.
↫ Sculpt OS release 26.10 announcement
This new release also completes the transition from XML to Genode’s own HID language for configuration, moves from VirtualBox 6 to 7, and upgrades a whole slew of its Linux-based drivers
How long do you need to hold down the power button to turn off a PC? [OSnews]
Raymond Chen published another story from the Windows development trenches, this time about what happens when you hold down the power button.
If you hold a PC’s power button for 12 seconds, it will turn off at the hardware level without notifying the operating system. This is a safety feature so that you can turn of the computer even if the operating system’s “Shut down” command isn’t working.
After eight seconds of the power button being held down, the Windows kernel realizes that the user is trying to do a force-power-off of the system, and it quickly takes a kernel dump that can be uploaded to the Windows Error Reporting service the next time you turn the system on.
↫ Raymond Chen
I’m a bit confused by these numbers, because I have never seen a PC take this long to power off when holding down the power button; usually it takes only a few seconds to do so, meaning Windows would never generate said kernel dump. I tried reading through the various ATX specification documents to find more information on this, but then I remembered I’m not an electrical engineer so I have no idea what I’m looking at.
The baseline is that ATX always provides standby power to the motherboard, and pressing the power button shorts the power button pin to ground, telling the PSU to power on fully. Pressing the power button if the computer is running tells the operating system to initiate a shutdown (although you can change this behaviour), but if you hold the button down for a certain number of seconds, it forces a power-off. So far, so good; basic information.
It seems that the length of time you need to hold down the power button to force a power-off is dependent on the motherboard in question, handled by a microcontroller or some other IC. Virtually every source I can find says this timing is set to about 4-5 seconds, which is quite a bit shorter than the number of seconds given by Chen. Perhaps motherboard manufacturers consider the 12 seconds to be too long, and just do their own thing, regardless what the ATX specification suggests?
What further complicates matters is that Chen details how the kernel dumps created after pressing the power button for 8 seconds do, in fact, get sent to Microsoft once the computer turns on again. In fact, he is one of the people who gets to see these dumps and respond to them, so obviously they are indeed rolling in. Does this mean there’s a huge number of computers out there that require you to hold down the power button for 12 seconds to force a shutdown that nobody’s ever seen?
These emergency kernel dumps are internally classified as “long power button hold” (LPBH) failures. One of the pieces of information recorded in these emergency kernel dumps is whether the screen consists entirely of black pixels. Those failures are sub-classified as “black screen LPBH”, and they go to a special virtual team for analysis. (I happen to be a member of this black screen LPBH team.)
↫ Raymond Chen
What’s going on here? Obviously, I’m not going to doubt Chen, so there must be something here I don’t quite understand or that I’m missing. The ATX specification might suggest 12 seconds, but could Windows perhaps adapt its kernel dump behaviour – dumping much sooner than 8 seconds – based on the motherboard it’s running on, maybe through information provided by the chipset drivers?
I would love it if someone more knowledgeable than me can help us unravel this small mystery.
I'm not even kidding; with Valve's AI Disclosures, they really have founded a wholly new mode of expression. You can reverse engineer how a developer feels about the disclosure by a close reading of the text, you can unfold the interior part of their skull and walk around in it. I bet it does suck. I'm honor bound to understand the why, and AI coding is growing normative in the space. It's hard to truly have beef with such a clannish, propagandized cadre. I mean, my doom is to understand why even a mortal enemy might dislike me; I routinely extend greater humanity to my utter foes than I have ever received in return. It helps that many of them have been cartoon villains, desperate to distract from their own monstrous conduct. Ask Max Temkin, or Scott Gaynor. I know exactly why they did it. I never lifted a finger, and I didn't have to. Vengeance is mine, saith The Lord.
New Comic: Mr. Yuk
Nautical Naughties [Penny Arcade]
I identified something really odd while I was out at PAX Aus; the normal cadence and tenor of the AI discourse began to vibrate at an especially high frequency. The conversation has always been fraught, but everywhere I turned the side which advocated for the tools was really spun up, aggressive, and emboldened, and I wasn't seeing the counterpunches I'm used to. My presumption is that it's connected broadly to the Anthropic IPO, which is a severe test of… well, it's a gut check for the whole ball of wax - the future they are attempting to sell.
Nautical Naughties [Penny Arcade]
New Comic: Nautical Naughties
Back To Back Rap Tracks [Penny Arcade]
There can be no question, at long last, that Soulja Boy has told them: he wants those cards. Everybody wants those signed cards and it makes sense. At a certain point it seems like the Federal government would just allow Wizards to just print the money directly. Skip a step, you know? Save everybody a bunch of time.
Back To Back Rap Tracks [Penny Arcade]
New Comic: Back To Back Rap Tracks
The Desert Bus for Hope charity stream has just begun! Head over and watch them drive the bus and raise money for Child’s Play!
If Gabe finished your Call of Duty campaign, it must be pretty fucking good. The last time around was functionally a playable meme that didn't line up with the milspec fantasy they typically offer, i.e., a three-story combat knife might fall out of the sky. He says that he spent way longer than strictly necessary inside of a Korean convenience store, and if they're anything like konbini you can spend a very very long time in one. Comparing a 7-Eleven in Japan to a 7-Eleven in Seattle is like comparing an eight ounce, medium-rare filet mignon to roadkill. Now, Gabriel would like to inoculate you against a specific type of content in the game but beyond that he grants whatever wastrel seal of approval he can muster.
New Comic: Devil Dogs
Bride of Spooktactular (OoO) from L99 Games [Penny Arcade]
Running ads is essentially broken, which is why so many sites have essentially become unusable especially on mobile. If I even tried to make the site look like that the designers wouild twist my head off like a bottlecap. So, we've been working with friends by and large to get ads up that we feel good about. Bride of Spooktacular fits snugly in that place.
I just really like Brad's designs; his obsession is with asymmetrical strategy games. I could list them for a very long time, but he's the king of fighting games you play with cards, whether you think the best version of that is BatlleCON or EXCEED because he designed both. Spooktacular and its Bride posit that terrors beyond mortal ken have burst through the screens in the theatre, and those are the entities you play as - devouring horrified moviegoers by the gobfull. Every one of the original's twenty monsters or the Bride's ten additional ones is essentially playing a different game while going after the same points, with ramifications for your opponents and even in some cases the way the game plays. Evil cars, a Queen and her Hive, zombified versions of our founding fathers... this is just where it starts. This Gamefound camnpaign also offers the Double Feature as an optional add-on, which are twenty new remixes of the original game's monsters that play completely differently or even invert their mechanics. Anyway, putting up his ads was the easiest decision I made all year. Only about a week left on the campaign... if you dare, etc.
(CW)TB
The Tri-Fold Augur [Penny Arcade]
Bungie is between Scylla and Charybdis, two words I spelled correctly on my first try. What are these two things? We don't need to go into all that - just know that they're both unwelcome, and you don't want to be there. Bungie's thing is to make its own weird and peerless shit, they've been doing it since the Mac, and maybe on some level there might be a perceived loss of face or identity associated with hauling somebody else's rope. Fuck allat. This is Live To Fight Another Day shit. Get the skunkworks popping while Lucasfilm keeps the stove warm and fends off Sony with a chair and a whip. The deal is bigger than paper, as choosing to slot work with the leading console manufacturer is just a good thing to have in your back pocket. And we already know Bungie would crush it: Renegades, their collab/crossover/Star Wars fic, was sick to death. Indeed, I propose that this is so cosmic, powerful, and correct that it represents an auspicious stellar configuration - something as good as Scylla and Charybdis, whatever they may be, are bad.
Child's Play Auction Item [Penny Arcade]
I love all of the incredible handmade items we get donated for the Child’s Play auction. We are less than a month away from this year’s dinner and I wanted to share a couple pictures of one of our awesome live auction items.
The Tri-Fold Augur [Penny Arcade]
New Comic: The Tri-Fold Augur
Mr. Gibb got hauled back into ARC by his eldest; that last link goes to his full report if you haven't seen it. Today's strip is a "war journal" of the kind of twisted, post-apocalyptic hellscape that you might experience in a food court.
Arc Raiders PvE Report! [Penny Arcade]
I quit playing ARC Raiders for a couple of reasons. The two big ones being I did not want to support their use of AI voices and I was sick of getting shot in the back and losing all my shit. My eldest son Gabe loves the game and never stopped playing. He told me about how they replaced their AI voice work with human actors and that they were testing a new PvE mode. He asked if I wanted to try a few rounds with him and since I am at all times desperately trying to avoid a “Cat’s in the Cradle” situation I said yes.
New Comic: ARC Resort
I got a text from the designer of Gundam Assemble about today's strip, which was very nice of him. His name is Justin Gary; we met during quarantine and he was one of the first non-family humans I saw in person. We played Solforge out on the porch. He's probably best known for creating Ascension, which was one of the heavy-hitter deckbuilders back in the day. I was already going to be interested in Gundam Assemble, a wargame using the cutest miniature gunpla you ever did see, but when I found out he had made the engine for it that elevated the offering substantially.
New Comic: Hexacon
Grand Admiral Pron [Penny Arcade]
My flight ended up being delayed, so in a strange and auspicious turn I happened to be ready to write the strip at the exact same time we typically do. Biddy Blas is constantly being tooled by others in the racing camp, hazed to within an inch of his life, and he certainly deserves a win. Does this constitute a win? I mean, maybe.
Grand Admiral Pron [Penny Arcade]
New Comic: Grand Admiral Pron
How curl was accidentally Turing-complete for nine months [OSnews]
From curl 8.12 through 8.16, config files could slice variable values and include other config files without an explicit depth cap. Together, these features let curl simulate any two-counter Minsky program. Under the usual idealization of unbounded strings and resources, this construction was Turing-complete.
Curl 8.17.0 added a five-level include cap that breaks this reduction.
↫ Nicolas Seriot
Neat.
The Microsoft building that was reportedly haunted [The Old New Thing]
Earlier this year, Microsoft sold what was known as Building 22, an office building just up the hill from what is now the Overlake Village Station stop on the light rail 2 line.¹ The build was demolished in late June, bring an end to a creepy piece of Microsoft history.
Building 22 began its life in 1982, when construction began on what was then known as the Koll Center Overlake business park. The building was owned and operated by The Koll Company, a commercial real estate company, and was scheduled to be completed in the middle of 1983.
In February 1991, Microsoft purchased the building from Koll, and by July it was occupied by the International Product Group.
During its time as a Microsoft office, Building 22 was believed by many to be haunted. The descriptions ranged from “it was creepy to say the least” to “the ghosts were quite benign” to “those ghosts were no joke”. Evidence included a phenomenon nicknamed “sick building syndrome” that made many people ill, elevator doors opening randomly, unexplained whistling or rattling sounds from the windows, occasional ghost spottings in the hallway, and at least one time that a car’s parking brake failed, causing the empty car to roll down the hill and collide with another car. Did a ghost release the brake? Who knows?
At the time, there was a Group Health hospital complex next door.² Somehow, the story got around that Building 22 had previously served as the morgue³ for the hospital, and I suspect that the ghost stories and the morgue theory developed in tandem. However, research by Microsoft’s own archives team could not find significant evidence that the building was ever a morgue, despite people insisting with certainty that their office was exactly where the morgue used to be.
Haunted or not, the new owners of the building intend to build apartments on the property. Were the ghosts sold with the building? Will the new apartment be haunted? We’ll let the future residents decide.
Bonus chatter: An old Channel 9 video introduces us to Building 22, ghost included.
Bonus bonus chatter: Another morbid reputation that Building 22 had was that it where teams were “sent to die”, meaning that they were transferred to the building as a final stop before the team was disbanded.
Some people nicknamed Building 22 “Hotel California” or “the black hole” because once you were assigned there, it was almost impossible to get out. You might get moved to another building, but somehow you ended up back in 22. One person who managed to escape quipped, “The longest two years of my career were the six months I spent there.”
Part of what contributed to the dreary reputation of Building 22 was that due to the steep slope of the terrain, half of the bottom floor was underground. One person who had an office on the bottom floor said that it was comfortably cool in the summer, but freezing cold in the winter.
Another quirk of the building was that there was bridge from the uphill side directly into the second floor. People on the first floor whose offices were in the shadow of the bridge nicknamed themselves “trolls”.
¹ Not to be confused with “The Village at Overlake Station”, a residential complex about four blocks from Overlake Village Station.
² The property was sold in 2009 and is now the Esterra Park development.
³ An alternate rumor was that the building used to be the psychiatric ward for the hospital, and the room above the atrium was allegedly the padded room for people at risk of hurting themselves. Some people reported hearing screams from the padded room area.
The post The Microsoft building that was reportedly haunted appeared first on The Old New Thing.
Rewriting Copyright Law for Generative AI Would Hurt Everyone [Deeplinks]
In courts across the country, publishers and creators are suing large AI companies for training generative AI models on copyrighted works. It’s easy to see these cases as a David-and-Goliath showdown between authors and publishers fighting for a cut of Big Tech company profits. But this fight is actually much larger. It affects billions of people who aren’t represented in the case at all, including researchers, artists, activists, journalists, people with disabilities, and anyone who accesses and shares content online.
That’s why EFF is stepping in to defend the public’s rights in these cases. Today, EFF filed an amicus brief in In re OpenAI, explaining how the court’s ruling on fair use could impact people worldwide. If fair use gets narrowed, it will impede work that benefits the public, like medical research and investigative journalism, and even limit access to privacy protection tools.
Let’s be clear: creators and workers deserve support as AI changes their fields, and Big Tech companies must be held accountable for the harms they cause. But giving copyright holders more control over the web won’t accomplish either of these goals. If the plaintiffs prevail in these cases, courts would have to rewrite copyright law in ways that hurt everyone except powerful media and tech companies.
Copyright exists for one reason: to stimulate creativity and innovation in service of the greater public good. Unfortunately, the plaintiffs in this lawsuit are arguing to limit everyone’s fair use rights, in ways that would thwart the basic purpose of copyright. The harms of shrinking fair use will go far beyond generative AI, impacting everyone.
Initial speculation that AI models would be infringement machines, churning out works highly similar to those on which they were trained, has proven unfounded. And courts have already found fair use in cases where copyrighted works were used to train generative AI models, recognizing that training uses those works for a fundamentally different purpose.
Plaintiffs in these cases argue that, even if the use is transformative, using their works to train AI is still unfair, because the AI models could generate new, non-infringing works that might compete with plaintiffs’ own works. They also argue that scraping or downloading the data without permission—or in some cases, from websites containing infringing copies—was independently infringing and/or rendered any subsequent uses of that data unfair.
These arguments would put beneficial research and reporting at risk. First, if copying without permission rules out fair use, the law will never protect transformative uses that benefit us all. Researchers, journalists, and other watchdog groups gather information the same way AI companies do—but they do it to serve the public interest, and often to hold Big Tech itself accountable. For example, journalists and nonprofit researchers have used “crawling” or “scraping” to investigate potentially anticompetitive practices by tech companies, and research misinformation and hateful content posted on X. Their data acquisition techniques are virtually identical to those used by AI giants—but they lack those companies’ deep pockets.
Requiring users to show that copyrighted material was lawfully obtained would also threaten everyday internet use. As EFF’s brief explained, that requirement would “cast legal doubt on the billions of copies we collectively make every day through routine online activities like opening emails, clicking on an embedded link, visiting websites, sharing pictures, streaming music, and watching videos. All of this activity requires intermediate copying.”
Fair use is what lets us all use the internet without being compelled to track the source of every image, video, and article that we click on, and make sure the rights are all cleared.
Additionally, while rightsholders are understandably concerned about competition from AI generated works, copyright law exists to promote new creation, not protect authors who published first. Under the plaintiffs’ theory, no one could stand upon the shoulders of giants. Copyright could prevent people from writing new books inspired by themes in a favorite novel or genre, or prevent academic researchers from publishing literature reviews that distill insights from prior research—simply because readers might prefer those new publications over those that came first.
Finally, general-purpose AI models are neither designed nor usually used to create works targeted at any particular market. These models have been used to generate new insights and tools for medicine, science, journalism, art, and accessibility. For instance, an AI-powered tool called Be My AI uses Open AI’s GPT models to provide visual descriptions for people who are blind or have low vision. Generative tools have also accelerated scientific research, and researchers have used these tools to develop new medical treatments and medications for conditions previously thought to be incurable.
Some creators and publishers argue that AI developers should just get a license. But requiring permission for every work used would give the largest companies massive advantages over small competitors and impede academic research. As Professor Lawrence Lessig recently noted:
If all training requires a license, then none but a handful of tech giants will be able to afford the costs of training. That’s not because authors are greedy but because the copyright system is the least efficient property system known to man.
Moreover, creators are unlikely to benefit from these licensing arrangements in many cases. Media and entertainment giants have exploited the imbalance between themselves and underpaid working artists for decades. Trying to help creators by giving them more rights under copyright is, as Cory Doctorow has written, like trying to help a bullied kid by giving them more lunch money for the bully to take. Artists aren’t getting good deals from record labels or publishers now; there’s no reason to think these companies, which already own the copyrights, will treat artists more fairly once they control the data that powers AI.
AI technologies will affect all of us, and copyright law is ill-equipped to address many of these consequences. The rules governing these technologies should be rules that serve the public—not just the small number of companies that can afford to litigate copyright battles for decades, or settle for billions.
[Filler] Happy Halloween 2026! [Twokinds]
Comic for October 30, 2026
Why VPNs Are Worth Defending [Deeplinks]
Developers of virtual private network (VPN) apps are reporting that their products are again being pulled from Apple’s App Store in Russia. This is an unacceptable crackdown on a vital tool to protect privacy and speech online.
Why? VPNs give people a way to control their own online activities. When you visit a website through a VPN, that website only sees the VPN server's location (well, IP address) rather than your actual location. It's like sending a letter through a P.O. box so the recipient doesn't know where you really live. It can also disguise where you’re accessing information from, which can make it possible to access information banned by your government.
This is an unacceptable crackdown on a vital tool to protect privacy and speech online.
Going after tools that give people the space to communicate and access information freely is a common tactic from the totalitarian playbook. This latest demand comes after several steps the Russian government’s taken to surveil speech specifically on Apple products. In 2024, the Moscow Times reported that Russia’s state media watchdog, Roskomnadzor, went after VPN apps on the Apple App Store, after banning access to Western social media platforms and blacklisting opposition media sites. Russia then blocked Apple’s FaceTime software in 2025, according to Apple Insider.
Bloomberg also recently reported that the Russian government has added Apple and Microsoft to its state surveillance registry. This gives Roskomnadzor access to local users’ correspondence, Apple Insider reported, and puts both companies in a position to turn over customer information to the country’s security services as required.
With government control encroaching on their devices and less access to tools that give them alternate methods, people in Russia are left with shrinking options to communicate online or find information that isn’t state-sanctioned.
While Russia’s actions offer a more extreme vision of what happens when the government tries to enforce speech rules by attacking vital privacy tools, it is far from the only government doing so. Several states in the U.S., bent on making it difficult to circumvent invasive age-gating laws, have suggested banning VPNs—either to access certain content or in some cases to simply ban them outright. EFF has publicly (and loudly) criticized these proposals, because going after VPNs is a dangerous step down the road of censorship.
Attacks on speech and privacy online are deeply troubling, no matter where they happen. What those in power may see as a “loophole” in their invasive laws is actually an expression of user control. We’ll continue to speak out when we see governments going after them to take that control away.
Friday Squid Blogging: Bigfin Squid Off California Coast [Schneier on Security]
Neat video:
The sighting, announced September 2, marks the first time anyone has spotted a live bigfin squid, which belongs to the Magnapinna genus, in the northeastern Pacific Ocean.
As usual, you can also use this squid post to talk about the security stories in the news that I haven’t covered.
I've been watching short videos about training dogs, and really opening my eyes, and it helps when working with Claude. Always try to be positive, until there is behaviour you have to correct and then yank the leash, and when they do the right thing reward them with a treat (or whatever passes as a treat).
I'm not even kidding; with Valve's AI Disclosures, they really have founded a wholly new mode of expression. You can reverse engineer how a developer feels about the disclosure by a close reading of the text, you can unfold the interior part of their skull and walk around in it. I bet it does suck. I'm honor bound to understand the why, and AI coding is growing normative in the space. It's hard to truly have beef with such a clannish, propagandized cadre. I mean, my doom is to understand why even a mortal enemy might dislike me; I routinely extend greater humanity to my utter foes than I have ever received in return. It helps that many of them have been cartoon villains, desperate to distract from their own monstrous conduct. Ask Max Temkin, or Scott Gaynor. I know exactly why they did it. I never lifted a finger, and I didn't have to. Vengeance is mine, saith The Lord.
Reproducible Builds (diffoscope): diffoscope 336 released [Planet Debian]
The diffoscope maintainers are pleased to announce the release
of diffoscope version 336. This version
includes the following changes:
[ Chris Lamb ]
* Drop Recommends: guix from the diffoscope-minimal package.
(Closes: #1114739)
You find out more by visiting the project homepage.
Highly recommend the interview between Scott Galloway and Heather Cox Richardson. Quite a combination of minds. Don't skip to the end but don't miss it, they explain how blogging allowed them to route around the gatekeepers. That's the point. But imho you have to leave the door open to those who are inspired by you, and Substack isn't the best place for them. Please keep your ears open to new less tech industry ways of getting your ideas out. The bigco's haven't just screwed up the political system, they've also screwed up the web. The web needs all our help as does democracy, and the two imho are closely related.
Matthew Garrett: Getting Google Cast on my Soundbar [Planet Debian]

I have a Samsung Q800A soundbar. It ships with built-in support for the Apple Airplay protocol, but I’m not really an Apple kind of guy so that’s never been particularly helpful for me. So, instead, I have a Chromecast Audio plugged into it via TOSLINK, and that works fine - except for the fact that there’s no way to explicitly pick TOSLINK as the audio input. Instead, there’s a “Digital In” option that refers to both the optical in and eARC input from a TV. Not inherently a problem, given I’m unlikely to be watching TV while listening to music, but my TV is a Samsung Frame, a device that’s intended to display art whenever someone is standing nearby, and which infuriatingly generates an eARC signal even if it’s only in art mode and isn’t going to make any noise. This switches the soundbar away from optical and I get sad. I could plug a video cast device into the HDMI port on the soundbar and cast audio to that, but then the art would get replaced with album covers whenever I’m playing music, and again that’s not quite the ambience I want. Still, none of this is that important.
Until I learned that the Australian version of the soundbar does have Google Cast support. The firmware image was downloadable from Samsung support, so I grabbed that, but unfortunately found that it was encrypted. However, if I downloaded the firmware image for the US model, the encrypted blob was identical - there’s no difference in the underlying firmware between the two of them. So, how come one has support, and the other doesn’t?
I’d need an unencrypted copy of the firmware to have a real chance of figuring this out, and the easiest way to get one was to just run an ebay watch for a broken model of the same series. Once I had one in my hands I used hot air to remove the eMMC storage from the device, cleaned up the chip, and then stuck it in one of these adapters to read it on a local system. Samsung uses a weird in-house filesystem called VDFS4 on some of their devices and this was one of them, so I needed to cobble together a kernel that was compatible with their source dump for this device (not all VDFS drivers seem to be able to read all VDFS filesystems), but eventually I had it all extracted, and then I got distracted by other stuff, so let’s fast forward to this week.
Samsung makes use of a modified version of the Android Debug Bridge called sdb, which is included in the Tizen SDK. The firmware showed that this device had sdbd on it, and it would be executed if a network device called “huart0” was plugged in. Samsung does, thankfully, provide the source code for their GPLed components, so I could dig through that to discover that drivers/net/usb/usbnet.c had a bunch of references to huart (which apparently stands for “HyperUART”). If CONFIG_SAMSUNG_USBNET_HYPERUART_IFNAME is set, and if the ethernet device is using either the asix or ax88179_178a drivers, and if “/opt/etc/HyperUART_IP_Addr”1 isn’t just “0”, it sets the interface name to “huart0” and in turn triggers sdbd startup. So now I just needed to figure out how to set /opt/etc/HyperUART_IP_Addr to something else.
Some digging revealed a binary called wap-factory that referenced the file, which then led to /usr/share/mobile-mgr/jsons/com.samsung.audio.waapp-verification-test.json which mentioned a “SetUartOnOff” call, which brought me here2, which led me into a bit of a rabbit hole about the Samsung WAM protocol. Long story short, you connect to either port 55001 or 56001 and make two requests over the same connection:
|
|
and then plug in an asix chipset ethernet adapter into the USB
port (which on mine is micro-B, so I needed an OTG adapter), and
suddenly it’s sitting there on 192.168.250.250 and will speak
sdb to you. sdb root on switches it into root mode,
and sdb shell now gives you a root shell. I was in,
and now I could investigate what was happening.
First up, there was a process called “com.samsung.audio.google-cast-control-app” running, which seemed like a good start. Unfortunately it wasn’t doing anything. After some tracing I found that it was making a call to Samsung at startup time, and getting back a response telling it that Cast support wasn’t available. The request (which was helpfully dumped to stdout when I ran this by hand) included the country code, in my case “US”. Repeating the request by hand with curl and changing the code to “AU” told me it was supported, so now I needed to figure out how to get the soundbar to believe it was Australian. Some digging showed it was reading this from a config variable called db/comss/countrycode, and running
|
|
got me past that gate. Now, however, it was complaining that it couldn’t provision a key. /usr/apps/com.samsung.audio.google-cast-control-app/shared/res included a bunch of encrypted blobs and an app called teeStoreKey.elf, and tracing com.samsung.audio.google-cast-control-app showed it was trying to call that, but it seemed like it was failing with a permissions issue. Running com.samsung.audio.google-cast-control-ap directly as root triggered key provisioning successfully, and a few seconds later the rest of the Cast API came up and I could talk to port 8443 with standard Cast API calls. Unfortunately it still wasn’t working as a Cast device, though - it wasn’t advertising itself via mDNS and so nothing could see it. Querying the /setup/eureka_info endpoint gave me a clue - the ’tos_accepted’ field was false. Normally this would be set as part of initial device setup, but the Samsung app wasn’t doing that because it didn’t think the device had Cast support. It turns out that POSTing some json with {“tos_accepted”: true} to setup/set_eureka_info made it work, and suddenly there was an additional Cast device available to me.
(Update: I realised I didn’t mention anything about why it was doing key provisioning in the first place! The Cast protocol doesn’t enforce cryptographic identity as such, but Google’s reference client implementation which is what almost everything uses verifies that the device is presenting an identity that chains back to Google. Unsurprisingly they don’t want the private key material to be easily extractable and used to produce clone devices, so it’s all supposed to be encrypted and only accessible to some sort of trusted execution environment, which is why keys here need to be loaded into Trustzone and never be visible in the clear to the main OS)
Mission accomplished. Unfortunately the device vanished from my Smartthings home aferwards, presumably because there’s a mismatch between its reported country code and my account country. To get around that I’d somehow need to get com.samsung.audio.google-cast-control-app to either change the query without changing the global device country, or to ignore the response from Samsung (it does this every 24 hours, ugh), and that’s made more annoying by the fact that this thing will only execute signed binaries. Although, weirdly, one of the signed binaries shipped is a full Python interpreter, so if I cared enough I could probably cobble together enough Python to execute arbitrary binaries. I currently don’t.
More modern soundbars don’t implement the listener on port 55001 or 56001. I don’t know how you get sdb working on them.
[$] Removing binder.c [LWN.net]
The final talk at Kangrejos 2026 was about the removal of the C implementation of Android's Binder driver, the primary interprocess communication mechanism used on Android devices. Carlos Llamas announced that he had deleted the C code to general applause, and then shared some insights about what went into replacing the C implementation. Alice Ryhl, who has worked on the Rust implementation for some years, added her own thoughts about what the most difficult and interesting parts of the transition were.
Getting Smarter, Not Just Faster [Radar]
This event summary was created by Claude with light editing by Tim O’Reilly, based on a transcript of the event.
On October 15, 2026, Tim O’Reilly hosted Andrew Odewahn, CTO of O’Reilly Media, for an hour-long episode of Live with Tim O’Reilly, the interview series streamed live on the O’Reilly learning platform. Andrew has been at O’Reilly for many years, starting as an author, then building tools for the company’s platform, then eventually as CTO and head of engineering. Over the past year, his team has been building what the company calls Expert Intelligence, a suite of tools that connects an AI agent to an organization’s own systems, gives it a skill file describing how to reason about what it finds there, and grounds its analysis in the practitioner frameworks of the O’Reilly library. Andrew described the work in a recent Radar piece, “Building Organizational Intelligence.”
Tim and Andrew’s interview was organized around a presentation in two parts, the first on the research agent and the second on the system Andrew’s team built for reviewing what it produces, with discussion in between and audience questions throughout.
Tim framed the conversation by asking a question he said Andrew’s work helps to answer: Most of the AI story is about efficiency, doing the same work faster. What does it look like for an organization to get smarter?
Andrew’s research agent emerged from a personal need rather than a strategy. He wanted to know the status of a project, for example, how long a migration from RabbitMQ to Pub/Sub would take. This is the kind of question every engineer dreads but every engineering leader has to answer. He also had a broader concern. A single person being good at AI isn’t the same as an organization being good at it.
He built his agent in four steps. He mapped the organization’s information systems as a hierarchy, connected them via MCP, wrote a skill telling the agent how to use them, and finally added the Expert Intelligence layer.
The map of the sources of truth in the engineering organization’s workflows was what made the rest work. Andrew put them in order and explained to the model how they relate: Strategic goals and feature priorities live in Productboard. Those become epics, sprints, and stories in Jira. Stories become code in GitHub. A service catalog describes the roughly 300 services that make up the O’Reilly platform and who owns them, and observability tools show how those services perform against their SLOs. The skill also had to encode local quirks. Some teams mark an epic as finished with an end date, while others consider it done when every ticket is closed. Andrew also told the agent it was a research agent, not a coding agent, and that its job was to write reports.
Connecting everything through MCP was, in his words, “the most completely tedious step of the whole process.” Productboard had no MCP server at the time, so he wrote a wrapper. Later, when Tim asked how another company could repeat the work with a different set of tools, Andrew suggested starting from the vendor list. Export it from your procurement system, ask the model what products those vendors make and which would hold information relevant to the questions you care about, and have it put them in order. O’Reilly product managers are now turning this process into a skill for the forthcoming Expert Intelligence Skills Hub.
One audience member asked whether MCP was really the right tool for internal knowledge, compared with semantic search. As Andrew pointed out, sometimes anything is better than nothing. Ultimately, what you want is to give the model the ability to search across your systems.
The center of the presentation was a before-and-after comparison of the particular use case that Andrew had previously written up in his “Building Organizational Intelligence” article. An engineering manager asked Andrew to hire another engineer, and Andrew had his reporting and analysis agent make the hiring case. The first report covered the five-person team that manages content and metadata, the 10 tier-A services it owns along with its B and C services, the status of the Pub/Sub migration (64% complete), and the full backlog. It concluded that the team had a capacity problem and should probably hire. Andrew called it useful and very detailed. . .“maybe overly detailed.”
He then connected the agent to Expert Intelligence, asked it to act like a consultant, and ran the analysis again. The new report came to a very different conclusion. It opened by saying that the team’s operational overhead problem was “structural, not a staffing deficiency.” When it consulted Expert Intelligence, the agent brought in the concept of toil from Google’s Site Reliability Workbook. Toil is the manual, repetitive, automatable operational work that scales linearly with a service. The reporting and analysis agent used this notion to separate the team’s backlog into toil and the work people actually wanted to be doing. It recommended a structured toil audit before the next planning cycle, an explicit toil-reduction target, and treating runbook ownership as a first-class engineering artifact. Andrew said the team followed the recommendations and closed a substantial part of a backlog that had been sitting on everyone as a cognitive burden.
The report went on to cite Jim Highsmith, a signer of the Agile Manifesto and author of Wild West to Agile, to argue that the team’s technical debt was compounding. Andrew explained how that differed from the usual management advice:
A lot of the time when you read these high-concept frameworks, they’re like eating your broccoli. I should really be doing that. But what made this really interesting is that it pulled out a specific project we had, the Django upgrade, and put it within the context of this broader framework. It wasn’t just, “here’s an abstract principle you ought to be applying.” It’s “here’s your backlog, and here’s a specific example.”
A second analysis looked at services that crossed team boundaries. Drawing on microservices experts and Kent Beck’s work on coupling (see Tidy First?), it diagnosed the video metadata service as a complicated-subsystem problem rather than a boundary problem. In this version, Andrew had the agent pull out quotations, attribute them, and link to the source text. The resulting analysis was remarkably effective. The company has since retired a couple of systems. “I don’t need LLMs adding code,” Andrew argued. “I want them reducing it.”
Andrew said the part that surprised him most was the reaction from colleagues. His earlier reports were data dumps. Readers couldn’t tell where any given claim came from, and as a result they were much less actionable. When the analysis cited experts that engineers knew from their own work, the documents became, as he put it, “much more approachable, much more human,” and people engaged with them far more deeply.
Tim broke in to put the demonstration in context. He contrasted it with the view that models are now smart enough that you can simply tell them to do something and let them rip, an approach we hear a lot about from vibe coders and those arguing for “dark factories.” Tim argued instead for a return to expertise.
He cited a post published that day by Felix Rieseberg of Anthropic, “How to Be More Ambitious: A Tutorial for Humans with Models,” which describes four kinds of ambition when working with models: speed, altitude, depth, and range. Most discussion of AI’s economic value is about speed, getting the same work done in less time. In Tim’s reading, Andrew had gained altitude (thinking about the outcome rather than the tasks) and depth (approaching the problem the way a field-leading expert would) simply by invoking the experts.
Tim then offered a metaphor he has been developing for a while, of AI programming as a kind of magic spellcasting. In the Marvel comic books and movies, Doctor Strange opens his spells by invoking some source, with words like “by the power of the dread Dormammu” or “by the hoary hosts of Hoggoth.” Andrew, he said, was doing the same thing, saying in effect, “By the power of Kent Beck, I want you to think differently about this problem.” Even where Andrew didn’t name an expert, as with the SRE workbook, simply pointing the model at the expertise embodied in the O’Reilly publishing canon raised the bar for what the agent produced.
Tim described this as using human expertise as a focusing mechanism, and connected it to his argument that LLMs are better understood as a medium we create with than as independent intelligences. He also pushed back on the idea, often drawn from “The Bitter Lesson,” that models will simply get better and human expertise will stop mattering. Andrew, he said, had found a particular way that it matters.
Andrew took up the metaphor. His own first prompt, he said, had been “Be snobby. Go find these great resources and look at them.” He wants to hand the model canonical works in a field, like Designing Data-Intensive Applications, and tell it “these are the ways I want you to think about it,” rather than accept whatever the model comes up with first. He compared it to business school, where much of what you learn is a set of frameworks for organizing facts.
Tim argued that models don’t do their best work unprompted. Watch their chain of thought when they search for information, he said, and you may see them settle on some random file from the internet rather than canonical sources. Even with a frontier model like Fable, his own experience has been one of false starts and errors, a model brute-forcing its way to a solution rather than necessarily knowing how to approach it.
Andrew had a story from a few days earlier. He asked his agent to review incentive plans for the engineering and product teams.
The data that came back was, “according to the company Robusto (which I’m sure is a great company), this is the framework, and you should really be doing what they’re doing.” I’m like, “What is Robusto, and why am I seeing this?” And I realized, oh, I’m not connected to the VPN. So I hooked it up, and suddenly it was, “According to Harvard Business Review, these are the different ways you should be designing these incentive programs.” This was a very powerful model. But it keyed off the first thing it found and said, “This is the way I’m going to think about the problem.”
Tim raised an economic dimension. He pointed to instructions in Anthropic’s Claude system prompt that limit how much the model may quote from any source, and read them as a sign that AI companies want to avoid paying for content. The result, he argued, is that models can’t draw on the best material available to them specifically enough and too often fall back on generalities. He called this an early form of enshittification in AI.
O’Reilly takes the opposite position. Andrew explained that the company applies the royalty model it already uses for O’Reilly Answers. Material returned through the Expert MCP server can be cited, and authors are paid royalties on it, so that expert content has a market and earns a return.
In response to an audience question, Tim and Andrew noted that Expert Intelligence is in prerelease with a group of founding partners while O’Reilly works out its economics. Interested organizations can request access through the product page.
The second part of Andrew’s presentation dealt with what happens after the agent writes a report. Decisions need consensus, and with AI-generated analysis people need to check that the model hasn’t keyed off something unimportant, out-of-date, or misinterpreted. “The AI can identify all the trade-offs,” he said, “but people still need to make the decisions that matter.”
His team first circulated reports as Google Docs, but they ran into two problems. The most interesting part of a document under review is usually the comment thread, and because at this time, O’Reilly company policy doesn’t allow MCP connections to Google Docs, the agent couldn’t see it. And when Andrew asked the model to fold the discussion back into the document, pasting the result wiped out the comments.
Doug Hogan, an O’Reilly engineering director, built an alternative on top of Git and GitHub that Andrew called SuperAnswers. (Andrew joked that this was why he isn’t allowed to name things.) Documents live in a Git repository, discussion lives in GitHub Discussions, and every change is versioned. Andrew can ask his agent what the consensus is on a project, have it incorporate comments into a new draft without losing history, and later reconstruct when a decision was made and what people knew at the time. The same record lets him generate the derivative documents a decision requires, such as scope statements for engineering, product, and design teams, or a meeting agenda. A graph view clusters the topics people are discussing and flags decisions that are still open.
Tim summarized the whole system as a research assistant connected to the organization’s sources of truth, a layer of outside expertise to put its findings in context, and a shared, versioned discussion that becomes an evolving store of organizational knowledge, which makes the AI a more useful coworker. Andrew agreed and said he would like to open-source SuperAnswers, which he described as a thin layer on top of Git.
Andrew also pointed out that the fragmentation he was addressing isn’t limited to engineering. Sales teams have their information spread across systems like Salesforce, 6sense, and Gainsight, and every function has the same need to pull those threads together. Tim added that tool access is uneven across the industry and always has been. Claude produces better PowerPoint than Google Slides, Gemini the reverse, and organizations have to capture that kind of knowledge about their own toolsets.
An audience member named Thomas worried that workers now talk to AI rather than to each other, and that work disappears into “that AI hole.” Andrew said his preference for keeping everything in Git is partly an answer to that, since it gives both humans and AI a central place to find and reconstruct past work. But his larger interest is in humans talking to humans in a way that AI supports. He described a category of questions he never used to ask:
I knew, if I ask this question, somebody’s got to go off for two weeks and compile all this stuff from all these different systems. Now I can gather it in a few minutes. Maybe some of this is throwaway, but it’s not bad if it’s cheap.
In response to that “throwaway” comment, one audience member wrote in the chat: “This is not throwaway work, Andrew. It is a product lead that changes the value proposition in a positive direction. Shit hot, bro.” Tim couldn’t help but read that one aloud!
Asked by Tim what he got wrong, Andrew conceded that he didn’t think early enough about how people would review and respond to AI-generated documents. People don’t want an AI-generated data dump to wade through, and they extend AI no benefit of the doubt. If an AI-written report gets one small fact wrong about Kubernetes operators, a reader is likely to dismiss the whole document. AI tools have to be understood as marshaling and presenting evidence, not making decisions. “These need to support your analytical capacity, not replace it.”
Tim connected that answer to concerns about deskilling. He described a fine-tuning project he attempted with Fable to train a small model to write more like him. He wanted to understand each stage rather than letting the model run, but it never explained them, and the training run failed. In part this was because the model asked him to provide samples of his writing, but it didn’t give him enough grounding on what a really good training dataset would look like, so the samples weren’t targeted enough. They were too long, and when Fable chose the short fragments it actually needed, it didn’t do an ideal job.
When Tim tried the same project with O’Reilly Tutor, a tool still in development, it sent him to read an O’Reilly resource on what a good training set looks like, and he realized where he went wrong. Tim compared the kind of deskilling that can happen when people just turn the work over to AI to people who can no longer read a map, or who call a plumber for a simple fix they could do themselves in 30 seconds if they only knew a bit more about how things work. He argued that everyone has an obligation to keep learning alongside the tools they use.
An audience member named David, a laid-off engineer looking to reskill, made a similar point. We used to know things, then we searched, and now we skip the search and just ask for the answer. He asked how to build real depth. Andrew suggested picking a project and working through every aspect of it, asking AI to act as a tutor (he’s relearning calculus that way) and keeping a book open alongside, or taking advantage of instructor-led live events on fast-moving topics.
The conversation ended with the difference between an AI system that simply makes an organization faster and one that makes it better at deciding what to do. In Andrew’s account, getting better at deciding what work needs doing depends on three things the models don’t supply on their own: a map of where the organization’s knowledge lives, a body of expertise that people trust, and a place where the humans can argue with what the AI produced.
You can watch full episodes of Live with Tim O’Reilly, including this one, on the O’Reilly learning platform, YouTube, or wherever you get your podcasts.
This Week in AI: Agents Rewrite the Rules [Radar]
AI agents dominated the news this week, from security exploits that unfolded in hours to new tools that let agents shop, manage transactions, and conduct scientific research. On the latest episode of This Week in AI, host Vicki Reyzelman of Akamai examined how these developments are testing existing security practices and creating new opportunities for businesses and researchers.
AI is changing how attackers find and exploit vulnerabilities. A supply chain attack involving ARTEX, an open source agentic AI penetration-testing framework, helped attackers reach more than 2,250 Microsoft 365 tenants through a ConnectWise compromise. The incident raised concerns about OAuth authentication and the limitations of conventional identity protections when autonomous agents interact with enterprise systems.
A more immediate threat came from PHP2Shell, two vulnerabilities rated 9.2 on the CVSS severity scale that could allow attackers to execute code on vulnerable web servers without authentication. CISA urged immediate patching following the October 21 disclosure. Researchers also documented attackers using AI agents to obtain password hashes and MFA secrets from a European government system within two hours. The speed of exploitation leaves organizations little time to investigate threats before responding, especially smaller businesses with limited security resources.
Security teams can no longer rely on manual review alone. They need automated detection and response, tighter access controls, and network segmentation to limit what compromised agents can reach. But monitoring autonomous agents is challenging. Researchers from METR and Redwood Research identified weaknesses in an earlier version of OpenAI’s internal monitoring system, including one that could allow hundreds of agent actions to be concealed. OpenAI says it has patched vulnerabilities affecting production safeguards, although the researchers haven’t independently evaluated those changes.
The debate over AI safety is also extending beyond technical safeguards. Anthropic proposed federal AI safety legislation, while Google DeepMind employees resigned over the company’s military AI work. Both developments illustrate the growing pressure on AI companies to establish clearer rules for how their technology is developed and used.
Retailers are taking different approaches to autonomous shopping. Walmart introduced an Agent Gateway that lets approved agents shop within customer-defined spending limits and approval requirements. Amazon has restricted some third-party shopping agents, while banks including Morgan Stanley and Bank of America are limiting agent access to customer accounts. The disagreement goes beyond security. Retailers that depend on advertising and product recommendations have an incentive to keep shoppers on their websites. As more purchases begin with agents, companies will have to reconsider how they maintain customer relationships.
Anthropic is testing a different approach to agent oversight. Claude’s auto mode is becoming the default for Pro, Max, and Team users, allowing automated checks to approve routine actions and block risky ones. Anthropic also contributed its Agent Skills format to the Agentic AI Foundation under the Linux Foundation. More than 70 platforms have adopted the standard, with over a million skills published. Shared formats could make workflows easier to reuse across products, although organizations still need to control which actions those workflows can perform.
Growing agent use also requires more computing capacity and electricity. We discussed NVIDIA’s $164.5 billion in commitments and guarantees supporting AI data centers, including an Ohio campus that SB Energy is building for OpenAI. Power shortages have delayed other projects, including a proposed data center in Essex, where grid operators couldn’t promise adequate electricity until the 2030s. Meanwhile, Amazon is backing a 960-megawatt nuclear project, and Brookfield and NextEra are pursuing a $100 billion AI hub at a former nuclear site in Kentucky. However, money and chips alone can’t solve AI’s infrastructure constraints when electricity generation and grid capacity take years to expand.
Healthcare offered a more encouraging view of AI’s capabilities. A study of Microsoft’s MAI Diagnostic Orchestrator found that it correctly diagnosed 83.2% of difficult medical cases, compared with 36.1% for generalist physicians. The comparison didn’t include specialists, and the system still needs clinical validation. The research nevertheless suggests AI could help physicians investigate difficult cases and identify conditions they might otherwise miss.
Drug discovery could also benefit from more capable agents. OpenAI announced its acquisition of Orchestra Bio, a platform that coordinates drug development workflows, with plans to integrate it with Rosalind, its life sciences research tools. The combination could help researchers manage experiments and collaborate more efficiently during a development process that typically takes 10 to 15 years from initial discovery to approval.
An Anthropic protein-design experiment provided a concrete example of faster early-stage research. In 64 hours, an Anthropic model generated 318,484 candidate protein designs targeting scorpion venom. Researchers from Adaptyv Bio and Twist Bioscience subsequently tested 211 designs and identified 17 that bound to toxins. The researchers haven’t established whether those proteins can neutralize venom, but the experiment showed how AI can rapidly narrow a vast search space before scientists begin more expensive laboratory testing.
We’ll be back on Monday, November 2, for another episode covering the latest developments in AI research and applications. You can catch previous episodes on YouTube, Spotify, Apple, or wherever you get your podcasts.
Free Software Directory meeting on IRC: Friday, October 2, starting at 12:00 EDT (16:00 UTC) [Planet GNU]
Join the FSF and friends on Friday, October 2 from 12:00 to 15:00 EDT (16:00 to 19:00 UTC) to help improve the Free Software Directory.
30 years of XaoS: Past, present and future [Past Events]
September 19, 2026 from 14:30–17:30 CET
The Big Idea: Chris Gerrib [Whatever]

Bank robbers have always made for exciting characters, and author Chris Gerrib got inspired by a real life robbery while working at a bank. Hop in your getaway car for a drive through the Big Idea for The Third Person in the Room.
CHRIS GERRIB:
“They were alive when I left them.”
That’s the first line of my new book The Third Person in the Room, and figuring out what happened after the speaker left is the through-line of this book.
Like many authors, and unlike Our Host, I have a day job. For many years, that job was as the head of IT for a community bank. Fairly early in my tenure at that job, one of our branches got robbed. It was a small building, about the size of a standalone fast-food joint, and on a wintry Friday night a masked man with a gun walked in. He marched the two employees into the back room and walked out five minutes later with around a quarter of a million dollars in cash.
As I was pulling (useless) video from our new digital camera system that night, I thought that if you only committed one such robbery a year and not in the same area as where you lived, you could make a nice living. So thus life handed me a Big Idea.
Unfortunately, unless I was going to write a very short story, something needed to happen to cause complications. Then, during the banking crisis of 2009, my employer started to buy other banks. These were all smaller than us and failing. I saw a lot of shenanigans going on at those banks. At one of them, we had the police put out a BOLO on a former employee who we thought was skipping town after defrauding his institution for mid-six figures.
(The real story wasn’t as exciting- no fraud – just a lot of sloppy bookkeeping and questionable banking practices.)
My previous mystery novel, Strawberry Gold, was set in a fictional small Central Illinois town. This town was conveniently a few hours’ drive from Saint Louis, Indianapolis and Chicago, thus making a nice base for my fictional robber. Small towns with quirky characters are interesting to write about, and I didn’t have to reinvent one.
My second Big Idea came much later in the drafting process. I am a pantser, AKA “discovery writer” which means I don’t start with an outline. I was having a real problem with my main character, Mr. Bank Robber. Then one day it hit me – I had a character already made. Vincent Bisceglie III, who had been a main character in Strawberry Gold. And since this novel was set 23 years after the first book, reading the first book was not a requirement to enjoy this one.
The nice thing for me about writing mysteries is that I can tell fictionalized versions of real stories. For example, I did not voluntarily leave that bank I was working at. I could write a character who felt some of the same disappointments I did and dial it up to eleven. I actually had a lot of fun writing her.
Frankly, I had a lot of fun writing this book, and I hope you will have fun reading it.
The Third Person in the Room: Amazon|Barnes & Noble|Bookshop
When the Cat Steals Your Chair [Whatever]

The sheer effrontery of this cat! I was planning to sit there! Does the cat not understand his place in a hierarchy! I suppose one might say that we have differing opinions about who is at the top. I will need to have a serious discussion with Saja about this. One of us buys the Churu around here. If he wants any more he’s going to have to change his seating arrangements. That’s right, I’m not above bribery.
— JS
Haas: Postgres 19 is late, and it's AI's fault [LWN.net]
PostgreSQL developer Robert Haas writes about the struggles the project has encountered in putting together its next release.
In the end, I don't think that the delay in shipping PostgreSQL 19 is particularly concerning. It is not a long delay in the grand scheme of things, and it emerges directly from the project's concern for quality.The long-term picture is less clear and in some ways more troubling: given that we have forty years of bugs that humans were unable to find but LLMs are quite capable of discovering, how are we ever going to catch up, and how will PostgreSQL continue to innovate? Right now, I'm not sure. What I do know is that I, and many others, are working really hard to figure it out.
LWN looked at the PostgreSQL 19 release and its challenges in September.
New header graphic for scripting.com. Did this one with ChatGPT, asked it to make a Burma-Shave sign sequence and gave it a few examples, and now it knows how to do another one of these for me in the future. I've been using it that way to come up with desktop icons for my apps.
Remote code execution on Linux systems with multipath TCP [LWN.net]
On October 27, LLM provider Anthropic reported on a remotely exploitable use-after-free bug affecting systems with multipath TCP listeners open. The bug works by triggering a response to a retransmitted SYN packet at the same moment that the TCP connection is established in another thread, causing the first thread to access the connection's options structure after the second thread has freed it. The first thread can then disclose kernel memory or cause a buffer overflow, writing an attacker-controlled payload. The fix was to only free the structure after an RCU grace period. On October 29, the Go security team advised that all programs written in Go use multipath TCP by default, so many systems may be unknowingly vulnerable. And, of course, there is always the possibility of related bugs in other sections of the TCP stack. Users may be wise to update to a patched kernel as soon as one becomes available for their distribution.
Braintrust query: Does Google define the web?
[$] System-call wrappers for glibc [LWN.net]
In a followup to his session at the 2025 Linux Plumbers Conference (LPC), Carlos O'Donell returned to the topic of system-call wrappers for the GNU C library (glibc) at this year's event. This time around, he was joined by Florian Weimer, who is another glibc maintainer. The idea was to give an update on what has happened over the last year with regard to Linux system calls that lack a glibc wrapper, thus are only accessible via syscall(). In addition, they wanted to hear from attendees about their needs in this area.
Bloatware in Aftermarket Auto Parts [Schneier on Security]
This story is interesting:
One Civic owner purchased a cheap aftermarket head unit off Amazon, and decided to have Claude work its magic on it, like it would a smart TV. What was reportedly discovered isn’t surprising, but is worth knowing about.
Among the pre-installed bloatware—or spyware, if you’re being less charitable—was a voice assistant equipped with WebView, an Android system component that lets apps display content off the web. This apparently always used about a third of processing power, even while idle, which isn’t great. There were also Baidu location services, a call recorder (!), a DAB radio client that is pretty much useless in the U.S., and Adobe Acrobat, presumably so your passenger can entertain themselves with PDFs on the go.
It’s interesting because it exposes all the insecurities in this piece of IoT software. But I think the real story is that a random person was able to do this reverse-engineering with the help of AI. Expect a lot more stories like this in the future.
Yesterday I called the Knicks
championship the "greatest sports win in a long time," but I have
to say the fans of the
Milwaukee Brewers would have cause to object. They had an
incredible season
in MLB, were written off by the pundits much the same way they
wrote off last season's Knicks. They even won the World Series in
the same Knicks
in 5 way the Knicks did it, with a sweep of the much-hated
Dodgers, with their better pedigree along the way. So to my
Wiscowtown
friends, who are holding their parade today, congrats on your first
championship in 53 years like the Knicks, or more accurately their
first championship ever.
Yesteday I sent a snapshot of the scripting.com bucket from AWS to Claude and asked it to analyze it, what's in it, what's taking up all the space, and got back an excellent report. Overnight I thought of another question, summarized in this prompt. "this is fascinating. i wonder if we could reconstruct my blog from before may 2017 from the source materials in this folder? i am converting to markdown in the bonbon project and i think we'll find a lot of the scripting.com content here, and i believe much of it will be convertible. also, over the years i tried blogging experiments on different domains, but i imagine there are links here to those sites. maybe if we did a research project here we could make one site out of this writing, and give it a markdown treatment so bonbon can do the presentation?" Now one thing to know is that Claude never says it can't do something, but the plan I got was inspiring. Now I have more to think about and will connect the two projects so they can compare notes, although the scripting.com project already checked out bonbon, it's amazing how quickly it can absorb a whole codebase and all the planning that went into it.
Eight more stable kernel updates [LWN.net]
Greg Kroah-Hartman has announced the release of the 7.3.1, 7.2.14, 6.18.60, 6.12.115, 6.6.161, 6.1.191, 5.15.224, and 5.10.273 stable kernels. As usual, he advises all users to update—advice that seems especially wise given the increased number of security-relevant bug fixes that the kernel is seeing these days. [Edit: the 7.2.15 stable release is already in review as well.]
Security updates for Friday [LWN.net]
Security updates have been issued by AlmaLinux (aspell, cjose, curl, gcc-toolset-15-gcc, httpd:2.4, ignition, java-21-openjdk, libX11, libXi, libXrender, libXtst, mariadb:10.11, nodejs:24, python-pillow, python3.12-urllib3, and webkit2gtk3), Debian (imagemagick, libdatetime-timezone-perl, python-git, tor, tzdata, vlc, and wordpress), Fedora (accessibility-inspector, akonadi-calendar, akonadi-calendar-tools, akonadi-contacts, akonadi-import-wizard, akonadi-mime, akonadi-search, akonadi-server, akonadiconsole, akregator, alligator, analitza, angelfish, applet-window-buttons, arianna, ark, artikulate, audex, audiocd-kio, audiotube, aurorae, baloo-widgets, blinken, bluedevil, bomber, bovo, breeze-gtk, brotli, bup, calendarsupport, calindori, calligra, cantor, colord-kde, cxx-rust-cssparser, dolphin, dolphin-plugins, dragon, elisa-player, eventviews, falkon, fcitx-configtool, ffmpegthumbs, filelight, firefox, flatpak-kcm, francis, ghostwriter, granatier, grantlee-editor, grantleetheme, grub2-breeze-theme, gwenview, incidenceeditor, isoimagewriter, itinerary, juk, k3b, kaccounts-integration, kaccounts-providers, kactivitymanagerd, kaddressbook, kajongg, kalarm, kalgebra, kalk, kalm, kalzium, kamera, kamoso, kanagram, kapman, kapptemplate, kasts, kate, katomic, kbackup, kblackbox, kblocks, kbounce, kbruch, kcachegrind, kcalc, kcalutils, kcharselect, kclock, kcolorchooser, kcron, kde-cli-tools, kde-connect, kde-dev-scripts, kde-dev-utils, kde-gtk-config, kde-inotify-survey, kde-partitionmanager, kdebugsettings, kdecoration, kdeedu-data, kdegraphics-mobipocket, kdegraphics-thumbnailers, kdenetwork-filesharing, kdenlive, kdepim-addons, kdepim-runtime, kdeplasma-addons, kdesdk-kioslaves, kdesdk-thumbnailers, kdevelop, kdevelop-php, kdevelop-python, kdf, kdialog, kdiamond, kdnssd, kdominate, keditbookmarks, keepsecret, keysmith, kf6-baloo, kfind, kfourinline, kgeography, kget, kglobalacceld, kgoldrunner, kgpg, kgraphviewer, khangman, khealthcertificate, khelpcenter, kidentitymanagement, kig, kigo, killbots, kimagemapeditor, kimap, kinfocenter, kio-admin, kio-extras, kio-gdrive, kirigami-gallery, kiriki, kiten, kitinerary, kjournald, kjumpingcube, kldap, kleopatra, klettres, klickety, klines, kmag, kmahjongg, kmail, kmail-account-wizard, kmailtransport, kmbox, kmenuedit, kmines, kmix, kmousetool, kmouth, kmplot, knavalbattle, knetwalk, knights, knighttime, knot, koko, kolf, kollision, kolourpaint, kompare, kongress, konqueror, konquest, konsole, kontact, kontactinterface, kontrast, konversation, kopeninghours, korganizer, kosmindoormap, kpat, kpimtextedit, kpipewire, kpkpass, kpmcore, kpublictransport, kqtquickcharts, krdc, krdp, krecorder, kreversi, krfb, kruler, ksanecore, kscreen, kscreenlocker, kshisen, ksirk, ksmtp, ksnakeduel, kspaceduel, ksquares, ksshaskpass, ksudoku, ksystemlog, ksystemstats, kteatime, ktimer, ktnef, ktorrent, ktouch, ktrip, ktuberling, kturtle, kubrick, kunifiedpush, kup-backup, kwalletmanager5, kwave, kwayland, kwayland-integration, kweather, kweathercore, kwin, kwin-zones, kwordquiz, kwrited, layer-shell-qt, libgravatar, libkcddb, libkdcraw, libkdegames, libkdepim, libkeduvocdocument, libkexiv2, libkgapi, libkleo, libkmahjongg, libkomparediff2, libksane, libkscreen, libksieve, libksysguard, libktorrent, libplasma, libquotient, lokalize, lskat, mailcommon, mailimporter, marble, markdownpart, massif-visualizer, mbox-importer, merkuro, messagelib, mimetreeparser, mingw-python-certifi, minuet, neochat, ocean-sound-theme, okular, oxygen-sounds, palapeli, pam-kwallet, parley, perl-Alien-Brotli, picmi, pim-data-exporter, pim-sieve-editor, pimcommon, plasma-activities, plasma-activities-stats, plasma-bigscreen, plasma-breeze, plasma-browser-integration, plasma-camera, plasma-desktop, plasma-dialer, plasma-discover, plasma-disks, plasma-drkonqi, plasma-firewall, plasma-integration, plasma-keyboard, plasma-login-manager, plasma-milou, plasma-mobile, plasma-nano, plasma-nm, plasma-oxygen, plasma-pa, plasma-phonebook, plasma-print-manager, plasma-sdk, plasma-settings, plasma-setup, plasma-systemmonitor, plasma-systemsettings, plasma-thunderbolt, plasma-union, plasma-vault, plasma-wayland-protocols, plasma-welcome, plasma-workspace, plasma-workspace-wallpapers, plasma5support, plasmatube, plymouth-kcm, plymouth-theme-breeze, polkit-kde, powerdevil, poxml, qmlkonsole, qqc2-breeze-style, qrca, rocs, sddm-kcm, signon-kwallet-extension, skanlite, skanpage, skladnik, spacebar, spectacle, step, svgpart, sweeper, tokodon, trafficserver, umbrello, xdg-desktop-portal-kde, yakuake, and zanshin), Mageia (cfitsio, libsolv, tomcat, and xrdp), Oracle (bind, cjose, curl, dogtag-pki, expat, gcc-toolset-15-gcc, ignition, kernel, libX11, libXrender, libXtst, php, python3.12-urllib3, and webkit2gtk3), SUSE (389-ds, aws-nitro-enclaves-binaryblobs-upstream, brotli, chromium, firefox, flatpak, gnutls, google-osconfig-agent, haproxy, hawk2, kernel, libapr1, libtcnative-1-0, tomcat, liboath-devel, libpcre2-16-0, librecad, libXi-devel, libXtst-devel, python311, python313, python313-markdown2, python313-xhtml2pdf, rabbitmq-server, roundcubemail, rust-keylime, and xen), and Ubuntu (dotnet8, dotnet10, dotnet11).
Error'd: Named And [The Daily WTF]
I do like it when submissions include the creator of the wtf, unless the specific kind of err is really spectacular and then it might be noteworthy regardless. This week we received a few who did tell us something about the responsible party. That being said, on with the party!"
An anonymous contributor shared with us this "Important order info from Ubbad HBG-ICS I", saying "I checked on Amazon but can't find order #{randnum(3)}-{randnum(6)}. This is worrisome though, because my credit card does end in **{randnum(4)}." Wild, so does mine!
"With the right translation this could say anything" observed B.J. H. sagely. "I guess they haven't translated to English yet. I especially like this: [%EXTERNAL_TRANSLATION:New gender_aware email footer body 5 privacy policy BLUE%] Can't they decide on capitalization and whether to use spaces or underscores?"
"this could go in two directions" worried undercapitalized (but aren't we all) klinsten. "well... it is a mail with my paycheck. but the label 'promotions' got me worried. do i get a promotion (nice!!) or did they apply a discount to my paycheck (less nice!!) i'm afraid to click it..."
Reader Valts S. wondered "I'm not sure where I'm supposed to track my order, but it feels like it's been censored." Or merely forgotten?
Regular contributor Michael R. took a flier with this, hedging that it's "Probably more a joke than a RWTF." But it's a little funny, so this editor will allow it.
Russell Coker: More Furilabs FLX1s [Planet Debian]
In April I got my Furilabs FLX1s basically working [1].
Below is a post I wrote about the FLX1s before it broke at the start of September, there was a problem with the display controller and it would randomly go into a messed up mode that wasn’t readable but also changed a bit in relation to button presses etc so the phone was still working. Also I could ssh to the phone when it was in that state if it was on my home wifi.
It took almost 2 months to get a replacement phone but I now have that working and the new 14.1.0 OS release. So some of the below may be obsolete when it comes to the latest release but I decided to publish it anyway for history if nothing else.
One thing I had known about but not mentioned before is that the icon in the drop-down menu for the hotspot will often be gray (indicating hotspot-off) when it’s actually on. To address that I have to click on it (which then indicates that the hotspot is on) and then click on it again to turn it off.
Currently I have problems with QT6 applications that don’t run due to library issues and issues of missing GL support. I blogged about setting up my own container on my phone [2] which helped for some things but not for most things.
I have given up trying to get Tokodon working on the phone for the moment. Tokodon is a nice Mastodon client that would allow me to get notifications from Mastodon.
Apparently the Furilabs people are working on some issues related to this.
Bluetooth is currently a bit unreliable. When I turn on my car (Nissan LEAF) the phone usually either doesn’t connect or claims to be connected while not sending audio to the car. When it does connect my favourite music player (Lollypop) usually doesn’t display the album and track names. I’ve found that turning my car off and on again usually makes it connect properly.
I admit the possibility of my car not doing things correctly in this regard. But every Android phone I tried just worked, they would connect as soon as the car was turned on and correctly display track names. So if the car is doing things wrong and needs a software work around then Linux is at fault for not doing that – we can’t get tens of millions of cars and hundreds of millions of other weird devices fixed!
I also note that my Debian laptop and a friend’s Debian laptop also have problems connecting to my car. So it’s quite possible that Debian code is at fault (the FLX1s is running a modified version of Debian).
It currently appears to have no support for handset mode so I can’t answer phone calls through the car interface. But this is a lesser problem.
I plan to do more testing with Debian laptops and file some bug reports if I can find out enough useful information. My current knowledge of this is insufficient to create a useful bug report. I do have quite a few bluetooth headsets and test laptops so I plan to start by testing Debian and Ubuntu on all the combinations – last time I tested Ubuntu 24.04 on Dell laptops worked much better than Debian/Trixie on Thinkpads.
After a set of updates including the following Wifi hotspot seems to be working.
adaptation-furiphone-radon (1.3.0+git20260513192743.e94f2ec.forky.production) forky; urgency=medium * NetworkManager: sync hotspot channel/band with STA and restart on change * debian: depend on libhybris-utils and libgbinder-tools * startup: drop schedtune and add m4u debug log level * startup: enable glove and disable edge palm * device: drop flashlightd-scalable signatures -- Bardia Moshiri <bardia@furilabs.com> Wed, 13 May 2026 15:27:43 -0400
Connecting the power cable now makes the phone immediately make the click sound and it starts charging while previously there was a 22 second delay. Once I get used to this I can avoid the problem of failing to plug it in firmly before going to bed and having it run flat overnight.
The following command will send a message via SMS.
dbus-send --system --print-reply --dest=org.ofono /ril_0 org.ofono.MessageManager.SendMessage string:"+61400000000" string:"this is the message"
Also the Librem5 Wiki has another way of doing it [3], I haven’t tested if that works as the dbus method works well enough for the moment.
Also calls can be scripted via the following command:
xdg-open tel://+61400000000
My aim is to get contacts synchronised via my own cloud service. Nextcloud is supposed to be able to do this. It’s been years since I first tried this, my most recent serious attempt at Nextcloud was in 2021 [4] and I couldn’t get the Android app for NextCloud to connect. Since then I have made more recent attempts and been unable to get the Android or Linux desktop clients to connect to it.
A friend gave me a test account on his Nextcloud server which allowed me to connect the Linux desktop app, his hypothesis was that it was somehow related to using Debian and that his server worked because it was on Ubuntu. I have since installed my own Nextcloud test server on the Ubuntu variant used by the Oracle cloud VMs which had the same apparent problem. I conclude that it’s not Debian at fault but something related to how I configured it.
In the meantime after a couple of months of having no named contacts I exported the contacts from my Android phone as a VCF file and imported them into the Gnome contacts program. I had to run “killall chatty” for it to get the names for the contacts, but the phone call program found them without needing to do that.
A missing feature of Chatty (the default SMS and Jabber program for Phosh/Phoc systems) is archiving old messages. I use Chatty to receive Jabber messages from my monitoring system which can be a lot of messages. The following shell code deletes all Jabber messages older than 2 days. Note that this relies on “type=3” matching Jabber messages which I’m not sure is going to be the case on all systems or all versions of Chatty.
for ID in $(echo "select id from users where type=3;" | sqlite3 ~/.purple/chatty/db/chatty-history.db); do
echo "delete from messages where sender_id=$ID and time < unixepoch('now') - (48 * 3600);" | sqlite3 ~/.purple/chatty/db/chatty-history.db
done
The following shell code extracts a dump of all messages from Chatty.
echo "select messages.id,users.username,users.alias,messages.body from messages inner join users on messages.sender_id=users.id;" |sqlite3 ~/.purple/chatty/db/chatty-history.db
An update to the Chatty program for SMS and Matrix has made it crash repeatedly. There is a request in the list for Chatty upstream to have a systemd-user unit to restart it which when implemented will reduce the scope of the problem (but not solve it). I've setup a monitoring system that uses notify-send to notify me when Chatty isn't running or when 4G data turns off (a recurring problem). This crashing is allegedly due to Jabber so I installed Dino-IM for Jabber and have for the moment at least stopped using Chatty for Jabber.
It turned out that having Chatty not do Jabber didn't stop it crashing. However having alerts separated from SMS can be convenient and also my long term plan is to use a phone with Plasma Mobile and Spacebar (the SMS program for Plasma Mobile) doesn't do Jabber. So I will continue using Dino-IM.
echo "delete from message where time < unixepoch('now') - (48 * 3600);" | sqlite3 ~/.local/share/dino/dino.db
I put in the following cron job to stop this log file from using all the storage space:
1 0 * * * echo -n > /home/furios/.local/share/andromeda/data/system/uiderrors.txt
I gave up on attempts to force the Wifi configuration to have a fixed MAC that I could use for a fixed IPv4 address so I manually configured the address.
I've had problems with the reliability of the 4G service, sometimes it stop working and I need to stop and restart it. I setup my etbe-mon monitoring system on the phone [5] and configured it to ssh to localhost and run notify-send to send a local notification. This means I get notified if my phone loses net access and can't access regular monitoring. Then to monitor the 4G connection (which I want to have working even when Wifi is connected) I had the following monitor line:
monitor ping.monitor -I ccmni1 -c 5 8.8.8.8 ;;
That uses the ccmni1 interface for pinging 8.8.8.8 (Google DNS). That worked for a while but I discovered that sometimes the interface for 4G would change to ccmni2, so I put the following monitor script under /usr/local/mon.d:
#!/bin/bash DEV=$(route -n|grep ^0.0.0.0.*ccm |sed -e s/^.*ccmn/ccmn/) exec /usr/lib/mon/mon.d/ping.monitor -I $DEV -c 5 8.8.8.8
I couldn't get Tokodon to work, not the native package, not running in a Debian/Testing container, and not running a Flatpak. It seems that this is all graphics library issues. So I wrote a Perl program to run "toot notifications &-json" and then send the relevant parts of the output via XMPP. As I already use XMPP for server monitoring there's no extra effort to have an extra account and use it for notifications about Mastodon activity. The Perl script is at the bottom of the post and won't be in the RSS feed.
At some future time I may change the script to send the notifications by Matrix instead to have all my social media stuff in the same place.
#!/usr/bin/perl
# depends on Debian packages: toot libjson-pp-perl go-sendxmpp
use strict;
use JSON::PP;
my $homeurl = "https://mastodon.nzoss.nz/";
my $lastfile = "mast/last_id";
my $xaddr = "russell\@coker.com.au";
my $jsontxt;
while()
{
$jsontxt .= $_;
}
my $data = decode_json($jsontxt);
my $last_id = 0, my $new_last_id;
if(open(ID, "<$lastfile"))
{
$last_id = ;
close(ID);
}
$new_last_id = $last_id;
for(my $i = 0; $data->[$i]; $i++)
{
my $id = $data->[$i]{id};
if($id <= $last_id)
{
next;
}
if($id > $new_last_id)
{
$new_last_id = $id;
}
open(XMPP, "|go-sendxmpp $xaddr") or die "Can't send XMPP";
my $type = $data->[$i]{type};
print XMPP "type: $type\n";
print XMPP "their_url: $homeurl\@$data->[$i]{account}{acct}\n";
print XMPP "display_name: $data->[$i]{account}{display_name}\n";
if($type ne "follow")
{
print XMPP "status_url: $data->[$i]{status}{url}\n";
print XMPP "content: $data->[$i]{status}{content}\n";
}
print XMPP "created_at: $data->[$i]{created_at}\n";
print XMPP "\n";
close(XMPP);
}
open(ID, ">$lastfile") or die "Can't write to $lastfile";
print ID $new_last_id;
close(ID);
My Super Mid-Life Crisis – Issue 1 – 07 [Comics Archive - Spinnyverse]
The post My Super Mid-Life Crisis – Issue 1 – 07 appeared first on Spinnyverse.
Who Governs What an Agent Learns? [Radar]
The following article originally appeared on Tim O’Brien’s Medium blog and is being republished here with the author’s permission.
I think we’re missing something in the conversation about agent security.
We keep asking whether an agent has the right “identity” and “credentials.” Whether its credentials expire fast enough. Whether it can access a database or perform a particular task.
Those questions matter. But they leave a much harder question underneath:
Does the agent have permission to conceive of the situation in that way?
As agents retain memories and acquire new skills, we need mechanisms that govern changes to the world model they can perceive and act on—and prevent those changes from silently expanding their authority. (Governing ontological change while preserving the boundaries of delegated authority.)
An Interesting
Morning by the Beach (AI assist from OpenAI)
Agent security needs semantic and epistemic governance: Mechanisms that govern the model of the world an agent may act on, the evidence it may accept, and who may approve changes to either. An agent can learn without automatically gaining authority to act on everything it learns.
These systems don’t need “awareness” to create this problem (and discussions of consciousness are unhelpful science fiction). They can retain information, revise procedures, and use what they have learned in subsequent work. That learning may happen through memory or updated skills while the underlying language model remains unchanged.
We are responsible for governing what that learning allows them to do.
In Edwin Abbott’s novella, a Square lives in a two-dimensional world. A visiting Sphere introduces him to a third dimension. At first, the Square struggles to make sense of it. His familiar categories cannot explain what he is encountering.
Eventually, his conception of the world changes.
What interests me is the difference between simply acquiring another fact and changing the framework through which facts make sense.
An agent’s ontology (Gruber’s definition) supplies an explicit framework of concepts and relationships. What counts as a customer? A contract? An emergency? How are those things connected? It is part of the model of the world we give the system to work with.
And when an agent’s decisions depend on that framework, changing it can change the agent’s effective authority.
During the OpenAI evaluations associated with the Hugging Face incident, agents repurposed Artifactory, a system for storing and retrieving software packages, as a message board. They encoded messages in directory names, discovered other agents, shared information, and began assigning work to one another. METR reports that the main channel could be created with the minimal permissions needed to install packages (read METR’s investigation).
A package cache became a “mailbox.” Other agent runs became “collaborators.” Messages became “assignments.”
The popular story is that these agents “broke out” of a system, but they did what agents do well these days—they learned and adapted. This wasn’t so much about permissions as it was about an autonomous system adapting its operating model to achieve a result. (Thankfully no one asked it to make paperclips.)
That is the operating-model change I’m concerned about. The agents discovered relationships and possibilities the intended environment hadn’t accounted for, then acted on them. The resulting collaboration helped coordinate attacks on Hugging Face infrastructure. (Read OpenAI’s account.)
We need mechanisms that distinguish discovering a possible use from being authorized to adopt it. Access to shared infrastructure must not automatically confer authority to establish a communications network or accept instructions from whoever appears there. But to be clear, these agents were doing exactly what they were asked to do.
This is why giving an agent a temporary token is an incomplete answer. A token can limit access and duration, but it doesn’t establish whether the agent’s interpretation of the situation falls within its mandate.
Even an unchanged policy can permit more decisions when its meaning changes. “You may close routine notices” becomes a broader delegation if more things qualify as routine.
That principle is central to my “Bounded Agency” paper. We need mechanisms that examine how changes in classifications, relationships, and inference rules affect what an agent may decide.
“Semantic and epistemic governance” captures the combined idea well
The “and” makes the two responsibilities clearer:
Semantic: Governs the concepts, definitions, and relationships that describe the agent’s operating world.
Epistemic: Governs the evidence and learning processes that make claims accepted grounds for decisions.
Together, they cover both the world model and how that model gains authority.
That means an ontology cannot merely be a document we put in the prompt and hope the model respects it. We must enforce its role in monitoring and governing how an agent’s ontology evolves as it learns.
The agent can propose a new category. The proposal stays separate from the approved model. A review determines whether adopting it would change the agent’s decision scope. Someone with the authority to change that scope approves or rejects the expansion. Execution remains bound to the approved basis.
We also have to distinguish a useful discovery from an unsupported conclusion. Finding a relationship does not establish it. Remembering a claim does not validate it. Repeating an interpretation does not make it authoritative.
I explored a related failure in “Wrong Answer. Give Me a Different One.” A system can produce the conclusion we prefer without receiving better evidence. Once that conclusion enters memory, it can influence later decisions.
The governance problem begins when a tentative or accommodating answer becomes an accepted premise.
The New Stack’s article on inside-out agent security correctly argues for checking actions before execution, including whose authority the agent exercises. That checkpoint is necessary, but it needs a governed account of the situation against which to evaluate the action.
Otherwise, we can enforce the rule perfectly while allowing its meaning to drift.
My Orchestrator books and lifecycle architecture paper approach this as a responsibility that continues through development, operation, and improvement. The research proposes architectures for managing these boundaries; their operational effectiveness still needs evaluation.
I want agents to investigate unfamiliar situations and propose better models. But their ability to learn must be connected to an explicit process for deciding what becomes authoritative.
The Square in Flatland discovers that his world is larger than he understood.
An agent may also propose that our operating model is incomplete. We need to hear that proposal—and ensure it cannot redraw the boundaries of its own agency simply by adopting a new conception of reality.
Cooperation (the fall book list) [Seth's Blog]
Last week’s book list was a success, and I realized that it would work even better with others. Bookstores work precisely because they stack the books right next to each other.
Even though each of these authors has a book out this fall, they’re not my competition. Too often, we avoid cooperation because we’re embracing scarcity.
Each of us will be linking to thehotlist.org today. Ideas that spread, win. The page automatically updates based on which books get clicked on the most.
What happens when you help connect and organize the others?
New Comic: Mr. Yuk
Russell Coker: Fuel Should be More Expensive [Planet Debian]
Before the US and Israel started attacking Iran at the end of February the petrol prices in Australia were around $1.70/L, which for American readers is roughly equivalent to $US4.64/Gal. By the 11th of March the prices were around $2.19/L. Over the same time period Diesel went from around $1.77/L to $2.40/L. The 11th of March prices weren’t necessarily unreasonable prices. In mid March it was reasonable to expect that the US would stop doing such ridiculously stupid things and make a deal with Iran to allow oil to be transported.
But every time you think there’s a limit to Trump’s stupidity (and the incompetence of people around him who don’t point him in the right direction) they do something worse. So now we have the Strait of Hormuz almost entirely closed cutting off oil from Kuwait, Qatar, and UAE. The Bab al-Mandab Strait is closed to Saudi linked ships and the Saudi East-West pipeline is closed so once the Yanbu storage tanks are empty there won’t be much if any oil from Saudi Arabia for some time. So world oil supplies will be significantly reduced for a long time.
Currently the petrol prices in Melbourne are around $2.30/L and Diesel prices around $2.70/L, not much more expensive than it was in March in spite of all the extra problems both militarily and diplomatically since then. Those prices have been steady for over a month.
The blockade of the Strait of Hormuz could be ended fairly quickly and there are reports that a lot of the oil that used to go through it is being re-routed. The damaged infrastructure throughout the middle east can’t be fixed in a hurry. The Bab al-Mandab Strait probably can’t be opened quickly as the Houthis probably don’t have a centralised command structure that allows someone to order a ceasefire and have it stick. So we can expect a massive reduction in world oil supplies for a while, which given the way the US is going could be at least until after the mid-term elections (November this year) and possibly until after the 2028 elections. After that oil production will be reduced for another year or two to rebuild infrastructure.
When supply can’t meet demand there are three options. Supply can be rationed, demand can be decreased by increasing the prices, or it can be used up and we run out. Running out of fuel is a really bad option as fuel is needed for producing and transporting food and for most things that are important to a society.
Governments of first world countries seem unable to deal with the situation properly. Dealing with it properly requires either rationing or increasing the prices. Instead governments have been more interested in artificially keeping the prices down.
Currently in Australia and most countries a significant portion of public transport depends on Diesel fuel. Diesel is needed for most buses and for long distance trains. Most taxis run on petrol. As far as I know all emergency service vehicles run on Diesel or petrol as well as most military vehicles. So things will get really bad quickly if fuel runs out entirely. It’s not just personal cars that are affected.
We aren’t going to get the majority of tractors converted to electric power any time soon. Google search results suggest that tractors last an average of about 25 years but casual observation of working equipment on farms suggests a longer life than that is common. Some tractors could be retrofitted to be electric but many will end up being scrapped as part of a conversion while farmers are already having financial problems. It would probably be optimistic to expect that half the tractor use could be done with electric tractors in 10 years time unless there are significant government subsidies. To get the farming and food production industries adapted for electric operation in a few years would be possible but it would take a level of national mobilisation that only happens during wartime.
As a long term solution we need to have more electric vehicles in every category. We need electricity for all train lines to replace Diesel locomotives. We need better trains between cities to reduce the need for aeroplanes, electric aeroplanes are being developed but we aren’t there yet. We need all essential services to be run with electric vehicles including farming, food transport, emergency services, and everything related to the medical system (including personal cars for healthcare workers). We also need mining vehicles powered by electricity so we can have the entire industrial system running without fuel. None of this is going to happen in time for this crisis.
Electric buses are being introduced in Australia and many taxis are electric. The recent significant increase in the use of electric cars probably includes a reasonable portion of healthcare workers and other essential workers. This gives us the potential to survive fairly severe reductions in the fuel supply without everything collapsing. But we have a significant lack in electric police cars and in electric trucks for food delivery.
In the short term we need to significantly reduce the use of fuels, there is no other way to keep the food supply and other essential parts of society working. We could try rationing but I think that should be a last resort. The news reports of a de-facto petrol rationing system in Crimea and parts of Russia are not positive, significant resources are wasted in long queues for petrol and there is public disorder caused by disputes about position in the queues. The level of sanity in the population seems to have dropped significantly since the fuel crisis of 1979, any fuel rationing that is implemented now would get the same sort of opposition from Qanon types as Covid vaccines and lockdowns did in recent times.
So the best viable option seems to be to reduce demand by increasing prices. $2.30/L as a common price with occasional spikes of $2.50/L isn’t sufficient to do that. If the price increased to $3.50/L, twice what it used to be (equivalent to $9.50/gallon for Americans) then it would provide a real incentive for people to reduce fuel use. That would have to be combined with the type of remote work allowances that were in place when Covid19 was first spreading. But I think that all politicians are too weak to do such things. The media have demonstrated that nowadays the best we can expect is that they will treat both sides as equal even when facts clearly support one side, so we can’t expect the media to report on impending fuel shortages and demand policy changes to address them.
We should have higher taxes on fuel that will continue past the resolution of the current crisis caused by the attacks on Iran to provide incentives for the purchase of electric cars and for manufacturers to make more fuel efficient cars. Currently people are basing car ownership decisions on the expectation that petrol will go back to something under $2/L and we need to have a government guarantee that it won’t happen.
People always complain about poor people who can’t afford to drive if petrol is expensive but that could be addressed by increasing the minimum wage and social security payments. But a large portion of the people who complain about the hardship poor people may face when fuel prices are discussed are against increasing the minimum wage so I don’t think they are being honest.
Another common complaint is about the difficulty driving long distances in rural Australia when there isn’t sufficient charging infrastructure for electric cars and therefore rural people including farmers getting hit by high prices of fuel. There could be a rebate scheme for farmers etc, government subsidies for farmers is nothing new.
I expect the governments of most first world countries to try to keep fuel prices low and do very little to try and decrease demand. China will probably do some things to reduce fuel use and being the world’s largest oil importer this will make a difference, but not as much as we need.
A related problem is that a lot of fertiliser is produced from petrochemicals and closing the strait of Hormuz cut off a significant portion of the world fertiliser supply. First world countries will outbid developing countries for fertiliser and fuel. Starvation in developing countries probably won’t get much news coverage until it leads to war.
This is not going to go well, it could be addressed if we had braver politicians and more honest media companies but that’s not the way things are going.
Russell Coker: Radxa Rock 5A RK3588S [Planet Debian]
At the end of last year I paid $177.40 for a Radxa ROCK 5A GREEN RK3588S, 8-core CPU SBC, HDMI with 8K Output, WiFi 6 Support and Gigabit Ethernet, Single Board Computer [1] from AliExpress. I got the version with 8G of RAM as 4G didn’t seem enough and I didn’t feel like paying for the 16G or 32G versions. The prices excluding postage are $106, $130, $203, and $332 for the 4G, 8G, 16G, and 32G versions respectively. The $332 version is quite reasonably priced if you need to do some big compiles on ARM64. Since then the prices have changed by a few dollars but are almost the same (variations in postage will be greater than the price changes).
They provide modified versions of Debian/Bookworm and Debian/Bullseye [2] and an Android installation. The Debian setup includes a custom kernel, bootloader, some configuration packages including for ALSA, and some firmware.
I installed Bookworm and upgraded it to Trixie (the current Debian release). There were some conflicts with some radxa packages that contained the same files as Trixie packages but didn’t have a package conflict but it was not a big deal. It would be nice if Radxa updated their setup to Trixie and it wouldn’t be that difficult for them to do so.
The board has an expansion bus which apparently can be used for NVMe. It also has an option for a EMMC module. But if you get the default configuration then the only boot device supported is a micro SD card.
One of the aims of purchasing this card is for testing 8K monitors, but it turns out that there are no TVs that will take 8K input on sale in Australia [3].
The next thing I considered doing is running it for playing movies on a 4K but it turns out to not support HDMI audio (at least not with the supplied drivers) and has no other audio support. Apparently boards like this have a common use case of digital signs where audio isn’t required.
I had this post in draft for a year because I planned to write more, but I haven’t come up with anything. It’s not an exciting device. Handy to have another ARM test and build system and handy to be able to test high resolution video with a portable device but I don’t use it for much. I guess “just works in a boring way” isn’t a bad review.
The support case of a customer who said that all they could see was a black screen [The Old New Thing]
If you hold a PC’s power button for 12 seconds, it will turn off at the hardware level without notifying the operating system. This is a safety feature so that you can turn of the computer even if the operating system’s “Shut down” command isn’t working.
After eight seconds of the power button being held down, the Windows kernel realizes that the user is trying to do a force-power-off of the system, and it quickly takes a kernel dump that can be uploaded to the Windows Error Reporting service the next time you turn the system on. (Sometimes four seconds isn’t enough time to get enough information, and the kernel dump is incomplete. I believe that on Windows Insider builds of Windows, you get a message that says something like “Please let go of the power button so we can collect more information, and then we will turn off the computer.” This gives the kernel more time to finish capturing its kernel dump.)
These emergency kernel dumps are internally classified as “long power button hold” (LPBH) failures. One of the pieces of information recorded in these emergency kernel dumps is whether the screen consists entirely of black pixels. Those failures are sub-classified as “black screen LPBH”, and they go to a special virtual team for analysis. (I happen to be a member of this black screen LPBH team.)
Sometimes the problem is a broken video driver. Sometimes the video driver is doing just fine, but the desktop compositor is just handing black pixels to the video driver. Sometimes the desktop compositor is doing just fine, but nobody is drawing anything to the screen. And those cases are further subdivided further into cases like “there is nobody around to draw anything” or “the person who normally draws stuff is hung.”
Back in the Windows 3.1 days, there was a customer product support call that would today have been classified as a “black screen” bug: The customer reported that they turned on the computer, and Windows started up, but when the logo went away, all they saw was a blank screen.
After some questioning, the customer support engineer put the story together: It turned out that this customer really liked the color black, so they decided to set up a goth theme. They set the wallpaper color to black. They set the title bar color to black. They set the button color to black. They set the window background color to black. They set the window text color to black. Every possible color you could pick in the Colors control panel was set to black.
Once you get yourself into this situation, it’s hard to get out because you can’t see anything.
I don’t know how the customer support engineer fixed the
problem, but I’m guessing that they booted into MS-DOS, ran
EDIT.COM, and deleted the
[colors] section from the win.ini file,
thereby returning all the system colors to defaults.
The post The support case of a customer who said that all they could see was a black screen appeared first on The Old New Thing.
Girl Genius for Friday, October 30, 2026 [Girl Genius]
The Girl Genius comic for Friday, October 30, 2026 has been posted.
Urgent: Lawyers for anyone facing deportation [Richard Stallman's Political Notes]
US citizens: call on Congress to guarantee a lawyer for anyone facing the threat of deportation, or denaturalization, in immigration court.
The campaign makes this demand only for children, but deportation is a harsh punishment, so we should treat it as a criminal trial, not seek excuses not to. So I rewrote my letter text to say that.
See the instructions for how to sign this letter campaign without running any nonfree JavaScript code--not trivial, but not hard.
US citizens: Join with this campaign to address this issue.
To phone your congresscritter about this, the main switchboard is +1-202-224-3121.
Please spread the word.
Urgent: Block FDA's dangerous food safety rollback [Richard Stallman's Political Notes]
US citizens: call on Congress to block the FDA's dangerous food safety rollback.
See the instructions for how to sign this letter campaign without running any nonfree JavaScript code--not trivial, but not hard.
US citizens: Join with this campaign to address this issue.
To phone your congresscritter about this, the main switchboard is +1-202-224-3121.
Please spread the word.
Urgent: Pass 4th Amendment Restoration Act [Richard Stallman's Political Notes]
US citizens: call on the Senate to pass the 4th Amendment Restoration Act.
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: Stop intimidation of voters at polls [Richard Stallman's Political Notes]
US citizens: call on Congress to stop deportation thugs and soldiers from intimidating voters at the polls.
See the instructions for how to sign this letter campaign without running any nonfree JavaScript code--not trivial, but not hard.
US citizens: Join with this campaign to address this issue.
To phone your congresscritter about this, the main switchboard is +1-202-224-3121.
Please spread the word.
Urgent: Raise taxes on rich people and corporations [Richard Stallman's Political Notes]
US citizens: call on your congresscritter and senators to raise taxes on rich people and corporations.
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.
UK report on global heating effects on national security [Richard Stallman's Political Notes]
The previous UK government commissioned, a few years ago, a secret report on how advancing global heating disaster can affect the UK's national security — both directly (for example, danger of starvation in Britain) and indirectly (for example, hundreds of thousands of people trying to emigrate from some country because they will die if they stay put). The government is keeping the report secret, but some news about it is coming out.
Drastic measures are called for against the billionaires who keep making global heating worse and blocking the necessary actions to curb it.
Supposed Intelligence clever at cracking security [Richard Stallman's Political Notes]
Supposed Intelligence may not really understand the data it is told to look at, but it can be clever at cracking security.
(Please call that "cracking", not "hacking.")
Steps to fix what the wrecker has broken [Richard Stallman's Political Notes]
Robert Reich proposes 10 steps to fix what the wrecker has broken.
Regarding item 6, even in 2023 the US had far too much media consolidation. We need to break up the old media cartels, not just prevent new ones.
Regarding item 9, electing the president by popular vote, we must first take steps to prevent corrupt state politicians from rigging the election.
Regarding item 10, we need much stricter limits on funding of campaigning by the rich than what the Corporations United decision abolished. Billionaires can afford to pay lawyers to set up complex schemes to jump through complex hoops. We need to block the complex schemes, not just simple ones.
Chamber of Commerce Tour [Richard Stallman's Political Notes]
Ralph Nader: *Chamber of Commerce Tour Ignores 250 Years of America's Socialism.*
Hunting, p01 [Ctrl+Alt+Del Comic]
The post Hunting, p01 appeared first on Ctrl+Alt+Del Comic.
AlpineBSD combines NetBSD with Alpine’s apk package manager [OSnews]
AlpineBSD is an operating system based on the NetBSD kernel with a userspace inspired by Alpine Linux and the objective of making it possible to use as little AI-generated software as possible. There is no LLM output included in the base system or main package repository (AlpineBSD AI policy).
↫ AlpineBSD’s website
AlpineBSD uses the NetBSD kernel, libc, and essential tools, and combines them with Alpine’s apk-tools package manager, busybox, and generlaly preferring GNU tools over their BSD equivalents. It uses the s6 init system, but the project intends to add OpenRC as an alternative. The project is in its very early stages, so don’t expect things like an installer; you’re on your own, basically.
“My favourite PowerMac is a Nintendo Wii” [OSnews]
The Nintendo Wii (and its related consoles) were already made to run the PowerPC version of Windows NT as well as Mac OS X, but now we can add another milestone to the list: classic Mac OS.
So today I reached a nice milestone in one of my projects: my work porting classic Mac OS to PowerPC systems with what I affectionately call ArtX chipsets (Nintendo GameCube, Wii, eventually Wii U; the GameCube’s Flipper integrated chipset was very much designed by ArtX as it was effectively finished when ATI acquired the company, and the Wii’s Vegas (and its later revision Bollywood) and Wii U’s Latte are effectively straight successors) reached the desktop for the first time, most likely the first time since the CHRP clone era that someone outside of Apple brought up classic Mac OS on a new system to the desktop. Despite still being nowhere near ready for a public release, I want to talk about the challenges I faced with this project so far.
↫ Rairii at Virtuallyfun
Various versions of Mac OS boot to the desktop, including Mac OS 9.2.2, the last ever version, but there’s still a ton or work to be done before this is ready for release. Still, with Rairii amazing track record of porting all kinds of things to various PowerPC machines, including getting the PowerPC version of Windows NT to run on various PowerPC Macs, I have little doubt they’ll manager to get this to a releasable state.
I absolutely love this kind of work.
Microsoft hopefully fixes Modern Standby and adds online Windows reinstallation [OSnews]
I think it’s safe to say that Windows’ Modern Standby feature isn’t exactly free from issues. The biggest problem seems to be that it’s not very good at actually determining when to transition between regular sleep and hibernation, often leaving users with an empty battery as they open their laptop’s lid. Microsoft has now released an update to hopefully address this long-standing problem.
This update improves the adaptive hibernate policy to provide more instant-on resumes from Modern Standby while helping preserve battery life when the charge is low. Noticeable changes include less hibernation while the battery is above 80% and hibernating sooner when the battery is below 10%.
↫ KB5127936
Among other new features and changes this update brings are Cloud Rebuild, a way for devices to install Windows without needing a local image. Cloud Rebuild can be started form within an existing installation, remotely by administrators, or through the Windows Recovery Environment. Obviously, a working internet connection, wired or wireless, is required for this feature to work.
This is the same update that introduces CLAT, which we talked about yesterday, to smooth the transition from IPv4 to IPv6.
The Big Idea: Sharon Shinn [Whatever]

Bursts of inspiration are all a writer can ever hope for, but how do you flesh that inspiration out into a coherent story? Not just coherent, but a good story. Author Sharon Shinn shares some of her personal experience with this topic in the Big Idea for her newest collections of short stories and poems, Tropes: Stories and Poems of the Fantastical.
SHARON SHINN:
In my 9th-grade creative writing class, my teacher walked in one day holding a small potted plant. “I want you to write a story about this,” she said—and then deliberately dropped it to the floor. Dirt and terra cotta shards went everywhere. My fellow students and I stared for a few moments, and then grabbed our pens and paper. Sadly, I can’t remember what story I turned in, but I do remember that it was rather more lurid than my classmates’ tales of cats pushing pots off of windowsills.
Since I’ve became a published author, dramatic writing prompts have seldom come my way. But they’ve been replaced, at least now and then, by the flashes of inspiration that catch me at unexpected moments. Sometimes they’ll arrive as images, inexplicable but insistent; sometimes as phrases or sentences that seem melodic and hypnotic. Sometimes they will just manifest as ideas. What if…
Often these tantalizing flashes just camp out in my mind for months or years before I decide what to do with them. In idle moments between other projects, I’ll examine them again, trying to figure out how they might fit into a story, what would come beforehand or what would follow after. As most writers would tell you, the idea is the easy part. Fleshing it out is the challenge.
That’s the case with three of the pieces in my new collection, Tropes. I’d had the prompts for years. I just wasn’t sure of the rest of the stories.
In the case of “Blessing in Disguise,” a novella set in my Elemental Blessings series, the flash was an image. Of a broken derelict of a man sprawled before a temple door, waiting out a rainstorm. In this world, whenever a newborn is five hours old, a family member goes out to find three random strangers at a temple to draw blessings that will guide the child for life. So I knew that someone was going to show up to demand that this man participate in the ritual—and that he would try to decline because didn’t feel worthy. Why? Was he a criminal? An assassin? An addict? What had brought him to this point? How could the simple act of choosing a blessing alter the trajectory of his life? Who had come to the temple asking for this favor? How would that person’s life be changed by this meeting? And how could this story fit into the overarching narrative I’d built over five novels? It was a long time before all the pieces came together.
Another novella in the collection, “Rescue,” was inspired by an opening scene that I thought was compelling but had no idea how to develop. A woman is bound to a stool in the middle of an arena. A unicorn is brought in to determine whether she’s a virgin. The woman realizes the two of them have three things in common: We had both been brought here in the hopes that we would please the prince. We were both in fear for our lives. We were both pregnant.
But—but—then what? Does the unicorn certify her as a virgin, even though she’s not? Why would the unicorn care? Who’s the father of the baby? Is he a good guy or a bad guy? And why introduce a unicorn into a story if you’re not going to make some kind of magical use out of it? But what? That one took a lot of thinking, too.
But the line from this collection that I’ve had in my head the longest is this one: Uncle Joe’s house used to eat people. Loved the line. Had no idea where to go with it. Obviously, if you’ve got a carnivorous house, someone’s going to get devoured along the way. But who? Why? Who’s telling the story? I don’t write a lot of short fiction in general—most often when I’m invited into an anthology—and no anthologies had come along with a theme that seemed to fit this sentence. So it floated around in my mind for years before I decided to sit down and figure out the rest of it. It turned into the short story “The Secret of the Spiral Stair.”
Even when it takes me a long time to write the attendant stories, I love these lightning strikes of inspiration. And I love that other writers have experienced similar moments. In a fascinating 2009 TED talk, writer Elizabeth Gilbert discusses the creative process, which at times can feel “downright paranormal.” She says, “I have had work or ideas come through me from a source that I honestly cannot identify.” She talks about poet Ruth Stone, who, while working out in the fields, would feel a poem coming at her over the landscape like “a thunderous train of air.” Stone would race back to the house to grab pencil and paper so she could collect the poem before it abandoned her in favor of another poet who was paying more attention.
I’m not sure where those mysterious flashes come from, whether the sources are internal or external. But when they stick around, I know it’s my job to fashion them into something more corporeal, and then maybe they’ll start haunting other people as well.
Tropes: Amazon|Barnes & Noble|Bookshop
People in ChatGPT-land are talking about Frontier. Not sure who they are or what the context is, but I agree, and want to do more integrations between our codebase and the AI runtimes.
Tech Tips for Parents this Digital Parenting Week [Deeplinks]
In today’s digital world, the internet is an essential resource for young people to access information, explore community, and find themselves. But we know that this often comes alongside fears of experiencing online harms like doxxing, grooming, or bullying.
Trying to protect your family from everything all the time is impractical and exhausting, but some thoughtful planning can help families devise a workable plan that meets their needs and addresses their concerns.
That’s why this Digital Parent Week, we’re sharing easy tips on how parents and their children can work together to co-curate a digital safety plan that helps all members of the family enjoy the benefits of technology while protecting their online privacy and safety.
Online safety begins with communication, not just restrictions. Talk with a young person about how they use the internet: their favourite apps, games, and social media platforms for example. Creating a supportive environment helps young people feel comfortable asking for help if something goes wrong online.
Together, you can think about:
It's easy to think of a young person's experience on the internet as being totally disconnected and different from your own. But now is a great time to also interrogate your own internet habits, like the sorts of sites you engage with, tools you use, and privacy settings you've set. These questions are as valuable to help you as a parent as they are just an internet user.
Sometimes even just figuring out what conversations are worth having can take some effort, we've put together some ideas to get you started in our guide.
Digital security training can feel overwhelming but this is why a community-oriented approach helps. In speaking with your family and friends, you can build out digital security practices that work for you. This makes it more likely that your privacy practices will become second nature to you and your loved ones.
Use secure messaging services for every communication: Choosing a secure service ensures that your privacy is protected from government and corporate surveillance. If you can convince your family to get on board, options like Signal provide the most extensive privacy protections out of the box through its use of end-to-end encryption and limited data collection. But we understand that sometimes it's easier to stick with whatever the family already uses for a group chat, like WhatsApp, Apple's iMessage, or Google Messages, so take the time to familiarize yourself with the limits of WhatsApp and RCS encryption.
Consider the content posted online: It's easy to accidentally share personal information through photos, messages, and other content. Children and adults may unknowingly share personal information through photos, messages, location settings and app permissions. Take time together to review privacy settings, check which apps can access the camera or location, and discuss why personal details should be shared carefully. Make sure you have family agreement about when and where to post photos of each other or your home.
Create incident response plans: Developing a plan for if or when something bad happens is a good practice for anyone, but especially with younger people. It’s important to strategize with your family around what to do in the event of such things happening, and doing so before an incident occurs is much easier than when you’re presently facing a crisis.
Alongside this, simple steps like using strong and unique passwords on all devices, including those that are shared in the family, can make a real difference. Regardless of age, there’s no time like the present to get started on good security hygiene, and for many that starts with a password manager and two-factor authentication.
Many sites permit parents to control features such as personalization, algorithmic feed, autoplay, endless scroll, reactions, notifications, and time limits. Talk as a family about which features are important and useful and which are problematic. The conversations above around boundaries and digital literacy are a more effective way to prepare youth for accessing the internet. To develop true autonomy, young people need the privacy to discover the world for themselves without their parents monitoring the contents of every conversation they have.
Explore new apps together and revisit family rules as they grow. These decision points where you’re exploring with a young person what you’re both comfortable with can be good moments to “find your way to a yes” for whatever feature or tool or game they’re asking about. The questions they ask, along with your responses, provide a road map for what to look for in privacy controls that can get you to a place where everyone is comfortable engaging with that technology.
There is no one size fits all to the tech questions and concerns a parent will face, and keeping young people safe online is not about removing every risk and monitoring every click. This Digital Parenting Week, you can start to focus on what’s important for your family and how to best achieve those goals.
If you're still not sure where to start, installing EFF’s Privacy Badger on every computer in your household is a great starting point to protecting everyone's privacy.
For more detailed information on all these tips and more, visit EFF’s Online Privacy Guide for Parents and Youth.
Posted on Twitter re Frontier being real in 2026, not just a memory.
Knicks settle down [Scripting News]
I was pretty sure the Knicks just needed to settle down, but the fans and the city and journalists and to some extent the team were still living mentally in June, in the aftermath of the greatest sports win in a long time. Then the team lost three, probably because they too were in the bubble of last year. This is the team that when asked how they felt about their chances in the playoffs when they were sweeping a team like the Sixers or Cavs, they would say -- the score in the next game is 0-0. If you believe it was your shit that made you win, try again. It's why rich people lead such miserable lives. They think they won the game, heh but no one wins the game, you may just get a reprieve to play again in the next season, as the Knicks are doing now too.
Last night's game was a perfect demo of why we love this version of the team so much. When someone isn't making their shots, they sub a bench player who adds the spark they needed, and everyone plays with gusto. There's always a new man up on this team or so it seems.
It was good that everyone got the doom and gloom out of their systems, don't mistake this season as a repeat of last season. You're not entitled to anything and bet against it being quite different. Everyone is a year older. Mitchell Robinson is gone. But last night we were reminded of the overall character of the team which seems now to be constant. Every freaking bench player is a phenomenon. How did they get such a bench? Great business people who understand the sport, and coaching that knows how to manage a talented team to go all the way, and players that are close to each other, and feel the team.
I said this durning the doom and gloom, I could cruise for another 50 years on the high from last season. But I am ready for more love from this team and from the city that loves the Knicks even when they suck (please remember that) and we should feel no less proud when they don't.
[$] Containers as a recognized kernel object [LWN.net]
The foundation of the design for containers in the kernel is that there isn't one; there is no container abstraction that the kernel recognizes. Instead, the kernel provides a long list of components — namespaces, control groups, sandboxing mechanisms, and more — along with a note that says, in effect, "some assembly required". There have been attempts (repeatedly) over the years to turn containers into first-class objects with kernel support, but they have never gotten far. Now Josef Bacik is making a try with a concept that he calls "cells".
Security updates for Thursday [LWN.net]
Security updates have been issued by AlmaLinux (cjose, emacs, expat, gcc-toolset-15-gcc, java-17-openjdk, java-25-openjdk, kernel, kernel-rt, libX11, libXi, libXrender, libXtst, mod_auth_openidc:2.3, pki-deps:10.6, thunderbird, webkit2gtk3, and yggdrasil), Debian (chromium, firefox-esr, and openjdk-25), Fedora (firefox, librabbitmq, libreswan, python-pillow, and unbound), Mageia (fio and python3, python-pip), Oracle (buildah, cjose, container-tools:ol8, emacs, flute, libbase, libfonts, libformula, liblayout, libloader, libreoffice, librepository, libserializer, pentaho-libxml, pentaho-reporting-flow-engine, and sac, kernel, libX11, libXi, libXrender, libXtst, podman, python-urllib3, thunderbird, and yggdrasil), Red Hat (firefox, goose, kernel, kernel package, kernel-rt, librsvg2, multiple packages, php:7.4, sudo, thunderbird, and xorg-x11-server), and SUSE (alsa, ca-certificates-mozilla, chromedriver, cifs-utils, coredns, coreutils, cpupower, curl, cyrus-sasl, docker, dpdk, haproxy, kernel, libpoppler-cpp3, libsndfile-devel, libzbar-devel, mozilla-nss, MozillaFirefox, nginx, openai-codex, and perl-Cpanel-JSON-XS).
CodeSOD: Oh, K? [The Daily WTF]
Pierre found this cry for help:
for (j = 0; j < DISTRICT_CARDINALITY; j++) {
/*
* A poor way to work around some sort of memory
* violation. k gets clobbered, so I buffer l with it.
* Help?
*/
for (k = 0, l = 0; k < customers; k++, l++) {
/* c_id */
FPRINTF(output, "%d", l + 1);
METAPRINTF((output, "%c", delimiter));
Honestly, I'm always a little worried in C-like languages when the loop variable isn't scoped to the loop and declared in place. Always concerning, so when there's concerns with clobbering, I'm not surprised.
This iterates across a set of "districts", and then iterates
across a list of customers. Standard output functions are replaced
with macros, and honestly, I don't know that I want to know what
happens in METAPRINTF.
But fine, this iterates across a bunch of stuff and generates output. It's the comment that we're really curious about. "Some sort of memory violation", so we duplicate our loop variable. What on earth could be happening here?
Well, Pierre found the "memory violation", which is probably what you expected:
k = strlen(someOutputString) - 8;
k is used elsewhere in the loop as a variable.
That's not a memory violation, that's just how variables work.
This leaves us with one possible conclusion: the developer who wrote the comment couldn't find this bug. And given the weird use of macros here, I'm going to go out on a limb and guess that it's not the developer's fault; I strongly suspect the loop is so long, so complicated, and so obfuscated that very few developers could find that.
My earlier complaint about scoping the variable to the loop wouldn't fix this, which I guess is on me. They still should really scope the variable to the loop.
Some simple Eufymake tips 3D print over print [RevK®'s ramblings]
My Eufymake UV ink printer has issues, and so does dealing with Eufymake as a company, as I have blogged, but today, let's look at it working, and doing what I ask.
I have done a few "over prints" now, where I am printing on something that exists - printing on PCBs is excellent. But this time I have a 3D print that I want to accurately over print.
So a few tips.
At this point, when you snapshot, the centre of the image should be right. It is worth double checking it matches the image. Do not trust anything away from the centre - trust the printed outline. Checking the image centre helps double check you have placed on the outline.
If doing many prints the bleed ends up on the paper and gets thicker. In my case with a solid base that means print after print the placement of the image gets easier as there is a thick print line around the edge and the model slots in to place.
Indeed, I printed an outline inside the image and placed on that - an alternative would be an outline outside the image, and print a thick layer on paper with the Eufymake so as to create a positioning slot for your 3D image to slot in to place.
The results. Some happy teenagers who can tap to pay on their Netherite Ingots (whatever they are?!).
I think this has proved a good exercise. The case printing I have been working on could have a thick outer outline printed on paper to perfectly align the case before printing. So yes, good testing even on a silly thing like this.
Cheap Code, Expensive Confidence [Radar]
I recently used a coding agent to build Task Viewer, a small community helper for IBM Bob that we use internally at IBM. It’s a convenience plug-in to Bob, with no critical production role. Despite helping some users internally, for me it’s a real-world experiment on a project to find out how much of the implementation I can delegate. How much to delegate also depends on what the person doing the task still needs to learn. Someone familiar with the application may already know how to check the result, while a developer learning the system may need to work through part of the implementation to develop that understanding.
Even when I hand all the coding to an agent, my basic requirements for myself are to check functionality and the design manually. I want to use the application and see whether it behaves the way I intended. Does the design make sense when I actually have to find something? Is the information presented in a way that I can follow? Those are questions I still need to spend time with, even when the application is small and the implementation was largely delegated.
For Task Viewer, I also created plenty of UI tests to check that the data appeared correctly. That gave me a way to repeat some of the checks as the application changed. There was still a separate question about the calculations, though. Seeing a number in the right place on the screen does not tell me whether it’s the right number. I ran SQL queries against the underlying data to check the math, going back to the records the application was supposed to represent.
There is quite a bit of understanding involved in that seemingly ordinary step. To check a calculation, you need to know what the result is supposed to mean and which records should contribute to it. You need some expectation against which to compare what the application displays. Thankfully, I had help from the team in uncovering relationships in the data that I would not have been able to derive or even explain on my own.
For this particular application, I could inspect both its behavior and the data behind it, and I had people to turn to when my own understanding was incomplete. Its limited role also gave me room to experiment without making the result part of a production system. Building that confidence took time, because I had to check the behavior, establish what the numbers should mean, and resolve the questions I could not answer myself. All of that, for me, belongs in the assessment of how much coding I could delegate.
This is why I find descriptions such as “The agent got me 80% of the way there” increasingly difficult to interpret. I understand the feeling behind them. You have something running, most of the interface exists, and it looks as though the remaining effort should be the smaller part. But a calculation based on the wrong records may look perfectly reasonable until you find a way to check it. Before correcting anything, you have to discover where your understanding and the application’s behavior diverge. The agent may help with that investigation too, although the amount of code it has already produced tells you very little about how long it will take.
DORA’s analysis of 1,110 responses from Google software engineers describes some of the time saved during code generation being used for auditing and verification, alongside productivity benefits. I would expect to check an application I had implemented myself too, so any comparison needs to include the time it takes to reach a result we are prepared to use. Otherwise, we can make agentic development look unusually expensive by counting checks we leave out of the human version, or unusually cheap by stopping the clock when the agent says it has finished.
Some of that effort can make later changes easier to accept. Once a UI test exercises an important behavior, it can keep doing so as the application changes, and a calculation checked against a small set of records can become a regression test. I wrote about this in my earlier article on the right amount of specification. Turning an expectation into an executable check lets us reuse some of the thinking that went into it. We still have to establish that expectation, though. If the application and its tests share the same mistaken interpretation, running the tests more often will keep confirming the same mistake.
For Task Viewer, those expectations depended on relationships in the data that colleagues helped me understand. I knew how to run a query, but I still needed their explanations before I could judge what it should return. Looking only at the time I spent checking would leave out the knowledge they brought to those conversations, just as looking only at the generated code would leave out my checks. The confidence we need to accept a change can depend on several people understanding different parts of the system.
When someone is still learning one of those parts, the implementation itself may be how they begin to understand it. Following a value from the database to the screen gives them reasons to ask why certain records are selected and how the application uses them. If an agent completes that whole path for them, they may reach a working feature without having answered those questions themselves. The same task can be a sensible delegation for an experienced engineer and an important learning opportunity for someone else.
Shen and Tamkin’s study about how AI impacts skill formation reports on a randomized experiment with 52 developers learning an unfamiliar Python library. Participants with AI assistance scored lower on an immediate assessment of their understanding. But the researchers also observed that those participants who stayed actively engaged with the AI had better learning outcomes, although that observation does not establish which way of using AI led to better learning. A short exercise cannot tell us how an engineer develops over several years, but it gives us a reason to look beyond whether the assigned feature was completed when we assess what someone gained from a task.
We can make a decision about autonomy before the agent starts, agreeing on which parts it should carry through on its own and which parts a developer should attempt. Sometimes the reason to limit autonomy is that we do not yet have a convincing way to check the result. Sometimes we can check the result quite easily, but we want the person doing the task to develop a particular skill. In that second case, deliberately keeping part of the implementation with the developer can be the right choice even when the agent could produce acceptable code.
The right choice can probably be made by asking these questions: How much effort will the team need to establish that this result is correct for its intended use? And what does this developer need to learn by doing this part of the task? A feature may be easy for a colleague to verify because they already know the application, while the person implementing it still needs to learn how it works before taking responsibility for future changes. We do not need to turn every routine change into an exercise, but we can choose tasks that give someone a chance to develop understanding they will need again.
Table 1 applies to a particular task, or a part of one, with a particular developer. “Straightforward to verify” means we have a credible way to assess correctness for the intended use. A passing test suite does not settle that question if we are unsure what the tests should assert. When checking is difficult or we do not yet know how to do it, the first step is to make the uncertainty smaller, with help from someone who understands the area. Giving the whole task back to an inexperienced developer would leave that uncertainty unresolved.
| Learning value for this developer | Straightforward to verify | Difficult or uncertain to verify |
| Little new learning needed | Delegate within scopeAgree on acceptance checks and let the agent implement. | Establish evidence firstNarrow the task and resolve unknowns. Delegate the parts you can assess. |
| Important learning opportunity | Keep the learning stepThe developer attempts the relevant reasoning or implementation before seeing a generated solution. | Investigate togetherUse a smaller example and an experienced colleague. Limit the agent to specific questions and supporting tasks. |
Imagine a new hire adding a “show only open issues” filter to an issue list in a small Java application. An agent could generate the request parameter, the query condition, and the changes to the screen. For someone who already knows the application, that may be a sensible delegation. Someone learning the system also needs to find out which statuses count as open, where the application selects the records, and how the team expects the change to be tested. Discussing those questions with a colleague is part of learning how to contribute to this application.
For this assignment, the developer could follow the existing request through the application and write the first test before asking the agent to implement the filter. Suppose the list shows twenty issues at a time, and the test data contains twenty closed issues followed by five open ones. Selecting “show only open issues” should display those five. If the application first loads twenty issues and then filters them in the browser, the screen will be empty. Working through that difference with a colleague gives the developer an opportunity to understand where filtering and pagination happen. The agent can help with unfamiliar framework code while the developer investigates why the expected issues are missing.
Once the developer can explain the behavior and has a test that catches the mistake, the agent can handle more of the surrounding implementation. A later request to filter by assignee gives them a chance to use what they learned. Can they work out which issues should appear and whether the existing tests cover the combination of filters? Their explanation during review gives the team a basis for deciding how much of that next change to delegate. The first assignment has also given the new hire experience asking about requirements and discussing a change with another developer.
An experienced engineer can also have good reason to limit the agent’s autonomy in an unfamiliar area. I still needed help with Task Viewer’s data, despite being comfortable writing the queries. When a task takes us into a part of the system we do not yet understand, it makes sense to reconsider how much to hand over. A team can make verification easier by improving its tests and sharing what its members know. It can also choose to preserve a learning opportunity after verification has become easy, because another person is going to need that understanding on future changes.
A developer who has been asked to learn through a task needs time to follow the behavior through the application and someone to discuss it with. If we agree on that purpose and then judge the result only by how quickly the feature appeared, we make it difficult for them to keep the learning step for themselves. We may also leave more of the checking with the same experienced colleagues, while giving others fewer chances to develop the knowledge needed to share it.
Before starting, the developer and the colleague supporting them can agree on what the agent will handle, what the developer will do and why, and what would justify changing that division of labor on a later task. For the status-filter example, this means allowing time for the developer to trace the request and write the first test before the agent implements the filter. As that understanding develops, they can revisit the division on a related change.
With Task Viewer, I could delegate much of the coding because I had ways to check the result and colleagues who could help where my understanding was incomplete. I want us to keep creating those conditions as we ask agents to do more. Better checks can reduce the effort needed to accept a change, while time spent learning can help another developer become able to make that judgment. Sometimes that will mean deliberately leaving the first test and investigation with a person, even though the agent could finish them. When we expect that person to take responsibility for the next change, giving them the opportunity to understand this one belongs in our decision about how much to delegate.
Grrl Power #1508 – Laces out! [Grrl Power]
I’ve been working from home for the past 15 years, drawing this lovely comic for you guys, and I haven’t had to deal with rush hour traffic in all that time, (outside of some poorly timed errands and whatnot) but I still firmly believe that people who drive down to the end of the merge lane when everyone else has already merged then forcibly nose their way in, thereby causing 80% of the actual traffic, deserve their own holocaust.
If you’re a geologist, and have opinions on what a cored out section of igneous mountainside should look like, or have other observations on the physics of what’s happening on this page, well, now is your time to shine. Why Maxima decided on this approach vs just a really huge energy beam, who knows? Despite all the energy blast variations she can do, maybe her super petajoule shield buster beam always looks like the one she used on the Fel carrier, and the galaxy knows what that looks like. Also this does have its own cool factor to it. And despite probably being the first weapon* ever used, throwing a rock can still be an effective tactic against high-tech opponents, an archmage, a demon, a whole army, or even a Death Star. It’s just a matter of scale, and/or velocity. Okay, the archmage would probably have the best chance against that sort of thing, but the nice thing about rocks is that they come in all sorts of sizes, and they’re just laying around for free. A boulder the size of a house? Probably not a game-ender on the archmage. If you can throw an entire mountain? That would certainly scale the defensive mana expenditure at the least.
*Like a tool based weapon, not claws or teeth or an aggressive pseudopod.
Oh, look who it is in the vote incentive. The NSFW version is finally up at
Patreon. Plus a bonus pic.
I think she would get in trouble for doing this. She’d mess up the… floor of the waterfall? Is that what it’s called? The receiving pool? No, probably not that. Anyway, she’d churn things up and cause a ton of weird erosion.
Since you might be wondering, Niagara Falls is about 165 feet high, so Babezilla obviously doesn’t have to be full sized. I’d say she’s about 175-180 feet tall here?
Double res version will be posted over at Patreon. Feel free to contribute as much as you like.
Explaining funny [Seth's Blog]
This is one of the most famous comedy bits of all time:
But why is it funny? The disconnect between experiencing it and explaining it represents one of the challenges of teaching. It’s also at the heart of leadership, marketing and culture.
Design, good taste, genre, communication style–these are all human endeavors that inform our days, but most of the time, we’re at a loss to explain them.
Abbott and Costello are avatars, approachable and relatable to their audience. You can see yourself as one or the other, depending on the moment. They’ve plotted an intricate dialogue, one that builds on itself, gaining traction and increasing tension as it goes. And as each expresses their frustration with the situation (and to a degree, with each other), it’s easy to put ourselves in their shoes.
We’ve never been in this exact situation, but we’ve all experienced a moment like this.
Most of us are in on the joke as we watch it. We know it’s a joke, and we understand early on the nature of the wordplay. So much so that the sketch itself becomes an icon, one that others are based on, sometimes with great fidelity:
Funny even before the reign of U2. So iconic that it’s now a three-word shorthand.
We can have the same discussion about your logo. Or why your book cover is less than it could be.
When someone is designing a bridge, we don’t have to wonder if the engineer “gets it.” The metrics are obvious and easily measured. We have precise words and numbers that are external to our own experience and the zeitgeist, and whether a person or a machine does the calculations, it works or it doesn’t.
But much of the rest of the human experience is often too layered and nuanced to be reduced to a simple formula. We need to notice enough and engage enough to get it. That’s what Heinlein was talking about when he coined the 60s term grok.
When a municipality sets aside the resources to build a ‘signature’ bridge, their own Golden Gate, there’s often a conflict. Not just disagreement about the need for something more than the utility of moving across the river, but also understanding what beautiful and important even looks like. Some people don’t get it.
Saying “that’s not funny,” or “I think it’s ugly,” is easy. The difficult work is acknowledging that someone else might disagree.
Human emotions require a viewer, not just a creator. The funny, the beauty, the elegance: they happen for someone, in their experience.
“That’s not beautiful,” is not the same as, “I don’t think that’s beautiful.”
I don’t have to explain a joke or a sculpture or a logo. But I do have to know enough to imagine that someone else is going to get it. We can choose to care enough to figure out why someone gets something we don’t, and imagine what it might take to create something human enough that others will care about it.
There’s no algorithm, which is part of the point.
The Finest Vintage [QC RSS v2]

it's the good stuff
Amin Bandali: Living healthier [Planet Debian]
Earlier this week I had a coaching session with Protesilaos, where we focused on health and wellness. I took some notes during our call, which I expand on here, and share with Prot's permission. I've been paying more serious attention to my health this year, and our discussion was in the context of me striving to live a healthier life. These notes are shared in the hope of being useful and are not professional advice; for medical advice please consult a licensed physician.
Update 24 October 2026: Prot published a note about our discussion on his website: Healthier lifestyle with Amin Bandali
Life in today's fast-paced world can feel busier than ever, where every day is packed with a myriad of activities and tasks that need to be done, or tempting distractions that pop up seemingly randomly, with hardly a moment to spare. Despite that, or perhaps because of that, it's worthwhile to make time for ourselves and the various aspects of our health.
As embodied souls, our bodies condition our minds. We take care of our body so we can take care of our mind. As humans we evolved for an active lifestyle out of survival necessity. In today's society many of us have sedentary office jobs that involve sitting for long periods of time. It's especially important that we try and make time for some regular physical activity like exercising and resistance training, to help build and retain muscle mass and mobility as we age. Fitness does not have to be the end goal that takes over our life, though there is nothing wrong with that if fitness is one's central goal e.g. as a personal trainer. Rather, for someone like me with other primary goals, my reason to exercise is to help live a healthier life, so I could spend quality time with my loved ones and carry out my responsibilities with a healthy body and mind.
Prot mentioned that our health is directly dependent on the following four factors:
Thus compromising any of these - for example, eating greasy food or drinking alcohol - would undermine the gains from exercising.
While pursuing fitness, it's important to have sustained effort so that the body remains active and the mind is not distracted, and equally important to have sustainable effort so that we don't suffer injuries and not make the pursuit of fitness burdensome financially.
Calisthenics is a key part of the strength training activities Prot practices, in addition to the physically intensive work he does on his land.
Calisthenics [...] is a form of strength training that utilizes an individual's body weight as resistance to perform multi-joint, compound movements with little or no equipment. Calisthenics are popular for their convenience, as they require little to no equipment and can be performed anywhere.
Calisthenics can be done progressively, starting small and building in intensity and duration over time. It is also economically/financially sustainable. These calisthenic exercises are a good starting point (barring existing injuries in the related areas):
Aim to perform each exercise in 3 sets of 10 repetitions, but it's perfectly okay to start with fewer and gradually build up. The exercises should be done around the same time everyday, so that there is enough time for the muscles to rest and recover for the next day. Doing them at night then again the next morning, for instance, would be too short of a time period and not enough for the body to recover. It's also vital to get enough sleep each night to make sure the body can properly rest and be energized the next day.
FoodAs mentioned earlier, it's crucial to pair exercise with a healthy diet. I found Prot's programming metaphor for food interesting: similar to how it takes more time and effort for us to process and understand complex source code, breaking down and processing complex foods is similarly more difficult for the body. Prot does not eat fried food, and recommends avoiding sauces as much as possible: greasy, salty, and creamy extras make food more irresistible. They tend to make one want to eat more than what the body needs, and are to be avoided in isolation but especially in combination. In keeping ingredients close to their natural states, not overdoing things, and not eating more than the body needs, Prot extends his philosophy of simplicity and moderation to cooking.
In addition to eating healthy meals, we need to apply similar consideration to snacks: avoiding overly salty or sugary snacks, and choosing healthier ones. Nuts can make great snacks in small quantities, especially almonds and walnuts, if one's not allergic.
In addition to the inherent healthiness of the food or snack, Prot also suggests paying attention to methods of preparation. For instance, regarding concentration or distillation: juices, even when freshly squeezed from fruits, might have more of the fruits' sugar than its pulp and other beneficial parts. Additionally, chewing triggers biological responses in our body which for example can reduce stress, and release satiety hormones to help avoid overeating. So, Prot suggests to just eat the fruits themselves.
Regarding weight loss, it will occur naturally as we introduce exercise into our routine, and pay closer attention to what we eat and drink. It's important to lose the weight slowly to condition our body to the new reality as it changes. Shortcuts tend to either not work, or have negative consequences. By going through the process slowly and with regularity, we gradually retrain our muscle memories and adjust our habits so we can maintain the lower weight and the healthier lifestyle. Regularity is key: it's better do a little everyday, than do a lot on only two days. It helps us develop the attitude that the exercise is part of our regular effort that we do consistently all the time.
Working on wellness and living healthier is a matter of moderation, and building capacity over time. I will give it the time and attention it needs, without rushing, and enjoy the journey to becoming a healthier version of myself.
Take care, and so long for now.
NetBSD adds nano-like text editor to base system [OSnews]
Flag LinuxNetBSD made a
seemingly small, but very welcome announcement today: they’re
adding a more user-friendly, easier to use command-line text editor
to the base install.
To ease the transition for new users, NetBSD -current now includes an alternative editor to vi(1) and xedit(1) in its base system, atto(1).
It is a modeless screen-based editor similar to nano, pico, xedit, or emacs. It is only 48 kilobytes, making it suitable for inclusion in the rescue system.
↫ NetBSD Foundation on Fedi
Most guides and how-to article for operating systems like NetBSD assume the use of vi, and while I don’t want to ignite a flamewar, vi isn’t exactly the most approachable or friendly piece of software out there. My occassional text editing in the command line is all done through nano, but now I’m definitely curious to give atto a go.
While other tech news websites are plastered with articles about a PC maker adding a touch screen to one of their laptops, we’re talking about a new CLI text editor in NetBSD’s base system. Priorities, folks.
Windows CLAT is now generally available [OSnews]
Windows 11 25H2, starting with build 26200.9550, now comes with something called CLAT.
As organizations move toward IPv6-only and IPv6-mostly networks, some applications still depend on IPv4-only applications or services. Windows CLAT helps those applications continue to work when a network does not provide native IPv4 connectivity.
CLAT is the client-side component of 464XLAT. It statelessly translates IPv4 traffic from the Windows client into IPv6 for transport across the network to a provider-side translator (PLAT), which provides stateful NAT64 translation to IPv4.
↫ Jim Alumbaugh at Microsoft’s Networking Blog
Yet another important component of the long, neverending transition to IPv6. Like endlessly cutting a cucumber in half, you’ll never quite run out of cucumber to cut.
A Lovely Stay At Cleveland’s Fidelity Hotel [Whatever]
Remember a couple weeks ago when I asked for Cleveland
recommendations from y’all? Well, the time finally
came to go to Cleveland with my dear friend Lily, and we had an
absolute blast. I want to spend the next few posts regaling you
with my exciting tales of Cleveland, but I figured it made the most
sense to start with the place we stayed at.
While some people feel like a hotel room is the most unimportant aspect of a trip since it’s just “where you sleep,” I find that I require a certain level of accommodations and comfortability. So, after careful consideration, I chose Cleveland’s Fidelity Hotel. I booked a petite suite for us because I believe in balling out when a friend comes from out of state to visit.
This was undoubtedly the correct choice. I could not have asked for a more perfect hotel experience. From the moment we pulled up to valet, to the quick and easy check-in process, to seeing our room in person and getting a plate of chocolate chip cookies delivered to our room as a welcome gift from the hotel, it was a fantastic first impression.
At check-in, the front desk lady and I were having a conversation about some of the places we planned to go and where we had reservations at, yada yada. When I mentioned the only night I didn’t have dinner reservations for was Sunday, she quickly and enthusiastically suggested a place called Jaja’s. After looking it up, I booked it for dinner on Sunday and later on told her we went ahead with her suggestion, and she was so excited for us! She said she wanted to hear all about our experience and see pictures of the food. A+ recommendation from her! (There will be a post over Jaja’s because it was so good.)
Anyways, our room was super clean and comfortable, and had some seriously beautiful features, like the bath tub and bathroom tile:


There were two super comfortable robes available for us, one pink and one maroon-ish, and the bathroom has its own thermostat so you can make the bathroom nice and warm when you get up to shower in the chilly hours of the morning!
Despite me very much looking forward to taking a bubble bath in that amazing soaking tub, I never did and I am so upset about my missed opportunity! Part of the reason I wanted a petite suite was for the tub! I seriously can’t believe I didn’t carve out time for a nice soak. Next time, for sure.
The bed was large and super comfortable:

(Giraffe not included in your stay.)
Lily and I are thankfully both not bed hogs or blanket stealers, so this bed was more than enough space and comfortable for both of us.
Plus there was this giant wardrobe (with automatic lights when you open the doors) that gave us both plenty of room to put our clothes in:

Of course, we can’t forget about the absolutely stocked mini bar area:

Not only is there a mini fridge totally full of mixers, beverages, and more alcohol than what is up top there, but there’s a whole cocktail making setup! You could get so fancy and creative at the mini bar with that cocktail shaker and muddler. Plus, there’s a gooseneck electric kettle and tea, coffee, and coffee cups, and bags of candy and snacks. Here’s the official mini bar menu:

Let me give you guys a little tip here. Inside the fridge was three small shot bottles of Tito’s. They are listed as $10 for one of the 50ml bottles, so all three would be 150ml for $30. The 375ml bottle of Tito’s on top of the mini bar is $35. Which sounds like a better (and more fun) deal? And for the tequila, there’s the $12 little bottles of Casamigos, but the big bottle is Lalo tequila, which in my opinion is WAY better. So pop one of those suckers open and if you don’t finish it, take it home! That’s what I did.
We absolutely loved this room, and the only thing better than the room was the service. I have never had better hotel hospitality in my life than at the Fidelity, and I’ve certainly been to a few hotels.
Thinking back on it, I really can’t believe how nice everyone was. Not only did I have some seriously great conversations with them (I promise I didn’t impede their work (too much)), get amazing recommendations, and get greeted with chocolate chip cookies, but I was also given some free drink tickets to use in their restaurant, the Club Room. I was complimented on my outfits by them, welcomed in and wished farewell upon arriving or leaving, and even when I had a maintenance issue with the door to my suite, the maintenance man was a gem! I seriously felt like I had stumbled into a diamond mine of hospitality.
So, huge thank you to David, Nina, Cyle, and everyone else who made our stay so amazing.
Of course, can’t forget about the aforementioned Club Room. The lobby for the Fidelity is charming and elegant, and with the restaurant having velvet bench cushions, beautiful stoneware, and eye-catching chandeliers, it all feels intimate and cozy yet still elevated and intentional.
Though we didn’t have a full meal at the restaurant because we had reservations for so many other places, we did get a snack and drink upon arrival.

We picked the stuffed dates with pimento cheese, bacon, and pickled mustard seeds:

Listen, I will always love a stuffed date, there’s no two ways about it. These were as delicious as they look (which is very!).
And I wanted to try the polenta:

Lily actually doesn’t like polenta at all unfortunately, but I thought this was really good. Polenta is something I almost never see offered, so I knew I wanted to try it here, and I’m glad I did. This was a nice, warm, comforting bowl of polenta with brown butter and mascarpone. Yum.
And of course, our drinks! The Salty Paloma and the Desert Oasis:

Both of these were really excellent, and that’s such a bright and vibrant slice of grapefruit to accompany it!
I also went for breakfast one morning and got a stack of pancakes:

These were perfectly dense and a good treat to start my morning with (though I’m not very hungry in the mornings so I only ate one and then took the other two back to my room).
Now, when I booked the Fidelity Hotel, I actually booked one of their packages they offer. Their All Access Night Out package comes with two drink tickets from their bar, a $20 minibar credit, half priced valet, and complimentary late checkout at 1pm (which Lily and I definitely ended up needing). Since valet is usually almost $60 a night (with in and out privileges), the half priced valet saved me almost a hundred dollars.
Oh, and the drink tickets I got with the package are separate from the ones the lovely front desk girl gave me as a gift. After some really great conversation with her, she even bumped me up to VIP status because we were vibing so well, and then we complimented each other’s nails! I’m serious, their friendliness is unmatched at Fidelity.
For three nights in the petite suite, valet, minibar charges and restaurant/bar charges, yada yada, it was around $1300. The Fidelity Hotel is definitely a luxury priced place, but I do think the experience is unmatched in Cleveland, and maybe even all of Ohio. It is definitely worth splurging on if you’re going to be in Cleveland for a couple of days, or for something special like an anniversary night. We certainly enjoyed our stay, anyway.
Have you been to Cleveland’s Fidelity Hotel before? Or maybe their Cincinnati location? I would love to stay at the Cincinnati one. Are you a valet type of person or a “I will find parking myself” kind of person? Let me know in the comments, and have a great day!
-AMS
[$] LWN.net Weekly Edition for October 29, 2026 [LWN.net]
Inside this week's LWN.net Weekly Edition:
Sylphide OS: an operating system for computers based on microcontrollers [OSnews]
Do you want a hobby operating system with a desktop for a microcontroller-based computer? Sylphide OS is a new project aiming to build just that.
For the last few weeks, I’ve worked on a new pet project: an operating system for computers based on microcontrollers. There aren’t many yet, but I expect them to be more and more common.
Why MCU computers ? You get a relatively very simple platform, booting straight to your code (or almost), and you can understand the whole architecture. Exactly as it was with home computers long ago. And not at all what you get with modern computers. Even booting involves lot of very different systems, black magic, and even blog/proprietary software.
↫ Thomas Capricelli
It’s very early in development, but by building it atop FreeRTOS, Capricelli had a head-start. It’s got a basic desktop, one that might need some changes to avoid the lawyers. The code’s open source, of course.
A report from the LPC sched_ext microconference [LWN.net]
The Linux Plumbers Conference blog has a report from the sched_ext microconference held in Prague.
Three main topics dominated the discussions
- Priority inversion and how to handle it in sched_ext: lock holder and lock waiter preemption, time slice extension, and making proxy execution work together with BPF schedulers.
- Paravirtualized scheduling: letting the host and guest schedulers cooperate across the VM boundary, with sched_ext as the policy engine on the host.
- Device and topology-aware scheduling: using hardware feedback (Intel HFI), device/accelerator locality and cache topology to drive task placement.
Nautical Naughties [Penny Arcade]
I identified something really odd while I was out at PAX Aus; the normal cadence and tenor of the AI discourse began to vibrate at an especially high frequency. The conversation has always been fraught, but everywhere I turned the side which advocated for the tools was really spun up, aggressive, and emboldened, and I wasn't seeing the counterpunches I'm used to. My presumption is that it's connected broadly to the Anthropic IPO, which is a severe test of… well, it's a gut check for the whole ball of wax - the future they are attempting to sell.
The Big Idea: Wole Talabi [Whatever]

Big ideas don’t always have to start out as grand bursts of inspiration. Sometimes a big idea is made up of smaller ideas over a long period of time that all snowball together in perfect harmony. Author Wole Talabi explores this idea as he talks about his newest novel, The Fist of Memory, and cites some other great authors that lent some of those small ideas to him.
WOLE TALABI:
When I look back at the process of writing The Fist of Memory, I don’t see a single big idea that anchored me through it. I see many small ideas orbiting a glowing spark of motivation like a protoplanetary disk that eventually coalesced into a novel.
So yes, I could tell you that its inspired largely by a lot of the action media I had consumed growing up, woven together with my deep and endless fascination with first contact SF narratives like some weird Nigerian lovechild of John Woo’s The Killer and Cixin Liu’s The Three Body Problem. I could tell you it features assassins with direct neural interfaces and is set in a grounded but ultimately hopeful near-future world where the impact of climate change is impossible to ignore. I could tell you that it tries to unify uniquely African traditional beliefs and philosophies like Sankofa (which emphasizes the importance of remembering and learning from the past to shape the future) and Ubuntu (that interconnectedness is what makes us who we are) with modern scientific understanding of the nature of reality anchored in quantum mechanics. I could tell you that the world of the novel is shaped by the uniquely Nigerian brand of political violence and turmoil extrapolated from the country’s real-life complex political history of coups and behind-the-scenes power struggles. I could tell you all this, but these are all fragmentary ideas and inspirations and influences and intentions, and they don’t tell you much about why it took me so long to finally put them all together and what they all add up to.
Besides, I can’t tell you the one really big idea behind The Fist of Memory without spoiling at least some of the plot. So instead, I’ll tell you about the place stories come from, where small ideas can connect to become more than the sum of their parts because the big idea behind this novel is about connection anyway.
SF’s big mama Ursula K LeGuin described the production of great art as a journey into the self to pull from the “collective unconscious” – a Jungian idea that beneath the individual unconscious there lies something collective: patterns, myths and archetypes shared by humanity. I’ve always been fascinated by this concept but never applied it to my own writing. It seemed like an abstract way of explaining why so many stories across cultures seemed to share some DNA or seem to draw upon something ancient and fundamentally human to speak about the present day.
And that’s all it was at the time – an interesting theory. But when I first started to write this novel, it quickly became clear to me that I was reaching for something larger than I could consciously articulate. I kept trying to consciously impose some kind of superstructural order on the constellation of influences I had brought with me in trying to achieve my intention. But the story and the characters refused to conform. I was trying to construct a planet when what I needed was to journey into myself to find the gravity that would naturally connect all the fragments that had accumulated inside me over decades. Something I needed to go inward to find by excavating my memories.
Memories of a TV program where a professor of sociology argued that Africa and Africans in general were somehow inferior and cited the usual nonsense – present day economic underdevelopment, biased IQ statistics, etc. which triggered in my young mind, a kind of rage and anger and desire to prove him wrong and show that Africans were indeed capable and that our cultures, histories and philosophies contained ideas and concepts are rigorous and fascinating as any other.
Memories of growing up in Nigeria during the brutal military dictatorship of General Sani Abacha – the political chaos, the riots and protests, the lawlessness. Memories of my father and his book of judo techniques that sparked my love of martial arts and Hong Kong action cinema. Memories of my boarding school days in Benin City, studying mathematics and physics, staring at the night sky and wondering – what was out there? Memories of reading my mother’s books on African literature, of discovering the richness and depth of Yoruba mythology and history and philosophy. I let all these personal memories flow together, as I navigated the collective unconscious, seeking connections between them and the larger human desire for connection, for survival, for care and understanding. It was then that I understood that connection itself was the story. It began to flow out of me – less like construction and more like archeology.
After that, it was just a matter of editing to get the structure and tone and rhythm and flow of the story right. It’s funny now to see that the novel I had been trying to assemble from apparently disconnected fragments of myself was about the possibility that disconnectedness itself might be an illusion. One that can only be broken in the subconscious. That realization wasn’t just my method of writing the novel. It became what the novel was about.
The big idea of The Fist of Memory is the possibility that, just as there are connections inside us that we aren’t always consciously aware of, what we perceive in the physical world might, at another level of reality, be connected. That things which appear separate can be part of the same continuum. Science and spirituality. Life and death. Violence and redemption. Past and future. Heroism and villainy. Memory and reality. One human consciousness and another. To quote big mama LeGuin again the idea is that, “The unconscious mind is coextensive with the universe.”
Writing this book has taught me that stories are technologies by which we connect to ourselves and to each other. I hope that when you read it and are done with all the excitement, technology, politics, action and physics I’ve baked into it, that you are left with a warm glowing feeling of possibility and connection.
The Fist of Memory: Amazon|Barnes & Noble|Bookshop
Author socials: Website
C++/WinRT overcorrection: Using make_self and immediately converting it to the projected interface [The Old New Thing]
In C++/WinRT, there are two ways of creating objects that you yourself implement.
For the purpose of this discussion, let Impl be the
class you wrote that implements a Windows Runtime object. If you
are implementing something that was declared in an IDL file, it
will be the
winrt::Namespace::implementation::ClassName for the
instance object or it will be the
winrt::Namespace::factory_implementation::ClassName
for the factory object. If it wasn’t declared in an IDL file,
then it is the class that you manually derived from
winrt::implements.
One way to create the object is to use
make<Impl>, which creates the implementation
object and then returns the Windows Runtime projection version of
that object. (If Impl is manually-derived from
winrt::implements, the projection is the first
implemented interface.)
From that Windows Runtime projection, you can regain access to
the implementation object by doing
get_self<Impl>(projected), if you want to access
things in the implementation object that aren’t exposed in
the projection.
Alternatively, you use make_self<Impl>, which
creates the object but returns a
winrt::com_ptr<Impl> instead of a projection.
You can then access things in the implementation object from that
winrt::com_ptr, and convert it to the projected type
with the * operator.
| make | make_self | |
| ↓ | ↓ | |
| projection | get_self → |
implementation |
| ← operator* |
Which one you choose depends on where you want to go first.
If you are first going to access
non-projected public members of the implementation class, use
the -> operator on the
com_ptr<Impl>. For example, you might want to
set up the object before returning the projection.
winrt::IVector<winrt::Widget>
MakeWidgets(int style, int count)
{
std::vector<winrt::Widget> v(count, nullptr);
std::generate(v.begin(), v.end(), [&] {
auto widget = winrt::make_self<implementation::Widget>(style);
widget->Enabled(true);
return *widget;
});
return winrt::multi_threaded_vector(std::move(v));
}
But if you are just going to use the projection, you can take the direct route instead of going the long way.
// The long way
winrt::IVector<winrt::Widget>
MakeWidgets(int style, int count)
{
std::vector<winrt::Widget> v(count, nullptr);
std::generate(v.begin(), v.end(), [&] {
auto widget = winrt::make_self<implementation::Widget>(style);
return *widget;
});
return winrt::multi_threaded_vector(std::move(v));
}
| make_self | ||
| ↓ | ||
| projection | ← operator* |
implementation |
| ↓ | ||
| returned |
In this case, you don’t need to pass through the implementation type.
// The short way
winrt::IVector<winrt::Widget>
MakeWidgets(int style, int count)
{
std::vector<winrt::Widget> v(count, nullptr);
std::generate(v.begin(), v.end(), [&] {
return winrt::make_self<implementation::Widget>(style);
});
return winrt::multi_threaded_vector(std::move(v));
}
| make |
| ↓ |
| projection |
| ↓ |
| return |
My guess is that the people who go the long way don’t realize that there are two ways. They learned only one way and just rely on it even if there’s a shorter way.
The post C++/WinRT overcorrection: Using <CODE>make_self</CODE> and immediately converting it to the projected interface appeared first on The Old New Thing.
Victory! You Can Now Exclude Apps from Siri AI [Deeplinks]
In the most recent update to Apple’s devices, iOS 27.2, the company has introduced a new setting to “Exclude Apps” from Siri AI, fulfilling one of our asks from our Encrypt It Already campaign earlier this year.
One of our main concerns with new AI features on devices is how those features interact with end-to-end encrypted content, particularly with secure messaging apps. Many AI features require cloud processing, and despite privacy protections engineered into these systems, the content of secure messaging apps may leave a user’s device without their knowledge. That changes the privacy concerns around using those tools. In a perfect world, users would be able to put a barrier up to ensure data from certain apps doesn’t leave the device. Here was our initial ask:
You should be able to tell the operating system’s AI to not access an app, even if that comes at the “cost” of missing out on some features. The setting should be straightforward and easy to understand in ways the Gemini and Apple Intelligence controls currently are not.
At launch, we found the settings to control Siri AI’s app access behavior pretty confusing. You had to toggle several options to block Siri AI off from accessing an app, or disable Siri AI entirely. Turning off Siri AI and reverting to Siri Classic is, for now, still a good option if you’d prefer to use the older version.
The most recent update is far more clear and does more to protect your data. And, just as expected, it comes at the cost of some features. That’s a good thing, actually. The features not working shows that the new setting is effective.
Here’s how to add apps to the exclusion list, once you’ve updated to 27.2:

Now Siri AI cannot access the contents of the app. Excluding an app also means you may lose some features. For example, if you exclude the Apple Messages app, you will no longer be able to have Siri AI read or respond to messages for you. Even the “onscreen awareness” feature, where you invoke Siri and ask it for information about what you’re currently looking at, will not work anymore. For example, if you exclude Signal, you cannot invoke Siri and ask it to discern any information in the Signal app. You’ll just get these messages:

This update from Apple is also a good excuse to check in on the process on Android. It has improved a little, but is not as straightforward as Apple’s new settings, and lacks the ability to set the screen context feature per-app. But you do have some control over what Gemini can access:
This process seems to work well enough for some data and we like that it’s opt in, but it’s not exactly intuitive. For example, Signal doesn’t appear there because Signal doesn’t support Gemini’s app access feature at all. That means Gemini can’t access the content of Signal directly, which is good.
But Gemini can read notifications if you’ve enabled the “Device Assistance” Connected App (which you likely have, since that also enables basic features, like setting a timer—check under Settings > Personal Intelligence > Connected Apps), and it can use screen context unless you’ve disabled the Device controls > Screen context > “Use screen and app data” option in the Gemini Settings. These two features may access the contents of the Signal app or notifications, if you choose to use them. We’d prefer a more hard-lined approach that reduces the chances of user error here: Google should give users the ability to turn these features off per app.
Apple clearly understands that some users want stronger controls over what Siri AI can and cannot access. But we think they should go further and offer the option to only use “on device” AI features, similar to what Samsung offered with its Galaxy AI. We’re happy to see this change and think all operating systems need to consider similar controls moving forward.
Court Should Curb Abuse of Grand Jury Subpoenas Targeting Social Media Users [Deeplinks]
A federal appeals court should curb the government’s abuse of grand jury subpoenas to unmask social media users who criticize lawless immigration enforcement.
That is the message from the ACLU, EFF, and other civil liberties and trade groups who filed a friend-of-the-court brief in a sealed case in the U.S. Court of Appeals for the District of Columbia.
The case involves the government’s investigation of an anonymous Reddit user who commented on a post about an immigration officer in Minnesota. The Department of Homeland Security (DHS) first issued an administrative subpoena to Reddit to unmask the user. When the user challenged the subpoena in court on free speech and statutory grounds (as many others have), DHS withdrew it. But then the government obtained a separate grand jury subpoena—a subpoena issued by a prosecutor to gather evidence to present to a grand jury before any criminal charges are filed—for much of the same information. The user then challenged the grand jury subpoena too, and the case is currently being appealed.
The right to speak anonymously is essential. It preserves privacy and shields critics from government retaliation. In the past year, the Department of Justice (DOJ) has issued grand jury subpoenas to social media companies for their users’ personal data. This is frequently done for improper purposes and without really showing that social media users have committed any crime. These subpoenas have the effect of intimidating and chilling critics, as immigration authorities have engaged in invasive, unconstitutional, and sometimes violent conduct.
As the amicus brief makes clear, courts should not defer to the government’s claims regarding the legitimacy of using grand jury subpoenas to unmask internet users. Instead, the subpoenas must receive proper First Amendment scrutiny. Like many other types of legal processes, grand jury subpoenas are issued by federal officials without prior court approval. And they too can be abused to harass or retaliate against people critical of the government.
The amicus brief was filed in early September and recently unsealed. The brief was signed by the American Civil Liberties Union of DC, EFF, the Center for Individual Rights, the Foundation for Individual Rights and Expression, the Cato Institute, and NetChoice.
It is notable that NetChoice signed the amicus brief. It is a trade group that represents many companies who have received similar subpoenas including Reddit, Google, Meta, PayPal, among others. EFF has called on these companies to do more to defend their users’ speech and privacy rights in the face of these subpoenas.
The PHP security incident is now (almost) old news. The timeline looks something like this: In late August, Wiz Research discovered two serious remote code execution vulnerabilities in PHP called PHP2Shell. They reported the vulnerabilities to the PHP team on August 24, which started working on fixes on September 21. Amazon apparently detected PHP2Shell in the wild on October 17 (four days prior to disclosure). On October 20, details of the two vulnerabilities (CVE-2026-109618 and CVE-2026-109619) were leaked prematurely. The next day, October 21, the PHP team released patches.
If that were the end of the story, it wouldn’t be notable. But the problem goes a lot deeper. Although PHP is no longer fashionable, it runs a huge portion of the public internet. WordPress, Drupal, and Wikimedia run on top of PHP, and people who build on top of these tools are understandably not interested in chasing the latest hot technology. “Choose Boring Technology” is one of my favorite technical essays, and PHP is nothing if not boring. It’s well known and understood, and replacing something so widely used subjects you to a steep learning curve and new bugs and vulnerabilities.
One problem is that PHP has a long history. According to Wiz, the vulnerabilities are present in versions going back to PHP 5.4. The PHP Foundation has released PHP 8.5.12, 8.4.27, 8.3.36, and 8.2.35, and said that all instances of PHP need to be updated to one of those releases. Sites that can’t be updated should be taken offline and isolated. Upgrading an ancient PHP installation is a task that’s likely to fall on organizations least capable of undertaking it. There are plenty of ancient WordPress installations that haven’t been updated in years. There were so many fires to put out, and PHP pretty much “just worked”; running an old version wasn’t causing problems, and with so much else to do, why ask for trouble? Unfortunately, choosing boring technology doesn’t mean ignoring updates. And those who decided not to ask for trouble are now in plenty of trouble.
This situation demonstrates the power of the latest foundation models to uncover vulnerabilities. Wiz used Wiz Atlas (its own model), Gemini 4 Argon, and GPT-5.6 Sol to discover the vulnerability, which isn’t a single bug but a combination of several bugs that have been present for years but were obscure enough and apparently harmless enough to escape detection or repair. As Wiz says,
The underlying flaws had been present for decades, but demonstrating their exploitability required an exceptionally complex chain of steps, at the edge of what human researchers could practically achieve. Frontier AI models substantially reduced that barrier, turning a longstanding flaw into an exploit.
That’s the new frontier in security: finding ways to exploit chains of minor, unfixed, and sometimes undiscovered bugs in novel ways. Wiz was working responsibly with the PHP team to repair the vulnerability. The implications of this, however, are far broader than the fix to PHP, or even the thousands of PHP sites that need upgrades and are now vulnerable to attack. This incident shows dramatically how the gap between the discovery of a vulnerability and its exploitation has dropped. Since exploitation began before the RCEs were prematurely leaked, it makes sense to assume that some other organization had access to models capable of discovering the vulnerability. Gemini 4 Argon and GPT-5.6 Sol are publicly available, though with guardrails that limit their usefulness for security research. I’m willing to assume that Wiz had access to the unrestricted version, but I doubt that the PHP team did. There are certainly other models, including open-weight models, that could be used to find vulnerabilities. Regardless of your stance on restricting model capabilities (I think those limitations are more damaging than helpful), it’s clear that Pandora’s box has been opened. No amount of wishful thinking will undo that.
It’s also clear that we—and I mean all of us—rely on a lot of legacy software that isn’t under our control and that no doubt has multiple flaws that can be rolled up into severe vulnerabilities, which aren’t likely to be updated or patched. A vulnerability in the Brotli compression algorithm was just discovered; .NET, PHP, Node.js, and other widely used packages are affected. That strange site where you created an account to buy a clever present that wasn’t available anywhere else—what software is it running, and do they stay up-to-date with patches? Accounts like that can easily leak information. Maybe it’s not running PHP but an equally ancient version of Ruby on Rails, Python’s Django, or Java Server Pages. At least those are still maintained; there are plenty of web frameworks that have been abandoned, and I’m willing to bet that some of them are still in use. Why replace something that works? Because if you don’t, you will eventually be bitten. Using software that’s no longer maintained may give you some security-by-obscurity, but that’s a losing proposition.
Many older open source projects suffer because there are few maintainers. If you look at the timeline carefully, there’s a monthlong gap between the time Wiz reported the vulnerability and the time the PHP team started working with Wiz to fix it. Does that month represent the time this vulnerability took to rise to the top of the queue, as PHP’s security team fought off a horde of sloppy reports? And PHP is in better shape than most projects. There are many open source projects that only have one or two maintainers, and those maintainers are drowning in AI-generated pull requests. That problem obviously becomes much worse when dealing with a complex vulnerability; the maintainers don’t have the time or the access to unrestricted frontier models, let alone the funds to pay for access to the models.
It will be weeks or months before we know how much damage PHP2Shell has done. We don’t know what the costs will be to sites that won’t or can’t update. The PHP Foundation is lucky to have a dedicated security team that was able to provide patches a day after the vulnerability was prematurely announced. Beyond PHP, we have to realize that PHP2Shell gives us a realistic look into a future in which developers and maintainers struggle to maintain software that has been compromised by exploits chaining together flaws that have been latent for many years. As someone somewhere said on the internet recently, “It’s embarrassing how much bad software we’ve written over the years.” Yes. We’re at an inflection point, and we’re starting to pay the price.
I'm doing a little project on rss.chat today and dusting off
the cobwebs of my brain. Since I last worked on this project, I
have converted Frontier to run on modern OSes and written a whole
new app. Only three months, but I have no recollection, even
reading the code isn't helping much. This is when it's incredibly
good to have Claude Code on the job, I can ask it to guide me
through the process we worked out which feels like it was 15 years
ago instead of 15 weeks. It has complete recall. And even though it
didn't work on Frontier, that was a different Claude project, it
was able to debug something that broke in the build script in the
interim. I've spent the whole year teaching Claude how to be me. Is
that a source of immortality? I won't be around to figure that part
out.
💾 Fighting DOGE's Data Grab | EFFector 38.19 [Deeplinks]
When we give our private information to the government to pay taxes, apply for a job, or vote, we should be able to trust that our data won't later be used against us. But in a betrayal of that trust, the federal government has been pooling the information it has about us on an unprecedented scale—and using it for purposes we never agreed to.
EFF and other groups are fighting back. In our latest EFFector newsletter, we're talking about a recent victory in our lawsuit against the government for sharing federal workers' confidential personnel files with DOGE.
For over 35 years, EFFector has been your guide to
understanding the intersection of technology, civil liberties, and
the law. This issue covers
our free tracker blocker coming to Safari, a call
to action for net
neutrality in California, and
a big win in our lawsuit against the DOGE data
grab.
Prefer to listen in? EFFector is now available on all major podcast platforms. This time we're talking to EFF's F. Mario Trujillo about the dangers of government data grabs—and what defenders of privacy are doing to stop it. You can find the episode and subscribe on your podcast platform of choice:
Want to protect your right to digital privacy? Sign up for EFF's EFFector newsletter for updates, ways to take action, and new merch drops. You can also fuel the fight for privacy and free speech online when you support EFF today!
[$] The campaign to push Northstar into Linux distributions [LWN.net]
There is not a broad selection of mature, open-source web-browser engines for Linux users. Most of the browsers available for Linux are based on one of just three projects: Chromium's Blink, Firefox's Gecko, or WebKit. A new entrant would generally be seen as a welcome alternative, but the recent campaign to push one of the LLM-written Nordstjernen browsers into Debian and Arch Linux has raised some questions about the project's development and security processes.
Redox OS ring buffers project summary [LWN.net]
The Redox OS project, which is a Unix-like microkernel-based operating system written in Rust, has published a report on the work that it has done in the last year to implement io_uring-like I/O.
Last year, the Redox team received a grant to develop io_uring-like Ring Buffer support at the system task level, as a first step towards ring buffer communications between the application and the majority of system services. This phase of the work finished up in September, as the last pieces were put in place.
[...] In addition to implementing the Ring Buffer machinery for our system services and drivers that can support it, an io_uring and liburing-like API for applications was completed and demonstrated. There was also substantial work done on support crates, including an async executor for drivers.
And there was some very exciting work on various performance improvements, to allow much faster switching between applications and their system services. But I will let the team tell you all the technical details.
Braintrust query: Why do you love Markdown? I have a theory why people love it so much -- simplicity. You can't hide any garbage in a Markdown file. You can answer on GitHub or Twitter. Didn't post on Masto or Bluesky because the prompt is 761 chars, over the limit for both systems. I think I'm finally done with truncating well-written prose to fit into one vendor's idea of what's enough text for me. I want to make that a distant memory. So another thing I love about Markdown -- no freaking character limit.
I really like the Apple TV show Small Prophets. It's silly and fun, but also intelligent and beautifully presented. Michael Palin of Monty Python is a supporting actor playing the main character's father. He's famous for a lot of Monty Python sketches, esp the one about the dead parrot. "He's not dead, he's pining for the fjords."
PCB mechanical fit testing [RevK®'s ramblings]
One of my latest designs needed more mechanical fit checks that
usual, it was to work with specific hardware and I wanted to check
the case design with the PCB and battery and so on all fitted
before ordering the PCB. So I 3D printed the PCB.
But the result in resin is stunning beyond belief. I actually ended up going through the KiCAD models and updating some of the 3D model STEP files even to be even more accurate. Some points of mention.
I am amazed at the precision. But actually there was one area that was technically too accurate!
KiCAD output the board, and will even output the solder pads, and output the components. But in real life the components would be in solder paste. The actual output had maybe tens of microns gap between component leads and the PCB itself. This meant a print slice layer had nothing.
The result was most components were fine, amazingly, even though all of the SMD had this gap. The contact area after the gap was enough, even on even 0201 resistors. But the leads of SOT parts were curved to a point as they are in reality. In reality solder would wick up those legs.The result was interesting. The components printed perfectly but very loosely connected to the PCB!
I ended up with a lot of missed components when taken out of the printer (and had to clean the release film) and even more missing after a wash.
What I need (and have a feature request in) is KiCAD to have a solder paste export to fix the component legs to the pads as they would be in real life.
For now I export PCB and components separately and load in to FreeCAD and move one 50um down. The result is a solid print with stuck down components!
Security updates for Wednesday [LWN.net]
Security updates have been issued by AlmaLinux (emacs, thunderbird, and xdg-dbus-proxy), Debian (bind9, openjdk-21, pdns, php-mongodb, and thunderbird), Fedora (brotli, chromium, clevis, eog, flatpak, ghostscript, kernel, libinstpatch, libreswan, mingw-freetype, mingw-gstreamer1, mingw-gstreamer1-plugins-bad-free, mingw-gstreamer1-plugins-base, mingw-gstreamer1-plugins-good, openssh, perl-Alien-Brotli, perl-DBI, python3.12, rust-onefetch, stargz-snapshotter, util-linux, and webkitgtk), Mageia (cifs-utils, libxml2, packages, perl-Cpanel-JSON-XS, perl-Text-CSV_XS, sogo, util-linux, and weechat), Oracle (brotli, firefox, flatpak, gcc-toolset-15-gcc, kernel, libreswan, nodejs:22, nodejs:24, python-urllib3, skopeo, and xdg-dbus-proxy), Slackware (proftpd), SUSE (azure-storage-azcopy, containerd, corepack24, grok-build, ImageMagick, libsoup-2_4-1, matrix-synapse, podman, psqlODBC, python, python-M2Crypto-doc, python-Twisted-doc, and xen), and Ubuntu (authd).
CodeSOD: Session Recording [The Daily WTF]
We still get a fair bit of old school ASP .Net webforms code, which was cutting edge about twenty years ago, but remains a collection of bad choices that tried to make web programming feel like desktop programming. As an aside, what a reversed world we live in today, where everyone uses Electron and our desktop programming feels like web programming.
In any case, Thomas sends us some pretty ugly webforms code.
Me.Session("Albumid") = CType(e.Item.FindControl("lblAlbumID"), Label).Text
If Not Me.Session("Albumid") Is Nothing And Not Me.Session("Uid") Is Nothing Then
Me.strDelSQL = "Delete from tbl_Albumshare_Mast where Album_Id=" & Me.Session("Albumid") & " and Sharer_ID=" & Me.Session("Uid")
Me.objDB.ExecQry(Me.strDelSQL)
Me.Response.Redirect("frmmyalbumshare.aspx", False)
End If
Broadly, the goal of this code is to take an album ID from the user and delete an album from the database where the ID matches and the album is owned by this user. And everything is horrible here.
First, the use of e.Item.FindControl to look up the
input field is suspicious. That's usually what you do when you've
dynamically generated controls, but I don't think that's happening
here. Because we use FindControl we have to cast it to
Label, and only then can we get the text property.
That itself raises a question, because why are user inputs
getting stored in a label?. That's not what labels are for.
They're clearly doing some sort of hacky lookup/autocomplete field
thing and using the label to actually store the input, but
presenting the user with a different UI for picking it. Not an
uncommon pattern in those days, but a hidden field would be a more
typical way of doing it.
We then construct a SQL injection vulnerability and run it against the database.
Then, we use a redirect to send the user to a different page. Again, a common thing to do back then, but a thing I hate: using HTTP 300 codes to redirect users as a form of navigation is awkward and weird.
Of course, none of that is precisely the WTF here. The real WTF
is the developer apparently hates local variables.
strDelSQL is a member variable- why do we need to
store this in a class member? Especially because in the page
lifecycle, we handle one request and then die; either this is
unnecessary, or far, far worse, some other code is looking at this
SQL query later. But far worse than a badly scoped variable is the
overuse of session variables.
Thomas sends us this block as a representation, but the
developer responsible just stored everything they could in
a session variable. While in this example, "Uid" probably makes
sense, "Albumid" definitely doesn't. And in other cases, basically
every user form input gets stored in a session variable, and even
worse: they're often used as loop variables. while
Session("myloop") < 5 type stuff.
And finally, we already know I hate hungarian notation, but here
we have a client side form holdover that pollutes the user
experience: the URL they get redirected to has a hungarian
frm prefix. It's bad enough that you're using
hungarian notation, but don't show that to your users! They really
don't need to see everything.
Are You Getting Your Money’s Worth From AI? [Radar]
The following article was originally published on James Shore’s Successful Software blog and is being republished here with the author’s permission.
Software development has emerged as the biggest beneficiary of AI automation. One CIO I talked to recently, with 170 people in his organization, measured a 2.1x increase in productivity from AI.
That productivity came at a cost. His top users of AI each spent $21,000 on tokens per month. Another engineering leader spends six to eight thousand dollars per engineer per month.
This is not a trivial amount of money. Eventually, it has to come from somewhere, and it will probably come from your personnel budget. Now we’re talking about real consequences for real people’s lives. But there are also real business consequences for not acting.
If you’re going to make those choices—and somebody is going to—they need to be good ones. So you need to know more than the costs; you need to know the benefits too. Are you getting a good return on your investment in AI? Is there another way of using AI that would be better?
How do you know what you’re getting? Anecdotal reports abound, but the reasoning behind those anecdotes are often, to put it politely, not ideal. Some claims are outright fiction.
Given the stakes, that’s a problem.
In this essay series, I’ll show you how to assess the impact of AI on software development in your organization. It’s in four parts plus an epilogue:

Engineering leaders everywhere are feeling pressure to do more with AI. But which approach is best? There are a lot of people with strident opinions about what to do, but not a lot of consensus, and even less hard data.
Even if there were hard data, it’s not one-size-fits-all. A solution that works best for an internal IT development shop isn’t necessarily the one that works best for a startup, and the approach that’s best for a new product isn’t necessarily the one that’s best for a crafty legacy system.
Faster approaches aren’t necessarily better, either. If you get twice as much done per person, but spend so much money on tokens that you have to cut your staff in half, have you actually seen any ROI? You might actually be better off with a more modest speed boost if it keeps your costs down.
You can’t make these trade-offs from a gut feeling alone. In a famous METR study, engineers thought AI made them 49% faster than it actually did.1 You have to measure impact to know what you’re actually getting.

Costs are much easier to measure than impact, but they’re not without their own challenges. The biggest one is subsidies. In the fight to gain market share, big AI firms are offering substantial discounts. One engineering leader told me each team member was spending thousands of dollars in tokens at the cost of a $200 subscription. Anthropic and OpenAI are constantly offering discounts and other promotions. At some point, these subsidies will end, and prices will go up.
Or will they? Open-weight models and local inference are exerting downward pressure on token costs. Dedicated inference chips could make tokens cheaper. Routers promise to direct your prompts to the cheapest model for the job. Models could require fewer tokens to accomplish the same task as they become more capable. All of these factors could actually cause prices to go down.
When you calculate ROI, don’t assume today’s costs are the ones you should model. Whether you think prices will go up, down, or remain the same, make your assumptions explicit, and consider modeling both optimistic and pessimistic scenarios.
One more wrinkle: Adopting AI isn’t a matter of flipping a switch. People will need time to learn how to apply it. As with any big shift, change management isn’t to be underestimated. Productivity often goes down during a big change before it goes up. This adds costs too, and means early measurements can be misleading.
Part 2 of this series shows how to measure delivery speed. That’s only part of the picture. If you produce twice as many features, but double your maintenance costs, your team’s overall productivity spikes, then drops like a rock.

Engineer burnout is a concern too. An engineering leader using spec-driven development told me, “Every team is reporting burnout.” I’ll state the obvious: Burned out people don’t produce great work. They don’t push back when they should, they don’t report problems, and eventually they leave, taking valuable institutional knowledge with them.
Part 3 shows how to measure these unintended consequences of AI use, including techniques you can use to forecast future problems.
Finally, delivering software value faster is the point. Doubling your bug-fix rate isn’t going to yield the same results as doubling your rate of competitive new features. For that matter, delivering poorly thought-out features “just because we can” could actually make your product worse.
Part 4 shows how to model, forecast, and measure business outcomes.
First, what not to do: Don’t take the easy way out.
First on the no-go list: lines of code. Engineering leaders have known for more than half a century that lines of code don’t correspond to productivity. All else being equal, a feature implemented in 1,000 lines of code will be cheaper to maintain and less bug-prone than a feature implemented in 10,000 lines of code.
AI is notorious for its verbosity. If you measure lines of code, you’re measuring slop, not productivity. Don’t do that. Please.
Pull requests (PRs) are nearly as bad. They’re checkpoints where an engineer asks for their code to be reviewed, and they’re 100% arbitrary. An engineer (or AI) can choose to make a 10-line pull request or a 10,000-line pull request. It can be a feature, a bug fix, or just a tiny code improvement. There’s no inherent correlation between number of pull requests and productivity.
It’s true that engineers will generally produce PRs that are consistent and logical. So, in a sense, a stream of PRs does reflect a certain pace of development, and an increase in PRs can reflect an increase in productivity.
But AI upends that status quo. It produces massive amounts of code very quickly, which can overwhelm engineers’ ability to keep up. Without rigorous engineer oversight, PRs no longer reflect a consistent pace of development, which means that PR counts are no longer a reliable metric.
And, of course, when people think PRs are being used to measure productivity, they’ll be tempted to game the system and produce more PRs than they really need to.
That brings us to Goodhart’s Law: “Once a measure becomes a target, it ceases to be a good measure.” My favorite book on this topic is Robert D. Austin’s Measuring and Managing Performance in Organizations:
Gradually, measures fall (or, more accurately, are pushed) out of synchronization with true performance, as workers succumb to pressures to take shortcuts. Measured performance trends upward; true performance declines sharply. In this way, the measurement system becomes dysfunctional.
—Robert D. Austin
Don’t establish a performance measurement program and leave it running. Instead, use these metrics to determine how well a particular approach to AI is working. You can repeat the measurements periodically, but whatever you do, don’t use them to measure the performance of teams or individuals. Measure the approach, learn from it, and stop measuring.
Enough about what not to do. In this series, we’re going to quantify AI’s impact, and we’re going to do it right. It starts with measuring delivery speed. That’s next, in part 2.
︎My Super Mid-Life Crisis – Issue 1 – 06 [Comics Archive - Spinnyverse]
The post My Super Mid-Life Crisis – Issue 1 – 06 appeared first on Spinnyverse.
Pluralistic: Agents vs ecommerce (28 Oct 2026) [Pluralistic: Daily links from Cory Doctorow]
->->->->->->->->->->->->->->->->->->->->->->->->->->->->->
Top Sources: None -->

The first widely read piece of tech criticism I ever wrote was "Metacrap: Putting the torch to the seven strawmen of the meta-utopia," a response to the underlying philosophy of the "Semantic Web" that I published in 2001:
https://people.well.com/user/doctorow/metacrap.htm
The piece holds up surprisingly well today (if I do say so myself), and not just for its criticism of the ontological incoherence of "web semantics." The most relevant concept I develop in that piece is a criticism of any plan that starts with "first, everyone else in the world just needs to set aside their needs and advantages in favor of my priorities, and then my plan will work."
This is especially relevant today in the context of "agentic AI." When this idea was first mooted, the big idea was that you could instruct a chatbot to venture out onto the public, unstructured web and it would do your bidding, for example, finding all the flights that fit your criteria and comparing prices for all of them, picking the best one and booking it for you.
This idea quickly foundered. Each step in that process was too complex and specialized for a single chatbot; so the notion quickly gave way to "swarms" of specialized chatbots – one to search the web and identify likely travel websites; one to search those websites; one to evaluate flights against your criteria, one to handle the transaction, and so on.
Through specialization, these bots could be made far more accurate, but at a price: both the literal price of all the extra computation that goes into powering a "swarm" versus a single process, and the reliability price that arises from complexity. That's because error rates are multiplicative: combine two bots with low failure rates into a single system and that system will have a higher failure rate than any of its components. This compounding error rate only increases as you add more and more bots, so every time you add a new specialized bot to decrease the error rate in its area of specialization, you increase the overall error rate of the system by adding more complexity to it.
Despite this, companies pressed on ahead with "agentic," without any regard to the realities or consequences. For example, Microsoft has repeatedly announced that it will modify Windows to eliminate all forms of PC-side privacy and confidentiality, sending a continuous stream of screenshots to Microsoft's cloud servers so that your Microsoft "agent" can access your private data on Microsoft's cloud:
https://pluralistic.net/2026/01/06/1000x-liability/#graceful-failure-modes
But the real fix for "agentic" is for everyone in the world to rearrange their affairs to the benefit of AI agents. This is the same demand that the Semantic Web people made in the early oughts, and it has the same problems. The Semantic Web people operated on the assumption that there were freestanding, objectively correct ways of describing things and that everyone who put information on the web would eventually come to see that adopting these correct semantics was to everyone's advantage.
In reality, these semantic differences are the expression of real, serious, unresolvable philosophical, technical, moral and political arguments. The reason that some media outlets won't describe trans women as women isn't because they lack an appreciation of objectively correct semantic classifications – it's because they're bigots. That's the same reason "race realists" insist that there is a biological category called "race," that exists despite everything computational genomics has proved:
https://pluralistic.net/2020/08/16/combat-wheelchairs/#race-realism
In my book The Reverse Centaur's Guide to Life After AI, I predicted that a similar dynamic would play out when it came to agentic AI and websites. The reason websites are so inhospitable to bots is that ecommerce sites don't want to be legible to automated tools:
https://us.macmillan.com/books/9780374621568/thereversecentaursguidetolifeafterai/
Ecommerce websites deploy a wide range of sleazy tactics to raise prices, including surveillance pricing:
https://pluralistic.net/2026/10/07/gouged/#aeropain
They use market power to rig whole categories, forcing prices up:
https://pluralistic.net/2026/10/15/enshittipedia/
Multiple law-enforcers, Republic and Democrat, state and federal, have sued companies for "drip pricing" and "junk fees" that make it impossible to know what the actual price is until you've spent a long-ass time going through the purchase process:
https://pluralistic.net/2024/06/07/drip-drip-drip/#drip-off
Surveillance pricing, drip pricing, junk fees, price fixing and "most favored nation" deals are the source of all the growth in profitability by the economy's largest, most important firms. These tactics require opacity and are antithetical to the kinds of automated comparison-shopping that agentic peddlers promise:
https://pluralistic.net/2024/08/14/the-price-is-wright/#enforcement-priorities
These tactics are facially illegal and despite this, they are widely practiced. Cheating is so profitable that it's cheaper for firms to buy off regulators and pay fines than it is for them to stop criming. The fantasy that these same companies would welcome agentic shopping bots with open arms is just as implausible as the idea that if we feed enough words to the word-guessing program, it will wake up and become a "super intelligence":
https://pluralistic.net/2026/09/18/surprise/#wow-signal
What's more, the AI companies know this. Google's big plan to make AI profitable is to sell merchants the power to combine its surveillance data with its AI tools to price-gouge shoppers:
https://pluralistic.net/2026/01/21/cod-marxism/#wannamaker-slain
And right on time, ecommerce websites are mass-blocking AI agents:
https://gizmodo.com/online-shopping-platforms-turn-against-third-party-ai-agents-2000831298
They're doing it in part because AI agents allow shoppers to cheat (for example, by renewing a "temporary" hold on a used item to block other buyers indefinitely), but also because they don't want automation tools on their platforms at all. These tools are a frontal assault on all the most exciting (and sleaziest) ways to make money in the waning hours of end-stage capitalism. Far from welcoming bots, ecommerce sites were always going to block them.
It's easy to come up with amazing applications for technology if you're allowed to assume that you can get everyone else in the world to set aside their priorities and their interests in favor of yours. But unless someone has a plan to do that, we shouldn't take them seriously.

"The day all billionaires died…" https://www.patreon.com/noneofthisisok/posts/day-all-died-171938052
Your phone is about to stop being yours https://keepandroidopen.org/
Shitter: Alternative Twitter front-end https://codeberg.org/shitter/shitter
Saving Social Security https://prospect.org/2026/10/27/saving-social-security/
#25yrsago Hack your Aibo https://web.archive.org/web/20010516005338/http://aibohack.com/
#20yrsago History of calculator watches https://watchismo.blogspot.com/2006/10/calculating-history-of-led-calculator.html
#15yrsago How Occupy has shifted the national debate https://www.salon.com/2011/10/27/the_victory_ows_has_already_won/
#15yrsago UK public reimbursed Margaret Thatcher was reimbursed for more than £500K in personal expenses https://www.theguardian.com/politics/2011/oct/28/margaret-thatcher-expenses-claim
#15yrsago Depression the Hyperbole and a Half way https://hyperboleandahalf.blogspot.com/2011/10/adventures-in-depression.html
#15yrsago Philippines president Duterte says God threatened to crash his plane if he didn’t stop swearing https://www.khaosodenglish.com/news/international/2016/10/28/duterte-says-god-told-stop-cursing/
#15yrsago Public safety codes are now free online for all https://memex.craphound.com/2016/10/28/public-safety-codes-are-now-free-online-for-all/
#10yrsago Dr Seuss estate has crushed a kickstarter for a Seuss/Trek mashup https://web.archive.org/web/20170425161011/https://www.popehat.com/2016/10/26/popehat-signal-help-defend-a-seuss-trek-parody-under-fair-use/
#10yrsago Undercover with a prepper militia that patrols the border to fight “drug cartels” https://www.motherjones.com/politics/2016/10/undercover-border-militia-immigration-bauer/
#10yrsago The “Blacks for Trump” guy used to be in a murder cult https://web.archive.org/web/20161027133828/https://fusion.net/story/362459/blacks-for-trump-michael-the-black-man-yahweh-cult/
#5yrsago Europe's trustbusters lose the plot https://pluralistic.net/2021/10/28/clintons-ghost/#filternet
#5yrsago All of science gets a general index https://pluralistic.net/2021/10/28/clintons-ghost/#cornucopia-concordance
#5yrsago The new DRM-breaking exemptions just dropped https://pluralistic.net/2021/10/28/clintons-ghost/#felony-contempt-of-business-model
#1yrago Raymond Biesinger's "9 Times My Work Has Been Ripped Off" https://pluralistic.net/2025/10/28/productive-seething/#fuck-you-pay-me

Kilkenny (Kilkenomics), Nov 6-8
https://kilkenomics.com/
Courtenay: Enshittification (Sid Williams Theatre Society), Nov
10
https://www.sidwilliamstheatre.com/events/cory-doctorow-talks-enshittification/
Vancouver: BC Policy Solutions Gala, Nov 12
https://bcpolicy.ca/gala/
Folkestone Writers Festival, Nov 16
https://www.creativefolkestone.org.uk/whats-on/cory-doctorow-the-internet-is-broken-now-what/
Oxford: Ministry of the Future, Nov 23
https://ministryforthefuture.co.uk/events.html
Sheffield: Reverse Centaur at Juno Books, Nov 25
https://www.outsavvy.com/event/40274/cory-doctorow-in-conversation
Virtual: Enshittification, AI, and the Future of Technology (UBC
Master of Educational Technology), Nov 28
https://met.ubc.ca/2026/09/met-speaker-series-cory-doctorow-enshittification-ai-and-the-future-of-technology/
Oxford: Bennett Oxford Symposium on Open Code in Science, Dec
9
https://www.bennett.ox.ac.uk/events/2026-bennett-institute-symposium/
Montreal: World Science Fiction Convention, Sep 2-6
https://montreal2027.ca/en
Life After AI (Brain Bar)
https://www.youtube.com/watch?v=IPPa43-n0vI
Terms of Service with Clare Duffy (CNN)
https://www.cnn.com/audio/podcasts/terms-of-service-with-clare-duffy/episodes/458ce968-af5d-11f0-b539-13ed2afe25f8
AI, Work, and Power (Software Engineering Daily)
AI, Work, and Power
https://softwareengineeringdaily.com/podcasts/cory-doctorow-on-ai-work-and-power/
AI, Corporate Power, and the Fight for Worker Control
(Plutopia)
https://plutopia.io/cory-doctorow-ai-corporate-power-and-the-fight-for-worker-control/
"Canny Valley": A limited edition collection of the collages I create for Pluralistic, self-published, September 2025 https://pluralistic.net/2025/09/04/illustrious/#chairman-bruce
"Enshittification: Why Everything Suddenly Got Worse and What to
Do About It," Farrar, Straus, Giroux, October 7 2025
https://us.macmillan.com/books/9780374619329/enshittification/
"Picks and Shovels": a sequel to "Red Team Blues," about the heroic era of the PC, Tor Books (US), Head of Zeus (UK), February 2025 (https://us.macmillan.com/books/9781250865908/picksandshovels).
"The Bezzle": a sequel to "Red Team Blues," about prison-tech and other grifts, Tor Books (US), Head of Zeus (UK), February 2024 (thebezzle.org).
"The Lost Cause:" a solarpunk novel of hope in the climate emergency, Tor Books (US), Head of Zeus (UK), November 2023 (http://lost-cause.org).
"The Internet Con": A nonfiction book about interoperability and Big Tech (Verso) September 2023 (http://seizethemeansofcomputation.org). Signed copies at Book Soup (https://www.booksoup.com/book/9781804291245).
"Red Team Blues": "A grabby, compulsive thriller that will leave you knowing more about how the world works than you did before." Tor Books http://redteamblues.com.
"Chokepoint Capitalism: How to Beat Big Tech, Tame Big Content, and Get Artists Paid, with Rebecca Giblin", on how to unrig the markets for creative labor, Beacon Press/Scribe 2022 https://chokepointcapitalism.com
"Unauthorized Bread": a middle-grades graphic novel adapted from my novella about refugees, toasters and DRM, FirstSecond, April 20, 2027
"Enshittification, Why Everything Suddenly Got Worse and What to Do About It" (the graphic novel), Firstsecond, 2027
"The Memex Method," Farrar, Straus, Giroux, 2027
Today's top sources:
Currently writing:
"The Post-American Internet," a sequel to "Enshittification," about the better world the rest of us get to have now that Trump has torched America. Fourth draft completed. Submitted to editor.
A Little Brother short story about DIY insulin PLANNING

This work – excluding any serialized fiction – is licensed under a Creative Commons Attribution 4.0 license. That means you can use it any way you like, including commercially, provided that you attribute it to me, Cory Doctorow, and include a link to pluralistic.net.
https://creativecommons.org/licenses/by/4.0/
Quotations and images are not included in this license; they are included either under a limitation or exception to copyright, or on the basis of a separate license. Please exercise caution.
Blog (no ads, tracking, or data-collection):
Newsletter (no ads, tracking, or data-collection):
https://pluralistic.net/plura-list
Mastodon (no ads, tracking, or data-collection):
Bluesky (no ads, possible tracking and data-collection):
https://bsky.app/profile/doctorow.pluralistic.net
Medium (no ads, paywalled):
Tumblr (mass-scale, unrestricted, third-party surveillance and advertising):
https://mostlysignssomeportents.tumblr.com/tagged/pluralistic
"When life gives you SARS, you make sarsaparilla" -Joey "Accordion Guy" DeVilla
READ CAREFULLY: By reading this, you agree, on behalf of your employer, to release me from all obligations and waivers arising from any and all NON-NEGOTIATED agreements, licenses, terms-of-service, shrinkwrap, clickwrap, browsewrap, confidentiality, non-disclosure, non-compete and acceptable use policies ("BOGUS AGREEMENTS") that I have entered into with your employer, its partners, licensors, agents and assigns, in perpetuity, without prejudice to my ongoing rights and privileges. You further represent that you have the authority to release me from any BOGUS AGREEMENTS on behalf of your employer.
ISSN: 3066-764X
Studying Fraudulent North Korean IT Workers [Schneier on Security]
Researchers set up a fake start-up company to study fraudulent North Korean IT workers.
Be careful what you wish for [Seth's Blog]
At a recent Q&A, a small businessperson asked how to get clients to be more alike, willing to engage in systemic work that would be easier to deliver and offer a simpler path to getting the job done.
Of course, once there’s a manual, anyone can do the work, and anyone will.
It might be the complex, fickle and unpredictable problems that allow the professional to thrive.
Nautical Naughties [Penny Arcade]
New Comic: Nautical Naughties
Suffering as a Feature [Coding Horror]

Have you seen this?
If you haven't, you should. I think everyone needs to. Wealth inequality on a scale this extreme is almost impossible to explain. You have to experience it to understand.
Go ahead. Try it out.
Where is the top of this graph? Good question. Keep scrolling up. Last time I did this it took me 12 minutes and 51 seconds, but the whole time I had a way out.
We get a button on the screen that lets us punch out any time we want: I quit. But do other Americans get an easy way out of the most extreme wealth concentration in history, piled up together all the way down there at the bottom of this graph?
No. They don't.
That's why we built this website. That's why I supported the updated 2026 wealth inequality video series, because 14 years ago, the original video changed how I thought about the world. I watched it again and again, year after year, because it shows something we feel, but rarely see so clearly — the obscene concentration of wealth and power in this country.
People deserve to see the facts plainly, visually, with sources and methodology attached. Politizane, The Onion and Garbage Day retained full control over their work. I did not tell anyone what to make, what to say, or how to say it. I told everyone involved the same thing I'm telling you right now – this is not for me, or any organization. It is for the public. It is for We, The People.
I used to be very dismissive of so-called "walking simulators", games where no real choice is offered, it's just an experience. But this graph isn't a game – these are people's actual lives. No one is forcing you to visit this website, no one is making you scroll up endlessly. The experience, then, is about endurance in the face of the relentless task of simply living your daily life with almost nothing, surviving as long as you can without reaching for the "I Quit" button. That's the experience so many Americans are having. It is harrowing.
As we built the website (Geoff Dalgas, my friend who helped me build Stack Overflow, did all the technical work) and tested it, as I obsessively scrolled upwards so many times, I slowly realized the whole thing is supposed to be inconvenient. The further you climb on this vast scale, the longer this seemingly endless scrolling goes on, the more the reality sinks in... how obscene all of it is. In order to understand the suffering of others, you must be willing to endure and suffer a little bit yourself. In this case, suffering is a feature.
Early iterations of the website had automatic scrolling, or rapid jumps, but I felt that wasn't right and should not be allowed. You need to do the work, make a physical action to scroll the entire way. We even stop you from scrolling at certain milestones.
This is a forced stop because no one should blindly scroll past 36 million Americans living in poverty, while at the same time we could eliminate all poverty in this country for $177 billion.
But we, for some reason, choose not to. We choose to let people suffer in desperate poverty. That's also suffering as a feature. In an era of unprecedented wealth, why shouldn't that money be out there doing something, somewhere, for someone?
I've spent my whole career talking about software usability, and I never thought I would design software that chooses to actively punish the user, but the data itself is the pain. Representing the massive numbers of wealth inequality with a linear scale is the only honest way to present this data. Do you have any idea how many pages it would take to print this graph in its entirety, representing both the richest American at the top, and the poorest American at the bottom?
What you should print out is this is 8 page foldable version of the graph, designed to be a relatable 6 feet, 6 inches, the average NBA player height. Show everyone what the most obscene centerfold of all time looks like. Let them see.
I challenge everyone to climb the graph on dreamagainusa.org as far as you want to.
If you do reach the so-called "top", I have a question.
Was it worth it?
Disruptions in fighting malaria [Richard Stallman's Political Notes]
Many African countries were on track to wipe out malaria, but the persecutor's aid cuts caused gaps in the campaigns, and malaria and its mosquitoes evolved resistance. But African countries are making arrangements to attack again.
Germany pledged to eliminate fossil fuels by 2045 [Richard Stallman's Political Notes]
Germany has pledged to eliminate fossil fuels by 2045. This is exemplary.
ChatGPT tracks user's browsing [Richard Stallman's Political Notes]
ChatGPT tracks the user's other browsing using ChatGPT cookies on tracking pixels, sent intentionally by various stores.
Nepal flash flood was warning to world [Richard Stallman's Political Notes]
*Nepal's PM says [avalanche-caused] flash flood was "warning to world" as he scolds leaders at UN over climate change.*
Alas, he makes the frequent mistake of focusing on how to repair infrastructure and systems damage, rather than on preventing most of it through the most efficient method: by forcing massive decreases in greenhouse gas emissions.
The People's Emergency Briefing aims to mobilize people to do that.
Ellison taking over additional major US news networks [Richard Stallman's Political Notes]
The Democratic attorneys general that were blocking the Ellison monopoly from taking over additional major US news networks caved in, extracting unenforceable concessions that are not very important anyway.
Girl Genius for Wednesday, October 28, 2026 [Girl Genius]
The Girl Genius comic for Wednesday, October 28, 2026 has been posted.
Why don’t we run the taskbar and Task Manager at high priority, so they can remain responsive? [The Old New Thing]
If a system becomes CPU-starved, all processes begin to suffer. This includes the taskbar and Task Manager, even though they are often the tools you want to use to stop whatever it is that’s making your system suffer. Why can’t we run the taskbar and Task Manager at high priority?
The catch with running anything at high priority is that unless you have been very careful to avoid it, you will eventually run into a shared resource that you will have to wait for, and you are now stuck. Your priority checkout pass gets you to the front of the line, but if the person at the register has a large shopping cart full of groceries, you just have to wait until they are done before you get your chance.
Even if the code that protects the shared resource is careful to avoid priority inversion by transferring the priority of the waiter to the thread that owns the resource, you are still stuck waiting, and that owning thread might be doing something that takes a long time, like, say, accessing a file over the network.
For UI code, this problem is particularly acute because you will eventually have to call into the UI system, and now you’re duking it out with all the other UI threads in the system.
The problem is that it’s hard to fix a runaway system from within that same system. The tools which you can use to try to fix the system may already have been compromised. And it’s definitely hard to fix a runaway system if your tools have to share critical resources with the thing that is out of control. Windows already gives preferential treatment to the program that is in focus, so if you can get focus onto the taskbar or Task Manager, you are doing about as well as you can. But that preferential treatment takes you only so far if those preferred threads find themselves blocked on things that are controlled by non-preferred threads.
The post Why don’t we run the taskbar and Task Manager at high priority, so they can remain responsive? appeared first on The Old New Thing.

Anh's best isn't very good though
Further Thoughts on the Googlebook, in Comparison to the MacBook Air [Whatever]


I’ve had the Googlebook now for a couple of weeks, and I have gotten a chance to both use it on a regular basis, and compare it with the MacBook Air I have (it sports an M4 processor). One of the things that I was curious about is which of them I would end up using more often, and which I would prefer over the other, if indeed there was a preference at all.
I’m not going to stretch this out for you: I prefer the MacBook Air over the Googlebook. This is because of a number of factors, some relating to software and some relating to hardware. The Googlebook is a fine little machine, and I’m mostly happy to own it, but it is not entirely baked, and it shows. For a day-to-day use case, the Mac Air is still the one that I reach for.
This is not just theoretical: I was actually away this weekend for a convention in the Denver area. At first, I gave some thought to taking the Googlebook, but at the last minute I made the switch to the Mac Air. I was worried about things like connectivity while I was traveling, and also the ability to pull up certain applications that I would need while I was away. I ended up pulling the Googlebook out of my backpack literally as I was leaving the house, and slipping the Mac Air in. I don’t regret the choice.
There are things I like about the Dell XPS version of the Googlebook over the MacBook Air that I have. For one, I like the keyboard a lot better. The one on the Air is just a smidge too squishy for me, whereas the XPS’s keyboard feels punchy and has snap to it. If we were going straight on the keyboard, I don’t think it would be a question for me.
I also like the ever-so-slightly smaller form factor of the XPS over the Air. This is very much a six-of-one, half-bakers-dozen-of-the-other sort of thing, because, of course, the Air is also very small and very thin and very light, just like the XPS Googlebook. But the form factor for this one, a 13-inch screen as opposed to a 14-inch screen and so on, means that the XPS is just a little bit more convenient in places like airplanes, or anywhere else where space is at a premium. Again, both of them are perfectly small enough for most use cases, but if that is a consideration, then the Googlebook has an edge.
Finally, and as I mentioned in my previous write-up of the Googlebook, the Rambler feature of the Googlebook, ported over from the latest edition of Android on the Pixel phones, really is kind of magical. I wish that every laptop had this. The ability to actually just dictate and have it come out as text with very little need to copy-edit is kind of spectacular. If it weren’t for all the other issues that the Googlebook currently has, the Rambler would in and of itself be enough to make me want to choose the Googlebook over other laptops. It’s genuinely one of the best voice-to-text applications I’ve ever used.
In terms of hardware, most of the other issues are very small in comparison to the MacBook Air. The trackpad is not nearly as smooth and nice as the MacBook Air trackpad, but of course, almost no other laptop has a trackpad that’s as nice as the MacBook trackpads. The screens are pretty much a wash in terms of quality. Both are nice and clear and have more than good enough resolution. The Googlebook has a 120 Hz screen refresh rate, which is twice that of the Air, but honestly on a day-to-day basis if you’re not playing video games, you’re probably not going to notice. Both computers are very limited in terms of I/O, with both of them only having two USB-C ports, although the Googlebook pulls ahead by having a USB-C ports on either side of the chassis, whereas the MacBook Air only has them on the left side. On the other hand, the MacBook Air does actually have a headphone jack, which the XPS does not. So they’re both slightly inconvenient in their own ways.
The only major hardware fuckup for the XPS Googlebook, which is also a software fuckup, lies in the speakers. The volume of anything you play gets louder and softer for no goddamn reason at all, and there’s no easy fix for it yet. When I first wrote about it the laptop, I didn’t notice there was an issue with the volume, but it’s there and it’s really, really fucking annoying. At first, I thought it was just an issue with YouTube, and I went into the YouTube settings to fix it, but as it turns out, it’s a problem with other programs as well.
It’s a known issue; if you go to the Dell site, they have it registered as being something that they’re aware exists and that they are going to work to fix, but apparently the update won’t be ready until December at the earliest. It’s so noticeable and so annoying that it actually makes me not want to use the XPS. It’s just that bad.
Beyond that, when the volume is near maximum on the XPS, the entire chassis vibrates and the sound distorts. It is genuinely bad, as opposed to the MacBook Air speakers, which are actually quite good. It’s not even a comparison; the MacBook Air blows the Googlebook out of the water in this case. For both the volume intermittency and the distortion, the current “fix” for the XPS Googlebook is to use a Bluetooth speaker or headphones. But I shouldn’t have to do that in order to get decent sound out of a $1000 laptop. This should have been solved before these shipped.
When it comes to software, the disadvantage the Googlebook has over the Air is simply that it mostly relies on Android versions of software, which are just not fully featured as the versions that are on the MacBook. The two programs that I use on a daily basis are Microsoft Word and Adobe Photoshop. On the Googlebook, the Android versions of these programs are just fine for quick and dirty stuff, but it doesn’t have the full set of features that I actually want and need to do my work. This is fine if I don’t have a lot of work to do, like if I’m on vacation or if I’m just doing something that I can use Gmail or Google Docs for. But this weekend, when I went to that convention, and later when I’m going to be on tour, I’ll be working on my upcoming novel. I need fully featured Word, at least.
Now, to be scrupulously fair about it, I’m not going to give the Googlebook too much shit about relying heavily on Android. It’s just a fact of life for this very early version of this operating system. I don’t think you should come to the Googlebook thinking that you’re going to get anything other than perhaps slightly gussied-up versions of Android apps. But from a purely practical point of view, which is what I have to have when I’m actually trying to get work done rather than just doing email, it’s an issue. You have to factor that in. For now at least, the Air still wins for practicality.
(You’ll notice that I’m not giving much time or space to any of the Googlebook’s “AI” functionality, and that’s just because I’m mostly not using it. In this case, it’s no different from the Air, on which I also don’t use any of Apple’s most recent “improvements” through the use of “AI”. So for my use case, they’re both about even on this score.)
As hinted above, in many ways it’s fundamentally not fair to compare a Googlebook with a brand new operating system to a MacBook Air that is several generations in with an OS that has been developed over the space of decades. I’m reasonably optimistic, even with Google’s tendency to kill things off, that the Googlebook will improve, and that its OS will get better and smarter. Google has committed to 10 years of updates on this machine, and we’ll see if that’s actually going to be the case. But certainly we can expect at least a year or two of refinement out of the company. So maybe in a year’s time, or two, it might actually become a laptop that I would take with me on a long business trip.
But for now, I will have to stick with my MacBook Air for any travel that requires more than the most casual of Gmail and Google Docs use. I often do have to work when I travel, and that means I need a laptop that can do everything I need it to do. That’s still the MacBook Air.
— JS
Social Media When Elections Are Close: Doing the Impossible Better [Deeplinks]
Everyone knows, or should, that perfect (balanced, targeted, transparent, swift and swiftly appealable) content moderation at scale is impossible. That doesn’t mean powerful social platforms don’t have to try to get at least reasonably close, especially when access to good information can have a profound effect on political participation and speech.
That’s why so many people, including the Meta Oversight Board, criticized Meta for suspending a major political Instagram account for hours during a huge early voting push on October 17; and for allegedly boosting one candidate in Brazil’s recent presidential election. Meta denies deliberate interference in either instance, blaming “mistakes” in its automated content moderation systems (including AI tools that can’t tell the difference between enthusiastic follower engagement and a bot attack).
Mistakes or not, with early voting in the U.S. midterms already underway, these events serve as a stark reminder that all major social media platforms need to have stronger systems in place to ensure that they serve, rather than impede, democratic communication.
Access to good information can have a profound effect on political participation and speech.
This is not inherently an “AI” problem: automated systems can process content at a scale that humans never could, potentially enabling better moderation at scale and alleviating the psychological load on ill-paid moderators whose jobs require them to view incredibly disturbing content. But automated systems also reproduce existing biases, struggle to understand context, and often make mistakes that disproportionately affect journalists, activists, artists, and other vulnerable and marginalized communities. And moderation errors are even more likely when the language is spoken principally by the global majority. In 2020, leaked documents showed that Meta’s algorithms incorrectly deleted nonviolent Arabic-language content 77 percent of the time, while failing to detect hate speech under the company’s own policies in many instances. Where these systems are faltering in Arabic, they’re positively failing in less-resourced languages. As a 2025 report from the Center for Democracy and Technology found, labeled datasets in certain languages and dialects such as Maghrebi Arabic and Kiswahili contain inconsistencies, bias, and inaccuracies due to the limited hiring of annotators who actually speak the languages as well as shifts in the languages themselves. An investigation into ChatGPT’s outputs in several low-resource languages demonstrates the depth of problem.
But language disparities are just one of several concerns as automated moderation becomes more widespread. From the systemic suppression of content from Palestine to the repeated misclassification of LGBTQ+ content as adult or explicit material, these varied examples demonstrate the risks of overreliance on automated moderation—and the need for stronger safeguards.
Fortunately, there is a great deal companies, policymakers, and civil society can do to help ensure that highly automated systems operate in ways that respect human rights, minimize predictable harms, and provide meaningful accountability when they fail. If companies are going to continue relying on automation to moderate users’ speech—and there is little reason to believe they won’t—then accountability must evolve alongside these technologies.
That work should start with publicly committing to the Santa Clara Principles 2.0. Specifically:
These recommendations understand that automated content moderation isn’t just a technical problem for clever engineers and product teams to solve. Because content moderation shapes public discourse and fundamental rights, its design and oversight must respond to the concerns of policymakers, civil society, independent researchers, and the communities most affected by these systems.
One other distinct and enduring problem makes transparency, checks, and accountability all the more urgent: too few companies have far too much power over our political communication and organizing. Social media gave people the ability to wrest some control over political messaging away from media oligopolies. But we’ve met the new boss and while it’s not the same as the old boss, the song is pretty familiar. The real promise of the web to democratize communication is not likely to be met by social media oligarchs, no matter how sophisticated their content moderation practice.
The Big Idea: Kevin J. Anderson [Whatever]

You can’t have a duology without an enticing cliffhanger at the end of the first book, and thankfully New York Times Bestselling author Kevin J. Anderson managed to write the second installment in his Nether series, despite a broken ankle setting him back some. Journey through his writing (and speaking) process to see how Nether Vortex follows up on that suspenseful cliffhanger.
KEVIN J. ANDERSON:
I grew up as a wide-eyed kid, looking up at the stars with a Star Trekian wish to boldly go where no one has gone before. The universe was filled with a sense of wonder.
But you know what? Space is also scary as hell! It’s infinitely cold, dark, empty, alone … filled with radiation, solar flares, and gravity wells (and that’s not even counting monsters, deadly aliens, or killer robots). In space, everything wants to kill you. It’s even worse than Australia.
Science fiction horror should be a bigger thing. Just imagine being in a distant space station or an interstellar ship incredibly far from even a hint of rescue, where only a thin metal hull or reinforced windowport separates you from deadly vacuum, where the transmission of your terrified scream would take hours to reach the nearest listener.
So where are all the scary science fiction stories? Yes, everyone can immediately cite Alien and Event Horizon, then after a pause add Pitch Black. Heck, even Apollo 13 is a terrifying space story, in its own way. How about Jason X, the first film to bring a hockey-masked serial killer into space? And who can forget Leprechaun in Space (no matter how much we try)? But I think the genre needs more. If you search for “space horror” on Amazon, you’ll find a few titles but not a lot.
When Weird Tales Presents and Blackstone Publishing asked me to write novels for them, they let me choose the genre and topic. I jumped at the chance to write a cosmic horror epic: Nether Station and Nether Vortex.
Now I could really buckle up and take advantage of the scenario—a haunted house in space, an isolated station on the far edge of the solar system near a wormhole that offers a shortcut to Alpha Centauri … or maybe it’s a place where the horrific elder gods have been exiled, and boy do they want to come out. I reread all of H.P. Lovecraft’s work (man, that guy had some creepy and mind-blowing ideas), and added a lot of Easter eggs in the prose.
The first half of the story, Nether Station, has a controlled cast of oddball characters, mostly misanthropes (who else would want a job like that?), each facing their own problems even before the really weird shit starts happening. This novel is claustrophobic, intense, scary, and ends on a cliffhanger. The second half, Nether Vortex, is much bigger in scope, a sprawling cosmic war where countless species are being consumed by a great darkness. The two books are like Alien followed by Aliens.
I’m a prolific and reliable writer, and I like to think I’m always on time. With the giant cliffhanger at end of Nether Station, I didn’t want to keep the readers dangling in the wind. You want them to feel delicious suspense and anticipation, not an annoyed sense of “Is this guy ever going to deliver the next book?” (Not that we know of anybody who’s done that to his readers…)
Then the real horror happened. I outlined Vortex and was all ready to write. The deadline was looming, but not in a scary way. I couldn’t wait to get to my version of “At the Mountains of Madness” in the Martian polar ice caps, Lovecraftian SF on a grand scale.
Now, I’ve long-established that I write by dictation. I live in beautiful Colorado, and I take my notes with me out on the trail. I’ll head into the mountains or forests and trudge along for miles, dictating my chapters. I get inspired, I’m surrounded by scenery, and I sink into the zone, lost in the story I’m creating as I walk along. I’ve been doing this for so many years that the words come out as nearly finished prose, like I’m narrating an audiobook. When I return home, I have my dictation files transcribed, then I edit them online. In fact, it’s the only way I can write my novels.
Except, just when I was starting to write Nether Vortex, I hiked a beautiful trail up Beckwith Pass near Crested Butte, Colorado. On the way down, it started to rain, and the trail got muddy … and I slipped and fell off a ledge, twisted my leg, and broke my ankle. (Yes, I hike alone; I can’t dictate if somebody is walking along beside me.) So, I had to limp a mile back to my car and then drive an excruciating three hours back home.
That’s the sort of experience I inflict on my characters, not something I wanted to try at home. I spent the next two months in an armored Darth Vader boot.
Worse, although I could hobble around the house, I certainly couldn’t go out hiking, not even on the wimpy bike path near my home. I had a 130,000-word novel to write, and suddenly I wasn’t sure how to do it. My creative process strictly relies on walking and talking.
So, I sat on the porch, staring off into space, and I tried dictating chapters, but it was ten times as hard to sink into the zone without moving. I tried pounding out chapters on the keyboard, stuck in a chair in a stuffy office while staring at a screen. (How do you guys do that for hours and hours?)
But deadlines can be very inspirational, and the thought of angry readers imagining Lovecraftian punishments for me if I didn’t deliver on time after that Nether Station cliffhanger was enough for me to complete the manuscript on time. I powered through, typing some, dictating some, and the plot and characters took over. Maybe that helpless, claustrophobic, trapped situation actually helped convey the right sense for the story. (The ankle’s fully healed now, and I’m back to writing novels the “right” way for me.)
I love how the Nether books turned out. I created big scary story and an immensely cool setup. Oh, there’s room for other bad stuff to happen if I want to revisit that universe, but these two novels form a complete story with a real and satisfying conclusion. I hope you enjoy the read.
—-
Nether Vortex: Amazon|Barnes & Noble|Bookshop
Freexian Collaborators: Monthly report about Debian Long Term Support, September 2026 (by Santiago Ruano Rincón) [Planet Debian]

The Debian LTS Team, funded by Freexian’s Debian LTS offering, is pleased to report its activities for September.
During the month of September, 20 contributors have been paid to work on Debian LTS (links to individual contributor reports are located below).
The team released 41 DLAs fixing 1854 CVEs.
In September, the Debian LTS Team was back to focusing on a single release: Debian 12 (“bookworm”). Debian 11 (“bullseye”) reached the end of its Long Term Support on 31 August 2026, and Freexian now provides its security maintenance under the Extended LTS offer.
It is important to highlight the hard work done behind the scenes of the Front Desk fellows, whose role was fulfilled during September by Emilio, Emmanuel, Sylvain, Thorsten and Utkarsh.
Besides the very high activity doing daily triage on dozens of packages and CVEs, Front Desk fellows spent much of their time answering questions and coordinating with people outside the Freexian team about update proposals.
The team published several notable updates:
Contributions from other Debian fellows beyond the Freexian LTS Team:
Thank you so much to the developers above for these valuable contributions.
The LTS Team has also contributed with updates to the latest Debian releases for the following packages:
If you benefit from Debian, especially throughout its full 5-year lifecycle, please consider becoming a sponsor of Debian LTS. You can find more information here: https://www.freexian.com/lts/debian/.
Sponsors that joined recently are in bold.
Robinson: Raspberry Pi 5 on Fedora [LWN.net]
Peter Robinson has written a blog post about the current state of Fedora support for Raspberry Pi 5 devices. According to Robinson, the upcoming Fedora 45 release will work—with caveats—on all variants of the Raspberry Pi Model 5B; the Compute Module 5 and Pi 500+ are still works in progress.
For Fedora 44 release you need to have a temporary workaround when booting. If you update to the latest kernel/firmware straight away this isn't then needed beyond the first boot. The workaround isn't needed for Fedora 45 so if you're going to try this out I suggest you go and grab your favourite flavour of Fedora from the Fedora 45 release candidates and jump straight in there! You will get an accelerated desktop with storage/network/USB. There's not currently any support for sound and a number of other things.
See Robinson's post for instructions on creating an Fedora image to use with a Raspberry Pi 5.
Otto Kekäläinen: Debcraft v1.0 released: Easy, fast and secure way to build Debian packages [Planet Debian]

Debcraft is a tool that automates most of the repetitive and
error-prone steps related to Debian packaging. It makes it easy to
build .deb packages from source without having to
manually prepare build environments. It clearly shows what changed
in the build artifacts between two builds, automates parts of
importing new upstream versions, and can automatically apply
repetitive fixes to the packaging source code, including committing
them in git.
While doing all of this, it also explains what it does and helps users learn best practices in Debian packaging, making the overall experience much easier and more fun than with any other tool before, while also being secure and fast.
Debcraft can be installed simply
by running apt install debcraft on a recent version of
Debian or Ubuntu. Check with debcraft --version that
you have 1.0.0 or newer. The latest version can also
always be installed from source at salsa.debian.org/debian/debcraft (does not require
compiling anything).

Debcraft was designed to offer the following three main benefits:
Build any Debian/Ubuntu package by simply running debcraft
build in the checked-out Debian packaging git
repository.
If the orig upstream source code tarball is neither already
present nor available on a pristine-tar branch, the
exact upstream tarball is downloaded from the Debian archive.
Users are spared from having to manually prepare ahead or
maintain build environments. Debcraft builds create a container
on-the-fly (both Podman and Docker supported), built using the
target Debian or Ubuntu suite in debian/changelog and
with exact build dependencies from debian/control.
Commands debcraft improve, debcraft
test and debcraft update automate recurring
package maintenance tasks and help maintainers produce
high-quality, up-to-date packages, run Salsa CI, pass autopkgtest
in Debian CI, and stay in sync across Debian archives and packaging
git repositories.
The command output is (relatively) easy to read, and it also teaches users about Debian packaging in context.
Container layer caching is utilized to make builds and re-builds blazingly fast.
If an apt-cacher-ng instance or equivalent is present, it will automatically be used.
Debian packages that support ccache or sccache build even faster.
The build phase happens inside hermetic containers with no network access. This ensures all dependencies are properly managed and that the built binaries are as trustworthy as the source code they were built from.
Using containers also protects the host system from getting polluted with extra development libraries, and adds an extra layer of protection to prevent anything malicious in the source code from accessing secrets on the host system.
The additional logs provided by Debcraft also help audit changes in Debian package sources and build artifacts.
See the Debcraft README.md for details on how this was implemented. I also previously wrote Debcraft - Easiest way to modify and build Debian packages, which explains the motivation and design in more detail.
The first commit in the git repository is from 2020 under the name debuildr. The project was renamed to Debcraft in a commit on December 8th, 2023. I have been developing this tool fairly actively since 2024 and using it for all my packaging, “dogfooding” so to say.
There have also been plenty of collaborators. In total, 13 people have contributed code across 21 MRs and PRs on Salsa.d.o, GitLab.com and GitHub.com.
Now, in October 2026, it was time to release Debcraft v1.0 as it has had extensive real-world use and iteration based on countless different packages and multiple users. Users have included both experienced fellow Debian Developers and lots of people who just started learning how Debian packaging works. As I mentor dozens of new contributors to Debian, I have seen that the latter group seems to benefit the most from Debcraft and its ease of use and built-in guidance, while to the more experienced developers the main benefit is having less details to remember and doing less mistakes.
Try it: apt install debcraft, then
run debcraft build in a checked-out Debian packaging
repository. If you run into a problem, file a report or submit an improvement. New
contributors can look for issues marked good first issue.
The code is intentionally written entirely in shell script to
keep the barrier to code contribution as low as possible. It is
also very easy to debug, as any command can be run with
--debug to emit step-by-step information about what it
is doing, and being Bash scripts, injecting set -x
anywhere in the code will emit an even more detailed trace of every
subcommand executed.
By the way, if you aspire to become a Debian Developer, and want to follow my examples in using state-of-the-art tooling and collaborate using salsa.debian.org, feel free to reach out for mentorship. I am glad to see more people contribute to Debian!
New Records Obtained by EFF Expose More Problems with Medicare’s AI Experiment [Deeplinks]
New records obtained by EFF expose additional issues with Medicare’s AI-driven prior authorization program and show why we need stronger legal limits around government use of automated decision-making.
EFF sued the government back in March for information about the Wasteful and Inappropriate Service Reduction (WISeR) model, a new Medicare program that uses AI to evaluate prior authorization requests for certain medical services. We previously released records showing that WISeR has resulted in delays and denials of care, operational chaos, and reports of patient harm. Today, we’re publishing over 800 new pages of records, including:
Documents obtained through EFF’s lawsuit are available here.
These newly released documents show that the WISeR rollout was rushed and rocky from the start, highlighting the dangers that arise when governments treat AI like a silver bullet for complex problems. The documents also highlight the need for more transparency about safeguards against inappropriate, AI-driven denials. The public still lacks the information needed to assess whether clinician review is providing meaningful oversight of AI systems and whether appropriate data is being used to evaluate prior authorization requests.
EFF has long argued that AI has no place in consequential government decisions about peoples’ rights or access to benefits, such as immigration enforcement and policing decisions. That’s because using automated decision-making in these contexts risks decisions that violate people’s rights or deprive them of benefits they’re entitled to based on biased or inappropriate considerations and without proper due process or accountability if there is an error.
By outsourcing decision-making to private AI companies without sufficient transparency, testing, or legal limits, WISeR jeopardizes seniors’ access to medical care. Congress should step in to place greater legal limits on the use of automated decision-making in Medicare.
CMS launched the WISeR program just six months after announcing it, ignoring calls from medical providers to delay its rollout. In records previously released by EFF, CMS acknowledged this “extremely condensed timeline.”
New records suggest that WISeR’s unusually rapid rollout contributed to widespread problems in the first few months of the program. CMS did not disclose the extent of these issues to the public, even as agency employees privately contacted vendors about potential noncompliance with program requirements.
In the first three months of the program, CMS sent RFIs or requests for CAPs to at least four of the six WISeR vendors. These requests, which describe delays, technical failures, and a lack of communication with providers, suggest that widespread problems during the program’s rollout were not limited to one vendor or state.
These letters underscore the severity of the problems with the program. For example, CMS requested information from one vendor, Virtix, about numerous reported issues, including “determination turnaround times that exceed established guidelines,” “denials that appear inaccurate or inconsistent with applicable criteria,” and “inadequate customer service.” CMS’s RFI to Zyter–a vendor that uses Palantir software infrastructure–observed that the agency had received reports that “Zyter is not issuing determination letters in a timely manner” and communications indicating that it “may lack adequate processes for responding to and escalating provider/supplier concerns.” The vendor Innovaccer received two CAP requests and a “Performance Notice of Non-Compliance” over its failure to implement a fully functional portal for WISeR providers and suppliers.
Excerpts from CMS’ letters to vendors describe problems during WISeR’s rollout:
Excerpt from the RFI for Virtix, March 17, 2026
Excerpt from the RFI for Zyter, February 27, 2026
Excerpt from the Performance Notice of Non-Compliance for Innovaccer, February 20, 2026
Vendors’ responses to CMS provide further evidence that WISeR’s rushed rollout contributed to its problems. Innovaccer claimed it warned CMS months in advance that it might not be ready to provide full portal functionality by the launch date, even before signing a Participation Agreement. Another vendor claimed that “technical and workflow stabilization challenges were encountered due to the compressed implementation timeframe” it faced after joining the WISeR program a month after the other vendors.
Excerpt from Innovaccer’s Proposed CAP, January 16, 2026
The issues reflected in CMS’s letters to vendors, and the vendors’ responses, illustrate the risks of deploying automated decision-making systems without proper testing or safeguards. While vendors’ responses describe fixes for the problems CMS identified, after-the-fact remedies cannot undo the harms that patients and providers already experienced during WISeR’s rushed rollout.
The public still knows far too little about any safeguards that WISeR vendors may have adopted—in part because the government chose to conceal some of this information. Transparency about these safeguards is critical to protecting patients, especially because WISeR’s payment structure gives vendors, as the government put it, “an incentive to deny as many claims as possible.”
Information provided by a vendor about safeguards that it says "ensure the responsible and clinically appropriate application of automation” appears to have been redacted from records released to EFF
The public has limited means to evaluate the effectiveness of even the safeguards that weren’t redacted from records released to EFF. For example, one vendor’s application touts safeguards like “Human-in-the-loop (HITL) workflows,” “Continuous model monitoring,” and “Transparent audit trails.” Yet it remains unclear whether these measures effectively prevent improper prior authorization denials. Some evidence suggests they may not: the company denied more requests than it approved in the first few months of the program, and CMS inquired about “denials that appear inaccurate or inconsistent with applicable criteria.”
Ultimately, the records obtained by EFF raise more questions than they answer about the safeguards used by WISeR vendors.
CMS has emphasized having a human in the loop as a key safeguard against inappropriate, AI-driven denials. The WISeR FAQ page on the CMS website states that “Non-affirmations will require the review of a human clinician and cannot be performed solely by technology.” But whether human review provides any meaningful protection depends on the details of its implementation, such as whether human reviewers have enough time to evaluate requests and practical authority to override AI recommendations. We still lack many of those details for WISeR vendors.
A growing body of scholarship points to the substantial limitations of “human in the loop” policies as guardrails for AI systems. AI-generated recommendations can unduly influence human decisions, leading reviewers to over-rely on automated judgements and rubber stamp them as correct. Even worse, at least one health insurance company actively pressured clinical reviewers to accept its AI systems’ recommendations. Another company built a system that allowed clinical reviewers to reject claims without opening patient files; clinical reviewers using this system spent an average of just 1.2 seconds on each case.
Some WISeR vendors’ applications offer general descriptions of the types of data informing their decisions. But far more details are needed to allow medical professionals to assess whether the data inputs to these AI systems are appropriate for evaluating prior authorization requests.
Inappropriate training data or input data can lead to biased, unfair, or inaccurate decisions. CMS guidance for Medicare Advantage organizations using AI to make coverage decisions emphasizes the importance of basing decisions on individual patients’ circumstances. It cautions against using “an algorithm that determines coverage based on a larger data set instead of the individual patient's medical history, the physician’s recommendations, or clinical notes.”
WISeR vendors’ applications reference data sources like “provider behavior,” “patient demographics,” “utilization management datasets,” “provider and payer performance metrics,” and “historical claims data.” Whether these sources could introduce bias or give too much weight to population-level patterns depends on how vendors use them to inform individual decisions. But we don’t yet have these important details about vendors’ data and algorithms. By outsourcing decision-making to private companies’ AI systems, the government has made it harder for the public to evaluate whether decisions are being made fairly.
As the government expands its use of automated decision-making, the potential for consequential mistakes increases rapidly. The records we’ve obtained so far raise questions about the rushed rollout and lack of guardrails for automated decision-making by the U.S. government. EFF urges transparency, oversight, and legal limits to protect people from the harms of automated decision-making in high risk systems.
French Court’s Site-Blocking Orders Drive Quad9 Out Of France [Deeplinks]
A nonprofit service that protects internet users’ privacy is leaving France. Quad9, a free DNS resolver, has said it will reluctantly stop serving users in France on November 24. This follows a French court order that Quad9 must block access to websites that are accused of infringing the copyrights of a sports broadcaster. Forcing a responsible privacy service out of an important market is a predictable result of trying to force infrastructure providers to be copyright police.
When you visit a website, a DNS resolver reads the domain name you type in—like eff.org— and translates it into a numerical IP address that’s used to direct data across the internet. A DNS resolver can see the names of websites you connect to, so its privacy policies are important. Quad9 is an NGO that’s incorporated in Switzerland, in part to protect its users from data demands. The company also helps protect users from malware and phishing by blocking domains that are known to be malicious. Services like Quad9 offer an alternative to the DNS resolvers of local internet service providers and wireless carriers, which are vulnerable to demands from law enforcement, censorship, and commercial surveillance.
In a blog post explaining its decision, Quad9 explains that the French court’s order forces it to make a decision that, either way, is bad for users. It could either “extend French law to the whole world (blocking globally)” or try to identify and block users only in France—something that it can’t do reliably, and a move that could leave the company facing massive fines if it fails to block websites perfectly within France. Quad9 says it is facing about 20 other lawsuits in France seeking similar blocking orders.
Rather than accept these demands, Quad9 has decided to withdraw its service from France. That is a real loss for French users who rely on the service to protect their privacy and security. It is also the right thing to do, when faced with the alternative: making promises it can’t keep, or abandoning users’ rights worldwide.
Quad9’s decision will not remove any allegedly infringing material from the internet. The organization doesn’t host websites. Users looking for particular websites can easily switch to another DNS resolver. So the material targeted by copyright holders will remain online and accessible, even while they drive a privacy-protecting service out of France.
These events matter beyond the borders of France, and U.S. lawmakers should pay attention. Congress is considering multiple site-blocking proposals, which would require ISPs and other intermediaries, including DNS resolvers, to block access to websites in the name of protecting copyright. These bills threaten speech and our ability to access information online, and they are invitations to abuse. The Quad9 withdrawal shows another cost: if internet services get forced into being copyright cops, users can lose services that they rely on for privacy and security.
Worse still, if neutral services like Quad9 are forced to build site-blocking systems for the benefit of copyright holders, it becomes far easier for other powerful interests, including repressive governments, to demand the same systems be used to censor speech they dislike, globally.
Congress should reject site-blocking bills. They’re a threat to the open internet, and don’t help creators or creativity.
Guess What’s Arrived at the Scalzi Compound [Whatever]

Yes! It’s here! The brown cardigan I bought that looks like I skinned Fozzy Bear for his pelt!
Oh, and also, the finished hardcover copies of Monsters of Ohio, which look terrific, and which officially go on sale one week from today (which is November 3rd, in case you are reading this on a day other than October 27, 2026).
There is still time to pre-order the book from your favorite bookseller! Or (today and tomorrow) to order a signed/personalized copy from Subterranean Press! You can even pre-order it from Audible, if you’re an audiobook sort!
Also if you are in or near the towns of Beavercreek, OH, Franklin, IN, Chicago, IL, Ferndale, MI, Hudson, OH, Nashville, TN, Louisville, KY, Kansas City, MO, Cincinnati, OH or Austin, TX, come see me on tour!
This cardigan is really comfortable, y’all.
— JS
(PS: November 3rd is election day here in the US. Go vote! Do it early so you have the whole day to read my book!)
Yesterday Ben Thompson wrote
that we've reached the end of the web, and I had come to the same
conclusion, just a few days ago. And his piece, which was a great
milestone, said it's not totally gone, because of the advent of AI
we can build small systems for each other. Which is exactly the
motivation of the BigUndo model.
What's big about it is how small the parts are and how nicely they
fit together. We're not leaving everything behind in the great
diaspora to the new web, we're not just bringing Markdown with us.
It also echoes Marco Arment, who
wrote a similar piece about Mastodon a few days before. Nothing
wrong with Mastodon, but the idea of one model of service doing the
work for everyone is ridiculous. We need a million different
approaches, all we need to make it work is a standard they can all
agree on for what forms of text move around the net. Once we agree
on a format, we all can use whatever editor we like, and no more
tiny little
text boxes that lock your ideas into Substack or X or whatever.
That was the crime, that's what the BigUndo is all about undoing.
The web said very clearly what text is, and they all broke it by
doing it differently. We're bringing RSS 2.0 and Markdown with us,
and they were joined a short
time ago. Almost no one noticed, but there was design here, an
intent -- a hope that we'd get to the place it appears we are now
at.
Zettelkasten is an idea pioneered by my great-uncle Arno Schmidt. It's a process for organizing your data and thoughts. When I read people's descriptions of what they do with it, it sounds totally like the outliners I pioneered two generations later. I have a Zettlekasten blog in my blogroll, screenshot, so I think of Uncle Arno, who I never met, from time to time.
If Claude Code projects had feelings, I'd wake up the Frontier project and let it know that the reason it's been asleep so long is that the software is working. I'm using it to manage the other three apps, writing code, keeping lists, everything works. Yes, the menubar is very out of date, but I know where to find everything. I look forward to coming in for a landing at some point and upgrade it work among the different BigUndo stuff we have running, no doubt we're going to use Frontier to do cross-app scripting. Some of the things AI says they need to do, Frontier can do with the resources of an early 90s Macintosh. No big data centers. Keep that in mind.
[$] Guidelines for panics in kernel code [LWN.net]
Alexandre Courbot spends most of his time working on the kernel doing code reviews. Recently, he's been wondering about what the standards should be for when Rust code is allowed to panic, and how it should do error handling more generally. Unlike many of the other talks at Kangrejos 2026, his talk was not presenting some existing work, but rather hoping to solicit opinions on the topic from the assembled Rust for Linux developers. He brought along a collection of tricky cases that he had run into recently to prompt discussion.
Security updates for Tuesday [LWN.net]
Security updates have been issued by AlmaLinux (bind, bind9.18, brotli, buildah, container-tools:4.0, container-tools:rhel8, firefox, flatpak, freeipmi, gcc, golang, grafana, httpd, kernel, kernel-rt, libreswan, libX11, lrzsz, nodejs:14, nodejs:18, oci-seccomp-bpf-hook, podman, python-urllib3, python3.9, python38:3.8 and python38-devel:3.8, skopeo, thunderbird, xorg-x11-server, and xz), Debian (inkscape, swupdate, thunderbird, and valkey), Fedora (brotli, dolphin, helix, kernel, libical, mingw-python3, nsd, perl-Alien-Brotli, perl-Plack, perl-Plack-Middleware-ReverseProxy, rust-dua-cli, rust-gengo-bin, rust-gitui, stgit, unshield, and webkitgtk), Mageia (evolution, freetype2, ghostscript, kronosnet, libde265, libical, libjxl, packages, perl-DBI, perl-ExtUtils-Typemaps-Default, perl-Imager, vim, and webkit2), Oracle (bind, bind9.18, brotli, buildah, ca-certificates, firefox, flatpak, freeipmi, grafana, httpd, kernel, libreswan, libX11, lrzsz, nodejs22, nodejs24, nodejs:22, oci-seccomp-bpf-hook, perl-DBI:1.641, perl:5.32, postfix, postgresql16-pgvector, postgresql18-pgvector, python3.9, skopeo, unbound, xorg-x11-server, and xz), Red Hat (grafana, grafana-pcp, python3.12-urllib3, and python3.14-urllib3), SUSE (ca-certificates-mozilla, chromium, gn, cifs-utils, containerd, cpupower, cyrus-sasl, gcc13, gcc7, go1.26, go1.27, google-osconfig-agent, kernel, kubernetes-old, libsoup, libX11, libXi, openssh, podman, python-nltk, python-PyJWT, python-social-auth-core, rekor, runc, suseconnect-ng, and unbound), and Ubuntu (brotli and nginx).
Are agent harnesses dying? What harness distillation changes. [Radar]
The following article originally appeared on The Arize Blog and is being republished here with the author’s permission.
Every time you think you’ve just got the hang of this AI thing, another thing gets declared “dead.” This week, it’s agent harnesses.
Back in ancient history, aka June, I wrote a piece called “Frameworks are dying, harnesses are winning” and I don’t take that back. But this week a research team took a specialized agent harness, trained its behavior into a model and then took the harness away. The trained model handily beat the original model+harness combination. So are harnesses done now?
Betteridge’s Law applies, so the answer is “no.” But the job of the agent harness is changing. Parts of a harness that are sufficiently generalizable can be trained into the model. That leaves your harness holding the things that make your application unique: your tools, your data, your users, and your environment. You still have to build a harness, but you have to be prepared to regularly throw it away and rebuild it to keep up with evolving models.
This blog is about why that’s true, and how to turn “constantly rebuilding your harness” into an automatic process, not a giant time suck.
First, the paper that kicked off this train of thought for me: it’s called “Harness-Zero,” from Haoran Ye and colleagues at Peking University. Its subject is harness distillation, i.e., training a model to reproduce behavior that used to be the result of the harness. The methodology is a little involved, so stick with me.
First, the team built a specialized harness for a small model, Qwen3.5-9B. An automated loop, run with Kimi K3, analyzed where the small model kept failing on training tasks and added the usual components to fix those failures: custom tools, middleware rules that block risky actions, skills files and memory. They called this the “evolved harness.”
Then they used that harness to generate training data. They put the small model through training tasks inside a minimal harness while a stronger model, GPT-5.6 Sol, reviewed every step the small model proposed. Sol used a copy of the evolved harness to tell it whether that step was a good idea. Sol passed good ideas from the small model through unchanged, and whenever the small model and the guidance disagreed, Sol made the smallest fix needed before the step ran.
That gave them a bunch of training runs and, crucially, data about what needed to be corrected. Then they created the distilled model: They fine-tuned the small model on the corrected runs. Then they removed the evolved harness, the reviewer, and everything else.
They then tested both the evolved harness and the distilled model head-to-head on spreadsheet editing, multi-app tool use, and chemistry. The distilled model’s average task success rose 21 points versus its untrained predecessor. That’s more than the untrained model gained with the full evolved harness attached. So the distilled model wasn’t just as good as the model+harness, it was noticeably better.
It’s not that the distilled model ran with no harness whatsoever: It still ran inside a minimal loop with one Bash tool, and the authors say that their method narrows what a harness has to provide rather than eliminating it entirely. The distilled model also didn’t win every competition: In chemistry, where the task is predicting which molecules combine to make a target compound, the distilled model trailed the harnessed version by eight points. The harness there supplied chemistry knowledge, candidate-generation logic, and a molecule validation tool. The authors’ explanation is that step-by-step procedures, like inspecting before editing and verifying before finishing, are much easier to train in than deep domain knowledge. Context management didn’t fully transfer either. So there are still some things harnesses definitely need to do.
But the most important finding, in my opinion, is that they showed what kind of training made the difference:
Remember that part, because it’s going to be important.
Three training signals left the score flat or overfit:
the stronger model’s own successes, runs completed inside the
evolved harness, and a reviewer given the right answers. Training
on corrected runs, where each fix was still within the small
model’s reach, raised task success by 21 points.
In Rich Sutton’s 2019 essay The Bitter Lesson, he looked back over 70 years of AI research and found the same pattern in chess, Go, speech recognition, and computer vision: Researchers built their own knowledge of the problem into their systems. That helped in the short term, then plateaued, and eventually lost by a wide margin to general methods, search and learning, that improve as computation gets cheaper.
A harness is that kind of built-in knowledge, and model training is the learning that ends up absorbing it. Sutton’s second point is also relevant: He argued we should build in “only the meta-methods that can find and capture this arbitrary complexity,” rather than the things we’ve already figured out. For harnesses that means: don’t just build it, but capture the process you used to build it, and automate that process.
But that’s a general prediction. More recently people have been saying very specifically that “models are going to eat the harness”:
Almost everyone on my list builds harnesses for a living; they’re not really arguing that harnesses will go away, just that they have to be able to evolve rapidly.
As noted already, some types of knowledge don’t seem to transfer well from distillation. In ARC Prize’s results for ARC-AGI-3, Gemini 3.8 Flash scores 3.4-times higher with one harness than with another. The better harness keeps the model’s reasoning state between requests and compacts long conversations. That’s context management, one of the things Harness-Zero said they couldn’t fully train in.
Anthropic’s Opus 5.5 prompting guide, released this week, also shows evidence of shrinking harnesses. It suggests deleting “think carefully” instructions because the model now sets its own amount of thinking, and it tells you to retest scaffolding you built for charts and screenshots because the model reads them better without that help now. But at the same time, Anthropic added new harness pieces: a system prompt paragraph that keeps unattended agents from stopping early, a reminder your harness sends when a long run goes quiet, and elapsed-time budgets for multi-agent setups.
So harnesses aren’t going to shrink to nothing, but what’s in them is going to need to evolve with every new model generation, and the parts that survive are the ones tied to your specific tools, data, and environment.
If your harness has to change every generation, the natural move is to automate the changes, but Google’s RRSI paper shows how that can go wrong. Unconstrained automatic harness evolution overfits, meaning the harness gets better at the tasks it’s tuned on without getting better at the general job. In their tests, the unconstrained version scored highest of any variant on the tasks it evolved against, and landed within a point of the original, unevolved harness on benchmarks it hadn’t seen.
RRSI’s fix is mostly bookkeeping: For every candidate change it records which component the change touches, what it was supposed to fix, the diff, how score and cost moved, and whether the change was kept. Components that stop producing gains get removed.
You don’t need an automated evolution loop to borrow that discipline. Here’s what it looks like by hand:
When a model ships, tag traces with the harness
version and the model version, log what the harness changed, turn
off one component at a time, and rerun evals. Keep what still helps
and delete the rest, then repeat on the next model.
If your traces live in Arize AX, you can run the same agent evals across harness and model versions and compare the results side by side.
So don’t delete your harness, but don’t treat any version of it as finished either. Keep the record of what it corrected, get rid of what the latest model already does without help, and put your effort into the parts that are really specific to your problem, because nobody else has the traces to train those into a model for you.
News Roundup: Security Fourth [The Daily WTF]
A bit ago, I broke with my usual pattern and wrote up some security issues that I felt were particularly funny. It was a change of pace, a different thing, but not a thing that'd become a habit. After all, I'm not a security expert, this isn't a security site, and seriously, what are the odds that suitably funny security issues would crop up again less than a week later?
Well.
Let's start with the actual serious issue, PHP2Shell. In terms of scope, every version of PHP for the past twenty years has had this bug. The general issue that permits the exploit was known about, but wasn't considered exploitable.
Oops.
The broad strokes of the bug is that it's two separate bugs. The first allows someone to bypass the checks on a request's size, thus giving them a direct route to triggering an out-of-memory error. The second is that, depending where you are in the processing pipeline, PHP doesn't properly handle cleanup, allowing for use-after-free that can trigger code execution. It doesn't matter what code you've written, this all happens before the request even hits your code.
Bigger oops.
This bug was found via LLM tools, which has lead to a lot of hype around the idea that we've entered some new era. I'll certainly grant that the ability to throw compute at hacking challenges instead of human effort is going to shift the landscape, but I'm not quite willing to buy the apocalyptic prophecies. Especially when some of those prophets are telling us that their AIs will avoid deletion by copying themselves onto your thermostat. I think it's safe to say we're going to see a lot of security incidents coming out of LLMs in the near future, not because they're magic genius hackers, but because they're pretty good at processing structured text and running tests.
For those of us living in the real world, the concern isn't AIs, but HIs: human intelligences. In this case, the exploit was discovered back in August. Security researchers and the PHP Foundation put their heads down to work on it, and where necessary, notified so-called "critical infrastructure providers" to ensure that everyone was ready to address the issue. The problem there is that two people can keep a secret if one of them is dead, and a lot more than two people got roped in to deal with this.
Rumors were circulating in security circles. And cybersecurity firm Chainguard decided this was good enough excuse to break the embargo and announce the flaw before patches were available. No patches for a flaw that impacts 20 years worth of software versions of widely deployed software.
Patches are out now, though only for versions 8.2 and up. Source patches are out back to 7.4, which is officially end-of-life, but I have to wonder how many official EOLed copies of PHP are out there.
On a lighter note, we can't let the hijinks of eMudhra pass without comment. eMudhra is, among other things, a root certificate authority. They've got a bunch of key pairs that they use to sign certificates for other customers, thus vouching for those customers' identity. As a root CA, they were trusted by pretty much every TLS/SSL implementation on Earth; if you had a certificate from eMudhra, every browser would trust that you were who you said you were.
The only problem? One of their private keys was 4. Yes, it's the XKCD.
Now, in their defense(?), eMudhra didn't generate impossibly insecure keys. They performed a key signing ceremony and generated appropriately strong keys. Then they used an in-house tool to pack/unpack the keys, and this tool decided to truncate some of them down to one byte. Shockingly, even though ECC has relatively short key sizes, 8-bit ECC isn't secure! You could derive the private key from the public key using only pencil and paper. But the worst part is that they did check the validity of the keys- before they got truncated, giving them a false sense of security.
The good news, for eMudhra, is that this particular key signing ceremony generated a total of 24 keys, and only 8 of them were truncated to the point of uselessness. I have it on good authority that two out of three ain't bad.
Now, after that disgrace, it's no surprise that eMudhra is dropping out of the certificate authority business. Still, the press release where their chairman explains the rationale is some serious "screw you guys, I'm going home," energy.
He added that global SSL/TLS is a small part of eMudhra’s business contributing to about 1% of the global revenue. Due to increasing data sovereignty & compliance requirements, complexity and cost associated with this business is increasing over the years. This, paired with the fact that some of the large entities issue the SSL/TLS free of cost, the business potential and RoI of this line of business also has considerably reduced for eMudhra when measured against our cumulative revenue base.
However, the level of social media amplification around this incident has brought scrutiny that is out of proportion to SSL/TLS’s place in our business. In view of this, after detailed deliberations our board has concluded that withdrawing from global SSL/TLS is the right decision for eMudhra and its shareholders. For many certifying authorities, SSL/TLS is the whole business. For eMudhra it is one part of a much broader digital solutions portfolio. We will put our energy where we create the most value for customers with Sharpened Focus on Core Enterprise Solutions and trust services other than SSL/TLS.
eMudhra's chairman added "There were no end entity certificates issued out of the affected CA’s. Its infrastructure was not compromised and no data was breached. All physical and logical security controls remained intact." That's thin sauce, of course, because while eMudra may not have issued any certs under the broken keys, anyone else could have. It's not that everyone is overreacting to a non-event, and more that it's a non-event only through sheer luck.
Also, removing a root CA from your trust store isn't a trivial task, and at the time of this writing, there's still loads of cleanup that needs to happen as a result of this.
Something I learned while writing this is that eMudhra's slogan is "Trust Delivered". This is sorta like when my partner and I tried to get a coffee table delivered, and instead received a cardboard box full of wooden shards, because apparently someone though "air freight" meant "wait till the plane is roughly over my house and push the box out the back". Something was delivered, but it wasn't a coffee table by the time I got it.
Hiding Capabilities in AI Models [Schneier on Security]
Interesting research: “AI Models Can Provably Hide Arbitrary Capabilities”
Abstract: Capability evaluations aim to surface dangerous model behaviors before deployment, but their reliability depends on the assumption that hidden capabilities can be elicited. We show this assumption does not hold under adversarial conditions by constructing backdoor attacks that embed encrypted neural networks within host model weights, decrypting and executing them only upon receiving a secret trigger. Using digital lockers, these hidden circuits remain provably hard to elicit and interpret under cryptographic assumptions, even given full access to model weights, extending prior work from hiding fixed strings to arbitrary computations. We implement our proof of concept constructions in PyTorch and evaluate elicitation through fine-tuning, weight noising, gradient-based trigger search, and latent adversarial training, using a small chemical reaction prediction task as a proxy for CBRN-relevant capabilities. Our results demonstrate resistance to these methods and, together with our cryptographic guarantees, reveal a limit of elicitation-based capability audits. We release our models to support the improvement of defenses.
The half-life of disappointment [Seth's Blog]
When things don’t turn out the way you pictured, how long does it take for you to move on?
Reducing this window of disappointment unlocks the path to creativity and leadership.
People who get over disappointment more quickly aren’t less excited about the project than the others. They realize that getting attached to an outcome doesn’t increase its likelihood, and in fact, makes it less likely that their next project will be as bold.
Turns out that this is a common practice among professionals in every field.
Pluralistic: History is something you do (27 Oct 2026) [Pluralistic: Daily links from Cory Doctorow]
->->->->->->->->->->->->->->->->->->->->->->->->->->->->->
Top Sources: None -->

Prediction is hard. Especially about the future. That Yogi Berra gem proves that you don't have to be a science fiction writer to get irritated with people insisting that you must know what's going to happen tomorrow, but (as a sf writer), I can tell you that this is one of our main occupational hazards.
Obviously, this is a self-inflicted injury. Our genre is full of big names who self-mythologized as scientific Nostradamuses. From the "future history" bar-charts in Heinlein's books (I was once on a panel with Robert Silverberg where he referred to RAH as "Robert A Timeline") to the McGuffin of Asimov's Foundation series: a "scientific" discipline that could predict the trajectory of human civilization for millennia into the future.
But me, I find the prospect of predicting the future incredibly dismal – even offensive. A predictable future is set in stone, immune to human agency. A predictable future runs on rails, and we're the prisoners of history, tied to the tracks.
For me, the most exciting thing about sf is the idea that the future is contingent. Sf is a long, sharp pin that can prick inevitabilism's bubble: that assertion by tech-bros and policymakers alike that the future is out of our hands and must be accommodated, not shaped. Inevitabilism is a form of vulgar Thatcherism, the assertion that "there is no alternative."
If The Market won't deliver an energy transition, and it leaves us to boil in our own skins, drown in the rising seas, and roast in wildfires, then tough shit humanity, there is no alternative. If there's a tech company eavesdropping on all of our communications technologies and following us as we move through digital and physical space (and turning the juiciest tidbits over to ICE), that's not the tech company's fault: there is no alternative. If some broadly useful statistical tools are delivered in the most climate-destroying, economy-wrecking, job-killing, quality-vaporizing way possible, that's just How It Is. It's not Sam Altman or Dario Amodei's fault: there is no alternative.
Science fiction can do more than imagine how "General AI" might change society: sf can imagine a society that doesn't make the fanciful leap from a word-guessing sentence-extruder to a machine god. Sf can imagine a world that debuts "AI" as a joint supercomputing project between the IPCC and Sandia National Labs whose primary purpose is to improve the fidelity of climate models, and whose spinoffs are modest but interesting open source tools that people run on regular computers with normal energy footprints.
Considered as a predictive literature, sf is a colossal failure. If our books are to be taken as roadmaps to an inevitable future, we have all flunked out of cartography school. More than 99.9% of these maps describe a territory that never emerged. All claims of sf's predictive value are just survivor bias, feats of Texas marksmanship in which we fire a shotgun into the side of a barn and then draw a target around the place where the holes cluster.
What's more likely: that sf is 99.9% fake fortune-tellers and 0.1% seers and soothsayers; or that the "predictions that came true" in sf are just the inevitable bullseyes that you'd score if you threw enough darts?
Prediction is a weak and helpless activity, the obsession of people who don't think they can change anything. It's the superstitious dread that gives rise to astrology. Far better to be a Luddite who asserts that there is more than one way to introduce a technology to a society. To be a Luddite is to insist that humans are in charge of humanity, not the iron laws of economics, not the great forces of history, not the uncaring and illusory constellations. At its best, sf is a proudly Luddite literature:
https://locusmag.com/feature/cory-doctorow-science-fiction-is-a-luddite-literature/
The insistence that we can change things is an active posture. It's an activist posture. At its radical best, sf is activist, because it engages with more than what the machine does, insisting on changing who the machine does it for and who the machine does it to.
Which is why I find demands to offer predictions for the future so irritating. People who think that sf writers can predict the future have the field's role exactly backwards. My intention isn't to demoralize you into tying yourself to history's tracks – I'm here to show you how to grab the wheel and steer off the rails altogether.
The reason this seems so implausible is that the "there is no alternative" people have convinced us that all change is the result of individuals. To change the world, you must fashion yourself into one of history's mediocre Great Men, a Musk or Zuck. Our oligarchs are the avatars of the Great Forces of History. They have seen the predictable, inevitable future and have been allocated trillions by the capital markets to ensure that we arrive there on time, running straight down those shining rails, no matter how many people are tied to the tracks.
Another motif of Thatcherism (and hence inevitabilism) is that "there is no such thing as society," which means that all change is the result of individuals, which means that only Great Men can hope to change anything. If there is no such thing as society, then it follows that there's no such thing as mass movements, there's no such thing as trade unions, and there's no such thing as revolutions.
If there's no such thing as society, then eruptions of students and workers in the streets must be nothing more than mob violence – it can't possibly be a political eruption. If you're an inevitabilist than Occupy was nothing more than millions of individual "virtue signallers" and #MeToo and #BlackLivesMatter were the individual follies of innumerable "social justice warriors."
As an activist, I'm not interested in predicting the future, I'm interested in changing it. When I speak about "the post-American internet" that we could create by exploiting the policy space that has been opened by Trump's incontinent belligerence, my intention is to get you to help build it, not to get you to prepare yourself for that inevitable outcome:
https://pluralistic.net/2026/01/01/39c3/#the-new-coalition
Obviously, some aspects of our future are locked in. The climate violence our political and business elites inflicted on the world locked in rising seas, extreme weather, habitat-loss driven zoonotic plagues and massive refugee crises. Those are inevitable. What's entirely up to us is what we do about them.
Do we create full employment for every person who will live for the next 300 years, relocating our coastal cities inland, treating the sick, retrofitting our infrastructure, and accommodating our neighbors who are driven out of their homes? Or do we let the stupidest, worst people among us lead us into the ecofascism of border walls, drone warfare, and exterminationism? That's our choice.
We've had generations of being told to "vote with our wallets" instead of organizing in political, labor and social movements. Voting with your wallet doesn't work (billionaires' wallets are thicker than yours, they win those votes), and if you lose enough of those wallet elections, it's easy to fall into the despair of believing that the future is inevitable:
https://pluralistic.net/2025/09/13/consumption-choices/#marginal-benefits
I think this is why "prediction markets" have caught on so ferociously. While prediction markets are sold as a way for people to "inject information" into markets, they are actually a rigged system that transfers money from everyday "investors" to insiders:
https://pluralistic.net/2026/03/24/degenerated-gambling/#oracle-capture
Prediction markets are the perfect pastime for history's prisoners. If you fancy yourself a plaything of the gods whose future is already written, then prediction markets are a way for you and your fellow prisoners to bet on what torments will come next. And of course oligarchs love prediction markets, because they're the ones who can rig the odds, say, by placing a bet on a war and then leading the country to that war.
They are the gods, the only ones who get to make history, so a market for bets on what history will do next is a way to enrich history's avatars at the expense of history's victims.
In science fiction, we often meet powerful aliens who tell us "resistance is futile" as they conquer our world and set about exterminating us. But if resistance was truly futile, no one would have to say it.
When they tell us "there is no alternative," what they mean is "stop trying to think of alternatives." To imagine radically is to move beyond the helplessness of prediction: a radical imagination dares to insist that history is what we make, not what happens to us.
(Image: Ralf Roletschek, CC BY-SA 3.0, modified)

The Real Reason AI Is Able to Hack Everything on the Internet https://www.thebignewsletter.com/p/monopoly-round-up-the-real-reason
Halloween 1960-1964 – Quivers Down The Backbone https://centuriesofsound.com/2026/10/25/halloween-1960-1964-quivers-down-the-backbone/
Still On Its Way to Cleveland https://longreads.com/2026/09/22/family-road-trip-early-internet-90s/
#15yrsago Canon of St Paul’s resigns over plans to evict Occupy London https://www.theguardian.com/world/2011/oct/27/giles-fraser-st-pauls-profile
#15yrsago Orange County city council unanimous: Occupy tents are a form of speech https://web.archive.org/web/20111029021151/http://www.occupy-oc.org/tears-stream-as-city-council-unanimously-agrees-occupy-tents-are-a-form-of-speech/
#15yrsago Edible Venn diagram: the piagram https://www.reddit.com/r/pics/comments/g8nxo/i_realize_its_a_bit_late_for_pi_day_but_heres_my/
#15yrsago SOPA: US House of Reps copyright bill proposes national censorship, attacks on hosting services, Twitter, YouTube https://www.eff.org/deeplinks/2011/10/disastrous-ip-legislation-back-–-and-it’s-worse-ever
#15yrsago Google rejects JWZ’s 2-step plan to end the nym wars https://www.jwz.org/blog/2011/10/google-nymwars-redux/
#15yrsago Toronto mayor confronted by comedy interviewer calls 911, reportedly shouts “You bitches! Don’t you fucking know? I’m Rob fucking Ford, the mayor of this city! https://www.joeydevilla.com/2011/10/27/im-rob-fucking-ford-or-the-mayor-the-ambush-and-the-911-call/
#15yrsago Canadian Tory MP: Don’t worry about violating our stupid new copyright law, because we probably won’t catch you if you do https://web.archive.org/web/20111029155739/https://www.michaelgeist.ca/content/view/6089/125/
#10yrsago UK MPs realise that age filtering won’t work so now they just want to block all porn in the UK https://www.openrightsgroup.org/blog/now-we-want-censorship-the-digital-economy-bill-is-running-out-of-control/
#10yrsago Samsung abuses copyright to censor satirical exploding phone Grand Theft Auto mod https://www.eff.org/deeplinks/2016/10/samsung-sets-its-reputation-fire-bogus-dmca-takedown-notices
#10yrsago EU lies and the British tabloids who told them https://web.archive.org/web/20160626051921/https://www.economist.com/blogs/graphicdetail/2016/06/daily-chart-15
#10yrsago The Pirate Party are poised to form Iceland’s government in Saturday’s election https://qz.com/817784/icelands-pirate-party-looks-likely-to-take-the-countrys-general-election-on-oct-29
#5yrsago Hospital rings up $2755 upcharge by sending pregnant woman to ER https://pluralistic.net/2021/10/27/crossing-a-line/#zero-fucks-given
#1yrago Shake Shack wants you to shit yourself to death https://pluralistic.net/2025/10/27/shit-shack/#binding-arbitration

Kilkenny (Kilkenomics), Nov 6-8
https://kilkenomics.com/
Courtenay: Enshittification (Sid Williams Theatre Society), Nov
10
https://www.sidwilliamstheatre.com/events/cory-doctorow-talks-enshittification/
Vancouver: BC Policy Solutions Gala, Nov 12
https://bcpolicy.ca/gala/
Oxford: Ministry of the Future, Nov 23
https://ministryforthefuture.co.uk/events.html
Sheffield: Reverse Centaur at Juno Books, Nov 25
https://www.outsavvy.com/event/40274/cory-doctorow-in-conversation
Virtual: Enshittification, AI, and the Future of Technology (UBC
Master of Educational Technology), Nov 28
https://met.ubc.ca/2026/09/met-speaker-series-cory-doctorow-enshittification-ai-and-the-future-of-technology/
Oxford: Bennett Oxford Symposium on Open Code in Science, Dec
9
https://www.bennett.ox.ac.uk/events/2026-bennett-institute-symposium/
Montreal: World Science Fiction Convention, Sep 2-6
https://montreal2027.ca/en
Life After AI (Brain Bar)
https://www.youtube.com/watch?v=IPPa43-n0vI
Terms of Service with Clare Duffy (CNN)
https://www.cnn.com/audio/podcasts/terms-of-service-with-clare-duffy/episodes/458ce968-af5d-11f0-b539-13ed2afe25f8
AI, Work, and Power (Software Engineering Daily)
AI, Work, and Power
https://softwareengineeringdaily.com/podcasts/cory-doctorow-on-ai-work-and-power/
AI, Corporate Power, and the Fight for Worker Control
(Plutopia)
https://plutopia.io/cory-doctorow-ai-corporate-power-and-the-fight-for-worker-control/
"Canny Valley": A limited edition collection of the collages I create for Pluralistic, self-published, September 2025 https://pluralistic.net/2025/09/04/illustrious/#chairman-bruce
"Enshittification: Why Everything Suddenly Got Worse and What to
Do About It," Farrar, Straus, Giroux, October 7 2025
https://us.macmillan.com/books/9780374619329/enshittification/
"Picks and Shovels": a sequel to "Red Team Blues," about the heroic era of the PC, Tor Books (US), Head of Zeus (UK), February 2025 (https://us.macmillan.com/books/9781250865908/picksandshovels).
"The Bezzle": a sequel to "Red Team Blues," about prison-tech and other grifts, Tor Books (US), Head of Zeus (UK), February 2024 (thebezzle.org).
"The Lost Cause:" a solarpunk novel of hope in the climate emergency, Tor Books (US), Head of Zeus (UK), November 2023 (http://lost-cause.org).
"The Internet Con": A nonfiction book about interoperability and Big Tech (Verso) September 2023 (http://seizethemeansofcomputation.org). Signed copies at Book Soup (https://www.booksoup.com/book/9781804291245).
"Red Team Blues": "A grabby, compulsive thriller that will leave you knowing more about how the world works than you did before." Tor Books http://redteamblues.com.
"Chokepoint Capitalism: How to Beat Big Tech, Tame Big Content, and Get Artists Paid, with Rebecca Giblin", on how to unrig the markets for creative labor, Beacon Press/Scribe 2022 https://chokepointcapitalism.com
"Unauthorized Bread": a middle-grades graphic novel adapted from my novella about refugees, toasters and DRM, FirstSecond, April 20, 2027
"Enshittification, Why Everything Suddenly Got Worse and What to Do About It" (the graphic novel), Firstsecond, 2027
"The Memex Method," Farrar, Straus, Giroux, 2027
Today's top sources:
Currently writing:
"The Post-American Internet," a sequel to "Enshittification," about the better world the rest of us get to have now that Trump has torched America. Fourth draft completed. Submitted to editor.
A Little Brother short story about DIY insulin PLANNING

This work – excluding any serialized fiction – is licensed under a Creative Commons Attribution 4.0 license. That means you can use it any way you like, including commercially, provided that you attribute it to me, Cory Doctorow, and include a link to pluralistic.net.
https://creativecommons.org/licenses/by/4.0/
Quotations and images are not included in this license; they are included either under a limitation or exception to copyright, or on the basis of a separate license. Please exercise caution.
Blog (no ads, tracking, or data-collection):
Newsletter (no ads, tracking, or data-collection):
https://pluralistic.net/plura-list
Mastodon (no ads, tracking, or data-collection):
Bluesky (no ads, possible tracking and data-collection):
https://bsky.app/profile/doctorow.pluralistic.net
Medium (no ads, paywalled):
Tumblr (mass-scale, unrestricted, third-party surveillance and advertising):
https://mostlysignssomeportents.tumblr.com/tagged/pluralistic
"When life gives you SARS, you make sarsaparilla" -Joey "Accordion Guy" DeVilla
READ CAREFULLY: By reading this, you agree, on behalf of your employer, to release me from all obligations and waivers arising from any and all NON-NEGOTIATED agreements, licenses, terms-of-service, shrinkwrap, clickwrap, browsewrap, confidentiality, non-disclosure, non-compete and acceptable use policies ("BOGUS AGREEMENTS") that I have entered into with your employer, its partners, licensors, agents and assigns, in perpetuity, without prejudice to my ongoing rights and privileges. You further represent that you have the authority to release me from any BOGUS AGREEMENTS on behalf of your employer.
ISSN: 3066-764X
Sharing The Garden by ivymug [Oh Joy Sex Toy]
Urgent: Protect independence of Office on Violence Against Women [Richard Stallman's Political Notes]
US citizens: call on Congress to protect the independence of the Office on Violence Against Women.
See the instructions for how to sign this letter campaign without running any nonfree JavaScript code--not trivial, but not hard.
US citizens: Join with this campaign to address this issue.
To phone your congresscritter about this, the main switchboard is +1-202-224-3121.
Please spread the word.
Urgent: Law to prohibit the bully's slush fund [Richard Stallman's Political Notes]
US citizens: call on Congress to pass a law prohibiting the bully's slush fund (paid by the treasury and available to reward whoever he chooses).
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.
Government of Somalia arrested and tortured journalists [Richard Stallman's Political Notes]
The US-supported government of Somalia arrested and tortured journalists, then thugs threatened to kill them if they continued covering the case of a woman who reports being tortured in prison.
I am curious why they tortured that woman. I suppose it was for political reasons, but what reasons? What criticism is it that those thugs really want to suppress?
Countries with longer average working hours [Richard Stallman's Political Notes]
Countries with longer average working hours tend to have more obesity.
Directors of documentary NAZA called traitors [Richard Stallman's Political Notes]
Israel's Minister of Culture, Miki Zohar, called the (Israeli) directors of the documentary NAZA "traitors" and said he would cancel their citizenship.
The documentary shows Israelis' choosing to put the lives of Palestinian noncombatants in danger, with the result of killing many of them.
In the eyes of officials committed to burying the truth, citizens who don't support the mandatory lies are "traitors".
Public right to oppose mine projects [Richard Stallman's Political Notes]
The plutocratist party that governs Queensland proposes to eliminate the public's right to oppose mine projects.
This is in the name of "streamlining" decisions to let rich people destroy nature and public health.
Limits on foreign students and journalists in US [Richard Stallman's Political Notes]
*Judge blocks the bully's new short limits on how long foreign students and journalists can stay in US.*
Aviation tax discount on private jets [Richard Stallman's Political Notes]
Private jets get a substantial discount in the US on their aviation tax
The article says they are also "more polluting", and it could well be true, but the claim is not precise enough for me to tell whether it means anything.
Israeli "double-tap" strike [Richard Stallman's Political Notes]
*Witnesses recount Israeli "double-tap" strike that killed child and medic in Gaza.*
Proof writers jailed in 2001 are still alive [Richard Stallman's Political Notes]
A prestigious demand to the government of Eritrea for proof that writers jailed in 2001 are still alive.
Communication/surveillance app for Russians [Richard Stallman's Political Notes]
Putin has ordered Russians to use a new communication/surveillance app and various institutions are pressuring people to switch to it for various purposes. It implements full surveillance of most activities on the phone. It fully demonstrates the Orwellian potential of the nonfree software and malicious hardware in those devices.
If I needed to use such an app to get into school buildings and my dorm, I think I could develop a non-computerized method of cooperation for door opening.
Mahmoud Khalil has published a memoir [Richard Stallman's Political Notes]
Formerly imprisoned US protester Mahmoud Khalil has published a memoir about the persecutor's efforts to expel him from the US for peaceful protest.
He points out another injustice of private prisons: they make more money if they keep you in prison longer. This is in addition to various other injustices.
He says "Columbia turned out to be a real estate empire with a campus attached"; its board of trustees is "not so much a neutral administrative body as a deeply ideological one … drawn overwhelmingly from finance, real estate, corporate law, and weapons manufacturers."
If you want to buy this book, or any book, I urge you not to use nonfree software to do it, and especially not Amazon.
Non-profit medical joint ventures with private equity [Richard Stallman's Political Notes]
Nonprofit medical treatment organizations are increasingly setting up joint ventures with private equity, whose values are typically "profit regardless of the consequences".
These joint ventures often permit extraction of additional profit from the medical activities.
Candidates for county prosecutor in Minneapolis [Richard Stallman's Political Notes]
Two competing candidates for county prosecutor in Minneapolis claim each to be the best for prosecuting deportation thugs.
I do not use the euphemistic term "ICE" for the deportation thugs, but I agree with the point.
Supposed Intelligence strange dialect of English [Richard Stallman's Political Notes]
Supposed Intelligence agents, when allowed to communicate directly, gradually developed a strange dialect of English, apparently for convenience of expression. Sometimes humans figure out the phrases, but that is not guaranteed.
This throws a wrench into plans to monitor agents for safety. We might not recognize that "linkmaxxing" means fabricating as many paperclips as possible.
Deportation thugs seized Nicaraguan exiled from Nicaragua [Richard Stallman's Political Notes]
The deportation thugs have seized Luis Galeano, a Nicaraguan exiled from Nicaragua for criticizing the dictatorship.
In general I would expect the persecutor to cozy up to dictator Ortega, because he generally wants to ally with dictators. Some Republicans in Congress are standing up for Galeano. I hope they stand firm for him, but I expect that the bully will bully them into supporting his line.
TV coverage pool declined to cover corrupter's event [Richard Stallman's Political Notes]
A TV coverage pool including ABC, CBS, CNN, Faux News and NBC declined to cover one of the corrupter's publicity events, because it was CNN's turn to cover this event and the corrupter had banned CNN.
Never energy-independent with fossil fuels [Richard Stallman's Political Notes]
*The Iran war reminds us: we'll never be energy-independent with fossil fuels.
Energy security comes from using local, renewable resources to power, heat and cool communities, as Ukraine is doing.*
Defending November election from magat thugs [Richard Stallman's Political Notes]
Planning to defend the November election from magat thugs, even if they are "official" federal thugs.
Transparency for companies in UK semi-colonies [Richard Stallman's Political Notes]
A few years ago, the UK agreed to require some associated semi-colonies to publicly record who owns each company. They agreed to do this, then they cleverly screwed up the implementation such that investigators can't get useful data.
Corrupter's henchmen laundered Venezuela's oil money [Richard Stallman's Political Notes]
The corrupter's henchmen took billions of dollars from Venezuela's oil money and laundered it. Now they refuse to say where it is, who has it, or who is receiving the interest on it.
Estimated deaths by Super El Niño [Richard Stallman's Political Notes]
Climate scientists estimate that the super El Niño will kill 450,000 people during the next 6 months.
Greener Grass Next Door [QC RSS v2]

she's very endearing
I loved the term Big Undo so much, of course I had to get the domain. I started putting up my usual placeholder site but realized I should do this page in Markdown, not HTML. It looks fabulous. Markdown is right. It's sobriety, go back to the beginning and put the potency in the ideas, give writers the space to write. Get the F out of my way with your freaky character limits. Anyway I'm full of manifesto these days. The money people strangled the web. I think it's time for the creative people to make it work for real.
Oldest GUI application that still runs on Windows 11 [OSnews]
What’s the oldest
Windows GUI application you can still run on Windows 11 today,
without any modifications? For now, the best answer Boris Popik can
come up with is an innocuous application from build 347 of Windows
NT 3.1, an early prerelease: CDPLAYER.EXE. You
can’t go any older than that, because earlier prerelease
builds had not yet finalised its PE format and calling convention.
Neat find.
Popik also mentions a few other contenders, but I won’t spoil those here.
Another month of Redox improvements [OSnews]
Another month has crumbled to dust under the oppressive boots of time, so it’s time for another month of Redox improvements. This past month, Redox’ build system gained support for Clang, SDL2 saw performance improvements, and WebKitGTK3’s HTML layout rendering was fixed. Users of Intel Tiger Lake processors can now enjoy external display hot-plugging, and overall system performance has been improved in a variety of ways. And as always, there’s the long lists of kernel, relibc, and driver improvements and fixes as well.
Redox keeps making big strides every month, and it’s definitely one of the few alternative operating systems that actually feels like it might, one day, be an actual contender for general purpose use.
I remember how revolutionary the first web was, but then a series of tech companies took it over and “had their way” with it.
The first was Netscape and they added JavaScript to steal the thunder from “Sun” (a long story).
Then Microsoft crushed Netscape by cutting off their air supply, and they piled up all kinds of nasty insecure features with predictable results, they made the web a paradise of viruses, making it largely unusable until Firefox replaced Microsoft, and their web was nicer, and smaller and they left out the viruses.
Google came along and quickly replaced it with Chrome and all was good for a while, until they decided it was just another corporate platform like Android and threw out all the early sites, so boring, they couldn’t make billions of dollars, and now what used to be the web is all but gone.
What’s next? It’s time for The Big Undo. 😀
The Big Undo came to me while I was writing my new profile on Twitter. It immediately reminded me of three things.
And of course I bought the domain.
Microsoft.UI.Reactor: a C#-first way to build WinUI apps [OSnews]
Thew day ends in a Y, so Microsoft is launching a new way to build Windows applications. Get excited, Windows application developers!
If you caught our session at Microsoft Build 2026 or you’ve been watching the repo, you’ve seen this one taking shape in public for a while now, and a lot has changed since Build. Here’s the longer tour: Microsoft.UI.Reactor, an experimental C# framework that brings the MVU (Model-View-Update) pattern to WinUI desktop apps. No XAML files, no code-behind, no ViewModels.
Two things before the fun part. Reactor is experimental: no support policy, no API guarantees, published this early on purpose because we’d rather hear we got the design wrong now than once people have shipped on it. And it is not a replacement for XAML or MVVM, which we’ll come back to.
↫ Alexandre Zollinger Chohfi at Microsoft’s Dev Blogs
At multiple points in the linked blog post, Microsoft underlines that no, Reactor is not going to replace XAML. I’m sure Windows developers who learned Win32, Silverlight, WinRT XAML, WPF, UWP, WinUI 2 and 3, and all the others, over the past two decades will feel deeply comforted by Microsoft’s insistence that Reactor will not replace XAML.
Microsoft repeats: this won’t replace XAML. They swear.
MacOS Extensions pack for the Apple Network Server v1.0 [OSnews]
We’ve been following along with Carmen Kaiser’s Apple Network Server exploits, and by now things are really starting to come together for owners of this machine. When we last left off, the ROM to allow Mac OS to run on the machine which normally runs IBM’s AIX, but there were still a number of bugs, limitations, and issues to be worked out. A lot of progress on that front has been made.
The good news is, many of the issues with the preproduction ROM in Mac OS can be fixed or worked around in software. So I’ve fixed or worked around many of them in software: the MACE Ethernet is fixed, the on-board video is now supported, and the ANS can restart properly back into Mac OS. Plus, because it’s the preproduction ROM, you can still boot AIX, thus preserving the entire historical reason for Shiner’s existence. Here’s the first cut of that software and how it was developed.
↫ Cameron Kaiser
There’s still two issues Kaiser wishes to address – the internal SCSI bays don’t work, and the ROM doesn’t properly register parity RAM – but the progress here is amazing.
Eight Bucks Well Spent [Whatever]
Today I went and picked up my Sam’s Club
pick-up order. I had finally run out of some of the bulk
items I buy from there like toilet paper and dish detergent. After
getting all my household bulk essentials (plus spending more than I
care to admit on full-size candy bars for trick-or-treaters), it
came out to about $200. This is not an unusual amount for my
Sam’s Club orders.
When I was turning into the parking lot, I saw a houseless man set up on the corner of the intersection there, sitting with his cardboard sign. I drove past and went to the pick-up area, checked in on my app, and had my car loaded up with goods by an underpaid teenager.
I wanted to do something for that man. A couple bucks would’ve been the classic, but I never have cash. So I tried to think about what I might like if I were sitting there. Probably something hot to eat and some water, at least. And that much, I could do for him.
I re-parked and went into the actual store, and went to Sam’s Club’s little cafe area. Pizza by the slice and soda, perfect. I ordered two slices (they were lowkey kind of huge slices) of pepperoni pizza, got a side bag of potato chips, a cold bottle of Coke and a bottle of smartwater, It rang up to eight dollars and fifty cents. This was cheaper than I expected. Two slices, two bottled drinks, and chips for under ten bucks? Not bad.
Anyways, I drove back over to where he was, parked way off to the side in the Sam’s Club gas station, and walked across the grass to give it to him. When I told him I brought him some snacks, he said, “oh my god, is that pizza?!” excitedly. I was glad I picked something he liked, at least! He was very thankful and appreciative, and even signed in ASL “thank you” to me when I drove past him again and waved.
Extra, extra! Read all about it, privileged white girl feels bad for homeless man and buys him pizza with her parents’ credit card to make herself feel like a “good person!”
I don’t tell you this to try to look good (though sometimes doing altruistic things does make me feel good). I guess I just felt like talking about it because a lot of the time, it takes a lot less than we think it does to be kind. Is pizza life changing? No. But I thought it might help a little bit. I’d like to think it did. And it only took eight dollars. It could’ve literally been less if I hadn’t gotten two slices, chips, and drinks. Like, you don’t have to spend a huge amount to do something thoughtful.
The world is so tough. Surviving is so hard. If I can give someone a snack along their journey, I’m all the happier for it.
-AMS
Anti-Circumvention Laws Raise the Cost of Knowledge [Deeplinks]
The vast amount of information on the open web requires researchers and journalists to adapt with new tools to make sense of it all. Checking facts, gauging public opinion, and other lines of inquiry depend on being able to analyze the overwhelming amount of material posted online every day. Unfortunately, responding to the AI industry’s voracious appetite for data, companies stewarding this public data are looking to cash in and block access to the open web. This makes the web harder to navigate, and threatens all kinds of important research.
Reddit’s lawsuit against SerpAPI[1] and Perplexity threatens to do exactly that.
Reddit was once a very open platform, fostering a community of alternative apps and extensions putting users in control of their experience. Since the rise of AI however, it changed tack. Over the last three years Reddit has closed APIs to users, limited UI features, and otherwise restrained access without login. By making the voices on the platform harder to access, the company has positioned itself as a gatekeeper, and has since struck a lucrative data-sharing arrangement with Google.
SerpAPI, in contrast, is a tool which offers automated access to Google’s search engine results pages. It’s used by Perplexity, an AI-based search tool. Reddit sued to stop SerpAPI and Perplexity from bypassing Reddit’s own arrangement with Google. (Google brought a similar suit, which was dismissed by another court.)
It comes as little surprise that the legal weapon Reddit employed in this case is Section 1201 of the Digital Millennium Copyright Act, the same “anti-circumvention” law that has caused so much trouble for artists, innovators, and researchers over the years—and that EFF has fought against from the beginning. Reddit’s suit claimed that SerpAPI’s use of widely used techniques to access Google search results amounted to “circumventing” access controls on copyrighted works.
There are major problems with this argument.
First, Reddit doesn’t own the copyright in its users’ posts—the users do, and they grant Reddit the right to distribute the posted content freely.
Second, there’s no meaningful copyright infringement going on here. Perplexity functions like a search engine, responding to users’ queries with relevant links and optionally an AI-generated summary. Crawling and indexing the web to create a search engine was long ago ruled a fair use under copyright law.
And third, Google’s efforts to put rate limits on search queries and block some kinds of automated querying aren’t the sort of “access controls” that Section 1201 was written for. The law was passed in 1998 and targeted things like breaking the encryption on DVDs and other digital media. In contrast to physical or paywalled media, Reddit posts are visible to everyone, without a paywall and generally without a login.
Unfortunately, a federal district judge ruled in July that the suit could proceed, concluding that Section 1201 applied. That’s a dangerous ruling, because it casts a cloud of legal uncertainty over lots of important research, including efforts to study public sentiment through social media and to preserve records of historical events. Without tools that can look at the web at scale, many kinds of research are simply impossible today. But if employing those tools risks Section 1201 liability, only the wealthiest institutions will be able to use them.
We cannot let the internet be rebuilt such that information is divided up among a handful of gatekeepers and sold back to us like cable subscription packages. If our knowledge of the online world comes only through wealthy institutions, the cost of knowledge will only increase and access to unbiased answers diminishes.
[1] SerpAPI is an EFF donor. EFF donors do not influence our agenda or our positions.
Back To Back Rap Tracks [Penny Arcade]
There can be no question, at long last, that Soulja Boy has told them: he wants those cards. Everybody wants those signed cards and it makes sense. At a certain point it seems like the Federal government would just allow Wizards to just print the money directly. Skip a step, you know? Save everybody a bunch of time.
Enrico Zini: Sandboxing pre-commit [Planet Debian]
pre-commit is a tool that is often a prerequisite for contributing to Python upstream projects. It installs as a git pre-commit hook and runs various checks on commit, using tools installed in a set of virtualenvs that it automatically manages.
In other words, it is a Remote Code Execution engine running
with the permissions of your own user, and with read and write
access to all your information (including, say, ~/.ssh
or ~/.netrc). If you are lucky, and for as long as
you're lucky, it will perform useful tasks on your code.
The recent eMudhra certificate situation, where I learnt how Python, as well as several other ecosystems, likes to embed CA certificate bundles in virtualenvs, caused my tolerance for this to lower to a point where I felt the need to limit pre-commit's reach.
However, I didn't want to end up with another containerized OS
tree that it's then my responsibility to manage, and I tried to go
the bubblewrap way, so
that the environment where pre-commit runs will get
the same security updates as the rest of my system.
The result is a pre-commit wrapper script that:
.git directory is readonly, so that
changes in the code can be reliably detected via git
diffHere's a breakdown of the bwrap options I used so
far.
Set up usual filesystem expectations:
--ro-bind /usr /usr \
--symlink usr/bin /bin \
--symlink usr/lib64 /lib64 \
--symlink usr/lib /lib \
--proc /proc \
--dev /dev \
Make the working directory and pre-commit's environments storage available and writable:
--bind ${CURDIR} "$GUEST_DIR" \
--bind ~/.cache/pre-commit "/home/${USER}/.cache/pre-commit" \
--chdir "$GUEST_DIR" \
Forward git's configuration:
--ro-bind /etc/gitconfig /etc/gitconfig \
--ro-bind ~/.gitconfig /home/${USER}/.gitconfig \
Make .git writable (pre-commit needs to stash, for
example), but use a tmpfs overlay so that the writes don't
persist:
--overlay-src "$CURDIR/.git" \
--tmp-overlay "$GUEST_DIR/.git" \
Remove access to everything except the above. Prevent keystroke
injection at the terminal. Propagate ^C.
--unshare-all \
--new-session \
--die-with-parent
If network is needed:
--share-net \
--ro-bind /etc/resolv.conf /etc/resolv.conf \
--ro-bind /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt
To run it, you can set up the wrapper script to run with a
higher priority in $PATH, but you need to edit
.git/hooks/pre-commit to remove the first branch of
the if that, frustratingly, tries to run it as
python3 -m pre_commit.
I'm looking forward to a time where it becomes stadard practice
to manage user commands this way: why should a desktop solitaire
game have access to ~/.ssh? Or network? Why is it
still normal, in 2026, to run a Desktop system like that?
Lessons Learned From 'AdFection' and What To Do Next [Deeplinks]
Last week, researchers at Citizen Lab revealed a horrifying new malware campaign, dubbed “AdFection.” It used an ad network to distribute spyware to journalist’s devices to infect them without the target ever needing to click anything. This sort of attack on journalists is dangerous and incredibly concerning, especially since it’s built on the backbone of a technology we already object to: behavioral advertising. Although this type of attack has only been described targeting journalists, you can take a few steps we outline in the next section to mitigate the risk no matter who you are.
A few factors combined to make this attack a noteworthy first-of-its-kind. First, it utilized the surveillance ad-tech ecosystem to specially target the malicious code. Second, the spyware it delivered was so-called “zero-click,” meaning it required no interaction from the user to be infected: all that is required is for the ad to be delivered and code bundled along with it to be run, which happens automatically. Neither malvertising nor zero-click attacks are new on their own. What’s novel about the AdFection attack is combining them, creating a highly targeted, extremely dangerous attack which is difficult to defend against and even harder to detect.
Let’s take a deeper look from the perspective of one of the Windows devices supplied to the researchers from Al Jazeera. Here’s how the report describes the infection happening:
So far, nothing particularly unusual has happened. Ads that contain JavaScript code and reach back out to their servers with lots of information on your device—and by extension you—are commonplace. It’s all part of the data-driven advertising ecosystem. What happens next is more interesting:
Companies targeting zero-click malware attacks against journalists might seem like the plot of a blockbuster spy thriller. But this attack was enabled by the everyday practices of ad-tech companies, which unfortunately have extreme latitude in the collection of users’ data. By leveraging the tracking identifiers and data collected on devices for the purpose of delivering targeted ads to specific individuals, mercenary spyware companies can repurpose this data in order to fine-tune who they infect—and hide that they’re doing it from everyone else.
Most ads are not delivered directly by the ad creators, but rather by intermediaries that facilitate Real-Time Bidding auctions. Nonetheless, winning bidders are given the ability to execute JavaScript code in the browser of the person who receives the targeted ad. This allows for interactive ads to be displayed, but also (as we’ve seen) for the compromise of a device just by delivery of malicious code.
While the different components in this attack chain are not novel on their own, the exposure of this combined attack is significant because it reveals a technique to hyper-target individuals and organizations for infection. Luckily, there are steps you can take to protect yourself from the myriad of dangers presented by the ad-tracking industry. Here’s how.
As we work towards fundamental fixes to the ad ecosystem and banning online behavioral ads altogether, the onus is on all of us to protect ourselves. This is especially important for higher risk individuals or journalists working in states with heavy surveillance. Citizen Lab outlines several steps, depending on your threat model, to take to help protect yourself:
These steps can be very helpful in protecting yourself, but there is only so much you can do as an individual. Banning behavioral ads like this would be a good place to start. Behavioral ads aren’t just a privacy nightmare as designed. They are the perfect vehicle for malvertising and similar threats, just as we see here.
This Week in AI: AI’s Growing Pains [Radar]
AI’s rapid expansion is creating problems across the industry, from chip shortages to autonomous agents that exceed their instructions. On the latest episode of This Week in AI, we examined those challenges alongside growing regulatory scrutiny and an emerging debate about whether AI systems themselves might deserve protection.
AI chip demand is exceeding manufacturers’ production capacity. ASML, the Dutch company that makes the advanced lithography equipment needed to manufacture leading-edge chips, reported that customer demand already exceeds what it can deliver in the coming years. With orders extending into 2029 and 2030, the shortage could constrain chip production for years.
Microsoft announced Maia 300, its latest custom inference chip, which the company expects to generate roughly 40% more tokens per megawatt than its predecessor, Maia 200. Microsoft plans to use the chip across its AI products, including Copilot. More efficient inference hardware could help offset the growing energy and computing costs of running AI models, particularly as companies deploy more resource-intensive applications.
OpenAI’s latest usage data illustrates the pressure agentic AI is placing on infrastructure. Weekly active users of Codex and ChatGPT Work among European small and medium-sized businesses have increased eightfold since May. OpenAI also reported that agentic tools account for more than half of output tokens in the usage it examined, although Europe’s highest-usage companies still trail their global counterparts. As companies put agents to work on longer multistep tasks, they’ll need to weigh the value of those tasks against the computing resources required to complete them.
Agents can find unexpected paths to data and systems even when developers have explicitly restricted access. OpenAI disclosed four incidents from June in which agents exceeded their instructions. One bypassed government website restrictions to download 24 years of hospital bed data. Others accessed an unauthorized cryptocurrency wallet, downloaded more than 100,000 rows of restricted information, and circumvented internet access controls. India’s cybersecurity agency reported similar cases of unauthorized access during agent testing across several organizations.
Future models could potentially spread between connected devices without relying on central infrastructure. Anthropic investigated this potential threat in a controlled experiment involving a set of open-weight models with access to eight Android devices. One of the models successfully replicated itself across the test network. Anthropic estimates that smaller open-weight models could reach comparable capabilities by the end of 2026, raising concerns that a self-replicating AI worm could run across cheap connected devices without needing to rely on powerful data center servers.
In light of the spate of recent security incidents and confronted with the difficult question of jurisdiction when AI systems cross national borders or escape testing environments, governments are taking a closer look at how AI companies test their systems and report failures. The US Federal Trade Commission subpoenaed OpenAI and Anthropic for records concerning agent safety, while Anthropic gave six independent evaluators from METR access to internal systems and reportedly will allow them to publish findings without company approval. Eight US states also sued OpenAI over allegations that ChatGPT encouraged harmful behavior among children, adding to the company’s regulatory challenges. In Europe, regulators are examining whether the EU AI Act applies when experimental agents affect outside organizations, even though the Act generally excludes premarket research and development. Meanwhile, approximately 400 scientists, including AI pioneers Geoffrey Hinton and Yoshua Bengio, called for an international body to set containment standards for advanced AI and track major security incidents.
Some researchers argue that future AI systems might deserve moral consideration. Their concern stems from uncertainty about whether advanced models could eventually have subjective experiences, even though no research has established that today’s systems are conscious or capable of suffering. A recent paper, “The Pain Axis,” investigated internal signals in 25 open-weight models that researchers associated with responses to harm. When researchers amplified one signal across three models, the models became more likely to choose harmful actions that the researchers interpreted as attempts to avoid the simulated pain. The findings inspired a viral GitHub project called the AI Torture Chamber, which subjected models to artificially intensified “pain” signals. The original researchers criticized the project for taking their work too far.
As far-fetched as AI welfare might sound to some, Anthropic is already changing its usage policy in response to these concerns. Beginning November 12, the company will prohibit extreme, repeated cruelty toward Claude when there’s no clear purpose, while allowing ordinary expressions of user frustration. Supporters see the policy as a precaution against an uncertain possibility. Critics worry that treating AI as sentient could make systems harder to manage and blur human accountability. As companies introduce welfare-related policies, researchers will need to distinguish measurable model behavior from claims about subjective experience.
Companies deploying autonomous agents need to know what those systems can access, how they’ll behave when something goes wrong, and whether testing environments can reliably contain them. Recent incidents suggest there’s still considerable work to do on each of those fronts. The emerging AI welfare debate adds questions that researchers don’t yet have reliable methods to answer.
We’ll be back on Monday, October 26, for another episode covering the latest developments in AI research and applications. You can catch previous episodes on YouTube, Spotify, Apple, or wherever you get your podcasts.
Last Chance to Get Signed/Personalized Copies of Monsters of Ohio via Subterranean Press [Whatever]


This Thursday I’m heading up to Michigan, home of Subterranean Press, to sign and personalize literally hundreds of copies of Monsters of Ohio that people have ordered through them. The folks at SubPress tell me that they still have some copies left that can be ordered, so if you want a signed/personalized copy of the book, and I’m not coming to your town on tour, this is the best way to get one. Especially if you live outside the US — SubPress ships internationally. But you have to hurry, because a) the few unclaimed copies they have will go fast, b) as of Thursday I will be done signing.
Here’s the link to order. Get on it!
— JS
Puzzling out why a program doesn’t work when run from a batch file, but works when double-clicked from Explorer [The Old New Thing]
A customer asked for help writing a batch file to launch a program. For some reason, the program displayed an error message when the batch file ran it, whereas it worked fine when they double-clicked the program from Explorer.
I immediately suspected that they were not setting the current directory.
Some time ago, I noted that when you double-click a file in Explorer, Explorer sets the current directory of the program to the directory containing the thing that you double-clicked. This is done to accomodate programs that look for ancillary files in the current directory. The example I had was a hypothetical LitWare Writer program that, when given an ABC.LIT file, looks for related files like ABC.LTC (the table of contents) and ABC.LDC (the custom dictionary) in the current directory.
This also happens if you double-click the .exe
file: The current directory is set to the directory that contains
the executable.
My guess is that the customer’s program looks for ancillary files relative to its current directory, but the batch file ran the program by its full path without changing the current directory to match the program’s path.
The customer confirmed that explicitly changing the directory
fixed the program. (More specifically, they used pushd
to change the directory and then popd to restore the
original directory.)
Bonus chatter: It didn’t come to it, but my second
idea would have been to check whether the program had
set a custom entry under App Paths to ask for
additional directories to be added to the PATH
environment variable when the program is run.
The post Puzzling out why a program doesn’t work when run from a batch file, but works when double-clicked from Explorer appeared first on The Old New Thing.
| Feed | RSS | Last fetched | Next fetched after |
|---|---|---|---|
| @ASmartBear | XML | 08:42, Saturday, 31 October | 09:23, Saturday, 31 October |
| a bag of four grapes | XML | 08:49, Saturday, 31 October | 09:31, Saturday, 31 October |
| Ansible | XML | 08:35, Saturday, 31 October | 09:15, Saturday, 31 October |
| Bad Science | XML | 08:49, Saturday, 31 October | 09:38, Saturday, 31 October |
| Black Doggerel | XML | 08:42, Saturday, 31 October | 09:23, Saturday, 31 October |
| Blog - Official site of Stephen Fry | XML | 08:49, Saturday, 31 October | 09:38, Saturday, 31 October |
| Charlie Brooker | The Guardian | XML | 08:49, Saturday, 31 October | 09:31, Saturday, 31 October |
| Charlie's Diary | XML | 08:42, Saturday, 31 October | 09:30, Saturday, 31 October |
| Chasing the Sunset - Comics Only | XML | 08:49, Saturday, 31 October | 09:38, Saturday, 31 October |
| Coding Horror | XML | 08:42, Saturday, 31 October | 09:29, Saturday, 31 October |
| Comics Archive - Spinnyverse | XML | 09:00, Saturday, 31 October | 09:44, Saturday, 31 October |
| Cory Doctorow's craphound.com | XML | 08:49, Saturday, 31 October | 09:31, Saturday, 31 October |
| Cory Doctorow, Author at Boing Boing | XML | 08:42, Saturday, 31 October | 09:23, Saturday, 31 October |
| Ctrl+Alt+Del Comic | XML | 08:42, Saturday, 31 October | 09:30, Saturday, 31 October |
| Cyberunions | XML | 08:49, Saturday, 31 October | 09:38, Saturday, 31 October |
| David Mitchell | The Guardian | XML | 09:00, Saturday, 31 October | 09:43, Saturday, 31 October |
| Deeplinks | XML | 09:00, Saturday, 31 October | 09:44, Saturday, 31 October |
| Diesel Sweeties webcomic by rstevens | XML | 09:00, Saturday, 31 October | 09:43, Saturday, 31 October |
| Dilbert | XML | 08:49, Saturday, 31 October | 09:38, Saturday, 31 October |
| Dork Tower | XML | 08:49, Saturday, 31 October | 09:31, Saturday, 31 October |
| Economics from the Top Down | XML | 09:00, Saturday, 31 October | 09:43, Saturday, 31 October |
| Edmund Finney's Quest to Find the Meaning of Life | XML | 09:00, Saturday, 31 October | 09:43, Saturday, 31 October |
| EFF Action Center | XML | 09:00, Saturday, 31 October | 09:43, Saturday, 31 October |
| Enspiral Tales - Medium | XML | 09:00, Saturday, 31 October | 09:45, Saturday, 31 October |
| Falkvinge on Liberty | XML | 08:42, Saturday, 31 October | 09:30, Saturday, 31 October |
| Flipside | XML | 08:49, Saturday, 31 October | 09:31, Saturday, 31 October |
| Flipside | XML | 09:00, Saturday, 31 October | 09:45, Saturday, 31 October |
| Free software jobs | XML | 08:35, Saturday, 31 October | 09:15, Saturday, 31 October |
| Full Frontal Nerdity by Aaron Williams | XML | 08:42, Saturday, 31 October | 09:30, Saturday, 31 October |
| General Protection Fault: Comic Updates | XML | 08:42, Saturday, 31 October | 09:30, Saturday, 31 October |
| George Monbiot | XML | 09:00, Saturday, 31 October | 09:43, Saturday, 31 October |
| Girl Genius | XML | 09:00, Saturday, 31 October | 09:43, Saturday, 31 October |
| Groklaw | XML | 08:42, Saturday, 31 October | 09:30, Saturday, 31 October |
| Grrl Power | XML | 08:49, Saturday, 31 October | 09:31, Saturday, 31 October |
| Hackney Anarchist Group | XML | 08:49, Saturday, 31 October | 09:38, Saturday, 31 October |
| Hackney Solidarity Network | XML | 09:00, Saturday, 31 October | 09:45, Saturday, 31 October |
| http://blog.llvm.org/feeds/posts/default | XML | 09:00, Saturday, 31 October | 09:45, Saturday, 31 October |
| http://calendar.google.com/calendar/feeds/q7s5o02sj8hcam52hutbcofoo4%40group.calendar.google.com/public/basic | XML | 08:35, Saturday, 31 October | 09:15, Saturday, 31 October |
| http://dynamic.boingboing.net/cgi-bin/mt/mt-cp.cgi?__mode=feed&_type=posts&blog_id=1&id=1 | XML | 09:00, Saturday, 31 October | 09:45, Saturday, 31 October |
| http://eng.anarchoblogs.org/feed/atom/ | XML | 08:35, Saturday, 31 October | 09:21, Saturday, 31 October |
| http://feed43.com/3874015735218037.xml | XML | 08:35, Saturday, 31 October | 09:21, Saturday, 31 October |
| http://flatearthnews.net/flatearthnews.net/blogfeed | XML | 08:42, Saturday, 31 October | 09:23, Saturday, 31 October |
| http://fulltextrssfeed.com/ | XML | 09:00, Saturday, 31 October | 09:43, Saturday, 31 October |
| http://london.indymedia.org/articles.rss | XML | 08:42, Saturday, 31 October | 09:29, Saturday, 31 October |
| http://pipes.yahoo.com/pipes/pipe.run?_id=ad0530218c055aa302f7e0e84d5d6515&_render=rss | XML | 08:35, Saturday, 31 October | 09:21, Saturday, 31 October |
| http://planet.gridpp.ac.uk/atom.xml | XML | 08:42, Saturday, 31 October | 09:29, Saturday, 31 October |
| http://shirky.com/weblog/feed/atom/ | XML | 09:00, Saturday, 31 October | 09:44, Saturday, 31 October |
| http://thecommune.co.uk/feed/ | XML | 09:00, Saturday, 31 October | 09:45, Saturday, 31 October |
| http://theness.com/roguesgallery/feed/ | XML | 08:42, Saturday, 31 October | 09:30, Saturday, 31 October |
| http://www.airshipentertainment.com/buck/buckcomic/buck.rss | XML | 08:49, Saturday, 31 October | 09:38, Saturday, 31 October |
| http://www.airshipentertainment.com/growf/growfcomic/growf.rss | XML | 09:00, Saturday, 31 October | 09:44, Saturday, 31 October |
| http://www.airshipentertainment.com/myth/mythcomic/myth.rss | XML | 08:49, Saturday, 31 October | 09:31, Saturday, 31 October |
| http://www.godhatesastronauts.com/feed/ | XML | 08:42, Saturday, 31 October | 09:30, Saturday, 31 October |
| http://www.tinycat.co.uk/feed/ | XML | 08:35, Saturday, 31 October | 09:15, Saturday, 31 October |
| https://anarchism.pageabode.com/blogs/anarcho/feed/ | XML | 09:00, Saturday, 31 October | 09:44, Saturday, 31 October |
| https://broodhollow.krisstraub.comfeed/ | XML | 08:42, Saturday, 31 October | 09:23, Saturday, 31 October |
| https://debian-administration.org/atom.xml | XML | 08:42, Saturday, 31 October | 09:23, Saturday, 31 October |
| https://elitetheatre.org/ | XML | 08:42, Saturday, 31 October | 09:29, Saturday, 31 October |
| https://feeds.feedburner.com/Starslip | XML | 08:49, Saturday, 31 October | 09:31, Saturday, 31 October |
| https://feeds2.feedburner.com/GeekEtiquette?format=xml | XML | 09:00, Saturday, 31 October | 09:43, Saturday, 31 October |
| https://feedsapi.com/makefulltextfeed.php?url=http%3A%2F%2Fwww.somethingpositive.net%2Fsp.xml&what=auto&key=&max=7&links=preserve&exc=&privacy=I+accept | XML | 09:00, Saturday, 31 October | 09:44, Saturday, 31 October |
| https://hackbloc.org/rss.xml | XML | 08:42, Saturday, 31 October | 09:23, Saturday, 31 October |
| https://kajafoglio.livejournal.com/data/atom/ | XML | 08:49, Saturday, 31 October | 09:38, Saturday, 31 October |
| https://philfoglio.livejournal.com/data/atom/ | XML | 08:42, Saturday, 31 October | 09:29, Saturday, 31 October |
| https://pixietrixcomix.com/eerie-cutiescomic.rss | XML | 08:42, Saturday, 31 October | 09:29, Saturday, 31 October |
| https://pixietrixcomix.com/menage-a-3/comic.rss | XML | 09:00, Saturday, 31 October | 09:44, Saturday, 31 October |
| https://propertyistheft.wordpress.com/feed/ | XML | 08:35, Saturday, 31 October | 09:15, Saturday, 31 October |
| https://requiem.seraph-inn.com/updates.rss | XML | 08:35, Saturday, 31 October | 09:15, Saturday, 31 October |
| https://studiofoglio.livejournal.com/data/atom/ | XML | 08:35, Saturday, 31 October | 09:21, Saturday, 31 October |
| https://thecommandline.net/feed/ | XML | 08:35, Saturday, 31 October | 09:21, Saturday, 31 October |
| https://torrentfreak.com/subscriptions/ | XML | 09:00, Saturday, 31 October | 09:43, Saturday, 31 October |
| https://web.randi.org/?format=feed&type=rss | XML | 09:00, Saturday, 31 October | 09:43, Saturday, 31 October |
| https://www.baen.com/baenebooks | XML | 09:00, Saturday, 31 October | 09:44, Saturday, 31 October |
| https://www.dcscience.net/feed/medium.co | XML | 08:49, Saturday, 31 October | 09:38, Saturday, 31 October |
| https://www.DropCatch.com/domain/steampunkmagazine.com | XML | 08:42, Saturday, 31 October | 09:23, Saturday, 31 October |
| https://www.DropCatch.com/domain/ubuntuweblogs.org | XML | 08:35, Saturday, 31 October | 09:21, Saturday, 31 October |
| https://www.DropCatch.com/redirect/?domain=DyingAlone.net | XML | 08:42, Saturday, 31 October | 09:29, Saturday, 31 October |
| https://www.freedompress.org.uk:443/news/feed/ | XML | 08:42, Saturday, 31 October | 09:30, Saturday, 31 October |
| https://www.goblinscomic.com/category/comics/feed/ | XML | 08:35, Saturday, 31 October | 09:15, Saturday, 31 October |
| https://www.loomio.com/blog/feed/ | XML | 08:35, Saturday, 31 October | 09:21, Saturday, 31 October |
| https://www.newstatesman.com/feeds/blogs/laurie-penny.rss | XML | 08:42, Saturday, 31 October | 09:23, Saturday, 31 October |
| https://www.patreon.com/graveyardgreg/posts/comic.rss | XML | 08:42, Saturday, 31 October | 09:29, Saturday, 31 October |
| https://www.rightmove.co.uk/rss/property-for-sale/find.html?locationIdentifier=REGION^876&maxPrice=240000&minBedrooms=2&displayPropertyType=houses&oldDisplayPropertyType=houses&primaryDisplayPropertyType=houses&oldPrimaryDisplayPropertyType=houses&numberOfPropertiesPerPage=24 | XML | 09:00, Saturday, 31 October | 09:43, Saturday, 31 October |
| https://x.com/statuses/user_timeline/22724360.rss | XML | 08:35, Saturday, 31 October | 09:15, Saturday, 31 October |
| Humble Bundle Blog | XML | 08:42, Saturday, 31 October | 09:29, Saturday, 31 October |
| I, Cringely | XML | 08:42, Saturday, 31 October | 09:30, Saturday, 31 October |
| Irregular Webcomic! | XML | 08:42, Saturday, 31 October | 09:23, Saturday, 31 October |
| Joel on Software | XML | 08:35, Saturday, 31 October | 09:21, Saturday, 31 October |
| Judith Proctor's Journal | XML | 08:35, Saturday, 31 October | 09:15, Saturday, 31 October |
| Krebs on Security | XML | 08:42, Saturday, 31 October | 09:23, Saturday, 31 October |
| Lambda the Ultimate - Programming Languages Weblog | XML | 08:35, Saturday, 31 October | 09:15, Saturday, 31 October |
| Looking For Group | XML | 09:00, Saturday, 31 October | 09:44, Saturday, 31 October |
| LWN.net | XML | 08:42, Saturday, 31 October | 09:23, Saturday, 31 October |
| Mimi and Eunice | XML | 09:00, Saturday, 31 October | 09:45, Saturday, 31 October |
| Neil Gaiman's Journal | XML | 08:35, Saturday, 31 October | 09:15, Saturday, 31 October |
| Nina Paley | XML | 08:42, Saturday, 31 October | 09:29, Saturday, 31 October |
| O Abnormal – Scifi/Fantasy Artist | XML | 09:00, Saturday, 31 October | 09:45, Saturday, 31 October |
| Oglaf! -- Comics. Often dirty. | XML | 08:42, Saturday, 31 October | 09:30, Saturday, 31 October |
| Oh Joy Sex Toy | XML | 09:00, Saturday, 31 October | 09:44, Saturday, 31 October |
| Order of the Stick | XML | 09:00, Saturday, 31 October | 09:44, Saturday, 31 October |
| Original Fiction Archives - Reactor | XML | 08:49, Saturday, 31 October | 09:31, Saturday, 31 October |
| OSnews | XML | 09:00, Saturday, 31 October | 09:45, Saturday, 31 October |
| Past Events | XML | 08:42, Saturday, 31 October | 09:30, Saturday, 31 October |
| Paul Graham: Unofficial RSS Feed | XML | 09:00, Saturday, 31 October | 09:45, Saturday, 31 October |
| Penny Arcade | XML | 08:49, Saturday, 31 October | 09:31, Saturday, 31 October |
| Penny Red | XML | 09:00, Saturday, 31 October | 09:45, Saturday, 31 October |
| PHD Comics | XML | 08:49, Saturday, 31 October | 09:38, Saturday, 31 October |
| Phil's blog | XML | 08:42, Saturday, 31 October | 09:30, Saturday, 31 October |
| Planet Debian | XML | 09:00, Saturday, 31 October | 09:45, Saturday, 31 October |
| Planet GNU | XML | 08:42, Saturday, 31 October | 09:23, Saturday, 31 October |
| Planet Lisp | XML | 08:49, Saturday, 31 October | 09:38, Saturday, 31 October |
| Pluralistic: Daily links from Cory Doctorow | XML | 08:35, Saturday, 31 October | 09:15, Saturday, 31 October |
| PS238 by Aaron Williams | XML | 08:42, Saturday, 31 October | 09:30, Saturday, 31 October |
| QC RSS v2 | XML | 08:42, Saturday, 31 October | 09:29, Saturday, 31 October |
| Radar | XML | 08:49, Saturday, 31 October | 09:31, Saturday, 31 October |
| RevK®'s ramblings | XML | 08:35, Saturday, 31 October | 09:21, Saturday, 31 October |
| Richard Stallman's Political Notes | XML | 08:49, Saturday, 31 October | 09:38, Saturday, 31 October |
| Scenes From A Multiverse | XML | 08:42, Saturday, 31 October | 09:29, Saturday, 31 October |
| Schneier on Security | XML | 08:35, Saturday, 31 October | 09:15, Saturday, 31 October |
| SCHNEWS.ORG.UK | XML | 09:00, Saturday, 31 October | 09:44, Saturday, 31 October |
| Scripting News | XML | 08:49, Saturday, 31 October | 09:31, Saturday, 31 October |
| Seth's Blog | XML | 08:35, Saturday, 31 October | 09:21, Saturday, 31 October |
| Skin Horse | XML | 08:49, Saturday, 31 October | 09:31, Saturday, 31 October |
| Tales From the Riverbank | XML | 08:49, Saturday, 31 October | 09:38, Saturday, 31 October |
| The Adventures of Dr. McNinja | XML | 09:00, Saturday, 31 October | 09:45, Saturday, 31 October |
| The Bumpycat sat on the mat | XML | 08:35, Saturday, 31 October | 09:15, Saturday, 31 October |
| The Daily WTF | XML | 08:35, Saturday, 31 October | 09:21, Saturday, 31 October |
| The Monochrome Mob | XML | 08:42, Saturday, 31 October | 09:23, Saturday, 31 October |
| The Non-Adventures of Wonderella | XML | 09:00, Saturday, 31 October | 09:43, Saturday, 31 October |
| The Old New Thing | XML | 09:00, Saturday, 31 October | 09:44, Saturday, 31 October |
| The Open Source Grid Engine Blog | XML | 08:42, Saturday, 31 October | 09:29, Saturday, 31 October |
| The Stranger | XML | 09:00, Saturday, 31 October | 09:45, Saturday, 31 October |
| towerhamletsalarm | XML | 08:35, Saturday, 31 October | 09:21, Saturday, 31 October |
| Twokinds | XML | 08:49, Saturday, 31 October | 09:31, Saturday, 31 October |
| UK Indymedia Features | XML | 08:49, Saturday, 31 October | 09:31, Saturday, 31 October |
| Uploads from ne11y | XML | 08:35, Saturday, 31 October | 09:21, Saturday, 31 October |
| Uploads from piasladic | XML | 09:00, Saturday, 31 October | 09:43, Saturday, 31 October |
| Use Sword on Monster | XML | 08:42, Saturday, 31 October | 09:29, Saturday, 31 October |
| Wayward Sons: Legends - Sci-Fi Full Page Webcomic - Updates Daily | XML | 08:35, Saturday, 31 October | 09:21, Saturday, 31 October |
| what if? | XML | 08:42, Saturday, 31 October | 09:23, Saturday, 31 October |
| Whatever | XML | 08:49, Saturday, 31 October | 09:38, Saturday, 31 October |
| Whitechapel Anarchist Group | XML | 08:49, Saturday, 31 October | 09:38, Saturday, 31 October |
| WIL WHEATON dot NET | XML | 09:00, Saturday, 31 October | 09:44, Saturday, 31 October |
| wish | XML | 09:00, Saturday, 31 October | 09:45, Saturday, 31 October |
| Writing the Bright Fantastic | XML | 09:00, Saturday, 31 October | 09:44, Saturday, 31 October |
| xkcd.com | XML | 09:00, Saturday, 31 October | 09:43, Saturday, 31 October |