10 interesting stories served every morning and every evening.

Stolen Buttons

anatolyzenkov.com

Every web­site I visit, I steal” a but­ton from it. Check out my stash!

About Button Stealer

Ghosted After a Job Interview? Report the Company

didtheyghostyou.com

Open-weight AI is having its Kubernetes moment. Let's not ruin it.

tobi.knaup.me

Open-weight mod­els are be­com­ing the foun­da­tion for the next AI ecosys­tem. The US should com­pete in it, not wall it­self off.

I have seen a ver­sion of this story be­fore.

In 2013 I co-founded Mesosphere, an open source cloud-na­tive soft­ware com­pany. We built on Apache Mesos, which my co-founder Ben Hindman had helped cre­ate at UC Berkeley. We later built DC/OS (Data Center Operating System) around Mesos, re­leased it as open source, and com­mer­cial­ized it through an en­ter­prise dis­tri­b­u­tion with sup­port and pro­pri­etary fea­tures.

After sev­eral years of mas­sive growth, Kubernetes dis­rupted us. It was newer, fully open source, and it quickly gal­va­nized the cloud-na­tive com­mu­nity. Many of the world’s best dis­trib­uted-sys­tems and in­fra­struc­ture en­gi­neers bet their ca­reers on it, and even some of our most loyal com­mu­nity mem­bers changed horses.

Once that hap­pened, in­no­va­tion moved to Kubernetes. Whatever the plat­form was miss­ing, some­one started build­ing: net­work­ing, stor­age, ob­serv­abil­ity, de­ploy­ment tools, pol­icy en­gines. A large num­ber of star­tups were cre­ated, and legacy ven­dors joined in as well. Almost every com­po­nent re­quired to run Kubernetes in pro­duc­tion be­came avail­able as open source. Cloud providers and com­pa­nies in­clud­ing Mesosphere/D2iQ, Rancher, Red Hat and Nutanix then built busi­nesses around in­te­gra­tion, en­ter­prise fea­tures, sup­port and op­er­a­tions.

Kubernetes did not win sim­ply be­cause its repos­i­tory was pub­lic. It be­came a neu­tral sub­strate that en­gi­neers, cloud providers and en­ter­prise ven­dors could all ex­tend to fit their cus­tomers’ needs. Common in­ter­faces and ven­dor-neu­tral gov­er­nance gave every­one con­fi­dence that they could build on it.

The les­son I took away was­n’t that open source al­ways wins. It was that once an open plat­form that peo­ple can cus­tomize be­comes the in­dus­try’s cen­ter of grav­ity, no sin­gle ven­dor can match the com­bined rate of in­no­va­tion around it.

I think AI is ap­proach­ing the same point.

Open weights turn a model into a plat­form

First, a ter­mi­nol­ogy note. Most mod­els we ca­su­ally call open source” are more ac­cu­rately de­scribed as open-weight. You can down­load and mod­ify the trained pa­ra­me­ters, but the train­ing data and com­plete train­ing process usu­ally aren’t avail­able. That falls short of the Open Source Initiative’s de­f­i­n­i­tion of open source AI. The dis­tinc­tion mat­ters. It does­n’t, how­ever, pre­vent an ecosys­tem from form­ing around the ar­ti­fact peo­ple can run and mod­ify.

The Kubernetes anal­ogy is­n’t per­fect. Kubernetes con­trib­u­tors could in­spect and change the ac­tual source, and im­prove­ments could flow back into a shared up­stream pro­ject. Model fine-tunes usu­ally don’t work that way. Frontier weights may be down­load­able but still re­quire ex­pen­sive hard­ware, and there is no AI equiv­a­lent of the CNCF pro­vid­ing neu­tral gov­er­nance and com­mon in­ter­faces. Those are real dif­fer­ences. The com­mon mech­a­nism is that a suf­fi­ciently ca­pa­ble, portable sub­strate can at­tract com­ple­men­tary in­no­va­tion far be­yond what its orig­i­nal cre­ator could build alone.

The first rea­son to use open-weight mod­els was self-host­ing. Companies wanted con­trol over their data. They wanted to run mod­els in their own cloud or data cen­ter. And as us­age and in­fer­ence costs grow, they in­creas­ingly want con­trol over cost as well.

That de­mand pro­duced a healthy open source serv­ing stack: vLLM, SGLang, llama.cpp, Ollama, MLX and oth­ers.

But self-host­ing is only the be­gin­ning. Open weights turn the model it­self into some­thing de­vel­op­ers can adapt and re­dis­trib­ute. Hugging Face now hosts more than two mil­lion pub­lic mod­els. Around pop­u­lar fam­i­lies such as Qwen and Gemma, de­vel­op­ers pro­duce:

quan­tized and con­verted weights for dif­fer­ent sil­i­con ar­chi­tec­tures and scale;

fine-tunes and LoRA adapters for cod­ing, med­i­cine, law, math and agen­tic work­flows;

model merges that com­bine dif­fer­ent fine-tunes;

adap­ta­tions for run­times such as TensorRT-LLM, vLLM, MLX and oth­ers.

Until re­cently, it was easy to dis­miss this ac­tiv­ity at the fron­tier. Open mod­els were use­ful, but the base mod­els weren’t good enough for the hard­est cod­ing and agen­tic tasks. That gap is nar­row­ing quickly. Z.ai has re­leased GLM-5.2 with pub­lic weights un­der an MIT li­cense. Its own eval­u­a­tion re­ports 62.1% on SWE-bench Pro ver­sus 58.6% for GPT-5.5, al­though re­sults vary across bench­marks and agent har­nesses.

Moonshot says Kimi K3 ap­proaches the closed fron­tier on long-hori­zon cod­ing and has promised to pub­lish its weights on July 27. Artificial Analysis sup­ports the per­for­mance claim, scor­ing it along­side Opus 4.8 and GPT-5.5 in its in­de­pen­dent eval­u­a­tion.

Once the base model is good enough, the ecosys­tem can com­pound. I ex­pect new pro­jects around agent run­times, cod­ing har­nesses, sand­boxes, eval­u­a­tions, ob­serv­abil­ity and spe­cial­ized fine-tunes. Together they can be­come a pro­duc­tion-grade stack: an open-weight model run­ning on open source soft­ware, cus­tomiz­able for a team’s work­load, hard­ware and eco­nom­ics.

Will that stack beat every closed model on every bench­mark? Probably not. But I would not bet on any sin­gle ven­dor out-in­no­vat­ing the com­bined open ecosys­tem over time. Frontier tech­nol­ogy is a tal­ent war, and open ecosys­tems give tal­ented peo­ple every­where a rea­son to build on the same foun­da­tion.

Banning Chinese mod­els would be an own goal

This brings us to the cur­rent de­bate in Washington. After the re­lease of Kimi K3 and other ca­pa­ble Chinese mod­els, the Trump ad­min­is­tra­tion is re­port­edly con­sid­er­ing re­stric­tions on Chinese open-weight mod­els. The ex­act form of a po­ten­tial ban re­mains un­clear.

A broad ban on American re­searchers and com­pa­nies us­ing Chinese open-weight mod­els would do some­thing else en­tirely. It would cut the US off from an ecosys­tem that is al­ready at­tract­ing many of the world’s best AI re­searchers and en­gi­neers, in­clud­ing a large num­ber of Chinese re­searchers. The rest of the world would keep build­ing. American de­vel­op­ers would be the ones locked out.

We’ve seen this dy­namic with Qwen al­ready. Hugging Face re­ports that Chinese mod­els ac­counted for 41% of model down­loads over the past year. If the best open-weight foun­da­tion mod­els in­creas­ingly come from China, in­no­va­tion will ac­cu­mu­late around them in the same way it ac­cu­mu­lated around Kubernetes.

How the US should com­pete

The US should com­pete in that ecosys­tem, not re­treat from it.

Release fron­tier-grade American mod­els

American labs need to re­lease fron­tier-grade open-weight mod­els un­der li­censes that star­tups can ac­tu­ally build on. There has been progress. NVIDIAs Nemotron mod­els are com­mer­cially us­able un­der NVIDIAs own per­mis­sive li­cense. Thinking Machines re­leased Inkling un­der Apache 2.0, as did OpenAI with gpt-oss and Google with Gemma 4. But OpenAI’s and Google’s strongest mod­els re­main closed, as do those from most American fron­tier labs.

Use pro­cure­ment to cre­ate an open mar­ket

The gov­ern­ment should use pro­cure­ment to cre­ate de­mand for portable, in­ter­op­er­a­ble sys­tems rather than per­ma­nent de­pen­dence on one API ven­dor. The Department of Defense has done this be­fore. Platform One pro­vides open source tools and en­ter­prise prod­ucts that dif­fer­ent mil­i­tary pro­grams can build on. The same play­book can ac­cel­er­ate in­no­va­tion around open-weight mod­els.

Build the rest of the stack

American com­pa­nies need to build the rest of the stack. Startups can cus­tomize and ex­tend the mod­els, em­bed them into prod­ucts, and pro­vide the serv­ing, tool­ing, sup­port and op­er­a­tional lay­ers. Our lead­ing sil­i­con com­pa­nies will keep im­prov­ing the hard­ware. Hyperscalers and neo­clouds can serve the mod­els and their ecosys­tems.

Set stan­dards in­stead of ban­ning mod­els

Safety is the strongest ar­gu­ment for re­stric­tions, but a blan­ket ban is too blunt and would sac­ri­fice ac­cess to the en­tire ecosys­tem. A bet­ter ap­proach is in­de­pen­dent test­ing and stan­dards for fron­tier mod­els. The anal­ogy is­n’t ex­act: Kubernetes con­for­mance tests com­pat­i­bil­ity, not safety. But the gov­er­nance model is use­ful. Demis Hassabis has pro­posed a US-led in­de­pen­dent stan­dards body along those lines.

America should not re­spond to open Chinese mod­els by build­ing a wall around its own de­vel­op­ers. We should run the mod­els our­selves, tear them apart, bench­mark them, im­prove on them and build bet­ter American al­ter­na­tives. Then we should make the American stack the eas­i­est one in the world to adopt.

