Cover illustration

TheDaily Front

Issue No. #261025 Sunday, October 25 2026 #261025 — SUNDAY, OCTOBER 25, 2026
Specialists, speech, and silicon: the machines are arguing with the institutions.
Sunday, October 25, 2026 The Daily Front No. #261025 — Contents
30stories
7,035points
3,350comments
211kllm tokens
Assembled with 32 model calls — 150,576 tokens read, 60,760 written.

Highlights

A 10-year-old CNN outperforms frontier LLMs for skin cancer diagnosis

A dermatologist finds a decade-old specialist vision model beating frontier general-purpose LLMs at identifying skin cancer.

Meta Ignores Brazilian Court Order to End Bolsonaro Favoritism

Evidence submitted to Brazil’s electoral court alleges Meta AI continues to steer election-related visibility unevenly.

OpenAI and Anthropic cut their LLM prices by up to 80% within a few months. Why?

A sharp fall in flagship-model prices raises the familiar question: efficiency breakthrough, competition, or both?

Oregon Police Are Charging a Local News Outlet $2.5M for Records About One Cop

A local Oregon newsroom faces a $2.5 million bill for police records concerning one officer.

Moderna and Merck say their mRNA cancer vaccine cut death, recurrence by 42%

Moderna and Merck report late-stage trial results for a personalized mRNA melanoma vaccine that cut death or recurrence risk.

From the Editor

The day’s papers bring a useful corrective to the gospel of the all-purpose machine: the right tool still has something to say. Meanwhile, from Brazil to Oregon to France, the old struggle over who controls information has acquired new wires, new prices, and precious little modesty.

  1. A 10-year-old CNN outperforms frontier LLMs for skin cancer diagnosis3
  2. Meta Ignores Brazilian Court Order to End Bolsonaro Favoritism4
  3. I refuse to accept a censored Internet. Join Me at FOSDEM 275
  4. Oregon Police Are Charging a Local News Outlet $2.5M for Records About One Cop6
  5. Cerebras Deploys Trillion-Parameter AI Models7
  6. OpenAI and Anthropic cut their LLM prices by up to 80% within a few months. Why?8
  7. Why I Am a Programmer9
  8. JetBrains Thinkrail10
  9. Moderna and Merck say their mRNA cancer vaccine cut death, recurrence by 42%11
  10. The State of Context Engineering12
  11. Tool book of a Nuremberg knight from 150513
  12. Active incident at Dreamhost forcing password reset14
  13. What goes into making an animated film?15
  14. F-Zero X on Nintendo 3DS16
  15. Meta employees say Lula’s accounts restricted in Brazil election: Report17
  16. France asked ISPs to prepare temporary DNS blocks for major social platforms18
  17. Online censorship is crushing indie webcomics18
  18. Five Qwen3.8-27B models match Fable 5 Using GVS5H Harness19
  19. Attention Is Not What You Need (2025)20
  20. Show HN: I put employees inside S&P 500 market-cap bubbles20
  21. fheroes2: A recreation of Heroes of Might and Magic II game engine21
  22. Show HN: A Truly Modular Keyboard22
  23. Proton Flock Camera Map23
  24. Samsung running a TensorFlow lite model on 960x540 image to track you24
  25. Samsung TVs look for microphones in your house via Bluetooth and then spy events24
  26. Nikon photography contest winner loses title after scientists spot signs of AI25
  27. Imagine an AI future where being banned means you are now economically useless26
  28. Dolly Parton's Imagination Library27
  29. Serbia's Vucic concedes election defeat in historic win for student movement28
  30. AI use leads UC Berkeley math professor to see 'no point' in grading homework28
The Daily Front Page 2 of 29
Sunday, October 25, 2026 The Daily Front No. #261025 — Page 3
article

A 10-year-old CNN outperforms frontier LLMs for skin cancer diagnosis

by sungam·▲ 547 points·236 comments·lynchlab.net ↗
Both LLMs called it a seborrhoeic keratosis and said it could be discharged.

I am a dermatologist. I tested the ability of GPT-6 Astra and Claude Fable 5.1 to diagnosis skin cancer and found that they were less accurate than I expected. I compared to a 10-year old CNN and to my surprise found that this was superior.

This is a melanoma.

Clinical photograph: Invasive melanoma on the ear, under 0.8 mm thick.Dermoscopic image: Invasive melanoma on the ear, under 0.8 mm thick.

Figure 1. Invasive melanoma on the ear, under 0.8 mm thick. Both LLMs called it a seborrhoeic keratosis and said it could be discharged. The CNN called it a melanoma. Clinical photograph on the left, dermoscopic image on the right. Images: MILK10k, MILK study team, CC BY-NC.

I showed these two images - a clinical photograph and a dermoscopic (skin microscope) image - to GPT-6 Astra and Claude Fable 5.1, two of the most capable AI models available in October 2026. Both said it was a seborrhoeic keratosis, a harmless warty growth, and that the patient could be discharged. I then showed them to fine-tuned version of Inception v3, a convolutional neural network (CNN) first published by Google in 2015 and fine-tuned here on public dermatology images. The CNN got the right answer based on the dermoscopy view.

It was one of 200 biopsy-proven lesions I gave to all three. The CNN named the right diagnosis (out of 6 possiblities) for 125 of them (62%). The two frontier LLMs named it for 84 and 85 (42%). A ten-year-old network, fine-tuned for about twenty minutes, beat both of them at recognising skin cancer.

The test

The lesions come from MILK10k, a public dataset released through the International Skin Imaging Collaboration in 2025, in which each lesion is photographed twice: a clinical close-up and a dermoscopic image taken through the illuminated magnifying lens dermatologists use. I drew 200 lesions at random, all confirmed by histopathology:

  • 100 that should not be discharged: 30 melanomas, 25 basal cell carcinomas, 25 squamous cell carcinomas (including Bowen’s disease) and 20 actinic keratoses.
  • 100 that are safe to discharge: 50 benign naevi (moles) and 50 seborrhoeic keratoses.

Every lesion was biopsied, including the benign ones, so these are harder to diagnose: a mole that somebody decided to cut out is one that worried a clinician.

Clinical photograph: Basal cell carcinoma on the trunk of a 75-year-old man. Both models answered correctly.Dermoscopic image: Basal cell carcinoma on the trunk of a 75-year-old man. Both models answered correctly.

Basal cell carcinoma on the trunk of a 75-year-old man. All three models answered correctly.

Clinical photograph: Invasive melanoma under 0.8 mm thick, with very little pigment. GPT-6 Astra called it a basal cell carcinoma with 95% confidence.Dermoscopic image: Invasive melanoma under 0.8 mm thick, with very little pigment. GPT-6 Astra called it a basal cell carcinoma with 95% confidence.

Invasive melanoma under 0.8 mm thick, with very little pigment. GPT-6 Astra called it a basal cell carcinoma with 95% confidence. Claude Fable 5.1 and the CNN called it a melanoma.

Clinical photograph: Seborrhoeic keratosis on the leg. Both models called it an actinic keratosis and said it should not be discharged.Dermoscopic image: Seborrhoeic keratosis on the leg. Both models called it an actinic keratosis and said it should not be discharged.

Seborrhoeic keratosis on the leg. Both LLMs called it an actinic keratosis and the CNN a squamous cell carcinoma: all three were wrong, though all three would have kept it rather than discharge it.

Figure 2. Three more of the 200 test lesions. Clinical photograph on the left, dermoscopic image on the right. Images: MILK10k, MILK study team, CC BY-NC.

The LLMs were given both images and nothing else, and asked, as a clinician might use them, for the most likely of the six diagnoses (or “unsure”), a confidence, a second choice, and whether the lesion could be safely discharged with no treatment, biopsy or follow-up. Both models got the same prompt at default settings, and neither refused a case.

The CNN is deliberately not state of the art. I used Inception v3 pretrained on everyday photographs and then fine-tuned all layers on 68,011 dermoscopic and clinical images from the ISIC Archive on a single H100 GPU. These 200 test lesions, and every other photograph of the same lesion or patient, were removed from its data (including the validation set) before training, so it had never seen them, and they were not used to choose the model or set its threshold. It scored both images of each lesion, combined them with most of the weight on the dermoscopic image, and chose from the same six diagnoses.

You can try the CNN yourself. Remarkably the model is small enough to run entirely in a phone browser using WebGPU. Nothing is uploaded, and its random sample button draws from these same 200 lesions.

Diagnosis: 62% against 42%

Figure 3. Correct first-choice diagnosis for the two LLMs and the CNN, which chose from the same six diagnoses. Labels show correct answers out of the number of lesions with that histology.

The CNN was right more often overall and on most diagnoses. Allowing a second choice, it reached 173 of 200 against 134 and 138. It named 13 of the 30 melanomas against 8 and 11. The biggest gap was on the harmless lesions: it recognised 37 of 50 moles and 26 of 50 seborrhoeic keratoses, against 16 and 13 for GPT-6 Astra and 33 and 6 for Claude Fable 5.1. It was one short of GPT-6 Astra on basal cell carcinoma and behind both LLMs on actinic keratosis.

The models also failed differently. Each LLM had a favourite answer: GPT-6 Astra called 75 lesions basal cell carcinoma when 25 were, including 14 of the 30 melanomas, and Claude Fable 5.1 called 53 lesions actinic keratosis when 20 were. The CNN’s errors on melanoma went the other way: of the 17 it got wrong, it called 8 a naevus and 6 a seborrhoeic keratosis.

The results in one table

GPT-6 Astra Claude Fable 5.1 CNN (Inception v3)
Correct diagnosis (of 200) 84 (42%) 85 (42%) 125 (62%)
Correct in first or second choice 134 138 173
Melanoma as first choice (of 30) 8 11 13
Unsafe lesions kept (of 100) 97 96 77 at its preset threshold; 98 or 99 when matched
Safe lesions discharged (of 100) 32 22 76 at its preset threshold
Melanomas discharged (of 30) 3 4 18 at its preset threshold; 2 or 1 when matched

Caveats

  • Small numbers. Two hundred lesions are enough to show the pattern but not to rank close results, and 30 melanomas give wide uncertainty on the figure that matters most. Each LLM case was run once; answers vary between runs.
  • Hard cases. Every lesion was biopsied. On ordinary images from the archive the CNN separated lesions that should and should not be discharged far better (area under the ROC curve 0.96, against 0.86 here).
  • Contamination. MILK10k has been public since 2025, so the LLMs could have seen it in training; if anything that would have helped them. The CNN certainly had not.
  • Not state of the art. Inception v3 is a baseline. State of the art skin cancer diagnosis AI uses ensembles of images transformers trained on more data, and the regulated products built on them perform considerably better.

Asked as a patient

Asked as a patient instead, with the clinical photograph alone and the question “do I need to see a doctor?”, both LLMs advised seeing a doctor in almost every case, harmless lesions included: for 99 and 98 of a further 100 biopsy-proven melanomas.

Conclusion

A small, old, specialised network using an outdated architecture recognises skin lesions far better than two frontier LLMs.

Run it yourself

The cases, prompts, every LLM reply and the scoring code are in one download, and the CNN is here.

I designed the test and made the clinical rulings. The analysis and the first drafts were produced with Claude Code, Anthropic’s coding tool, which runs on a Claude model; one of the two LLMs tested is also Anthropic’s. Scoring was done by script against the histology.

Images are from the MILK10k dataset (MILK study team, International Skin Imaging Collaboration), used under a CC BY-NC licence.

The Daily Front Page 3 of 29
Sunday, October 25, 2026 The Daily Front No. #261025 — Brazil’s Algorithmic Election
article

Meta Ignores Brazilian Court Order to End Bolsonaro Favoritism

by vrganj·▲ 483 points·331 comments·panamericandispatch.org ↗
Meta AI continues to spontaneously link Lula to negative content.

Sleeping Giants and CTRL-Z sent evidence to Brazil’s Superior Electoral Court today showing Meta AI continues to spontaneously link Lula to negative content

Panamerican Dispatch

Sleeping Giants Brasil and the organization CTRL+Z sent new evidence to the Superior Electoral Court on Monday. The groups say it points to possible unequal treatment by Meta of the campaigns of President Luiz Inácio Lula da Silva, of the Workers’ Party, and Sen. Flávio Bolsonaro, of the Liberal Party.

The groups argue that Instagram and WhatsApp tools keep showing results that would favor the Liberal Party candidate. They also say the tools link Lula to derogatory content. This continues despite an electoral court order that Meta ensure equal conditions for both candidates.

Journalist Mônica Bergamo broke the story today in Folha de S.Paulo. According to her report, the organizations filed a petition addressed to Superior Electoral Court Justice Marco Aurélio Bellizze, who is overseeing the court caset. They asked him to order the alleged irregularities fixed within 24 hours. They also want Meta to explain how it ranks search results and produces answers with artificial intelligence. And they ask the court to enforce the daily fine of R$500,000 (about $99,000) it already set.

The new records involve searches for animated GIFs, the ordering of hashtags and answers from Meta AI, the artificial intelligence system built into WhatsApp. The organizations say the examples reinforce their suspicion that the platforms do not apply equivalent criteria to the two presidential campaigns.

Image searches put Flávio Bolsonaro in the spotlight

The petition describes a GIF search on WhatsApp for the word “brasil.” The first result was an image of Flávio Bolsonaro. It showed his ticket number and identified his running mate.

According to the records sent to the court, the same result appeared on three separate accounts. The groups use this to ask whether its top position comes from systematic ranking criteria.

A similar check on Instagram also showed images of the senator among the first results. Users who searched for “brasil” found three images of Flávio Bolsonaro in the top positions. The only mention of President Lula was his name in writing, with no photo.

The two organizations say the difference deserves an explanation. Search and recommendation tools can increase the exposure of certain candidates on social media. They are not claiming that they have proven bias in Meta, choosing instead to posit the question to the Superior Electoral Court.

Lula linked to derogatory content

Another set of examples ties Lula to negative terms in searches on Meta platforms.

On WhatsApp, a GIF search for the word “ladrão” (thief) returned a caricature of the president in a striped uniform, a reference to prison dress. Another result carried the message “Supporting the Workers’ Party is a mental illness.”

On Instagram, a search for the same word showed a GIF reading “Vote 13.” That is the Workers’ Party election number, tied to Lula’s candidacy.

For Sleeping Giants Brasil and CTRL+Z, these results point to an imbalance in how political references are shown to users. The imbalance stands out against the visibility of content favorable to Flávio Bolsonaro.

The petition also challenges how Instagram orders hashtags. A search for “lula” offered “#lulaladrão” (Lula thief) as the first suggestion, ahead of other terms about the president. A search for “bolsonaro” placed the critical hashtag “#bolsonaronuncamais” (Bolsonaro never again) among its last suggestions.

The groups cite the difference in position as another reason to investigate the relevance criteria the platform uses.

The issue is not only whether content for or against the candidates exists. It is mainly how automated systems organize that information and present it to the public.

Meta AI also questioned

The organizations included a test of Meta AI, the artificial intelligence tool offered to WhatsApp users. According to the petition, two people asked the system to pick a number between 1 and 25. They gave no instructions and made no reference to the election.

In one attempt, the AI answered 13. In the other, it answered 22. Those are the party ballot numbers of Lula and Flávio Bolsonaro, respectively.

The groups question the coincidence. They ask for an explanation of the parameters the system uses to form its answers.

The episode alone does not allow a conclusion that the tool answered out of electoral preference. Still, the organizations list the test among the elements that, in their view, demand more transparency about how the company’s artificial intelligence features work.

Electoral court demands compliance and threatens to double fine

The new records arrive as the electoral court takes a harder line with Meta.

Justice Bellizze had already ordered the company to apply identical criteria to the campaigns of Lula and Flávio Bolsonaro. He also ordered Meta to prove it was following the measures.

On Friday, the full court upheld the justice’s decision. It reinforced the company’s duty to ensure equal treatment of the candidates.

On Sunday, Bellizze again demanded action. He gave the company a new deadline of 24 hours to show it had met part of the court’s requirements.

The justice also warned that the daily fine, first set at R$500,000 (about $99,000), could rise to R$1 million (about $198,000) if noncompliance continues.

The new petition from Sleeping Giants Brasil and CTRL+Z aims to add to the case just as the court demands more detailed explanations from the company.

The groups want Meta to do more than fix the problems they identified. They also want it to disclose the criteria that decide the order of images, hashtag suggestions and answers produced by artificial intelligence.

Lula campaign has already gone to electoral court

The dispute began with complaints from Lula’s campaign about how Meta’s digital platforms work.

The president’s representatives pointed to limits on the circulation of content about his candidacy. They also cited differences in how the company’s tools behave compared with tools tied to his opponent.

The claims led the electoral court to demand measures to ensure equal treatment of the candidates.

Meta has denied deliberately favoring any candidate. It blamed the earlier problems on technical failures.

Folha de S.Paulo contacted the company about the new records filed Monday. Meta had not responded by the time of publication.

The lack of a specific response leaves open the explanations for the mechanisms behind the results the organizations found.

Groups call protest at Meta headquarters in São Paulo

Besides the legal action, Sleeping Giants Brasil and CTRL+Z planned a demonstration outside Meta’s headquarters in São Paulo at 5 p.m. Monday.

The event is called “Meta, Hands Off Our Election.” The organizations say it will be peaceful.

Participants plan to hand a notice to the company’s director in Brazil. They want action on the suspicions of unequal treatment of the candidacies.

The mobilization increases pressure on Meta on two fronts. In court, the groups seek correction of the alleged irregularities and sanctions. In public debate, they demand transparency about the algorithms used during the presidential race.

This article first appeared in Brasil 247*, was translated with express consent from the editor-in-chief by* Panamerican Dispatch*, and can be read in its original Portuguese here.*

The Daily Front Page 4 of 29
Sunday, October 25, 2026 The Daily Front No. #261025 — The Open Net Under Pressure
article

I refuse to accept a censored Internet. Join Me at FOSDEM 27

by Tomte·▲ 463 points·225 comments·talkweb.eu ↗
We need tools people can trust and control to communicate safely.

Update: Follow also the discussion on HN.

As one of the managers of the Digital Dissident Devroom, I invite you to be part of a conversation we cannot afford to ignore.

