This page shows the source for this entry, with WebCore formatting language tags and attributes highlighted.

Title

Links and Notes for September 5th, 2025

Description

<n>Below are links to articles, highlighted passages<fn>, and occasional annotations<fn> for the week ending on the date in the title, <a href="{app}/view_article.php?id=4085">enriching the raw data</a> from <a href="http://www.instapaper.com/starred/rss/1890855/5c1g08eoy9skhOr3tCGqTQbZes">Instapaper Likes</a> and <a href="https://twitter.com/mvonballmo">Twitter</a>. They are intentionally succinct, else they'd be <i>articles</i> and probably end up in the gigantic backlog of unpublished drafts. YMMV.</n> <ft><b>Emphases</b> are added, unless otherwise noted.</ft> <ft>Annotations are only lightly edited and are largely <i>contemporaneous</i>.</ft> <h>Table of Contents</h> <ul> <a href="#politics">Public Policy & Politics</a> <a href="#journalism">Journalism & Media</a> <a href="#labor">Labor</a> <a href="#economy">Economy & Finance</a> <a href="#climate">Environment & Climate Change</a> <a href="#art">Art, Literature, & Cinema</a> <a href="#technology">Technology & Engineering</a> <a href="#llms">LLMs & AI</a> <a href="#programming">Programming</a> </ul> <h id="politics">Public Policy & Politics</h> <a href="https://www.counterpunch.org/2025/09/03/the-united-states-uses-a-fabricated-drug-charge-for-a-potential-strike-on-venezuela/" source="CounterPunch" author="Vijay Prashad">The United States Uses a Fabricated Drug Charge for a Potential Strike on Venezuela</a> <bq>The massive military build-up along Venezuela’s coastline, the increased reward for the arrest of Maduro, and the accusation that the Venezuelan government is linked to the Tren de Aragua provides the foundation for a classic military intervention against Venezuela in the name of the War on Drugs. <b>The idea of the Cartel de los Soles is operating like the Weapons of Mass Destruction in Iraq in 2002-03, with the US administration desperate to find the <i>casus belli</i></b> (cause for war) that otherwise simply does not exist.</bq> <hr> <a href="https://indi.ca/ignore-your-enemy/" source="Indica" author="Indrajit Samarajiva">Ignore Your Enemy</a> <bq>You could see this in the World War II commemoration parade that China (which destroyed 70% of the Japanese Army) invited Russia (which destroyed 80% of the German Army) to attend. <b>In addition to being able to march straight, China also outshone the Americans by displaying a scale, quality, and entire categories of weaponry that America hasn't even thought of.</b> In the recent <b>American parade that Trump ordered</b>, listless men just carried DJI-type drones around in their hands and wheeled old howitzers around. The whole parade <b>had to be sponsored by corporations because the American state is bust-out and bankrupt.</b> The contrast couldn't be more apparent. America needs Chinese support to attack China, and China doesn't need to take any shit from them. <b>It's a brand new century, if the old century would just end.</b></bq> This is the sentiment from the half of the world represented by BRICS: they are sick of the U.S.-imperialist bullshit. <bq>[...] sometimes it's hard to believe that this final, most violent, incarnation of White Empire is ending. But it is. <b>They're going supernova and collapsing, incinerating vassals as they outgas, eventually collapsing to a white hole within.</b></bq> <bq><b>This is a dying empire led by bad people, as young Americans themselves say. They don't even cover up their child raping, child murdering, and child starving, they're just a bunch of old rich people trying to stop the future from coming by killing children.</b> But they won't live forever, howevermuch sacrifice they offer to the market gods they inflate. <b>The Greatest Depression is coming, inshallah, to hit them in the only place they feel anything. Their wallets.</b></bq> It's going to hit everyone else harder first. They know how to use civilization as a human shield. <bq>Trump, our idiot inside, is accelerating this process with his terrific tariffs. I say terrific because the whole world should be embargoing America, and Trump is forcing a hysterical hartal upon them. Take India—present at the SCO meeting— please, Trump seems to be saying. <b>India was an ally of America and even 'Israel' and fairly rabidly anti-China if you watch their news programming (don't).</b> But material concerns trump all, and <b>Trump's 50% tariffs on India throw them into the Chinese and Russian camp</b>, ie the continent they're in, tossing them over even Himalayan levels of pride hubris. <b>It's difficult to overstate how much India has been hostile to China</b>, but Trump's bedwetting makes for strange bedfellows. India has always been the weak link in BRICS, <b>but now they're forced in.</b></bq> <bq><b>So now we get the optics of many people gathering around people like Vladimir Putin and Xi Jinping, and only the pathetic Europeans around the Americans, as America openly humiliates them.</b> The White Empire has nothing left but its rump to chew on, as it stews in its own isolation. This was happening slowly, but <b>they decided to accelerate the process out of sheer cussedness.</b></bq> And because they saw personal profit in it. Previous administrations could be convinced to retain the machinery to produce the gift that keeps on giving but this one has a much more LBO, private-equity mindset: they are burning the place to the ground for the insurance money. <bq><b>The victory will be when we can ignore them, as some terrible footnote to history.</b> I'm not there yet, but I look forward to the day I don't need to write about White Empire at all.</bq> <hr> <a href="https://thefloutist.substack.com/p/staged-actions-in-ukraine" source="The Floutist" author="Wolfgang Bittner">“‘Staged actions’ in Ukraine.”</a> <bq>The decades-long Ukraine crisis, since this current phase began with the U.S.–cultivated coup in Kiev eleven years ago, has occasioned <b>more misinformation, disinformation, false-flag operations and propaganda</b> than any other in our memories. This is <b>inevitable, it seems to us as we survey the wreckage, if you have provoked a war while blaming the other side for starting it</b>, if you are propping up a neo–Nazi regime in the name of liberty and democracy, <b>if you are altogether destroying a nation—its people, its land, its resources—while claiming to save it.</b> There is a lot of truth to obscure, to blur, to destroy.</bq> <bq>It is hard to believe, but <b>Bucha is one of countless examples of how the Kiev government, under the direction of the United States and its intelligence services, has lied to and incited the population.</b> Jacques Baud, the noted Swiss security expert and a former NATO military analyst, rightly wrote that it is important to understand what led to the war. “The ‘experts’ who take turns on television analyzing the situation based on dubious information,” he notes, typically start with hypotheses “that are turned into facts, so that we are no longer able to understand what is happening.” This is how panic is created.</bq> <hr> <media href="https://www.youtube.com/watch?v=_OGUAlY_4LM" src="https://www.youtube.com/v/_OGUAlY_4LM" source="YouTube" width="560px" author="HasanAbi" caption="Trump just can't stop rambling"> <bq>It's the fact that there are people tuning in who agree with this reactionary framework that frustrate me. And this is no different. It's not that Trump is like a bumbling old baboon, senile, and constantly lying. <b>It's the fact that people actually love him and they also agree with him and they think he is brilliant.</b> That is the most---that's the most discouraging thing because if, like, everybody recognized what the he was and and reacted appropriately and, like, you know constantly tried pushing and and then there was like a significant militant response against that sort of thing then I would say you know at least people are---at least the population is---smart. At least the population understands what's going on. At least your neighbors know what the fuck is up. What makes me sad is the fact that there is a <b>30% part of this population that unironically, no matter what he does, will turn around and say, "Nah, man. That's my president, you stupid libtard. He's hot. He's healthy. He's 215 lbs and he's 6'4 and he can dunk a basketball and he's ending all the wars."</b> It's like, oh my god, it's just so frustrating. is so frustrating to have to to deal with people who have decided that they can just hallucinate an alternative reality. And those guys have so much play on our lives. Like even the military incursions, even the send the military, send the Marines, send the National Guard to Chicago, that's done for those guys. Those guys who are just like, <b>"Hell yeah, brother. we got to do more militant response to solve this unlimited crime in blue cities where seemingly there's a lot of black people."</b> Like that's who he's doing it for. Or <b>"hell yeah, brother. We got to deport every Guatemalan. They're scary. They got salsa hips. They're dancing. I hate that."</b> That's who he's doing this for. Those guys have so much play. <b>The dumbest, most psychotic, racist people in American society that have never left their hometowns get to dictate what we all experience. And that is so frustrating.</b> I mean, look at this. Florida moves to end all school vaccine mandates. First in nation to do so. <b>How the fuck can you look at this and go, "This is great. This is great, brother. Fantastic. Hell yeah, brother. We're gonna get rabies, and that's fine. We're bringing back legionnaire's disease." Awesome.</b></bq> <hr> <a href="https://scheerpost.com/2025/09/06/trump-looks-like-we-lost-india-and-russia-to-china/" author="Kyle Anzalone" source="Scheer Post / Antiwar.com">Trump: Looks Like We Lost India and Russia to China</a> <bq>President Donald Trump posted on his Truth Social account that India and Russia are now firmly tied to China and have drifted away from the US orbit. Trump also demanded that Europe end Russian oil imports and place pressure on China. <b>“Looks like we’ve lost India and Russia to deepest, darkest, China. May they have a long and prosperous future together!” Trump wrote on Friday.</b> The post is a response to a trilateral meeting between Chinese President Xi, Russian President Putin, and Indian Prime Minister Modi. Xi is hosting about 20 world leaders in China to mark the 80th anniversary of the end of WWII. North Korean Supreme Leader Kim Jong-un also attended the event. <b>On Tuesday, Trump accused Xi, Putin, and Kim of “conspiring” against the US.</b></bq> The wheels are absolutely coming off of the U.S. Empire. This is not a terrible thing. Just expect an attack on one of more of these countries now. And don't expect a peace treaty with Russia. <hr> <media href="https://www.youtube.com/watch?v=Q6dhqucc29c" src="https://www.youtube.com/v/Q6dhqucc29c" source="YouTube" width="560px" author="HasanAbi" caption="It’s up to us to change their minds"> <bq>The reason why Western leaders have realized that they have to be even more cruel, and suppress speech even more actively hands-on. [...] <b>This administration is doing things that actually undermine the very fabric of American society.</b> Beyond colonial exploitation, beyond the death and destruction, beyond the upholding of violent systems like white supremacy, Americans actually at least had a couple things that they advocated for unconditionally, like free speech. And now they're eroding that fundamental principle. <b>They're eroding that fundamental constitutional protection at the behest of a foreign state.</b> And I'm telling you right now, I speak to Americans all the time, people from very different backgrounds than mine, and they're angry, too. So, it's up to all of us to activate them. It's up to all of us to motivate them. <b>Become undeniable, become unavoidable, and keep up the pressure no matter what.</b></bq> <hr> <media href="https://www.youtube.com/watch?v=Kqvxhp9j1dg" src="https://www.youtube.com/v/Kqvxhp9j1dg" source="YouTube" width="560px" author="HasanAbi" caption="you think you have rights?"> <bq>Every single American is being surveilled at every single moment of the day. How is it not illegal or goes against our rights? <b>Dude, you're an American. Do you not understand? We're nothing. We are peasants who have been deluded into thinking that we have any kind of self-importance whatsoever.</b> This is what I keep repeating over and over again. And people seemingly do not understand. They do not understand. You do not understand. We do not have rights. <b>You know who has rights? Corporations have rights. They have the right to do whatever the fuck they want. Okay?</b> They have a right to get the bag by any means necessary. We're just running around thinking like, "Oh, we got autonomy. We do whatever we want." Yeah, good luck, dude. <b>Every single aspect of your life, whether you are aware of it or not, is being commoditized by these AI tech companies.</b> This is quite literally just a mass surveillance operation, openly traded on the market. Like <b>all your movements are tracked and they're sold to data brokers.</b> They're sold to companies that want to surveil you for one reason or another to sell you more. <b>Law enforcement has access to this. Your landlord has access to it.</b> <b>We're literally lab rats, brother.</b></bq> <hr> <media href="https://www.youtube.com/watch?v=xk94il8L820" src="https://www.youtube.com/v/xk94il8L820" source="YouTube" width="560px" author="Last Week Tonight with John Oliver (HBO)" caption="Trump vs. Higher Education"> <hr> <media href="https://www.youtube.com/watch?v=T3pCPOUUflA" src="https://www.youtube.com/v/T3pCPOUUflA" width="560px" source="YouTube" author="Novara Media" caption="EU Slammed By China For Lack Of Basic History"> Kaja Callas is a sad example of the kind of painfully ignorant people who rise to power in the U.S. and Europe. She is not only ignorant of any history outside of the constrained propaganda she greedily devours every day (probably not least because it buoys her personal success), she is proudly ignorant, completely unaware that others might have a different context that is more valid than her own. She <i>chastises</i> those who know better. Well done. From a comment: <bq>35 million Chinese military and civilian people died fighting imperial Japan in the second world war. Japan invaded China in 1931, eight long years before war in Europe began.</bq> <hr> <a href="https://responsiblestatecraft.org/kaja-kallas-history/" author="Eldar Mamedov" source="Responsible Statecraft">Kaja Kallas' shocking lack of historical literacy</a> <bq>Kallas expressed that it was "news" to her that China and Russia were among the victors who defeated Nazism and fascism.</bq> Why do you think that they are both permanent members of the U.N. Security Council? <bq>[...] she characterized the Chinese as “very good at technology but not that good in social sciences, while the Russians are super good in social sciences but bad at technology." <b>It surely must be alarming that the EU's top diplomat would present this juvenile dichotomy as a legitimate lens through which to view</b> two of the most complex and serious strategic challenges facing the continent.</bq> <bq><b>This primitive understanding is now being operationalized into a dangerously rigid foreign policy.</b> Under the leadership of Kallas's European External Action Service (EEAS) and Ursula von der Leyen's European Commission, the EU has systematically severed every channel of communication with Russia. In Brussels, there are no behind-the-scenes diplomatic dialogues, no backchannel explorations, and not even engagement at the think-tank level behind closed doors. <b>The official position is an absolutist moral stance: we do not talk to Putin, a war criminal.</b> This policy is not just strategically naive; <b>it is laughably inconsistent. The same institutions maintain deep, continuous engagement with Israel</b>, whose prime minister, Benjamin Netanyahu, is under indictment by the International Criminal Court for alleged war crimes. <b>The EU's floundering response to the war in Gaza laid bare this incoherence</b> [...]</bq> <bq>If Europe is to navigate the treacherous waters of the 21st century, its leaders must show they possess some basic understanding of the great powers with which they must contend rather than the kind of cartoonish mindset propagated by Kallas and her ilk. The unbearable lightness of the current approach will leave Europe not as a protagonist in the shaping an emergent global order, but rather as its helpless, disoriented, and increasingly irrelevant spectator.</bq> <hr> <a href="https://www.caitlinjohnst.one/p/some-days-theres-just-too-much-israeli" author="Caitlin Johnstone" source="Substack">Some Days There's Just Too Much Israeli Psychopathy To Write About</a> <bq><b>If I had murdered people for trying to retrieve the bodies of their loved ones who I had also murdered, I’d definitely be asking myself a lot of questions</b>, but “what was so important about that corpse?” would definitely not be among them. <b>Gaza has become a hunting ground which is visited by psychopathic individuals who want to experience what it’s like to kill human beings</b>, and it’s always open season. Those <b>bloodthirsty monsters then re-enter our communities and walk among us without consequences.</b> They get to go commit atrocities and then come back and resume their lives as though nothing happened, like going off to <b>some kind of genocide summer camp. It’s about the most horrific thing you can imagine.</b> Israel poisons the entire world.</bq> While I agree that the hagiography around an American from Chicago who joined the IDF to murder Palestinians (pretty much his own words) is nauseating, it's not just Israel. This is what U.S. soldiers do all the time. Many of them are absolutely destroyed themselves afterwards about it. This is not to make you feel sorry for people who murdered innocents when they could, but to say that war destroys everything. Many of them are far more apologetic about what they've done than Daniel Raab. He was born into just the right cauldron for sniping innocents in Palestine, though: the good old U.S. of A, where you learn early that life is cheap, especially when that life is poor or colored or both. They reenter society and no-one is the wiser because no-one is taught to care or ask what "joined the IDF" even means. People are roundly chastised as Islamist terrorists if they return to Lebanon or Syria to help protect their families from invading Israelis but people who join the IDF are just treated as normal---even though they should be treated exactly oppositely in a world with a moral compass. From a comment by Stephen Walker: <bq>They’ve attacked two new countries in two days: Tunisia and Qatar. They’ve carried out dozens of assassinations in the following countries in just 18 months: Palestine, Lebanon, Iran, Yemen, Syria and Qatar. <b>Total number of countries attacked in less than two years: 9 (Palestine, Lebanon, Syria, Iraq, Iran, Lebanon, Malta, Tunisia, Qatar). Total impunity. The entire world’s inaction is sickening.</b></bq> The world approves. The U.S. can also attack whichever countries it wants and no-one even remembers these things as invasions of attacks. They will chirp at you that Russia has to be punished because it invaded Ukraine, as if invading a country where a unique act. It's unique because it was neither the U.S. or Israel that did it. They literally can't remember any other attacks or invasions other than Russia's invasion of Ukraine. They can't remember any history in that region before February 2022. They can't remember any history in Israel before October, 2023. They have no idea what's going on there. They think Israel is just defending itself. When they write about Israel attacking Qatar, Swiss newspapers ask not WTF IS GOING ON? No. Instead, they ask "Where else might Hamas be hiding?" I'm sure they would absolutely welcome measures to rout "Hamas" out of the country by simultaneously egesting every swarthy-looking Muslim or Arabic speaker, just to be on the safe side. We don't want to piss of Israel, which would, of course be utterly justified in bombing Switzerland. It would only be stamping out obvious antisemitism. It is truly sickening. <hr> <a href="https://www.caitlinjohnst.one/p/they-just-bombed-greta-thunbergs" author="Caitlin Johnstone" source="Notes From The Edge Of The Narrative Matrix">They Just Bombed Greta Thunberg's Boat</a> <bq>This will mean <b>teaching people about the complicity of our own western governments.</b> How both major political parties have played a role in inflicting this nightmare upon the Palestinians, <b>not just since 2023 but for generations prior.</b> How the mass media lied to them and manipulated their understanding of what was really happening. How <b>we’ve been deceived about all the acts of mass military slaughter</b> our government has involved itself in over the years. How <b>we really don’t live in the kind of world we were taught about in school.</b> <b>The mainstream public opening their eyes to Gaza creates an opportunity for us to help them open their eyes to so much more.</b> Don’t waste your energy getting annoyed at the normies showing up late to the protest and saying naive things. Instead, be glad of their participation, help them form a truth-based understanding of what’s really going on with Palestine, and <b>use this moment to radicalize them against the machine that gave rise to this horror.</b></bq> <hr> <a href="https://www.wsws.org/en/articles/2025/09/10/gwmb-s10.html" author="Jacob Crosse" source="WSWS">Epstein “birthday book” lays bare corruption of American ruling class</a> <bq>The release of Epstein’s “birthday book” is not simply another lurid scandal. <b>It is a window into the true character of the ruling class.</b> Here are not only Wall Street speculators, venture capitalists and Silicon Valley financiers, but two presidents of the United States—one Democrat, one Republican—<b>offering warm tributes to a man whose entire existence was bound up with the sexual exploitation of children.</b> Their words, preserved in their own hand, <b>strip bare the fraud of bourgeois morality.></b> <b>Epstein was not an aberration. He was an organic product of a social order in terminal decay.</b> His “network” was nothing less than the American and international bourgeoisie itself: billionaires, politicians, celebrities; all of them bound together by money, privilege and complicity in crime. The joking tone of the book— women described as “fully depreciated,” <b>Trump celebrating “wonderful secrets” inside the outline of a naked body, Clinton praising Epstein’s “irresistible curiosity”—reveals the utter corruption of this stratum.</b></bq> <hr> <a href="https://thefloutist.substack.com/p/settler-madness" author="Cara MariAnna" source="The Floutist">“Settler madness.”</a> <bq>The following three images are screenshots from a video of another incident in which settlers harassed the same family. The boy with the side curls holds a stick. He’s the same boy who was wearing a sweatshirt with a hood in the previous video. I’m showing you these pictures because <b>settlers use their boys as attack dogs. The armed man stands back and tells the boy what to do.</b> This is called rage-baiting. <b>The settlers are trying to provoke a reaction so they can call the I.O.F. and escalate the violence.</b> Here the Jewish boy is focusing his aggression on the smaller Palestinian boy. This is sociopathic behavior. <b>This boy’s mind has been damaged if not destroyed. He’s been force-marched into a state of complete irrationality. He’s been taught to hate Palestinians and to take pleasure in tormenting and bullying them. In a few years he’ll go into the army. As a civilian he’ll carry an assault rifle.</b> How will he raise his children? <b>How will peace be possible when each generation of Israeli Jews has been taught to fear and hate Palestinians and to see them as animals?</b></bq> Every society trains its people to do this. It was no different in the U.S. during U.S. apartheid. It is no different now with the attitude toward immigrants and Muslims. And still black people get the shaft. There is a war on trans people, even though most people don't know anyone or have no idea what it even means. Most societies (at least in the west) teach virulent hate. People in Europe and Switzerland hate Russians with a burning passion. Perhaps Israel takes it farther. Perhaps we see it more now. But it doesn't absolve European racism and hatred. The Israeli indoctrination programs are more thorough, more brutal, more virulent---but Europe wouldn't mind getting there. They could justify it to themselves. There is no principle standing in their way. <bq>Israel’s conduct in Gaza and the West Bank embodies the quest for supremacy that infuses the Western project and in which “reason and humanity fall by the wayside,” to quote from this year’s Mut zur Ethik invitation. <b>The very worst traits of the Western world, as led by the United States, are distilled and concentrated in the Zionist state and enacted on the bodies and lives of Palestinians.</b> But also quite clearly on the hearts and minds of Israeli Jews. <b>There is a path to peace but the world will not walk it until there’s a fundamental change in the West.</b> In Palestine, the full force of Western militarism and imperialism has been deployed against a people who are stateless, who have no military, and no means to defend themselves. And for this very reason, <b>it is in Palestine that the West will redeem itself or, failing, as it now does, condemn itself, its history, and its future.</b></bq> <hr> <media href="https://www.youtube.com/watch?v=6tnik4IDks0" src="https://www.youtube.com/v/6tnik4IDks0" source="YouTube" width="560px" author="Glenn Greenwald" caption="Charlie Kirk’s Assassination: Glenn Reacts"> I think this was OK. I'm not going to waste one second mourning Charlie Kirk's death. I don't think he should have been murdered. It's the same way I feel about all other murders. Kirk's death will be used to crack down even farther on enemies of the state. They probably arranged for it to happen, sacrificing their own martyr to get the ball rolling. I think Glenn was a bit sanctimonious but I suppose he's been listening to a 48-hour firehose of stupid takes and thinks that a 45-minute video fighting strawmen is a good idea. I don't think anyone should pay more attention to Charlie Kirk's death than they did to, e.g., the Hamas negotiators whose deaths were just gleefully celebrated by the same people who now think that there should be a statue of Charlie Kirk in the Capitol building. I don't think he was a legitimate target, of course. I just don't think he was a particularly good person who will be missed either. His family will miss him. I'm sure the families whose children were killed in all of those school shootings that he constantly justified as the price we have to pay for freedom also miss their children. Life sucks all around. Let's not waste any time pretending we care more about the death of someone who frankly <i>thrived</i> on being a total piece of shit than about many, many others who deserve our thoughts and prayers much more. His kids will miss their daddy. His wife knew what he was and she married him anyway. Look, man, she was happy to ride the Charlie Kirk gravy train while his words celebrated an extreme administration's actions to ruin so many people's lives. No-one should celebrate Kirk's death. No-one should celebrate anyone's death. I thought he was a hate-monger but I also thought Osama bin Laden was a hate-monger. I didn't celebrate his death either. but histrionics for those who didn't know him also make no sense. The hagiography that is underway has deeply sinister undertones and will be extremely detrimental to all of the people to whom Kirk's life-mission was detrimental when he still lived. Glenn is way too generous with his evaluation of <iq>what a nice guy Kirk was personally.</iq> Honestly, that doesn't matter to me much at all. That's how con-men work. And what people know of Kirk---his political views---was not <iq>just a tiny little sliver of their personality.</iq> It was all most people knew of him. It was all he was ever interested in telling anyone. Glenn used to do <i>System Pupdate</i>, in which he told stories of his rescued dogs, which humanized him. Kirk didn't seem interested in humanizing himself. Instead, he relentlessly presented as a hard-ass, calling for the murder of everyone he didn't agree with. He celebrated every military attack. He exhorted them all. He celebrated genocide. This is so typical of the U.S.---posturing on all sides. The real danger will be how Kirk's ginned-up martyrdom will be used to justify even more crackdowns domestically. I hope much more worthwhile people in that country stay safe. I will not miss Charlie Kirk. His cheerless cohort will use his death to use as much of the state machinery as they control to destroy their ideological enemies. They are all assholes and idiots and they are actively working to ruin the lives of people who are not that, all for their own personal gain. They will manufacture any narrative that supports their reprehensible and deeply anti-human and anti-constitutional agenda. They are maniacs and monsters. <hr> <a href="https://chrishedges.substack.com/p/the-martyrdom-of-charlie-kirk" author="Chris Hedges" source="Substack">The Martyrdom of Charlie Kirk</a> <bq><b>Martyrs are the lifeblood of violent movements.</b> Any flinching over the use of violence, any talk of compassion or understanding, any effort to mediate or discuss, is a betrayal of the martyr and the cause the martyr died defending. <b>Martyrs sacralize violence. They are used to turn the moral order upside down. Depravity becomes morality. Atrocities become heroism. Crime becomes justice. Hate becomes virtue.</b> Greed and nepotism become civic virtues. Murder becomes good. War is the final aesthetic. <b>This is what is coming.</b></bq> <bq>Republican Congressman Clay Higgins wrote that he will use, "Congressional authority and every influence with big tech platforms to mandate immediate ban for life of <b>every [...] commenter that belittled the assassination of Charlie Kirk</b>..." He further states "<b>I’m also going after their business licenses and permitting, their businesses will be blacklisted aggressively, they should be kicked from every school, and their drivers licenses should be revoked.</b> I’m basically going to cancel with extreme prejudice these evil, sick animals who celebrated Charlie Kirk’s assassination."</bq> I can well imagine that this is the zeitgeist. These people are unhinged. But they are powerful. And they are all unhinged together so they will probably get what they want. The Constitution fluttered away in tatters long ago. They will make it official, all while crowning themselves champions of the Constitution. None of it has to make any sense. None of it has to be true. None of it has to be moral, or ethical, or just. It just has to be what they want right now. They will burn everything on a pyre of their egomania, their own ignorance. It will boomerang on them. They will not recognize it for what it will be then, just as they are utterly incapable of seeing what they are really doing now. It would be so nice if everyone with a brain left in their heads also found a backbone to just say that enough is enough. No more basing actions on obvious lies, no more bending reality to protect feelings. These are all a bunch of childish snowflakes who can't stand a speck of criticism. They can't even stand knowing that there's anyone out there who doesn't agree with them about everything. It keeps them up at night. They are <i>triggered</i>. <bq>Dissidents, artists, gays, intellectuals, the poor, the vulnerable, people of color, <b>those</b> who are undocumented or <b>who do not mindlessly repeat the cant of a perverted Christian nationalism, will be condemned as human contaminants to be excised from the body politic.</b> They will become, as in all diseased societies, sacrificial victims in the vain attempt to achieve moral renewal and recapture a lost glory and prosperity.</bq> I'm going to cite Hedges at length because he's done some good research to give an overall feel for the contribution to society that Charlie Kirk had made. <bq>Kirk was a poster child for our emergent Christian Fascism. He peddled the Great Replacement Theory, which claims liberals or “globalists” allow immigrants of color into the country in order to replace whites, distorting immigration trends into conspiracy. <b>He was Islamophobic, tweeting “Islam is the sword the left is using to slit the throat of America,” and that it is “not compatible with western civilization.”</b> <b>When children’s YouTuber Ms. Rachel said “Jesus says to love God and to love your neighbor as yourself,” Kirk retorted that “Satan has quoted scripture plenty”</b> and added “by the way Ms. Rachel, you might wanna crack open that Bible of yours, in a lesser referenced part of the same part of scripture is in <b>Leviticus 18</b>, is that thou shall Lay with another man and be stoned to death.” <b>He demanded we roll back the Civil Rights Act of 1964</b> and disparaged civil rights leaders such as Martin Luther King. He was demeaning towards Black people, “If I’m dealing with somebody in customer service who’s a moronic Black woman...is she there because of affirmative action?” <b>He said “prowling Blacks” are targeting white people “for fun.” He blamed Black Lives Matter for “destroying the fabric of our society."</b> [...] <b>The idea that he championed free speech and liberty is absurd. He was an enemy of both.</b></bq> From the top comment on the post, <bq>[...] <b>As Martin Luther King said: “We must learn to live together as brothers or we will perish together as fools.” It’s pretty obvious which choice has been made now.</b> I will hold onto whatever kindness and sanity that I can in our final days, though I am not sure I can ever forgive the MAGA cult for their hatred and insanity they have imposed on the rest of us. Maybe that makes me no better than them. <b>I’m not sure I believe that old saying: Forgive them for they know not what they do. They know exactly what they are doing and it is akin to evil personified.</b></bq> <hr> <a href="https://www.caitlinjohnst.one/p/all-mainstream-american-political" author="Caitlin Johnstone" source="Notes From The Edge Of The Narrative Matrix">ALL Mainstream American Political Pundits Are Evil Scumbags</a> <bq>Hi I’m an anti-establishment right winger. I’m enraged about the murder of a mainstream Republican pundit who worshipped the president and <b>I demand sweeping authoritarian measures to stomp out the political left. I believe whatever the TV says about this. I’m anti-establishment.</b></bq> <bq>To be clear <b>I would be just as unmoved if a mainstream Democrat-aligned manipulator like Bill Maher or Joe Scarborough was [sic] killed</b>, and I would be just as disdainful of their memory. They are exactly the same to me. <b>I had no strong feelings about Charlie Kirk especially; to me he was just one of the empire’s countless flying monkeys, and his role will be easily filled by the next flying monkey in line.</b> My disdain toward him was of the ordinary blanket variety that I hold toward all the <b>lackeys of the most tyrannical and murderous power structure on our planet</b>, regardless of their political affiliation. All mainstream Republican pundits, politicians and political operatives are evil pieces of shit. All mainstream Democratic pundits, politicians and political operatives are evil pieces of shit. <b>You cannot become a high-level pundit, politician or political operative in either mainstream party without being an evil piece of shit.</b> It’s part of the job description, because <b>the job requires you to make excuses for the abuses of a globe-spanning empire which is fueled by human blood.</b></bq> <bq><b>Jerry Seinfeld said during a speech at Duke University on Tuesday that he believes that members of the Ku Klux Klan are morally superior to Palestine supporters</b>, because they are more honest about their hatred of Jewish people.</bq> Jerry Seinfeld is a moron and a piece of shit. He knows what he's doing. He's cheerfully painting targets on backs. <bq>[...] <b>Israel is a far right racist genocidal country, and its most natural allies are therefore racist right wingers who think genocide is cool.</b> All the world’s worst people cozying up together in one big happy genocidal cuddle party.</bq> <hr> <media href="https://www.youtube.com/watch?v=JUtvvgCPFhk" src="https://www.youtube.com/v/JUtvvgCPFhk" source="YouTube" width="560px" author="Articulating History / Dr. Roy Casagranda" caption="When Germany were forced to pay reparations to Israel and not the victims."> This is a pretty good recap of the history of the U.S. and the founding of Saudi Arabia. He presents how the U.S. was determined to never have what happened to Germany happen to it: it was never going to run out of oil. Oddly, the only <a href="https://de.wikipedia.org/wiki/Roy_Casagranda">page on Wikipedia for him in in German.</a> It's wild that he doesn't have a page in English because he's a U.S. American. <bq>Seine Forschungsinteressen umfassen politische Philosophie (insbesondere antike, moderne und deutsche kontinentale), den Nahen Osten, amerikanische Außenpolitik, Geschichte des östlichen Mittelmeerraums und Entscheidungstheorien. Casagranda veröffentlichte Artikel in verschiedenen Medien, darunter in iranischen Reformzeitschriften wie Merhnameh und Donya-e-Eqtesad Daily. In den USA schrieb er für den Austin American-Statesman und analysierte unter anderem den Arabischen Frühling.</bq> <bq>Seit Beginn seiner akademischen Laufbahn hat Casagranda einen erzählerischen Ansatz in der Wissensvermittlung verfolgt, der sich von traditionellen akademischen Vortragsformen unterscheidet.</bq> <hr> <media href="https://www.youtube.com/watch?v=gdT5ds3P1L0" src="https://www.youtube.com/v/gdT5ds3P1L0" source="YouTube" width="560px" author="Articulating History / Dr. Roy Casagranda" caption="When USA embassy in Iran was a CIA headquarters and Iranian government closed it"> This one is an excellent ~10-minute retelling of the history of Iran, the Iranian Embassy hostages, the CIA, and the Iran-Iraq war of 1980--1988. <hr> <a href="https://www.wsws.org/en/articles/2025/09/11/koxl-s11.html" author="Peter Schwarz" source="WSWS">European powers escalate war threats against Russia after drones shot down over Poland</a> <bq>Today, <b>there is not a single voice of moderation among NATO’s leading representatives.</b> No sooner had it been reported that Polish and Dutch fighter jets and German Patriot missiles, with the support of Italian AWACS surveillance aircraft, had shot down drones in Polish airspace than they <b>began to outdo each other in war rhetoric.</b></bq> <bq>EU Commission President Ursula von der Leyen condemned Russia in a speech to the European Parliament for the “reckless and unprecedented violation of Polish airspace.” She <b>pledged €6 billion to Ukraine from the interest on frozen Russian assets for the production of its own drones.</b></bq> <bq>The Russian Defence Ministry denied any intention to hit targets in Poland and said it was ready to consult with the Polish Defence Ministry on the matter. <b>In the past, drones from the war in Ukraine have strayed into Poland without NATO accusing Russia of any intent.</b> Pavel Muravyeika, deputy defence minister of Belarus, which borders Poland, said drones had accidentally entered Polish airspace because their navigation system had been disrupted. <b>Belarus itself shot down drones over its territory because they had lost their bearings. Disrupting GPS signals is a widespread weapon in the war in Ukraine.</b></bq> <hr> <a href="https://www.counterpunch.org/2025/09/12/roaming-charges-the-broken-jaws-of-our-lost-kingdom/" author="Jeffrey St. Clair" source="CounterPunch">Roaming Charges: The Broken Jaws of Our Lost Kingdom</a> <bq>[...] as Dylan said of the McCarthy Era, “as long as you don’t say nothing, you can say anything at all,”</bq> <bq>The murder of Charlie Kirk is awful, disgusting and about as American as it gets. But let’s recall that <b>when two Democratic legislators and their spouses were assassinated by a Trump supporter in Minnesota a few weeks ago, Trump said nothing.</b> Nada. Zilch…..<b>When an anti-vaxxer fired 173 shots at the CDC HQ in Atlanta last month, Trump stayed quiet</b>, which was probably welcome, given what he might have said.</bq> Some more examples of the kind of wisdom that Charlie Kirk will no longer be able to bless the world with. <bq>What kind of “awful words” did Kirk say? How about this: “<b>Black women do not have the brain processing power to be taken seriously.</b> You have to go steal a white person’s slot.” Or this: “If I’m dealing with somebody in customer service who’s a moronic black woman, I wonder, <b>is she there because of her excellence or is she there because of affirmative action?</b>” Or this: “If you’re <b>a WNBA pot-smoking black lesbian</b>, do you get treated better than a US Marine?” Or this: “<b>If I see a black pilot, I’m going to be like, boy, I hope he’s qualified.</b>” Or this: “The American Democrat Party hates this country. They wanna see it collapse. <b>They love it when America becomes less white.</b>” Or this: “The Democrats love everything God hates.” Or this: “<b>We made a huge mistake when we passed the Civil Rights Act in the mid-1960s.</b>” Or this: “MLK was awful. He’s not a good person. He said one good thing he actually didn’t believe.” Or this: “<b>Jewish donors have been the number one funding mechanism of radical open-border, neoliberal, quasi-Marxist policies, cultural institutions and nonprofits.</b> This is a beast created by secular Jews.”</bq> <bq>UBS has assessed the probability of recession at 93%.</bq> <bq>According to Bloomberg, new cars are now so expensive that more and more buyers need seven-year loan.</bq> <bq>Jacob Silverman: “You’re asking how those protesters got so close to the president? <b>Code Pink is the most elite deep cover group of operators this country has ever produced. They will pop up in your living room.</b></bq> <hr> <media href="https://www.youtube.com/watch?v=-PEg0ai_lAk" src="https://www.youtube.com/v/-PEg0ai_lAk" source="YouTube" width="560px" author="Chris Hedges" caption="'Silent Holocaust' — Israel's Guatemalan Genocide (w/ Jennifer Harbury)"> Another moving, informative, and inspiring interview by Chris Hedges, this time with <a href="https://en.wikipedia.org/wiki/Jennifer_Harbury" source="Wikipedia">Jennifer Harbury</a>, who's been fighting the good fight in Guatemala for decades, mostly in the 80s and 90s, when she went on three hunger strikes for justice. She's written many books and expresses herself extremely well, as well as being overall very sympathetic. <bq>The Guatemalan genocide — preceded by a CIA-instigated coup d’état of the Guatemalen government in 1954 and the ensuing civil war — saw hundreds of thousands of the Mayan Indigenous peoples and alleged communists massacred or disappeared. Lawyer Jennifer Harbury, who exposed many of the war crimes committed by the Guatemalan Army during the genocide, discusses the gruesome details of the conflict, and the role the CIA and Israel played in facilitating the brutality.</bq> <bq>(0:00) Intro (3:24) Guatemala and Gaza (12:17) Israel’s role in the Guatemalan genocide (18:23) Armed resistance (25:30) How Harbury met with ORPA (33:14) Why civilians were the targets of Guatemalan army (36:39) Jennifer’s Husband’s capture (49:28) The psychological effect of missing persons (54:00) Outro</bq> <h id="journalism">Journalism & Media</h> <a href="https://chrishedges.substack.com/p/the-betrayal-of-palestinian-journalists" source="Substack" author="Chris Hedges">The Betrayal of Palestinian Journalists</a> <bq>No war I covered comes close to these numbers of dead. <b>Since Oct. 7, Israel has killed more journalists “than the U.S. Civil War, World Wars I and II, the Korean War, the Vietnam War (including the conflicts in Cambodia and Laos), the wars in Yugoslavia in the 1990s and 2000s, and the post-9/11 war in Afghanistan, combined.”</b> Journalists in Palestine leave wills and recorded videos to be read or played at their death.</bq> <bq>The colleagues of these Palestinian journalists in <b>the Western press</b> broadcast from the border fence with Gaza decked out in flak jackets and helmets, where they <b>have as much chance of being hit by shrapnel or a bullet as being struck by an asteroid.</b> They scurry like lemmings to briefings by Israeli officials. They are not only the enemies of truth, but also the <b>enemies of journalists doing the real work of war reporting.</b></bq> <bq>I do not fault anyone for not wanting to go into a war zone. This is a sign of normality. It is rational. It is understandable. Those of us who volunteer to go into combat — <b>my colleague Clyde Haberman at The New York Times once quipped “Hedges will parachute into a war with or without a parachute”</b> — have obvious personality defects.</bq> <bq>The barrage of Israeli lies amplified and given credibility by the Western press violates a fundamental tenet of journalism, the duty to transmit the truth to the viewer or reader. It legitimizes mass slaughter. It refuses to hold Israel to account. It betrays Palestinian journalists, those reporting and being killed in Gaza. And it <b>exposes the bankruptcy of Western journalists, whose primary attributes are careerism and cowardice.</b></bq> <hr> <a href="https://scheerpost.com/2025/08/30/from-revolution-to-revival-russell-brand-embraces-trump-and-israel/" source="MintPress News" author="Alan MacLeod">From Revolution to Revival: Russell Brand Embraces Trump and Israel</a> <bq><b>Whatever the reason—be it conviction, a religious awakening, a money grab, or a calculated attempt to find new allies amid multiple sexual assault and rape scandals—it is clear that Russell Brand has undergone a dramatic political shift.</b> While he may have lost an entire audience on the left, his pivot to the right, which has seen him <b>embrace Trump, Fox News stars, and the Republican Party</b>, has netted him many friends in high places. Whether they can protect him in the future remains to be seen.</bq> <hr> <a href="https://www.racket.news/p/on-bari-weiss-cbs-and-legacy-medias" author="Matt Taibbi" source="Racket News">On Bari Weiss, CBS, and Legacy Media's Tears</a> Don't bother reading this article because Matt Taibbi has very firmly and clearly decided to examine this "issue" completely outside of the context of what Bari <i>actually stands for</i>. She is a virulent Zionist and defends every last murderous action of Israel. Taibbi cites the following accurate statement from the Nation, <bq><b>Bari Weiss has been making the world worse for a long time… If we lived in a less terrible time and place, Weiss would be dismissed as a crank and a bigot</b>, and never heard from again. But we live in the waking nightmare that is the United States in 2025. So instead Weiss is being rewarded with a prize that even she must think is kind of wild… That prize? CBS News.</bq> His entire take on this is to dispute the word "grift" used in the next paragraph because, hey man, people gotta get that cheddar ammirite? Taibbi's thesis seems to be that there is no problem with getting a huge reward for telling the kind of stories that the elites want to hear. The only thing he says about her absolutely awful, racist, and nihilistic worldview is <iq>I’ve had differences with Bari Weiss. I’ve disagreed with her politics more than once.</iq> He goes on to praise her for <iq>[...] combin[ing] an innate sense of audience with rare entreprenurial energy</iq> and that <iq>[...] she would need to take risks and bet on herself.</iq> His whole take on this is disappointing, superficial, largely principle-free, and self-serving trash. He just wishes it could have been him, I think. Hey, Matt, maybe if you just start promoting explicitly pro-Israeli narratives---rather than nearly completely ignoring the entire genocide, as you have been---your prince will come too! The comments on this article---which I rarely read---are an absolute nightmare. The only light of reason is a Paulette Altmaier, who very gently wrote, <bq>Matt, you're missing a critical part of the story that sheds a harsher light on Bari than this hagiography. [...] You're rather light on the Zionist Holocaust overall.</bq> She has a dozen comments doing yeoman's work fighting the virulent Zionists in the comments who keep writing about kicking women in the gut, which is just weird but I'm sure makes sense to them. These are terrible people and they absolutely <i>dominate</i> Taibbi's comments. Having read and listened to him for years, it's not hard to see that he craves approval and absolutely craves financial approval. He knows which side his bread is buttered on and has convinced himself that there is a hackneyed, libertarian, non-political, free-speech-oriented thread that he can follow and somehow stay the same person who wrote <i>I can't breathe</i>. This is definitely no longer the same person. He's thrown in with very, very bad and dumb people. I wonder whether the adulation feels hollow? Or is the money enough compensation? <hr> <a href="https://www.nefariousrussians.com/p/the-spectacle-made-flesh" author="Yasha Levine" source="Immigrants as a Weapon">The Spectacle Made Flesh</a> <bq><b>The political influencer is a relatively new phenomenon. Bigger and more numerous and more visible as a class than the talk radio guys and a lot more unhinged than the cable news personalities, they’ve risen to the top of the Spectacle</b> — made possible by the monopolistic communications technologies that we all now inhabit. Many of them are completely self-made, talented, coming from “the people” with a gift for sensing what their people want to hear and projecting emotional connection. They are kings and queens of the Spectacle now — agitating the mass psychosis, exploiting the alienation, pain, and anger that’s surging through the population. <b>They’ve been stirring the psychic oceans, working up surges and storms, and then riding these waves to fame and money and political power.</b> Throughout their short existence, <b>they have been insulated from the psychic madness they’ve pumped into the Spectacle. They’ve been secure in their nice neighborhoods and big houses and elite institutions</b>, certain that the people they’ve trapped with the Spectacle are too distracted, too enchanted, too zombified… But this Charlie Kirk assassination changed something for them. It’s dawning on them that <b>the Spectacle is not just an abstract entity. They are realizing deep down inside that the Spectacle can be made flesh. And that flesh can be killed. And that this flesh can be theirs.</b> Still, though, there is little they can do. They are at the top of the Spectacle, yet they are still slaves to it, bound to it more tightly than any of us. They can’t exit. They’re trapped. And so…the Spectacle became real for them, but only for a moment. <b>Charlie Kirk’s death has now too been Spectacularized</b> — taken out of the real, uploaded to the feed, abstracted and refracted and reflected through millions of prisms and mirrors. But make no doubt, the Spectacle will make landfall again. <b>The Spectacle will again become flesh. And then the cycle will begin again and again and again.</b></bq> <hr> <a href="https://www.caitlinjohnst.one/p/thoughts-on-the-assassination-of" author="Caitlin Johnstone" source="Substack">Thoughts On The Assassination Of Charlie Kirk</a> <bq><b>The same day Charlie Kirk was killed, at least 72 Palestinians were killed in the genocide he [enthusiastically] supported.</b> The Palestinians killed in Gaza on that day collectively mattered at least 72 times more than Charlie Kirk, but <b>his death received many orders of magnitude more attention from the mainstream press</b> and from western political discourse. <b>Westerners do not regard Palestinians as fully human.</b> So on this particular day <b>I would like to express my sincere condolences to the families of everyone in Gaza who’ve been massacred by bombs and bullets every single day for the last two years with the facilitation of the US government and cheered on by wealthy Republican pundits.</b> I don’t believe anything positive will be gained by Charlie Kirk’s death; <b>he was a mediocre man who will be easily replaced by the next mediocre man</b> in the right wing punditry pecking order. But <b>he was also a piece of shit, and I’m not going to pretend otherwise just because he’s dead now.</b></bq> <hr> <a href="https://www.garbageday.email/p/the-logical-endpoint-of-21st-century-america" author="Ryan Broderick" source="Garbage Day">The logical endpoint of 21st-century America</a> <bq>Regardless of the motive, the shooting was clearly staged to maximize impact on social media. Even though footage of mass death is an inescapable feature of the internet now, <b>there was something especially haunting about the videos of Kirk being struck down.</b> The uniquely parasocial terror of <b>seeing a person who seemed so untouchable from behind their armor of internet fame be reduced to just another fragile human being.</b> If 9/11 was the pinnacle of political violence for the TV age, Kirk’s death should be seen as an inverted mirror image, a perfect spectacle for the social media era. <b>A darkly fitting end for the premier digital propagandist of the Trump administration.</b> The same algorithms he relied on to create narratives for the MAGA movement now turning his death into a dizzying torrent of content. Shitposts, memes, conspiracy theories, and <b>delirious right-wing lust for civil war have spun together online over the last 24 hours more intensely than we’ve ever seen before.</b> The logical endpoint of 21st-century America: An influencer shot to death at a school in front a crowd of smartphones.</bq> An influencer who enthusiastically supported a genocide against others, who celebrated the right to bear arms, often saying that the number of deaths every year were an acceptable price to pay for that right. We don't stop driving because people in car accidents, do we? ... he would smugly say. PROVE ME WRONG. He would smugly say. He was just the in the middle of hating on gun regulation <i>except for trans people</i> (well, he wouldn't have called them "trans people" because didn't think they were people) when someone had, apparently, had enough of his bloviating and shot his throat out instead of wasting time proving him wrong. He died as he lived: stirring up shit and hating on the weak and dispossessed. <bq><b>Kirk has already achieved martyr status among conservatives. Trump ordered that flags fly at half mast all weekend and Kirk will posthumously receive the Medal of Freedom.</b> Which makes fears among leftists of federally-sanctioned street violence feel not all that hyperbolic. If you place Kirk’s murder along a timeline that includes Luigi Mangione’s alleged murder of UnitedHealthcare CEO Brian Thompson, both of attempted assassinations of Donald Trump, <b>the quickly forgotten assassinations of two Minnesota legislators this summer</b>, the accelerationist spree shooters connected to the 764 terror cell and the Com network that emerged this year, and the endless background radiation of political violence we’ve seen since the start of the COVID pandemic, you could argue that all of this actually started in August 2020. <b>When Kyle Rittenhouse opened fire on streets of Kenosha, Wisconsin. Kirk’s death was simply the first one to be truly optimized for our new, fractured media landscape. Impossible to ignore in a world where it’s impossible to pay attention.</b></bq> People are killed all the time. Charlie Kirk's death is no more important than of those. Trump murdered eleven people in a fishing boat just a week ago. Israel killed a dozen journalists two weeks ago. They just killed a half-dozen people in Doha. They just killed 37 people in Yemen <i>today</i>. No-one really cares about any of them. But the whole world must be turned upside-down for the death of a stupid and venal egomaniac who was a shit-stirrer and got what he was actually asking for, even though he probably wouldn't have seen it that way. Because he's supposed to be able to use words to ruin everyone else's lives while making tons of money for himself without any risk. I don't agree with murder. But no-one should be surprised. And no further action is necessary. If nothing was done when thousands of children per year die in schools, then why should anything be done when Charlie Kirk becomes another gun-violence statistic? <h id="labor">Labor</h> <a href="https://znetwork.org/znetarticle/how-to-make-a-pencil/" source="ZNetwork" author="Aaron Benanav">How to Make a Pencil</a> <bq>[...] no matter how powerful the planning algorithm, there will remain an irreducibly political dimension to planning decisions—for which the algorithm’s calculations, no matter how clever, can only serve as a poor substitute. <b>Algorithms are essential for any socialist planning project because they can help clarify the options among which we can choose. But human beings, not computers, must ultimately be the ones to make these choices.</b> And they must make them together, according to agreed-upon procedures.</bq> <bq>Managers are therefore free to pursue economization within broadly defined limits. If their decisions require that large numbers of workers in a particular town lose their jobs—because the pencil factory is being moved to a place with lower labor costs, for instance—then that is a decision the manager can make without answering to the townspeople. <b>For the market to function, therefore, decision-making power must be concentrated in relatively few hands. In a socialist society, however, the entire population would control production.</b> Decision-making power would be democratized, and <b>this would almost certainly lead to different kinds of decisions being made.</b></bq> <bq><b>Efficiency, whether calculated in terms of energy use, resource consumption, or labor time, would remain a concern, but it would no longer be the sole concern.</b> It would simply be one of many. Other considerations—dignity, justice, community, sustainability—would also enter the picture.</bq> <bq>Neurath argued that a socialist economy would have to be highly democratic—precisely because it could not be purely algorithmic. For Neurath, the algorithmic character of the price system was a problem to be overcome, rather than something that socialists should try to replicate. <b>In a capitalist economy, managers are able to make clear-cut decisions about cost-effectiveness only because they are allowed to ignore all of the non-economic costs</b> of their decisions, which include destroying communities, immiserating workers, depleting non-renewable resources, and filling the world with garbage. <b>Economically rational decisions at the level of the firm add up to an increasingly irrational society.</b></bq> <bq>The productive apparatus would have more in common with a “food forest” than a factory—a garden of edible plants, tended for hundreds of years and designed to provide for a multiplicity of needs, spiritual as much as material. It would connect the past to the future, across generations. It would be a common inheritance that made it possible for the masses of humanity to live and work as they wanted. <b>Beyond this shared realm of mutual obligations, an enlarged realm of freedom would progressively open up space for radical experimentation that could be explored by all, without endangering anyone’s material security or individual freedom.</b></bq> <bq>Too often, socialists have seen work as the highest realization of human freedom. In truth, work will never be an entirely free activity. But <b>in a world no longer beholden to the capitalist growth imperative, advanced technologies can substantially reduce the amount of work demanded of any individual.</b> With greater free time and available space, all individuals will be able to <b>develop their personalities outside of a work-centric identity.</b></bq> <bq><b>A rich and varied life beyond work is only possible if work is organized in a way that is fair, rational, and resistant to whatever forces might emerge to subjugate human beings once again.</b></bq> <hr> <a href="https://www.wsws.org/en/articles/2025/09/09/ccky-s09.html" author="Alex Lantier and V. Gnana" source="WSWS">French government collapses with strikes against austerity set to begin</a> <bq>Mélenchon’s denials of the crisis are lies to chloroform the workers. <b>All Europe’s major countries face insoluble debt crises. There are only two ways out: a fascistic dictatorship to impoverish the workers, or a struggle for a socialist revolution to expropriate the oligarchy.</b> The actions being launched by workers and youth across France must initiate this struggle. A general strike must be prepared to bring down Macron, by workers organized in rank-and-file committees to coordinate their struggles independently of union bureaucracies allied with Macron. Above all, <b>this struggle requires finding allies outside France’s borders, among workers entering into struggle against austerity across Europe and internationally, in an openly declared struggle for socialism.</b></bq> <h id="economy">Economy & Finance</h> <a href="https://fintechdystopia.com/chapters/chapter3.html" source="Fintech Dystopia" author="Hilary Allen">Chapter 3</a> <bq>While hailed as a major fintech success story, the growth of China’s super-apps is (yet again) less a story of technological innovation than it might first appear. <b>Martin Chorzempa</b>, who has been studying China’s financial system for over a decade, put it this way: <b>“for all the hype about mobile payments, most Alipay and [WeChat] Pay transactions today actually have digital versions of old-fashioned debit cards hiding behind the QR codes.”</b> As Chorzempa goes on to explain, their explosive growth was in large part due to the legal environment: “the central bank governor explicitly stated that he would <b>allow unregulated tech firms to enter spaces that were previously off limits to anyone without a financial license, giving those companies freedom to grow before any rules would be imposed.</b></bq> <bq><b>Financial regulations and antitrust rules that had lain dormant started to be enforced, new privacy rules were implemented</b>, and government officials published statements like “[when] a large Internet company conducts a large number of financial businesses but claims to be a technology company, it will not only evade supervision, but <b>will also be more prone to disorderly expansion, causing hidden risks not conducive to fair competition</b>” (as translated by Chorzempa in his eye-opening book <i>The Cashless Revolution</i>). While Chinese policy is now trying to rebalance the playing field in favor of the banks, the genie can’t be put completely back in the bottle – the super-apps are simply too integrated into the daily lives of most Chinese people.</bq> <bq><b>A particularly damning problem with neobanks is that they aren’t eligible for deposit insurance</b> (in the United States, FDIC deposit insurance protects at least $250,000 of a customer’s deposits held in a regulated bank). Instead, neobanks rely on their relationships with insured partner banks to protect their customers’ funds. Depending on how these relationships are structured and where precisely funds are being held at any given moment (on the platform, or at the bank?), deposits in neobanks may not be protected by deposit insurance at all. Public Service Announcement: <b>This is true of PayPal and Venmo as well, so it’s risky keeping funds in their wallets. When you receive a PayPal or Venmo payment, move it from the wallet to your insured bank account. You’re welcome.</b></bq> <bq>Imagine if the New York Stock Exchange (NYSE) were affiliated with a money market mutual fund (these regulated funds have a lot in common with stablecoins; investors buy shares in a fund filled with safe-ish assets, and those shares are consistently valued at $1 unless the safe-ish assets lose value and the fund “breaks the buck,” which is basically the same thing as a stablecoin depegging). <b>What kind of incentives might that create for the NYSE to steer its users towards using its affiliated money market mutual fund over those offered by competitors?</b> And if there were a run on that money market mutual fund (and these runs do happen occasionally), <b>might the NYSE have incentives to limit or shut down sales of fund shares, trapping customers with a tanking investment?</b> Now, in the real world, this kind of arrangement is unthinkable for the NYSE. But <b>these relationships are very much the norm for crypto exchanges and their affiliated stablecoins.</b></bq> <bq>As for the USDC stablecoin, the crypto exchange <b>Coinbase has always had some kind of relationship with USDC and its issuer Circle.</b> In a public filing from 2025, Circle disclosed that it paid $907.9 million to Coinbase for “distribution costs” in 2024 alone – and explained that it expects those costs to increase in the future (as an aside, Circle also disclosed in that filing that if it had to comply with the rules that cover money market mutual funds, <b>“applicable restrictions likely would make it impractical for us to continue our business as currently contemplated” – remember how I said that “innovating” around the law is the point when it comes to crypto?</b>).</bq> <bq><b>As crypto critic Molly White has explained, there is very little privacy available once your crypto wallet address is known</b>, because every transaction is publicly visible, and attempts to obscure them often easily unobscured with chain analysis tools. Imagine if, when you Venmo-ed your Tinder date for your half of the meal, they could now see every other transaction you’d ever made—and not just on Venmo, but the ones you made with your credit card, bank transfer, or other apps, and <b>with no option to set the visibility of the transfer to “private”. The split checks with all of your previous Tinder dates? That monthly transfer to your therapist?</b>…The location of that corner store right by your apartment where you so frequently go to grab a pint of ice cream at 10pm? Not only would this <b>all be visible to that one-off Tinder date, but also to your ex-partners, your estranged family members, your prospective employers.</b> An abusive partner could trivially see you siphoning funds to an account they can’t control as you prepare to leave them.</bq> <bq>As a society, we benefit from the banking business model in ways that help justify the governmental support that banks receive: unlike stablecoins, banks don’t just sit on reserves – they lend deposits out into the broader economy. If stablecoins significantly eat into banks’ market share, what will that do to the availability of credit that businesses rely upon to grow? <b>Bank lending is also the conduit through which central banks increase or decrease the money supply, and so substantially increased use of stablecoins could also limit the ability of the Federal Reserve to do its job when we’re faced with economic shocks.</b></bq> This is all true but also no longer really how this all works. The Fed doesn't really balance shocks nearly as much as the U.S. government acts as the lender of last resort to buoy whichever corporations have become too big to fail. Corporations and billionaires now work to lie themselves into such gargantuan, if largely fictitious, valuations so that so much of the country's pension and retirement funds depend on it that you don't dare let the value drop, no matter how unmoored from reality it is. <bq>[...] lots of central bankers don’t see any great need for a CBDC, but they think that other central bankers see something in them, so they keep on diligently investigating CBDC design issues, writing reports, running pilots, etc. In other words, <b>interest in CBDCs has spread among central bankers at least in part because they fear they might be missing out on an important tech solution, even though they’re not quite sure why they need it.</b> That’s the same kind of FOMO that drives so much private sector techno-solutionism.</bq> <bq><b>It should hopefully be clear by now that fintech is not going to bank the unbanked on its own, at least, not without doing it in an exploitative way.</b> As I said in the last chapter, that’s capitalism baby. The private sector is doing exactly what it’s supposed to do, and that is to seek out profitable opportunities. And so, as law professor Adam Levitin puts it, “to the extent there is a failure here, then, <b>it is a failure of government to intervene when the market fails to produce the desired policy outcome.</b></bq> Um, yeah. That's almost become the definition of capitalism. This will continue to happen because the power balance is so off-kilter. <bq>As Brett Scott explores in his book Cloudmoney: Cash, Cards, Crypto and the War for our Wallets, there are also many other reasons to preserve cash payments. He argues that <b>we should disregard the rhetoric about cash “increasingly being presented as an outdated barrier to progress,” and remember that it “protects privacy, and it is resilient in the face of both natural disasters and banking failures.”</b></bq> <bq>So often, <b>the Silicon Valley elite are talking nonsense, and yet we’re forced to engage with their nonsense as if it were credible and serious because they have too much money and power</b> for us to dismiss it out of hand. As a result, I’ve ended up spending years of my life <b>debunking the utility of something as blatantly crappy as the blockchain technology on which stablecoins and other crypto are built.</b> The next chapter is a summary of this debunking effort: it’s <b>the equivalent of writing a thesis on why Santa isn’t real,</b></bq> <hr> <a href="https://pluralistic.net/2025/09/06/computer-says-huh/" author="Cory Doctorow" source="Pluralistic">Stock buybacks are stock swindles</a> <bq><b>At root, stock buybacks are just wash-trading, the company buying its own shares to move their price, without doing anything to justify that price movement.</b> Before Reagan legalized stock buybacks, companies returned capital to their investors through dividends. Why would companies prefer buybacks to dividends? Because corporate executives hold tons of shares in their employer's company, and <b>it's much better for them to push those share prices higher even as they gut the company's ability to function.</b></bq> <bq>There's a lot to be furious about right now, like the masked fascist goons kidnapping our neighbors off the street, and the upside-down health system that is reviving the vaccine-controlled deadly pandemics of yesteryear. But <b>the reason those fascist goons and antivaxers are able to decide how we all live our lives is that a very small number of very rich people converted their stolen wealth to illegitimate power</b>, which they wield over us. Anyone who lived through the 2008 crisis knows that finance is a deadly weapon. <b>Let the finance sector run your economy and they will steal everything and leave you jobless, homeless and hungry.</b> Trump is a casino guy, and he knows that the only guy making money in a casino is the owner, who gets to set the odds at the machines and tables. <b>By opening the floodgates to trillions in stock buybacks, Trump is turning us all into the suckers at the table, and turning his oligarch investors into little autocrats</b>, with the power to degrade our lives and steal our future.</bq> <hr> <media href="https://www.youtube.com/watch?v=RdzTE0-_gwc" src="https://www.youtube.com/v/RdzTE0-_gwc" source="YouTube" width="560px" author="HasanAbi (Piker)" caption="WHAT A MESS!"> <bq>The US economy wasn't good necessarily. It hasn't been good. The metrics that we look at, the metrics that we examine to figure out whether or not a liberal capitalist nation's economy is good is already distorted. It's already out of whack. If the US economy was always good, because it was great under Obama, right? Post-2008, post-recovery, it was great under Obama. So <b>why did people turn around and vote for Donald Trump the first time?</b> This is a question that one must ask themselves. It's one that I keep repeating. And that is precisely <b>because that economy <i>wasn't working for many Americans already</i>.</b> That economy already wasn't working for many people. And that's why they wanted to [???] it through the system, through the establishment. They wanted to destroy it with the hopes of rebuilding. They took a shot in the dark at someone like Donald Trump, who was implementing some populist and dare I say fake left economics in his campaign. I mean it was a lie, right? And <b>it obviously clearly was a lie. We know that it was a lie because he didn't legislate that way for four years.</b> But the economy wasn't good then either for many working-class Americans. And then it got significantly worse during COVID. And then there was another recovery period post-COVID, where people were saying, well, you know, metrics look good. Metrics look good. metrics look good. What are you talking about? It looks good. It's a vibe session. It's a vibe session. You guys are wrong. <b>You guys are wrong over and over again. Which led to a lot of animosity amongst the working-class Americans</b> who then said, "No, you I'm going to go with a guy who says the real solution to this is to obviously deport 12 million migrant workers." Now, of course, that wasn't a solution at all. But <b>in the absence of a party with a clear vision, with a clear agenda that addresses the real problems that people were experiencing, people once again took another shot at the dark at the racist guy.</b> And we are seeing the outcome of that. We're seeing the out predictable outcome of that. One that I have warned against over and over and over again. Cuz remember, when we look at the unemployment numbers that are at 4.3%. That's not the entire story. Like I said, a lot of the metrics that we look at, <b>unemployment numbers, for example, or or the GDP, they don't show the reality.</b> They don't show the full story. Or we look at the stock market. The stock market is doing great. <b>At a time when there are mass layoffs taking place, the stock market's doing so great.</b> Why? Because they're eliminating redundancies. They're going to make up for it with AI. Is that good for you? You just got fired. No, it's horrible for you. But the stock market's doing well. Okay. Well, it exacerbates the income and wealth disparity in this country that causes people to be even more angry, be more mad, demand answers, demand restitution. <b>The goal for someone like myself is to get those people to understand that it's not about deporting Guatemalan and Mexican migrants. That is not going to solve their situation at all.</b> <b>Because it's not a Guatemalan migrant that owns your home, that is your landlord.</b> It's not a Guatemalan migrant that is at the board of this corporation that you work at that refuse to offer you better benefits that refuse to give you the back pay that you deserve. That is yours by law. It's your bosses. It's the capital owners. And it is the duopoly that finds <b>bipartisan consensus</b> when it comes down to things that impact you and your loved ones in the most meaningful ways. It's their <b>lack of interest in changing those structural forms of inequality, structural forms of violence that you experience.</b></bq> <hr> <a href="https://www.web3isgoinggreat.com/single/massive-npm-supply-chain-attack-puts-crypto-transactions-at-risk" author="Molly White" source="Web3 is going great">Massive NPM supply chain attack puts crypto transactions at risk</a> <bq>[...] the packages get around two billion downloads per week, and the compromise is being called the <b>"largest supply chain attack in history"</b>. Once the malicious code is injected, it then intercepts network traffic and API calls, scanning for cryptocurrency transactions across numerous blockchains. <b>When a network request is made to transfer crypto, the malicious code intercepts it and replaces the destination with wallets controlled by the attackers.</b></bq> <bq>"If you use a hardware wallet, pay attention to every transaction before signing and you're safe. <b>If you don't use a hardware wallet, refrain from making any on-chain transactions for now."</b></bq> Most people can just proceed with your normal crypto transactions because they were going to get scammed anyway. What do they care if their money goes to scammer A or scammer B who's man-in-the-middling scammer A? This is world we have built, where you're going to lose your money and you probably don't even care to whom you lose it. YOLO. <hr> <a href="https://radleybalko.substack.com/p/roundup-one-month-of-authoritarianism" author="Radley Balko" source="The Watch">Roundup: One month of authoritarianism. Plus: Obama cites The Watch! (sort of)</a> <bq><b>A conservative <i>New Yorker</i> analysis finds that Trump and his family have made at least $3.4 billion off his presidency, with the vast majority of that coming just in the last year. Most of the money has come from cryptocurrency</b>, including schemes that essentially allow foreign governments and people seeking favors and pardons to straight up give him money. <b>Even that analysis came before the Trump family launched yet another crypto coin that netted them another $5 billion on paper.</b> By these estimates, <b>Trump himself has tripled or quadrupled his net worth</b> just in the eight months since he was inaugurated.</bq> The ultimate grift! What a coup. I wonder what the point of it all is, for an eighty-year-old man? It's like with Larry Ellison. He's ancient, too. Why? Why get that bag? You can't, as they say, take it with you. Spite? Bloody-mindedness? So no-one else can have it? To push through a twisted vision of how the world should be? I don't believe that either of them have a coherent vision. They're just moving on instinct, wreaking havoc and demanding adoration for it. <hr> <a href="https://www.wsws.org/en/articles/2025/09/10/ebaj-s10.html" author="Nick Beams" source="WSWS">French government’s fall expresses mounting global debt crisis</a> <bq>The shifts in the bond market indicate that a turning point is being reached. As Bloomberg columnist Allison Schrager recently noted <b>the major economies have “no earthly way of paying for all of their debt.”</b> “The last few decades of low rates lulled investors, companies and governments into believing that they could keep borrowing and not face any costs—that <b>they could essentially live in a world without economic trade-offs. Higher rates mark the end of this era of magical thinking.”</b> She did not specify or go into detail as to what those “trade-offs” would be. But they are already emerging in plain sight. They involve massive attacks on the social position of the working class and all the gains of the post-war period, accompanied by <b>escalation of authoritarian and fascist forms of rule to impose them, the development of which is already well underway.</b></bq> <hr> <a href="https://www.wsws.org/en/articles/2025/09/12/lsea-s12.html" author="Andre Damon" source="WSWS">Oracle’s Larry Ellison seizes $100 billion in wealth in a single day</a> <bq>OpenAI is conjuring up the money necessary to pay for its massive contract with Oracle out of thin air. As the Journal reported, “OpenAI is a money-losing startup that disclosed in June it was generating roughly $10 billion in annual revenue—less than one-fifth of the $60 billion it will have to pay on average every year. <b>Oracle is concentrating a large chunk of its future revenue on one customer—and will likely have to take on debt to buy the AI chips needed to power the data centers.”</b></bq> A customer that is set to lose dozens of billions in the next few years. See <a href="https://www.wheresyoured.at/oracle-openai/" author="Ed Zitron" source="Where's Your Ed At?">Oracle and OpenAI Are Full Of Crap</a> for more information and strong evidence that you should have serious doubts about the low numbers. The losses will likely be much higher and will almost certainly be borne by the U.S. taxpayer somehow and as usual. <bq>Over the next three years, major technology companies are expected to invest nearly $3 trillion in computer hardware and data center infrastructure, all <b>financed by speculative debt, in a vast financial bubble of unprecedented scale.</b> <b>The ability of Oracle to provide this massive computational infrastructure is likewise dependent on a vast debt load. Its debt-to-equity ratio is 427 percent, compared to 32.7 percent for Microsoft.</b> Even among America’s billionaires, Ellison is known for his exorbitant spending. He held the record for the world’s most expensive home, having spent over $200 million on his villa near Palo Alto, California. <b>Ellison also owns 98 percent of the land on Lānaʻi, the sixth-largest of the Hawaiian Islands, and the 43rd largest island in the United States.</b> <b>Ellison is an advocate of uncontrolled mass surveillance</b>, telling Oracle investors, “Citizens will be on their best behavior, because we’re constantly recording and reporting everything that’s going on … It’s unimpeachable.” The Ellison family has been on a buying spree. This year, <b>Ellison’s son, David, orchestrated the takeover of Paramount Global, owner of CBS and MTV. On Thursday, the Wall Street Journal reported that Paramount is preparing a takeover of Warner Brothers</b>, potentially making the Ellison family the most dominant players in the global entertainment market.</bq> <hr> <a href="https://www.citationneeded.news/issue-92/" author="Molly White" source="Citation Needed">Issue 92 – The scam of all scams</a> <bq>it’s inarguable that the Trumps have profited enormously from World Liberty. <b>With 75% of WLFI token sale proceeds flowing directly to the Trumps after an initial $30 million threshold was met, the Trumps profited $412.5 million from the early token sales.</b> The token has also served as a mechanism for indirect payments to the president and his family — <b>crypto billionaire Justin Sun’s $75 million purchases of WLFI in November 2024 and January 2025 saw $56 million of it flow directly to the Trumps.</b> Besides that, the family has a massive share of WLFI tokens they will later be allowed to sell (though not for $5 billion) or potentially borrow against. And the family maintains an equity stake in the company, giving them a share of all ongoing operations. One significant revenue stream comes from the USD1 stablecoin — particularly its use by the Emirati firm MGX for an investment into Binance [I83]. <b>This arrangement alone is projected to generate $280 million by the end of Trump’s term, with approximately $168 million of it flowing to the Trump family.</b></bq> <h id="climate">Environment & Climate Change</h> <a href="https://3quarksdaily.com/3quarksdaily/2025/08/a-billion-abominations-a-day.html" source="3QuarksDaily" author="Mike Bendzela">A Billion Abominations A Day</a> <bq><b>I experienced a pang of guilt for destroying the ants’ universe: But why? They’re just ants. Besides, this particular wave of death is nothing</b>: A few miles down the road, a large parcel of woodland has been cleared to make way for a commercial outlet that is built within days. What life succumbed there? A little further away, whole hectares of forest in our town have been razed to make way for a vast array of solar panels. They call this a “farm”! <b>As of this writing, over 7 million hectares are on fire in Canada, and the scar of the bitumen mining operation in northern Alberta continues to expand like a cancer</b> into boreal forest. <b>The minor atrocity committed in the dooryard is but one of billions committed daily.</b></bq> <bq>After weeks have passed, I search the woodpile for the remains of the ants’ nest, now split into pieces and stacked in with the rest of the firewood. The wood has already begun to dry out in our preternaturally intense northern New England heat wave, and there are no signs of ants anywhere. <b>Their cleaved nest galleries sit vacant and exposed to the sun like the ruins of some forgotten Bronze Age city.</b></bq> <h id="art">Art, Literature, & Cinema</h> <a href="https://jacobin.com/2025/09/caught-stealing-noir-aronofsky-butler/" source="Jacobin" author="Eileen Jones">Caught Stealing Is a Wild and Violent Romp</a> <bq>Aronofsky’s New York City of 1998 seems to lean backward toward 1970s movies in its <b>beautifully shot funk, filth, and graffiti</b>, as well as its memorably offbeat characters just struggling to get by. <b>There used to be a lot of ’70s films about people trying to make a big score so they could escape a hopelessly corrupt and depressing life in America</b>, which was the natural fallout of Watergate, the Vietnam War, and the exhaustion following a decade of furious social protest that was fast losing its momentum. The sad echo of that kind of film in our current cinema makes sense right now.</bq> <hr> <a href="https://www.caitlinjohnst.one/p/secretary-of-war" author="Caitlin Johnstone" source="Substack">Secretary Of War</a> <bq><b>He did not feel the robins in his chest or hear the red-winged blackbirds trilling in his hair.</b> The electricity of the flesh was a stranger to him. Exuberance was a deadbeat dad who never called. <b>Outside the Pentagon walls a cicada roared unnoticed and the grass sang ancient hymns to the sun god.</b> People bustled in and bustled out, their minds buzzing with Palantir porn, <b>their lips casting spells of Raytheon and ruin.</b> Under the rubble of a far away building a child reached out a hand in the darkness. <b>Her cries were silenced by gulps of whiskey in the office of the Secretary of War.</b></bq> <hr> <media href="https://www.youtube.com/watch?v=nO9aot9RgQc" src="https://www.youtube.com/v/nO9aot9RgQc" source="YouTube" width="560px" author="Max Cooper" caption="Repetition (Official Video By Kevin McGloughlin)"> <h id="technology">Technology & Engineering</h> <media href="https://www.youtube.com/watch?v=riZ5hZUOlk8" src="https://www.youtube.com/v/riZ5hZUOlk8" source="YouTube" width="560px" author="Julesy" caption="The Impossible Chinese Typewriter"> This was a fascinating 20-minute video about the development of several Chinese-character typewriters. It starts with a description of how an English-language (or western-language) typewriters work. From there, she describes a typewriter that worked on a disc, then one that used four cylinders (invented by Zhou Houkun), each with 1200 characters on it, then to one with four beds of characters in a grid (invented by Shu Zhendong). There were only about 1600 characters in this one but you could swap out "beds" of them with other sets. It was a clever mechanism that had the "key" that you identified as the one you wanted to use, be the actual die that hit into the ink-strip onto the paper as well. There is a long section on grouping characters, by radicals or by stroke order stemming from calligraphy tradition. When you focus on strokes, then you can use multiple commands to navigate a tree of characters by reducing the potential matching set of characters that could be produced by an initial set of strokes. She gives an example of how entering a single vertical stroke would restrict the set of possible letters to B, D, E, F, H, I, K, L, M, N, etc. Specifying a subsequent "curved stroke" would eliminate all but B and D. From there, you could select your desired character. While overkill for English, for the more than 5000 characters of Chinese, this is a good fit. People know stroke order in Chinese. The next ingenious bit was having multiple rollers with multiple rollers from which to select from six rows of 29 characters each (invented by Lin Yutang). The full set was over 8000 characters. With some of those slots reserved for radicals and phonetic casts meant that over 91,000 more characters could be produced. The selector mechanism would ensure that each subsequent stroke selection would bring the desired character closer to the striking area, where it could be hammered into the ink-strip onto the paper. It took 30 years to finish this design to production quality. This system kind of reminds me of the shorthand system of writing as well, although I don't know enough about that system to be sure that the comparison is apt. I suspect it might be similar. Apparently, Lin Yutang shopped his Ming Kwai typewriter to Remington Arms for mass-production but they took a pass because of a failed demo. One of the comments writes, <bq>Incredible! He invented a mechanical hashing algorithm with eight overflow bins to handle the inevitable collisions. Years, if not decades, before this became standard in computer language and programming theory.</bq> <hr> <a href="https://www.drewlyton.com/story/the-future-is-not-self-hosted/" source="" author="Drew Lyton">The Future is NOT Self-Hosted</a> <bq>[...] with a 3.70 GHz Intel Xeon W-2135 and 128GB of RAM. When it arrived, I installed a <b>GTX 1660Ti graphics card with 6 GB of vRAM</b>, flashed a 500 GB SSD with Proxmox, set up four 8 TB HDDs in a MergerFS pool with Snapraid for parity, and added <b>a 2 TB NVMe SSD to use as a storage cache.</b> After that, I installed Tailscale and created a fresh Ubuntu LXC. Then, <b>I installed Tailscale and Docker on the virtual machine</b>, pulled down a GitHub repo containing all of my setup scripts and <c>compose.yml</c> files, hacked into the mainframe, and ran <c>docker compose up -d</c>. Gasp.</bq> <bq><b>Imagine a world where your library card includes 100GB of encrypted file storage, photo-sharing and document collaboration tools, and media streaming services — all for free.</b> Your data is encrypted end-to-end, but is shareable to anyone on any other service through standardized protocols. <b>When you need more storage, you pay for it through metered usage like any other utility.</b></bq> <bq>I realized how privileged I am to have the skills required for digital sovereignty. I realized <b>how unattainable, unsustainable, and unrealistic self-hosting is as a mass solution to the problems we face.</b> I realized that <b>self-reliance isn't freedom — it's the luxury of retreating from a system that others can't escape.</b></bq> <hr> <a href="https://arstechnica.com/security/2025/09/the-us-is-now-the-largest-investor-in-commercial-spyware/" author="Vas Panagiotopoulos" source="Ars Technica">The US is now the largest investor in commercial spyware</a> <bq>In 2024, 20 new US-based spyware investors were identified, bringing the total number of American backers of this technology to 31. This growth has largely outpaced other major investing countries such as Israel, Italy, and the United Kingdom, according to a new report published today by the Atlantic Council. The study surveyed 561 entities across 46 countries between 1992 and 2024, identifying 34 new investors. This brings the total to 128, up from 94 in the dataset published last year.</bq> And yet, literally no-one in the west will ever, ever, ever pin a hack on the U.S. It's always China, Russia, Iran, or North Korea. I'm sure Venezuela will magically show up in the mix soon. <h id="llms">LLMs & AI</h> <a href="https://simonwillison.net/2025/Sep/6/anthropic-settlement/#atom-everything" author="Simon Willison" source="">Anthropic to pay $1.5 billion to authors in landmark AI settlement</a> <bq>[...] the maximum allowed penalty was $150,000 per book, so $3,000 per book is actually a significant discount. As far as I can tell this case sets a precedent for Anthropic's more recent approach of buying millions of (mostly used) physical books and destructively scanning them for training as covered by "fair use". I'm not sure if other in-flight legal cases will find differently. <b>If this does hold it's going to be a great time to be a bulk retailer of used books!</b></bq> Jesus, what a slimy take, Simon. A budding company has a ton of money provided by the billionaire backers that own the planet that it can afford to flout the copyright law. These laws are customarily used as a cudgel to impoverish the <i>Fussvolk</i> (rank and file) when they dare to listen to, watch, or read something without paying these billionaires. This company has been found guilty of violating the copyright of 500,000 books in a way that means that no-one will ever need to read that book again. They have more than enough money to pay the $1.5B damages---especially since the billionaires pumped $13B more into the company <i>just this week</i>. This company also buys up old books and shreds them after scanning them, to protect themselves legally. It's all so bleak and awful and nonproductive. But, because Simon likes the company's product, he ignores the medium- and long-term implications and cheekily recommends that the "play" here is to make money off of selling books to drop into Anthropic's insatiable maw. Depressing. <hr> <img src="{att_link}discover_steamy,_sexy_and_scandalous_reads_from_usa_today_and_1_amazon_best_selling_author_tl_swan.jpeg" href="{att_link}discover_steamy,_sexy_and_scandalous_reads_from_usa_today_and_1_amazon_best_selling_author_tl_swan.jpeg" align="none" caption="Discover steamy, sexy and scandalous reads from USA Today and #1 Amazon Best Selling author TL Swan" scale="40%"> <bq>Discover steamy, sexy and scandalous reads from USA Today and #1 Amazon Best Selling [sic] author TL Swan</bq> Books: <bq><ul>My Rules (Kingston Lane) My Temptation (Kingston Lane) The Do-Over (Kingston Lane) The Casanova (The Miles High Club) The Takeover (The Miles High Club) The Stopover (The Miles High Club)</ul></bq> Isn't it the "Mile-high club"? This was the home page of my Kindle the other day. I think my Kindle still kind of holds out hope that I might be gay. I don't know why it's so important to Amazon that I be gay but, every once in a while, it throws a pile of extremely female-oriented, male-body-focused erotica to see if I'll click "Read now". Seriously, though: what are the odds that the author of these books even exists? Are these really memorable erotica? Or have these just been churned out by an LLM? Are the just pallid, mediocre, by-the-number erotica? <hr> <img src="{att_link}3_ai_apps_we_love_and_temu-_shop_like_a_billionaire.jpeg" href="{att_link}3_ai_apps_we_love_and_temu-_shop_like_a_billionaire.jpeg" align="none" caption="3 AI apps we love and Temu- Shop Like a Billionaire" scale="50%"> Over on the iPhone, the App Store is being mediocre and generic and <i>basic</i>. It can't come up with anything more interesting that to recommend the top three AI apps as the ones <iq>we love</iq>? I'm not actually sure about the middle one but I'm pretty sure the first one is ChatGPT and I'm pretty sure that the last one is Anthropic (the one that looks like someone took one minute in MS Paint to draw an anus), but I don't know what the middle one is. They all look the same anyway. If AI doesn't interest me, then how about <iq>[s]hop[ping] [l]ike a [b]illionaire</iq> with one of the world's most popular online-shopping corporations in the world? And you won't be shopping normally either! You'll be shopping like one of the most respected---and most respectable---people in the world: <i>a billionaire</i>. How should I imagine this? Will I be browsing $20M properties in Rio? Does it have the right infinity pool? Does it have a parking spot for my mega-yacht? How luxurious is the elevator from the harbor to my penthouse? How innocuous is the staff? Are they colors that I find discomfiting? <hr> <a href="https://www.schneier.com/blog/archives/2025/09/ai-in-government.html" author="Bruce Schneier & Nathan E. Sanders" source="Schneier on Security">AI in Government</a> <bq>The moral of this story is that we can achieve positive outcomes for workers and the public interest as AI transforms governance, but it requires two things: electing leaders who legitimately represent and act on behalf of the public interest and increasing transparency in how the government deploys technology.</bq> All we have to do is fix the a series of interlocked democratic systems that have been positively <i>shattered</i> by rampant and by-now nearly completely unfettered capitalism. <bq>Agencies need to implement technologies under ethical frameworks, enforced by independent inspectors and backed by law. Public scrutiny helps bind present and future governments to their application in the public interest and to ward against corruption.</bq> Tell me more about this magical fairyland. I think we could have it! Yes, I do! But we would have to drop a lot of other baggage first. Like the primacy of the profit motive and the unlimited-growth economy, for starters. Like, we would have to re-engineer our system to punish sociopathy rather than promoting it to the highest levels. Otherwise, where are all of these wonderful things going to come from? Do we think that the few corporations that run everything will voluntarily start following principles that are diametrically opposed to their profit streams? <bq>We think everyone should be skeptical of today’s AI ecosystem and the influential elites that are steering it towards their own interests. But we should also recognize that technology is separable from the humans who develop it, wield it and profit from it, and that positive uses of AI are both possible and achievable.</bq> Yes, of course there are uses for AI. We have to take a sober look at these technologies and do a cost/benefit analysis of it. We will not do that anytime soon; instead, we will see the bubble grow and grow because there are too many important people who've sunken a lot of cost into it. They will need to be made whole either before or after the bubble bursts. That noble goal---making billionaires---richer is the sole aim of the mighty engine of our civilization. The rest of us play along because we've been brainwashed into thinking that this is the only way to have nice things. We're being led along by that dangling carrot that we believe is our promotion to the elites that will effortlessly benefit from anything that happens, anywhere in the world, collecting rent (so-called passive income) and contributing nothing of value. That's the dream. It is into this world that we have to deploy AI technologies sensibly and ethically. You'll pardon me if my hopes are somewhat tempered. The authors themselves are aware of the problem. They buried this paragraph in the middle of the essay, <bq>To reach these constructive outcomes, much needs to change. Electing leaders committed to leveraging AI more responsibly in government would help, but the solution has much more to do with principles and values than it does technology. As historian Melvin Kranzberg said, technology is never neutral: its effects depend on the contexts it is used in and the aims it is applied towards. In other words, the positive or negative valence of technology depends on the choices of the people who wield it.</bq> They seem too aware of the problems we face to conclude with their hopeful summary. They offer no solution to the main problem, outlined above. You can't just assume that we have light-speed travel and then start making plans for a weekend trip to the outer planets. <hr> <a href="https://xkcd.com/303/">Compiling</a> <img src="{att_link}xkcd_compiling.webp" align="none" caption="xkcd #303: Compiling"> I was part of a couple of workshops/trainings on programming with LLMs. In both of them, the speaker would mention that you can write in their native language (German) ... and then would write everything in passable English instead. Can you really use German? Why don't you use that then? In both of them, I also saw that the agent work would take a long, long time. They would have to distract how you just wait for long minutes until the request is done. In the second one, at least, the speaker explained how many tokens it uses (a lot) and how to check on your token-usage budget. In both of them, the LLM was used as a planner to come up with a spec with which to feed an agent. In neither of the cases did anyone actually read the generated spec. Because, like, why would you, right? It looks pretty good, so it must be right. To my eye, the so-called spec is a mix of spec and a lot of implementation-specific details. There is no requirement there. They called it a requirement but it's not a requirement; it's a mishmash. Both of them are just vibe-coding because in neither case did we actually look at the generated source code. The second guy just went into the web site and "tested" the "feature"---a shopping cart, which is, once again, something that the LLM has seen 40M times in its training data, but also something that you should totally ship without looking at the code at all---in the web page and pronounced it "good". He even said, <iq>Ich denke es war eine ziemlich gute Implementierung,</iq> without looking at the code <i>at all.</i>. In the first workshop, I was able to ask how long it would have taken to make the changes without an LLM. The answer was at least 90--120 minutes. OK, so the LLM took about 10 minutes but you haven't reviewed that code at all yet. LLMs are non-deterministic, so you cannot be sure that it didn't just leave something out. Still, the risk that the review won't be done is high. In the internal workshop, we talked about tests. The off-site, remote workshop didn't talk about tests for the larger, meatier chunk of code (the shopping cart) although he had the LLM generate tests for the 2D-point that he had it write. Again, I'm not sure how often we need to watch LLMs build code for shit that already exists or that would have taken you minutes to do yourself. Yes, it's amazing that it even works. But, I keep seeing the same demos year after year, as if there were something new here. And both of the speakers kept calling it "he" and "him" and talking about how it "understood" things. Stop talking like that. Would you think that the lane-assistant in your car "knows where it's going?" Jesus, people. The second one just spent the last 15 minutes talking about the unknown future of LLM-based programming, which he says has no limit, even though I keep seeing the same demos year after year. <hr> <a href="https://paulkedrosky.com/chatgpt-as-the-original-ai-error/" author="Paul Kedrosky" source="">ChatGPT as the Original AI Error</a> <bq>Adding AI to a product or a service has increasingly meant, post ChatGPT, adding <i>chat</i> to the product or service. That, however, is often an error. <b>People no more want to chat with every device in their life than they want to have dinner with their Kitchenaid dishwasher.</b> They just want those things to do what they were bought to do, and chat, too often, gets in the way. <b>Consumers are increasingly wary of chat interfaces, wondering why they are appearing everywhere.</b> The chat compulsion is even more misdirected in the workplace. Adding chat functionality to sales automation doesn't do much for most salespeople; adding chat to factory floor CNC routers will irritate most shop workers. <b>I spoke to a salesperson at a large, publicly-traded company recently who explained that management, after noisily bragging on earnings calls about adding chat to various products and services, was now ... making little mention of it.</b> There had been minimal customer interest, so out chat (quietly) went.</bq> <h id="programming">Programming</h> <a href="https://programmingsimplicity.substack.com/p/type-checking-is-a-symptom-not-a" source="Substack" author="Paul Tarvydas">Type Checking is a Symptom, Not a Solution</a> <bq>UNIX pipelines routinely compose dozens of programs into complex workflows, yet they require no type checking at the transport layer. <b>The individual programs trust that data flowing between them consists of simple, agreed-upon formats</b>—usually lines of text separated by newlines. This works because each component maintains strict isolation: what happens inside a component stays inside, and <b>communication occurs only through explicit, simple interfaces.</b></bq> The author is literally describing types. Simple types, to be sure, but types. An interface is a type by another name. I don't understand why he thinks that <iq>agreed-upon formats</iq> and <iq>simple interfaces</iq> differ substantially from what he's calling "types". <bq>[...] the internet itself operates without centralized type checking. HTTP servers and clients, email systems, DNS resolvers—they all <b>interoperate based on simple protocols</b> and the assumption that each component will handle its internal complexity responsibly.</bq> A protocol is a type definition. A specification is a type definition. They are the same thing. They determine how to filter input and indicate how to behave in compliant and failure cases. <bq>Consider what happens when you build a distributed system using function-based thinking. You end up with remote procedure calls (RPCs), where network requests masquerade as function calls. <b>The caller still blocks, but now it’s blocking on network latency, potential failures, and the unpredictable timing of remote systems.</b></bq> Who still does this? We've had better async patterns for decades now. they are built into most languages. At the lowest level, someone's still shuffling packets but <i>those packets have an agreed-upon structure</i> that I would describe as a <i>type</i>. <bq>We’re still thinking in terms of shared memory when components are separated by thousands of miles. We’re still designing for expensive, scarce CPUs when processing power is practically free. We’re still trying to optimize for perfect reliability when resilience in the face of failure is what actually matters.</bq> Which straw-persons exactly are you fighting here? Who hurt you? <hr> <a href="https://sinja.io/blog/get-maximum-out-of-your-font" source="" author="Oleg Wock">Features of your font you had no idea about</a> <bq>Firstly, there is salt to enable stylistic alternates for all letters. It’s this one setting that will likely alter how “a” and “g” look. Then there are stylistic sets. They are named ss01, ss02, and so on. They replace only a subset of characters with alternates. <b>Sets might have a certain purpose beyond just changing visual appearance, for example, typeface <i>Inter</i> has the stylistic set “Disambiguation” which changes the appearance of characters that might look too similar to other ones, like “I” and “l” or “0” and “O”.</b> Finally, there are character variants (cv01, cv02, and so on) that replace just a single character.</bq> <bq>To work around this, we can use CSS variables.<code>:root { --wdth: 100; --slnt: 0; } * { font-variation-settings: 'wdth' var(--wdth), 'slnt' var(--slnt); } p { --wdth: 75; } .emphasis { --slnt: -5; }</code></bq> <hr> <a href="https://codesmash.dev/why-i-ditched-docker-for-podman-and-you-should-too" source="" author="Dominik Szymański">Switching from Docker to Podman</a> <bq>Podman threw this model out the window. <b>No daemon</b>, no processes running in the background. <b>When you run <c>podman run my-app</c>, the container becomes a direct child of your command.</b> And it is running under your user privileges. Simple architecture change with huge implications:</bq> <bq><b>If your Docker Compose workflow is overly complex, just convert it to Kubernetes YAML.</b> We all use Kubernetes these days, so why even bother about this? Having the same layout for development and production is a huge bonus of doing so.</bq> <bq>Windows: If you are not a C# developer - stop doing this to yourself and just use Linux.</bq> Why are there still so many unapologetically ignorant people writing otherwise well-informed articles? How could you possibly have missed that you have been able to develop C# on Linux for a decade now? The book-length <a href="https://devblogs.microsoft.com/dotnet/performance-improvements-in-net-10/" source="Microsoft DevBlogs" author="Stephen Toub">Performance Improvements in .NET 10</a> (he's one of the lead developers and architects of .NET) writes, <bq>Throughout the post, I’ve shown many benchmarks and the results I received from running them. Unless otherwise stated (e.g. because I’m demonstrating an OS-specific improvement), <b>the results shown are from running them on Linux (Ubuntu 24.04.1) on an x64 processor.</b></bq> Quit your stupid anti-C# and anti-.NET bullshit. You're embarrassing yourself. <hr> <a href="https://matklad.github.io/2025/09/04/look-for-bugs.html" author="Alex Kladov" source="matklad">Look Out For Bugs</a> <bq>Who cares if it is String args or String[] args in the “<b>паблик статик войд мэйн стринг</b> а-эр-джи-эс”, it’s just some obscure magic spell anyway</bq> <bq>Bottom line: <b>reading the code is surprisingly efficient at proactively revealing problems.</b> Create space for calm reading. When reading, find ways to build mental models quickly, this is not entirely trivial.</bq> <hr> <media href="https://www.youtube.com/watch?v=cS05Sd77sBE" src="https://www.youtube.com/v/cS05Sd77sBE" source="YouTube" width="560px" author="Kevin Powell" caption="How to ignore an element’s size (and why you’d want to)"> The problem was to size a <c>Figure</c> that contains an <c>Img</c> and a <c>FigCaption</c>. <ul>The <c>Figure</c> should never be larger than the intrinsic width of the <c>Img</c>. The <c>Figure</c> should shrink to fit its container. The <c>Img</c> should shrink to the inline width of its container if there isn't enough space. The <c>Figure</c> should be centered inline if its container is larger. </ul> The 10-minute video shows how he and some others online got to the following, simple solution: <code>figure { inline-size: fit-content; margin-inline: auto; } figcaption { contain: inline-size; } img { max-width: 100%; }</code> The result is shown at the top-right of the screenshot below. <img src="{att_link}centering_an_inline-sized_figure_with_image_and_caption.webp" href="{att_link}centering_an_inline-sized_figure_with_image_and_caption.webp" align="none" caption="Centering an inline-sized figure with image and caption" scale="40%"> <hr> <a href="https://www.sonarsource.com/docs/CognitiveComplexity.pdf" author="G. Ann Campbell" source="SonarQube">{Cognitive Complexity}: a new way of measuring understandability</a> <bq><b>Cognitive Complexity has been formulated to address modern language structures, and to produce values that are meaningful at the class and application levels.</b> More importantly, it departs from the practice of evaluating code based on mathematical models so that it can <b>yield assessments of control flow that correspond to programmers’ intuitions about the mental, or cognitive effort required to understand those flows.</b></bq> <bq>because Cognitive Complexity does not increment for the method structure, aggregate numbers become useful. <b>Now you can tell the difference between a domain class - one with a large number of simple getters and setters - and one that contains a complex control flow</b> by simply comparing their metric values. Cognitive Complexity thus becomes a tool for measuring the relative understandability of classes and applications.</bq> There's a <a href="https://plugins.jetbrains.com/plugin/12024-cognitivecomplexity">CognitiveComplexity Plugin for Rider</a> as well as a <a href="https://github.com/matkoch/resharper-cognitivecomplexity">one for ReSharper</a>. Unfortunately, I was unable to locate a plausible extension (enough usage; reasonable rating) for Visual Studio or Visual Studio Code. <hr> <a href="https://devblogs.microsoft.com/dotnet/performance-improvements-in-net-10/" source="Microsoft DevBlogs" author="Stephen Toub">Performance Improvements in .NET 10</a> <bq>What made <a href="https://en.wikipedia.org/wiki/Frederic_Tudor">Tudor’s</a> ice last halfway around the world wasn’t one big idea. It was a plethora of small improvements, each multiplying the effect of the last. In software development, the same principle holds: <b>big leaps forward in performance rarely come from a single sweeping change, rather from hundreds or thousands of targeted optimizations that compound into something transformative.</b> .NET 10’s performance story isn’t about one Disney-esque magical idea; it’s about carefully shaving off nanoseconds here and tens of bytes there, streamlining operations that are executed trillions of times.</bq> <bq>As with many languages, .NET historically has had an “abstraction penalty,” those extra allocations and indirections that can occur when using high-level language features like interfaces, iterators, and delegates. Each year, the JIT gets better and better at optimizing away layers of abstraction, so that developers get to write simple code and still get great performance. .NET 10 continues this tradition. <b>The result is that idiomatic C# (using interfaces, foreach loops, lambdas, etc.) runs even closer to the raw speed of meticulously crafted and hand-tuned code.</b></bq> <h level="3">JIT</h> <bq>If the compiler can prove an object doesn’t escape, then that object’s lifetime is bounded by the method, and it can be allocated on the stack instead of on the heap. Stack allocation is much cheaper (just pointer bumping for allocation and automatic freeing when the method exits) and reduces GC pressure because, well, the object doesn’t need to be tracked by the GC. <b>.NET 9 had already introduced some limited escape analysis and stack allocation support; .NET 10 takes this significantly further.</b></bq> <bq>[...] where things gets interesting is around what the JIT is able to devirtualize. In .NET 9, it struggles to devirtualize calls to the interface implementations specifically on T[], so it won’t devirtualize either the <c>_list.GetEnumerator()</c> call nor the _list[index] call. However, the enumerator that’s returned is just a normal type that implements <c>IEnumerator<t></c>, and the JIT has no problem devirtualizing its <c>MoveNext</c> and <c>Current</c> members. Which means that <b>we’re actually paying a lot more going through the indexer, because for N elements, we’re having to make N interface calls, whereas with the enumerator, we only need the one with <c>GetEnumerator</c> interface call and then no more after that.</b></bq> To be clear: this has been addressed in .NET 10, so that the indexer is also almost always devirtualized. <bq>dotnet/runtime#110827 from @hez2010 also helps more methods to be inlined by doing another pass looking for opportunities after later phases of devirtualization. The JIT’s optimizations are split up into multiple phases; each phase can make improvements, and those improvements can expose additional opportunities. If those opportunities would only be capitalized on by a phase that already ran, they can be missed. But <b>for phases that are relatively cheap to perform, such as doing a pass looking for additional inlining opportunities, those phases can be repeated once enough other optimization has happened that it’s likely productive to do so again.</b></bq> <bq>The <b>static readonly</b> field is immutable, arrays can’t be resized, and the JIT can guarantee that the field is initialized prior to generating the code for <b>Read</b>. Therefore, when generating the code for <b>Read</b>, it can know with certainty that the array is of length three, and we’re accessing the element at index two. Therefore, <b>the specified array index is guaranteed to be within bounds, and there’s no need for a bounds check.</b></bq> The JIT has been doing these kinds of optimizations for a long time but the number of cases for which it can "prove" increases with each release. <bq>My choice of benchmark in this case was not coincidental. This pattern shows up in the <c>FormattingHelpers.CountDigits</c> internal method that’s used by the core primitive types in their <c>ToString</c> and <c>TryFormat</c> implementations, in order to determine how much space will be needed to store rendered digits for a number. As with the previous example, this routine is considered core enough that <b>it was using unsafe code to avoid the bounds check. With this fix, the code was able to be changed back to using a simple span access, and even with the simpler code, it’s now also faster.</b></bq> <bq>Many of these different optimizations interact with each other. Dynamic PGO triggers a form of cloning, as part of the guarded devirtualization (GDV) mentioned earlier: if the instrumentation data reveals that a particular virtual call is generally performed on an instance of a specific type, <b>the JIT can clone the resulting code into one path specific to that type and another path that handles any type. That then enables the specific-type code path to devirtualize the call and possibly inline it.</b> And if it inlines it, that then provides more opportunities for the JIT to see that an object doesn’t escape, and potentially stack allocate it. dotnet/runtime#111473, dotnet/runtime#116978, dotnet/runtime#116992, dotnet/runtime#117222, and dotnet/runtime#117295 enable that, <b>enhancing escape analysis to determine if an object only escapes when such a generated type test fails</b> (when the target object isn’t of the expected common type).</bq> This led to several several dozen performance-test improvements across the board when the PR landed. The whole section boils down to the JIT optimization working not only for regular loops, enumerable loops, but also hand-unrolled code with multiple array accesses (where bounds-checks can now be elided using clever cloning). <h level="4">Inlining</h> <bq>[...] <b>generally the most benefit from inlining comes from knock-on benefits.</b> Just as a simple example, if you have code like:<code>int i = Divide(10, 5); static int Divide(int n, int d) => n / d;</code>if <c>Divide</c> doesn’t get inlined, then when <c>Divide</c> is called, it’ll need to perform the actual <c>idiv</c>, which is a relatively expensive operation. In contrast, if <c>Divide</c> is inlined, then the call site becomes:<code>int i = 10 / 5;</code>which <b>can be evaluated at compile time</b> and becomes just:<code>int i = 2;</code></bq> <bq>Just inlining everything would be bad; inlining copies code, which results in more code, which can have significant negative repercussions. For example, <b>inlining’s increased code size puts more pressure on caches.</b> Processors have an instruction cache, a small amount of super fast memory in a CPU that stores recently used instructions, making them really fast to access again the next time they’re needed (such as the next iteration through a loop, or the next time that same function is called).</bq> <bq>As part of these heuristics, the JIT has <b>the notion of “boosts,” where observations it makes about things methods do boost the chances of that method being inlined.</b> dotnet/runtime#114806 gives a boost to methods that appear to be returning new arrays of a small, fixed length; <b>if those arrays can instead be allocated in the caller’s frame, the JIT might then be able to discover they don’t escape and enable them to be stack allocated.</b> dotnet/runtime#110596 similarly looks for boxing, as the caller could possibly instead avoid the box entirely.</bq> <h level="4">Code Layout</h> <bq>When the JIT compiler generates assembly from the IL emitted by the C# compiler, it organizes that code into “basic blocks,” a sequence of instructions with one entry point and one exit point, no jumps inside, no branches out except at the end. These blocks can then be moved around as a unit, and the order in which these blocks are placed in memory is referred to as “code layout” or “basic block layout.” This <b>ordering can have a significant performance impact</b> because modern CPUs rely heavily on an instruction cache and on branch prediction to keep things moving fast. <b>If frequently executed (“hot”) blocks are close together and follow a common execution path, the CPU can execute them with fewer cache misses and fewer mispredicted jumps.</b></bq> <bq>Consider a tight loop executed millions of times. A good layout keeps the loop entry, body, and backward edge (the jump back to the beginning of the body to do the next iteration) right next to each other, letting the CPU fetch them straight from the cache. <b>In a bad layout, that loop might be interwoven with unrelated cold blocks (say, a <c>catch</c> block for a <c>try</c> in the loop), forcing the CPU to load instructions from different places and disrupting the flow.</b> Similarly, for an <c>if</c> block, the likely path should generally be the next block so no jump is required, with the unlikely branch behind a short jump away, as that <b>better aligns with the sensibilities of branch predictors.</b></bq> <h level="4">GC Write Barriers</h> <bq><b>Whenever there’s a reference write that could cross a generation, the JIT emits a call to a helper</b> that tracks the information in a “card table,” and <b>when the GC runs, it consults this table to see if it needs to scan a portion of the higher generations.</b> That helper is referred to as a “GC write barrier.” Since a write barrier is potentially employed on every reference write, it must be super fast, and in fact the runtime has several different variations of write barriers so that the JIT can pick one optimized for the given situation. Of course, <b>the fastest write barrier is one that doesn’t need to exist at all, so as with bounds checks, the JIT also exerts energy to try to prove when write barriers aren’t needed, eliding them when it can. And it can even more in .NET 10.</b></bq> <h level="4">Miscellaneous</h> <bq>As with most compilers, the JIT employs common subexpression elimination (CSE) to find identical computations and avoid doing them repeatedly. dotnet/runtime#106637 teaches the JIT how to do so in a more consistent manner by <b>more fully integrating CSE with its Static Single Assignment (SSA) representation.</b> This in turn allows for more optimizations to kick in, e.g. some of <b>the strength reduction done around loop induction variables in .NET 9 wasn’t applying as much as it should have, and now it will.</b></bq> I just love how Toub manages to keep up his excitement so deep into this document. He's really a great writer. <h level="3">Native AOT</h> <bq>Native AOT [Ahead Of Time [compilation]] is the ability for a .NET application to be compiled directly to assembly code at build-time. The JIT is still used for code generation, but only at build time; the JIT isn’t part of the shipping app at all, and no code generation is performed at run-time. As such, <b>most of the optimizations to the JIT already discussed, as well as optimizations throughput the rest of this post, apply to Native AOT equally.</b></bq> <h level="3">VM</h> <bq>With dotnet/runtime#114462, the runtime now uses a single shared “template” for many of the small executable “stubs” it needs at runtime; <b>stubs are tiny chunks of machine code that act as jump points, call counters, or patchable trampolines.</b> Previously, each memory allocation for stubs would regenerate the same instructions over and over. The new approach builds one copy of the stub code in a read-only page and then maps that same physical page into every place it’s needed, while giving each allocation its own writable page for the per-stub data that changes at runtime. <b>This lets hundreds of virtual stub pages all point to one physical code page, cutting memory use, reducing startup work, and improving instruction cache locality.</b></bq> <h level="3">Threading</h> <bq>If a thread is blocked on an operation that depends on work items in that thread’s local queue getting processed, <b>that work item being picked off now depends on the global queue being exhausted and another thread coming along and stealing the work item from this thread’s queue.</b> If there’s a steady stream of incoming work into the global queue, though, that will never happen; essentially, <b>the highest priority work item has become the lowest priority work item.</b> So, back to these PRs. The idea is fairly simple: when the thread is about to block, and in particular when it’s about to block waiting on a Task, <b>it first dumps its entire local queue into the global queue.</b> That way, this work which was <b>highest priority for the blocked thread has a fairer chance of being processed by other threads</b>, rather than it being the lowest priority work for everyone.</bq> <bq>dotnet/runtime#107843 from @hamarb123 adds two new methods to the Volatile class: ReadBarrier and WriteBarrier. <b>A read barrier has “load acquire” semantics, and is sometimes referred to as a “downward fence”</b>: it prevents instructions from being reordered in such a way that memory accesses below/after the barrier move to above/before it. In contrast, <b>a write barrier has “store release” semantics, and is sometimes referred to as an “upwards fence”</b>: it prevents instructions from being reordered in such a way that memory accesses above/before the barrier move to below/after it.</bq> <bq>These barriers are referred to as “half fences”; the read barrier prevents later things from moving earlier, but not the other way around, and the write barrier prevents earlier things from moving later, but not the other way around. (As it happens, though, while not required by specification, today <b>the implementation of <c>lock</c> does use a full barrier on both enter and exit, so nothing before or after a lock will move into it.</b>)</bq> <h level="3">Reflection</h> <bq><c>System.Net.Http</c> sits above <c>System.Security.Cryptography</c>, referencing it for critical features like <c>X509Certificate</c>. But <c>System.Security.Cryptography</c> needs to be able to make HTTP requests in order to download OCSP information, and with <c>System.Net.Http</c> referencing <c>System.Security.Cryptography</c>, <b><c>System.Security.Cryptography</c> can’t in turn explicitly reference <c>System.Net.Http</c>. It can, however, use reflection or <c>[UnsafeAccessor]</c> and <c>[UnsafeAccessorType]</c> to do so, and it does. It used to use reflection, now in .NET 10 it uses <c>[UnsafeAccessor]</c>.</b></bq> <h level="3">Primitives and Numerics</h> <bq>dotnet/runtime#111505 from @alexcovington enables TensorPrimitives.Divide<t> to be vectorized for int. The operation already supported vectorization for float and double, for which there’s SIMD hardware-accelerated support for division, but it didn’t support int, which lacks SIMD hardware-accelerated support. <b>This PR teaches the JIT how to emulate SIMD integer division, by converting the ints to doubles, doing double division, and then converting back.</b></bq> That fix, roundabout as it sounds, ends up making that operation 4x faster. This is pretty cool because dividing integers in SIMD code just became 4x faster on .NET. You don't use this, you say? Well, are you sure? Are you sure that there is no code in handshake-negotiation (e.g.) that needs to divide multiple integers in parallel? These are exactly the kind of improvements that, as noted in Toub's introduction, lead to smoother operation in many other places. This is such a low-level primitive. <bq> We can then reuse those methods to do the same thing that’s already done for scalar operations but do it vectorized: take a vector of <c>Halfs</c>, convert them all to <c>floats</c>, process all the <c>floats</c>, and convert them all back to <c>Halfs</c>. Of course, I already stated that the vector types don’t support <c>Half</c>, so <b>how can we “take a vector of <c>Half</c>“? By reinterpret casting the <c>Span<half></c> to <c>Span<short></c> (or <c>Span<ushort></c>), which allows us to smuggle the <c>Halfs</c> through.</b> And, as it turns out, even for scalar, the very first thing <c>Half</c>‘s float cast operator does is convert it to a short. The net result is that a ton of operations can now be accelerated for <c>Half</c>.</bq> These optimizations improve performance for processing <c>Half</c> in dozens of operations by 11x. <bq>with C# 14, it’s possible for a type to not only define a <c>+</c> operator, <b>it can also define a <c>+=</c> operator.</b> If a type defines a += operator, it will be used <b>rather than expanding <c>a += b</c> as shorthand for <c>a = a + b</c>.</b> And that has performance ramifications. [...] that means that <b>such compound operators on the tensor types can just update the target tensor in place rather than allocating a whole new (possibly very large) data structure for each computation.</b> dotnet/runtime#117997 adds all of these compound operators for the tensor types. (Not only are these using C# 14 user-defined compound operators, they’re doing so <b>as extension operators</b>, using the new C# 14 extension types feature. Fun!)</bq> <h level="3">Collections</h> <bq>[...] as noted earlier in the JIT section, the JIT has been gaining super powers around dynamic PGO, escape analysis, and stack allocation. This means that in many situations, <b>the JIT is now able to see that the most common concrete type for a given call site is a specific enumerator type and generate code specific to when it is that type, devirtualizing the calls, possibly inlining them, and then, if it’s able to do so sufficiently, stack allocating the enumerator.</b> With the progress that’s been made in .NET 10, this now happens very frequently for <c>arrays</c> and <c>List<t></c>. While the JIT is able to do this in general regardless of an object’s type, the ubiquity of enumeration makes it all that much more important for <c>IEnumerator<t></c>, so dotnet/runtime#116978 <b>marks <c>IEnumerator<t></c> as an <c>[Intrinsic]</c>, giving the JIT the ability to better reason about it.</b></bq> <bq>For shorter lists, dynamic PGO will see <c>MoveNextRare</c> invoked a reasonable number of times, and will consider it for inlining. And if all of the calls to the enumerator are inlined, the enumerator instance can avoid escaping the call frame, and can then be stack allocated. But <b>once the list length grows to a much larger amount, that <c>MoveNextRare</c> method will start to look really cold, will struggle to be inlined, and will then allow the enumerator instance to escape, preventing it from being stack allocated.</b></bq> <bq>While OSR is awesome, it unfortunately causes some complications here. Once the list gets long enough, <b>an invocation of the tier 0 (unoptimized) method will transition to the OSR optimized method… but OSR methods don’t contain dynamic PGO instrumentation</b> (they used to, but it was removed because it led to problems if the instrumented code never got recompiled again and thus suffered regressions due to forever-more running with the instrumentation probes in place). Without the instrumentation, and in particular <b>without the instrumentation for the tail portion of the method (where the enumerator’s <c>Dispose</c> method is invoked), even though <c>List<t>.Dispose</c> is a nop, the JIT may not be able to do the guarded devirtualization that enables the <c>IEnumerator<t>.Dispose</c> to be devirtualized and inlined.</b> Meaning, ironically, that the nop <c>Dispose</c> causes escape analysis to see the enumerator instance escape, such that it can’t be stack allocated. Whew. [...] Specifically for enumerators, this PR <b>enables dynamic PGO to infer the missing instrumentation based on the earlier probes used with the other enumerator methods</b>, which then enables it to successfully devirtualize and inline <c>Dispose</c>.</bq> <bq>Labels A and B form a loop, but that loop can be entered by jumping to either A or to B. If the compiler could prove that this loop were only ever enterable from A or only ever enterable from B, then the loop would be “reducible.” Irreducible loops are much more complex than reducible loops for a compiler to deal with, as they have more complex control and data flow and in general are harder to analyze. dotnet/runtime#116949 <b>rewrites the <c>MoveNext</c> method to be a more typical while loop, which is not only easier to read and maintain, it’s also reducible and more efficient, and because it’s more streamlined, it’s also inlineable and enables possible stack allocation.</b></bq> This results in a 7x performance improvement when iterating a list of integers. There are also a ton of optimizations in Linq, for <c>Contains</c> (with 10x - 400x improvements), <c>Fill</c> (40x), <c>Shuffle</c> (2x - 40x), <c>LeftJoin</c>, and <c>RightJoin</c> (2x). There are also specific improvements for many of the base collection types. <h level="3">IO</h> The next section on IO is also interesting, with one case where they didn't actually change any code but instead introduced an analyzer that discourages using the <c>EndOfStream</c> property in asynchronous code, which can lead to pathological cases in which the stream is blocked until more data arrives. <h level="3">Searching / Regular Expressions</h> This section includes a longer discussion about the improvements included in previous versions of .NET, especially as it relates to avoiding backtracking. There are normalized forms of regular expressions that incur no backtracking penalty and can thus be evaluated with the faster version of the regular-expression engine that doesn't have to account for it. Here's an example that I've lifted up from much further down in this section. <bq>Given the pattern <c>^abc|^abd</c>, the code generators would end up emitting this exactly as it’s written, with an alternation with two branches, the first branch checking for the beginning and then matching <c>"abc"</c>, the second branch also checking for the beginning and then matching <c>"abd"</c>. <b>Now in .NET 10, the anchor can be factored out, such that <c>^abc|^abd</c> ends up being rewritten as <c>^ab[cd]</c>.</b></bq> The idea here is to search for pathological formulations for which there is a non-pathological equivalent and automatically use that version under the hood. That is my interpretation of the following rather-dense section. <bq>Consider a pattern <c>a*b. a*b</c> is observably identical to <c>(?>a*)b</c>, which says that the <c>a*</c> should not be backtracked into. That’s because there’s nothing the <c>a*</c> can “give back” (which can only be as) that would satisfy what comes next in the pattern (which is only <c>b</c>). It’s thus valid for a backtracking engine to transform how it processes <c>a*b</c> to instead be the equivalent of how it processes <c>(?>a*)b</c>. And the .NET regex engine has been capable of such transformations since .NET 5. This can result in massive improvements to throughput. With backtracking, waving my hands, we effectively need to execute everything after the backtracking construct for each possible position we could backtrack to. So, for example, with <c>\w*SOMEPATTERN</c>, if the <c>w*</c> successfully initially consumes 100 characters, we then possibly need to try to match <c>SOMEPATTERN</c> up to 100 different times, as we may need to backtrack up to 100 times and re-evaluate <c>SOMEPATTERN</c> each time we give back one of the things initially matched. If we instead make that <c>(?>\w*)</c>, we eliminate all but one of those! That <b>makes improvements to this ability to automatically transform backtracking constructs to be non-backtracking possibly massive improvements in performance, and practically every release of .NET since .NET 5 has increased the set of patterns that are automatically transformed. .NET 10 included.</b></bq> There are several detailed examples of 5x--6x improvements in performance for relatively common-looking regular expressions. Stephen Toub <i>loves</i> writing about very-specific regular-expression examples. Like, one paragraph is a blog post just on its own. Needless to say, this section is, at the same time, fascinating, extremely detailed, and eminently uncitable (because it would just entail citing pages of detail that is all necessary to understand the optimization). The improvements are impressive and incredibly well-described. Go check out that section if you like regular expressions and mathematical analysis (equivalence of expressions, reduction of solution space). The additional beauty is that the regular-expression evaluators are all source-generated C#, so it's much, much easier to evaluate what's going on than with the assembly-level discussions in the JIT discussion, for example. As a final example, here is the level of holistic analysis we're talking about. <bq>Unfortunately, the helper that emits that <c>IndexOf</c> call was passed the wrong node from the pattern: it was being passed the object representing the <c>(?:.|\n)</c> any-set rather than the <c>"*/"</c> literal, which resulted in it emitting the equivalent of <c>IndexOfAnyInRange((char)0, '\uFFFF')</c> rather than the equivalent of <c>IndexOf("*/")</c>. Oops. It was still functionally correct, in that the <c>IndexOfAnyInRange</c> call would successfully match the first character and the loop would re-evaluate from that location, but that means that <b>rather than efficiently skipping using SIMD over a bunch of positions that couldn’t possibly match, we were doing non-trivial work for each and every position along the way.</b></bq> As in the IO section above, some of the optimizations come in the form on analyzers that recommend an optimization that the user can apply rather than something that the runtime can do automatically. <bq>[...] the .NET 10 SDK includes a new analyzer related to Regex. <b>It’s oddly common to see code that determines whether an input matches a Regex written like this: Regex.Match(...).Success. While functionally correct, that’s much more expensive than Regex.IsMatch(...).</b> For all of the engines, Regex.Match(...) requires allocating a new Match object and supporting data structures (except when there isn’t a match found, in which case it’s able to use an empty singleton); in contrast, IsMatch doesn’t need to allocate such an instance because it doesn’t need to return such an instance (<b>as an implementation detail, it may still use a Match object, but it can reuse one rather than creating a new one each time</b>).</bq> <h level="3">MemoryExtensions</h> <bq>These overloads all parallel existing methods, but <b>remove the <c>IEquatable<t></c> (or <c>IComparable<t></c>) constraint on the generic method parameter and accept an optional <c>IEqualityComparer<t>?</c> (or <c>IComparer<t></c>).</b> When no comparer or a default comparer is supplied, they can fall back to using the same vectorized logic for relevant types, and otherwise can provide as optimal an implementation as they can muster, based on the nature of <c>T</c> and the supplied comparer.</bq> This part is very interesting because you see how the improvements to <c>MemoryExtensions</c> lead to <c>SearchValues</c> being faster, which, in turn, leads to methods like <c>Normalize</c> and <c>Contains</c> being faster (especially when working with <c>strings</c> that are automatically treated as <c>Spans</c> wherever possible). <h level="3">JSON</h> A good method to know is <c>RemoveAll()</c>, which accepts a lambda to filter for the elements to remove. If, instead of looping over the items and calling <c>RemoveAt(n)</c>, you write <c>_arr.RemoveAll(static n => n!.GetValue<int>() % 2 == 0)</c>, you get a huge performance benefit because <c>RemoveAll()</c> adjusts the underlying buffer only once rather than on each call to remove each individual item. <bq>With JSON being used as an encoding for many modern protocols, streaming large JSON payloads has become very common. And for most use cases, it’s already possible to stream JSON well with <c>System.Text.Json</c>. However, in previous releases there wasn’t been a good way to stream partial string properties; string properties had to have their values written in one operation. If you’ve got small strings, that’s fine. <b>If you’ve got really, really large strings, and those strings are lazily-produced in chunks, however, you ideally want the ability to write those chunks of the property as you have them, rather than needing to buffer up the value in its entirety.</b> dotnet/runtime#101356 augmented Utf8JsonWriter with a <c>WriteStringValueSegment</c> method, which enables such partial writes. [...] These modern protocols often transmit large blobs of binary data within the JSON payloads. Typically, these blobs end up being Base64 strings as properties on some JSON object. Today, <b>outputting such blobs requires Base64-encoding the whole input and then writing the resulting bytes or chars in their entirety into the <c>Utf8JsonWriter</c>. To address that, dotnet/runtime#111041 adds a <c>WriteBase64StringSegment</c> method to <c>Utf8JsonWriter</c>.</b></bq> <h level="3">Cryptography</h> <bq>A ton of effort went into cryptography in .NET 10, almost entirely focused on post‑quantum cryptography (PQC). <b>PQC refers to a class of cryptographic algorithms designed to resist attacks from quantum computers, machines that could one day render classic cryptographic algorithms like Rivest–Shamir–Adleman (RSA) or Elliptic Curve Cryptography (ECC) insecure by efficiently solving problems such as integer factorization and discrete logarithms.</b> With the looming threat of <b>“harvest now, decrypt later” attacks</b> (where a well-funded attacker idly captures encrypted internet traffic, expecting that they’ll be able to decrypt and read it later) and the multi-year process required to migrate critical infrastructure, the transition to quantum‑safe cryptographic standards has become an urgent priority. In this light, <b>.NET 10 adds support for ML-DSA (a National Institute of Standards and Technology PQC digital signature algorithm), Composite ML-DSA (a draft Internet Engineering Task Force specification for creating signatures that combine ML-DSA with a classical crypto algorithm like RSA), SLH-DSA (another NIST PQC signature algorithm), and ML-KEM (a NIST PQC key encapsulation algorithm).</b></bq> <h level="3">Conclusion</h> Overall, this is another amazing document---a <i>book</i>---that is edited to an incredibly high quality. I didn't notice any grammatical, formatting errors, or typos (maybe a missing `?` on <c>IComparer<t></c> in <iq>These overloads all parallel existing methods, but remove the <c>IEquatable<t></c> (or <c>IComparable<t></c>) constraint on the generic method parameter and accept an optional <c>IEqualityComparer<t>?</c> (or <hl><c>IComparer<t></c></hl>).</iq> or when he wrote <iq>frequently-requested</iq> (the hyphen is only correct with adjectives, not adverbs). See previous coverage in <a href="{app}view_article.php?id=5189">Toub’s 234-page tour-de-force on performance in .NET 9</a> (2024) and <a href="{app}view_article.php?id=4554#programming">Performance Improvements in .NET 7</a> (2022). Somehow, I never documented .NET 8. Huh. <hr> <a href="https://webkit.org/blog/17339/subgrid-how-to-line-up-elements-to-your-hearts-content/" author="Saron Yitbarek" source="WebKit Blog">Subgrid: how to line up elements to your heart’s content</a> This is a perfect, short example of where sub-grid is useful.