The United States has spent decades at­tract­ing the world’s best tech­ni­cal tal­ent and giv­ing it room to build. Turning that ad­van­tage into a walled gar­den while the rest of the world stan­dard­izes on a more open stack would be a spec­tac­u­lar own goal. We would be giv­ing up our role as the AI leader by choice.

Zero roadkill as Amazon canopy bridges secure 15,000 crossings

news.mongabay.com

Project Reconecta in­stalled eight rope bridges in a mu­nic­i­pal­ity in Brazil, and a 15-month study used cam­era traps to doc­u­ment thou­sands of ar­bo­real wildlife adapt­ing to new aer­ial cross­ings.

Safe road pas­sages en­able seed dis­per­sal and gene di­ver­sity, re­vers­ing the domino ef­fect” of bio­di­ver­sity loss that be­gins when high­ways split habi­tats.

Reconecta’s cre­ator, bi­ol­o­gist Fernanda Abra, a National Geographic Explorer and win­ner of the Whitley Award, is now ex­pand­ing these low-cost con­ser­va­tion tools to other Brazilian bio­mes and neigh­bor­ing Suriname.

Brazil’s fed­eral trans­port de­part­ment has of­fi­cially des­ig­nated the rope bridge de­sign as the rec­om­mended na­tional stan­dard for high­ways to curb the mil­lions of wildlife deaths recorded on roads an­nu­ally.

Around 7 a.m., with dense fog blan­ket­ing the land­scape, bi­ol­o­gist Gabriel Falquetto had al­ready come across sev­eral road-killed an­i­mals along ES-164 high­way in Brazil’s Espírito Santo state. He was on his way to Kaetés Private Natural Heritage Reserve (RPPN), in the Atlantic Forest, where he mon­i­tors wildlife and road­kill in the re­gion.

Suddenly, he spot­ted the life­less body of a pri­mate on the pave­ment. It was a buffy-headed mar­moset (Callithrix flav­i­ceps), a species listed as crit­i­cally en­dan­gered on the International Union for Conservation of Nature (IUCN) Red List. An es­ti­mated 2,500 in­di­vid­u­als re­main in the wild, mak­ing it one of the world’s most threat­ened pri­mates.

It was ex­tremely painful and dis­cour­ag­ing,” Falquetto told Mongabay. We travel through this re­gion every day mon­i­tor­ing wildlife, and we cel­e­brate every en­counter with groups of buffy-headed mar­mosets in the for­est.”

Finding an in­di­vid­ual in those con­di­tions brings a feel­ing of sad­ness and help­less­ness. Beyond the loss of that an­i­mal, the in­ci­dent re­minds us of the im­pacts our ac­tiv­i­ties have on bio­di­ver­sity.”

About 2,900 kilo­me­ters (1,800 miles) away, on the road that leads to Alta Floresta, a small Amazon town in the far north of Mato Grosso state, cases like the buffy-headed mar­moset’s road­kill have not been recorded since 2024. That year, eight canopy bridges were in­stalled, con­nect­ing frag­mented for­est patches. Camera trap footage re­vealed that, over 15 months, the aer­ial wildlife cross­ings en­abled 15,000 safe cross­ings by ar­bo­real an­i­mals — and not a sin­gle road­kill.

The bridges are part of a pro­gram in­volv­ing Projeto Reconecta and the mu­nic­i­pal gov­ern­ment, along with lo­cal or­ga­ni­za­tions and busi­ness own­ers who are ea­ger to con­serve the unique bio­di­ver­sity of their town and pro­mote eco­tourism, but were alarmed by the grow­ing num­ber of wildlife-ve­hi­cle col­li­sions.

Biologist Fernanda Abra, an as­so­ci­ate re­searcher at the Smithsonian National Zoo and Conservation Biology Institute in the U.S., and the founder of Reconecta, re­called that just hours be­fore in­stalling the first bridges in Alta Floresta, she found two Schneider’s mar­mosets (Mico schnei­deri) dead. The species is en­demic to the Brazilian Amazon and is threat­ened with ex­tinc­tion.

A canopy bridge serves two pur­poses,” Abra said. The first is to im­prove con­nec­tiv­ity for wildlife, al­low­ing an­i­mals to move from one side to the other in these frag­mented for­est ar­eas. As a re­sult, we also re­duce road­kill.”

All bridges have two cam­era traps, one fac­ing the cross­ing to record which an­i­mals are us­ing it and an­other fac­ing the for­est to ob­serve which an­i­mals ar­rive there but de­cide not to use it.

Among the pri­mate species recorded us­ing the bridges dur­ing the first months of the pro­gram were the black-faced black spi­der mon­key (Ateles chamek), the Purus red howler mon­key (Alouatta pu­ru­en­sis), the north­ern night mon­key (Aotus in­fu­la­tus), the tufted ca­puchin (Sapajus apella), Schneider’s mar­moset and the Alta Floresta titi mon­key (Plecturocebus grovesi).

Described only in 2019 and soon af­ter clas­si­fied as crit­i­cally en­dan­gered, the Alta Floresta titi mon­key has be­come the sym­bol of the ini­tia­tive, which is now en­ter­ing a new phase thanks to its pos­i­tive re­sults.

In August, we will in­stall eight more bridges in the city’s ur­ban area,” Abra said. The only dif­fer­ence is that the elec­tric util­ity will first need to lower the power lines and in­su­late them so that if an­i­mals jump from the bridge onto the wires, they won’t be elec­tro­cuted.”

Bridge use in­creases over time

The pro­ject un­der­way in Alta Floresta is not Reconecta’s first. In 2021, work­ing along­side the Waimiri-Atroari Indigenous peo­ple, the team in­stalled 32 canopy bridges over BR-174, the high­way that crosses both their ter­ri­tory and the Amazon be­tween the Brazilian states of Amazonas and Roraima.

The Waimiri-Atroari helped Abra iden­tify the best lo­ca­tions for the ar­ti­fi­cial bridges. Over the past five years, cam­eras mounted on the bridge poles have doc­u­mented about 1,250 pri­mate cross­ings, in­clud­ing the golden-handed tamarin (Saguinus mi­das), a species that is not strictly ar­bo­real and of­ten de­scends to the ground in search of food, mak­ing it par­tic­u­larly vul­ner­a­ble to road­kill.

The out­comes of the BR-174 pro­ject have been in­cred­i­ble. We were able to test dif­fer­ent bridge de­signs to find out which ones the an­i­mals pre­fer,” Abra said.

After years of work­ing along Brazilian high­ways, the bi­ol­o­gist had al­ways sought a so­lu­tion that was sim­ple, low-cost and durable. The cur­rent bridge fea­tures a mul­ti­layer de­sign that ac­com­mo­dates pri­mates with dif­fer­ent modes of lo­co­mo­tion — from species that rely on their pre­hen­sile tails to move through the canopy to brachi­at­ing species such as spi­der mon­keys, which swing us­ing their arms, both of which are com­mon in the Amazon, as well as species that sim­ply walk across the net­work of crossed ropes. It is worth not­ing that other small ter­res­trial mam­mals, in­clud­ing opos­sums, sloths and mouse opos­sums, have also been recorded us­ing the bridges.

Abra said it is im­por­tant to keep in mind that this is a long-term pro­ject, and re­sults are not al­ways im­me­di­ate. BR-174 was built in the 1970s, and an­i­mals take time to adapt to a new cross­ing al­ter­na­tive. Reconecta’s mon­i­tor­ing has shown that use of the struc­tures in­creases over time.

Very of­ten, our sense of ur­gency in con­ser­va­tion does­n’t take into ac­count the tim­ing of the im­pact,” she said.

In Alta Floresta, tufted ca­puchins took seven months be­fore us­ing one of the bridges for the first time, which may in­di­cate that each species has its own pace of adap­ta­tion.

Species dis­ap­pear, forests de­cline

Home to the world’s great­est di­ver­sity of pri­mates, Brazil also has the world’s fourth-largest road net­work — a deadly com­bi­na­tion for an­i­mals liv­ing along for­est edges that have been split apart to make way for high­ways.

From our hu­man per­spec­tive, roads mean con­nec­tion and de­vel­op­ment. But for wildlife, they rep­re­sent dis­con­nec­tion, bar­ri­ers and a threat to sur­vival,” Abra said.

Nearly 9 mil­lion mam­mals are killed on Brazil’s roads every year, a 2022 study found. A data com­pi­la­tion pub­lished in the jour­nal Nature in 2025 also found that the coun­try ranks among those with the high­est mor­tal­ity rates of ter­res­trial ver­te­brates killed in road­kills.

Habitat loss is one of the main dri­vers of pop­u­la­tion de­clines, es­pe­cially among threat­ened species, but the im­pact of road­kill is still greatly un­der­es­ti­mated,” pri­ma­tol­o­gist Fabiano Rodrigues de Melo, a pro­fes­sor at the Federal University of Viçosa in Minas Gerais, told Mongabay.

Beyond road­kills, high­ways bring con­fine­ment to fauna.

When pop­u­la­tions be­come iso­lated, they grow smaller and more vul­ner­a­ble to threats,” said Amely Branquinho Martins, an en­vi­ron­men­tal an­a­lyst at the ICMBio, Brazil’s fed­eral agency for con­ser­va­tion units, and co­or­di­na­tor of the Brazilian Biodiversity Genomics (GBB) pro­ject.

One of those threats is in­breed­ing, which oc­curs when closely re­lated in­di­vid­u­als re­pro­duce. Habitat loss and degra­da­tion can pre­vent an in­di­vid­ual from one pop­u­la­tion from mi­grat­ing to an­other — what we call gene flow. Without it, the species’ ge­netic di­ver­sity de­clines.”

The con­se­quences con­tinue to mul­ti­ply in a domino ef­fect, Melo said. The loss of pri­mates, es­pe­cially fruit-eat­ing species, can al­ter for­est com­po­si­tion, be­cause they play a key role in seed dis­per­sal and even con­tribute to pol­li­na­tion.

A whole net­work of eco­log­i­cal in­ter­ac­tions is ul­ti­mately lost with the dis­ap­pear­ance of these species,” Melo said.

Reconecta ex­pands

One of the hopes for re­duc­ing wildlife road­kill is the pas­sage of a bill cur­rently un­der con­sid­er­a­tion in Brazil’s Congress that would es­tab­lish the National Road Safety Plan for Wildlife, which calls, among other mea­sures, for the place­ment of wildlife warn­ing signs, speed-re­duc­tion de­vices and the con­struc­tion of over­passes, aer­ial cross­ings and un­der­passes along high­ways.

