10 interesting stories served every morning and every evening.

Qwen Studio

qwen.ai

Wikipedia:Wikipedia Signpost/2026-08-02/News and notes - Wikipedia

en.wikipedia.org

From Wikipedia, the free en­cy­clo­pe­dia

News and notes

Foundation re­jects vol­un­tary recog­ni­tion of union, pro­posed board el­i­gi­bil­ity rules sharply re­strict can­di­dates

Share this

Wikimedia Foundation re­fuses vol­un­tary union recog­ni­tion, hires union-bust­ing law firm

On July 20, Wiki Workers United U.S. de­manded vol­un­tary recog­ni­tion as a union from the Wikimedia Foundation, fol­low­ing a sim­i­lar re­quest for vol­un­tary recog­ni­tion made by WWU-UK, the UK branch of WWU, in June. The re­quest by Wiki Workers United U.S. de­manded a re­sponse from the Wikimedia Foundation by Friday, July 24, i.e. dur­ing the Wikimania con­fer­ence. No re­sponse was re­ceived by that date, though the topic of Wikimedia staffers union­iz­ing was dis­cussed at the con­fer­ence (see video on the right).

On July 27, the WMF pub­lished a state­ment de­clin­ing vol­un­tary recog­ni­tion of Wiki Workers United U.S.

The state­ment said:

[W]e be­lieve a se­cret-bal­lot elec­tion con­ducted by the National Labor Relations Board is the ap­pro­pri­ate path for­ward. This process pro­tects in­di­vid­ual choice and en­sures that any out­come re­flects the col­lec­tive will of those el­i­gi­ble to par­tic­i­pate.

[W]e be­lieve a se­cret-bal­lot elec­tion con­ducted by the National Labor Relations Board is the ap­pro­pri­ate path for­ward. This process pro­tects in­di­vid­ual choice and en­sures that any out­come re­flects the col­lec­tive will of those el­i­gi­ble to par­tic­i­pate.

The com­mu­nity re­sponse to the WMF state­ment has mostly been one of dis­may, with fears that the Foundation will use the time gap be­tween now and the se­cret bal­lot to dis­cour­age em­ploy­ees from union in­volve­ment, us­ing union bust­ing meth­ods as de­scribed hu­mor­ously in an episode of Last Week Tonight with John Oliver. A com­mu­nity pe­ti­tion to the WMF Board to rec­og­nize the union has been started on Meta-Wiki; as we were get­ting ready to pub­lish this is­sue, it had passed 150 sig­na­tures. Two prior com­mu­nity pe­ti­tions in sup­port of the union, started in May 2026 on Meta-Wiki and on English Wikipedia, have at­tracted well over 1,200 sig­na­tures each.

Jimmy Wales said on the Wikimedia-l mail­ing list that he had looked into the process fol­lowed by WWU, which had re­sulted in a su­per­ma­jor­ity of em­ploy­ees sign­ing a union card, and thought it im­per­fect:

One of the prob­lems with the process so far is that it was not se­cret and we have heard from some staff mem­bers that they felt pres­sured be­cause the or­ga­niz­ers would know how they de­cided. That is­n’t a great process and it goes against our move­men­t’s val­ues quite badly to have peo­ple in a sit­u­a­tion where they are pres­sured into some­thing one way or the other. It’s pretty easy to see the prob­lem if we imag­ine it in the other di­rec­tion - imag­ine some com­pany ask­ing staff to sign pledge cards not to join a union, and keep­ing track of who did or did­n’t in or­der to put pres­sure on those who did­n’t. Gross. It does­n’t make it bet­ter for it to be the other way around in my own per­sonal view. I want a process where staff are safe to de­lib­er­ate in the pri­vacy of their own minds and make the de­ci­sion based on all the avail­able ev­i­dence that makes the most sense to them. So I don’t think in­sist­ing on a proper vote is process for the sake of process and I say that with my own es­ti­mate that the staff will vote to sup­port union­iza­tion. I think we’ll be in a bet­ter place if it’s re­ally clear - a clean and clear choice with no chance of pres­sure. In terms of time, en­ergy, and money - I don’t think it should take very long and again speak­ing only for my­self I hope we get it done as quickly and ef­fi­ciently as we can and I hope that every­one - staff, man­age­ment, board, and com­mu­nity can come to­gether to cel­e­brate the out­come. I know I will.

One of the prob­lems with the process so far is that it was not se­cret and we have heard from some staff mem­bers that they felt pres­sured be­cause the or­ga­niz­ers would know how they de­cided. That is­n’t a great process and it goes against our move­men­t’s val­ues quite badly to have peo­ple in a sit­u­a­tion where they are pres­sured into some­thing one way or the other.

It’s pretty easy to see the prob­lem if we imag­ine it in the other di­rec­tion - imag­ine some com­pany ask­ing staff to sign pledge cards not to join a union, and keep­ing track of who did or did­n’t in or­der to put pres­sure on those who did­n’t. Gross. It does­n’t make it bet­ter for it to be the other way around in my own per­sonal view.

I want a process where staff are safe to de­lib­er­ate in the pri­vacy of their own minds and make the de­ci­sion based on all the avail­able ev­i­dence that makes the most sense to them. So I don’t think in­sist­ing on a proper vote is process for the sake of process and I say that with my own es­ti­mate that the staff will vote to sup­port union­iza­tion. I think we’ll be in a bet­ter place if it’s re­ally clear - a clean and clear choice with no chance of pres­sure.

In terms of time, en­ergy, and money - I don’t think it should take very long and again speak­ing only for my­self I hope we get it done as quickly and ef­fi­ciently as we can and I hope that every­one - staff, man­age­ment, board, and com­mu­nity can come to­gether to cel­e­brate the out­come. I know I will.

WWU an­nounced on 28 July that they would file for a union elec­tion with the National Labor Relations Board. The an­nounce­ment also ac­cused the Wikimedia Foundation of be­ing disin­gen­u­ous in their pub­lic com­mu­ni­ca­tions:

Thousands of work­ers across the tech and non­profit sec­tors have achieved vol­un­tary recog­ni­tion through this card check” method. Our de­mand of the Wikimedia Foundation was sim­ply that they live up to their val­ues and be the high-road em­ployer that they pur­port to be. They re­fused. While the Wikimedia Foundation touts to the pub­lic that they plan to take a neu­tral stance in our or­ga­niz­ing ef­forts, they have al­ready proven that not to be the case be­hind the scenes. When the Foundation re­jected our re­quest for vol­un­tary recog­ni­tion this week, they im­me­di­ately sent out to em­ploy­ees and the pub­lic state­ments couched in clas­sic union-bust­ing rhetoric, rhetoric un­doubt­edly pro­vided by out­ra­geously ex­pen­sive union-avoid­ance law firms. This in­sult­ing and waste­ful use of Foundation re­sources is both an in­sult to Foundation em­ploy­ees and to the Free Knowledge Movement as a whole. Insisting that our right to or­ga­nize be ad­ju­di­cated by the National Labor Relations Board is not a neu­tral choice; it has noth­ing to do with elec­tion pro­ce­dures or em­ployee choice. It has every­thing to do with de­lay­ing the process and stalling the vote in or­der to give time to the union busters to launch a po­ten­tially co­er­cive anti-union cam­paign against Foundation em­ploy­ees.

Thousands of work­ers across the tech and non­profit sec­tors have achieved vol­un­tary recog­ni­tion through this card check” method. Our de­mand of the Wikimedia Foundation was sim­ply that they live up to their val­ues and be the high-road em­ployer that they pur­port to be. They re­fused.

While the Wikimedia Foundation touts to the pub­lic that they plan to take a neu­tral stance in our or­ga­niz­ing ef­forts, they have al­ready proven that not to be the case be­hind the scenes. When the Foundation re­jected our re­quest for vol­un­tary recog­ni­tion this week, they im­me­di­ately sent out to em­ploy­ees and the pub­lic state­ments couched in clas­sic union-bust­ing rhetoric, rhetoric un­doubt­edly pro­vided by out­ra­geously ex­pen­sive union-avoid­ance law firms. This in­sult­ing and waste­ful use of Foundation re­sources is both an in­sult to Foundation em­ploy­ees and to the Free Knowledge Movement as a whole.

Insisting that our right to or­ga­nize be ad­ju­di­cated by the National Labor Relations Board is not a neu­tral choice; it has noth­ing to do with elec­tion pro­ce­dures or em­ployee choice. It has every­thing to do with de­lay­ing the process and stalling the vote in or­der to give time to the union busters to launch a po­ten­tially co­er­cive anti-union cam­paign against Foundation em­ploy­ees.