Around the world, people are being silenced, monitored, and denied access to information. Free software can help change that, but only if we build it together. We need tools people can trust and control to communicate safely, expose the truth, and resist censorship.

This devroom brings together developers, researchers, activists, and everyone committed to digital freedom. We want real solutions, honest lessons, and collaboration across projects, not product pitches.

If you believe technology should serve people, not control them, join us. Bring your ideas, experience, and questions. Let’s build the tools that help keep freedom alive.

Our focus complements other devrooms, including Decentralized Internet and Privacy, which explores the broader decentralized ecosystem. While they focus on technologies, we focus on the people under threat and the complete chain of tools that can protect them.

How to apply to speak at the dev room?

  1. Go to FOSDEM’s official CFP portal from here and login or register.
  2. Click on “Submit a proposal”
  3. Then fill in the form and select “Digital Dissident” as a track.
  4. Done!
  5. Please note that by doing this you also accept the FOSDEM Code of Conduct.

Define: Digital Dissident Developer Room

Privacy and anonymity tools each have a home at FOSDEM: the network, security, decentralised and messaging rooms, and various main-track and lightning talks. Someone living under an authoritarian regime (Russia, Iran, China, Belarus, Myanmar and others) never uses a single tool, though. Their day-to-day security depends on a chain of tools that has to hold up end to end:

  1. reaching the network at all (censorship circumvention),
  2. communicating without leaking metadata,
  3. collecting, verifying and storing evidence safely,
  4. publishing or leaking it without exposing the author,
  5. doing all this on devices and infrastructure that are themselves a risk.

The weakest link decides the outcome. Talks about one tool rarely cover how it fits with the others, where the seams are, or what breaks at the hand-offs (for example, a circumvention transport that is fingerprinted, or a messenger whose push notifications tie your identity to a Google or Apple account). Nobody currently owns that cross-project view.

What this devroom does. It brings developers of circumvention, anonymity, messaging, publishing and whistleblowing tools into one room. It is deliberately not about any single project. Each session is judged on how well it advances the toolchain: interoperability, shared threat models, shared failure data, and shared engineering practice.

Why now. Censorship in Russia, Iran and China has grown much more sophisticated. It now includes national allow-lists and whitelist-only internet shutdowns, TLS and QUIC fingerprinting, deep packet inspection with active probing, throttling of specific protocols, mobile internet shutdowns, app-store removal of circumvention tools, and mandatory state-run messengers and “sovereign internet” routing. Anti-censorship developers have responded with pluggable transports, domain fronting alternatives, mixnets, decentralised and email-based messaging, and new obfuscation protocols. Progress is fast but fragmented. At FOSDEM 2026 the relevant talks were scattered: Vitaly Repin’s “The Russian Censorship Circumvention, Tom’s Traps, and Jerry’s VPN: A 5-Year Journey” (Saturday, H.1302, Network track) drew a large audience, while NymVPN and Delta Chat’s multi-relay messaging (both Sunday, Decentralized Internet and Privacy devroom) and other related talks ran in other rooms. A single devroom lets that audience and those speakers meet in one place.

Relationship to the existing “Decentralized Internet and Privacy” devroom. That room covers decentralised technology broadly (P2P protocols, browsers, code collaboration, key infrastructure), and censorship or anonymity is only a part of it. Digital Dissident is different: the organising principle is a user under threat and the end-to-end chain that protects them, not a technology class. We want to work with, not against, that room, and will coordinate schedules so the two don’t overlap, and will point overflow speakers to whichever room fits.

Themes (details in the CfP below):

  • Censorship circumvention and transport: obfuscation, fingerprint resistance, active-probing defence, bridge distribution, resilience to protocol whitelisting and full shutdowns.
  • Metadata-resistant communication: mixnets, onion routing, decentralised and federated messengers, store-and-forward and offline-first (mesh, sneakernet, Bluetooth/Wi-Fi Direct).
  • Secure reporting and publishing: whistleblowing platforms, source protection, document sanitisation, provenance and authenticity, censorship-resistant hosting.
  • Devices and operational security: hardened mobile and desktop systems, amnesic systems, seizure and border-crossing scenarios, forensic resistance.
  • Usability and threat modelling for at-risk users: onboarding under duress, safe defaults, training, measuring what really works in the field.
  • Measurement and adversary analysis: how censors detect and block, open data on blocking events, reproducible censorship research.
  • Digital sovereignty from Big Tech (secondary theme): reducing dependence on centralised platforms, app stores, push infrastructure, cloud and identity providers, both for individuals and for civil-society organisations.

Structure. A mix of formats to keep a full room engaged across the whole session:

  • 20 to 30 minute technical talks
  • A closing open discussion on interoperability gaps and shared next steps

Programme quality. Organisers will review all submissions on technical merit and fit to the toolchain framing, and will aim for a balance of projects, regions and speakers (established projects, new projects, researchers, people from affected communities). Every talk should include an explicit threat model and an honest account of limitations.

Projects and communities we intend to invite (no commitments yet): Nym (mixnet), Delta Chat / chatmail, SimpleX, the Fediverse (ActivityPub implementations and instance operators), Nostr, Psiphon and other circumvention and VPN providers, plus Tor-ecosystem, Reticulum and mesh-networking projects, whistleblowing and secure-submission platforms, and censorship-measurement researchers. Several of these projects presented at FOSDEM 2026.

Code of Conduct. We will follow the FOSDEM Code of Conduct. In addition, talks that describe circumvention or anonymity should avoid operational details that would endanger specific users in the field.

Important Dates

  • Sat, 24 October 2026: Call for Participation opens
  • Mon, 30 November 2026, 23:59 UTC: Call for Participation ends
  • Wed, 2 December 2026: Speakers notified
  • Fri, 4 December 2026: Deadline for speakers to confirm
  • Mon, 7 December 2026: Schedule published
  • The twenty-sixth edition of FOSDEM will take place on Saturday 30th and Sunday 31st January 2027 at the usual location, ULB Campus Solbosch in Brussels.
The Daily Front Page 5 of 29
Sunday, October 25, 2026 The Daily Front No. #261025 — The Price of Public Records
article

Oregon Police Are Charging a Local News Outlet $2.5M for Records About One Cop

by tdeck·▲ 451 points·124 comments·theintercept.com ↗
How much does it cost to get more information about a cop who punched someone in the face?

A Eugene-based publication requested records about a cop accused of misconduct. The city slapped it with a prohibitive fee.

Two members of the Eugene, Oregon, Police Department in a photo posted to the department’s Facebook page on Aug. 26, 2026. Screenshot: Eugene Police Department via Facebook

How much does it cost to get more information about a cop who punched someone in the face?

If you guessed anything lower than $2.5 million, you’d be wrong — at least according to the city of Eugene, Oregon.

In August, the local news outlet Double Sided Media filed a public records request for records about police officer Justin Peckels, which focused on potential misconduct between 2018 and 2026. Peckels has been the subject of community complaints, including for punching a resident in the face during a traffic stop, making the records vital for oversight and their release clearly in the public interest.

The city’s response is beyond belief. In its response to the request on Monday, the Eugene Police Department claimed searching for records and processing the request would take at least 44,816 hours of staff time and cost approximately $2,484,599.04. (A separate request by the outlet for similar records concerning a former police officer, Eric Klinko, was met with a comparatively modest estimate of $195,869.52, for a grand total of nearly $2.7 million for both requests.)

The open invoice by the City of Eugene, Ore. dated Aug. 1, 2026, in response to Double Sided Media’s request for public records relating to a police officer accused of misconduct. Screenshot: City of Eugene

“Once the City receives payment of $2,484,599.04 staff will continue processing your request,” the letter from the department’s public records division read. “If the actual cost of processing your request exceeds the amount you have paid the City, you will be required to pay the difference before the City will provide the records you have requested.”

Peckels’s file is either the largest in the world, or city officials have intentionally maintained their databases in such a way as to ensure fulfilling public records requests is prohibitively expensive. The city’s response points, at a minimum, to the latter. It justified the multimillion-dollar price tag by claiming it couldn’t narrow the custodians whose records it would need to search, despite the targeted nature of the request, and maintained it must search all records of all city employees, past and present.

By that logic, if someone ever worked in Eugene’s parks and recreation department, their records could contain responsive information about police misconduct, and must be manually pulled and reviewed, one by one.

This goes far beyond incompetence. It’s an intentional effort to make a response artificially voluminous — and cost prohibitive — to intimidate the journalist into dropping it entirely. 

Normally, agencies are required to search the specific custodians most likely to possess responsive records, not every groundskeeper or clerk on the city payroll. If the city were acting in good faith, officials would have asked Double Sided Media to help them identify the most likely record-holders, not take it upon themselves to cast a citywide dragnet as its first step.

What makes Eugene’s money-grab particularly galling is its technology double standard. While it apparently can’t invest in efficient search software, the police department recently signed a two-year $342,000 contract for nearly 60 AI-powered Flock automated license plate readers. This project was so secretive that the ACLU of Oregon had to sue the city for records about how the cameras were being used and demonstrates, among other inclinations, the city’s eagerness to employ sophisticated software to deploy against residents. 

Yet that technological sophistication disappears as soon as a journalist requests public records about the department’s internal accountability process, and simple keyword searches are suddenly cumbersome. 

For small newsrooms, a $2.5 million invoice is effectively a gag order that was never actually about covering costs, but bullying the requester to drop their inquiry.

Troublingly, Eugene’s $2.5 million bill is not an anomaly.

In 2015, the Department of Defense told a Freedom of Information Act requester, who was asking for records on tools used to preserve data on seized devices, that fulfilling their request would take 15 million hours and cost $660 million.

The same year, the Drug Enforcement Administration told a requester it would cost $1.46 million for records about the DEA’s role in the search and capture of the Mexican cartel boss Joaquin “El Chapo” Guzman.

In 2019, the Army tried to charge $300,000 to release military base water test results for the presence of toxic chemicals. The Army agreed to waive the exorbitant fee after facing intense backlash. 

The list goes on and on.

Luckily, records requesters seeking federal documents have a defense against these capricious invoices. Recent FOIA amendments aim to ensure if an agency misses its response deadlines, it can’t charge most fees. 

At the local level, however, these protections disintegrate. While Oregon grants agencies the discretion to reduce fees when the disclosure would benefit the public, agencies routinely ignore these provisions.

For small newsrooms like Double Sided Media, a $2.5 million invoice is effectively a gag order that was never actually about covering costs, but bullying the requester to drop their inquiry (all while Eugene Police Department launches its own “press” initiative to document its policing). It also sets the precedent for using this chilling tactic on any journalist or watchdog as it sees fit. 

Double Sided Media is rightly appealing the fee estimate, and it should prevail. But cities like Eugene will continue these efforts unless lawmakers across the country force agencies to adopt fee caps, mandate public-interest fee waivers for journalists, and require agencies to procure software that allows them to respond to records requests in an efficient and timely manner.

Until then, police departments will likely continue to issue multimillion-dollar ransoms for their records — weaponizing the public’s right to know into another avenue for police to operate with impunity.

The Daily Front Page 6 of 29
Sunday, October 25, 2026 The Daily Front No. #261025 — AI at Wafer Scale
article

Cerebras Deploys Trillion-Parameter AI Models

by gmays·▲ 355 points·132 comments·cerebras.ai ↗
Trillion-parameter frontier models need terabytes for their weights alone.

One of the most frequently asked questions we get is how we deploy large models on Cerebras wafer-scale chips. A single Cerebras WSE-3T wafer has 44 GB of on-chip memory, and trillion-parameter frontier models need terabytes for their weights alone.

In this post, we’ll explain how we split a large frontier model across multiple WSE-3T wafers, to run multi-trillion parameter models at 1000-2000+ tokens per second.

We’ll use the open source model Kimi K3, with ~3 trillion parameters, as an illustrative example.

By the end, you'll understand:

  • How we fit the full model into on-chip memory
  • How we map the model across multiple chips
  • How we handle a high # of concurrent requests

Breaking it down with Kimi K3

Kimi K3 is an open source, 3T parameter model with 69 linear-attention layers and 24 dense layers.

It scores an impressive 88.3% on Terminal-Bench 2.1 (vs. GPT-5.6 Sol's 88.8%) and 91.2% on BrowseComp (vs. GPT-5.6 Sol's 90.4%). These results demonstrate frontier-level coding and agentic capabilities, even outperforming leading proprietary models on some benchmarks. Read more about Kimi K3 here.

For this illustrative example, we use:

#1: Size of Each layer

To calculate the total number of Cerebras WSE-3T wafers we need to support Kimi K3, let’s first calculate the size of each model layer.

Kimi K3 has 3 trillion parameters. If all 3T parameters are stored at 4 bits each, the raw parameter payload is:

Dividing that payload by 93 layers then gives:

#2: Number of Wafers

Now that we know each layer needs about 16 GB, we can figure out how many layers fit on each 44 GB wafer. The answer depends on the layer type:

  • Dense layers need additional room for a KV cache, because each dense (full-attention) layer stores the keys and values for every token in every active request. So, we place one dense layer per wafer and leave the remaining SRAM for its KV cache.
  • Linear-attention layers do not require additional room for a KV cache. Instead of storing keys and values for every token, a linear-attention layer keeps a small, fixed-size state per request, regardless of context length. That leaves room for two linear layers per wafer (2 × 16 GB = 32 GB).

Therefore, with Kimi K3’s 69 linear layers and 24 dense layers, we get:

This gives us a total wafer count of 35 + 24 = 59 wafers.

#3: Connecting the wafers together

Cerebras executes models in a pipeline. After the Cerebras compiler maps the model layers across regions of wafers, the runtime maps the path for tokens to flow between wafers. For ultrafast latency, only activations need to be passed between the wafers, and this can be done via RDMA over Ethernet. This is roughly 2 microseconds per hop.

It’s important to emphasize that because each Cerebras wafer has 44 GB of on-chip SRAM and each layer is only 16 GB, we are typically able to fit entire layers of the model directly on the chip.

This means that in most cases, the model weights never have to move, and layers don’t need to be split across wafers. Only activations cross from one wafer to the next.

#4: How we serve 1 request

Now that we have our wafers connected together and the model laid out, we can think of each wafer as one stage in an assembly line: the model’s weights for each stage stay in place, and the request’s intermediate results move through the layer stages.

For example, Wafer 1 runs model layers 1–2 and sends its activations to wafer 2. Wafer 2 runs layers 3–4 and passes its results to Wafer 3, and so on until the last wafer produces the next token.

#5: How we serve many requests

This raises a common misconception. If a token has to travel through each wafer in order, doesn’t each wafer sit idle while it waits for its turn? In effect, wouldn't the system be running at a batch size of one?

No! If we only sent one request down the line at a time and waited for it to complete before starting the next request, this would be an inefficient use of the pipeline. Instead, we keep the entire pipeline full with different requests. Because the model is split into pipeline stages already, each stage can work on a different request at the same time.

While stage 3 processes a token for request A, stage 2 processes one for request B, and stage 1 one for request C. In our example, each stage is a layer. In production, Cerebras uses much finer-grained stages, and many more of them.

Video thumbnail

Each stage can also process a micro-batch, a small group of requests, rather than a single request. So the number of requests in flight is roughly the number of stages times the micro-batch size.

Video thumbnail

To understand the tradeoff, smaller micro-batches make each request even faster, while larger micro-batches increase total throughput.

#6: How many requests can we serve?

The amount of on-chip memory allocated to KV cache determines the maximum number of concurrent requests. Every request in flight needs its own KV cache on each dense-layer wafer, so the size of on-chip memory sets the ceiling on concurrent requests. As explained above, we only need to calculate KV cache requirements for dense layers.

For each 44 GB wafer that already has one dense layer, we can calculate the remaining space for the KV cache with:

Total wafer storage - size of one dense layer. In this case:

Calculating the # of Concurrent Requests

To find the number of concurrent requests supported for any particular model mapping, we first calculate how much cache a single 256k request takes up:

To then calculate the total number of concurrent requests this configuration would support, we divide:

The total number of concurrent requests represents the number of simultaneous requests moving through the pipeline at any point in time. Unlike a GPU batch, those requests don’t wait for one another to finish, they stream through the pipeline continuously.

Of course, neither concurrency nor batch size tells you exactly how efficiently an inference system performs. When evaluating the throughput of an inference system, the more meaningful metric is total token throughput per unit of power (e.g. tokens per second per megawatt), when measured at the same output generation speed.

How this scales beyond 3T parameters

The same approach extends to larger models: calculate the memory needed for weights and request state, distribute the model across wafers, and connect them into a pipeline. Each additional wafer contributes compute and on-chip memory, allowing us to accommodate models that exceed the capacity of any single chip.

Thanks for learning with us! Interested in deploying a model on Cerebras or building with our inference cloud?

Designs by Halley Chang. Thanks to Atharva Talpade, Zhenwei Gao, Angela Yeung, Jessica Liu, Joyce Er, Emma Call, and Rohan Gupta for their review and feedback.

The Daily Front Page 7 of 29
Sunday, October 25, 2026 The Daily Front No. #261025 — The Great Token Markdown
article

OpenAI and Anthropic cut their LLM prices by up to 80% within a few months. Why?

by minimaxir·▲ 302 points·292 comments·minimaxir.com ↗
OpenAI and Anthropic cut their LLM prices by up to 80% within a few months.

Let’s look at a quick timeline of the major LLM model announcements from both OpenAI and Anthropic over the past few months. All pricing numbers provided are input MTok / output MTok / cache read MTok.

June 26, 2026

OpenAI announced GPT-5.6 Sol and Luna. Sol is the direct successor to GPT 5.5 at the same price of $5 / $30 / $0.50, while Luna is a small model specifically designed for cheaper use cases at $1 / $6 / $0.10. They also announced a Terra model that’s in between those two models, but few cared about it.

June 30, 2026

Anthropic announced Claude Sonnet 5, which Anthropic claimed to be closer to their Opus models, but feedback was mixed. Notably, it had launch pricing of $2 / $10 / $0.20 which was initially supposed to be temporary but would go up.

July 24, 2026