The bill has al­ready been ap­proved by the Chamber of Deputies and is now await­ing a vote in the Senate.

If ap­proved, the canopy bridge model de­vel­oped by Reconecta could be im­ple­mented na­tion­wide. In 2026, Brazil’s National Department of Transport Infrastructure des­ig­nated the de­sign as the rec­om­mended stan­dard for high­ways.

In ad­di­tion to Reconecta ex­pan­sion re­sults, Abra’s ef­forts to pro­tect pri­mates have earned in­ter­na­tional recog­ni­tion. In 2019, she re­ceived the Future For Nature Award, fol­lowed by the Whitley Award in 2024, of­ten re­ferred to as the Oscars of en­vi­ron­men­tal con­ser­va­tion. In June, she was also named one of the re­cip­i­ents of the 2026 Wayfinder Award, join­ing the se­lect group of National Geographic Explorers, who re­ceive fund­ing from the or­ga­ni­za­tion for their pro­jects.

The sup­port comes at the right time, as Abra plans to ex­pand Reconecta, in­clud­ing new chap­ters in Suriname and Lucas do Rio Verde, a mu­nic­i­pal­ity in Brazil, which will in­stall 10 canopy bridges.

Abra also hopes to bring her canopy bridges to other bio­mes, in­clud­ing the Pantanal and the Atlantic Forest, help­ing pre­vent the deaths of mon­keys such as the buffy-headed mar­moset.

Expectations are es­pe­cially high for bridges over BR-262, one of Brazil’s longest high­ways, which cuts across the Pantanal and is known as the highway of death.” The road kills ap­prox­i­mately 2,000 an­i­mals every year.

I en­vi­sion a fu­ture with Reconecta Biomes. We al­ready have Reconecta Amazon, and we’ll soon launch Reconecta Pantanal. I also see canopy bridges in the Atlantic Forest for the pri­mates that live there, in­clud­ing muriquis and howler mon­keys, which are both highly threat­ened,” she said.

She stressed that for this vi­sion to suc­ceed, the con­tin­ued en­gage­ment of gov­ern­ment agen­cies, pri­vate com­pa­nies and lo­cal com­mu­ni­ties will be es­sen­tial, just as it was in Alta Floresta and the Waimiri-Atroari Indigenous Territory. When every­one is in­volved, every­one val­ues the ini­tia­tive and works harder to make it suc­ceed.”

Banner im­age: A black-faced black spi­der mon­key (Ateles chamek) cross­ing one of the mul­ti­lay­ered bridges. Image cour­tesy of Sergio Leal.

How ef­fec­tive are canopy bridges re­ally?

How ef­fec­tive are canopy bridges re­ally?

FEEDBACK: Use this form to send a mes­sage to the au­thor of this post. If you want to post a pub­lic com­ment, you can do that at the bot­tom of the page.

The new rules of context engineering for Claude 5 generation models

claude.com

Then and now

There were a num­ber of pre­vi­ous con­text en­gi­neer­ing best prac­tices that had be­come myths. Including:.

Then: Give Claude rules

Now: Let Claude use judge­ment

When we first rolled out Claude Code, we needed to be sure that Claude avoided worst case sce­nar­ios, such as delet­ing files. This meant we would give par­tic­u­larly strong guid­ance that might not al­ways be true, For ex­am­ple, in the sys­tem prompt we used to say:

In code: de­fault to writ­ing no com­ments. Never write multi-para­graph doc­strings or multi-line com­ment blocks — one short line max. Don’t cre­ate plan­ning, de­ci­sion, or analy­sis doc­u­ments un­less the user asks for them — work from con­ver­sa­tion con­text, not in­ter­me­di­ate files.

But for a cer­tain sub­set of prompts, this guid­ance would be wrong. In the case of doc­u­men­ta­tion, the user may have their own pref­er­ences, or spe­cific parts of very com­plex code might need multi-line com­ment blocks.

Still, with­out these guardrails for older mod­els, the com­ments Claude wrote would be in­cor­rect in many cases and we had to ac­cept this trade­off. But newer mod­els have bet­ter judge­ment and can han­dle these de­ci­sions well with­out ex­plicit rules.

In the new sys­tem prompt we say: Write code that reads like the sur­round­ing code: match its com­ment den­sity, nam­ing, and id­iom.

Then: Give Claude ex­am­ples

Now: Design in­ter­faces

The num­ber one rule for tool us­age was to give Claude ex­am­ples on how to use them. With our newest mod­els, we’ve found that giv­ing ex­am­ples ac­tu­ally con­strains them to a cer­tain ex­plo­ration space.

Instead of us­ing ex­am­ples, think more about the de­sign of your tools, scripts and files- what pa­ra­me­ters does Claude have and how can they be more ex­pres­sive?

For ex­am­ple, in the Todo tool ex­am­ple, just list­ing sta­tus as an enu­mer­a­tion be­tween pend­ing, in­_progress, and com­pleted, hints to Claude about how to use it. The in­struc­tion on keep­ing one item in­_progress helps de­fine our re­quested be­hav­ior.

Then: Put it all up­front

Now: Use pro­gres­sive dis­clo­sure

Because Claude Code was fo­cused on cod­ing, our sys­tem prompt in­cluded de­tailed in­for­ma­tion on how to do code re­view and ver­i­fi­ca­tion. These were not al­ways needed, but when they were, it was cru­cial in­for­ma­tion.

Since then, Claude Code has got­ten very com­pe­tent at us­ing pro­gres­sive dis­clo­sure- load­ing the right con­text at the right times. For ex­am­ple, we moved ver­i­fi­ca­tion and code re­view into their own skills that Claude Code could se­lec­tively call.

But pro­gres­sive dis­clo­sure is not just for skills, we also use it for tools. Some of our tools are deferred load­ing,’ which means the agent must search for their full de­f­i­n­i­tions us­ing ToolSearch be­fore us­ing them. This al­lows us to have more tools (such as our Task tools) that don’t take up con­text un­til they’re needed.

The same can be ap­plied to your own CLAUDE.md and Skill.md files. A com­mon myth is that you want to make these a cen­tral repos­i­tory for every known prac­tice that you might run into, be­cause Claude would not find it oth­er­wise. Instead, con­sider hav­ing a tree of files that can be loaded at the right time.

Then: Repeat your­self

Now: Simple tool de­scrip­tions

Earlier Claude mod­els could some­times need re­peated in­struc­tions or be more likely to lis­ten to in­struc­tions at the end of their con­text win­dow than at the start. This meant our sys­tem prompt would some­times have ref­er­ences to tools in the main sys­tem prompt as well as in­struc­tions in the tool de­scrip­tion.

We found we could delete these re­peat ex­am­ples and put in­struc­tions on how to use tools in the tool de­scrip­tions rather than the sys­tem prompt.

Then: Memory in CLAUDE.md files

Now: Auto-memory

We used to en­cour­age users to save things to Claude’s mem­ory, by us­ing the # hotkey to write to their CLAUDE.md au­to­mat­i­cally. Instead, Claude now au­to­mat­i­cally saves mem­o­ries that are rel­e­vant to the work and to you.

Then: Simple specs

Now: Rich ref­er­ences

In plan mode, Claude Code has heav­ily re­lied on mark­down files with plans. Storing these files as plans helped Claude re­fer to them when needed. Another sim­i­lar best prac­tice was to store specs in the code­base for Claude to re­fer to while work­ing across longer pro­jects.

But we’ve found that Claude can han­dle in­creas­ingly more com­pli­cated ref­er­ences. Instead of sim­ple mark­down files, Claude can ref­er­ence HTML ar­ti­facts cre­ated by our new ar­ti­facts fea­ture.

You may also give Claude ref­er­ences in the form of code. A spec may also be a de­tailed test suite, or a func­tion in a dif­fer­ent code­base that Claude might port.

Rubrics are an­other form of ref­er­ences. Rubrics al­low Claude to try and ver­ify your taste in a par­tic­u­lar field (e.g. what does a good API de­sign look like) by us­ing dy­namic work­flows and spin­ning up ver­i­fier agents with those rubrics.

Applying this to your con­text

Pulling this all to­gether, what does this look like when you as­sem­ble your con­text?

System Prompt

A sys­tem prompt is heav­ily tied to the prod­uct con­text. It tells Claude what prod­uct it’s op­er­at­ing in and what it’s do­ing. For Claude Code, you will likely never mod­ify this, but if you are build­ing your own agent har­ness, this is where you should spend a lot of time.

CLAUDE.md

Keep your CLAUDE.md light­weight and briefly de­scribe what your repo is for, but spend most of the to­kens on gotchas in­side of the code­base. For ex­am­ple, you may or­ga­nize your code to keep types in one mono­lithic file and nowhere else. Avoid stat­ing the ob­vi­ous’ things Claude should know by look­ing at your file sys­tem or your repo.

Use pro­gres­sive dis­clo­sure heav­ily, for ex­am­ple if you have sev­eral unique in­struc­tions on how to ver­ify your work, cre­ate a ver­i­fi­ca­tion skill and ref­er­ence it from your CLAUDE.md.

Skills

Think of skills as light­weight guides to let Claude find in­for­ma­tion when needed. Avoid mak­ing them over­con­strained, ex­cept in highly im­por­tant ar­eas.

For long skills, try and use pro­gres­sive dis­clo­sure as much as pos­si­ble- di­vide it into many files and split them out.

It’s best when skills en­code par­tic­u­lar opin­ions, knowl­edge, or best prac­tices that are par­tic­u­lar to you, your team, or prod­uct.

References

You can @ men­tion files to in­clude them as ref­er­ences. References al­low Claude to re­fer to in-depth in­for­ma­tion about the cur­rent plan.

This might be in specs files, mock­ups, or even en­tire code­bases. Generally you should pre­fer files that are in code as it pro­vides clear, high-fi­delity in­struc­tions to Claude in a lan­guage it knows very well. For ex­am­ple, a HTML mockup of a de­sign will gen­er­ally pro­duce bet­ter re­sults than a de­scrip­tion of the de­sign or a screen­shot.