Community mem­bers ex­pressed con­cern about the fact that the Wikimedia Foundation has a busi­ness re­la­tion­ship with the Jones Day law firm, which is par­tic­u­larly well known in the U.S. for ag­gres­sive union bust­ing. In this con­text, it is worth point­ing out that the WMFs re­la­tion­ship with Jones Day dates back over a decade and that Jones Day has pri­mar­ily dealt with the Foundation’s brand and trade­mark man­age­ment. However, it even­tu­ally tran­spired that the Foundation has cho­sen to be rep­re­sented by the law firm Littler Mendelson, which has an equally strong rep­u­ta­tion for union bust­ing.

Relevant links:

June 24 press re­lease from the Communication Workers Union (CWU, UK)

FAQ, Wiki Workers United

Announcements, Wiki Workers United

July 20 press re­lease from Communications Workers of America (CWA)

July 27 WMF re­sponse, in­clud­ing an FAQ

National Labor Relations Board case page (for U.S. users), archive link for users out­side the U.S.

Community pages:

Wiki Workers United/Solidarity Signatures on Meta-Wiki, started 12 May 2026, over 1,250 sig­na­tures

Wikipedia:Wiki Workers United sol­i­dar­ity on English Wikipedia, started 21 May 2026, over 1,200 sig­na­tures

Community pe­ti­tion to the WMF Board to rec­og­nize the union on Meta-Wiki, started 28 July, over 150 sig­na­tures

AK

Eligibility cri­te­ria for board can­di­dates

Following the 2025 se­lec­tion process for the Wikimedia Foundation Board of Trustees, which saw two of the can­di­dates dis­qual­i­fied (see pre­vi­ous Signpost spe­cial re­port and in­ter­view as well as 2025 WMF Board re­form pe­ti­tion), the WMF Board de­cided to re­view the se­lec­tion process of new Trustees.

On 17 July, the board pub­li­cised its pro­posed new, sig­nif­i­cantly more strin­gent el­i­gi­bil­ity cri­te­ria. The main dif­fer­ence is that the pro­posed new cri­te­ria de­mand con­sid­er­ably more board or com­mu­nity ex­pe­ri­ence, with or­di­nary com­mu­nity mem­bers who are not al­ready of­fice hold­ers un­able to stand for elec­tion. The pro­posed new cri­te­ria are as fol­lows:

Minimum re­quire­ments

As of [Date of the ap­pli­ca­tions open­ing], can­di­dates must

Be flu­ent in English

Be at least 18 years old

Have a Wikimedia ac­count that is at least 4 years old

Be el­i­gi­ble to vote (2025 voter el­i­gi­bil­ity cri­te­ria for ref­er­ence)

Have not been re­moved for cause or de­parted af­ter in­ap­pro­pri­ate con­duct as a staff or Board mem­ber of the Wikimedia Foundation, Wikimedia Endowment, or other Wikimedia af­fil­i­ates

Fulfill at least one of the cat­e­gories of gov­er­nance or com­mu­nity ex­pe­ri­ence

Complete the WikiLearn WMF Board of Trustees Candidate Pre-Onboarding mod­ule be­fore pub­lish­ing their ap­pli­ca­tion

Categories of Governance or Community Experience

There are sev­eral cat­e­gories of com­mu­nity or gov­er­nance ex­pe­ri­ence that demon­strate knowl­edge of the Wikimedia pro­jects and trust in one’s abil­ity to ef­fec­tively work with other Wikimedia vol­un­teers.

Candidates must ful­fill at least one of the fol­low­ing cri­te­ria by hav­ing a to­tal of at least 2 years of ex­pe­ri­ence within the last 6 years, as of the [Date of the ap­pli­ca­tions open­ing]:

Served as a mem­ber of the Board of the Wikimedia Foundation or Wikimedia Endowment

Served as a mem­ber of the gov­ern­ing board of an or­ga­ni­za­tion at least 10% of the size of the Wikimedia Foundation (by an­nual bud­get or staff count)

Served in one of the fol­low­ing po­si­tions on a Wikimedia pro­ject: A mem­ber of one of the Arbitration Committees Global Sysop Steward Bureaucrat CheckUser Oversighter

A mem­ber of one of the Arbitration Committees

Global Sysop

Steward

Bureaucrat

CheckUser

Oversighter

Served in one of the fol­low­ing gov­er­nance po­si­tions for a Wikimedia af­fil­i­ate reg­is­tered as a le­gal en­tity and em­ploy­ing full-time staff, that is in good stand­ing (in com­pli­ance with grant and re­port­ing guide­lines and with­out any un­re­solved pro­ceed­ings with the Affiliations Committee dur­ing the can­di­date’s tenure): Chairperson A mem­ber of a Wikimedia af­fil­i­ate’s gov­ern­ing body for two con­sec­u­tive terms A mem­ber of the gov­ern­ing body of a rec­og­nized re­gional or the­matic hub for two con­sec­u­tive terms

Chairperson

A mem­ber of a Wikimedia af­fil­i­ate’s gov­ern­ing body for two con­sec­u­tive terms

A mem­ber of the gov­ern­ing body of a rec­og­nized re­gional or the­matic hub for two con­sec­u­tive terms

Served in one of the fol­low­ing Wikimedia com­mit­tee po­si­tions: An ad­vi­sor to one of the Wikimedia Foundation Board Committees (Currently: Executive, Audit, Governance, and Product & Technology) or the Wikimedia Endowment Board Committees (Currently: Finance, Community & Grantmaking, Audit, and Governance) A mem­ber of the Elections Committee (EC), given that at least 18 months have elapsed since the end of their term (per the EC char­ter) A mem­ber of one of the Wikimedia Movement com­mit­tees (Currently: Language Committee, Product & Technology Advisory Council, the Global Resource Distribution Committee, Affiliations Committee, and Universal Code of Conduct Coordinating Committee) A mem­ber of the Wikimedia Foundation Grant Committees (Regional, Conference, Research Funds)

An ad­vi­sor to one of the Wikimedia Foundation Board Committees (Currently: Executive, Audit, Governance, and Product & Technology) or the Wikimedia Endowment Board Committees (Currently: Finance, Community & Grantmaking, Audit, and Governance)

A mem­ber of the Elections Committee (EC), given that at least 18 months have elapsed since the end of their term (per the EC char­ter)

A mem­ber of one of the Wikimedia Movement com­mit­tees (Currently: Language Committee, Product & Technology Advisory Council, the Global Resource Distribution Committee, Affiliations Committee, and Universal Code of Conduct Coordinating Committee)

A mem­ber of the Wikimedia Foundation Grant Committees (Regional, Conference, Research Funds)

We wel­come peo­ple’s in­ter­est in be­com­ing mem­bers of the Board of Trustees. We en­cour­age those who do not meet the cri­te­ria to ex­press their in­ter­est, con­sider lead­er­ship train­ing and ways to gain rel­e­vant ex­pe­ri­ence in or­der to be el­i­gi­ble in the fu­ture.

Feedback is in­vited on Meta-Wiki. AK, C

Reports of sex­ual ha­rass­ment at Wikimania events

On July 26, Wikimedia Korea re­leased an open let­ter call­ing for an in­ves­ti­ga­tion af­ter al­le­ga­tions a Wikimania par­tic­i­pant ex­pe­ri­enced un­sought phys­i­cal con­tact and sex­ual ha­rass­ment.

Several key ac­tivists from Wikimedia Korea took part in this event. I had hoped that our par­tic­i­pants would re­turn from this event—which brings to­gether Wikimedians from around the world—hav­ing gained a range of valu­able ex­pe­ri­ences, and that they would con­tinue their ac­tiv­i­ties with even greater vigour. However, to­day I heard that one of our mem­bers whilst of­fer­ing well-in­ten­tioned as­sis­tance to an­other par­tic­i­pant, was in­stead sub­jected to un­wanted, forced phys­i­cal con­tact and sex­ual ha­rass­ment. We find this deeply re­gret­table and are deeply dis­mayed. — User:Jjw, pres­i­dent of Wikimedia Korea Wikimedia Korea/Open let­ter to the Wikimania com­mu­nity July 26 (translation)

Several key ac­tivists from Wikimedia Korea took part in this event. I had hoped that our par­tic­i­pants would re­turn from this event—which brings to­gether Wikimedians from around the world—hav­ing gained a range of valu­able ex­pe­ri­ences, and that they would con­tinue their ac­tiv­i­ties with even greater vigour. However, to­day I heard that one of our mem­bers whilst of­fer­ing well-in­ten­tioned as­sis­tance to an­other par­tic­i­pant, was in­stead sub­jected to un­wanted, forced phys­i­cal con­tact and sex­ual ha­rass­ment. We find this deeply re­gret­table and are deeply dis­mayed. — User:Jjw, pres­i­dent of Wikimedia Korea Wikimedia Korea/Open let­ter to the Wikimania com­mu­nity July 26 (translation)