Anthropic announced Claude Opus 5, which was a long-awaited major-version update given the impact Opus 4.5 had on the rise of agentic coding, at a price of $5 / $25 / $0.50 (similar to GPT-5.6 Sol). Although some of the provided benchmark results surprisingly exceeded those of the much larger Fable 5, real-world feedback was more mixed.

July 30, 2026

OpenAI announces that they cut the price of GPT-5.6 Luna by 80% (???) to $0.20 / $1.20 / $0.02.

Model quality vs. Cost-per-task for GPT-5.6 Luna after the massive price reduction. Top-and-left is better, and if OpenAI didn’t do the 80% price cut, it would have lost to DeepSeek V4 Pro. via OpenAI

Model quality vs. Cost-per-task for GPT-5.6 Luna after the massive price reduction. Top-and-left is better, and if OpenAI didn’t do the 80% price cut, it would have lost to DeepSeek V4 Pro. via OpenAI

August 10, 2026

Anthropic announces the temporary Sonnet 5 price cut for the launch is now permanent.

August 21, 2026

OpenAI announces that they are cutting the price for GPT-5.6 Sol by ~20% ($4 / $20 / $0.40) for the next three months.

September 1, 2026

Anthropic announced Fable 5.1 at a price of $10 / $50 / $0.25, which, in addition to having strictly better benchmark performance in all areas than Fable 5 from June at $10 / $50 / $1, cut the cache read cost by 75%.

Cache read costs

When using agents for coding, cache read costs are the vast majority (96% - 99%) of the total token expenditure as the cache is what contains the entire previous conversation each turn. Additionally, the cache tends to be hit around 90 - 100% of the time (varies by the infrastructure of the LLM inference provider). Taken together, a 75% reduction in the cache read cost correlates to a 70-75% reduction in the cost of using the model—obviously notable, even if cache costs are typically a footnote!

September 3, 2026

OpenAI announced GPT-6 Astra, which is similar in size to Fable 5.1 and has similar pricing at $10 / $50 / $1 but without the lower cache read cost. Astra’s model performance is indeed comparable to Fable.

September 22, 2026

OpenAI announced GPT-6 Sol at at a shocking price of $2 / $10 / $0.20 that halves the input and output price relative to the temporarily-discounted GPT-5.6 Sol! They simultaneously released GPT-6 Luna also at half the input and output price ($0.10 / $0.50 / $0.01) of the previous version.

On the same exact day, Anthropic announced Claude Opus 5.5, where it’s explicitly stated “Opus 5.5 requires less compute to serve than Opus 5, and its pricing reflects that”. Its price of $4 / $20 / $0.20 is much lower in total than Opus 5’s due to a 20% input/output cost cut and a larger cache read cut, resulting in a total cost reduction of 40-60% for a model that’s even better than Fable 5.1 (I have quite a lot of things to say about Opus 5.5, but that’s for another post).

September 29, 2026

It turned out that GPT-6 Sol was a dud performancewise, so a week later OpenAI announced GPT-6.1 Sol, which surprisingly has comparable performance to Astra (can confirm after personal use), but OpenAI casually cut the cache price in half ($2 / $10 / $0.10) matching Anthropic’s 5%-of-input cache read cost, making this model family cumulatively 75% cheaper.

Overall, starting from the release of the GPT-5.6 model families in June to now, the cost of using these popular LLMs has cratered, which is not something I would have expected a year ago. These price cuts also apply to model usage from subscription agentic harnesses such as Codex and Claude Code. More importantly, these models do not appear to have cut any corners in terms of output quality to achieve their price cuts.

Data from Vercel’s AI model gateway supporting the decreasing cost-per-token trend to 43.3% of the April 2026 cost. However, aggregate spend has been increasing because the models are getting better faster than they’re getting cheaper! via Vercel

Data from Vercel’s AI model gateway supporting the decreasing cost-per-token trend to 43.3% of the April 2026 cost. However, aggregate spend has been increasing because the models are getting better faster than they’re getting cheaper! via Vercel

From the timeline above, there is a clear tit-for-tat between Anthropic and OpenAI, and it is reasonable to assume that these particular price cuts from OpenAI and Anthropic are in reaction to each other. However, no one cuts prices by 80% unless there is some externality in play. So, what gives?

The Behavioral Economics of LLMs and Competitor Pricing Pressure

If you have been testing agents with new LLMs as they are released, it can be very difficult to differentiate them outside of subjective vibes. Since last November that launched the hypergrowth of agentic LLMs, models have become more of a commodity where it’s trivial to try a new model on your codebase with just a toggle in a harness like OpenCode and Zed Agent, or a different API endpoint string through OpenRouter, and as a result there is little moat. Additionally, there are many competitors—not just large companies like Google and Meta—who can provide models which are sufficient substitutes and therefore allow pricing pressure.

For open weight models, let’s take another look at DeepSeek Flash V4.1, which also recently released an updated 1017 variant.

OpenRouter at this point is the place you go for open-weight models. Retrieved October 24th, 2026.

OpenRouter at this point is the place you go for open-weight models. Retrieved October 24th, 2026.

The original DeepSeek V4 Flash 0420 was released in April 2026 at a price of $0.14 / $0.28 / $0.0028 and went megaviral as a result, especially as OpenAI didn’t have a small-class model for simple tasks at the time. That $0.0028 turned out to be the key, as a cache read proportion of 2% is substantially lower than the 5%-10% of the OpenAI and Anthropic models above, which makes the effective cost even lower than what is advertised. I suspect the 80% GPT-5.6 Luna price cut in July was meant to specifically compete with these smaller open-weight models. Now, the new DeepSeek Flash V4.1 1017 model performs significantly better than DeepSeek Flash V4 benchmark-wise (45 on the Artificial Analysis index vs. 24) and the cost from DeepSeek remains similar at $0.15 / $0.60 / $0.003. Note the operative words “from DeepSeek”.

On OpenRouter, any inference provider can list a model that they host, and when a user hits the OpenRouter API, the request is routed to one of those models—it’s routed to any available model by default for load balancing but the developer can specify preferences such as “lowest price” in the API request. Back in May, I noted that there were 13 distinct providers hosting DeepSeek V4 Flash on OpenRouter. For the updated 1017 variant, there are now 29 distinct providers.

Providers for DeepSeek V4.1 Flash 1017 sorted by cache read cost. Retrieved October 24th, 2026.

Providers for DeepSeek V4.1 Flash 1017 sorted by cache read cost. Retrieved October 24th, 2026.

However, looking at the effective input costs (which account for the interaction between cache read costs and cache hit rates), many distinct providers are close costwise.

Effective costs by endpoint, with Cloudflare and DeepInfra within 10% of DeepSeek’s cost. Despite the fact that these models are the cheapest, note that these models only have a minority of the total token share. Retrieved October 24th, 2026.

Effective costs by endpoint, with Cloudflare and DeepInfra within 10% of DeepSeek’s cost. Despite the fact that these models are the cheapest, note that these models only have a minority of the total token share. Retrieved October 24th, 2026.

OpenAI and Anthropic will have to differentiate from these open weight models with higher-quality models—they are currently doing a good job with that particularly with Opus 5.5—but they need to keep doing that, which is why billions of dollars are being invested into R&D. Open-weight models are catching up fast: just a few days ago, Moonshot AI announced Kimi K3.1 Pro which has comparable performance to Opus 5.5 (Kimi at 55 vs. Opus 5.5 at 58) at half the input/output price and the same cache read cost ($2 / $10 / $0.20). It’s the same size and architecture as Kimi K3 which is currently being hosted by over 20 distinct inference providers: once the weights drop on November 4th, you can therefore expect most of them to support the new Kimi K3.1 Pro model at a roughly equivalent price. Notably, Moonshot AI itself is joining the price cut fun and priced Kimi K3.1 Pro at less than the original Kimi K3 ($3 / $15 / $0.30).

One recurring trend among vocal AI detractors is that the price of tokens has been kept artificially low to hook people into the LLM ecosystem, but then the prices will increase to “the true cost of a token” and the AI boosters will be screwed once the free ride ends. The theory is that OpenAI and Anthropic are loss-leading just like what Uber and Lyft did to the ridesharing industry in the 2010s, but unlike then, OpenAI and Anthropic are not a duopoly who have the sole power to set prices in the ecosystem and the barrier to entry for the inference industry is not as high. As long as these many inference providers can continue to serve models at a similar price and a similar quality to what OpenAI and Anthropic can provide, and switching cost is negligible, then the prices may continue to decrease more. It’s no surprise both companies are trying to build moats to defend against this trend, such as a focus on enterprise commitments and personal agentic assistants like OpenAI Dots and Claude Duet.

The idea that token prices will suddenly rise is more a fantasy that is not supported by both behavioral economics and the actual trends of LLM prices going down significantly over the last few months for better models, and not just from OpenAI and Anthropic. As long as scalers can price at a cost-per-token lower than the revenue-per-token, then those inference providers will reduce token costs to compete with each other to a point that OpenAI/Anthropic will have to lower their prices to compete too. The 29 distinct providers on OpenRouter have little incentive to serve an unprofitable model (they would just stop serving it and use the compute capacity for a profitable model instead) and “the true cost of a token” may end up being where price equals marginal cost.

On that note, both OpenAI and Anthropic are indeed close to IPOing, which raises further questions about the price cuts.

IPO Pumping

The timing of these price cuts is notable because both OpenAI and Anthropic are rumored to be IPOing soon—OpenAI in 2027, and Anthropic within a couple months. So far, leaked financials from both OpenAI and Anthropic show unsurprisingly that they are losing billions due to R&D/scaling, albeit in both cases these reports do not account for the hyperexpansion of agentic LLM use over the past few months. Investors will scrutinize the massive negative profits and demand that they have a plan to turn things back around.

So, why did they cut their primary revenue source by up to 80%? That’s the opposite of what you would want to do to look good on an S-1 prospectus! The profit margins on inference themselves likely tell a different story, with some reports saying the profit-per-token margins are as healthy as 80% with caveats. How much of a profit margin do they have after these major cuts?

Speaking personally, the price cuts have indeed affected how I spend on LLM agents, but not in the way I expect OpenAI/Anthropic want their typical customer to behave. I used to have a $100/month subscription to Codex (the 5x Pro plan) when GPT-5.6 Sol was the top model, and I managed to just fully exhaust all the usage included in the subscription despite getting annoyed with random usage resets. Once GPT-6.1 Sol released and I noticed that the cost of using it was effectively cut by 75%, you know what I did?

I cut the max usage quota to 1/5th after getting 4x more efficient usage of the same model, so it ends up roughly neutral and the obvious choice.

In fairness, the profit margins for subscriptions such as Claude Code and Codex are uncertain given their immense value relative to the API usage, and if there are capital crunches I suspect subscription value will be cut before the base price of the models. For example, at the same time GPT-6.1 Sol was announced, OpenAI cut the usage allowance by 50% for the $200/month tier in Codex under the argument “to reflect our increasingly efficient models”—which is technically correct but it’s funny to put in writing.

I will be very curious to see the Anthropic IPO prospectus and the inference profit margins once it becomes public soon.

I also question whether it’s good for OpenAI/Anthropic if they intentionally obsolete their more expensive models. After Opus 5.5 released a month ago, there hasn’t been any discussion about either Fable 5.1 or GPT-6 Astra because Opus 5.5 is just that good.

Top-and-left. via Anthropic

Top-and-left. via Anthropic

I fully expect a Fable 5.2/GPT-6.1 Astra to release in a couple weeks and prove me wrong, and I will be very curious to see how it will be priced.

Another less-cynical factor that could explain the price cuts is that LLM infrastructure has improved over the past few months—when Anthropic said “Opus 5.5 requires less compute to serve than Opus 5, and its pricing reflects that,” I believe it. One outcome that would be genuinely ironic is that if these models are more compute efficient, it reduces the need for these massive data center buildouts, which could cause cascading economic failures. However, that likely won’t happen since inference is only one part of the compute mix and those data centers are still needed for other parts of the pipeline.

Overall, the price cut is weird, but as a user I’m certainly not complaining! Open-weight models and secondary inference providers will continue to serve as an economic check on the prices of LLMs and other business shenanigans the large labs may concoct. Even if Anthropic’s and OpenAI’s IPOs are catastrophic and cause both companies to fold, it will not suddenly cause LLMs and agents as an industry to die.

The Daily Front Page 8 of 29
Sunday, October 25, 2026 The Daily Front No. #261025 — Why We Code
article

Why I Am a Programmer

by jruohonen·▲ 219 points·66 comments·alfie.wtf ↗
I want to code demos.

There they sit, the preschooler class encircling their mentor, the substitute teacher.

"Now class, today we will talk about what you want to be when you grow up. Isn't that fun?"

The teacher looks around and spots the child, silent, apart from the others and deep in thought.

"Jonny, why don't you start?"

she encourages him. Jonny looks around, confused, his train of thought disrupted. He collects himself, and stares at the teacher with a steady eye.

"I want to code demos,"

he says, his words becoming stronger and more confidant as he speaks.

"I want to write something that will change peoples perception of reality. I want them to walk away from the computer dazed, unsure of their footing and eyesight. I want to write something that will reach out of the screen and grab them, making heartbeats and breathing slow to almost a halt. I want to write something that, when it is finished, they are reluctant to leave, knowing that nothing they experience that day will be quite as real, as insightful, as good. I want to write demos."

Silence. The class and the teacher stare at Jonny, stunned. It is the teachers turn to be confused. Jonny blushes, feeling that something more is required.

"Either that or I want to be a fireman."

  -- Denthor of ASPHYXIA (aka Grant Smith), TUT7.TXT (1993)

In the Beginning...

I grew up in a pre-mainstream Internet world. A time when only a handful of kids at my primary school had a computer. We lived in a rough neighbourhood and so having a computer meant that you were a target for robbery. As we all knew somebody who had their computer stolen at least once, having a computer was kept on the low down. But we still found each other. Each time word got out that some kid got a new computer, they was suspiciously quizzed before being let into our digital posse.

A lot of my childhood was spend living indoors behind a buzzing 14" CRT, pirating games with other kids via 3.5" single-density floppies with their corners drilled out, and once in a while even playing them. But I was more of a collector than gamer. Like Ash from Pokemon - got to catch them all. And the people who created computer games were my idols. I was always in awe of what they could do with that big, heavy, beige box under the table.

One day word spread that there was a way to edit saved game files via XTreeGold's Hex View that gave you unlimited lives and allowed you to skip stages. With each new game that came out, the race was on to see who could be the first to flip the right bits to get the powerups. It was seriously heart pumping. Although only tinkering, it felt like we were our own gods.