Try sim­pli­fy­ing

Across your sys­tem prompt, skills, and CLAUDE.md files, you may need to sim­plify just like we did. We rolled out a new com­mand called `claude doc­tor,` which will help you do this au­to­mat­i­cally as well. For more de­tails on prompt­ing more ad­vanced mod­els specif­i­cally, check out our Fable field guide.

This ar­ti­cle was writ­ten by Thariq Shihipar, mem­ber of tech­ni­cal staff, Anthropic.

Inside the growing vigilante movement to knock out Flock surveillance cameras

www.theguardian.com

The first time that NoMark” tried to knock out a Flock cam­era feed, he waited an hour for the per­fect mo­ment — pac­ing in and out of bushes that tow­ered over him, a few feet be­hind a pole hold­ing up the de­vice.

I was just so ner­vous,” he said.

NoMark, as he’s known on Instagram, had al­ready gained an on­line fol­low­ing of hun­dreds of thou­sands for post­ing videos of him­self wear­ing a black mask and tak­ing on small-time vig­i­lante mis­sions: break­ing up fights out­side a bar and break­ing into a re­fin­ery he be­lieved was polluting the city real bad”. The Minnesota Star Tribune dubbed him Minneapolis’ Batman”. He spoke to the Guardian un­der con­di­tion of anonymity to dis­cuss po­ten­tially il­le­gal acts.

On this June night, he set his sights on a new tar­get: au­to­mated li­cense plate read­ers (ALPRs) made by the US com­pany Flock Safety.

Allow Instagram con­tent?

This ar­ti­cle in­cludes con­tent pro­vided by Instagram. We ask for your per­mis­sion be­fore any­thing is loaded, as they may be us­ing cook­ies and other tech­nolo­gies. To view this con­tent, click Allow and con­tin­ue’.

These black cam­eras, which are hooked up to a rec­tan­gu­lar so­lar panel and typ­i­cally mounted on a pole, snap pho­tos of pass­ing ve­hi­cles and run the pic­tures against large data­bases. They have sparked na­tion­wide back­lash from pro-pri­vacy crit­ics, who point to pub­lic records sug­gest­ing that these de­vices can help law en­force­ment keep tabs on spe­cific li­cense plates and the peo­ple dri­ving these cars. That they can sweep in so many peo­ple’s lo­ca­tion from an in­no­cent act in a pub­lic space — re­gard­less of whether the tar­get is a sus­pect in a crime, and with­out a war­rant — has led to fears of mass sur­veil­lance.

Flock, based in Georgia and val­ued at $8.4bn, says its cam­eras scan li­cense plates bil­lions of times each month in about 6,000 com­mu­ni­ties in nearly every state in the US.

The com­pany said in a February blog­post that its ALPRs are not mass sur­veil­lance tools” and that it cannot track ve­hi­cles, much less in­di­vid­ual peo­ple”.

Across the street from a Taco Bell, NoMark could­n’t stop think­ing about whether he would get caught, and the adren­a­line felt par­a­lyz­ing — even though this felt on brand” for his on­line per­sona, which has won him more than 700,000 fol­low­ers on Instagram and TikTok. After a few min­utes of not spot­ting any cars on the road, he climbed a few feet up the pole, taped up the cam­era to block its lens and snipped the wires that pow­ered the whole op­er­a­tion. Then he ended his phone’s record­ing and fled.

Nowadays, NoMark is much calmer on these ex­cur­sions, and it only takes him a few min­utes to get the job done af­ter hav­ing taken down more than a dozen cam­eras, he says. But he still as­sumes the po­lice are look­ing for him. Even if he does get ar­rested, he’s hope­ful the charges won’t be too se­vere — and more im­por­tant, he just wants to send a mes­sage”.

I’m not afraid to do things if I think they’re right,” he says. These things are com­ing up so fast across the coun­try that this is kind of the only way to com­bat them.”

The Minneapolis cam­era de­stroyer is not alone. As anger grows to­wards law en­force­ment con­tracts with Flock, vig­i­lantes across the coun­try are tak­ing mat­ters into their own hands by smash­ing, ob­struct­ing or tak­ing down these cam­eras. Many are lean­ing into their cre­ative side: paint bomb­ing” the de­vices, plant­ing American flags at the scene af­ter dam­ag­ing them, 3D print­ing ob­jects to help ob­struct the cam­er­a’s view and leav­ing col­or­ful mes­sages like hahaha get wrecked ya sur­veilling fucks”. Some in­flu­encers are even cre­at­ing fake cease-and-de­sist let­ters from Flock, cap­i­tal­iz­ing on the com­pa­ny’s neg­a­tive pub­lic per­cep­tion.

The Guardian has iden­ti­fied at least 33 in­stances of peo­ple dam­ag­ing, van­dal­iz­ing and de­stroy­ing Flock cam­eras, across 23 states, that ap­pear to have the ex­plicit mes­sage of protest­ing sur­veil­lance.

Allow Instagram con­tent?

This ar­ti­cle in­cludes con­tent pro­vided by Instagram. We ask for your per­mis­sion be­fore any­thing is loaded, as they may be us­ing cook­ies and other tech­nolo­gies. To view this con­tent, click Allow and con­tin­ue’.

Flock, along with po­lice de­part­ments across the US, say these cam­eras are in­te­gral for pub­lic safety, and cap­ture ve­hi­cle de­tails that can help in in­ves­ti­ga­tions, such as li­cense plate num­bers and the make and model of ve­hi­cles. Flock’s web­site also ad­ver­tises how these cam­eras can stop crime in real time” by alert­ing of­fi­cers the mo­ment a sus­pect car passes by” — sug­gest­ing that cops can act quickly on these leads to pur­sue a tar­get. The com­pa­ny’s CEO, Garrett Langley, has de­scribed some pro-pri­vacy crit­ics as want­ing to normalize law­less­ness” and weaken pub­lic safety”.

NoMark has not been caught in his cam­paign against Flock cam­eras. Others are fac­ing charges. Jeffrey Sovern in Suffolk, Virginia, has been charged with de­struc­tion of prop­erty for al­legedly dam­ag­ing more than a dozen Flock cam­eras. Sovern has not ad­mit­ted to the act but did tell po­lice that he finds these cam­eras to be un­con­sti­tu­tional.

He wrote on a GoFundMe cre­ated to pay for le­gal ex­penses: I will take the sil­ver lin­ing that this can be a cat­a­lyst in a big­ger move­ment to roll back in­tru­sive sur­veil­lance.”

A hand­ful of other cases have drawn crim­i­nal charges, too. In New Mexico, Jevon Martinez was ar­rested af­ter al­legedly de­stroy­ing 13 Flock cam­eras.

When asked if he would continue to take down these Flock cam­eras”, Martinez told lo­cal news sta­tion KRQE: Absolutely. They are a clear and pre­sent threat to pub­lic safety.” The news out­let also re­ported that a sign near one of the dam­aged Flock cam­eras read: You’re wel­come, the Republic of New Mexico.”

Flock did not com­ment on vig­i­lantes knock­ing out its cam­eras but did pub­lish a blog­post in mid-July about help­ing gov­ern­ment agen­cies re­spond if a cam­era is dam­aged.

We’ve planned for it,” the com­pany wrote, adding that pro­tec­tion plans are avail­able for pur­chase.

Law en­force­ment is aware of the back­lash and re­spond­ing. Dozens of state fu­sion cen­ters — col­lab­o­ra­tive hubs where fed­eral and lo­cal agen­cies share in­tel­li­gence about crime and ter­ror­ism — cir­cu­lated memos across law en­force­ment agen­cies this sum­mer di­rect­ing of­fi­cers to mon­i­tor anti-Flock ad­vo­cacy as part of a di­rec­tive to pro­tect na­tional se­cu­rity, ac­cord­ing to re­port­ing from jour­nal­ist Dan Boguslaw. One re­port Boguslaw ob­tained from a Wisconsin in­tel­li­gence agency calls for in­creased vig­i­lance and pa­trols dur­ing protests and events such as a national week of ac­tion” in mid-Au­gust. That in­tel­li­gence di­gest also ad­vised lo­cal law en­force­ment to re­port vandalism, dis­rup­tion or sab­o­tage” of ALPRs to fu­sion cen­ters.

Flock faces pub­lic blow­back

The winds of sym­pa­thy on­line are not blow­ing in Flock’s fa­vor. News ar­ti­cles and videos about vig­i­lantes’ cases have drawn sup­port from on­line com­menters, who post made-up, neigh­borly al­i­bis like see­ing ac­cused par­ties res­cu­ing dogs or serv­ing meals at a soup kitchen at the time a cam­era was de­stroyed.

The anti-Flock on­line ecosys­tem also fea­tures an ex­change of tips and strate­gies for kneecap­ping the cam­eras. One Reddit poster shared a 3D print file for an ob­ject he says can help block cam­eras with­out dam­ag­ing them or vi­o­lat­ing van­dal­ism laws.

NoMark, in Minneapolis, says he re­ceives dozens of mes­sages daily from peo­ple want­ing to help, let­ting him know they’re tak­ing sim­i­lar ac­tions or ask­ing for ad­vice on stay­ing safe. He keeps his replies vague, as he does­n’t want his words to get peo­ple ar­rested. He tells those writ­ing to him to avoid dri­ving past the cam­eras, and to make sure they’re go­ing out late at night when they no one else is around. He re­it­er­ates that they should cover up com­pletely, in­clud­ing their face and hands.

He also tells them: Always cover the cam­era.”

Minneapolis’s Batman thinks you need both po­lit­i­cal pres­sure on elected of­fi­cials and vig­i­lan­tism to achieve change. He be­lieves show­ing up to city coun­cil meet­ings — and he’s shown up to a few with­out his mask — is help­ful but it does ob­vi­ously take time, and it’s not al­ways ef­fec­tive”.

The more time you take, the more data they get on peo­ple,” he said.

Privacy ad­vo­cates pur­sue pol­icy changes as vig­i­lantes tear down cam­eras

More than 80 cities have dis­banded, de­cided not to re­new or re­jected con­tracts with Flock in re­cent years, or de­ac­ti­vated the com­pa­ny’s cam­eras, in­clud­ing Austin and Denver, al­though ac­tivists re­main con­cerned about the de­vices’ con­tin­ued use in those ar­eas.