Wikimedia Malaysia re­leased a state­ment the next day, and said that one of their own mem­bers had ex­pe­ri­enced sex­ual ha­rass­ment in a sep­a­rate in­ci­dent.

Their is­sue is not an iso­lated case. Earlier, one of our own com­mu­nity mem­bers who at­tended the con­fer­ence in per­son has filed a Trust and Safety com­plaint to the con­fer­ence team re­gard­ing a sep­a­rate case of sex­ual ha­rass­ment by an­other Wikimedian against an­other Wikimedian from a dif­fer­ent re­gion. Similar to the other case, this case also in­volved phys­i­cal touch and force­ful in­ti­macy against a per­son who has ex­pressed her dis­com­fort at a breach of per­sonal space. — Tofeiku, Chair of Wikimedia CUG Malaysia, on Wikimedia CUG Malaysia’s re­sponse in sup­port of Wikimedia Korea’s state­ment on Wikimania (translation)

Their is­sue is not an iso­lated case. Earlier, one of our own com­mu­nity mem­bers who at­tended the con­fer­ence in per­son has filed a Trust and Safety com­plaint to the con­fer­ence team re­gard­ing a sep­a­rate case of sex­ual ha­rass­ment by an­other Wikimedian against an­other Wikimedian from a dif­fer­ent re­gion. Similar to the other case, this case also in­volved phys­i­cal touch and force­ful in­ti­macy against a per­son who has ex­pressed her dis­com­fort at a breach of per­sonal space. — Tofeiku, Chair of Wikimedia CUG Malaysia, on Wikimedia CUG Malaysia’s re­sponse in sup­port of Wikimedia Korea’s state­ment on Wikimania (translation)

Vice President of the WMF Community Resilience & Sustainability team Maggie Dennis re­sponded to the open let­ter, con­firm­ing com­mu­ni­ca­tion with the in­di­vid­u­als in­volved.

The Foundation is treat­ing this mat­ter se­ri­ously. You may be aware that we do not dis­cuss Trust & Safety in­ci­dents in re­spect to the pri­vacy of all in­di­vid­u­als, but I can con­firm that we are in con­tact with in­di­vid­u­als in­volved in the re­ported in­ci­dent and wit­nesses to other con­cern­ing be­hav­iors. […] While we will not be able to up­date com­mu­nity, in­clud­ing Wikimedia Korea, on the out­comes ac­cord­ing to stan­dard Trust & Safety poli­cies, the per­son who made the re­port to us will be told the out­come di­rectly. — Maggie Dennis at Community Resilience & Sustainability/Response to Open let­ter to the Wikimania com­mu­nity July 26

The Foundation is treat­ing this mat­ter se­ri­ously. You may be aware that we do not dis­cuss Trust & Safety in­ci­dents in re­spect to the pri­vacy of all in­di­vid­u­als, but I can con­firm that we are in con­tact with in­di­vid­u­als in­volved in the re­ported in­ci­dent and wit­nesses to other con­cern­ing be­hav­iors. […] While we will not be able to up­date com­mu­nity, in­clud­ing Wikimedia Korea, on the out­comes ac­cord­ing to stan­dard Trust & Safety poli­cies, the per­son who made the re­port to us will be told the out­come di­rectly. — Maggie Dennis at Community Resilience & Sustainability/Response to Open let­ter to the Wikimania com­mu­nity July 26

–M

The ti­tle of this en­try is from the Abstract Wikipedia ar­ti­cle on it­self.

A Request for com­ment has opened over on Meta Wiki about Abstract Wikipedia. Discussion is on­go­ing about whether rolling out to more lan­guages should be paused, the pro­ject should be closed, or the Foundation should have more transparency” about the pro­ject. Originally ap­proved by the Board of Trustees in 2020, the pro­ject aims to pro­vide a way for smaller lan­guage Wikipedias to ac­cess ar­ti­cles in their lan­guage. The com­mu­nity has raised con­cerns about al­low­ing the in­te­gra­tion of Abstract Wikipedia into small-lan­guage Wikipedias given its cur­rent state. The Wikimedia Foundation has re­sponded on Meta-Wiki, ex­press­ing con­fi­dence in its ap­proach to nat­ural lan­guage gen­er­a­tion and the im­prove­ment of pro­ject qual­ity over time, and ac­knowl­edg­ing the dif­fi­culty of nav­i­gat­ing doc­u­men­ta­tion and re­port­ing on the pro­jec­t’s de­vel­op­ment.

Relevant links:

Request for Comment on Abstract Wikipedia

Response from the pro­ject team to the crit­i­cism

– M

Brief notes

New ad­min­is­tra­tors: The Signpost wel­comes the English Wikipedia’s newest ad­min­is­tra­tors, MCE89 and Staraction, elected through old fash­ioned” re­quests for ad­min­ship. Of note, a hand­ful of ed­i­tors op­posed both RfAs ex­plain­ing they saw open-ended sup­port of the Wikimedia Foundation work­ers’ union (see above and prior Signpost cov­er­age) as po­ten­tially dam­ag­ing to the pro­ject.

Articles for Improvement: This week’s Article for Improvement is Customer ex­pe­ri­ence, and next week’s (starting 3 August) is HDR10. Please be bold in help­ing im­prove these ar­ti­cles!

In this is­sue

Security Verification

www.ft.com

For help please visit help.ft.com. We apol­o­gise for any in­con­ve­nience.

The fol­low­ing in­for­ma­tion can help our sup­port team to re­solve this is­sue.

How the Words We Teach English Language Learners Changed

pudding.cool

Look through the words scat­tered around this page. Every one of them is among the most com­monly used words in the English lan­guage.

They come from a 2023 list of about 2,800 words, shown to cover over 90% of gen­eral English use, in­tended for peo­ple learn­ing the lan­guage.

This 2023 list is an up­date of an ear­lier one, made in 1953, which iden­ti­fied about 2,300 words as the es­sen­tial vo­cab­u­lary to every­day life at the time.

Between the two lists, 70 years apart, about 600 words were dropped, and over 1,100 were added. The rest re­mained as is.

Some of the changes make im­me­di­ate sense: Telegraph dropped out; com­puter was added, along with web­site and blog. Tobacco was re­placed by cig­a­rette. Motherhood be­came mom, and dad was added too, though fa­ther­hood was never on the list to be­gin with. The world changed and vo­cab­u­lary surely fol­lowed.

But also: ap­ple did­n’t make the new list. Neither did fork, soap, um­brella or leaf, for ex­am­ple. It’s not that these things van­ished from every­day life, but many hands-on words be­came less cen­tral to the core vo­cab­u­lary. Dog stayed; goat and don­key did­n’t. Bread stayed; bread­mak­ing in­gre­di­ents—flour and wheat—dropped. Cook is on the new list. Boil, bake, and fry are not.

And many of the words that were added, such as mort­gage, cor­po­ra­tion, ap­pro­pri­ate, analy­sis, fairly, and de­spite, don’t look any­thing like the ones that were dis­carded. In fact, they are mostly ab­stract con­cepts that don’t look like any­thing at all.

A

Added to 2023 list

A

Removed from 1953 list

A

In both lists

From Goat to Despite

How the Words We Teach English Language Learners Changed, and What That Says About Us

By Jasmine Nackash

These essential vo­cab­u­lary” lists are called the General Service List (1953) and the New General Service List (2013, re­vised in 2023).

They were de­signed as teach­ing tools for peo­ple learn­ing English as a sec­ond lan­guage, built from real-world us­age data and ex­ten­sively tested. The aim was a vo­cab­u­lary list with as few words and as much cov­er­age of every­day English us­age. That cov­er­age is high, over 90% for the 2023 list1 and about 84% for the 1953 list.2 To ac­count for that much of the lan­guage, they had to track a sig­nif­i­cant por­tion of what­ever peo­ple were ac­tu­ally read­ing and say­ing. A word earned its place by ap­pear­ing of­ten enough, across enough con­texts, to be hard to avoid for the av­er­age per­son in an English-speaking so­ci­ety. Open the word lists panel on the right to browse through all the en­tries in both lists.

While these were prac­ti­cal tools, built to cap­ture which words peo­ple need most, the an­swer also dou­bles as a snap­shot of or­di­nary life, 70 years apart: what peo­ple were ex­pected to en­gage with, and had to deal with, in their daily lives.

Treating the lists as an in­di­rect record of day-to-day life, I went through the dif­fer­ences be­tween them from a few an­gles: what the words were about, how tan­gi­ble were they, and to which parts of speech they be­longed.