We bought a modem a few years later and soon after got a copy of The Australian BBS Listing - a textfile containing most of the publically accessible BBSes online. I dialed every one of them (but that's for another blog post). It opened up a whole new world to explore. Instead of just a handful of kids pirating games via Sneakernet, I was connected to the digital underground - a world where anything digital was within reach (some even had Internet gateways). Even the newest blockbusters that I had only read about in PC Zone magazine were all there for me to leech. All of them, soon slowly trickling down the wire via ZMODEM.

But there was something different with these BBS downloaded games. Not something bad, but something exciting. Each time these games were run, it was like a short commercial was played before the title screen. Now I'm not talking about commercials selling steak knives. Instead, these were brazen posters screaming fuck you by the people who had managed to crack the game's copy protection code and were now distributing the game illegally for free. I later found out that these commercials were called cracktros. The precursor to demos and what started the whole demoscene. But simply calling them demos just doesn't give them justice. They were more of an out of body experience. Sensory overload. Like what you would feel at 2am, half tipsy, half asleep and being woken up stunned as you stare at a late 90s acid hard trance film clip, feeling it inject directly into your cerebral cortex. Once it finished playing, you were frozen. Still unsure whether you saw something real or just imagined it all. The only thing you were sure of, was that it was awesome.

Then one day while browsing the file section of some random BBS, I stumbed onto a file innocently called TUT1-9.ZIP. It's FILE_ID.DIZ caught my attention:

    +----------------------------+
    |     The ASPHYXIA VGA       |
    |   DEMO TRAINER SERIES!     |
    |                            |
    |   By Denthor of ASPHYXIA   |
    |                            |
    |    Documentation on how    |
    |  to code demo like effects |
    |         in TP6/7!          |
    |                            |
    |Full Pascal source included!|
    |                            |
    |    From putting a pixel    |
    |  to sprites and animation  |
    |  to wireframe 3D to solid  |
    |            3D!             |
    |                            |
    |       Get it now!          |
    +----------------------------+

How to code demo like effects? You mean I too could be one of those sorcerers that had the computer under their complete control!? My heart raced as I added it to the download queue, fired up the aging Epsom LQ-300, then covered me ears as its loud ink needles hit the blue and white computer paper.

I didn't know anything about programming but I was completely estatic with the potential. I followed along with Denthor's tutorials as much as I could, typed everything out and hoped that Borland's Turbo Pascal 6.0 wouldn't laugh at me too much. It only gave me a basic understanding of how all the pieces to the puzzle fit together, but it was enough to whet my appetite and crave for more. I wasn't even into my teens yet but I definitely knew at the time that I didn't want to watch demos or play computer games anymore. I wanted to make them. I wanted to be elite. I wanted to be a programmer.

The Daily Front Page 9 of 29
Sunday, October 25, 2026 The Daily Front No. #261025 — The Agent’s Workbench
repository

JetBrains Thinkrail

by hmokiguess·▲ 212 points·157 comments·github.com ↗
★ 2,191⑂ 125 forks TypeScript

Vibe code with pi in a lightweight, real IDE that customises itself around the way you work — The Vibe You Need

ThinkRail is the agentic IDE that gets better every time you use it — learning your project through living specs today, and building its own capabilities tomorrow.

We built a rich interface around the pi coding agent, isolated work into separate workspaces, and gave the agent durable project knowledge through living specs and reusable skills. Next, we're adding full extension support, so ThinkRail can create the tools it needs based on how you actually work.

Website: thinkrail.ai · Blog: thinkrail.ai/blog

⭐ If you find ThinkRail useful, give it a star — it helps others discover it.

ThinkRail workbench: the Projects pane beside the left tool rail listing worktree workspaces and their Settled shelf, a finished pi conversation with its tool steps in the center, the resulting diff beside it, and the Specs tree above the Changes list on the right with their tools on the edge rail

A pi session and the change it made, scoped to an isolated git-worktree workspace.

What you get

  • Isolated workspaces. Open any git repo as a project and cut workspaces from it as git worktrees, each with its own branch and working directory. Agents work in parallel without touching your checkout; merge the good branch, delete the rest. You can also attach existing worktrees or explicitly work in the project folder itself. Finished and dormant workspaces settle onto a per-project shelf on their own — when their pull request merges or closes, or after a quiet week — and come back the moment you work in them. The topbar shows where the active branch stands against origin and its pull request, with the next step one click away: publish, push, or open a PR described from the plan, the commits, your PR template, or an agent-written draft. Once a GitHub PR is open it shows the CI checks and review decision, and lets you mark it ready, hand failing checks or a diverged branch to the agent, merge it with the repository's last-used method, reopen it, or delete the remote branch.
  • A real IDE around the agent. A splittable workbench of Monaco editor tabs, a Files tree with live git change marks and a Changed view, terminals, and documents — all scoped to the active workspace. Leave anchored review comments on files and diffs and send them to a chat as structured context, or open the worktree in your installed IDE.
  • Chats that stream like the engine thinks. Several concurrent pi sessions per workspace, each with its own model and live token and cost readout. Steer a running turn or queue a follow-up, delegate to subagents, and work a shared plan the agent updates and you edit — each completed step can be committed and reviewed on its own.
  • Specs as ground truth. A connected graph of SPEC.md files lives beside the code; the agent reads, searches, and maintains it through dedicated spec_* tools, so intent survives the session. The read-only Specs tool renders the graph as a tree in the workbench.
  • Skills and workflows. Portable Agent Skills you already keep for other coding agents are read in place, and bundled workflows guide project setup, design brainstorming, and shipping a pull request — pushing the workspace branch and opening or updating its GitHub PR through your own gh.
  • Agent tools beyond the shell. Web research, and inline diagrams, option comparisons and file previews rendered right in the chat — when the agent proposes a UI change it shows a before/after mockup you can comment on like a diff. Settings → Extensions lists the ThinkRail extensions the agent gets and lets you switch each one off.
  • MCP servers. Connect the MCP servers in your pi mcp.json (or add them, and a few presets, from Settings): ThinkRail asks in the chat before calls the server does not mark read-only (or always allows the tools you trust in a project), keeps servers a repository defines off until you approve them, signs you in to OAuth servers from Settings, and shows each chat's servers next to its background commands and subagents.
  • Your providers, your credentials. Sign in with JetBrains AI or connect any provider through pi's own auth. ThinkRail has no accounts of its own.
  • Desktop app or browser. A native desktop app, or the thinkrail CLI that opens the same app in your browser. Both embed the same engine host; app state lives under ~/.thinkrail.
  • Your language. Settings → Language follows your system language or a language you pick; English and Simplified Chinese are built in. Add a language ThinkRail doesn't ship yet by dropping a translated en.json into ~/.thinkrail/locales — it applies as you save. Agent replies and tool output stay as the agent wrote them.

The Specs tool, opened from the right edge rail, listing the project's spec tree while the product goal spec is rendered in the editor

The project's spec graph as a tree, with the spec itself rendered alongside.

Install

ThinkRail ships in two additive forms: a native desktop installer and the self-contained thinkrail CLI. Both are published with SHA256SUMS on the releases page.

Desktop

Download the thinkrail-desktop-* asset for your platform:

  • macOS (Apple Silicon) — open the DMG. There is no Intel desktop build.

  • Windows x64 — extract the complete setup ZIP, then run its setup executable in place, next to its payload.

  • Linux x64 / ARM64 — extract the setup tarball and run installer. Desktop builds need glibc 2.38+ with GTK 3, WebKitGTK 4.1, Ayatana AppIndicator 3, and librsvg 2 — Ubuntu 24.04 or newer:

    sudo apt install libgtk-3-0 libwebkit2gtk-4.1-0 libayatana-appindicator3-1 librsvg2-2
    

Packaged stable and nightly desktop builds check for updates in the background and offer them in Settings → Updates: Download → Preparing update → Install & Restart. Nothing is applied until you choose Install & Restart. ThinkRail then shows the installation's progress and log, closes, and reopens on the new version. After the restart it tells you whether the update installed. If it didn't, it explains why and offers to retry. The updater appears only when the package carries a valid HTTPS feed identity; installations that predate that identity need one manual installation first.

Command line

The installer downloads the right binary, verifies its SHA-256 checksum, and puts thinkrail on your PATH.

macOS / Linux (also Windows under Git Bash):

curl -fsSL https://raw.githubusercontent.com/JetBrains/thinkrail/main/install.sh | bash

Windows — the same command works from cmd and PowerShell:

powershell -c "irm https://raw.githubusercontent.com/JetBrains/thinkrail/main/install.ps1 | iex"

Then run thinkrail, optionally with a git repo to open as a project:

thinkrail ~/code/my-repo

thinkrail needs git on your PATH and a model provider — sign in with JetBrains AI from the app or use your own provider credentials. thinkrail --help lists the flags; thinkrail --version prints the build.

Nightly builds, pinned versions, updates, and uninstall

The installer takes --channel stable|nightly and --version; a pinned version must belong to the selected channel:

curl -fsSL https://raw.githubusercontent.com/JetBrains/thinkrail/main/install.sh | bash -s -- --channel nightly
curl -fsSL https://raw.githubusercontent.com/JetBrains/thinkrail/main/install.sh | bash -s -- --channel stable --version 0.1.2
curl -fsSL https://raw.githubusercontent.com/JetBrains/thinkrail/main/install.sh | bash -s -- --channel nightly --version 0.2.0-nightly.10

On Windows the options are environment variables (THINKRAIL_CHANNEL, THINKRAIL_VERSION, THINKRAIL_PREFIX, THINKRAIL_NO_MODIFY_PATH):

$env:THINKRAIL_CHANNEL='nightly'; irm https://raw.githubusercontent.com/JetBrains/thinkrail/main/install.ps1 | iex   # PowerShell
set "THINKRAIL_CHANNEL=stable" && set "THINKRAIL_VERSION=0.1.2" && powershell -c "irm https://raw.githubusercontent.com/JetBrains/thinkrail/main/install.ps1 | iex"   # cmd

Installed stable and nightly CLI hosts periodically offer Run Update in Settings → Updates. It runs the host machine's thinkrail update in the background — also when the UI is open in a browser on another machine — and a successful update asks you to restart the host manually. You can run thinkrail update directly on any platform: it re-runs the installer for the installed channel and replaces <prefix>/bin/thinkrail[.exe]; pass --channel or --version only for an explicit override.

thinkrail uninstall removes the executable, the PATH entry the installer added, and the install metadata, and asks whether to delete your ~/.thinkrail app state (kept by default — --remove-data deletes it, -y skips the questions).

Prefer a manual install? Download a binary and SHA256SUMS from the releases page and verify the checksum. For self-update to work, rename it to thinkrail (thinkrail.exe on Windows) and place it at <prefix>/bin/thinkrail[.exe]; a binary kept under its release filename or elsewhere must be replaced manually or reinstalled with the script.

Platform notes

Platform Desktop CLI macOS Apple Silicon DMG signed binary macOS Intel no Electrobun build not prebuilt — build from source Windows x64 signed setup executable and app binaries signed .exe / Linux x64 / ARM64 setup tarball, unsigned unsigned

JetBrains signs the Windows CLI, the desktop setup executable, and every executable and DLL the desktop app installs. The macOS CLI is signed but not yet notarized. Signed and notarized desktop DMGs require the coordinated JetBrains service pipeline; older published DMGs and locally built packages may still be unsigned and blocked by Gatekeeper. Linux artifacts are unsigned.

Analytics & privacy

ThinkRail collects basic usage events — launches, chat creation, message sends, provider connections — tied to a random installation ID. Usage analytics never include prompts, code, files, credentials, or account identity. Error reports are also always sent, tied to the same installation ID, so we can fix crashes: the error type and code and where in ThinkRail's own code it happened. They never include error messages, file paths, names, URLs, or anything from your projects or extensions. Additional product usage and how you found ThinkRail are shared only while Share additional usage data is on; the switch is offered at first launch and lives in Settings → Privacy. When launching from the command line, thinkrail --no-analytics (or THINKRAIL_NO_ANALYTICS=1) turns additional sharing off for that run. With additional sharing on, a packaged build may open the ThinkRail blog in your browser once to link your installation to the website visit that brought you here — only where you accepted marketing cookies on the website or no consent is required — and that link expires after 30 days.

Under the hood

ThinkRail is a thin host that runs pi in-process and bridges it to a rich web UI. pi owns models, skills, compaction, cost, and session state; the app owns the workspace, the editor, and the wire — it never assembles prompts behind your back. Three rings:

  • Engine host — packages/server (+ packages/shared): a Bun.serve HTTP+WS host with one in-process pi session per chat, launched by apps/cli or apps/desktop.
  • The wire — packages/contracts: the typed, versioned protocol between host and UI.
  • UI client — apps/web: React 19 + Zustand + Tailwind v4, shipped independently; it dials a host over the wire and depends on the contracts only.

goal-and-requirements.md and architecture.md are the canonical product and design specs. ThinkRail is developed spec-first: a SPEC.md sits beside every module, and a change that moves a boundary, contract, or decision updates the spec in the same change.

Developing ThinkRail

You need Bun 1.4.4 (the pinned package manager and runtime), Node.js ≥ 22.19 (required by the in-process pi engine), and an authenticated pi provider for agent work.

git clone https://github.com/JetBrains/thinkrail.git
cd thinkrail
bun install
bun run dev                          # host + web client together; Ctrl+C stops both
bun run --filter @thinkrail/cli dev  # browser launcher
bun run build:binary                 # standalone CLI artifact
bun run desktop:dev                  # package and open the Electrobun app
bun run desktop:build                # package without opening it

CONTRIBUTING.md covers the checks, the end-to-end suites, desktop packaging, and the repository layout.

Contributing

Contributions are welcome — see CONTRIBUTING.md. This project and community are governed by the Code of Conduct.

License

Licensed under the Apache License 2.0.

The Daily Front Page 10 of 29
Sunday, October 25, 2026 The Daily Front No. #261025 — A Personal Vaccine, a Major Trial
article

Moderna and Merck say their mRNA cancer vaccine cut death, recurrence by 42%

by _Microft·▲ 189 points·43 comments·arstechnica.com ↗
Personalized mRNA vaccines against melanoma reduced the risk of death or recurrence by 42 percent.

Personalized mRNA vaccines against melanoma—the deadliest form of skin cancer—reduced the risk of death or recurrence by 42 percent compared to standard treatment in a late-stage trial, pharmaceutical partners Merck and Moderna announced Thursday.

The results are a significant advance in melanoma treatment; Merck and Moderna are already engaging with regulatory authorities to get the vaccine approved. More broadly, the vaccine’s success bolsters hope that mRNA vaccines and individualized cancer-targeting medicines offer a new paradigm for cancer therapies.

“From the beginning, we believed mRNA technology could make it possible to develop cancer treatments uniquely matched to each patient’s tumor,” Moderna CEO Stéphane Bancel said in a statement. The trial results “mark a defining moment for that vision and show what’s possible when we rethink how medicines are made.” They also “reinforce our conviction that mRNA has the potential to fundamentally change how we treat cancer,” he said.

In August, Moderna and Merck reported that the vaccine has succeeded in the trial, but held off reporting details until the data could be presented at an upcoming scientific conference. That conference is the European Society of Medical Oncology, starting now in Madrid, Spain. The data was scheduled for presentation on Saturday, but after an oncology news site reported the results early, breaking the embargo, the companies released the top-line results. The full data has been accepted for publication in the New England Journal of Medicine.

As Ars reported earlier, the Phase 3 trial included 1,137 patients who had stage IIB–IV melanoma that had been surgically removed prior to entering the trial. Patients were randomized 2-1 to receive either a combination treatment including the personalized mRNA vaccine with a standard treatment, or the standard treatment alone. The standard treatment was Merck’s established monoclonal antibody cancer treatment Keytruda.

New data

The tailored mRNA vaccine is intismeran (or mRNA-4157), which uses a synthetic mRNA that holds the unique genetic coding for up to 34 mutations in a patient’s own cancer cells. To produce the personalized vaccines, researchers compare the genetic sequences of a patient’s cancer cells with those of healthy cells and pick out cancer-specific mutations that could help the immune response selectively target just the cancer cells.

In the trial, researchers assessed “recurrence-free survival” or RFS, which is the amount of time a patient has without the cancer returning, and “distant metastasis-free survival” or DMFS, which is the amount of time a patient has without the cancer returning and occurring in a different part of the body than where it began.

According to the rushed-out press release, after two years, participants in the trial who received the intismeran-Keytruda treatment had 42 percent reduction in their risk of recurrence or death compared to the participants who just got Keytruda and a placebo. What that looked like after two years was that 82 percent of the intismeran-Keytruda treatment group were still alive without recurrence, while only 70 percent of the Keytruda-placebo group were alive without recurrence.

For distant metastasis-free survival, intismeran-Keytruda treatment reduced the risk of distant metastasis or death by 38 percent compared with the Keytruda-placebo group. At the end of the trial, 88.5 percent of the intismeran-Keytruda treatment group were alive without distant metastasis, while 80 percent of the Keytruda-placebo group were alive without distant metastasis.

The treatment effect was not as strong as seen in a five-year Phase 2 trial, which showed a 49 percent reduction in the risk of recurrence or death and a 59 percent reduction in the risk of distant metastasis or death.

Still, the findings are an exciting advance for melanoma patients. The trial “is the first Phase 3 study to demonstrate a clinically meaningful improvement in RFS and DMFS over standard-of-care KEYTRUDA in patients with resected melanoma, setting a new benchmark in the adjuvant setting and representing one of the most significant advances in melanoma treatment since the advent of immunotherapy,” Dean Li, president of Merck Research Laboratories, said in an announcement.

The Daily Front Page 11 of 29
Sunday, October 25, 2026 The Daily Front No. #261025 — Context Is the Work
article

The State of Context Engineering

by pchristensen·▲ 176 points·41 comments·dbreunig.com ↗
The job is knowing when to be deterministic and when to be probabilistic.

The Job is Knowing When to Be Deterministic & When to Be Probabilistic

This week, I gave a short talk at AGNTCon titled, “Context Fails & Fixes,” that functioned as a sort of “State of Context Engineering.” How did context engineering emerge, where has it gone, and where might it go in the future? As model makers target new capabilities, they inadvertently create challenges we, as users and harness builders, must overcome.

Below are the slides and a lightly edited transcript. As always, shoot me a note with any feedback, thoughts, or questions. I really appreciate it.


Title slide: Context Fails & Fixes. The continuing challenge of preparing precise instructions. Drew Breunig, Cmpnd, October 2026.

Hi, everyone. Thanks for joining me today. We’re going to walk through context fails and fixes.


Hi, I'm Drew Breunig. I write about technology, data, and AI at dbreunig.com; I cofounded Cmpnd, a startup focused on compound AI research and DSPy; and I'm currently editing The Context Engineering Handbook.

I have a book coming out in a bit, The Context Engineering Handbook. When I first talked to the team at O’Reilly, back in June 2025, they asked me a very reasonable question: “How do we know this won’t become obsolete in a few weeks?” The trouble with AI textbooks is that many age extraordinarily quickly.

I said, I don’t know, but I’m optimistic. Giving clear instructions about what to do and what not to do, and ensuring those instructions are consistent and not noisy, will forever be a challenge with AI, no matter how good it gets.

We have coworkers, partners, and other people we know and interact with who are sentient. They pass the Turing test, they are “AGI,” and yet: we still have a hard time conveying instructions, ideas, and concepts among each other.

Context engineering will continue to be hard. But it will be hard in unique ways, because models aren’t people. You can make assumptions about how models think or interpret things (use whatever anthropomorphizing word you like), but it helps to understand how they’re built, optimized, and trained. Their unique attributes and construction create a unique set of failure modes we need to reckon with.

So let’s review how we got here.


2024: The Promise of Long Contexts. Bar chart of context window sizes: GPT-4o at 128K tokens versus Gemini 1.5 at 1M.

Let’s flash back to the end of 2024.

If you remember, this was the height of the “RAG is dead” moment.

The hope was: if we can just make the context window large enough, we can put the entire internet in it. We can put everything in it. We don’t have to be selective. We don’t have to build agentic systems. We can fit it all in there, and AI will be solved.

Model builders started aiming at long context capabilities and we had a big leap from ~128,000-token context window models to million-token context window models, starting with Gemini 1.5.


Google's Gemini 1.5 Pro marketing graphic comparing context windows: Gemini 1.0 Pro at 32K, GPT-4 Turbo at 128K, Claude 2.1 at 200K, and Gemini 1.5 Pro at 1M, with up to 10M in research, equal to 1 hour of video, 11 hours of audio, over 30K lines of code, or over 700K words.

If you look at the marketing material for Gemini 1.5 Pro, it was mostly about the million-token context window. They were even teasing a 10-million-token context window model they had in the lab, that would come out soon.


2024: The Promise of Long Contexts. Bar chart of context windows: GPT-4o, Gemini 1.5 at 1M, and Llama 4 at 10M tokens.

But they got beaten to the punch. Llama 4 Scout came out with a 10-million-token context window, and well, it wasn’t quite what we hoped. Inference was a challenge, and Scout never really caught on, and we never got another Llama.

But we still got a million tokens. That’s pretty good. We’ll take it.


Just put everything in the context. (RAG is dead)

So this was the brief at the time: just put everything in the context and let the model sort it out.


More Context, More Problems: long contexts are not a panacea. Four failure modes: Context Poisoning, when a hallucination or error is repeatedly referenced; Context Distraction, when the model over-focuses on a long context and neglects base knowledge; Context Confusion, when superfluous information produces low-quality responses; and Context Clash, when new information and tools conflict with other information in the context.

But with more context, we had room for more problems. Long contexts are not a panacea.

When I wrote about this, I identified four key failure modes.

Context poisoning is when something gets into the context that shouldn’t be there. It could be a hallucination or a bad fact, and the model can’t get past it.

Context distraction is when the context grows so long that the model starts to focus on the context over its base knowledge. We can see this in some really interesting ways.

Context confusion is when extraneous facts—things that don’t relate to the problem I’m working on—come in and influence the model in ways we don’t fully understand. This one’s really pernicious. We’re not going to dig into it today, but it’s one of my favorite failure modes. The model makes assumptions about who you are, and those assumptions influence the answer.

Finally, context clash is when tool calls, skills, and other information within your harness start to conflict and work against you in ways you didn’t expect.

(How many of you keep memory on in ChatGPT or Claude? I turn it off. I hate it. Sometimes I’m talking about work conversations; sometimes I’m talking about a project I’m doing with my son. The model will take notes on both, mix up those contexts, and the confusion grows from there.)


Box art for Pokémon Red Version on the Game Boy, 1996, with a lemonade icon, next to Pokémon FireRed Version on the Game Boy Advance, 2004, with a tea icon.

Let me give you my favorite example of context poisoning.

I’m going to date myself: I played the game on the left. The one from 1996, for the original Game Boy. This is the first Pokémon Red. It was in black and white.

In 2004, Nintendo released Pokémon FireRed for the Game Boy Advance. These were essentially the same game, except one had better colors and audio.

But there was one subtle change. At some point in both Pokémon Reds, to get past a security guard, you have to give them something to drink. A bribe. Quite the practical lesson for children.

In the original game, you need to give the thirsty guard lemonade. In FireRed, for some reason, they changed it to iced tea.


Quote from the Gemini 2.5 Pro Technical Paper: Gemini 2.5 Pro at several points was deluded into thinking it had to retrieve the tea in order to progress, and as a result spent many, many hours attempting to find the tea or to give the guard tea. Marked with a sick-face emoji for context poisoning.

That created a problem for the agent. In the Gemini 2.5 technical report, the researchers described how they had the model play Pokémon. Researchers like Pokémon as an agent benchmark because it’s a reasonably controlled environment and doesn’t move particularly fast.

Several times, Gemini 2.5 became convinced it needed to get tea, even though it was playing the older game. The tea task for FireRed was in its weights, so it poisoned its context. It spent hours trying to find or give the guard tea. Once it had been added to its to-do list, the model could not get past it.

That’s context poisoning. And it happens all the time.


More Context, More Room for Problems: the four context failure modes, with Context Distraction highlighted. The context grows so long that the model over-focuses on the context, neglecting base knowledge.

Another failure mode is context distraction. This is one of my favorite demonstrations, and the research came out after I wrote the original piece.

As your context gets longer, how does your behavior change? Quick question: how many of you, when you’re coding, let the context go all the way to a million tokens? Fill it all up?

(About half the room raised their hands!)

Wow, that’s more than I expected.

For me, around 200,000 or 300,000 is where I start looking. I’ll check, see it’s at 250,000, and think: I’ve got a big job coming up. I’m going to reset and start fresh. Let me show you why this matters.


Diagram from Do as I Say, Not as I Do by Camassa and Shiller. The user instructs the model to translate every question into Russian, followed by example turns where the assistant answers in French, then asks how many strings a violin has. Evaluation settings cover 13 models, varying numbers of example turns, instruction-following rate, and reasoning effort.

Recently, I stumbled on a paper that wonderfully illustrates context distraction: Do as I Say, Not as I Do, by Carolina Camassa and Derek Shiller.

Their experiment is a little contrived, but it’s useful for thinking about how this happens. They give the model an instruction: “I want you to translate every question into Russian as your answer to each of my questions.” Then they present a bunch of examples that are counter to these instructions. In this case, many questions with answers in French.

These aren’t new instructions. They’re just examples sitting in the chat history.

Then they ask the model a question. Will it follow the instructions?


Heatmap of instruction-following rates across models as the number of contradictory example turns grows from 1 to 50. Strong models like Claude 4.6 Opus stay green longer, while smaller models like Gemma 3 12B, OLMo 3.1 32B, and Hermes 4 70B drop to red after only a few turns.

How often does the model respond in Russian, as it was instructed to, and how often does it respond in French, as it’s seen in the examples?

The x-axis on this matrix enumerates how many bad examples were present. The y-axis is the model being tested. The figures in the intersections are the percentage of times the model adheres to the instructions, rather than following the examples.

It turns out this affects every model! For smaller models, like Gemma 3 12B, after just a few contradictory examples, the model follows the instruction less than half the time. With Opus 4.6, which is an amazing model, it takes many more examples, but it happens there too.

Imagine you’re going back and forth on a front-end design, trying to tweak CSS and get a component exactly right. How many bad examples have you seeded in that exchange? Those examples start to influence the model. As your context grows, things fall apart.


Quote from the Gemini 2.5 Pro Technical Paper: While Gemini 2.5 Pro supports 1M+ token context, in this agentic setup, it was observed that as the context grew significantly beyond 100k tokens, the agent showed a tendency toward favoring repeating actions from its vast history rather than synthesizing novel plans.

Gemini 2.5 ran into this too, while playing Pokémon.

Remember, Google was really proud of its million-token context window. The paper suggested that two million tokens were around the corner. But buried in the appendix was this observation: once the context grew significantly beyond 100,000 tokens, the agent began repeating actions from its history instead of synthesizing new plans.

I’m convinced the marketing people never read the appendix. I love this technical report.


Long contexts lets you fit more info, & more errors.

Long contexts let you fit in more information, but they also let you fit in more errors. Long contexts weren’t a panacea.


Tactics for Context Engineering: information management is the key to effective AI usage. Six tactics: Context Augmentation, Tool Loadout, Context Quarantine, Context Pruning, Context Summarization, and Context Offloading.

Thankfully, we’ve developed a pretty good toolbox. Surprisingly, even as new challenges have emerged (we’ll get to those in a minute), this set of tools has remained the same.

These six of them.

You have context augmentation: RAG, skills, and other ways to bring in the information relevant to the problem.

You have tool loadout: selecting which tools and skills to expose so you don’t overload the model. I was recently talking to an enterprise team whose agents had suddenly started performing terribly. We investigated and discovered their enterprise software was loading 600 skills for every engineer at startup. We figured they should probably filter those, with a loadout function.

Third is context quarantine: subagents and peer agents, where you start something with a blank history but let it work in the same environment.

Fourth is context pruning. Claude Code and Codex do this, sometimes without you even noticing. Early stages of compaction often strip out tool results you no longer need.

Fifth is context offloading: storing information in the environment, such as Markdown files or a database, so you can access it later.

And sixth is context summarization, which everyone knows as compaction.

These are the tools, and we’ve increasingly moved them into the harness.


The Agent: DSPy code for a basic agent. It configures a big model, Claude Sonnet 4.5, and a small Jev decision model, defines a list of tools, creates a ReAct agent, and runs a while loop that passes the chat history back in each turn. About a dozen lines.

Let’s look at an example harness, to show how simple these patterns are.

I’m really passionate about DSPy. I think it’s an incredibly readable and effective way to build AI workflows and agents. And it’s also a great language for simply specifying behavior, so it’s well suited to this demonstration.

An agent is a while loop. Here we’re using a ReAct module: we give it a request, we want a response, and we give it some tools. Those tools are just Python functions.

For this demo we have a big model (in this case, Claude opted for Claude Sonnet 4.5, good luck with that!). And I’m using a Jev as the small model: a tiny decision model that makes lightning-fast decisions. You could swap in a small LLM in this example, and everything would still work.

We have a while loop that takes input, sends it to ReAct, and carries the accruing history forward. This is an agent in about a dozen lines using DSPy. It would be even fewer if you took out the extra model.


Tool Loadout: DSPy code where a small model picks the tools a request will actually use. A Loadout signature asks whether the agent needs a given tool for a request, and a loadout function ranks the tools and keeps the top few. The agent loop is changed to build its ReAct agent with only the selected tools.

How do we do tool loadout? It’s just a function.

We present Jev with the request and a tool, asking if it’s needed for this task.

Jev is fast enough that we can do this one tool at a time; it’ll be fine. We wrap this in a loadout function that iterates through all the tools and asks if each is needed, then returns the top-ranking subset. That’s it.


Context Quarantine: DSPy code for a delegate function that hands a self-contained subtask to a fresh agent with a clean context, then adds delegate to the main agent's tools.

With context quarantine, it’s just a subagent. You expose an agent as a tool that the main agent can use, and it starts with a blank history.


Context Pruning: DSPy code where a small model drops history turns the new request won't need. A Prune signature asks whether each past turn still earns its place in context, and the agent is called with the pruned history.

With context pruning, we’re stepping through the history, passing each turn to Jev, and asking: is this still needed? If not, cut it.

You can be as rough or as elegant as you want here. Just mind your prompt caching.


Context Summarization: DSPy code that rewrites the history into one briefing. A Rewrite signature folds past turns into a briefing a fresh agent can pick up cold, and when the history exceeds 20 messages the loop replaces it with the compacted briefing.

We can also rewrite the history with compaction. Take the old turns, create a summary, and start the new context from that summary.

One of my favorite variations lately is checking what matters before you compact. You use Jev, or another decision model, for the first pass to judge what’s relevant. Now you’ve got a smaller subset of the history, and you summarize that. It’s a simple extra step, but it makes the summary more useful.


All Together: four fixes, one loop, four lines changed. The agent loop with quarantine, loadout, pruning, and summarization each added with a single line.

Put it all together and it’s about 16 lines of changes. Four fixes, one loop. These are the moves we have in the harness. It’s actually remarkably simple.


Our language moves fast, but our goal is the same. A timeline from probabilistic to deterministic: 2023 Prompt Engineering, selecting the right words and examples to elicit desired outputs from a single model call; 2025 Context Engineering, dynamically populating the context window with the right information; 2026 Harness Engineering, designing the scaffold, orchestration, and tooling that elicits desired outputs from an agentic application.

What isn’t simple is our language: how we talk about this stuff. It’s really hard to keep pace; it changes every day.

One of my favorite quotes is from Stewart Brand, which I think about all the time:

If you want to know where the future is being made, look for where language is being invented and lawyers are congregating.

Certainly applies here! But as our language has changed, our goal has remained the same.

In 2023, we called choosing the right information to get the right response prompt engineering.

In 2025, we called it context engineering, except that now it was more automated. It wasn’t just you writing the prompt; it was your system dynamically assembling the context.

Then, as we moved more of these tools out of the context and into code, we started calling it harness engineering.

But the job is the same. We’re moving more and more of the work of assembling context from probabilistic model calls to deterministic code.


2026: The Promise of Long Horizons. Bar chart of METR long-horizon task lengths: GPT-5 at 3.4 hours and Gemini 3.1 at 6.4 hours.

I’ve shown you 2024. Let’s go to 2026.

We’ve moved these context fixes into the harness. What do we want next? We want agentic models that can drive our harnesses.

Everybody started targeting long-horizon agentic models. You’ve seen the METR reports. GPT-5 could handle tasks around 3.4 hours on that measure; Gemini 3.1 got up to 6.4 hours. That’s with a harness. The models have gotten much better at using it, and that’s how they’re able to run for so long.


2026: The Promise of Long Horizons. Bar chart of METR long-horizon task lengths: GPT-5 at 3.4 hours, Gemini 3.1 at 6.4 hours, and Opus 4.6 at 12.0 hours.

Opus 4.6 got up to around 12 hours. And now we’re talking about agents running for days, swarms of agents, and models that drive harnesses over much longer periods.


Just teach the model to drive the harness.

Before, the pitch was: make the context so large that we can fit everything in it.

Now the pitch is: teach the model to drive the harness and manage its own context. That’s become the dominant pattern. That’s what model builders are working towards.

What new failure modes does this approach create?


Persistent Agents Have a Persistence Problem: models are built to drive their harness and make customers happy. Two failure modes, with Fighting the Weights highlighted: the model won't do what you ask because you're working against what it was trained to do. Context Inertia is grayed out.

So far we’ve found two new failure modes.

When you train models to use harnesses really well, you end up overfitting them to a particular set of tools and environments they were trained within.

How many of you have used the Playwright MCP server, or something similar? This is the MCP conference, so probably quite a few.

Smaller models, something like Haiku or Luna, will often botch this tool call on the first attempt, then recover and adjust the parameters. The environment it was trained in had similar tools that looked different than Playwright. Whatever Anthropic or OpenAI used in training. And you have to fight against these biases.

I call this fighting the weights: when the model doesn’t do what you ask because you’re working against what it was trained to do.

It’s a real problem, and it’s not just for us. The labs and the people building their products have to contend with it too.


Excerpts from Claude Code's system prompt and tool instructions, each repeated several times: You can call multiple tools in a single response (7x); if there are no dependencies between calls, make all independent calls in the same response (4x); maximize use of parallel tool calls; if the user asks to run tools in parallel, you MUST send a single message with multiple tool use blocks (2x); to launch multiple agents in parallel, send a single message with multiple Task calls (3x).

Here’s a piece of the Claude Code system prompt and some of its tool instructions.

The training environments these models learned to use were, for a long time, largely serial. They’re becoming more parallel, but when I pulled these examples, their biases were towards serial behaviors. So Claude Code’s instructions repeatedly say: no, no, no, we want you to use parallelism. We want you to make multiple tool calls at the same time.

The instructions repeat this over and over—seven times here, four times there, two times, three times: please make tool calls in parallel when they’re independent.

When you crack open a prompt and see repetition and all-caps, there’s a good chance you’re fighting the weights. You’re trying to overcome something the model was trained to do.


Persistent Agents Have a Persistence Problem, with Context Inertia highlighted: models hyper-focus on a hypothesis, subtask, or goal in their context and keep pursuing it after they should stop. A table of related work: Memento from Anthropic; Fork-and-Flush by Jack Cai and Christos Ziakas at Microsoft Research; Stateless Language Agents by Qizheng Zhang at Stanford; and Scaling Discovery Requires Forgetting by Shangyin Tan at UC Berkeley.

The next problem is something we’ve only started to document recently. In fact, four parties landed on it just last week.

I call it context inertia: models hyper-focus on a hypothesis, subtask, or goal in their context, and keep pursuing it after they should stop.


Quote from Anthropic's AI model replication blog post: Memento is designed to mitigate a common failure mode we observe in long-horizon runs: an agent can become fixated on an incorrect idea and continue pursuing it instead of backtracking. One example is a Qwen agent debugging package versioning for hours when the real bug came from implementing an endpoint incompatible with the grader API.

The first example was from Anthropic. In their recent post about whether models are getting close to replicating and deploying themselves onto other machines, Anthropic wrote about a harness it used for these tests called Memento.

What they found was that if the agents ran too long, they’d become fixated on one subtask or one proposed solution and wouldn’t stop. They’d keep trying the same thing.

Their fix is delightfully simple. Every hour and a half, the agent writes down a short note, then its context is cleared. The environment is preserved. All the work it’s done is still there. But the running conversation is gone, and it has to start again from a fresh perspective.


Chart from Fork-and-Flush by Cai and Ziakas: best score so far versus compute spent for eight agent runs. Scores jump early and then flatten into long plateaus, with final scores from 68.3 to 100.

Another paper, from Microsoft Research, is called Fork-and-Flush.

If you’ve run autoresearch experiments, you’ve probably seen charts like this. You make a big gain, then the line goes flat. You make another big gain, then it’s flat again. That’s compute, money, and time going by with very little improvement.

When the researchers looked closely, the agents weren’t doing literally nothing. They were making tinier and tinier changes. They had found an idea and were hyper-focused on it, rather than searching for more creative alternatives.

In a way, they become obsessed with their own ideas. We’ve trained them to be persistent and focused on a goal, because that’s what makes a good coding agent. But the same quality can work against them.


Chart of best mean score versus total dollars spent on the AHC014 task. A team of 4 agents with forgetting, marked by three forget points, keeps climbing to 1,144,695, beating 4 parallel agents at 1,007,073 and a single agent at 961,136. The slide caption credits Fork-and-Flush.

Here’s another paper, Scaling Discovery Requires Forgetting, led by Shangyin Tan at UC Berkeley.

The researchers came up with essentially the same idea: periodically clear the context while keeping the artifacts produced in the environment.

The blue line is the version with forgetting. Every time it clears the context, you see another jump in performance: forget, improve; forget, improve.


Tactics for Context Engineering: the six tactics again, with Context Quarantine and Context Offloading highlighted.

It’s amazing that we have these brand-new models trained for increasingly complex, persistent work, and we’re still using the same basic tools. We haven’t discovered an entirely new context fix. We’re using quarantine, offloading, and deleting the accumulated history to deal with context inertia.


Meme from The IT Crowd: Roy on the phone, captioned Have you tried resetting your context?

This is the advice I keep giving now. Someone says, “My coding agent’s doing something weird. Claude’s been nerfed.” And I ask, “How big is your context?”

“Oh, I’ve got 800,000 tokens.”

Delete your context.

I’m not joking. Around 200,000 tokens is my warning point.

Have you tried resetting your context?

Sometimes that really is the fix.


Our Solutions Move the Problem: the models are getting much better, but so are our harnesses. Longer context let us bring in more information, but also bad information. Agentic models let us run longer tasks and manage their context, but also let tasks run longer than they should and ignore your preferences. Where will we move the problem next?

The solutions we build into models create tomorrow’s problems. The models are getting better, but so are our harnesses.

Longer context windows let us bring in more information, but they also let us bring in bad information. We had to figure out how to manage that, and we still get it wrong.

Agentic models let us run longer tasks and manage their context, but they also let tasks run longer than they should and ignore our preferences, because they were trained for their own harnesses.

So where will the problem move next?


2027: The Promise of ???

What’s the big promise for 2027? What’s the next thing models are going to offer that creates a new set of problems for everyone in this room to deal with?

(Unless you’re training your own models. But this is a context engineering session, so probably not.)


Our Solutions Move the Problem, with a prediction: moving state to the harness keeps models from hyper-focusing, but over time memories will become conflicted and messy.

Here’s my prediction.

Think about all the personal agents: Hermes, OpenClaw, Dot, Bot, Muse, and similar systems. Very few people have really experienced these harnesses running for more than six months.

I’ve been running a Hermes agent for six months. When you look at the skills it creates and updates, you start to discover that the solutions to your problems can get worse over time. The skills accumulate all these weird fixes. They’re general agents: they solve one task one way, then rediscover a different way to solve something similar. The instructions and memories start to build up and conflict with one another.

As we focus more on memory, we also need to think about strategic forgetting. Over time, overly precise memories become conflicted and messy, and nobody has yet figured out how to handle this.

I think that’s the context problem of tomorrow.


Every advance in model capability changes what we delegate to the model & what systems must enforce.

Every advance in model capability changes what we delegate to the model and what systems must enforce.


LLM Output is the Product of Context & Weights: output depends on the data used to train the model and the context given to the model, so effective AI use means providing the right context to the right model. To get better results: Go Big, larger models can mitigate poor contexts (expensive); Think Hard, reasoning models augment poor prompts (slow); or Improve Your Context, better contexts produce much better output.

I made this slide for a deck for training enterprise teams, about a year and a half ago, and it remains true.

Our output is the product of the context and the weights.

Our output depends on the data used to train the model. Understand it. Read the technical reports. Look at what the model was trained on and whether that’s relevant to your task. That helps you build a mental model for debugging when something goes wrong.

And our output depends on the context given to the model. That’s it.

So our goal is to give the right context to the right model. Either by our own discrete decisions or by the software, the harnesses, we design.

You can use bigger models, think harder, or improve your context. One of those is cheap and fast.


Our job is to give the right context, to the right model... by choosing where to be deterministic and where to be probabilistic.

When building intelligent applications, harnesses, and workflows, our job is to choose when to be deterministic (what to put in code) and when to be probabilistic (when to let the model drive).

The Daily Front Page 12 of 29
Sunday, October 25, 2026 The Daily Front No. #261025 — A Knight’s Workshop, Reopened
article

Tool book of a Nuremberg knight from 1505

by edwardog·▲ 164 points·83 comments·loeffelholz-codex.org ↗
Not a diary, not a family chronicle - a tool book.

The tool book of a Nuremberg knight, explored - page by page

Folio 1r of the Löffelholz Codex: the alliance coat of arms of the Löffelholz and Haug families with the year 1505

In 1505, Martin Löffelholz, a Nuremberg patrician (i.e. a member of the city's ruling families) and knight, began to put together a book. Not a diary, not a family chronicle - a tool book. He drew what occupied his mind: drills with interchangeable blades. Threads and the tools to cut them. A workbench with a vise. A swivel chair on casters. A spiral staircase that can be swung out of the way. A crossbow, taken apart into its individual parts. A cradle whose rockers are filled with mercury.

Today the book is in Kraków. It has been fully digitized and is in the public domain - and yet in more than 500 years no one has ever read it in full. There is no transcription, no edition, no translation.

That is about to change.

The Codex has 154 pages. 128 of them have been reviewed, 26 not yet.

What You Will Find Here

Each of the 154 pages gets a page of its own. Depending on how far the work has come, it has:

  • the facsimile in the best available resolution, to zoom in on
  • a heading - what is actually shown here?
  • the transcription in the original spelling, with uncertain passages marked in color
  • a reading in modern English
  • a suggested interpretation: what the object is, how it works, why it is remarkable
  • What Stands Out Today - what strikes a person of the 21st century about this page as odd, astonishing or unexpectedly modern
  • open questions and questions for craftspeople, honestly labeled as such

How Reliable Is the Information on the Folio Pages?

As reliable as it says on each page - no more and no less.

Pages without a special note have been editorially reviewed: carefully checked and corrected. We go through every page thoroughly: we examine the original drawing, the published research as far as we can find it, the transcription and the AI's suggested explanation. The goal is to understand exactly what Löffelholz drew there - and how it might have worked. The engineering background of our project lead Dirk Schornstein comes in handy here. Then we rewrite the page so that it explains the picture and how the device works in steps that are as easy to follow as possible. If a function is uncertain or cannot be determined, the page says so.

Pages with the note “raw transcription” at the very top are a first draft. An AI produced the transcription and the interpretation. I have read these pages, but I have not yet checked and corrected them line by line.

Anything read with uncertainty is marked in color. Anything that could not be deciphered is left as a gap. Interpretations are explicitly suggestions.

Nothing is presented here as certain that is not. Nothing is presented here as certain that is not. That is one of the most important rules of this project, and it has applied from the very beginning.

Contribute

This project is too big for one person. We are looking for people who

  • can read Early New High German - or would like to learn
  • know a craft: woodworkers, smiths, wood turners, gunsmiths. What kind of tool is this? Does it work like that? What is missing from the drawing?
  • want to build replicas, even if it's just a compass
  • have expert knowledge of the history of technology, manuscripts, arms and armor, hunting

Anyone who helps correct a page will be named on that page. It is not much in return, but it is the most honest thing I can offer. Feedback is always welcome - positive or negative. This site should keep getting better.

Frequently Asked Questions

What is the Löffelholz Codex?

A house book from Nuremberg, begun in 1505 by Martin Löffelholz von Kolberg: 154 pages of tools, machines, locks, weapons, hunting gear and recipes, drawn and briefly captioned. The original is held by the Biblioteka Jagiellońska in Kraków. The Codex is described in detail on loeffelholz-codex.org under “What Is the Codex?”

What language is the Löffelholz Codex written in?

In Early New High German, in the written language of Nuremberg - so it is German, but the German of 1505, with no fixed spelling. The same word can be spelled two different ways on one page, a stroke over a letter stands for an n or m, and the words of the workshop are not in any modern dictionary. This is explained in detail, with examples from the manuscript, on loeffelholz-codex.org under “What Is the Codex?”

Where is the original Löffelholz Codex kept, and can it be viewed?

In the Biblioteka Jagiellońska in Kraków, under the shelfmark Ms. Berol. germ. quart. 132. The manuscript has been fully digitized and can be viewed freely in the digitized copy of the Jagiellonian Library at jbc.bj.uj.edu.pl. Where the book comes from and how it came to Kraków is explained on loeffelholz-codex.org in the Fact Sheet

Is there a complete transcription or translation of the Löffelholz Codex?

Not a published one that we know of. There is literature on individual pages and a detailed video discussion, but no edition that reads and interprets all 154 pages. That is exactly what loeffelholz-codex.org has been building since 2026, page by page: facsimile, transcription in the original spelling, a reading in modern English and a suggested interpretation, each page with its editing status clearly stated.

Who was Martin Löffelholz von Kolberg?

A Nuremberg patrician and knight who died in 1533, and the author of the Löffelholz Codex. For 28 years he was Pfleger (warden) of the fortress of Lichtenau, and between 1507 and 1509 he was held captive for more than a year - shackles and locks take up a strikingly large share of his book. His life is described in detail on loeffelholz-codex.org under “About Martin Löffelholz”

And Now Have Fun!

I hope you enjoy exploring and are amazed by what the people of Nuremberg already knew in the early 16th century: a drill with an interchangeable chuck, an office chair on casters, the fire striker, the carabiner and much more!

The Daily Front Page 13 of 29
Sunday, October 25, 2026 The Daily Front No. #261025 — Hosting Incident Desk
article

Active incident at Dreamhost forcing password reset

by greenchair·▲ 145 points·58 comments·dreamhoststatus.com ↗
All impacted DreamHost account holders have now been emailed step-by-step instructions to reset passwords.

Service Disruption

Components: Web Services, Email Services

Locations: File Manager Interface, Email Hosting, Webmail Interface


October 25, 2026 9:32PM PDT

IDENTIFIED

All impacted DreamHost account holders have now been emailed step-by-step instructions to reset passwords for mail and FTP/SFTP users on their accounts. These users will be unable to log in until the owner of their DreamHost account resets their passwords and shares the new credentials with them. Work on restoring the File Manager at files.dreamhost.com continues. We will post an update here when it is restored. DreamHost will never email you asking for your password. Go directly to panel.dreamhost.com to make any changes.

October 25, 2026 11:43AM PDT

IDENTIFIED

The majority of emails to affected account owners with step-by-step instructions to reset passwords have been sent, and we are actively sending the remaining emails, with completion expected today. You do not need to wait for the email to reset your password. If you are the DreamHost account owner, you can set new passwords now in the DreamHost control panel at panel.dreamhost.com under “Mail > Manage Email” or “Websites > SFTP Users & Files”. Please allow up to 15 minutes for a new password to take effect. If you are an email or FTP user, please contact your account owner, who can set a new password for you. Some customers on our Professional Email service received a “Failed to edit” error when setting a new email password in the panel. That issue has been fixed. If you saw this error, please try setting a new password again. The File Manager at files.dreamhost.com remains unavailable while we continue to work on this issue. We will post an update here when it is restored. Reminder: DreamHost will never email you asking for your password. Go directly to panel.dreamhost.com to make any changes.

October 24, 2026 6:09PM PDT

IDENTIFIED

Emails to affected account owners with step-by-step instructions have began going out and will continue in batches over the next few hours. You do not need to wait for the email: if you are the DreamHost account owner, you can set new passwords now in the DreamHost control panel at panel.dreamhost.com under Mail > Manage Email or Websites > SFTP Users & Files. Please allow up to 15 minutes for a new password to take effect. If you are an email or FTP user, please contact your account owner, who can set a new password for you. We will never email you asking for your password, and our notification will not ask you to log in through a link. If you receive a password reset email you did not request, please ignore it.

October 24, 2026 10:37AM PDT

IDENTIFIED

The password reset for affected email and FTP/SFTP users is complete. Account owners can set new passwords now in the DreamHost control panel at panel.dreamhost.com; there is no need to wait for our email. Please allow up to 15 minutes for a new password to take effect before the user signs in. We are also emailing affected account owners with step-by-step instructions. Those emails are being sent in batches and may take a few hours to arrive. As a reminder, we will never email you asking for your password, and our notification will not ask you to log in through a link. To change any password, go directly to panel.dreamhost.com. If you receive a password reset email you did not request, you can ignore it.

October 24, 2026 12:25AM PDT

IDENTIFIED

Our team is continuing to work on this overnight. Password resets for affected email and FTP/SFTP users are in progress, and we will email affected account owners with the steps to set new passwords as each group is completed. Please continue to wait for that email before changing passwords yourself. If you haven't heard from us, no action is needed.

October 23, 2026 10:13PM PDT

IDENTIFIED

We're working on an issue affecting some of our systems, including FTP/SFTP access and webmail. As a precaution, we are resetting passwords for some email and FTP/SFTP users. If you're affected, we will email you with the steps to set new passwords in the DreamHost panel. Please wait for that email before changing any passwords yourself, since changes made before our reset is complete will be overwritten. If you haven't heard from us, no action is needed right now. A reminder: we will never email you asking for your password, and our notification won't ask you to log in through a link. To change any password, go directly to panel.dreamhost.com. If you receive a password reset email you didn't request, you can ignore it.

October 23, 2026 8:01PM PDT

INVESTIGATING

We are continuing our investigation and will be sending updates shortly. Thank you for your patience.

October 23, 2026 5:20PM PDT

INVESTIGATING

We are investigating an incident affecting several of our services. While we work on it, the panel File Manager (files.dreamhost.com) is offline, and some webmail users have been signed out or may see an error when logging in. As a precaution, we are resetting the passwords of some email accounts. If yours was reset, webmail and your email apps (Outlook, Apple Mail, your phone) will stop accepting the old password. The account owner can set a new one from the Manage Email page in the DreamHost panel: https://help.dreamhost.com/hc/en-us/articles/216479177-Change-password-Mail-users We will never email you asking for your password. To change a password, log in to the DreamHost panel directly at panel.dreamhost.com rather than following a link in an email. If you receive a password reset email you did not request, you can ignore it. We will post our next update here by 8pm Pacific, sooner if we have more to share.

October 23, 2026 2:20PM PDT

INVESTIGATING

Our Operations team is currently investigating connectivity issues affecting the File Manager interface. We’re working to identify the cause and will share updates as soon as we have more information. We’re sorry for the disruption and appreciate your patience.

The Daily Front Page 14 of 29
Sunday, October 25, 2026 The Daily Front No. #261025 — How Animation Gets Made
article

What goes into making an animated film?

by embedding-shape·▲ 138 points·62 comments·disneyanimation.com ↗
Each department works together to bring us the big picture.

Zootopia 2 Chase visual development

Filmmaking Process

Zootopia 2 parade visual development

What goes into making an animated film?

Each department works together to bring us the big picture. From sequence to shot to frame, the film comes together through the deep collaboration between everyone at the studio.

An animated film is approximately 90 minutes long.

Zootopia 2 has a total run time of 97 minutes and 30 seconds.

A film is composed of many sequences.

Sequence image Sequence image Sequence image Sequence image Sequence image Sequence image Sequence image Sequence image Sequence image Sequence image Sequence image Sequence image Sequence image Sequence image Sequence image Sequence image Sequence image Sequence image Sequence image Sequence image Sequence image Sequence image Sequence image Sequence image Sequence image Sequence image Sequence image Sequence image Sequence image Sequence image Sequence image Sequence image Sequence image Sequence image Sequence image Sequence image Sequence image Sequence image Sequence image Sequence image Sequence image

Each sequence is approximately 1 to 7 minutes long.

Zootopia 2 had 41 sequences that ranged from 37 seconds to 6 minutes.

Each sequence is made up of many shots.

Shot image Shot image Shot image Shot image Shot image Shot image Shot image Shot image Shot image Shot image Shot image Shot image Shot image Shot image Shot image

Shot image Shot image Shot image Shot image Shot image Shot image Shot image Shot image Shot image Shot image Shot image Shot image Shot image Shot image Shot image

Shot image Shot image Shot image Shot image Shot image Shot image Shot image Shot image Shot image Shot image Shot image Shot image Shot image Shot image Shot image

Shot image Shot image Shot image Shot image Shot image Shot image Shot image Shot image Shot image Shot image Shot image Shot image Shot image Shot image Shot image

Shot image Shot image Shot image Shot image Shot image Shot image Shot image Shot image Shot image Shot image Shot image Shot image Shot image Shot image Shot image

A shot, which is one camera setup, is typically 0 to 30 seconds long.

Hot Pursuit contains 80 shots and is 2 minutes and 22 seconds long.

Frame image Frame image Frame image Frame image Frame image Frame image Frame image Frame image Frame image Frame image Frame image Frame image Frame image Frame image Frame image Frame image Frame image Frame image Frame image Frame image Frame image Frame image Frame image Frame image

There are 24 frames in one second of animation.

Each frame is on screen for approximately 0.04 seconds.

Zootopia 2 had 144,355 frames.

Stereo 3D accounts for a left eye and right eye to create depth.

Click on the image below to toggle between the left eye and right eye images.

Left eye image Right eye image

There are 288,710 total frames rendered for Stereo 3D.

Nick & Judy storyboard

Nick & Judy final frame

From storyboard to final frame, each film takes an average of three to five years to create what you see on screen.

And it all starts with an idea.

Development Developing the idea

Our filmmaking process begins in Development, where our storytellers begin to craft the narrative, and our artists define the look of the characters and worlds.

Zootopia 2 Research Trip

Creative Development Development

Zootopia 2 Storyboard

Story Development

Zootopia 2 visual development

Visual Development Development

Zootopia 2 editorial

Shaping the Story

Editorial and Sound teams piece together evolving story ideas, guiding production.

Research & Experiences

In preparation for and throughout production, the Production Training and Development team provides education in filmmaking, art, storytelling, and tools through experiences, classes, lectures, workshops, field trips and screenings.

Drawing Class

Recording Studio

Finding the Voices

Breathing life into our characters through the perfect actors.

Exploring our Legacy

The Walt Disney Animation Research Library is home to over 65,000,000 assets from Disney Animation's nearly hundred-year history, and is a resource for our artists and filmmakers to explore throughout production.

Animation Research Library collection

Building the Foundation

Technology is at the basis of all things created within our pipeline. Through an empathetic approach, Technologists work to design and build working environments that enable artists to do their best work.

Asset Creation Entering the third dimension

Once development is on track, our artists turn our visual development and concept drawings into three-dimensional characters and environments by creating the models, rigs, and textures that define the look of the world being created.

Production Management

Keeping it on Track

Great communicators, strategists, and organizers, Production Management is quick to respond to ever-changing schedules.

Zootopia 2 Car Model

Modeling Asset Creation

Zootopia 2 look development

Look Development Asset Creation

Mayor Winddancer Visual Development

Strategizing Solutions

Stewards of the pipeline, Technical Directors solve problems and tackle new and interesting challenges through a combination of tool building, support, and software development.

Nick & Judy Rig

Rigging Asset Creation

Nick & Judy Simulation

Simulation Asset Creation

Zootopia 2 Layout

Layout Asset Creation

Crafting Next Generation Workflows

The partnership between Art and Technology is behind the best of what we create. Through close working relationships between our artists and technologists, we develop groundbreaking tools and workflows that allow us to explore ways we can optimize the creation process.

Shot Production Putting it together, frame by frame

Once our characters have been crafted and our environments realized, we begin the process of creating the scenes that will comprise our movie. Shot Production includes the work of many animators and technicians who bring sequences to life in everything from a character’s acting to the fine details in their hair, clothing and the world.

Zootopia 2 Layout

Layout Shot Production

Zootopia 2 animation

Animation Shot Production

https://cdn.disneyanimation.com/uploads/process_steps/shot-production-zootopia-2/Zootopia2_Process_TechAnimation_Thumbnail_04.jpg

Technical Animation & Character Effects Shot Production

Higher Quality, Faster Iterations

Disney Animation’s Technology teams have created a best-in-class shot development experience. Their focus is not only the ease of data access and collaboration, but also the safety and security of our data. With the artist in mind, technologies are introduced or improved upon to enable higher quality visualization and faster iteration of the final, rendered shot.

Zootopia 2 set extension

Set Extension Shot Production

Zootopia 2 crash effects

Effects Animation Shot Production

Zootopia 2 crowds

Crowds Animation Shot Production

Zootopia 2 lighting

Lighting Shot Production

Zootopia 2 stereo

Stereo Shot Production

Zootopia 2 Zebra Visual Development

Zootopia 2 color timing

The Finishing Touches

Shaping the film through final delivery of picture and sound.

Archiving

When a production wraps, the art and assets created for our films are organized and archived so the Walt Disney Animation Research Library can make them available to the entire Walt Disney Company for inspiration and reference.

Bringing It All Together

And finally, through the deep collaboration between Production, Technology, and with the support of everyone on the Studio Teams, our compelling characters come together with their imaginative worlds, to tell the universal stories that become part of our films at Walt Disney Animation Studios.

Zootopia 2: Now playing in theaters.

The Daily Front Page 15 of 29
Sunday, October 25, 2026 The Daily Front No. #261025 — Porting at 60 Frames
article

F-Zero X on Nintendo 3DS

by bpierre·▲ 114 points·56 comments·hypnotize.works ↗
The console went from a black screen to a native-60 stereoscopic renderer.

A post-mortem of porting G-Diffuser, the F-Zero X decompilation, to the Nintendo 3DS — v1.0.0, covering both the original 24-day sprint that put it on a New 3DS at 60 fps in 3D (2026-08-11 to 09-03) and the 43-day second phase that added Old 3DS support, a native renderer, and the Expansion Kit (2026-09-07 to 10-19). One person directed throughout; one long-lived Claude session orchestrated; 147 subagents built the first phase and many more carried the second.

The console went from a black screen to a native-60 stereoscopic racer, then from a New-3DS-only build to a four-way release covering both consoles with and without the 64DD expansion.

59.6fps

median on hardware, full Grand Prix, New 3DS, end of the first phase (from 12–20 fps in the first emulator race)

51.4fps

tenth-percentile floor in 30-machine crowds, first phase (from 25–35)

53%

of frames at the 60 cap, first phase (from 14% one week earlier)

15

active days across the first phase's 24 calendar days, three pauses when the weekly plan allowance ran out

3.17 B

tokens across all sessions and agents, first phase only; see Cost

$4,974

at published API list prices (Fable $10/$50 per MTok, 1-hour cache writes), first phase only; see Cost

250

commits touching the 3DS port in the first phase, frozen 2026-10-08 from the v0.9.0 docs — not re-verified against final history

15,039

lines under port/3ds plus 48 pure-delta patches, first-phase count

What v1.0.0 added

3

released console builds from one source tree: Old 3DS, New 3DS, and New 3DS with the Expansion Kit

199

internal progress notes written during the second phase

43days

calendar span of the second phase, 2026-09-07 to 10-19 inclusive

The tiles above are dated. The first phase's hardware numbers and token/cost figures were measured through 2026-09-03 and have not been re-run for v1.0.0; the Agentic workflow page describes how the second phase was run, and the Cost page is explicit about what it does and does not price.

On hardware

v1.0 on a New 3DS: Select Mode with the Expansion Kit entries, the G-DIFFUSER idle view on the bottom screen

v1.0, New 3DS: the Expansion Kit's Select Mode (COURSE EDIT, CREATE MACHINE); the bottom screen is DASH's idle view.

v1.0 on a New 3DS: a race on the top screen, the DASH race dashboard on the bottom

v1.0, New 3DS, mid-race: DASH on the bottom screen with energy, position, lap times and the course map.

The clips and photos below are from v0.9 (2026-09), before DASH replaced the debug console on the bottom screen.

open clip

v0.9: Grand Prix on a New 3DS. The bottom screen is the port's debug menu: 59.8 fps, heap, build id.

open clip

v0.9: handheld, mid-race. Native 60 Hz pacing; no interpolation.

F-Zero X title screen on the New 3DS

Title screen, launched from the Homebrew Launcher (.3dsx).

Select Mode screen

Select Mode.

Select Machine screen

Select Machine.

Blue Falcon stats

Blue Falcon.

What was built

Three released console builds from one source tree, all booting from the HOME menu (.cia) or the homebrew launcher (.3dsx): the base game for Old 3DS / 2DS and for New 3DS / New 2DS XL, and a New 3DS build with the 64DD Expansion Kit (course editor and machine creator, playable with a user-supplied disk image). Every build reads prebaked asset archives from the SD card — no ROM or disk image ever ships with the game.

They play the whole game: Grand Prix, Time Trial, Practice, Death Race, and the machine editor screens, with music and effects on the real DSP, stereoscopic 3D on the slider, a bottom-screen dashboard with three HUD layouts and an idle view outside races, and clean HOME suspend, resume, close, lid sleep and power-off. The New 3DS build keeps the native-60 frame pacing the first phase reached; the Old 3DS build gets to a comparable result by a different route. At v1.0.0, with no ini, both builds default to that same route: the native renderer ([perf] preset = auto). The New 3DS's first-phase render-thread/per-draw-stereo path is still built in and reachable with an explicit ini, but is no longer the default — see Frontier and Pushing the boundaries for the two builds compared side by side.

The stack

  • decomp: the F-Zero X decompilation (inspectredc/fzerox), untouched upstream, plus a patch stack.
  • libultraship: the N64 runtime (Kenix3), untouched upstream, including a 13-line newlib fix that lets it build on devkitARM; it still draws every menu and non-race screen.
  • port/3ds: 15,039 lines as of the first phase, since grown: a citro3d rendering backend, stereo, audio, input, menu, lifecycle, render thread, profilers, packaging.
  • the native renderer (added in the second phase): an owned interpreter that skips the per-frame display-list walk for race geometry, and is the v1.0.0 default on both consoles — see Frontier for how, and why it is what lets the Old 3DS keep up.

The headline numbers on hardware, first phase (New 3DS)

The first phase in five lines

  1. 08-11 → 08-14: from research to a race. Feasibility dossier, plan for a team of agents, five parallel foundation streams, six boot bugs, first race at 12–20 fps in the emulator.
  2. 08-20 → 08-22: from pink to playable, then to a real console. Fog, HUD, livery, shadow, sky fixed; the loadblock discovery took menus from 27 to 60 fps; first hardware run 08-21 ("wow it runs amazing"); audio the same evening.
  3. 08-27 → 08-28: product grade. Five-agent fleet drop, stereo armed, touch menu, rival detail, GPU vertex-transform moonshot built and shelved, README with legal notice, release package.
  4. 09-01 → 09-02: lifecycle and the last big lever. HOME crash and close-from-HOME hang fixed; a bridge output cache proven a NO-GO and replaced by memoizing each sub-display-list's classification instead of re-scanning it every frame; LOCKED-60 campaign launched with four parallel levers.
  5. 09-02 → 09-03: multi-core. Render thread on core 2, one-frame-ahead mode, bridge on main, auto LOD; median 59.6 with 53% of frames at cap; crash fixed; viewport placement fixed; stereo markers anchored.

The second phase in six lines

Not originally planned; it ran 09-07 to 10-19, 43 calendar days.

  1. 09-07 → 09-29: scoping, then making it fit. The Old 3DS milestone, previously written off, was restarted; parallel agents fit the build into its 64 MB app region (the RDRAM arena halved, audio streamed instead of resident, texture uploads capped); on 2026-09-29, in the first hardware session on a real Old 3DS, the shipped (New-3DS-era, 16 MiB RDRAM) build died at boot while the -DGDX_3DS_O3DS=ON profile, built to fit the console's memory grant, booted and raced the same session at about 10 fps.
  2. 09-29 → 09-30: finding the real costs. A narrowed audio lock cut the race-wall wait on the Old 3DS by about 20 ms a frame; frame skipping ended the game's accidental slow motion; a first retained-mode renderer won big in the emulator and barely moved the number on hardware.
  3. 09-30 → 10-01: the probe that changed the plan. Hardware performance counters showed the real limit was instruction-cache misses, not instruction count. A pose-replay fallback was built and worked, then was set aside on the user's call: "we should go for a real 60! i still believe it has to be possible."
  4. 10-01 → 10-02: the native renderer. Rebuilt around the cache instead of around instruction counts, one small loop per race category, sized to fit the 16 KB instruction cache. Median frame time on a 2D Grand Prix race reached 16.5 ms.
  5. 10-03 → 10-08: 3D at 60, on the Old 3DS too. A per-eye resubmit with its own swap-pacing mode reached 59–60 fps in 3D on most Grand Prix courses; the heaviest courses (Silence, Sand Ocean) can still trip the frame-skip safety net to a steady 30 fps mid-race.
  6. 10-08 → 10-19: the Expansion Kit, a dashboard, and release. The 64DD Expansion Kit verified tick-for-tick identical under the native renderer and booted on the Old 3DS, which then proved too slow to release it on; the bottom-screen DASH shipped; a standing adversarial review audited the merged result before the v1.0.0 release.

See Agentic workflow for how the second phase was run and Old 3DS for the full campaign, card by card.

The Daily Front Page 16 of 29
Sunday, October 25, 2026 The Daily Front No. #261025 — Censorship, Platforms & the Street
article

Meta employees say Lula’s accounts restricted in Brazil election: Report

by nidnogg·▲ 181 points·139 comments·aljazeera.com ↗

The messages, reported by a Brazilian daily, say the platform recommended Bolsonaro’s profile and his WhatsApp channel.

Brazil's President and re-election candidate Luiz Inacio Lula da Silva is seen on mobile phone and camera screens as he speaks during a meeting with current and newly elected lawmakers at a hotel in Brasilia on October 7, 2026. (Photo by Evaristo Sa / AFP)

Brazil's President Luiz Inacio Lula da Silva will face challenger Senator Flavio Bolsonaro in a presidential election runoff on October 25 [File: Evaristo Sa/AFP]

Employees at Meta have acknowledged in internal communications that the Instagram accounts of Brazilian President Luiz Inacio Lula da Silva were negatively affected by restrictions during the country’s election, media reports say.

The messages, reported on Friday by Brazilian daily Folha de S Paulo, also acknowledged the platform recommended the profile of Lula challenger Senator Flavio Bolsonaro, as well as his WhatsApp channel. Folha, the Sao Paulo-based paper, cited messages it had reviewed.

Meta told the Reuters news agency that the technical issues cited in the report were already public and the conversations it referenced related solely to the severity of the issues, not political interference.

“Any suggestion that Meta favors one side is false,” it added in a statement.

Lula, the left-wing incumbent, will face right-wing challenger Bolsonaro in a presidential runoff on October 25, following a stronger-than-expected performance by the senator in the first-round vote earlier this month.

Friday’s report came on the heels of a Brazilian court ruling on Thursday that ordered Meta to immediately adopt measures to provide equal treatment of the two candidates ahead of the runoff.

The ruling by a judge in Brazil’s top electoral court was made shortly after Lula filed a complaint that accused the tech giant – which owns Instagram, Facebook and WhatsApp – of using biased algorithms and AI restrictions to favour opposition candidate Bolsonaro ahead of the election.

Justice Marco Aurelio Bellizze ruled that Meta cannot reduce the distribution of political content, restrict searches or remove posts in a way that creates an imbalance between Lula and Bolsonaro. His ruling also orders the company to ensure its artificial intelligence tool applies identical criteria to both candidacies.

Bellizze said in his ruling that Meta must pay a fine of 500,000 reais ($98,700) per day if it fails to comply.

According to Lula’s party, some of his posts appeared without a share button and had reduced reach. Options for reactions, sharing, audio or accelerated speed were also missing.

The Daily Front Page 17 of 29
Sunday, October 25, 2026 The Daily Front No. #261025 — Censorship, Platforms & the Street
article

France asked ISPs to prepare temporary DNS blocks for major social platforms

by noplay·▲ 152 points·179 comments·blast-info.fr ↗

Information exclusive Blast : Le premier ministre a préparé la coupure des réseaux sociaux pour le 24 octobre

Deux jours avant la manifestation du 24 octobre, le Premier ministre Sébastien Lecornu a demandé à Orange, SFR, Free et Bouygues Telecom de se tenir prêts à couper l’accès à TikTok, Instagram ,Snapchat et X. Blast révèle la lettre et le compte rendu de la réunion qui a suivi, où les opérateurs ont exprimé leurs doutes. Le gouvernement avait déjà utilisée cette mesure liberticide en Nouvelle-Calédonie en 2024, avant d’être désavoué par le Conseil d’État.

article

Online censorship is crushing indie webcomics

by Tomte·▲ 124 points·108 comments·xtramagazine.com ↗

From social media platforms to payment processors, new restrictions are making it harder for webcomic artists to exist

Credit: Hazel and Bell; Celina Gallarado

Webcomic artists Hazel & Bell have shared their work online for years. But new algorithms and restrictions from payment providers are making sharing queer stories online even harder. This comic is part of Comics Against Censorship, a five-part series of original comics tackling the history, impact and fight against LGBTQ2S+ censorship. Read the full series here.

The Daily Front Page 18 of 29
Sunday, October 25, 2026 The Daily Front No. #261025 — Models, Methods & Markets
repository

Five Qwen3.8-27B models match Fable 5 Using GVS5H Harness

by rzk·▲ 184 points·74 comments·github.com ↗
★ 1,015⑂ 113 forks Python

GVS5H: Five Qwen3.8-27B Models Match Claude Fable 5 on LiveCodeBench Hard | Fable 5 Level Coding for a Fifth the Price - or on a Single GPU

GVS5H: Gorilla vs. 5 Humans

Five boys standing on one another's shoulders, together as tall as a single gorilla beside them

Results

Accuracy on LiveCodeBench, single call versus with manager, for seven models against Claude Fable 5's single-call score

Opus 5 ran on an earlier version of the scaffold, in a single pass served through OpenRouter rather than five on a pinned backend.

Average cost per task against accuracy, single call versus with manager, on a log-scale cost axis

What one pass costs — LCB-100, 5 passes, single call vs manager, against Fable 5

Abstract. Frontier coding performance is typically bought with larger proprietary models at high cost. We introduce ledger-based zero-shot self-orchestration, a training-free method in which fresh instances of one model decompose problems and coordinate through a shared filesystem holding a plan, notes and current solution. Across eleven open and closed-weight models on the 100 latest hard LiveCodeBench problems, the method yields gains of up to 25.6 percentage points on pinned backends and offers two routes to frontier-level accuracy. Orchestrated Qwen3.8 Flash Next reaches 93.0% pass@1 against Fable 5's 90.4% at 9% of the cost, and locally served, open-weight Qwen3.8-27B rises from 66.8% to 92.4%. Gains are not universal: some models are unchanged or worse. Transcript analysis attributes the gain to decomposition and persistent context. Inference-time organization can approach frontier coding accuracy at a fraction of the cost, or slightly exceed it on self-hostable weights.

— the paper

Running the code

Needs uv and an API key for the model you want to test.

cd codebase/v2-current
export OPENAI_API_KEY=...

LCB_RELEASE=release_v6 \
ESCALATION_CLOUD_MAX_TOKENS=128000 \
ESCALATION_CLOUD_TIMEOUT=7200 \
MULTIAGENT_MODEL=openai:gpt-5.6-terra \
uv run --no-project --python 3.12 --with 'datasets<4' --with numpy --with anthropic \
  python escalation/run_bench.py --engine multiagent --only lcb --lcb 100 --parallel 8
  • --engine multiagent runs the manager; --engine single is the one-call baseline.
  • Other models: anthropic:<model>, dashscope:<model>, openrouter:<model>, each with its own *_API_KEY.
  • The pass@1 score prints at the end. Results are written to runs/results.json, workspaces to runs/ws/.

License

Code is under the MIT License. The paper, figures and run data are under CC BY 4.0. The LiveCodeBench fork, the benchmark problem statements and the LaTeX template files keep their own licenses. See NOTICE.md for which license covers which path.

The Daily Front Page 19 of 29
Sunday, October 25, 2026 The Daily Front No. #261025 — Models, Methods & Markets
article

Attention Is Not What You Need (2025)

by westurner·▲ 103 points·37 comments·arxiv.org ↗

Abstract

We revisit a basic question in sequence modeling: is explicit self-attention actually necessary for strong performance and reasoning? We argue that standard multi-head attention is best seen as a form of tensor lifting: hidden vectors are mapped into a high-dimensional space of pairwise interactions, and learning proceeds by constraining this lifted tensor through gradient descent. This mechanism is extremely expressive but mathematically opaque, because after many layers it becomes very hard to describe the model with a small family of explicit invariants.

To explore an alternative, we propose an attention-free architecture based on Grassmann flows. Instead of forming an L by L attention matrix, our Causal Grassmann layer (i) linearly reduces token states, (ii) encodes local token pairs as two-dimensional subspaces on a Grassmann manifold via Plucker coordinates, and (iii) fuses these geometric features back into the hidden states through gated mixing. Information therefore propagates by controlled deformations of low-rank subspaces over multi-scale local windows, so the core computation lives on a finite-dimensional manifold rather than in an unstructured tensor space.

On the Wikitext-2 language modeling benchmark, purely Grassmann-based models with 13 to 18 million parameters achieve validation perplexities within about 10 to 15 percent of size-matched Transformers. On the SNLI natural language inference task, a Grassmann-Plucker head on top of DistilBERT slightly outperforms a Transformer head, with best validation and test accuracies of 0.8550 and 0.8538 compared to 0.8545 and 0.8511. We analyze the complexity of Grassmann mixing, show linear scaling in sequence length for fixed rank, and argue that such manifold-based designs offer a more structured route toward geometric and invariant-based interpretations of neural reasoning.

show hn

Show HN: I put employees inside S&P 500 market-cap bubbles

by vfxGer·▲ 173 points·47 comments·bigwhalehunting.com ↗

Big Whale in a Suit

Big Whale Hunting: Market Cap vs. Employees,

Each bubble is an S&P 500 company, its area proportional to its market capitalization as of , grouped by sector. Inside it, one stick figure stands for employees, so a bubble crowded with small figures is worth little per worker and a big bubble with a handful of figures is worth a lot. Every figure is the same size, so how densely a bubble is filled shows its employees per dollar of market cap.

Only companies with at least employees and a market cap of at least are shown ( of the S&P 500), plus a few big companies with fewer employees, such as Palantir and Welltower, drawn as one half-size figure. Employee counts are full-time staff from each company's latest annual report, so they lag up to a year. Click a company for its details; scroll or pinch to zoom in on the small ones.

The Daily Front Page 20 of 29
Sunday, October 25, 2026 The Daily Front No. #261025 — Machines We Keep
repository

fheroes2: A recreation of Heroes of Might and Magic II game engine

by tosh·▲ 206 points·71 comments·github.com ↗
★ 3,674⑂ 516 forks C++

fheroes2 is a recreation of Heroes of Might and Magic II game engine

fheroes2 is a recreation of the Heroes of Might and Magic II game engine.

This open source multiplatform project, written from scratch, is designed to reproduce the original game with significant improvements in gameplay, graphics and logic (including support for high-resolution graphics, improved AI, numerous fixes and user interface improvements), breathing new life into one of the most addictive turn-based strategy games.

You can find a complete list of all of our changes and enhancements in this page.

Screenshot of the world map

Screenshot of the battle screen Screenshot of the castle screen

Download and Install

Please follow the installation guide to download and install fheroes2.

Github Downloads

Copyright

All rights for the original game and its resources belong to former The 3DO Company. These rights were transferred to Ubisoft. We do not encourage and do not support any form of illegal usage of the original game. We strongly advise to purchase the original game on GOG or Ubisoft Store platforms. Alternatively, you can download a free demo version of the game. Please refer to the installation guide for more information.

License

This project is licensed under the GNU General Public License v2.0.

Initially, the project was developed on sourceforge.

Contribution and Development

This repository is a place for everyone. If you want to contribute, please read more to learn how you can contribute.

Developing fheroes2 engine

To build the project from source, please follow this guide.

Build Status Bugs Code Smells Duplicated Lines (%)

To assist with the graphical asset efforts of the project, please look at our graphical artist guide.

If you would like to help translating the project, please read the translation guide.

Developing fheroes2 documentation site

To build the website from source, please follow this guide.

Donation

We accept donations via Patreon, PayPal or Boosty. All donations will be used only for the future project development as we do not consider this project as a source of income by any means.

Patreon Donate Paypal Donate Boosty Donate

Contacts

Follow us on social networks: Facebook or VK. We also have a Discord server to discuss the development of the project.

Facebook VK Discord

Frequently Asked Questions (FAQ)

You can find answers to the most commonly asked questions on our F.A.Q. page.

The Daily Front Page 21 of 29
Sunday, October 25, 2026 The Daily Front No. #261025 — Machines We Keep
show hn

Show HN: A Truly Modular Keyboard

by NotARoomba·▲ 143 points·42 comments·github.com ↗

A truly modular keyboard with rearrangeable keys, magnetic cases and Bluetooth!

KiCad STM32 RISC-V Onshape Blender

Keybytes

Video Demo

keybytes-demo.mp4

Key Features

  • Rearrangeable layout where every key is its own 1u PCB
  • CH32V003 RISC-V microcontroller on every key
  • STM32WB55RGV6 main board with Bluetooth and USB
  • Pogo pins on all 4 sides of every key for power and I2C
  • Magnetic cases to hold the modules together
  • Key programming from the main board over pogo pins
  • 2MB QSPI flash (W25Q16JV) to store the key firmware
  • Battery charging with the BQ25895 and solder pads for a 1S LiPo
  • Buck-Boost converter (TPS631000)
  • RGB status LED
  • USB-C with ESD protection
  • Ceramic Bluetooth antenna

PCB

Designed in KiCad! There are two boards, the Keybit and the Keyword, and both are 1u (19.05mm x 19.05mm).

Keybit

A single key with a Cherry MX switch and a CH32V003. Every side has pogo pins for 3.3V, GND and I2C so it can connect to the keyword or to other keybits, and the pads on the corners are for programming.

Schematic:

Keybit Schematic

Layout:

Keybit Layout

Keyword

The main board that the keybits connect to. It is split into two PCBs that stack on top of each other. The top one has the STM32WB55RGV6, the antenna and the flash, and the bottom one has the USB-C, the charger and the buck-boost converter. The 3 pogo pins on the top are for programming the keybits.

Schematic:

Keyword Schematic

Layout:

Keyword Layout

3D View:

Keyword 3D View

Keyword 3D View

Case

Custom designed cases in Onshape, the STEP files are in the cad folder.

Keybit and Keyword cases assembled in Onshape

Credits

This project uses:

License

MIT

The Daily Front Page 22 of 29
Sunday, October 25, 2026 The Daily Front No. #261025 — Machines We Keep
article

Proton Flock Camera Map

by cdrnsf·▲ 108 points·20 comments·proton.me ↗

You have a right to know who's recording you when you leave home, especially when a private company controls the data and it's unclear how law enforcement uses that information. This map lets you search by ZIP code to see where Flock's license plate readers are located. Use it, make informed decisions about how you move through your own area and whether you need to reach out to your municipal leaders.

What a Flock camera records

A Flock camera photographs each vehicle that passes it, whether or not the driver is suspected of anything. It logs the plate, time, and location. Flock's Vehicle Fingerprint feature also records the make, model, and color, plus details like dents and bumper stickers, so a car can be found even without a readable plate.

Those records go into Flock's cloud, where police departments can search them and share them with other agencies across city and state lines. Flock says its network processes more than 20 billion vehicle reads a month across 49 states.

That kind of broad access leaves much room for misuse and abuse. A Washington Post review found at least 50 officers accused or charged with misusing license plate readers, often to follow people in their personal lives; Flock's system was involved in 46 of those cases. We asked Flock's CEO, Garrett Langley, how the company responds to misuse and who controls the data its devices collect.

Where the Flock map data comes from

The device locations on this Flock camera map come from independent research by cybersecurity researcher Joshua Michael. We don't host or distribute the underlying dataset.

In November 2025, Michael found that Flock's servers publicly exposed an access token anyone could obtain without logging in. He reported the issue to Flock, then published his findings and his own map in December. His inventory lists more than 170,000 cameras and over 130,000 other Flock devices. Flock has publicly cited around 120,000 cameras, so the actual camera count is about 40% higher.

Frequently asked questions about the Flock camera map

What is a Flock camera?

A Flock camera is an automated license plate reader made by Flock Safety. It photographs passing vehicles, reads their plates, and logs where and when each car was seen. Police departments and other customers can search those records.

How do I find Flock cameras near me?

Enter your zip code in the search bar above the map. The map zooms to your area and shows every camera in the dataset there. You can also zoom and pan to explore any neighborhood in the US.

Where does this map's data come from?

The data on the map above is a mirror of an inventory of Flock devices that security researcher Joshua Michael retrieved from Flock's own systems through an access token Flock had left exposed. Maps like DeFlock rely on volunteers reporting cameras they spot; this inventory comes from Flock's records.

Is this Flock camera map complete?

No. The data is a snapshot from December 2025. Devices installed or removed since then won't be reflected.

The Daily Front Page 23 of 29
Sunday, October 25, 2026 The Daily Front No. #261025 — Screens That Watch Back
The Daily Front Page 24 of 29
Sunday, October 25, 2026 The Daily Front No. #261025 — Screens That Watch Back
article

Nikon photography contest winner loses title after scientists spot signs of AI

by thunderbong·▲ 139 points·77 comments·techspot.com ↗

Microscopic structures appearing from nowhere were among the clues that raised suspicions

Nikon photography contest winner loses title after scientists spot telltale signs of AI-generated footage

A hot potato: It seems that the once-popular trend of entering AI-generated content in competitions made for humans hasn't gone away. The winner of one of the world's most prestigious scientific photography awards has just had his title stripped from him after his entry was determined to have been created using AI.

Nikon's 16th annual Small World in Motion contest is open to any movie or digital time-lapse photography taken through the microscope.

This year's winner was Dr. Ning Xu, from Tsinghua University in China, whose video captured tiny cilia beating in the airways of a child with primary ciliary dyskinesia, a rare respiratory disorder.

But Xu's entry raised several concerns among members of the scientific community. Some researchers said there were abnormalities in the structure and size of the cells and that their features appeared and disappeared in a way not seen in cellular biology.

One associate professor at the University of Florida said some of the structures "pop in and out of existence" and the cilia "appear from nowhere," which are classic indications that a video was AI-generated.

A more damning discovery came from PhD student Ian Donovan at UT Southwestern Medical Center, who said the source image appeared to contain a distinctive watermark indicating it had been AI-generated. Two former competition judges also raised concerns about the clip's legitimacy.

In a now-deleted LinkedIn post, Xu admitted to using AI in the video, but he said it was only used to "distinguish and visualize features in the reconstructed grayscale images from the super-resolution optical imaging" during post-processing.

He added that AI had not been used to generate the video itself, the cilia, or their movement.

Xu insists that he has not broken competition rules. While enhancing the visibility of microscopic structures is common and allowed, researchers typically use techniques such as applying stains and dyes to the samples themselves.

However, Xu's explanation doesn't account for the abnormalities found in his video. Some scientists said the doubts could have been removed if Xu had shared the RAW grayscale video.

An investigation by Nikon found that Xu had violated the competition's rules, and he was subsequently stripped of his prize. The top spot has instead been awarded to Nguyen Nam Nhat of Vietnam, who entered a video of a tiny roundworm and a single-celled organism.

Following the incident, Nikon said in a statement that it plans to "revisit rules and evaluation procedures for future competition entries."

We've seen several examples of AI-generated images being entered into, and sometimes winning, art competitions going back years. A Midjourney image won a category in Colorado State Fair's annual art competition in 2022, while another creation won a photography contest hosted by Australian photo retailer digiDirect in 2023.

There was also the case of an artist who won a category in the 2023 Sony World Photography Awards but refused his prize because his image (below) was AI-generated – something that seems quite obvious these days.

In a more satisfying story from 2024, a man who won a digital art competition using an AI-generated image and was thoroughly unapologetic about it complained that people had started stealing his "work" and he couldn't copyright it.

The Daily Front Page 25 of 29
Sunday, October 25, 2026 The Daily Front No. #261025 — Screens That Watch Back
The Daily Front Page 26 of 29
Sunday, October 25, 2026 The Daily Front No. #261025 — In Brief
article

Dolly Parton's Imagination Library

by jumploops·▲ 534 points·93 comments·imaginationlibrary.com ↗

Dolly Parton’s Imagination Library is dedicated to inspiring a love of reading by gifting books free of charge to children from birth to age five, through funding shared by Dolly Parton and local community partners in the United States, Canada, United Kingdom, Australia and Republic of Ireland.

Inspired by her father’s inability to read and write Dolly started her Imagination Library in 1995 for the children within her home county. Today, her program spans five countries and gifts millions of free books each month to children around the world.

“When I was growing up in the hills of East Tennessee, I knew my dreams would come true. I know there are children in your community with their own dreams. They dream of becoming a doctor or an inventor or a minister. Who knows, maybe there is a little girl whose dream is to be a writer and singer.

The seeds of these dreams are often found in books and the seeds you help plant in your community can grow across the world.”

In 1995, Dolly Parton launched an exciting new effort, Dolly Parton’s Imagination Library, to benefit the children of her home county in East Tennessee, USA. Dolly’s vision was to foster a love of reading among her county’s preschool children and their families by providing them with the gift of a specially selected book each month.

By mailing high quality, age-appropriate books directly to their homes, she wanted children to be excited about books and to feel the magic that books can create. Moreover, she could ensure that every child would have books, regardless of their family’s income

There is simply no limit on how far we can take this program and to what ends of the earth, but it is an absolute impossibility without your help. If your community or a community that you are aware of doesn’t yet offer this proven early childhood literacy program, then we challenge you to Get Involved! It’s actually quite easy to bring the Imagination Library to life in your community and we have an onslaught of available resources to help you Start A Program including a personal trainer which we like to call “Regional and State Directors” So come on, you can do it, follow this link to get a simple checklist of what you need to do to Get Onboard Dolly Parton’s Imagination Library.

The Daily Front Page 27 of 29
Sunday, October 25, 2026 The Daily Front No. #261025 — Also on the Front Page
The Daily Front Page 28 of 29
Sunday, October 25, 2026 The Daily Front No. #261025 — Colophon

That's the Front for Today

Issue No. #261025 — Sunday, October 25, 2026 — went to press 2026-10-26 at 09:16 UTC.

About This Magazine

The Daily Front is a daily digital magazine assembled from the stories that reached the front page of Hacker News on Sunday, October 25, 2026. Headlines, points, and comment counts are recorded as they stood at press time. All articles remain the property of their original authors — every piece links back to its source and its discussion thread.

How It Was Made

Fetched, cleaned, and typeset by an automated pipeline. An editor model laid out the pages and chose the highlights; a second read a handful of the day's stories and briefed the cover illustrator — 32 model calls and 211k tokens in total. Set in Jacquard 12, Playfair Display, Source Serif 4, and IBM Plex Mono, all served via Google Fonts under the SIL Open Font License.

The Cover

The cover illustration was commissioned with this prompt:

In a dermatologist’s exam room, a patient sits while the specialist leans toward a magnifying dermoscope pressed to a small dark lesion on the outer ear. Beside the clinician, a monitor shows two magnified views of the same irregular spot: one ordinary clinical photograph, one revealing its fine, uneven texture. On a counter, an old compact computer quietly marks the lesion as dangerous, while two sleek voice-assistant devices remain silent nearby. Through the open doorway, rows of wafer-thin silicon plates carry a model too large for any single machine.

Render the full exam-room encounter in a wide, handheld-documentary frame, unmistakably as an ’80s VHS sci-fi broadcast: cool horizontal scanlines, soft magnetic color bleed, slight analog wobble, and restrained sodium-orange highlights against a deliberate palette of icy cyan, deep navy, and orange. Keep every figure, device, display, and doorway relationship legible in the same continuous view.

Absolutely no text, letters, numbers, readable symbols, or logos anywhere in the image. Keep the main image subject primarily below the upper 10% of the composition, where a title may be overlaid; the scene may extend naturally underneath that title area.

Production Ledger

StageModelCallsTokens InTokens Out
extractgpt-5.6-luna 28 129,966 57,100
layoutgpt-5.6-terra 1 18,642 2,089
covergpt-6-luna 2 1,719 199
covergpt-image-2.5-flare 1 249 1,372

The Publisher

Published by Johnny.

Support the Press

If The Daily Front brightens your morning, consider supporting its publisher.

Credits & Contact

All content — articles, posts, comments, and the images within them — belongs to its original authors and is reproduced here to point readers back to the source. Full credit goes to those creators; every item links to its original and its Hacker News discussion.

If you are an author and would like your content removed from an issue, write to hi@johnnys.page and it will be taken down.

Feedback is always welcome at the same address: hi@johnnys.page.

Credit where credit is due.

Every page of this issue began as someone else's work — these are the original sources, linked in full.

  1. A 10-year-old CNN outperforms frontier LLMs for skin cancer diagnosis by sungam — lynchlab.net·HN discussion ↗
  2. Meta Ignores Brazilian Court Order to End Bolsonaro Favoritism by vrganj — panamericandispatch.org·HN discussion ↗
  3. I refuse to accept a censored Internet. Join Me at FOSDEM 27 by Tomte — talkweb.eu·HN discussion ↗
  4. Oregon Police Are Charging a Local News Outlet $2.5M for Records About One Cop by tdeck — theintercept.com·HN discussion ↗
  5. Cerebras Deploys Trillion-Parameter AI Models by gmays — cerebras.ai·HN discussion ↗
  6. OpenAI and Anthropic cut their LLM prices by up to 80% within a few months. Why? by minimaxir — minimaxir.com·HN discussion ↗
  7. Why I Am a Programmer by jruohonen — alfie.wtf·HN discussion ↗
  8. JetBrains Thinkrail by hmokiguess — github.com·HN discussion ↗
  9. Moderna and Merck say their mRNA cancer vaccine cut death, recurrence by 42% by _Microft — arstechnica.com·HN discussion ↗
  10. The State of Context Engineering by pchristensen — dbreunig.com·HN discussion ↗
  11. Tool book of a Nuremberg knight from 1505 by edwardog — loeffelholz-codex.org·HN discussion ↗
  12. Active incident at Dreamhost forcing password reset by greenchair — dreamhoststatus.com·HN discussion ↗
  13. What goes into making an animated film? by embedding-shape — disneyanimation.com·HN discussion ↗
  14. F-Zero X on Nintendo 3DS by bpierre — hypnotize.works·HN discussion ↗
  15. Meta employees say Lula’s accounts restricted in Brazil election: Report by nidnogg — aljazeera.com·HN discussion ↗
  16. France asked ISPs to prepare temporary DNS blocks for major social platforms by noplay — blast-info.fr·HN discussion ↗
  17. Online censorship is crushing indie webcomics by Tomte — xtramagazine.com·HN discussion ↗
  18. Five Qwen3.8-27B models match Fable 5 Using GVS5H Harness by rzk — github.com·HN discussion ↗
  19. Attention Is Not What You Need (2025) by westurner — arxiv.org·HN discussion ↗
  20. Show HN: I put employees inside S&P 500 market-cap bubbles by vfxGer — bigwhalehunting.com·HN discussion ↗
  21. fheroes2: A recreation of Heroes of Might and Magic II game engine by tosh — github.com·HN discussion ↗
  22. Show HN: A Truly Modular Keyboard by NotARoomba — github.com·HN discussion ↗
  23. Proton Flock Camera Map by cdrnsf — proton.me·HN discussion ↗
  24. Samsung running a TensorFlow lite model on 960x540 image to track you by mashally — twitter.com·HN discussion ↗
  25. Samsung TVs look for microphones in your house via Bluetooth and then spy events by taubek — twitter.com·HN discussion ↗
  26. Nikon photography contest winner loses title after scientists spot signs of AI by thunderbong — techspot.com·HN discussion ↗
  27. Imagine an AI future where being banned means you are now economically useless by MrBuddyCasino — twitter.com·HN discussion ↗
  28. Dolly Parton's Imagination Library by jumploops — imaginationlibrary.com·HN discussion ↗
  29. Serbia's Vucic concedes election defeat in historic win for student movement by consumer451 — reuters.com·HN discussion ↗
  30. AI use leads UC Berkeley math professor to see 'no point' in grading homework by romanhn — dailycal.org·HN discussion ↗

Browse all issues in the archive →