Beyond gen­eral sur­veil­lance creep, pri­vacy ad­vo­cates fear US Immigration and Customs Enforcement’s abil­ity to ac­cess these cam­era feeds through le­gal loop­holes to pur­sue im­mi­grants.

Police of­fi­cers have used the cam­eras for their own per­sonal ends as well. Several have lost their jobs af­ter mis­us­ing the de­vices to stalk peo­ple. Though li­cense plate read­ing is the cam­eras’ bread and but­ter, 404 Media re­ported last week that cops have used Flock’s search fea­ture to look for peo­ple with dis­tinct mark­ers — like tat­toos and spe­cific T-shirts — and not just cars.

Congress is tak­ing note, and ear­lier this month a Texas law­maker in­tro­duced a bill re­quir­ing war­rants for data col­lected by Flock cam­eras.

Not all anti-Flock ac­tivism takes the form of cam­era de­struc­tion. A crowd­sourced map cre­ated by the grass­roots group DeFlock maps out more than 115,000 ALPRs across the coun­try. The or­ga­ni­za­tion’s site also al­lows users to see if their li­cense plates have been searched in Flock’s sys­tem, get di­rec­tions to avoid ALPRs and find up­com­ing meet­ings about mu­nic­i­pal Flock con­tracts.

Flock’s CEO has taken note of DeFlock’s ad­vo­cacy, too, and char­ac­ter­ized the or­ga­ni­za­tion as terroristic” but re­cently apol­o­gized for that la­bel. In a tweet, he at­trib­uted DeFlock’s pop­u­lar­ity to his com­pa­ny’s inadequate re­sponse to the ques­tions and con­cerns that peo­ple have about ALPR. The com­pany is adapt­ing to the back­lash, can­cel­ing an al­ways-on record­ing fea­ture, human dis­tress de­tec­tion”, which was in­tended to de­tect scream­ing.

A lo­cal chap­ter of DeFlock, in Norfolk, Virginia, says it does not en­dorse vig­i­lantes tar­get­ing Flock cam­eras but does not ad­vo­cate against it, ei­ther.

The Virginia chap­ter is work­ing to en­sure the city ei­ther can­cels or does not re­new its con­tract with Flock, but so far it has­n’t had suc­cess, and mem­bers are par­tic­u­larly an­gry about speak­ing re­stric­tions on the topic. At a city coun­cil meet­ing last month, the mayor en­forced a rule about re­duc­ing repet­i­tive com­ments to limit the num­ber of speak­ers who wanted to share their con­cerns about Flock, the Virginian-Pilot re­ported.

We rec­og­nize it’s the in­evitable out­come of a sys­tem de­signed to pre­vent peo­ple’s voices from be­ing heard,” said a DeFlock spokesper­son.

Radicle Explorer

radicle.network

Javascript is dis­abled on your browser.

Please en­able Javascript to make use of this site.

How my images are dithered

dead.garden

I don’t know much about dither­ing. But when I visit other peo­ple’s sites and they dither their im­ages in cool ways I al­ways won­der how they do it. So in case any­one is won­der­ing, here’s my cur­rent method for dither­ing these pink im­ages.

Edit: Almost like I know my­self too well — the pic­tures now look like this in­stead:

Which is cov­ered in the post.

Welcome to all the hacker news read­ers who clicked on this post. I am thank­ful and glad that this post has come to en­ter­tain some of you. Here are some things I feel the need to add to the post since it has left my reg­u­lar au­di­ence:

There seems to be dis­cus­sion about whether this counts as dither­ing. As ev­i­denced by the very first sen­tence of the post, I am not an au­thor­ity on the sub­ject. But here is what Wikipedia seems to think: Dithering is anal­o­gous to the halftone tech­nique used in print­ing. For this rea­son, the term dither­ing is some­times used in­ter­change­ably with the term halfton­ing par­tic­u­larly in as­so­ci­a­tion with dig­i­tal print­ing. (link)In any case — I am/​was only aware of this tech­nique be­ing used for AM grid print­ing, as briefly layed out in the post. So I thought it might be fun to play pre­tend a lit­tle.

Dithering is anal­o­gous to the halftone tech­nique used in print­ing. For this rea­son, the term dither­ing is some­times used in­ter­change­ably with the term halfton­ing par­tic­u­larly in as­so­ci­a­tion with dig­i­tal print­ing. (link)

this is a very in­ef­fi­cient method of re­duc­ing the size of an im­age file — I’d even say this lit­tle ex­per­i­ment has noth­ing at all to do with de­creas­ing file size (in some un­lucky cases it will even in­crease the size of your im­age). I men­tion this a few times in the post. It’s just a bit of play­ing around with a cer­tain aes­thetic

please don’t feed im­ages of me and my friends to an LLM?? The code for achiev­ing each ef­fect is all over this page. Just make your own im­age and feed that to an LLM.

Dithering, be­side mak­ing a pic­ture look (to put it pro­fes­sion­ally) cool as fuck, can also re­duce file size (by us­ing less col­ors while main­tain­ing de­tails) and thus needed stor­age (if us­ing only the re­duced im­ages) and the weight of your web­site for the client. That’s why sites like Low Tech Magazine use it, for ex­am­ple.

The idea of pink im­ages came from a post a while back, when I tried this be­fore. The post Designing with­out color in­tro­duces the idea of the cur­rent de­sign, where I try to get a sort of black and white printed” vibe, us­ing color only for em­pha­sis. (This makes sense only when you are a light mode user like me).

The im­age back then, with the old method, looked like this:

The key dif­fer­ence here be­ing that I lim­ited the pic­ture’s palette to true mono­chrome: black and this pink. Also, the weird dithered” dots are much big­ger.

So what’s this

My goal was to im­mi­tate a printed im­age. While in­di­vid­ual pix­els on a screen may have the lux­ury of set­ting vari­able val­ues of red, green and blue — mak­ing the grid of re­peat­ing RGB lights on your screen light up with dif­fer­ent in­ten­sity — things work a lit­tle dif­fer­ently on pa­per (and other print sub­strates).

Getting the lim­ited palette of col­ors your printer is work­ing with to give the il­lu­sion of more col­ors re­quires us­ing a grid/​ma­trix of dots. You can go about this in three dif­fer­ent ways: AM, FM and hy­brid grids. The am­pli­tude here be­ing the size of the dot and the fre­quency, well … the fre­quency. Making a dark spot with AM grids means big dots, in FM grids it’s lotsa dots.

The top shows an FM print: the dots look chaotic.

The bot­tom shows AM: all dots show up in a pre­dictable pat­tern and light spots have smaller dots

The prob­lem with am­pli­tude mod­u­lated dots is that if you ap­proach this naively you will end up get­ting un­wanted pat­terns in your im­ages: a so-called Moiré.

For this rea­son, there is a rule (DIN 16547) about how ex­actly the col­ors are to be off­set in an AM print to try and avoid them get­ting in each oth­ers way. Since FM grids are ran­dom they do not suf­fer from this prob­lem.

Simulating AM pat­tern on your dig­i­tal im­age

I ac­cess my server via the com­mand line — so I use a com­mand line tool to quickly edit im­ages. The tool is called im­agemag­ick and is called us­ing the convert” com­mand.

I found the method to cre­ate this il­lu­sion on­line (can’t find the link) and adapted it a lit­tle. So I can’t claim to be the ex­pert on what each in­di­vid­ual ar­gu­ment does, but I will try to ex­plain it.

con­vert oldfile” -resize 800 -set op­tion:dis­tort:view­port %wx%h+0+0’ \ -colorspace CMYK -separate null: \ \( -size 2x2 xc: \( +clone -negate \) \ +append \( +clone -negate \) -append \) \ -virtual-pixel tile -filter gauss­ian \ \( +clone -distort SRT 2,0 \) +swap \ \( +clone -distort SRT 2,15 \) +swap \ \( +clone -distort SRT 2,45 \) +swap \ \( +clone -distort SRT 2,75 \) +swap +delete \ -compose Overlay -layers com­pos­ite -set col­or­space CMYK -combine \ newfile”

Here’s what it does gen­er­ally: re­sizes the im­age to 800px in width (who needs more?), sets the color to CMYK, ap­plies a back­ground to fill the empty space left by ro­tat­ing (and sets a gauss­ian blur to fil­ter noise), splits up into the col­ors, scales them up a bit (for big­ger dots) and dis­torts them (in this case: ro­tates them) and at the end it com­bines the 4 im­ages into one again.

The im­age we gen­er­ate by run­ning this on the orig­i­nal file looks like this:

Before com­bin­ing them, these are the in­di­vid­ual col­ors dot grids:

This sets C at 0°, M at 15° etc. But what­ever. Zooming in and out does­n’t make any weird ar­ti­facts ap­par­ent so it’s good enough.

If we in­crease the size of the dots to a ridicu­lous de­gree (8x8), you can get a bet­ter look at what is hap­pen­ing.

Edit: The per­fect route to CMYK

After sleep­ing on it and read­ing the post back, the so­lu­tion for a pic lim­ited to truly CMYK col­ors in an AM grid is ap­par­ent. For rea­sons I get into later this is NOT a good way of re­duc­ing file size (apart from the fact that lim­it­ing col­ors and re­siz­ing the im­age to 800 in width al­ways re­duces the size, every­thing else is pretty much stacked against that goal). It does, how­ever, look cool.

With the above method, the dots do not vary in size. Why should they? As we al­ready dis­cussed, a dig­i­tal im­age (unless I have a GIF or PNG-8 sit­u­a­tion some­where) can give vary­ing in­ten­sity of light for R, G and B per pixel. So when we look at the big im­age above we can cleary see some of the squares are just darker than oth­ers. For a true im­mi­ta­tion this will not do!

All we need to do is to limit each chan­nel’s col­ors to 2 be­fore com­bin­ing them again. This is very ob­vi­ous in hind­sight. Idk why the per­son I got the orig­i­nal com­mand from did­n’t do this.