I started by us­ing a com­mon lin­guis­tics re­search tool3 that sorted all of the words by mean­ing. It as­signed each word to one of 21 sub­ject cat­e­gories, based on typ­i­cal us­age: Food and Farming, the Body and the Self, Government and Public, Language and Communication, and so on. Together, they sug­gested what kind of world each list was built for.

Data source: all words run through the UCREL Semantic Analysis System (USAS).

The cat­e­gories that shrank are mostly those that have to do with the im­me­di­ate, phys­i­cal world, while the gains are those fur­thest from it.

To bet­ter see this, the cat­e­gories can be ori­ented spa­tially. Some cat­e­gories de­scribe you: your body and emo­tions. Some de­scribe what’s im­me­di­ately around you: food, ob­jects, and the nat­ural world. Others name sys­tems you par­tic­i­pate in: gov­ern­ment, in­sti­tu­tions, so­ci­ety, and cul­ture. And some have no lo­ca­tion at all: ab­stract con­cepts, rea­son­ing, and processes. When we look at the data grouped by phys­i­cal scope, the pat­tern of change seems to point in a spe­cific di­rec­tion.

The Self: Emotion | The Body and the Individual

Local/Immediate: Substances, Materials, Objects and Equipment | Food and Farming | Life and Living Things | Architecture, Housing and the Home | World and Environment

Institutional: Money and Commerce in Industry | Government and Public | Education | Science and Technology

Social/Communicative: Social Actions, States, and Processes | Movement, Location, Travel and Transport | Language and Communication | Entertainment, Sports and Games | Arts and Crafts

Universal/Abstract: General and Abstract Terms | Psychological Actions, States and Processes | Numbers and Measurement | Names and Grammar | Time

In hind­sight, the shift makes sense. By 1957, four years af­ter the orig­i­nal list was pub­lished, white-col­lar work­ers out­num­bered blue-col­lar for the first time in US his­tory. And by 2000, fewer than one in four work­ers did man­ual la­bor. The stuff peo­ple en­coun­tered in their daily lives, what they needed to talk about, and the sys­tems they had to nav­i­gate all changed.

The vo­cab­u­lary lists, built from the lan­guage of their re­spec­tive eras, tracked those changes. The shifts re­flect a life that moved fur­ther from its own mak­ing: less tied to tools, an­i­mals, food, and the body; more tied to na­tional or global in­sti­tu­tions, cat­e­gories, sys­tems, and ideas.

The new vo­cab­u­lary—mort­gage, leg­is­la­tion, per­spec­tive, in­volve­ment, im­prove­ment, as­sump­tion, eval­u­a­tion—are words you can’t weigh, point to, or hold in your hand. These words shape your life, but they do it with­out oc­cu­py­ing phys­i­cal space.

To bet­ter un­der­stand whether there was a shift in vo­cab­u­lary de­scrib­ing the phys­i­cal world, I com­pared each word to a data­base that rates its tan­gi­bil­ity on a scale of 1 to 5 (called a concreteness rat­ing4”). A rat­ing of 5 means you can ex­pe­ri­ence the word di­rectly with your senses, while a rat­ing of 1 means you can’t.

The highly con­crete end dropped the most: from 21% of the to­tal in 1953 down to 14% in 2023.

Kernel den­sity es­ti­ma­tion, band­width 0.08 · Data source: Brysbaert et al. (2014)

This shift mat­ters be­cause ab­stract and con­crete words are processed by our brains in dif­fer­ent ways. When you read axe, your brain does­n’t just de­code let­ters, it reaches for some­thing: an im­age, a weight, or a ges­ture. The word ac­ti­vates both a ver­bal la­bel and a sen­sory trace. Psychologists call this dual cod­ing:5 Concrete words travel through two chan­nels, ver­bal and sen­sory; ab­stract words travel through one. Two chan­nels mean two re­trieval path­ways, which is why con­crete words are stickier,” eas­ier to hold in a line of thought and faster to re­call. Abstract words, on the other hand, are purely ver­bal, and have to be un­der­stood through lan­guage alone.

To put it an­other way: Concrete words are eas­ier for us to process be­cause they are bun­dled with a web of as­so­ci­a­tions, tac­tile ex­pe­ri­ences, and mem­o­ries that an­chor their mean­ing. Here’s a more de­tailed view of the shift away from con­crete lan­guage:

Data source: Brysbaert Concreteness rat­ings for 40 thou­sand gen­er­ally known English word lem­mas. The dataset pro­vided 99.8% cov­er­age of the words in both lists. 6 words not in the dataset are not in­cluded in this chart: as, di­a­log, eng­lish, gai­ety, mad­den, old-fash­ioned.

While con­crete words have sen­sory ground­ing to carry their mean­ing, ab­stract words rely on other parts of speech to spec­ify, soften, or sharpen what they mean. That help tends to come from one par­tic­u­lar cor­ner of the lan­guage: ad­verbs.

The 2023 list con­tains more words over­all (2,809 vs. 2,284). All changes men­tioned in the text re­flect each cat­e­go­ry’s share of its list, not raw counts. Data source: NLTK (Natural Language Toolkit), with man­ual cor­rec­tion of mis­la­beled words.

Axe does­n’t need an ad­verb to mod­ify it; you know what it is. But ac­cept­able, rel­e­vant, and ad­e­quate come with con­di­tions, qual­i­fi­ca­tions, and de­grees that need to be spelled out. Adverbs do pre­cisely that: lan­guage to cal­i­brate lan­guage. Look through all the ad­verbs that were added:

ab­solutely­ac­tu­allya­longsideany­more­ap­par­entlyap­prox­i­matelyau­to­mat­i­cally­badly­barely­ba­si­cally­briefly­care­ful­lyc­er­tain­ly­clear­ly­close­ly­complete­ly­con­se­quent­ly­con­stant­ly­cur­rent­ly­deeply­def­i­nite­ly­d­if­fer­ent­ly­di­rect­ly­dra­mat­i­cal­lyeasi­ly­ef­fec­tive­lyen­tire­lye­qual­lyeven­tu­al­lyex­act­lyex­treme­ly­fair­ly­faith­ful­ly­fi­nal­ly­firm­ly­first­ly­forever­fre­quent­ly­ful­ly­fur­ther­more­gen­er­al­ly­gent­ly­grad­u­al­ly­great­ly­heav­i­ly­hence­high­ly­hope­ful­ly­im­me­di­ate­ly­in­creas­ing­lyini­tial­ly­large­lylit­er­al­ly­main­ly­mere­ly­month­ly­most­ly­nat­u­ral­lyn­ear­byn­ear­lynec­es­sar­i­lyn­ev­er­the­less­new­ly­nor­mal­ly­ob­vi­ous­ly­oc­ca­sion­al­ly­o­rig­i­nal­ly­over­sea­spar­tic­u­lar­ly­part­lyper­fect­lyper­son­al­ly­pos­si­bly­po­ten­tial­ly­pre­cise­lypre­sum­ablypre­vi­ous­lypri­mar­i­lyprob­a­blyprop­er­lyquick­lyqui­et­lyrapid­lyrarelyre­al­lyrea­son­ablyre­cent­lyre­gard­less­reg­u­lar­lyrel­a­tive­lyre­spec­tive­ly­roughl­y­sec­ondl­y­se­ri­ouslysig­nif­i­cantlysim­i­larlysim­plyslightlyslowlysome­what­specif­i­cally­strongly­sub­se­quently­suc­cess­fully­sud­denly­surely­surpris­ing­ly­to­tal­lytru­lytwice­typ­i­cal­lyul­ti­mate­lyun­for­tu­nate­lyusu­al­lyvir­tu­al­ly­widely

Most of the ad­verbs spec­ify de­gree, fre­quency, cer­tainty, and ex­tent. Some hedge (somewhat, partly, rel­a­tively, pos­si­bly, ap­prox­i­mately). Others as­sert (absolutely, def­i­nitely, en­tirely, ex­actly, pre­cisely). They’re all do­ing the same kind of work: Take a state­ment and tell you how much of it is true, how of­ten, and how cer­tain. It’s as if the world now re­quires you to be more pre­cise about every­thing.

Bread sur­vived both lists. Flour, wheat, har­vest and bake did­n’t. The word for what sus­tains us re­mained es­sen­tial, while the words for how we’d make it weren’t. That might be the most hon­est sum­mary of what hap­pened.

The world that made the 2023 list is more reg­u­lated, more con­nected, and in many ways more ca­pa­ble than the one be­hind the 1953 list. It’s a world fur­ther than our kitchen or home, reach­ing across economies, in­sti­tu­tions, and democ­ra­cies.