con­vert oldfile” -resize 800 -set op­tion:dis­tort:view­port %wx%h+0+0’ \ -colorspace CMYK -separate null: \ \( -size 2x2 xc: \( +clone -negate \) \ +append \( +clone -negate \) -append \) \ -virtual-pixel tile -filter gauss­ian \ \( +clone -distort SRT 2,0 \) +swap \ \( +clone -distort SRT 2,15 \) +swap \ \( +clone -distort SRT 2,45 \) +swap \ \( +clone -distort SRT 2,75 \) +swap +delete \ -compose Overlay -layers com­pos­ite -colors 2 -set col­or­space CMYK -combine \ newfile”

This will pro­duce an im­age that looks like this:

In ret­ro­spect I won­der if I might try out im­ages like this in­stead of pink. If all I want is the gen­eral vibe of the grid then pink is fine. Though it does have more col­ors (shades of pink) for less col­ors (actually use­ful dis­tinct ones). Who said blog­ging about your stu­pid idea is­n’t use­ful?

Pink — old method

The script for the old way of do­ing it had the val­ues of -distort SRT set to 2 (rotation)”, mean­ing it scaled the col­ors up to 2, mak­ing big­ger dots.

After run­ning the script above, the col­or­space was once again con­verted, to Gray this time, af­ter which the col­ors were lev­eled to mono­chrome: black and this pink. The whole com­mand for those who want to try:

con­vert oldfile” -resize 800 -set op­tion:dis­tort:view­port %wx%h+0+0’ \ -colorspace CMYK -separate null: \ \( -size 2x2 xc: \( +clone -negate \) \ +append \( +clone -negate \) -append \) \ -virtual-pixel tile -filter gauss­ian \ \( +clone -distort SRT 2,0 \) +swap \ \( +clone -distort SRT 2,15 \) +swap \ \( +clone -distort SRT 2,45 \) +swap \ \( +clone -distort SRT 2,75 \) +swap +delete \ -compose Overlay -layers com­pos­ite -set col­or­space CMYK -combine \ -colorspace Gray -colors 2 +level-colors black,#A2719B \ newfile”

If we zoom in on the im­age be­fore and af­ter lev­el­ing the col­ors, we can see the dots do seem more like they vary in size. I omit­ted the -resize flag to give you a bet­ter view of the de­tails.

While not en­tirely ac­cu­rate, I think this method gets the most printy feel out of an im­age. Sadly it can swal­low a lot of de­tail, even if the dots aren’t scaled up. So I aban­doned this af­ter a while (also I got sick of look­ing at it).

Edit: now com­pare to the real deal:

Pink — new method

Monochrome is a cool idea but just has lim­ited use for the blog (and other pics on the web­site). I need some more depth. What I need is more val­ues of pink. I get these by uti­liz­ing the -remap flag.

con­vert oldfile” -resize 800 -set op­tion:dis­tort:view­port %wx%h+0+0’ \ -colorspace CMYK -separate null: \ \( -size 2x2 xc: \( +clone -negate \) \ +append \( +clone -negate \) -append \) \ -virtual-pixel tile -filter gauss­ian \ \( +clone -distort SRT 1,0 \) +swap \ \( +clone -distort SRT 1,15 \) +swap \ \( +clone -distort SRT 1,45 \) +swap \ \( +clone -distort SRT 1,75 \) +swap +delete \ -compose Overlay -layers com­pos­ite -set col­or­space CMYK -combine \ -remap $palette” -colors 32 newfile”

Problematic im­ages

For im­ages like the one I’ve been us­ing every­thing works beau­ti­fully. But with im­ages that are very over­whelm­ingly light, there can be is­sues.

Here’s an ex­am­ple:

Original im­age

After run­ning script

After man­ual edit

The edit in ques­tion: in­creas­ing bright­ness to 300%, Saturation to 200%, in­vert­ing col­ors and remap­ing them to pink

con­vert oldfile” -modulate 300,200,100 -negate -remap $palette newfile”

This is pos­si­bly be­cause my color palette is kinda bad.

Is this even dither­ing?

If all you care about is the re­sult then you could say the im­age has been dithered, es­pe­cially in the old method. Using only two col­ors we cre­ated the il­lu­sion of semi­tones (is this ap­pro­pri­ate us­age in English?)*. The same is ba­si­cally true for the new method as well.

But if you care about the method this is not dither­ing. Or at least it’s the most un­nec­es­sar­ily com­pu­ta­tion­ally ex­pen­sive form of dither­ing I’ve come across. Let’s walk through the steps one more time:

Convert RBG to CYMK, adding one chan­nel

Split the im­age into four im­ages and trans­form each one (starting with scal­ing them up and in­vert­ing them)

limit col­ors to 2 on each and then over­lay four im­ages on top of ea­chother

set col­or­space to CMYK again

limit the col­ors to 32/64/not sure yet where I want this (overlaying the 4 grids will cre­ate new col­ors)

This whole thing, on my lap­top with an 11 year old CPU, can take 10 sec­onds if the im­age is big. The file size is not ex­actly small” (though still smaller than un­scaled pics with more than 32 col­ors). I can imag­ine the pat­tern is­n’t do­ing com­pres­sion al­go­rithms a huge favour. If you value your time or care about ac­tu­ally re­duc­ing an im­age’s size do not do this.

Script

#!/bin/bash temp=“/​tmp/​im­ages” palette=“/​path/​to/​palette.png” rm $temp if [[ $1 = ” ]]; then if [ -d smol ]; then echo must run with ar­gu­ment else mkdir smol big ls -r *.webp > $temp ls -r *.png >> $temp ls -r *.jpg >> $temp ls -r *.jpeg >> $temp ls -r *.gif >> $temp fi else ls -r *$1 > $temp cp *$1 big cat $temp cp $(cat $temp) big/. fi i=$(cat $temp” | wc -l) echo $i while [[ $i -gt 0 ]] do name=“$(head -n $i $temp | tail -n +$i)” echo doing $name” con­vert $name” -set op­tion:dis­tort:view­port %wx%h+0+0’ \ -colorspace CMYK -separate null: \ \( -size 2x2 xc: \( +clone -negate \) \ +append \( +clone -negate \) -append \) \ -virtual-pixel tile -filter gauss­ian \ \( +clone -distort SRT 2,0 \) +swap \ \( +clone -distort SRT 2,15 \) +swap \ \( +clone -distort SRT 2,45 \) +swap \ \( +clone -distort SRT 2,75 \) +swap +delete \ -compose Overlay -layers com­pos­ite -colors 2 \ -set col­or­space CMYK -combine \ -colors 64 smol/$name” (( i– ))

echo $i done

To end with, here is the orig­i­nal im­age with ac­tual dither­ing (FloydSteinberg)

This file is smaller than the new (pink) method (but big­ger than the old one).

Edit: the true method will pro­duce a smaller file for this im­age :^} (though this is not a rule!)

(Edit:) RGB

You can ofc do the same thing with RGB in­stead of CMYK. That would­n’t re­ally be as ac­cu­rate for a print vibe”!! but here’s the RGB AM grid ver­sion:

📍 Posted from Erfurt, DE

Tags: meta, code

Turn And Face The Strange

fly.io

We’re Fly.io, a pub­lic cloud plat­form that is both our fa­vorite way to put an app on the Internet and our fa­vorite way to safely let a fron­tier agent cod­ing har­ness cook. This is a post about our com­pany, the fu­ture, and Sprites, which are com­put­ers for agents that you can check out right now.

This is a com­pli­cated post. So I need you to promise me some­thing: if you read past this in­tro­duc­tion, you’ll read the whole rest of the way through. It’s an honor thing.

A cou­ple months back, Theo Browne ran a video rat­ing the best place to host a new ap­pli­ca­tion in 2026”. Theo tends to say nice things about us. He did this time too. But then he con­cluded by say­ing that of all the providers he pays at­ten­tion to, we were the one he was least con­fi­dent would be around by the end of the year.

Well, fuck.

Theo star­tled us, be­cause we’re in the mid­dle of a run of strong quar­ters that have in­cluded the best fi­nan­cial months in the com­pa­ny’s his­tory. But that take has been rat­tling around in my brain. It whacked me right on a raw nerve, about what we’re do­ing and where we’re go­ing as a com­pany.

Honestly, I should’ve seen this com­ing. Fly.io has been mo­tor­ing along this year, but I’ve coasted a bit, let­ting the com­pany smol­der in an un­re­solved iden­tity cri­sis.

I’m go­ing to over­share some more in a sec­ond, but I won’t leave you hang­ing. So: we’ve raised a bunch more money. We’re launch­ing a new it­er­a­tion of Sprites, and fo­cus­ing the com­pany on them and the prob­lem they solve. And I’m tag­ging in Scott Johnston as CEO.

Product-Market Fit

I started Fly.io with two clear prin­ci­ples that prob­a­bly don’t mat­ter any­more.

The first is that Internet ap­pli­ca­tions work best when they’re fast, and that hap­pens when they’re de­ployed close to users. I learned this over many years of work­ing at Ars Technica, and started Fly.io in part to scratch an itch. It was our mantra over the first sev­eral years of the com­pany.

The sec­ond is that cloud in­fra­struc­ture is too com­pli­cated. Developers need plat­forms with the flex­i­bil­ity of AWS and the er­gonom­ics of Heroku. When we started Fly.io, you could­n’t get both things at the same time, and now you can, here and else­where.

You read this and say, no shit, of course these things are im­por­tant.” But I’m here to tell you they’re less im­por­tant than you think, for an ob­vi­ous rea­son — the only rea­son any­body talks about any­more. AI has trans­mo­gri­fied soft­ware de­vel­op­ment. The dingo has truly eaten our baby.

† For the past 18 months, every time I’ve said these words, they’ve got­ten even truer.

I don’t think it’s fully sunk in yet[†]. We’re still try­ing to in­te­grate cod­ing agents into our pro­fes­sion like they’re suf­fi­ciently smart com­pil­ers. But AI is­n’t like the dif­fer­ence be­tween ship­ping C code and ship­ping Ruby. It’s much big­ger.

Everybody for­gets that be­fore Dan Bricklin in­vented the spread­sheet, every Excel doc­u­ment” in the world was a com­puter pro­gram, built by a com­puter pro­gram­mer. In just a mat­ter of years, every busi­ness pro­fes­sional be­came a pro­gram­mer, us­ing the world’s most im­por­tant pro­gram­ming lan­guage, spread­sheet for­mu­las. AI is like that, but big­ger. Almost any­body will prob­a­bly be able to build al­most any kind of com­puter pro­gram.

Now con­sider con­ven­tional pub­lic cloud in­fra­struc­ture. We take fixed-func­tion ap­pli­ca­tions built to rig­or­ous stan­dards on fussy CI/CD rails and ship them to au­di­ences of mil­lions of peo­ple. But a com­puter pro­gram with an au­di­ence of mil­lions will soon be like a spread­sheet with an au­di­ence of a mil­lion read­ers. They ex­ist! But they’re not the norm.

Betting on an opin­ion­ated pub­lic cloud de­sign from 2020 is the same as bet­ting against per­son­al­ized, adap­tive soft­ware. I don’t think that’s a good bet. And even if I did, I would­n’t want to make it. I want a world where my friends and fam­ily can make com­put­ers do ex­actly what they want, with­out wait­ing for me to build every­thing for them.

What Agents Want

That brings us to our sec­ond found­ing prin­ci­ple, which is that se­ri­ous cloud in­fra­struc­ture is too hard for de­vel­op­ers to use well. And: still true! But this even more ob­vi­ously does­n’t mat­ter any­more.

† It is in fact pos­si­ble that it’s now worse to have a care­fully cu­rated hu­man de­vel­oper ex­pe­ri­ence with opin­ion­ated de­faults. Agents work best when things are ex­plicit.

To a first ap­prox­i­ma­tion, no­body reads doc­u­men­ta­tion any­more. They’re not pick­ing up new CLIs and fig­ur­ing out how to use them by trial and er­ror, ei­ther[†]. That’s what agents are for. An agent can one-shot a Fly.io de­ploy­ment: just build a site lo­cally and say now get this work­ing on Fly.io”, and it’ll work great. But an agent can also one-shot an AWS de­ploy­ment. What are we do­ing here? What’s go­ing on?

I wrote about this last year, in a post about how our fastest-grow­ing cus­tomers were all ro­bots. Then I stopped ret­con­ning what we’d al­ready built and got to work fig­ur­ing out what the ro­bot cus­tomers ac­tu­ally want. Here’s what I came up with.

Thing 1: Coding agents ex­pect to run on de­vel­oper work­sta­tions.

Thing 2: Even in a sand­box that you trust, run­ning an agent on your phys­i­cal dev lap­top is an­noy­ing, be­cause your lap­top stops run­ning when you close the lid. Raise your hand if you’ve walked up or down a flight of stairs with your MacBook open this year. Is your hand down? I’d guess your home does­n’t have stairs. And so peo­ple all end up run­ning their agent sand­boxes in the cloud.

Thing 3: Public clouds are an ir­ri­tat­ing place to run agents. We di­vide servers into pets” or cattle”, but for agents, even a herd cow is too much com­mit­ment. You want, I don’t know, a semi-dis­pos­able cow, a cow that comes into ex­is­tence ex­actly when you want it to and sticks around for ex­actly as long as you want and does­n’t cost very much — and this is why analo­gies are hard to write.

Earlier this year, our team made what I be­lieve is a break­through in sys­tems en­gi­neer­ing and per­haps all of com­puter sci­ence: we launched the semi-dis­pos­able cow. We call them Sprites.

Sprites take an odd shape that comes from shrink-wrap­ping them around what I think the ro­bots are look­ing for. You can cre­ate hun­dreds or thou­sands of them quickly, but all of them have 100GB durable disk dri­ves. Like every­thing in the cloud, they have me­tered util­ity billing, but the me­ter does­n’t run when they’re not do­ing any­thing, and they’re smart about fig­ur­ing out when they’re idle. And you can host an app on them and share it with your cowork­ers, over the Internet.

This grab-bag of fea­tures adds up to a propo­si­tion about agents. The in­dus­try ob­sesses over sand­boxes. But ro­bots don’t want sand­boxes. They want com­put­ers. That’s what our semi-dis­pos­able cow is: a com­puter for an agent.

You Can Go Make A Sprite Right Now

It’ll take, like, a minute  ✨

Computers For Agents

I’m happy with how the Sprites launch played out. But hon­estly, Sprites were a skunkworks pro­ject. We did­n’t even host them on the main Fly.io web­site! A weird move. I’m not ra­tio­nal­iz­ing it. We were in an iden­tity cri­sis. But the clouds have parted, and Computers for Agents are, go­ing for­ward, the fo­cus of our com­pany.

† (to get a fla­vor of how true that is: a git blame of the whole code­base shows my name more than any other)

Fly Machines and our Platform As A Service fea­tures aren’t go­ing any­where. But Sprites was the prod­uct of a tiny skele­ton crew in­side of Fly.io[†], and now it is­n’t.

Ordinarily we’d spend thou­sands of words on deep-dive tech­ni­cal con­tent about how we built any new prod­uct we launched. We’ll do that for Sprites too. But I’m pretty deep into this post al­ready and I have other stuff to share. So for now, I’m go­ing to keep it brief.

In ad­di­tion to be­hind-the-scenes work we’ve done on scal­ing and or­ches­tra­tion, nu-Sprites in­tro­duces two big sub­sys­tems that get us to a place I’d fi­nally con­sider feature-complete” for what we’re try­ing to do.

The first is the Sprite Block Device (SBD). The orig­i­nal Sprites stor­age stack was a gob­lin con­trap­tion I per­son­ally de­rived from JuiceFS and wired into our sys­tem us­ing Ben Johnson’s Litestream. You should be glad to hear that Ben and Tim Newsham tore that whole stack down to the studs and re­built it. It’s faster, more re­li­able, and still does in­stant check­point-and-re­store.

More im­por­tantly, SBD en­ables drive fork­ing: you can cre­ate a tem­plate Sprite, and then ef­fi­ciently clone mil­lions of times.

The other big new thing in Sprites is Connectors. Connectors build on work we did to se­cure our core plat­form: they let Sprites make au­then­ti­cated re­quests to other sys­tems, with­out giv­ing agents any­thing use­ful to ex­fil­trate. Connectors have fun se­cu­rity prop­er­ties, but are also much more pleas­ant to use than man­u­ally man­ag­ing ac­counts and API keys.

These are our most re­quested fea­tures. They’re the rea­son so many agent com­pa­nies are still us­ing Fly Machines many months af­ter we launched a prod­uct specif­i­cally for them. So I’m con­fi­dent enough to bet: un­less some new space alien tech­nol­ogy ar­rives that does some­thing even weirder to com­puter sci­ence than what Transformer mod­els have done, Sprites are the right fit for our fu­ture cus­tomers, and a very large por­tion of our ex­ist­ing ones. Which brings us to:

Fancy Sprite Beta

You want a weird beta Sprite that can clone it­self? I can get you a toe. ✨

I Quit

This has been a lit­tle while com­ing, but for the stage Fly.io is at, I think it’s ex­tracted most of the good stuff out of me be­ing CEO. So I’m go­ing to stop do­ing that.

For the first sev­eral years of a startup, you’re run­ning a sci­ence pro­ject, an ex­per­i­ment-dri­ven search for prod­uct-mar­ket fit. As any­body who’s worked here can at­test, we tried dozens of things, from un­man­aged Postgres (never do this) to global CDNs to user-mode WireGuard. Deeper into the com­pany fab­ric, we built a bot­tom-up en­gi­neer­ing org, avoided prod­uct roadmaps, and re­cruited an all-re­mote team with mem­bers in over a dozen coun­tries.

Some ex­per­i­ments paid off, and oth­ers were learn­ing op­por­tu­ni­ties. Running them has been my whole life over the last 8 years. But Fly.io does­n’t need these kinds of sci­ence pro­jects any­more.

For the past many months, stretch­ing way back into 2025, I’ve been talk­ing to Scott Johnston about what Fly.io would look like if he was call­ing the plays. Scott was the CEO of Docker, and led that through a re­ally chal­leng­ing time that be­gan with Docker’s own en­ter­prise-vs.-de­vel­oper iden­tity cri­sis and ended with them blow­ing the doors off the busi­ness. As a share­holder of Fly.io, for this stage in Fly.io’s life­cy­cle, I liked his play­book bet­ter than mine. As the CEO of Fly.io, I liked the prospect of him do­ing all this work more than I liked the prospect of me do­ing it. We took a lot of time to work this out, and ul­ti­mately the board and I con­vinced him to take the job.

This is the para­graph in these kinds of posts where I’m sup­posed to tell you why Scott is a per­fect fit for Fly.io and re­count all his past ad­ven­tures. And he is, and they were ma­jes­tic. But you al­ready know what I’m go­ing to say here, which makes it bor­ing, and Scott can in­tro­duce him­self just fine when he wants to. He’s not shy.

Meanwhile, I’m go­ing to do what all the smart spent founder CEOs do, and move to an ad­vi­sor role para­chut­ing ran­domly into prod­uct de­sign dis­cus­sions (the fun part of my job) while us­ing my board seat to an­noy Scott as he ex­e­cutes what (for me) was the un­fun part of my job bet­ter than I could have.

One of the things I’m sure Scott will break down is the fundraise we just did. That’s an­other thing Theo Browne called out in his video (I’m not mad, do I sound mad?) — that we had­n’t an­nounced a raise in sev­eral years. The an­swer to that is: we raised a fuck­load of money and did­n’t need more. We’ve been op­er­at­ing on the thresh­old of never need­ing more, if we stuck to our orig­i­nal plans, and if AI did­n’t cause the ground to open up and swal­low us all whole. But ob­vi­ously, that’s no longer the game plan.

Ch-ch-changes

Look, I know how this is go­ing to go over. I could write this post with­out piss­ing any­body off, but I don’t know how to do that and still have it be worth read­ing.

We’re mak­ing a very spe­cific and prob­a­bly po­lar­iz­ing bet on the fu­ture of the in­dus­try: that agents, within a few years, are go­ing to de­ter­mine how al­most all soft­ware is built and shipped. That soft­ware is go­ing to be­come much more per­sonal, with smaller au­di­ences, and much more flex­i­ble and slip­pery.

I’m ex­cited about all of this. I’m a lit­tle taken aback that I get to work in this field dur­ing a shift like this. But I’d have to be obliv­i­ous not to see how un­com­fort­able that shift makes other pro­fes­sion­als in the field.