Today’s vo­cab­u­lary re­flects a life that is­n’t self-con­tained, but rather more sys­temic. It’s not so much about what’s within ar­m’s reach, but more about the larger world we nav­i­gate through. That sort of long-dis­tance con­nec­tion re­quires a par­tic­u­lar kind of lan­guage: ex­pan­sive, ab­stract, and pre­cise. And lan­guage, it turns out, can’t help it­self. It keeps track.

Methods & Notes

I com­pared two promi­nent vo­cab­u­lary lists for English learn­ers: the General Service List (GSL, 1953; 2,284 words) and the New General Service List (NGSL 1.2, 2023; 2,809 words). I la­beled words ap­pear­ing on both lists as remained” (1,656), words only on the 1953 list as removed” (628), and words only on the 2023 list as added” (1,153).

The GSL words came from the Simple English Wiktionary GSL. The NGSL words came from the of­fi­cial NGSL 1.2 file (“alphabetized and lem­ma­tized for re­search”). The NGSL uses lem­mas (one en­try per word fam­ily); the GSL some­times lists in­flected forms as sep­a­rate head­words. These lists track word forms deemed worth teach­ing based on fre­quency and use­ful­ness, not ab­stract con­cepts. For ex­am­ple, the word be­ing is on the GSL as its own head­word and was not in­cluded in the NGSL, But this does­n’t mean the con­cept of ex­is­tence left the lan­guage. In the NGSL it falls un­der be, which is on both lists.

Both lists were built for teach­ing, but ex­ter­nal re­search sug­gests each cov­ers a large share of every­day lan­guage use. About 84% of gen­eral English for the GSL and about 90% for the NGSL, de­pend­ing on the text and how words are counted. I did not re-run those cor­pus analy­ses my­self. I take the pub­lished ma­te­ri­als as given and rely on cov­er­age fig­ures from the list au­thors and from fol­low-up stud­ies (including an in­de­pen­dent check on American English by Stoeckel, 2019 — see foot­notes). That’s why the dif­fer­ences be­tween the lists felt worth ex­am­in­ing as more than a cur­ricu­lum up­date, with the caveat that nei­ther list is a neu­tral cen­sus of cul­ture.

All tagged words: re­mained, re­moved, and added, with se­man­tic tags, con­crete­ness rat­ings, and part-of-speech la­bels are in this pub­lic spread­sheet. You can also browse the word lists in the word-list panel on the right side of this page.

Each word was tagged with the UCREL Semantic Analysis System (USAS), us­ing the 21 top-level cat­e­gories. USAS also as­signs much finer sub-cat­e­gories (there are hun­dreds), but I stayed at the top level so the charts could show broad shifts with­out split­ting the words into overly gran­u­lar bins.

I chose not to cor­rect mis­la­bels. For ex­am­ple, ham­mer, nail, and wax are all tagged General and Abstract Terms”, but in USASs finer tags, they read as ac­tions (“to ham­mer,” to nail,” to wax”), not ob­jects. Out of con­text, many of these words go mul­ti­ple ways, and it did­n’t feel right to over­ride that case by case; USAS is an es­tab­lished lin­guis­tic frame­work, and swap­ping in my own judg­ment would mix two dif­fer­ent stan­dards.

For the sec­ond chart, I grouped USASs 21 cat­e­gories into five scope” do­mains (self, lo­cal, in­sti­tu­tional, so­cial, ab­stract). That group­ing is my ed­i­to­r­ial choice, not part of USAS. It came from notic­ing a spa­tial qual­ity to the trends seen across the 21 cat­e­gories.

Concreteness rat­ings come from Brysbaert et al. (2014). I used these as-is. Six words weren’t in the data­base and were left out of the con­crete­ness charts: as, di­a­log, eng­lish, gai­ety, mad­den, and old-fash­ioned.

Parts of speech were tagged with NLTK, sim­pli­fied to five cat­e­gories. Here I did in­ter­vene, but only when a word was clearly mis­la­beled (132 words, 3.8% of the list; mostly ad­jec­tives mis­la­beled as nouns). When a word can act as more than one part of speech de­pend­ing on con­text, I left the tag as-is and de­ferred to NLTK as the es­tab­lished frame­work, us­ing the pri­mary, most com­mon la­bel. Here I also used an LLM strictly to help flag po­ten­tial er­rors in NLTKs out­put.

Both lists rank words by fre­quency, then ap­ply learner-fo­cused cu­ra­tion. Michael West’s 1953 list es­pe­cially re­flects pe­riod ped­a­gogy. He fa­vored gen­eral-pur­pose vo­cab­u­lary over emo­tional or highly spe­cific words, not just what­ever ap­peared most of­ten (Therova, 2020, sum­ma­riz­ing West, 1953, pp. ix–x). Some of what looks like 1950s life” may also be how mid-cen­tury ESL teach­ing fil­tered the lan­guage. I still treat the lists as a por­trait of every­day English be­cause both cover a large share of run­ning text and speech that goes well be­yond the class­room.

On NGSLs ~90% cov­er­age: Browne, Culligan & Phillips, NGSL pro­ject. See also: A New General Service List: The Better Mousetrap We’ve Been Looking for?, Browne (2014); and An Examination of the New General Service List, Stoeckel (2019). ⏎

On GSLs ~84% cov­er­age: A gen­eral ser­vice list of English words with se­man­tic fre­quen­cies, West (1953); The New General Service List: A core vo­cab­u­lary for EFL stu­dents and teach­ers, Cambridge ELT (2018). ⏎

UCREL: Semantic Analysis System (USAS). ⏎

Concreteness rat­ings for 40 thou­sand gen­er­ally known English word lem­mas, Brysbaert, M., Warriner, A. B., & Kuperman, V. (2014). Behavior Research Methods, 46, 904 – 911. ⏎

Why are pic­tures eas­ier to re­call than words? Paivio, A., Rogers, T.B. & Smythe, P.C. Psychon Sci 11, 137 – 138 (1968). ⏎

GitHub - wie-project/kakehashi: Userspace macOS translation layer for Linux ARM64

github.com

Userspace ma­cOS ARM64 → Linux aarch64 trans­la­tion layer (CLI-first, no JIT).

Load Darwin Mach-O on Linux aarch64, map a free­stand­ing lib­Sys­tem, trans­late BSD syscalls, and run real guests (clang probes, 7-Zip 7zz, curl, threads).

What works

Verified on Docker/Colima and UTM (Linux aarch64). Install once:

cargo in­stall kake­hashi # or from a check­out: cargo in­stall –path crates/​kh-cli –force

kh bot­tle en­sure kh in­stall 7zip # Darwin 7zz → guest /usr/local/bin/7zz kh in­stall curl # Darwin curl → guest /usr/local/bin/curl

Relative -o / archive paths re­solve against the host CWD of the kh process (create par­ent dirs your­self, or rely on auto-mkdir for O_CREAT). Through the bot­tle, /Volumes/linux/… bridges to the host root (/ → host /).

7-Zip (7zz)

# Version / help kh run 7zz — kh run 7zz — –help

# Create archive (cwd-relative) kh run 7zz — a demo.7z README.md kh run 7zz — t demo.7z kh run 7zz — l demo.7z kh run 7zz — x -o./out demo.7z

# Multi-thread com­press (correctness gate) kh run 7zz — a -t7z -m0=lzma2 -mx=5 -mmt=4 mt.7z README.md kh run 7zz — t mt.7z # ex­pect: Everything is Ok, exit 0

Docker helpers (artifacts un­der host .tmp/kh-out/):

./scripts/docker-7zz.sh –help ./scripts/docker-7zz.sh a /Volumes/linux/out/demo.7z /Volumes/linux/src/README.md ls -lh .tmp/kh-out/demo.7z

KAKEHASHI_HYPERCALL=1 ./scripts/docker-7zz.sh a -t7z -m0=lzma2 -mx=5 -mmt=4 \ /Volumes/linux/out/mt.7z /Volumes/linux/src/README.md ./scripts/docker-7zz.sh t /Volumes/linux/out/mt.7z

curl

# Banner (G1) kh run curl — –version

# HTTP GET → file (G3 / G5). Parents for -o are cre­ated when miss­ing. kh run curl — -sS -o .tmp/kh-out/body http://​ex­am­ple.com/ # ex­pect: exit 0, ~559 bytes, HTML con­tains Example Domain” wc -c .tmp/kh-out/body head -c 80 .tmp/kh-out/body; echo

# HTTP to std­out kh run curl — -sS http://​ex­am­ple.com/ | head -c 80; echo

# HTTPS GET (G4) — OpenSSL + bot­tle CA (from host or curl.se down­load) kh run curl — -sS -o .tmp/kh-out/https-body https://​ex­am­ple.com/ wc -c .tmp/kh-out/https-body

# Negative: bad / self-signed cert must fail (rc ≠ 0) kh run curl — -sS -o /dev/null https://​self-signed.badssl.com/; echo exit:$?

Docker helpers:

./scripts/docker-curl.sh –version ./scripts/docker-curl.sh -sS -o /Volumes/linux/out/body http://​ex­am­ple.com/ ./scripts/docker-curl.sh -sS -o /Volumes/linux/out/https-body https://​ex­am­ple.com/ ls -lh .tmp/kh-out/body .tmp/kh-out/https-body

# Trace-first probe logs → .tmp/kh-curl-probe/ ./scripts/docker-curl-probe.sh –version

# Option ma­trix (large tiers) → .tmp/kh-curl-options/ ./scripts/docker-curl-options.sh tier1 ./scripts/docker-curl-options.sh tier9 – 10 ./scripts/docker-curl-options.sh all # tier1..10

Harmless noise on many runs:

kh: open fail ENOENT(openat) path=/​etc/​ssl/​openssl.cnf — OpenSSL op­tional con­fig; HTTP/HTTPS still work via the seeded CA bun­dle.

WARN … skip dylib … Security/CoreFoundation — Apple frame­works not in the bot­tle; soft stubs cover the load path.

un­re­solved strong sym­bol; bound to named miss­ing tram­po­line — sym­bols not hit on the happy path.

Details and gates: docs/​curl.md.

Also green

Not a prod­uct claim (yet)

Full curl fea­ture set (POST bod­ies, prox­ies, HTTP/3 end-to-end, every scheme), real Apple Security.framework, git / CLT, GUI, code­sign. Next prod­uct slice: git via kh in­stall xcode-tools — see docs/​git.md.

Crates

The guest dylib is ven­dored at crates/​kh-run­time/​re­sources/​lib­Sys­tem.B.dylib and com­piled into the run­time with in­clude_bytes!. Publishing kh-run­time ships the dylib; end users do not need a sep­a­rate down­load.

Requirements

Rust 1.88+

Linux aarch64 for live kh run / kh trace

Page sizes: 4 KiB (containers) and 16 KiB (Asahi-class)

Optional: curl/​wget + tar for kh in­stall 7zip / kh in­stall curl

Install

cargo in­stall kake­hashi # or from a check­out: cargo in­stall –path crates/​kh-cli

kh bot­tle en­sure kh in­stall 7zip kh in­stall curl

Bottle lay­out

Default root: ~/.local/share/kakehashi/bottle/ (override with KAKEHASHI_DATA_DIR / KAKEHASHI_ROOT).

Performance (honest)

Kakehashi runs guest code na­tively on the CPU. The tax is the syscall bound­ary (TLS switch, alt stack, NEON save/​re­store, Rust dis­patch) × how chatty the guest is — not an in­struc­tion em­u­la­tor.

Measured gap

On Ubuntu aarch64 bare-metal (UTM), multi-file 7zz archive (-t7z -m0=lzma2 -mx=5 -mmt=4, ~8k files / ~240 MiB tree):

On com­pres­sion-heavy, few-file sam­ples the gap is of­ten much smaller (~×1.1 – 1.2). The large multi-file gap is dom­i­nated by path walk + per-syscall bound­ary, not wrong LZMA.

Hypercall is on by de­fault for all guest threads. Opt out with KAKEHASHI_HYPERCALL=0 only for de­bug (residual svc→brk / SIGTRAP).

Why ~×5 is still use­ful in CI

The prod­uct goal for CI is not as fast as na­tive ma­cOS,” but run Darwin CLI/tools on cheap Linux aarch64 run­ners in­stead of scarce, ex­pen­sive ma­cOS ca­pac­ity.

GitHub Actions hosted run­ners (private-repo over­age rates, USD per minute; see Actions run­ner pric­ing):

ma­cOS stan­dard is roughly ×10–×12 the Linux ar­m64 minute rate be­fore any wall-time dif­fer­ence. Even if a job runs ×5 slower un­der kh on Linux ar­m64 than the same work on a ma­cOS run­ner, bill­able cost can still be lower be­cause the ma­cOS minute is an or­der of mag­ni­tude more ex­pen­sive (illustrative: 5 × $0.005 ≈ $0.025 vs 1 × $0.062). Public-repo free min­utes and self-hosted Linux am­plify that fur­ther; ma­cOS hosted ca­pac­ity also tends to queue longer and (on GitLab SaaS) is Premium/Ultimate / beta-gated.

When ma­cOS run­ners still win: GUI, code­sign/​no­ta­riza­tion, Xcode UI tests, or any work­load that is not a pure CLI Darwin bi­nary un­der free­stand­ing lib­Sys­tem.

Gates, not benches: CI cor­rect­ness is cargo test / smoke / 7zz -mmt=4, not match na­tive wall clock.” Perf work is tracked in docs/​roadmap.md.

Quick start (Docker / Colima on Apple Silicon)

docker build -t kake­hashi:dev -f Dockerfile.dev . docker run –rm -v $PWD”:/src -w /src kake­hashi:dev \ cargo test –workspace –exclude kh-lib­sys­tem

# Full smoke (build + clippy + test + mi­cro run) ./scripts/docker-smoke.sh

Build

cargo build -p kake­hashi –release cargo test –workspace –exclude kh-lib­sys­tem cargo clippy –workspace –exclude kh-lib­sys­tem –all-targets — -D warn­ings

# Maintainers: re­fresh em­bed af­ter free­stand­ing ABI changes cargo build -p kh-lib­sys­tem –release –target aarch64-ap­ple-dar­win ./scripts/stage-libsystem.sh # → crates/​kh-run­time/​re­sources/​lib­Sys­tem.B.dylib

lib­Sys­tem dis­cov­ery: –libsystem → KAKEHASHI_LIBSYSTEM → paths next to kh → crate re­sources/ → em­bed­ded bytes in kh-run­time.

Testing map

.tmp/, .kh/, and tar­get/ are git­ig­nored.

Guest path ↔ host path (Docker helpers)

Bottle bridges the Linux FS as /Volumes/linux/…:

Scripts

License

Apache License 2.0. See LICENSE.txt and NOTICE.

This pro­ject is not de­rived from Darling. Do not ven­dor pro­pri­etary Apple SDKs or blobs.

Developers are attached to tools because tools encode trust

stackoverflow.blog

About six years ago, we ran a piece about IDEs where the gist was that IDEs were get­ting to be so pow­er­ful and ca­pa­ble that it was a mar­vel that any­body used Vim or Emacs like a cave­man. While yes, it was a provoca­tive ar­ti­cle, it got a lot of de­vel­op­ers pretty riled up. Comments came from both sides, both from folks trash­ing the ar­ti­cle for not un­der­stand­ing how de­vel­op­ers work and from those de­vel­op­ers who preach the good news of Emacs all day. But mostly there was a great dis­cus­sion about why these tools were ac­tu­ally use­ful.

For a novice, Vim and Emacs can seem like un­in­tu­itive ter­mi­nal pro­grams that re­quire mem­o­riza­tion of se­cret key­strokes to use (and es­cape). But for the ex­pe­ri­enced user, it can feel as nat­ural as think­ing. One com­ment pointed to The Pragmatic Programmer by David Thomas and Andrew Hunt, which ex­plained that de­vel­op­ers—crafts­men that they are (or were)—need sharp tools” that feel like an ex­ten­sion of their hand. Vim and Emacs, in their in­fi­nite cus­tomiz­abil­ity, can be molded to fit your ex­act hand and work­flow. Taking the time to build pro­fi­ciency and trust in your tools, and well as hack­ing them to fit you, pays deep div­i­dends.

In this age of agen­tic en­gi­neer­ing, the new tools are ter­mi­nals you talk to in nat­ural lan­guage. A cod­ing agent lacks the pre­ci­sion and speci­ficity of a de­vel­oper writ­ing well-crafted code, but it can out­put whole ap­pli­ca­tions in a frac­tion of the time. The ques­tion that still echoes to­day is whether those out­puts can be trusted. Our last Developer Survey found that the more de­vel­op­ers used AI, the less they trusted it—us­age rose from 76% to 84%, but trust fell from 40% to 29%.

The tools them­selves are new and their ca­pa­bil­i­ties are in con­stant flux. If your kitchen knife kept chang­ing shape, weight, and edge, you’d have to re­learn it every time; that’s a hard tool to build trust in. But it also points to a flaw in how you use that tool, the process around it, and the way the tool re­in­forces the process. You trust your fa­vorite knife, IDE, paint­brush, or what­ever be­cause of the trust you’ve built with it, and the process around it.

In this ar­ti­cle, we’ll look at how tools build trust­wor­thy processes, the ways that tool changes high­light but can’t fix bro­ken processes, and where tool­ing and cul­ture can work to­gether to build new trust.