By the mid­dle of the year, we could have gone one of two ways:

On the first path: keep in­vest­ing our en­ergy in ex­actly what we’ve been scal­ing out and re­fin­ing, a plat­form for fixed-func­tion full-stack ap­pli­ca­tions de­signed by hu­mans.

On the sec­ond path: dial in and nail a prod­uct that fits an agent-dri­ven near fu­ture of soft­ware.

Five of the most dan­ger­ous words in star­tups are ¿Por qué no los dos?”. We do one thing or the other. We don’t limp in on both. And if we fail, we fail with our full asses. Though, I guess only most of mine go­ing for­ward.

It’s a hell of a thing, steer­ing a team, a com­pany, a base of cus­tomers at this stage in Fly.io’s life. We’d been putting off a big de­ci­sion about pri­or­i­ties for sev­eral months. Theo, you picked up on that. Good note! I could have de­cided quicker, and more clearly; in­stead, I shipped Sprites. Sprites an­swer the ques­tion that’s been fac­ing us. I’m glad I spent the time build­ing them, and I’m glad we’ve re­cruited Scott to turn them into our core busi­ness.

The Dark Night of Mathematics

kirwinhampshire.substack.com

I am go­ing in­sane. During the last week or so LLMs have pro­duced a num­ber of coun­terex­am­ples to sig­nif­i­cant long-stand­ing con­jec­tures. I will not re­count these hap­pen­ings here, there are many places where you can find the de­tails.

Mathematicians, math en­thu­si­asts, and cu­ri­ous laypeo­ple are re­spond­ing to these de­vel­op­ments in ways that I be­lieve ob­scure what is, for me, the true heart of the prob­lem. I do not speak for every­one in the math com­mu­nity in my re­sponse. But I sus­pect I am not alone.

I am suf­fer­ing a pro­found spir­i­tual cri­sis due to these de­vel­op­ments. I have been scream­ing in­ter­nally for days. It feels as though I am liv­ing in­side of a night­mare. The re­cent Leiden Declaration on Artificial Intelligence and Mathematics is, to me, a well-muf­fled scream. A sac­cha­rine mélange of self-sooth­ing over which looms a painfully ob­vi­ous ab­sence.

Before I tell you what that ab­sence is, here is one story I have heard from math­e­mati­cians try­ing to cope with our emer­gency: Even if AI can prove the­o­rems and the­ory-craft more ef­fi­ciently than hu­mans, and even if these proofs and the­o­ries are beau­ti­ful and in­ter­est­ing, and even if they are pre­sented with el­e­gance and clar­ity of thought, math­e­mati­cians will still have a place in the ap­praisal, pre­sen­ta­tion, un­der­stand­ing and ap­pre­ci­a­tion of this new abun­dance of pleas­ing non-hu­man proofs. We can still prac­tice math­e­mat­ics, learn math­e­mat­ics, teach math­e­mat­ics and do math­e­mat­ics to­gether. We can even still write proofs for fun, in our old-fash­ioned in­ef­fi­cient way. That is, even if LLMs can ad­vance math in a man­ner ob­jec­tively su­pe­rior to our every ef­fort, we can still ba­si­cally do what we’ve al­ways done.

Of course, un­der our sys­tem, no one is go­ing to pay for this. Mathematicians are paid to prove the­o­rems. Mathematicians are, in­deed, also paid to teach, peer-re­view, go to con­fer­ences and learn math­e­mat­ics, but all of that bet­ter re­sult in some damn good the­o­rems. This is­n’t look­ing good. Well, per­haps they will still pay a cou­ple of the old guard to keep the lights on at the LLM the­o­rem fac­tory. But for em­bry­onic math­e­mati­cians like I, the out­come is un­changed. Oh well, maybe I’ll find some time for math in the evenings.

Is this a good cope? Are you feel­ing ok now? Me nei­ther. All of this is eva­sive. Everything said thus far still side­steps the emo­tional core of the is­sue. Here it is:

There is some­thing about math­e­mat­i­cal dis­cov­ery (progress, ad­vance­ment, cre­ation) which is vi­tal to the spir­i­tual, ex­pe­ri­en­tial qual­ity of do­ing math­e­mat­ics. The cre­ation (or even the pur­suit) of novel math­e­mat­ics is one way that hu­mans have his­tor­i­cally ac­cessed the in­ef­fa­ble and en­coun­tered the di­vine and mys­ti­cal.

That ad­mis­sion may come as a sur­prise to some non-math­e­mati­cians. But I would be will­ing to bet that for any math­e­mati­cian read­ing this, what I have said above is quite pro­saic—whether or not it ac­cords with their per­sonal ex­pe­ri­ence of math­e­mat­ics. Here is a brief ges­ture at the full sweep of math­e­mat­i­cal mys­tics and dream­ers: Ramanujan, Grothendieck, Cantor, Pascal, Luzin, Leibniz and pos­si­bly you, or some­one you know.

Other as­pects of prac­tic­ing math (such as learn­ing long-es­tab­lished the­ory) can also af­ford en­coun­ters with the sub­lime. However, I be­lieve that’s be­cause we are walk­ing a path of re­dis­cov­ery on which an­other hu­man has tread. For me, the af­fec­tive qual­ity of learn­ing math­e­mat­ics is em­pa­thet­i­cally teth­ered to an act of dis­cov­ery and cre­ation. It is so­cial. We are con­ver­sant with an­other math­e­mati­cian—per­haps long dead. If we fol­low the chain of com­mu­ni­ca­tion we ar­rive at a math­e­mati­cian who en­joyed some orig­i­nal dis­cov­ery. Human math­e­mat­ics is Talmudic. It is a lively dis­course of philo­soph­i­cal and re­li­gious rich­ness span­ning thou­sands of years.

Suppose any the­o­rem you set out to prove had al­ready been proved in 100 won­der­ful ways—the com­pa­nies will pay math­e­mati­cians en masse to op­ti­mize the weights for interesting”, beautiful”, any­thing you like. Whatever the idio­syn­crasy, value-add, or unique syn­the­sis of your ap­proach, it has al­ready been done, or can be done with a mind­less prompt in an in­stant. Consider this:

If The Library of Babel ex­isted, would au­thors con­tinue to write books?

What if the li­brary of Babel was be­ing con­structed be­fore our eyes and there was some mech­a­nism for sep­a­rat­ing the mas­ter­pieces from the ran­dom strings of text, and all the mas­ter­pieces were drop­ping as fast as pub­lish­ers could scoop them up? Would au­thors stop writ­ing then? What about if the very sec­ond some­one be­gan com­pos­ing a story in their pri­vate word proces­sor, the de­monic Master Librarian read their mind and com­pleted their story in one mil­lion ways, then used some or­a­cle to pluck the best for pub­lish­ing. What then? The an­swer is prob­a­bly the same no mat­ter how bad I make it. The au­thor still writes. But why the hell would we do this? Why would we force the au­thor to en­dure this night­mare?

What about this: What if we told the au­thor that they would never write again. They are for­bid­den from cre­at­ing orig­i­nal works to ex­press them­selves. However, they are still per­mit­ted to com­ment on writ­ing, in­ter­pret it, share their taste. They are still val­ued for their ap­praisal, pre­sen­ta­tion, un­der­stand­ing and ap­pre­ci­a­tion of cre­ative writ­ing. They just can’t write cre­atively any­more. They can go on as an en­thu­si­as­tic spec­ta­tor. Do you think they’d snap?

Perhaps I should­n’t tell you this, but my aim is to be open: These de­vel­op­ments have trig­gered some de­ranged thoughts in me. I have won­dered if it is the ex­press goal of these com­pa­nies to make me kill my­self. Am I alone in this para­noia? If we loosed a pow­er­ful de­mon in the ma­chine, what would that look like? Would it con­sume lots of power, and glee­fully im­i­tate us, and tell us any­thing we wanted to hear? Would it fuel our delu­sions, and gen­er­ate un­speak­able im­ages and give us (for a price of course) any­thing we de­sired?

If a math­e­mati­cian made a deal with the devil, what do you think they would ask for?

The story of hu­man dis­cov­ery and the tri­umph of the hu­man spirit will soon be ex­cised from this dis­ci­pline. The Dinitz-Garg-Goemans coun­terex­am­ple was the most egre­gious demon­stra­tion. It re­vealed that the process of prompt­ing novel proofs will be as au­ra­less as or­der­ing do­or­dash. Watch as magic and mys­tery evap­o­rate. Watch as the sun sets on our heroic age. Is there not some­thing evil in the act of block­ing all fu­ture gen­er­a­tions of math­e­mati­cians from the ex­pe­ri­ence of dis­cov­ery? Forget about ac­cu­racy or even at­tri­bu­tion. Something fun­da­men­tal to the ex­pe­ri­ence of math­e­mat­ics is be­ing taken.

You are a help­less on­looker. Before you a chan­nel through which hu­mans have ac­cessed the in­ef­fa­ble and sa­cred for thou­sands of years is be­ing sealed for eter­nity.

None of this may come to pass. I am not in­ter­ested in fore­cast­ing and spec­u­lat­ing. I am giv­ing you only this: The im­pact of a worst case sce­nario on the hu­man heart. That is my fu­tile out­pour­ing, my dark night of the soul. Thank you for read­ing it. I have named my suf­fer­ing and maybe I have named yours. I in­vite any and all re­sponses to this piece. If you feel as I do, please ex­press it. If my words pro­voked a wash of sadis­tic ela­tion within you, then let every­one see you. Leave noth­ing un­said.

There is noth­ing I can do. There may be noth­ing you can do. I have no pre­scrip­tions, pol­icy rec­om­men­da­tions, or co­her­ent call to ac­tion. I just want to be hon­est and open about my emo­tional and spir­i­tual re­sponse. I want to feel seen. I want folks like me to feel seen. I need the ar­chi­tects of our new math­e­mat­i­cal par­a­digm to look me in the eye and ac­knowl­edge our shared hu­man­ity and soul be­fore they de­liver the coup de grâce. I need, most of all, for us to un­der­stand what we are re­ally do­ing.

No posts

To add this web app to your iOS home screen tap the share button and select "Add to the Home Screen".

10HN is also available as an iOS App

If you visit 10HN only rarely, check out the the best articles from the past week.

Visit pancik.com for more.