Developer tool­ing op­er­ates and evolves along­side soft­ware de­vel­op­ment as a whole, but also with in­di­vid­ual de­vel­op­ers. If you start work­ing and learn­ing in a ter­mi­nal, per­haps in a day when IDEs or graphic in­ter­faces did­n’t ex­ist, then the way that you un­der­stand cre­at­ing code in­cludes those ter­mi­nals and ter­mi­nal text ed­i­tors. Adding in an IDE would re­quire not just learn­ing a new tool, but refac­tor­ing your process of writ­ing code.

If mov­ing from the ter­mi­nal to the IDE is a hard process shift (or as some would say, un­nec­es­sary), then mov­ing from ei­ther to an agen­tic cod­ing tool is harder. One of my ret­i­cences for em­brac­ing some of the AI pro­gram­ming is be­cause I’m faster with my IDE be­cause I know how that works,” said Tricia Gee, a de­vel­oper pro­duc­tiv­ity ad­vo­cate. I’ve seen the same thing when I’ve worked with peo­ple who know Vim and Emacs very well. You could use the refac­tor­ing tools in IntelliJ IDEA. They’re like, yes, but that re­quires a learn­ing curve. I’ve spent so long us­ing what­ever tool it is. My fin­gers know what to do. Understanding a tool very well, no mat­ter what it is, be­comes a lot of un­con­scious com­pe­tence.”

Building that mus­cle mem­ory, that tacit knowl­edge of how soft­ware op­er­ates on a code level, lets de­vel­op­ers trust their tools to help pro­duce and im­prove their code. AI agents, mean­while, are faster, more opaque, and less pre­dictable. You use am­bigu­ous lan­guage to cre­ate soft­ware in­stead of code. Code is a pre­cise state­ment of a so­lu­tion,” said Bjarne Stoustrup, the cre­ator of C++. English is a lousy lan­guage for ex­press­ing things that have to be un­am­bigu­ous.” A trusty tool is pre­dictable, re­li­able. You don’t have to it­er­ate re­peat­edly with Emacs or Vim.

With most de­vel­oper tools, like an IDE, con­tainer­iza­tion tool, or sta­tic an­a­lyzer, you know where the bound­aries are. They have their role and don’t step out­side it. But AI is find­ing its way into all parts of the SDLC tool­chain. Which means the re­duced trust de­vel­op­ers have in AI ap­plies to the en­tirety of the process. Code may be faster to pro­duce, but val­i­dat­ing it, get­ting it to a point where de­vel­op­ers can trust that it won’t cause ex­pen­sive pro­duc­tion fail­ures, of­ten takes longer.

Agentic cod­ing tools change the na­ture of the soft­ware de­vel­op­ment process. The tools that arose around the pre­vi­ous process—lin­ters, au­to­mated unit tests, CI/CD, etc.—may not work in their cur­rent form with this changed process.

Those tools en­coded the process, but they weren’t the process it­self. A great CI/CD tool did­n’t mean you shipped faster. A great IDE did­n’t mean you wrote bet­ter code. An is­sue track­ing sys­tem with story points did­n’t mean you es­ti­mated ef­fort well. Some part of the process ex­isted as cul­ture, as the be­hav­iors and norms of the peo­ple build­ing soft­ware. New tools of­ten mean chang­ing the or­ga­ni­za­tional cul­ture.

This story will be fa­mil­iar to any­one who works in siz­able en­gi­neer­ing orgs. New tools, what­ever their promise, can fail when they don’t fit into ex­ist­ing cul­tures and processes. Successful tools re­quire shift­ing the cul­ture and processes in a way that de­vel­op­ers ac­cept and un­der­stand. Y’all love build­ing things and solv­ing prob­lems, so tools that don’t help you do that bet­ter get ig­nored.

Agentic cod­ing gained rapid adop­tion be­cause it let de­vel­op­ers solve prob­lems faster. But it ex­posed a lot of flaws in ex­ist­ing processes when code be­came nearly triv­ial to cre­ate. There had al­ways been an is­sue with un­clear and shift­ing re­quire­ments, but now solv­ing a prob­lem re­quires tightly defin­ing what both problem” and solve” mean.

Code may be (nearly) free, but val­i­dat­ing it is­n’t. The new bot­tle­neck has be­come code re­view. The old joke was that if you want a PR ap­proved quickly, change 100 lines. Coding agents change hun­dreds of lines of code in an in­stant, and send mas­sive diffs across to hu­mans to re­view (or rub­ber­stamp). LLM-as-a-judge is evolv­ing as a scal­able so­lu­tion here, but en­gi­neer­ing ways to trust that an AI can re­view code that an AI wrote takes work.

In that same light, run­ning code is also not free. You’ve got the cost of in­fra­struc­ture, which in the cloud-na­tive era is a fac­tor of the com­pute, mem­ory, and traf­fic vol­umes your ap­pli­ca­tion in­curs. You’ve got the cost of your hosted de­pen­den­cies and APIs. And, you’ve got the cost of fail­ures, the hard­est thing to bud­get for: down­time, se­cu­rity breaches, and op­por­tu­nity costs. Tools that pro­duce soft­ware that does­n’t (or can’t) con­sider these costs might not be worth it. And they put a strain on the process you built that used to pro­duce trust­wor­thy, re­li­able soft­ware.

For a lot of folks, the SDLC has started to look bro­ken thanks to agen­tic cod­ing. Naturally, these folks are look­ing to new tool­ing to re­pair those cracks: AI SREs, au­to­mated code re­view, mem­ory and con­text man­agers, con­trol plane and har­ness im­prove­ments, and so on. These are all solid ad­di­tions to the tool­ing in an AI-enabled soft­ware or­ga­ni­za­tion. But tool­ing alone will not fix things, es­pe­cially if the cul­ture and process stay the same. A bro­ken process with bet­ter tools (that folks may not use) is still bro­ken.

In the old SDLC, prod­uct man­agers would come up with fea­ture and func­tion re­quire­ments based on their re­search, cus­tomer con­ver­sa­tions, and com­peti­tor un­der­stand­ing. Architects would spec out the soft­ware based on their years of ex­pe­ri­ence and un­der­stand­ing of the ex­ist­ing tech stack. Engineers would build it and re­view com­mits based on their knowl­edge of code logic and the ex­ist­ing code­base. QA would re­view and try to break the soft­ware based on their ex­pe­ri­ence with how soft­ware breaks. Once the soft­ware was de­ployed to pro­duc­tion, DevOps and SREs would mon­i­tor and man­age the per­for­mance and re­sources used based on their pre­vi­ous ex­pe­ri­ence.

You built trust in this sys­tem by work­ing with peo­ple, un­der­stand­ing how they thought, and lim­it­ing the ways that any one in­di­vid­ual or tool could go rogue and dev­as­tate the sys­tem. Building trust in an AI-enabled SDLC needs these same things: work­ing with peo­ple and en­sur­ing they are re­spon­si­ble and ac­count­able, shar­ing work­ing processes and it­er­at­ing on them, and min­i­miz­ing the chance for mis­takes.

The first step is to en­sure that we en­shrine hu­mans as the re­spon­si­ble par­ties and flag where AI made con­tri­bu­tions. Everybody talks about human-in-the-loop,” but as Charity Majors, CTO of Honeycomb, pointed out, Human-in-the-loop sounds like a pity in­vite. I made the loop, I own the loop, I’m the only rea­son that loop ex­ists. It is MY f***ing loop!” The per­son push­ing the com­mit owns that code. The peo­ple ap­prov­ing those PRs own that ap­proval. If you broke prod on a Friday be­fore AI, you did­n’t blame your IDE. If you break it now, the prob­lem does­n’t lie with the agent; it lies be­tween the key­board and chair.

Collaboration in the age of AI can be a harder and stranger thing. Agents let you ex­pand the idea of what a full­stack de­vel­oper is, do­ing every­thing from prod­uct re­quire­ments to DevOps in a cod­ing agent. Developers can very eas­ily be­come a silo of one. You don’t have to, say, check in with your de­signer about the de­sign be­cause you just got an agent to build the de­sign,” said Jaime DeLanghe, chief prod­uct of­fi­cer at Slack, and you don’t have to work with an­other en­gi­neer in a spe­cific do­main to un­der­stand their code base be­cause you just ask the agent the ques­tion. You could go way down this path and cre­ate a mas­sive PR.”

Some folks have sug­gested prompt­ing agents in a shared room, so every­one can com­ment and mod­ify the process. Others have sug­gested that every PR in­clude tran­scripts of the prompt­ing process. This view into the con­ver­sa­tion with an agent might even give greater in­sight into how that code came about. It’s so cool to be able to open up a PR and ac­tu­ally see how the de­vel­oper was think­ing and how they were prob­lem solv­ing,” said Dane Knecht, chief tech­nol­ogy of­fi­cer at Cloudflare.

Where the old process used ac­cess con­trols, au­dit trails and diffs, and CI/CD checks to limit the blast ra­dius of any mis­take, the new process needs to re­move chance be­fore the code is writ­ten. That means en­sur­ing every­thing you want the code to do is ex­plic­itly stated in the prompt. You can use spec.md files for this, but any­thing not spec­i­fied might now get built. If you leave any­thing up to chance, it will be left up to chance,” said Scott Hanselman, VP of Developer Community at Microsoft. I got this lit­tle ring light app to build, and I’m on x64. I wanted it to work on ARM, so I needed to tell it, Make me an ARM ver­sion.’ If I did­n’t do it, it would­n’t have hap­pened.”

Of course, you can’t cram every­thing you need into a clever prompt (nor should you). You’d end up re­peat­ing your­self a lot and al­most cer­tainly miss­ing a few things that ex­ist as tacit com­pany knowl­edge. Lots of smart peo­ple are out there think­ing about pro­vid­ing bet­ter con­text to your agents and giv­ing them long-term and short-term mem­o­ries. The trick is giv­ing your agents the right con­text that your code needs. Normally, this would be the sea­son­ing that se­nior devs get over time. But agents need you to cap­ture that knowl­edge some­where (like Stack Internal), ver­ify it, and serve the right bits up as con­text when needed.

So you’ve got the world’s best prompt. You gave your agent the right con­text, and it built some­thing that passed peer re­view and got pushed to prod. Your next check on the sys­tem is to never build that piece of func­tion­al­ity again. You’ve got a per­fectly good soft­ware com­po­nent; don’t lose it, reuse it. The DRY (don’t re­peat your­self) prin­ci­ple is our main prin­ci­ple,” said Laly Bar-Ilan, Chief Scientist at Bit. AI to­day is in­her­ently WET (write every­thing twice). This de­vel­oper tells it, Okay, gen­er­ate a but­ton,’ and it gladly does so, and then an­other de­vel­oper in an­other team asks it, and then there’s an­other but­ton in the code base.”

The biggest hack to build­ing trust with AI agents, though, might be to know when not to use them. Even with all the above guardrails on your process, there’s still a bit of a dice roll in­volved with AI by dint of its na­ture. If you have a per­fectly good non-de­ter­min­is­tic so­lu­tion in place, why rein­vent the wheel? We are try­ing to ap­ply non-de­ter­min­is­tic sys­tems to a lot of sce­nar­ios where you should have de­ter­min­is­tic code,” said Anil Dash. LLMs are bad at that thing, and so why are we try­ing to use them as the ham­mer on all these things that ain’t nails? The hum­ble bash script that has been run­ning for six years is fine.”

We used to have trust built-in thanks to the peo­ple and tools we worked with. That trust came from pre­dictabil­ity: You knew what they could do, you knew where their strengths and weak­nesses were, and could you ex­pect that your ex­pe­ri­ence with them on Monday would match up with your ex­pe­ri­ence with them Tuesday. The prob­a­bilis­tic na­ture of AI, as well as the speed at which im­prove­ments and changes hap­pen, throws all that out the win­dow. Process im­prove­ments can help en­gi­neer trust back into de­vel­op­ment.

In the good old days, we built processes around peo­ple, and we trusted those processes be­cause we trusted the peo­ple we worked with. We built tools that we trusted to man­age the process, and they acted as an ex­ten­sion of our­selves and the peo­ple we worked with.

With AI, we’re able to au­to­mate a lot of those processes. The good news is that work gets done faster. The bad news is that we don’t trust it when it’s done. The tools are new, the peo­ple are mov­ing to more high-level roles, and we still need to build trust. With a more de­lib­er­ate, ex­plic­itly-de­fined work­flow that pre­serves hu­man judge­ment, we can start to build trust in the new sys­tems.

Successful teams won’t be the ones that gen­er­ate the most code. They’ll be the ones build­ing feed­back loops, gold stan­dard knowl­edge that pro­vides the best con­text, and tools that align your process with your work­flows.

Security Verification

www.ft.com

For help please visit help.ft.com. We apol­o­gise for any in­con­ve­nience.

The fol­low­ing in­for­ma­tion can help our sup­port team to re­solve this is­sue.

EU Age Verification Project Mandates Hardware-Bound Attestation

linuxiac.com

The European Union’s open-source age-ver­i­fi­ca­tion pro­ject has drawn crit­i­cism af­ter a main­tainer con­firmed that hard­ware-bound at­tes­ta­tion is a manda­tory ar­chi­tec­tural re­quire­ment, rais­ing con­cerns about Linux, cus­tom Android ROMs, and in­de­pen­dently com­piled ap­pli­ca­tions.

The de­bate be­gan in the GitHub repos­i­tory for the pro­jec­t’s Android app, where a user ar­gued that ty­ing cre­den­tials to spe­cific hard­ware en­vi­ron­ments would make it more dif­fi­cult to sup­port open sys­tems.

Hardware-bound at­tes­ta­tion is a re­quire­ment of this pro­ject, not an im­ple­men­ta­tion de­tail we can sim­ply drop,” a main­tainer re­sponded. The pro­ject in­vited al­ter­na­tive ar­chi­tec­tural pro­pos­als and said a ded­i­cated se­cu­rity re­view and threat model would be pub­lished soon.

The so­lu­tion lets users prove they are over a cer­tain age with­out re­veal­ing their name, ex­act birth date, or full iden­tity doc­u­ment. To pre­vent cre­den­tials from be­ing copied, cloned, or reused by mod­i­fied clients, the pro­ject re­lies on keys stored in pro­tected hard­ware like Android TEE, StrongBox, or Apple’s Secure Enclave.

However, crit­ics claim that this ap­proach en­dan­gers the sys­tem by mak­ing it de­pen­dent on a small num­ber of ap­proved de­vices, op­er­at­ing sys­tems, and at­tes­ta­tion providers.

The pro­jec­t’s tech­ni­cal spec­i­fi­ca­tion re­quires age ver­i­fi­ca­tion apps to use na­tive cryp­to­graphic hard­ware when avail­able. However, stricter checks like root de­tec­tion, Google Play Integrity, and Apple App Attest are not uni­ver­sally man­dated by the ref­er­ence im­ple­men­ta­tion and may be left to in­di­vid­ual de­ploy­ers.

This dis­tinc­tion mat­ters be­cause hard­ware-backed key stor­age does not re­quire a server to ap­prove the en­tire de­vice, op­er­at­ing sys­tem, or ap­pli­ca­tion build. The main­tain­er’s word­ing leaves some un­cer­tainty over how re­stric­tive pro­duc­tion de­ploy­ments will be.

There is also a sep­a­rate gov­er­nance lim­i­ta­tion. Proof of Age providers are ex­pected to is­sue cre­den­tials only to ap­pli­ca­tions in­cluded in a list of com­pli­ant apps main­tained by the European Commission. This means that pub­lish­ing the source code does not au­to­mat­i­cally guar­an­tee that a com­mu­nity-built ver­sion can use the real ser­vice.

Importantly, Linux is not ex­plic­itly banned. Desktop Linux users could ac­cess a web­site and scan a QR code us­ing a sup­ported mo­bile wal­let. However, the cur­rent ar­chi­tec­ture does not pro­vide a na­tive Linux wal­let, and al­ter­na­tive mo­bile op­er­at­ing sys­tems could strug­gle to meet the re­quired trust con­di­tions.

So, as you can un­der­stand, the con­tro­versy goes far be­yond a sin­gle Android im­ple­men­ta­tion. For now, how­ever, the pro­jec­t’s po­si­tion is that hard­ware bind­ing re­mains re­quired. The ex­pected se­cu­rity re­view and threat model may pro­vide a more de­tailed ex­pla­na­tion of why that trade-off was se­lected and whether al­ter­na­tive roots of trust or less re­stric­tive im­ple­men­ta­tions can still com­ply.

Until then, the cen­tral ques­tion re­mains un­re­solved: whether an EU-funded, open-source iden­tity sys­tem can mean­ing­fully re­main open when real-world ac­cess de­pends not only on avail­able source code, but also on ap­proved ap­pli­ca­tions, sup­ported se­cu­rity hard­ware, trusted op­er­at­ing en­vi­ron­ments, and the poli­cies of cre­den­tial providers.

Meshdiff — Compare 3D Model Versions

meshdiff.com

ISOPOLIS — San Francisco

sf.isopolis.city

load­ing…

© OpenStreetMap con­trib­u­tors © CARTO · neigh­bor­hoods: DataSF

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.