<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="/rss.xsl" media="all"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
<title>Roastidio.us User Picks KjQKkQVg</title>
<link>https://roastidio.us/user/KjQKkQVg</link>
<atom:link href="https://roastidio.us/feed/KjQKkQVg" rel="self" type="application/rss+xml"></atom:link>
<description>Roastidio.us User Picks KjQKkQVg</description>
<item>
<title>Can America&#39;s Trains Handle the World Cup? - The Atlantic</title>
<link>https://www.theatlantic.com/technology/2026/05/world-cup-american-trains/687155/</link>
<enclosure type="image/jpeg" length="0" url="https://cdn.theatlantic.com/thumbor/chir9VXv8TTo7OV3Mx1Jwsn1tL4=/0x43:2000x1085/1200x625/media/img/mt/2026/05/2026_05_11_US_trains/original.jpg"></enclosure>
<guid isPermaLink="false">myD-TrQ3n5yeIS9SfhQ-3iS7UHMeDUXR-ttHSw==</guid>
<pubDate>Wed, 13 May 2026 21:01:08 +0000</pubDate>
<description>The nation’s railway system is destined to lose.</description>
<content:encoded>&lt;p&gt;The planet’s biggest sporting event, the World Cup final, will take place this summer in MetLife Stadium, which is presently known as New York New Jersey Stadium because FIFA has strict rules on corporate branding. The stadium—whatever you want to call it—is located in the marshlands of New Jersey, about nine miles from Midtown Manhattan. On the day of the final, as on the dates of seven other matches throughout the World Cup tournament, an estimated 80,000 fans will converge at its gates.&lt;/p&gt;&lt;p&gt;But how will they get there? Some will drive, even though they’ll have to pay $225 to use one of the 5,000 available parking spots at a nearby shopping mall that is connected to the stadium area by pedestrian bridges. Others will buy a seat on a shuttle bus—originally $80, cut to $20 after &lt;a href=&quot;https://www.nytimes.com/athletic/7272680/2026/05/12/world-cup-bus-prices-new-york-new-jersey/&quot;&gt;last-minute maneuvering&lt;/a&gt; by New York Governor Kathy Hochul. (Some of these will be yellow school buses.) Or they will cough up whatever amount ride-share apps are charging on those days. And the rest—up to 40,000 people for each event—will take their chances on an infrequently used branch of New Jersey Transit that has struggled with large crowds in the past.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://www.theatlantic.com/technology/2025/10/brightline-train-florida/684624/&quot;&gt;Read: A ‘Death Train’ is haunting South Florida&lt;/a&gt;&lt;/p&gt;&lt;p&gt;In the coming months, America’s patchwork railway system will be similarly challenged—and its weaknesses exposed—across all 11 U.S. sites of World Cup matches. In Dallas, most people who are going to the stadium will either have to pay for expensive parking or take a commuter rail to a charter bus. Kansas City will rely entirely on charter buses. Where direct rail access is available, the trains aren’t likely to be convenient, and tickets may be outrageously expensive. New Jersey is a case in point: Last month, NJ Transit announced plans to charge $150 for each round-trip journey on a route that would otherwise cost less than $13.&lt;/p&gt;&lt;p&gt;That price was later &lt;a href=&quot;https://www.nytimes.com/athletic/7261000/2026/05/07/world-cup-news-rail-prices-new-jersey-reduce/&quot;&gt;reduced&lt;/a&gt; to $105, thanks to donations from various unnamed companies, then &lt;a href=&quot;https://x.com/GovSherrillNJ/status/2054336945640059060&quot;&gt;reduced again&lt;/a&gt; to $98 just before tickets went on sale—but the fact of any of these fares suggests a deeper problem. NJ Transit President and CEO Kris Kolluri explained the dismal math behind this pricing at a press conference in April, alluding to the agency’s enormous debt and degrading equipment. To transport all of those people to the stadium, he said, the agency would need to spend about $6 million a game, mostly for labor and security, as well as for maintenance work on 50 railcars; this would include the purchase of new wheels, axles, and air-conditioning units “to make sure that we don’t have the challenges we typically do.” Such costs could be passed on to New Jersey taxpayers, Kolluri pointed out, but “no one that I have spoken to thinks that that’s (1) fair and (2) reasonable.” So instead, the agency has done some simple arithmetic: $6 million in operating expenses divided by 40,000 riders equals $150.&lt;/p&gt;&lt;p&gt;From the start, the situation has had all the makings of a political brouhaha. When FIFA complained that the fare was too expensive, New Jersey Governor Mikie Sherrill argued that the association, which stands to bring in $11 billion in revenue from the tournament, should subsidize or cover the fares itself. A FIFA official shot back that the hiked-up fares would “diminish the economic benefit and lasting legacy the entire region stands to gain from hosting the World Cup.” Then the &lt;em&gt;New York Post&lt;/em&gt;’s &lt;a href=&quot;https://nypost.com/2026/05/01/opinion/world-cup-planning-exposes-the-utter-idiocy-of-ny-nj-leaders/&quot;&gt;editorial board&lt;/a&gt; took issue with NJ Transit’s plan to close off its section of Manhattan’s Penn Station for long stretches on match days, arguing that the agency was “dissing” its regular riders. Separately, Pennsylvania Governor &lt;a href=&quot;https://x.com/GovernorShapiro/status/2046257596449820757&quot;&gt;Josh Shapiro&lt;/a&gt; boasted that fans could get to and from the matches held in Philadelphia using the region’s SEPTA rail system for just $2.90.&lt;/p&gt;&lt;p&gt;Kolluri said that NJ Transit’s special challenges justify the (much, much) higher fare. The Philadelphia stadium is in the city, for example, and SEPTA trains already go there every day. MetLife Stadium, however, has no regular train service. It “is a suburban stadium,” he said, which is “very different fundamentally.” Isn’t that the problem, though? Europeans have &lt;a href=&quot;https://x.com/masiamade/status/2048034749575204942?s=20&quot;&gt;lately been wondering&lt;/a&gt; on social media why this stadium was constructed where it is in the first place—stranded miles from the city center and encircled by highways, parking lots and swamps—and nobody has been able to supply them with a good answer. It’s just how we like it!&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://www.theatlantic.com/technology/2025/11/amtrak-train-holiday-travel/684940/&quot;&gt;Read: Airport chaos is leading people to ride the Amtrak&lt;/a&gt;&lt;/p&gt;&lt;p&gt;One reporter asked Kolluri about the 2014 Super Bowl, held in the same location, also with approximately 80,000 people in attendance. NJ Transit did not raise fares anywhere near as much for &lt;em&gt;that&lt;/em&gt; game, he pointed out. “First of all, do you know what happened in the Super Bowl?” Kolluri snapped. “I think you’re the only guy who may not know what actually happened.” What happened was widely reported travel chaos: Long lines and delays, and at one point, a request that people stay inside the stadium until some portion of the crowd dispersed from the train platform. The event went so poorly that the agency &lt;a href=&quot;https://www.nbcnewyork.com/news/local/njtransit-superbowl-metlife-stadium-overcrowding-stranded-riders/1397870/&quot;&gt;commissioned an independent investigation&lt;/a&gt; of its failures. Kolluri described all of this as having caused “PTSD,” and said that the situation was a reason to do things very differently this year. “People think about that moment and say we can never let that happen again,” he said. (People did, in fact, let that happen again in 2019, when thousands of fans got stuck &lt;a href=&quot;https://www.nj.com/sports/2019/04/no-train-we-riot-a-journey-through-nj-transits-hellish-post-wrestlemania-35-meltdown.html&quot;&gt;waiting for hours&lt;/a&gt; in the darkness for a NJ Transit ride after a WrestleMania event.)&lt;/p&gt;&lt;p&gt;The $150-a-ticket pricing, Kolluri argued, was only what would be needed to prevent catastrophe. “I think that’s a defensible claim,” says Zoe Baldwin, the vice president of state programs at the Regional Plan Association, a nonprofit focused on economic development and quality of life in New York, New Jersey, and Connecticut. “We have a very old system that is in desperate need of overhaul, let alone maintenance.” Equipment failures are more common in the summer, she told me, so NJ Transit will have to spend on back-up crews and engines in case any trains are taken out of service. She seemed optimistic about the agency’s ability to handle the tournament crowds, and she emphasized that the trip out to the stadium would be a great opportunity for people all over the world to get a look at one of the country’s biggest and most fascinating urban wetlands. When I asked her whether those same people might be horrified by the look they get at New Jersey’s tangle of unwalkable roadways and parking lots, she protested: “What are they going to think when they go to L.A., then?”&lt;/p&gt;&lt;p&gt;To her point, the most public drama over World Cup transportation until now has occurred in a region that has better public-transit options than any other part of the United States does. The railway infrastructure throughout the Northeast may be old and shoddy—for example, Amtrak service between New York and Boston was recently suspended because pieces of a highway on-ramp had fallen onto the tracks—but at least it exists. Just two World Cup host cities in the U.S.—Seattle and San Francisco—have an Amtrak station anywhere near their stadium. In Houston, where fans can take the city’s light-rail system, two of the relevant lines run only once every 12 minutes. In Los Angeles, the matches will be accessible via shuttle-bus service from designated Metro drop-off points. Even back East in Philadelphia, where SEPTA service goes directly to the stadium, the system will be strained: A spokesperson estimated that that line can transport 15,000 people an hour, but twice that many are expected to take a train to each match.&lt;/p&gt;&lt;p&gt;When I asked Jim Mathews, the president and CEO of the nonprofit Rail Passengers Association, about his impressions of the various host cities’ transportation plans, he complimented the Los Angeles strategy on the grounds that it would be affordable and temporarily link several independent transit systems. But he did not agree with the triple-digit price tag for NJ Transit rides, or the $80 fares for those who take a train from Boston to a match at Gillette Stadium. “You’re taking this moment when the spotlight of the world is on you, and you’re making it stupidly expensive,” he told me. “It just shows you what happens when you go for decades underinvesting in capacity.”&lt;/p&gt;&lt;p&gt;Mathews said he’s worried that visitors from overseas will be shocked when they arrive in the U.S. and get a look at its trains. Although some cities here now have more transit options than they did a few years ago, tourists may still be disappointed by the scarcity of options. And despite Americans’ dramatic increase in interest in soccer over the past three decades, he expected we’d be embarrassed on the field too: “We are still going to exit in the first round.”&lt;/p&gt;</content:encoded>
</item>
<item>
<title>The Most Emacs Bzr Saga | Thanos Apollo</title>
<link>https://thanosapollo.org/posts/bzr-saga/</link>
<guid isPermaLink="false">uQYeXSDfuDhERtrNrStJsBXq4Mrh5BaNNDGsrA==</guid>
<pubDate>Wed, 13 May 2026 17:52:59 +0000</pubDate>
<description>Since I had no interesting books to read today, nor interesting films to watch, I decided to scavenge for the most intriguing content one can find online. I ended up reading the Linux kernel mailing lists, but those discussions seemed to be 18+, so I settled for the comparatively civil emacs-devel. For those unfamiliar, emacs-devel is the primary development discussion list for GNU Emacs – where design decisions get made, patches get reviewed, and occasionally where people spend 200 message...</description>
<content:encoded>&lt;p&gt;Since I had no interesting books to read today, nor interesting films
to watch, I decided to scavenge for the most intriguing content one
can find online. I ended up reading the Linux kernel mailing lists,
but those discussions seemed to be 18+, so I settled for the
comparatively civil emacs-devel.&lt;/p&gt;&lt;p&gt;For those unfamiliar, emacs-devel is the primary development
discussion list for GNU Emacs – where design decisions get made,
patches get reviewed, and occasionally where people spend 200 messages
arguing about version control software. This is the story of that
last one.&lt;/p&gt;&lt;h2&gt;2008: “This question is over and decided”#&lt;/h2&gt;&lt;p&gt;In March 2008, Emacs was migrating from CVS (yes, CVS) to something
more “modern”. The two contenders were Git and Bazaar.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Git, created by Linus Torvalds for the Linux kernel.&lt;/li&gt;&lt;li&gt;Bazaar was a GNU project, &lt;em&gt;maintained by Canonical&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;A 236-message thread erupted on emacs-devel. People benchmarked both
tools. The results were not subtle. &lt;a href=&quot;https://yhetil.org/emacs-devel/jeprtyalxt.fsf@sykes.suse.de/&quot;&gt;Andreas Schwab&lt;/a&gt;, one of the core
developers, reported his first impression:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;My first impression is that bzr is slow, so slow that it is completely
unusable. How can it come that a simple bzr log takes more than a
minute to even start? Even cvs log is instantaneous in comparison,
although it has to request the log from the server.&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;David Kastrup found it equally puzzling:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;I find this surprising: “git log” is pretty much instantaneous, and
git recalculates a code piece’s history in the process. In contrast,
one has to tell Bazaar when one copies or moves or renames files, so
it should have the information available right away.&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;The actual numbers:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;code&gt;git log | head -1&lt;/code&gt; 0.012 seconds. The same command with Bazaar took 21.5 seconds.&lt;/li&gt;&lt;li&gt;Committing a single-file change: 0.08 seconds with Git, 17 seconds with Bazaar.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;The benchmarks kept coming. &lt;a href=&quot;https://yhetil.org/emacs-devel/jwvod9cq7av.fsf-monnier+emacs@gnu.org/&quot;&gt;Stefan Monnier&lt;/a&gt;, the head maintainer, set
the bar low:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;I don’t care if Bzr is slower or faster than Git, but in
order to switch to Bzr, we need it to be ‘fast enough’. Currently it
is not. At the very least the ‘bzr diff’ should not take more than a
couple seconds.&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;Meanwhile, &lt;a href=&quot;https://yhetil.org/emacs-devel/d06a5cd30803122130h4dedcfbdx2cf5dda7ebd507ee@mail.gmail.com/&quot;&gt;Jonathan Lange&lt;/a&gt;, an actual Bazaar developer from Canonical,
was in the thread doing tech support.&lt;/p&gt;&lt;p&gt;His recommended workflow for the initial checkout:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;An even better way to do the initial download is this:&lt;/p&gt;&lt;p&gt;$ wget &lt;a href=&quot;http://bzr.notengoamigos.org/emacs.tar.gz&quot;&gt;http://bzr.notengoamigos.org/emacs.tar.gz&lt;/a&gt;&lt;/p&gt;&lt;p&gt;$ tar xzf emacs.tar.gz&lt;/p&gt;&lt;p&gt;$ bzr init-repo emacs-bzr&lt;/p&gt;&lt;p&gt;$ cd emacs-bzr&lt;/p&gt;&lt;p&gt;$ bzr branch ../emacs trunk&lt;/p&gt;&lt;p&gt;$ cd trunk&lt;/p&gt;&lt;p&gt;$ bzr pull –remember &lt;a href=&quot;http://bzr.notengoamigos.org/emacs/trunk/&quot;&gt;http://bzr.notengoamigos.org/emacs/trunk/&lt;/a&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;Compare that to &lt;code&gt;git clone&lt;/code&gt;!&lt;/p&gt;&lt;p&gt;Someone in the thread finally asked the obvious question:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;To the emacs maintainers and decision makers: What more information is
required to convince bzr is not the right tool at the present moment?&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;Richard Stallman’s reply:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;This decision is not a decision for the present moment. It is a long
term decision. So it would be better to wait a few months while Bzr
developers improve it, than to make some other “temporary” decision
that would probably be hard to reverse.&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;And in case anyone missed the point, in a &lt;a href=&quot;https://yhetil.org/emacs-devel/E1JbhT2-0003HR-PP@fencepost.gnu.org/&quot;&gt;separate message&lt;/a&gt;:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;This question is over and decided.
We will use GNU Bzr, because it is a GNU package.&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;When someone pointed out that this political decision was “wiping away
all technical arguments,” RMS &lt;a href=&quot;https://yhetil.org/emacs-devel/E1JfqPy-00030x-I0@fencepost.gnu.org/&quot;&gt;replied&lt;/a&gt;:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;The rule that GNU packages should support each other helps make the
GNU system as a whole work better.&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;Someone asked the obvious follow-up: “Why can’t we just make Git part
of the GNU system?”&lt;/p&gt;&lt;p&gt;RMS:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;We could include it in the GNU system, but
its developers are not likely to want to make it a GNU package.&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;To be fair to RMS, there’s a real principle here. If the GNU project
doesn’t use its own tools, it sends a message that those tools aren’t
good enough, which undermines the whole idea of a self-sufficient free
software ecosystem. He’d been making this argument for decades, and
it had served the project well in many other cases. The problem
wasn’t the principle. The problem was that Bazaar couldn’t live up to
it.&lt;/p&gt;&lt;p&gt;The 236-message thread, the benchmarks, the Canonical employee’s
workarounds; none of it changed the outcome. The decision was
political, and the politics were settled.&lt;/p&gt;&lt;h2&gt;2008-2012: The long tail#&lt;/h2&gt;&lt;p&gt;The rest of the world moved to Git. GitHub launched in 2008 and
exploded. Emacs contributors, meanwhile, had to learn Bazaar, a
tool they used nowhere else, just to submit patches.&lt;/p&gt;&lt;p&gt;Threads like “Help me unstick my bzr, please” and “Can NOT bzr the
emacs repos (may be bzr has a memory leak)” became regular
occurrences.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Then in 2012, Canonical laid off the Bazaar development team.&lt;/strong&gt;&lt;/p&gt;&lt;h2&gt;2013#&lt;/h2&gt;&lt;p&gt;In March 2013, a year after Bazaar’s development ceased, &lt;a href=&quot;https://yhetil.org/emacs-devel/m2620euf2l.fsf@newartisans.com/T/#u&quot;&gt;John Wiegley
posted&lt;/a&gt; what everyone had been wanting to say:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;We have often debated the merits of Git vs. Bazaar, and which one the
GNU project should use for Emacs development. I think now is an
appropriate time to revisit this decision.&lt;/p&gt;&lt;p&gt;My main reason for bringing this up again is that Bazaar development
has effectively stalled. There are major bugs which have been in their
bug-tracker for years now – bugs affecting Emacs development, such as
the ELPA repository – which have been ignored all this time.&lt;/p&gt;&lt;p&gt;So, to Richard as the undisputed Czar of all things Emacs: can we now,
pretty please, switch to Git?&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;200 messages followed.&lt;/p&gt;&lt;p&gt;RMS’s first response:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;The maintainer says he is fixing some bugs, and
I asked him just yesterday to fix the ELPA branch bug. I’d like to
give him a reasonable time to do this.&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;The bug was 1.5 years old. &lt;a href=&quot;https://yhetil.org/emacs-devel/87hajxqlly.fsf@yandex.ru/&quot;&gt;Dmitry Gutov called it out&lt;/a&gt;:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;Isn’t this a bit late? The bug is 1.5 years old. Was he not aware of it before?&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;Then RMS &lt;a href=&quot;https://yhetil.org/emacs-devel/E1UKtwC-0006bM-Dd@fencepost.gnu.org/&quot;&gt;revealed his hand&lt;/a&gt;:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;I am trying to determine whether Bzr is effectively maintained or
not. I’d rather get a Yes answer than a No answer.&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;That’s a remarkably honest thing to say publicly. He wasn’t hiding
his preference. He genuinely believed in the principle of GNU
projects supporting each other, and he was hoping reality would
cooperate.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://yhetil.org/emacs-devel/m3txnwj6zm.fsf@chopper.vpn.verona.se/&quot;&gt;Joakim Verona&lt;/a&gt;, a longtime Bazaar user and Emacs contributor, described
the reality on the ground:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;I have done my best to be a constructive user of the tool, and I have
had many technical difficulties. When I try to find solutions to the
issues I notice the following:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;The bzr community is very helpful. This is good.&lt;/li&gt;&lt;li&gt;There are many well known bugs. There are also many well known
patches for these, some of them provided by Emacs developers. They
never enter upstream. By “never” I mean years. This is bad.&lt;/li&gt;&lt;/ul&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;a href=&quot;https://yhetil.org/emacs-devel/E1UL4KW-0002zx-Jj@fencepost.gnu.org/&quot;&gt;RMS replied&lt;/a&gt;:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;I don’t have time to read the Bzr mailing list. Or any development
mailing list. The only such list I am on is this one. You might as
well tell me to fly to the moon as tell me to read something on the
Bzr list.&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;And when asked whether the users of Bazaar should have a say in
whether Bazaar is sufficiently maintained:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;When I have to decide whether a maintainer is doing an adequate job or
needs to be replaced, I pay attention to whatever relevant information
I get. However, to give users “a say” in the decision seems improper,
so I don’t do that.&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;Karl Fogel, a veteran open source developer (author of &lt;a href=&quot;https://producingoss.com/&quot;&gt;Producing Open
Source Software&lt;/a&gt; and one of the original Subversion developers),
delivered the sharpest critique in the thread:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;Well, really, you don’t have time to pay close enough attention to Bzr
development to competently decide whether it’s still a good choice for
Emacs. That’s fine – no one has time to do every important thing,
and you do many other important things.&lt;/p&gt;&lt;p&gt;But then why do you think you still have the time &amp;amp; mental bandwidth
to make this decision well? Why not delegate it to the Emacs
maintainers on the grounds that you no longer have time to do a good
job of this evaluation?&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;He pointed out that asking one person about one bug is not a proxy for
project health, and that others in the thread had already done more
thorough research than RMS could, given his time constraints.&lt;/p&gt;&lt;p&gt;RMS’s reply:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;Because more than Emacs is at stake here.&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;One line, but it’s the core of his worldview. If the flagship GNU
project abandons a GNU tool, what signal does that send to every other
GNU package? He wasn’t wrong about the stakes. He was wrong about
the tool.&lt;/p&gt;&lt;p&gt;Karl pushed once more:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;You should either devote enough time to evaluating Bzr’s maintenance
state to get a reliable answer, or delegate to someone who can do
so. Instead, you’re asking the maintainers to rely on your
investigation… yet you clearly don’t have time to do a good
job. This is a poor use of everyone’s time.&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;RMS:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;I already have a plan for how to proceed on this, and I am doing it.&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;No details. No timeline. No delegation. Trust me.&lt;/p&gt;&lt;p&gt;Meanwhile, Stefan Monnier, posted exactly one substantive message in
the entire 200-message thread:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;Just like I didn’t fight Richard’s choice of Bazaar, I don’t care very
much whether we keep using Bazaar or we change to Git, Monotone,
Darcs, Mercurial, OpenCM, Fossil, younameit.&lt;/p&gt;&lt;p&gt;The only thing I care for now is to move away from Bazaar for the
’elpa’ branch because Bazaar can’t handle it properly.&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;Leo Liu summarized what everyone was thinking:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;Most GNU projects aren’t using BZR as you might be aware.&lt;/p&gt;&lt;p&gt;While helping BZR fixing bugs might be a gain for BZR, it is a loss as
a whole for GNU. Volunteers spend their spare time on GNU projects
and if 20% of that time is taken up by wrestling with BZR, it becomes
costly to the point discouraging people from joining.&lt;/p&gt;&lt;p&gt;For the greater good of GNU, move off BZR seems like the only sound
choice.&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;The thread ended without a clear resolution. RMS had a plan. He was
working on it. The 200 messages didn’t produce a decision, but they
did make the community’s position unmistakable.&lt;/p&gt;&lt;h2&gt;2013: The ELPA branch breaks#&lt;/h2&gt;&lt;p&gt;Later that year, Stefan made the practical move that set the stage for
everything that followed. The ELPA branch was broken on Bazaar, a bug
that crashed on checkout, with no one left to fix it. Stefan moved it
to Git, and his announcement showed exactly the kind of careful
leadership that had kept Emacs development running through all of
this:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;I’m not terribly happy about this change, since it means we’ll be
using two different tools (Git for ’elpa’ and Bzr for ’trunk’), but I
really see no other way out.&lt;/p&gt;&lt;p&gt;I don’t want this to be a discussion about the merits/pitfalls of Git
vs Bzr, and this is not an occasion to discuss the use of Git for the
’trunk’ either.&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;He knew exactly what everyone was thinking “if Git is good enough for
ELPA, why not for trunk?” and he headed it off. One problem at a
time.&lt;/p&gt;&lt;h2&gt;2014: ESR pushes the button#&lt;/h2&gt;&lt;p&gt;By August 2014, Eric S. Raymond had the conversion scripts ready.&lt;/p&gt;&lt;p&gt;He’d been &lt;a href=&quot;https://yhetil.org/emacs-devel/20140810205631.GA17907@thyrsus.com/&quot;&gt;working on it quietly&lt;/a&gt;:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;You haven’t heard much about it because the hard work is all done. I
have the scripts ready to go and need only about eight hours’ notice
before pushing the button.&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;The actual migration happened in November 2014. On November 13th, ESR
posted a &lt;a href=&quot;https://yhetil.org/emacs-devel/20141113031255.GA21938@thyrsus.com/&quot;&gt;seven-word message&lt;/a&gt;:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;Commits are open. Have at it.&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;Which some even described as &lt;a href=&quot;https://yhetil.org/emacs-devel/8761ej6ql7.fsf@ktab.red-bean.com/&quot;&gt;heroic&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Six years of debate, 236 messages in the 2008 thread, 200 messages in
the 2013 thread, Stefan’s years of quiet maintenance, countless “help
me unstick my bzr” pleas, one dead version control system, and it
ended with seven words.&lt;/p&gt;&lt;h2&gt;The aftermath#&lt;/h2&gt;&lt;p&gt;The days following the migration were educational. Half the core
contributors had never used Git:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;“&lt;a href=&quot;https://yhetil.org/emacs-devel/m3sihnf5jy.fsf@stories.gnus.org/&quot;&gt;This Is The Git Help Mailing List&lt;/a&gt;”&lt;/li&gt;&lt;li&gt;“git pull fails with merge conflicts. How can this possibly happen?”&lt;/li&gt;&lt;li&gt;“A simple git workflow for the rest of us”&lt;/li&gt;&lt;li&gt;“need help adjusting workflow to git”&lt;/li&gt;&lt;li&gt;“Good book on Git”&lt;/li&gt;&lt;li&gt;“Obscure error/warning/information message from git pull” (124 messages)&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;These were people who’d been developing one of the most important text
editors in the world for years, asking basic Git questions, because
they’d been stuck on Bazaar while the rest of the world moved on.&lt;/p&gt;&lt;p&gt;What a bzr saga! Anyway, better than any film I could have watched
tonight.&lt;/p&gt;</content:encoded>
</item>
<item>
<title>What&#39;s with all the slide decks?</title>
<link>https://dynomight.net/slides/</link>
<enclosure type="image/jpeg" length="0" url="https://dynomight.net/img/slides/towboat.jpg"></enclosure>
<guid isPermaLink="false">UFwNKnmIua_QKYE5zbuelNXF6y2b-EZOBIbhEA==</guid>
<pubDate>Wed, 13 May 2026 17:41:44 +0000</pubDate>
<description>a polycausal theory</description>
<content:encoded>&lt;div&gt;&lt;a href=&quot;https://dynomight.net/&quot;&gt;dynomight&lt;/a&gt; ·
      &lt;time&gt;May 2026&lt;/time&gt;
    
    ·
    
        &lt;a href=&quot;https://dynomight.net/#writing&quot;&gt;writing&lt;/a&gt; 
    

  &lt;/div&gt;&lt;p&gt;News from the world of real jobs: Apparently, sometime between 10 and 20 years ago, it became standard for people to communicate by sending slide decks around. These slides are never presented. They aren’t &lt;em&gt;intended&lt;/em&gt; to be presented. They’re born, they’re sent around, and they die. What?&lt;/p&gt;&lt;p&gt;I stress, the question is not why (or if) people give &lt;a href=&quot;https://norvig.com/Gettysburg/&quot;&gt;bad presentations&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://dynomight.net/img/slides/gettysburgh.png&quot; alt=&quot;&quot; title=&quot;&quot;/&gt;&lt;/p&gt;&lt;p&gt;The mystery is why everyone is using &lt;em&gt;presentation software&lt;/em&gt; for communication that is not a presentation.&lt;/p&gt;&lt;h2&gt;Theory 1: Everybody dumb&lt;/h2&gt;&lt;p&gt;Is it because we’re all dummies? I’m putting this theory first because I suspect that you, beloved readers, will favor it.&lt;/p&gt;&lt;p&gt;True, if you ask people why they make slides instead of writing, they’ll usually say, “because nobody wants to read”. So there’s that. But I don’t consider this much of an explanation. Dummies though we may be, we’ve been like that a long time. If we entered the Slideocene 15 years ago, why then? Why not before?&lt;/p&gt;&lt;h2&gt;Theory 2: The decline of reading&lt;/h2&gt;&lt;p&gt;Did we get worse at reading? The Discourse seems to have decided this is true, but is it true, or just moral panic?&lt;/p&gt;&lt;p&gt;Since 1971, the US has tested 13-year-olds to measure &lt;a href=&quot;https://www.nationsreportcard.gov/ltt/?age=13&quot;&gt;long-term trends&lt;/a&gt; in reading ability. This shows a slow improvement until 2012, then a slow decline, and finally a post-COVID drop. The declines seem too small and too late to explain our mystery.&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://dynomight.net/img/slides/ltt.png&quot; alt=&quot;&quot; title=&quot;&quot;/&gt;&lt;/p&gt;&lt;p&gt;Since 2000, &lt;a href=&quot;https://en.wikipedia.org/wiki/Programme_for_International_Student_Assessment&quot;&gt;PISA&lt;/a&gt; has tested reading performance in 15-year-olds around the world. This &lt;a href=&quot;https://ourworldindata.org/grapher/academic-performance?tab=line&amp;amp;country=USA%7EOECD+average%7EPISA+participants+average&amp;amp;mapSelect=%7EUSA&amp;amp;subject=reading&amp;amp;sex=both&quot;&gt;shows&lt;/a&gt; a decline on average, but it’s smaller in rich countries and nonexistent in the United States. (It’s the same story &lt;a href=&quot;https://ourworldindata.org/grapher/academic-performance?tab=line&amp;amp;country=USA%7EOECD+average%7EPISA+participants+average&amp;amp;subject=science&amp;amp;sex=both&quot;&gt;for science&lt;/a&gt; and a bit more negative &lt;a href=&quot;https://ourworldindata.org/grapher/academic-performance?tab=line&amp;amp;country=USA%7EOECD+average%7EPISA+participants+average&amp;amp;subject=mathematics&amp;amp;sex=both&quot;&gt;for math&lt;/a&gt;.)&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://dynomight.net/img/slides/academic-performance.svg&quot; alt=&quot;&quot; title=&quot;&quot;/&gt;&lt;/p&gt;&lt;p&gt;Among adults, data is scarce. Basic literacy is generally &lt;a href=&quot;https://ourworldindata.org/literacy&quot;&gt;improving&lt;/a&gt;, and American &lt;a href=&quot;https://pmc.ncbi.nlm.nih.gov/articles/PMC12496190/&quot;&gt;time use data&lt;/a&gt; shows a decline in reading for pleasure from around 23 minutes per day in 2003 to around 16 minutes per day in 2023. But this seems to miss time people spend reading on their phones.&lt;/p&gt;&lt;p&gt;So it’s unclear if people got worse at reading. It feels plausible that people now spend less of their adulthood grappling with complex written arguments, and so got worse at that. But there’s little firm evidence.&lt;/p&gt;&lt;h2&gt;Theory 3: Technological change&lt;/h2&gt;&lt;p&gt;Another obvious theory is that we now have computers and software and the internet. Without these things, it would be impossible to email slides to each other. This seems relevant!&lt;/p&gt;&lt;p&gt;Yes, but we had those things for a while before slide culture really took hold. And think about the situation before computers. Photocopiers were ubiquitous in corporate offices by the mid-1980s, and &lt;a href=&quot;https://en.wikipedia.org/wiki/Mimeograph&quot;&gt;mimeographs&lt;/a&gt; were around decades before that. If slides were really that great, people could have made them by hand. But no one did.&lt;/p&gt;&lt;p&gt;Of course, making slides by hand is inferior. But it’s not &lt;em&gt;that&lt;/em&gt; inferior. So slides can’t be &lt;em&gt;that&lt;/em&gt; big of a win.&lt;/p&gt;&lt;h2&gt;What actually happened?&lt;/h2&gt;&lt;p&gt;And… that’s pretty much the end of the obvious theories. None of them are very satisfying. So let’s take a step back. Historically, how did the slide-as-document displace the memo?&lt;/p&gt;&lt;p&gt;As best I can tell, this was driven by management consultancies. If you go back to 1960, they delivered detailed written memos. The memo was the product. They’d likely give a presentation as well, but that was a separate ancillary thing, likely done using flipcharts or chalkboards.&lt;/p&gt;&lt;p&gt;In the 1970s, the memo was still the product, but consultancies started to enforce a top-down logical structure (the &lt;a href=&quot;https://en.wikipedia.org/wiki/Barbara_Minto&quot;&gt;Pyramid principle&lt;/a&gt;). Presentations shifted to acetate transparencies. Both memos and presentations often included hand-drawn graphics like the &lt;a href=&quot;https://en.wikipedia.org/wiki/GE_multifactorial_analysis&quot;&gt;nine-box&lt;/a&gt; or &lt;a href=&quot;https://en.wikipedia.org/wiki/Growth%E2%80%93share_matrix&quot;&gt;growth-share&lt;/a&gt; matrices.&lt;/p&gt;&lt;p&gt;In the 1980s, the memo was &lt;em&gt;still&lt;/em&gt; the product, but presentations became increasingly lengthy and polished. Expensive computers like the &lt;a href=&quot;https://en.wikipedia.org/wiki/Genigraphics&quot;&gt;Genigraphics&lt;/a&gt; started to be used to generate charts.&lt;/p&gt;&lt;p&gt;The 1990s were when things started to shift. By then, PowerPoint was everywhere, and junior analysts were expected to create presentations themselves. Consultancies gradually started to notice that (1) clients didn’t always read the memos; (2) clients loved slides and passed them around long after the presentation was over; and (3) creating a memo &lt;em&gt;and&lt;/em&gt; a polished presentation was a lot of work. They put more and more effort into the slides. McKinsey especially evolved towards treating slides as the primary product, and mostly stopped writing long memos. Other consultancies followed.&lt;/p&gt;&lt;p&gt;During the 2000s, slides became even more ornate. Consultancies evolved their formatting rules, and created fancy data-dense charts. They learned that a 200 slide deck made clients feel like they got a lot for their money. Gradually, they oriented their entire business around slides. Projects would &lt;em&gt;start&lt;/em&gt; with managers creating a template presentation with “ghost slides” and assigning different parts to junior analysts. Soon, this spread outwards, both from people who interacted with consultants and from the ex-consultant diaspora. People everywhere started thinking and communicating in slides, and now everything is slides, yay!&lt;/p&gt;&lt;h2&gt;Alternative history&lt;/h2&gt;&lt;p&gt;That story makes slides-as-documents sound inevitable: People liked them, so they became popular. But there’s an alternative timeline in which we resisted the slide into slide maximalism. That timeline is Amazon.com, Inc.&lt;/p&gt;&lt;p&gt;In 2004, Jeff Bezos famously instituted a no-presentations policy at Amazon. His logic was that slides hide poor reasoning and are a tool to persuade rather than inform. Instead, everyone involved with strategic decisions at Amazon needs to learn to write a six-page memo. Meetings begin with everyone sitting and silently reading one of these memos.&lt;/p&gt;&lt;p&gt;Presentation software is not banned at Amazon. The ban is only for using it for internal meetings and decision-making. They use slides for external communication. There is no policy that prohibits someone from making slides and emailing them around.&lt;/p&gt;&lt;p&gt;And yet, people &lt;em&gt;don’t&lt;/em&gt; make slides and email them around, because it’s not part of Amazon’s culture. In effect, Amazon is a counter-movement. Most of the world decided that slides are good, because slides are easy. Bezos decided that writing is good because writing is hard.&lt;/p&gt;&lt;p&gt;There are millions of articles explaining why Bezos’ policy is pure genius. They claim that constructing a narrative requires deeper analytical thinking and exposes flaws in logic. I want to believe those theories. I now realize they’re very similar to some of my arguments for why writing with &lt;a href=&quot;https://dynomight.net/formatting/&quot;&gt;too much formatting&lt;/a&gt; is bad.&lt;/p&gt;&lt;p&gt;I’m not sure if writing is the secret to Amazon’s success. But Amazon &lt;em&gt;is&lt;/em&gt; successful. This demonstrates that slide life is a choice, not technological destiny—institutions can choose writing over slides and flourish anyway.&lt;/p&gt;&lt;h2&gt;OK so then what’s happening?&lt;/h2&gt;&lt;p&gt;Warning: If you like your theories simple and mono-causal, you aren’t going to like this.&lt;/p&gt;&lt;ol&gt;
  &lt;li&gt;Slides are a win, but a small one. The shift to slides wasn’t a “mistake”, it happened because people like it. But if sharing slides outside of presentations became illegal, this wouldn’t cause per-capita GDP to crash. That’s why people didn’t scratch slides into mimeograph stencils back in the 1950s. It wasn’t worth the modest effort.&lt;/li&gt;
  &lt;li&gt;When computers and software showed up, it became easier to share slides. But people didn’t immediately shift to slides-as-documents because the win isn’t that big, because culture changes slowly, and because everyone had pre-existing skills for reading and writing documents.&lt;/li&gt;
  &lt;li&gt;Consultancies happened to be in the economic niche with the strongest selection pressure to evolve towards slides-as-documents. So when making slides became cheaper, they shifted. Slowly, that norm spread outwards, people got used to communicating in slides, and here we are.&lt;/li&gt;
  &lt;li&gt;Institutions can resist that norm and still be successful. If you take modern people and force them to read and write, they do just fine.&lt;/li&gt;
  &lt;li&gt;Humans evolved to learn and communicate in a fragmented, interactive, and visual style. It’s hard to argue that any shift in that direction is a catastrophe.&lt;/li&gt;
  &lt;li&gt;Except blogs. The decline of the blog must be arrested.&lt;/li&gt;
&lt;/ol&gt;</content:encoded>
</item>
<item>
<title>The Cathedral, the Bazaar and the Kitchen · blog.vrypan.net</title>
<link>https://blog.vrypan.net/2026/05/11/the-cathedral-the-bazaar-and-the-kitchen/</link>
<guid isPermaLink="false">40Vfq6tdSbPE-tiTsY0S2GnYhEejahMKT0sxkw==</guid>
<pubDate>Tue, 12 May 2026 09:01:47 +0000</pubDate>
<description>Open Source in the AI era</description>
<content:encoded>&lt;p&gt;Eric Raymond’s “The Cathedral and the Bazaar”&lt;sup&gt;1&lt;/sup&gt; described two fundamentally different ways of building software. The Cathedral represented centralized, carefully planned development directed by a small group of maintainers. The Bazaar represented open collaboration: large communities, public iteration, distributed labor, and software evolving through many contributors.&lt;/p&gt;&lt;p&gt;For decades, the Bazaar became the dominant cultural myth of open source. Public repositories, pull requests, and community participation were not just practical tools, but moral ideals. Good software was expected to emerge from openness and collective effort.&lt;/p&gt;&lt;hr/&gt;&lt;p&gt;AI-assisted software development is changing the economics and the ergonomics behind that model. Implementation becomes cheap, and coordination becomes expensive. A single developer equipped with modern tools can now produce systems that previously required teams.&lt;/p&gt;&lt;p&gt;At the same time, software is becoming increasingly personalized: tailored to one person’s workflow, infrastructure, preferences, and habits. Instead of building generalized tools for the widest possible audience, developers increasingly build software that fits their own environment perfectly. Others may still read the code, fork it, or borrow ideas from it, but local modification often becomes cheaper than upstream coordination.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;The new model is a kitchen.&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Every kitchen evolves around the habits of its cook. Tools sit where they are convenient. Ingredients are substituted freely. Recipes are modified on instinct. Two people may start from the same dish and end up with completely different results.&lt;/p&gt;&lt;p&gt;Unlike the Bazaar, a kitchen is deeply personal. Recipes are shared freely, but kitchens rarely converge into a universal standard. Visitors may admire another cook’s techniques, yet still return home and prepare the dish their own way. In the Kitchen model, open source becomes less like public infrastructure and more like published craft: software as personal utility, openly visible, endlessly adaptable, and increasingly authored by individuals rather than communities.&lt;/p&gt;&lt;hr/&gt;&lt;p&gt;In the Bazaar model, openness was mainly a way to coordinate people. You opened the codebase to attract contributors, spread work across many developers, avoid duplicated effort, and slowly build shared infrastructure.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;In the Kitchen model, openness serves a different purpose.&lt;/strong&gt; It provides visibility, learnability, and independence. Value shifts from &lt;em&gt;“others can help build this”&lt;/em&gt; to &lt;em&gt;“others can understand, adapt, and reclaim this.”&lt;/em&gt;&lt;/p&gt;&lt;p&gt;Source code starts to resemble recipes more than public construction projects. Most people do not submit patches to a cookbook, yet recipes remain enormously valuable because they transfer techniques, preserve knowledge, and provide foundations others can adapt to their own tastes and environments. The code is open not necessarily so everyone can co-author it, but so anyone can study it, modify it, and make it their own.&lt;/p&gt;&lt;p&gt;This also changes the meaning of forks. In the Bazaar, forks were often viewed as failures of governance or coordination. In the Kitchen, forks become normal and healthy:&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;“I adapted this for my setup”&lt;/li&gt;
&lt;li&gt;“I removed features I don’t need”&lt;/li&gt;
&lt;li&gt;“I rewrote this around my workflow”&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;Forking becomes analogous to modifying a recipe&lt;sup&gt;2&lt;/sup&gt; at home.&lt;/p&gt;&lt;p&gt;Software evolves through local adaptation rather than centralized consensus. A developer will remove features, rewrite workflows, or optimize entirely around their own infrastructure because doing so is now cheaper than negotiating a generalized solution acceptable to everyone.&lt;/p&gt;&lt;p&gt;This model still depends on public circulation of ideas. Even if code contributions decline, people still copy ideas from each other constantly through imitation, recombination, critique, and inspiration.&lt;/p&gt;&lt;p&gt;Much of programming history already worked this way:&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;Unix customization culture where ingredients were expected to be mixed in different ways&lt;/li&gt;
&lt;li&gt;shell workflows and personal scripts&lt;/li&gt;
&lt;li&gt;dotfiles designed to show others how a system is configured but rarely adopted one-to-one&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;These are often highly personal systems shared publicly, not collaboratively engineered products.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Open source remains essential because it preserves agency&lt;/strong&gt;: the ability to inspect, repair, continue, and reshape software independently of its original author. The result is a world where software is increasingly personal, but where ideas, techniques, and tools still circulate freely between individuals, much like recipes passed from kitchen to kitchen.&lt;/p&gt;&lt;hr/&gt;&lt;section&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Eric S. Raymond, &lt;em&gt;The Cathedral and the Bazaar&lt;/em&gt; (1997), &lt;a href=&quot;https://en.wikipedia.org/wiki/The_Cathedral_and_the_Bazaar&quot;&gt;https://en.wikipedia.org/wiki/The_Cathedral_and_the_Bazaar&lt;/a&gt; ↩&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Side note: There is rarely a single canonical version of a dish. The same recipe evolves into countless variations shaped by region, available ingredients, habits, and personal taste. Instead of converging into one standard, we distinguish them by origin or authorship: &lt;em&gt;à la provençale&lt;/em&gt;, &lt;em&gt;à la milanaise&lt;/em&gt;, &lt;em&gt;à la grandma&lt;/em&gt;, &lt;em&gt;à la Jacques Pépin&lt;/em&gt;. The variation itself becomes part of the identity of the dish. GNU grep and BSD grep were different variations of the same tool, but these were more like publisher or distribution variations. The Kitchen model pushes personalization much further, toward software shaped directly around the habits and preferences of individual developers. ↩&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;</content:encoded>
</item>
<item>
<title>I’ve banned query strings — Chris Morgan</title>
<link>https://chrismorgan.info/no-query-strings</link>
<guid isPermaLink="false">Q3ZQktl1DLGnzoUHMxxTHBk5mRvcVHlbcbJ26Q==</guid>
<pubDate>Sun, 10 May 2026 07:55:49 +0000</pubDate>
<description>I’ve banned query strings</description>
<content:encoded>&lt;body&gt;&lt;main&gt; &lt;hgroup&gt; &lt;h1&gt;I’ve banned query strings&lt;/h1&gt; &lt;p&gt;&lt;span&gt; 🗓️ &lt;time&gt;2026-05-08&lt;/time&gt;&lt;/span&gt;&lt;span&gt; • &lt;/span&gt;&lt;span&gt;&lt;span&gt;Tagged&lt;/span&gt; &lt;a href=&quot;https://chrismorgan.info/web&quot;&gt;/web&lt;/a&gt;, &lt;a href=&quot;https://chrismorgan.info/opinions&quot;&gt;/opinions&lt;/a&gt;, &lt;a href=&quot;https://chrismorgan.info/meta%3Donly&quot;&gt;/meta=only&lt;/a&gt; &lt;/span&gt; &lt;/p&gt; &lt;/hgroup&gt; &lt;p&gt;I don’t like people adding tracking stuff to URLs. &lt;br/&gt;Still less do I like people adding tracking stuff to &lt;em&gt;my&lt;/em&gt; URLs. &lt;/p&gt;&lt;p&gt;&lt;span&gt;https://chrismorgan.info/no-query-strings&lt;mark&gt;?ref=example.com&lt;/mark&gt;&lt;/span&gt;? Did I ask? &lt;br/&gt;If I wanted to know I’d look at the &lt;code&gt;Referer&lt;/code&gt; header; and if it isn’t there, it’s probably for a good reason. &lt;br/&gt;You abuse your users by adding that to the link. &lt;/p&gt;&lt;p&gt;&lt;span&gt;https://chrismorgan.info/no-query-strings&lt;mark&gt;?utm_source=example&amp;amp;utm_&lt;i&gt;&amp;amp;c.&lt;/i&gt;&lt;/mark&gt;&lt;/span&gt;? &lt;br/&gt;Hey! That one’s even worse, &lt;a href=&quot;https://en.wikipedia.org/wiki/UTM_parameters&quot;&gt;UTM parameters&lt;/a&gt; are for &lt;em&gt;me&lt;/em&gt; to use, not &lt;em&gt;you&lt;/em&gt;. &lt;br/&gt;Leave my URLs alone. &lt;/p&gt;&lt;p&gt;So I’ve decided to try a blanket ban for this site: &lt;strong&gt;no unauthorised query strings&lt;/strong&gt;. &lt;/p&gt;&lt;p&gt;At present I don’t use any query strings. &lt;br/&gt;If I ever start using any query strings, I’ll allow only known parameters. &lt;br/&gt;(In past times I used &lt;span&gt;?t=…&lt;/span&gt; and &lt;span&gt;?h=…&lt;/span&gt; cache-busting URLs for stylesheet URLs; &lt;br/&gt;and I decided I’m okay breaking such requests; there shouldn’t be any legitimate ones.) &lt;/p&gt;&lt;p&gt;Want to see what happens if you add a query string? Go ahead, try it. &lt;/p&gt;&lt;p&gt;It’s my website: I can do what I want with it. &lt;/p&gt;&lt;p&gt;And you can do what you want with yours! &lt;/p&gt;&lt;p&gt;&lt;em&gt;This is currently implemented &lt;a href=&quot;https://chrismorgan.info/Caddyfile#?&quot;&gt;in my Caddyfile&lt;/a&gt;.&lt;/em&gt; &lt;/p&gt; &lt;/main&gt; &lt;footer&gt;  &lt;a href=&quot;https://chrismorgan.info/&quot;&gt;   &lt;/a&gt;  &lt;a href=&quot;https://chrismorgan.info/sitemap&quot;&gt;Site map &lt;/a&gt; &lt;/footer&gt; &lt;/body&gt;</content:encoded>
</item>
<item>
<title>What British people really mean when they say &#39;sorry&#39;</title>
<link>https://www.bbc.com/travel/article/20260506-what-british-people-really-mean-when-they-say-sorry</link>
<enclosure type="image/jpeg" length="0" url="https://ychef.files.bbci.co.uk/624x351/p0njlkyj.jpg"></enclosure>
<guid isPermaLink="false">4FZH0eCM-b8fUimvmaUfqzmebMnAU9Zghs2Fjg==</guid>
<pubDate>Thu, 07 May 2026 02:56:40 +0000</pubDate>
<description>&quot;Sorry&quot; is one of the UK&#39;s most overused and misunderstood words – here&#39;s how to decode the politeness minefield.</description>
<content:encoded>&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;h1&gt;What British people really mean when they say &amp;#39;sorry&amp;#39;&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;figure&gt;&lt;div&gt;&lt;div&gt;&lt;img src=&quot;https://static.files.bbci.co.uk/bbcdotcom/web/20260427-074339-4d487e3684-web-3.2.0-4/grey-placeholder.png&quot; alt=&quot;&quot; title=&quot;&quot;/&gt;&lt;img src=&quot;https://ichef.bbci.co.uk/images/ic/480xn/p0njlkyj.jpg.webp&quot; alt=&quot;Getty Images/ BBC/ Javier Hirschfeld A vintage-style woman covers her mouth beside a pixellated speech bubble reading &amp;quot;Sorry&amp;quot; against a read background (Credit: Getty Images /BBC/ Javier Hirschfeld)&quot; title=&quot;&quot;/&gt;&lt;span&gt;Getty Images/ BBC/ Javier Hirschfeld&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;p&gt;&lt;b&gt;Sorry. Sorry to bother you. Sorry for the delay. Sorry about the weather. Sorry for all of the above.&lt;/b&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;p&gt;In the UK, sorry is not simply an apology, it&amp;#39;s a cultural reflex – a five-letter pressure valve used to soften requests, smooth over awkwardness, fill conversational gaps and avoid the national horror of seeming rude. It is perhaps no coincidence that such famously polite characters as Paddington and Mary Poppins are British.&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;p&gt;Brits say the word on average &lt;a href=&quot;https://www.theguardian.com/lifeandstyle/2025/jul/11/sorry-babbel-but-british-people-say-sorry-more-than-nine-times-a-day&quot;&gt;nine times per day&lt;/a&gt; – more than 3,000 times a year. But for visitors, the puzzle is not how often they hear it, it is working out what sorry actually means. Because in Britain, sorry can mean regret. It can also mean excuse me, move over, I disagree, hurry up, you&amp;#39;re blocking the aisle, I didn&amp;#39;t hear you or I am trying very hard to not sound annoyed.&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;p&gt;While these uses are not unique to the UK, the frequency, tone and the tiny social calculations often are. Britain is often known as a conflict-avoidant society, and sorry has become one of its most versatile tools – a way to manage space, soften disagreement, avoid confrontation and enforce rules without appearing openly impolite.&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;p&gt;Essentially, sorry is a politeness code. This one word offers a fascinating glimpse into the many cultural quirks that make the Brits who they are – and for visitors, learning to decode it can be the difference between a friendly exchange and a baffling British misunderstanding.&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;h2&gt;&lt;span&gt;&lt;b&gt;1. &amp;quot;Sorry!&amp;quot; on the street&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;p&gt;&lt;b&gt;What it sounds like:&lt;/b&gt; An apology.&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;p&gt;&lt;b&gt;What it often means:&lt;/b&gt; &lt;i&gt;You&amp;#39;re in my way, I&amp;#39;m in your way, we have both briefly existed too physically near one another and must now neutralise the awkwardness immediately.&lt;/i&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;p&gt;This is less about fault than the UK&amp;#39;s deep discomfort with accidental intimacy: the horror of brushing a stranger&amp;#39;s coat, blocking a pavement or occupying the same small patch of public space for a second too long.&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;p&gt; Someone may say it when they bump into you, when &lt;i&gt;you&lt;/i&gt; bump into them, or when neither of you has done anything wrong beyond brushing shoulders and misjudging pavement geometry. It can mean &amp;quot;excuse me&amp;quot;, &amp;quot;after you&amp;quot;, &amp;quot;please move&amp;quot; or &amp;quot;let&amp;#39;s pretend this tiny collision never happened&amp;quot;. The point is not blame, but social repair; a quick word that keeps things moving while sparing all involved the indignity of open confrontation.&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;figure&gt;&lt;div&gt;&lt;div&gt;&lt;img src=&quot;https://static.files.bbci.co.uk/bbcdotcom/web/20260427-074339-4d487e3684-web-3.2.0-4/grey-placeholder.png&quot; alt=&quot;&quot; title=&quot;&quot;/&gt;&lt;img src=&quot;https://ichef.bbci.co.uk/images/ic/480xn/p0njl7xt.jpg.webp&quot; alt=&quot;Getty Images/ BBC/ Javier Hirschfeld Brits say &amp;quot;sorry&amp;quot; an average of nine times a day, but the word often does more than apologise (Credit: Getty Images/ BBC/ Javier Hirschfeld)&quot; title=&quot;&quot;/&gt;&lt;span&gt;Getty Images/ BBC/ Javier Hirschfeld&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;figcaption&gt;Brits say &amp;quot;sorry&amp;quot; an average of nine times a day, but the word often does more than apologise (Credit: Getty Images/ BBC/ Javier Hirschfeld)&lt;/figcaption&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;h2&gt;&lt;span&gt;&lt;b&gt;2. &amp;quot;Sorry?&amp;quot; &lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;p&gt;&lt;b&gt;What it sounds like:&lt;/b&gt; A request to repeat something.&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;p&gt;&lt;b&gt;What it often means:&lt;/b&gt; &lt;i&gt;I didn&amp;#39;t hear you – or I did, but I need a moment to process what you just said.&lt;/i&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;p&gt;This beloved apology – with a subtle upward inflection at the end – is one of the English language&amp;#39;s most useful conversational tools. It can mean &amp;quot;Pardon?&amp;quot; or &amp;quot;Please, can you repeat that?&amp;quot; or simply &amp;quot;I just need a second&amp;quot;. Because &amp;quot;what&amp;quot; can sound startlingly blunt, &amp;quot;sorry?&amp;quot; becomes the softer, less confrontational alternative. &lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;p&gt;For visitors to the UK, it is handy in places like pubs and train stations with fast-moving conversations – and especially useful in areas with strong regional accents, like those from Liverpool, Newcastle and Glasgow.&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;p&gt;Used with a cooler or more incredulous tone, however, it can shift to a distinctly British warning shot: &lt;i&gt;I heard you, but I&amp;#39;m giving you the opportunity to rethink what you said.&lt;/i&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;h2&gt;&lt;span&gt;&lt;b&gt;3. &amp;quot;Sorry, can I just…&amp;quot;&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;p&gt;&lt;b&gt;What it sounds like:&lt;/b&gt; A polite request.&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;p&gt;&lt;b&gt;What it often means:&lt;/b&gt; &lt;i&gt;I need to take up a tiny bit of space and I am apologising in advance for the inconvenience of my existence.&lt;/i&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;p&gt; This is the apology of British self-minimisation. You&amp;#39;ll hear it on trains, in cafes, at theatre seats, in hotel lobbies and anywhere someone needs to ask a perfectly reasonable question.&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;p&gt;&amp;quot;Sorry, can I just squeeze past?&amp;quot; &amp;quot;Sorry, is anyone sitting here?&amp;quot; &amp;quot;Sorry, could I ask…?&amp;quot;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;p&gt; The speaker is not really sorry. They are softening the act of asking, entering, sitting, reaching or existing too visibly in public. In a more direct culture, &amp;quot;Is this seat free?&amp;quot; might do. In Britain, sorry often gets there first, as if occupying an empty chair requires a small act of contrition.&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;h2&gt;&lt;span&gt;&lt;b&gt;4&lt;/b&gt;&lt;/span&gt;&lt;span&gt;&lt;b&gt;&lt;i&gt;. &lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;span&gt;&lt;b&gt;&amp;quot;Oh, sorry&lt;/b&gt;&lt;/span&gt;&lt;span&gt;&lt;b&gt;&lt;i&gt;…&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;span&gt;&lt;b&gt;&amp;quot; &lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;p&gt;&lt;b&gt;What it sounds like:&lt;/b&gt; An actual apology.&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;p&gt;&lt;b&gt;What it often means:&lt;/b&gt; &lt;i&gt;I&amp;#39;m objecting, but I&amp;#39;m going to make it sound like an apology.&lt;/i&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;p&gt;This may sound like a sincere apology, but it usually isn&amp;#39;t. In the UK, where directness can feel horribly awkward, a clipped &amp;quot;Oh, sorry…&amp;quot; is what you might hear when someone needs to reclaim their place without sounding openly confrontational. &amp;quot;Oh, sorry, I think I was next&amp;quot;; &amp;quot;Oh, sorry, that&amp;#39;s my seat&amp;quot;; &amp;quot;Oh sorry, I was using that.&amp;quot; &lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;p&gt;The apology gives the speaker cover; the pause after &amp;quot;oh&amp;quot; does the damage. It lets them object while remaining technically polite – a very British compromise between saying nothing and saying exactly what they think.&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;figure&gt;&lt;div&gt;&lt;div&gt;&lt;img src=&quot;https://static.files.bbci.co.uk/bbcdotcom/web/20260427-074339-4d487e3684-web-3.2.0-4/grey-placeholder.png&quot; alt=&quot;&quot; title=&quot;&quot;/&gt;&lt;img src=&quot;https://ichef.bbci.co.uk/images/ic/480xn/p0njll2d.jpg.webp&quot; alt=&quot;Getty Images/ BBC/ Javier Hirschfeld In the UK, &amp;quot;sorry&amp;quot; can also mean &amp;quot;excuse me&amp;quot;, &amp;quot;hurry up&amp;quot;, &amp;quot;you&amp;#39;re blocking the aisle&amp;quot; or &amp;quot;I am trying very hard to not sound annoyed&amp;quot; (Credit: Getty Images/BBC/ Javier Hirschfeld)&quot; title=&quot;&quot;/&gt;&lt;span&gt;Getty Images/ BBC/ Javier Hirschfeld&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;figcaption&gt;In the UK, &amp;quot;sorry&amp;quot; can also mean &amp;quot;excuse me&amp;quot;, &amp;quot;hurry up&amp;quot;, &amp;quot;you&amp;#39;re blocking the aisle&amp;quot; or &amp;quot;I am trying very hard to not sound annoyed&amp;quot; (Credit: Getty Images/BBC/ Javier Hirschfeld)&lt;/figcaption&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;h2&gt;&lt;span&gt;&lt;b&gt;5. &amp;quot;Sorry, &lt;/b&gt;&lt;/span&gt;&lt;span&gt;&lt;b&gt;&lt;i&gt;but&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;span&gt;&lt;b&gt;…&amp;quot;&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;p&gt;&lt;b&gt;What it sounds like:&lt;/b&gt; A polite, throat-clearing interruption before a blunt contradiction.&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;p&gt;&lt;b&gt;What it often means:&lt;/b&gt; &lt;i&gt;Try as I might to agree with you, I can&amp;#39;t. I&amp;#39;m about to explain why you&amp;#39;re wrong and I don&amp;#39;t care what you think.&lt;/i&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;p&gt;This is the pre-emptive apology: a small cushion placed before a disagreement lands. In a culture where open disagreement can feel socially abrasive, &amp;quot;sorry, but…&amp;quot; lets the speaker object while maintaining the appearance of civility.&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;p&gt;&lt;b&gt;More like this:&lt;/b&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;p&gt; • &lt;a href=&quot;https://www.bbc.com/travel/article/20260407-how-to-not-embarrass-yourself-in-a-british-pub&quot;&gt;How not to embarrass yourself in a British pub&lt;/a&gt;&lt;a href=&quot;https://www.bbc.com/travel/article/20241231-travel-in-2025-longer-trips-to-fewer-places&quot;&gt;&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;p&gt; • &lt;a href=&quot;https://www.bbc.com/travel/article/20260216-what-its-like-to-stay-in-an-oxford-college&quot;&gt;You can sleep over at Oxford&amp;#39;s colleges - here&amp;#39;s what it&amp;#39;s really like&lt;/a&gt;&lt;a href=&quot;https://www.bbc.com/travel/article/20250102-the-new-travel-retreats-addressing-depression-and-grief&quot;&gt;&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;p&gt; • &lt;a href=&quot;https://www.bbc.com/travel/article/20260206-the-tiny-slice-of-america-in-england&quot;&gt;The tiny slice of &amp;#39;America&amp;#39; in England&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;p&gt;It allows the speaker to challenge, contradict or correct while signalling they&amp;#39;re not trying to start a fight – even when they are absolutely about to. Depending on the tone, it can sound conciliatory, mildly exasperated or one step short of saying &amp;quot;Sorry, but I&amp;#39;m not sorry.&amp;quot; For visitors, the trick is to listen to what comes after the &amp;quot;but&amp;quot;. In Britain, that&amp;#39;s usually where the real message begins.  &lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;h2&gt;&lt;span&gt;&lt;b&gt;6. &amp;quot;Sorry&lt;/b&gt;&lt;/span&gt;&lt;span&gt;&lt;b&gt;&lt;i&gt;…&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;span&gt;&lt;b&gt;&amp;quot; in a queue or pub&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;p&gt;&lt;b&gt;What it sounds like:&lt;/b&gt; An etiquette reminder&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;p&gt;&lt;b&gt;What it often means:&lt;/b&gt; &lt;i&gt;I&amp;#39;m trying not to make this awkward, but this isn&amp;#39;t fair; you&amp;#39;ve broken the rules.&lt;/i&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;p&gt;The blood runs cold at the thought of queue-jumping in Britain. Here, the queue is sacred territory – like Westminster Abbey or Wimbledon – and a politely interjected &amp;quot;sorry…&amp;quot; acts as an etiquette reminder that everyone must adhere to the rules instead of hustling for territory. In this scenario, sorry is code for &amp;quot;get to the back&amp;quot;, &amp;quot;don&amp;#39;t push in&amp;quot;, &amp;quot;keep your distance&amp;quot; or &amp;quot;queue jump if you dare&amp;quot;. &lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;p&gt; In the pub, the same phrase can mean &amp;quot;just behind you&amp;quot;, &amp;quot;I think I was next&amp;quot; or &amp;quot;please don&amp;#39;t pretend you didn&amp;#39;t see me waiting&amp;quot;. It&amp;#39;s a correction dressed up as courtesy – which is often the most British correction of all.&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;p&gt;&lt;i&gt;-- &lt;/i&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;p&gt;&lt;i&gt;If you liked this story, &lt;/i&gt;&lt;a href=&quot;https://www.bbc.com/newsletters?theessentiallist&amp;amp;at_bbc_team=studios&amp;amp;at_medium=Onsite&amp;amp;at_objective=acquisition&amp;amp;at_ptr_name=bbc.com&amp;amp;at_link_origin=featuresarticle&amp;amp;at_campaign=essentiallist&amp;amp;at_campaign_type=owned&quot;&gt;&lt;i&gt;sign up for The Essential List newsletter&lt;/i&gt;&lt;/a&gt;&lt;i&gt; – a handpicked selection of features, videos and can&amp;#39;t-miss news, delivered to your inbox twice a week. &lt;/i&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;p&gt;&lt;i&gt;For more Travel stories from the BBC, follow us on &lt;/i&gt;&lt;a href=&quot;https://www.facebook.com/BBCTravel/&quot;&gt;&lt;i&gt;Facebook&lt;/i&gt;&lt;/a&gt;&lt;i&gt; and &lt;/i&gt;&lt;a href=&quot;https://www.instagram.com/bbc_travel/&quot;&gt;&lt;i&gt;Instagram&lt;/i&gt;&lt;/a&gt;&lt;i&gt;. &lt;/i&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;a href=&quot;https://www.bbc.com/travel/tags/know-before-you-go&quot;&gt;Know Before You Go&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;https://www.bbc.com/travel/tags/language&quot;&gt;Language&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;https://www.bbc.com/travel/tags/british-culture&quot;&gt;British culture&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;https://www.bbc.com/travel/tags/cultural-traditions&quot;&gt;Cultural Traditions&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;https://www.bbc.com/travel/tags/features&quot;&gt;Features&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</content:encoded>
</item>
<item>
<title>100,000 Glyphosate Lawsuits: Why Roundup Does Not Kill Your Weeds Like It Used To – Economist Writing Every Day</title>
<link>https://economistwritingeveryday.com/2026/05/05/100000-glyphosate-lawsuits-why-roundup-does-not-kill-your-weeds-like-it-used-to/</link>
<enclosure type="image/jpeg" length="0" url="https://economistwritingeveryday.com/wp-content/uploads/2021/03/cropped-icon-reduced.jpg?w=200"></enclosure>
<guid isPermaLink="false">xuGoMNDTx4yqMm4sM6q4DthH-xmnfGBDZaWLkg==</guid>
<pubDate>Tue, 05 May 2026 18:29:56 +0000</pubDate>
<description>I don’t like wasting time bending over and pulling out weeds, one by one. Much more efficient to go squirt squirt and eliminate lots of weeds at a time. But I realized in the past year that t…</description>
<content:encoded>&lt;p&gt;I don’t like wasting time bending over and pulling out weeds, one by one. Much more efficient to go squirt squirt and eliminate lots of weeds at a time. But I realized in the past year that the Roundup I spritzed on the weeds in my mulch beds and sidewalk cracks just wasn’t killing them like it used to. The weeds would shrivel a bit, but then many would bounce right back. So, when I went to Home Depot to buy some more this week, I looked at the ingredients on the label. What?? Where is the glyphosate? For decades, “Roundup” was synonymous with glyphosate.&lt;/p&gt;&lt;p&gt;Glyphosate has several desirable properties as an herbicide. You spray it on the leaves, and it kills the plants right down to the roots. However, it has minimal residual toxicity in the soil, so it is unlikely to kill any plants you did not spray, and you can replant quickly in a soil patch that you had cleared with glyphosate. Farmers love it, because you can buy genetically engineered strains of crops like corn that are immune to glyphosate, so you can spray your fields to kill weeds without harming standing crops.&lt;/p&gt;&lt;p&gt;The glyphosate story is much bigger than homeowners bending over to pull weeds. The chemical has become indispensable for current agriculture. Global glyphosate sales are about $10 billion per year, and its impact on crop productivity is &lt;a href=&quot;https://www.snsinsider.com/reports/glyphosate-market-3599&quot;&gt;enormous&lt;/a&gt;. A &lt;a href=&quot;https://pmc.ncbi.nlm.nih.gov/articles/PMC5790413/&quot;&gt;2017 study&lt;/a&gt; (apparently&lt;em&gt; not&lt;/em&gt; paid for by Monsanto) predicted dire effects of discontinuance:&lt;/p&gt;&lt;p&gt;&lt;em&gt;World prices of all grains, oilseeds and sugar are expected to rise, especially soybeans (+5.4%) and rapeseed (+2%). The welfare impacts are mostly negative, with global welfare falling by $7,408 million per year. Land use changes will arise, with an additional cropping area of 762,000 ha, of which 53% derives from new land brought into cropping agriculture, including 167,000 of deforestation. These land use changes are likely to induce the generation of an additional 234,000 million kg of carbon dioxide emissions.&lt;/em&gt;&lt;/p&gt;&lt;p&gt;What’s not to like about glyphosate? Well, maybe it causes cancers in humans. This is a contested claim, and I don’t have the expertise to penetrate the arguments. Because glyphosate makers like Monsanto and its successors Bayer have deep pockets, lawyers on contingency have swarmed like killer bees to file lawsuits, over 100,000 of them, of which about 60,000 remain active globally.&lt;/p&gt;&lt;p&gt;National security issues have muddied the waters here. For instance, Robert F. Kennedy, Jr. led a landmark legal case against Monsanto in 2018, securing a $289 million jury verdict (later reduced on appeal to $20.4 million) for a school groundskeeper who developed non-Hodgkin’s lymphoma after prolonged exposure to Roundup. That case energized a bazillion further lawsuits. But now Kennedy is going along with the current administration’s position that it is strategically necessary to maintain production and responsible access to glyphosate: farmers demand it, and Bayer operates the only plant in the U.S. producing significant amounts of elemental phosphorus, which is a vital material for defense and, increasingly, for lithium batteries.&lt;/p&gt;&lt;p&gt;Naturally, Bayer denies that glyphosate is particularly harmful. The firm continues to sell the product to farmers and landscape professionals, but it has removed it from retail bottles of Roundup you see on Home Depot shelves, in an effort to reduce exposure for further litigation.&lt;/p&gt;&lt;p&gt;What have they substituted for good old glyphosate? I found a brew of three other chemicals. I can report reliably that this mixture is much less effective, especially on grasses and on well-established weeds. The Internet backs up my observations. The Iowa State garden extension has a great &lt;a href=&quot;https://yardandgarden.extension.iastate.edu/article/2025/06/roundup-its-not-what-it-used-be&quot;&gt;table&lt;/a&gt; of the real-world effects of all common herbicides.&lt;/p&gt;&lt;p&gt;So, what to do? For grasses in my backyard gravel patch, I am spraying multiple times. If that doesn’t work, I may try covering that area with a black tarp for a month to kill the grass. I have considered buying a propane flamethrower weeder, but that seems only effective on the same things the current wimpy Roundup kills (small/young broadleaf weeds).&lt;/p&gt;&lt;p&gt;For mulched areas, I am incentivized to keep up with fresh mulch to keep weeds from growing in the first place. For larger weeds, I have now found myself bending down low, grasping them close to the ground, and actually pulling them out by hand.&lt;/p&gt;</content:encoded>
</item>
<item>
<title>Why airlines are always going bankrupt - David Oks</title>
<link>https://davidoks.blog/p/why-airlines-are-always-going-bankrupt</link>
<enclosure type="image/jpeg" length="0" url="https://substackcdn.com/image/fetch/$s_!JCus!,w_1200,h_675,c_fill,f_jpg,q_auto:good,fl_progressive:steep,g_auto/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7925ad66-224b-40fe-92b2-1e8e9335fab0_2000x1429.png"></enclosure>
<guid isPermaLink="false">DqktyRw_yijS6Ehpvj6C853t8KJ6D6pRJ1VIyQ==</guid>
<pubDate>Mon, 04 May 2026 17:56:12 +0000</pubDate>
<description>How aviation companies (fail to) make a profit</description>
<content:encoded>&lt;div&gt;&lt;figure&gt;&lt;a href=&quot;https://substackcdn.com/image/fetch/$s_!JCus!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7925ad66-224b-40fe-92b2-1e8e9335fab0_2000x1429.png&quot;&gt;&lt;div&gt;&lt;picture&gt;&lt;img src=&quot;https://substackcdn.com/image/fetch/$s_!JCus!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7925ad66-224b-40fe-92b2-1e8e9335fab0_2000x1429.png&quot; alt=&quot;&quot; title=&quot;&quot;/&gt;&lt;/picture&gt;&lt;/div&gt;&lt;/a&gt;&lt;figcaption&gt;&lt;span&gt;All photos by Mike Kelley from his &lt;/span&gt;&lt;a href=&quot;https://www.mpkelley.com/projects/life-cycles&quot;&gt;“Life Cycles”&lt;/a&gt;&lt;span&gt; series&lt;/span&gt;&lt;/figcaption&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;&lt;span&gt;It might not be the most important story in the world right now, as our species takes its first halting steps into a brave new world of technological power whose contours are still to us mysterious and weighted with fearful portent, but lately I’ve been spending a good bit of time reading about the death of Spirit Airlines. Spirit, for those lucky enough to have never flown on one of its planes—I have a few memories of terrible Spirit flights from New York to Miami in my teenage years—is, or rather &lt;/span&gt;&lt;em&gt;was&lt;/em&gt;&lt;span&gt;, one of the ten or so largest airlines in the United States, and, after its more popular rival Southwest, the most prominent of the budget airlines. (JetBlue is somewhat larger, but can’t be considered a “true” budget airline.) And, for the last few years, Spirit had been hurtling toward insolvency.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;Spirit had last turned a profit in 2019; things turned disastrously bad with the COVID pandemic in 2020—as was the case for every other airline—but whereas larger flyers generally recovered, things went from bad to worse for Spirit. Corporate leadership pursued a merger with JetBlue, but this was blocked by a federal judge. And so in November 2024, Spirit &lt;/span&gt;&lt;a href=&quot;https://www.cnn.com/2024/11/18/business/spirit-airlines-bankruptcy&quot;&gt;filed for&lt;/a&gt;&lt;span&gt; Chapter 11 bankruptcy protection; then it &lt;/span&gt;&lt;a href=&quot;https://www.npr.org/2025/08/30/nx-s1-5522901/spirit-airlines-bankruptcy-filing&quot;&gt;filed again&lt;/a&gt;&lt;span&gt;, less than a year later, in August 2025. But these filings did little to save Spirit. There was talk of liquidating the company. The Trump administration raised the prospect of a capital injection that would leave the federal government with &lt;/span&gt;&lt;a href=&quot;https://archive.ph/O8u8p&quot;&gt;a 90 percent stake in the airline&lt;/a&gt;&lt;span&gt; (the first time in American history that the federal government has owned a passenger airline outright), but the talks collapsed, and so in early May 2026 Spirit announced that it was shutting down for good.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;The collapse of Spirit was unique in that in its death throes it managed to solicit a bailout offer from the U.S. government; but it was not unique among its fellow airlines in going broke. Airlines are a bad business: a really, &lt;/span&gt;&lt;em&gt;really&lt;/em&gt;&lt;span&gt; bad business. The International Air Transport Association, the trade body of the global airline industry, has documented for years that airlines as a sector destroy investor value in the aggregate. The IATA’s &lt;/span&gt;&lt;a href=&quot;https://www.iata.org/en/pressroom/2025-releases/2025-12-09-01/&quot;&gt;2026 outlook&lt;/a&gt;&lt;span&gt;, looking forward to a quite strong year—this was before the Iran war broke out and oil prices surged—projected an average return on invested capital of 6.8 percent, against a weighted average cost of capital of 8.2 percent. As the IATA’s report said, &lt;/span&gt;&lt;a href=&quot;https://www.businesstravelnews.com/Transportation/Air/IATA-Predicts-2026-Profit-Increase-for-Global-Air-Industry&quot;&gt;“the airline industry collectively does not generate earnings that cover its cost of capital.”&lt;/a&gt;&lt;span&gt; This has been the case for a long time. From its deregulation in 1978 to the end of 2025, the airline industry has cumulatively lost money: its net profit over those 47 years sits at negative $37 billion.&lt;/span&gt;&lt;span&gt;1&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;Given these grim economics, you won’t be surprised to hear that airlines have a bad habit of going insolvent. This includes many of the most famous names in the history of aviation. Pan Am, long the unofficial flag carrier of the United States, ceased operations in 1991; Eastern Air Lines liquidated the same year; TWA, the carrier of Howard Hughes, was absorbed into American Airlines after a third bankruptcy filing in 2001; Braniff died in 1982. And those are only the most famous names; countless aviation startups have come and gone. (Have you ever heard of &lt;/span&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Trump_Shuttle&quot;&gt;Trump Shuttle&lt;/a&gt;&lt;span&gt;?) Even airlines with the backing of a national government go bankrupt all the time: Alitalia, Italy’s flag carrier, reported only a single year of profit since its founding in 1946 and was &lt;/span&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Financial_situation_of_Alitalia&quot;&gt;saved countless times by the Italian government&lt;/a&gt;&lt;span&gt; before ultimately ceasing operations in 2021. Even those airlines that survive for long periods of time are perpetually in financial distress. Between 1978 and 2005, &lt;/span&gt;&lt;a href=&quot;https://www.gao.gov/assets/a111900.html&quot;&gt;more than 160 airlines filed for bankruptcy&lt;/a&gt;&lt;span&gt;; virtually every major U.S. carrier other than Southwest has been to bankruptcy court at least once. In September 2005, every one of the four largest American airlines—United, Delta, Northwest, and US Airways—was &lt;/span&gt;&lt;a href=&quot;https://www.npr.org/2005/09/14/4847881/delta-northwest-file-for-bankruptcy-protection&quot;&gt;operating simultaneously under Chapter 11 protection&lt;/a&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;This is very strange. There’s not really a conventional economic explanation for an industry whose long-term equilibrium is &lt;/span&gt;&lt;em&gt;losing money&lt;/em&gt;&lt;span&gt;: an industry that, on a purely economic level, should not exist. Warren Buffett once called the airline industry a “bottomless pit” for investor capital. “Indeed,” &lt;/span&gt;&lt;a href=&quot;https://som.yale.edu/sites/default/files/2021-12/Module8-Readng.pdf&quot;&gt;he wrote&lt;/a&gt;&lt;span&gt;, “if a farsighted capitalist had been present at Kitty Hawk, he would have done his successors a huge favor by shooting Orville down.”&lt;/span&gt;&lt;/p&gt;&lt;p&gt;So why is the airline business so remarkably bad?&lt;/p&gt;&lt;p&gt;&lt;span&gt;One answer is that airlines are particularly vulnerable to shocks. There are so many potential risks with air travel that practically &lt;/span&gt;&lt;em&gt;anything&lt;/em&gt;&lt;span&gt; going wrong will have some effect. The September 11th attacks, for example, had a huge effect on air travel; so did the surging oil prices of the 2000s, the financial crisis of 2008 and the resulting recession, the 2020 pandemic, and now the volatility in oil prices surrounding the Iran war. Whenever a major shock occurs you tend to see a huge wave of airline bankruptcies. &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;But airlines obviously aren’t the only type of business in the world that’s vulnerable to shocks. Hotels, for instance, are heavily exposed to recessions, terrorism, and pandemics; their costs are heavily front-loaded into the property, just as an airline’s costs are loaded into the plane; and yet the hotel industry doesn’t go through synchronized waves of bankruptcy each time a shock hits. Shocks might explain why airlines tip over the edge into restructuring or liquidation; but they don’t really explain why they’re so vulnerable in the first place, or why the airline sector—uniquely among &lt;/span&gt;&lt;em&gt;all major industries&lt;/em&gt;&lt;span&gt;—is unable to generate profit in the aggregate.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;And we don’t see the same structural unprofitability in any of the other companies of the aviation ecosystem: engine and avionics manufacturers, for example, do totally fine; so do the service suppliers that sell into airlines.&lt;/p&gt;&lt;p&gt;&lt;span&gt;Maybe, then, the answer is that airlines specifically are just poorly managed. This was &lt;/span&gt;&lt;a href=&quot;https://www.nber.org/system/files/working_papers/w16744/w16744.pdf&quot;&gt;the dominant view in the 2000s and 2010s&lt;/a&gt;&lt;span&gt;: legacy full-service carriers were chronic money-losers; budget airlines, like Southwest and Ryanair, were much more profitable; and so in the future air travel would bifurcate into budget aviation for the masses and Emirates-style luxury travel for the few. But the budget airlines don’t look so good anymore. Spirit was a flagship budget airline and has now been liquidated; JetBlue and Frontier, two budget or semi-budget competitors, &lt;/span&gt;&lt;a href=&quot;https://viewfromthewing.com/more-airline-bankruptcies-may-be-coming-jetblue-and-frontier-face-the-highest-risk/&quot;&gt;are also at risk of bankruptcy&lt;/a&gt;&lt;span&gt;; even Southwest, the most durable and iconic of the low-cost carriers, has been unable to make a profit since the pandemic and is &lt;/span&gt;&lt;a href=&quot;https://fortune.com/2024/10/26/southwest-airlines-cult-favorite-investor-target-elliott-management/&quot;&gt;now fending off an activist challenge&lt;/a&gt;&lt;span&gt; from the hedge fund Elliott Management. So the budget strategy clearly wasn’t a solution to the airline industry’s problems.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;So explanations that cite shocks or bad management either explain too much or too little. If it’s just vulnerability to shocks, why don’t other industries have such huge bankruptcy waves? And if it’s bad management, why has no airline in the long history of aviation figured out a replicable solution to running the business profitably?&lt;/p&gt;&lt;p&gt;&lt;span&gt;I’d like to suggest that the problem with the airline industry is much deeper than people seem to think. Losing money in the aggregate is a feature, not a bug, of a competitive airline industry. The airline sector, for reasons that go into the essential nature of the industry, &lt;/span&gt;&lt;em&gt;cannot reach a profitable competitive equilibrium&lt;/em&gt;&lt;span&gt;. This is not because airlines are vulnerable to shocks or because they’re poorly managed. The airline industry &lt;/span&gt;&lt;em&gt;itself&lt;/em&gt;&lt;span&gt; can either be profitable, or it can be competitive: but it can’t really be both.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;To understand why, we have to learn a little bit about game theory.&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;a href=&quot;https://substackcdn.com/image/fetch/$s_!sv5l!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe0e40ef-3cfe-41be-a971-75a357ab9852_1000x1400.png&quot;&gt;&lt;div&gt;&lt;picture&gt;&lt;img src=&quot;https://substackcdn.com/image/fetch/$s_!sv5l!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe0e40ef-3cfe-41be-a971-75a357ab9852_1000x1400.png&quot; alt=&quot;&quot; title=&quot;&quot;/&gt;&lt;/picture&gt;&lt;/div&gt;&lt;/a&gt;&lt;/figure&gt;&lt;/div&gt;&lt;h3&gt;The airline industry can be competitive or profitable, not both&lt;/h3&gt;&lt;p&gt;&lt;span&gt;Game theory is &lt;/span&gt;&lt;em&gt;the formal study of strategic interaction&lt;/em&gt;&lt;span&gt;: that is, the study of situations where each agent’s best move depends on what they expect others to do. Game theory originated in the 1940s, with the work of John von Neumann; and it’s most frequently associated with John Nash, the mathematician who gave us the idea of the &lt;/span&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Nash_equilibrium&quot;&gt;“Nash equilibrium.”&lt;/a&gt;&lt;span&gt; (And was played by Russell Crowe in &lt;/span&gt;&lt;em&gt;A Beautiful Mind&lt;/em&gt;&lt;span&gt;.) Game theory is a huge and influential field, fruitful enough to branch into many subfields.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;If you’re familiar with game theory, you’re probably most familiar with the study of &lt;/span&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Non-cooperative_game_theory&quot;&gt;“non-cooperative games,”&lt;/a&gt;&lt;span&gt; like the famous &lt;/span&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Prisoner%27s_dilemma&quot;&gt;prisoner’s dilemma&lt;/a&gt;&lt;span&gt;: this is the subfield that studies how rational agents will behave when they can’t make binding commitments to one another, and are thus in a state of permanent competition. But the branch of game theory that tells us the most about airline economics comes instead from &lt;/span&gt;&lt;em&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Cooperative_game_theory&quot;&gt;cooperative&lt;/a&gt;&lt;/em&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Cooperative_game_theory&quot;&gt; game theory&lt;/a&gt;&lt;span&gt;, which studies what happens when agents &lt;/span&gt;&lt;em&gt;can&lt;/em&gt;&lt;span&gt; form binding agreements. The central question of cooperative game theory is &lt;/span&gt;&lt;em&gt;which arrangements among players are stable&lt;/em&gt;&lt;span&gt;: that is, which arrangements have the property that &lt;/span&gt;&lt;em&gt;no subset of players could break away and do better on their own&lt;/em&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;One of the central ideas in the study of cooperative games is the idea of &lt;/span&gt;&lt;em&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Core_(game_theory)&quot;&gt;the core&lt;/a&gt;&lt;/em&gt;&lt;span&gt;. The “core” of a game is simply the set of outcomes that &lt;/span&gt;&lt;em&gt;no coalition of players can improve upon by breaking away and dealing among themselves&lt;/em&gt;&lt;span&gt;. If an outcome is “in the core,” it’s stable, such that nobody can propose a side deal that makes every member of some subgroup better off; if the core is “empty,” then every arrangement is vulnerable to being undercut by some side-coalition, and the market has no resting point, no stable equilibrium. It cycles, destabilizes, and, without outside intervention of some kind, eventually breaks down.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Airlines are the classic example of an “empty core” industry: an industry that is structurally incapable of reaching competitive equilibrium. But why is it that airlines have an empty core, while other industries—ones that also have plenty of competition, but converge on healthy margins and stable prices—don’t?&lt;/p&gt;&lt;p&gt;&lt;span&gt;Luckily we have an answer from the University of Chicago economist Lester Telser, one of the pioneers in applying game theory to economic questions. Telser’s central idea, developed across a body of work in the 1970s and ‘80s, was that &lt;/span&gt;&lt;a href=&quot;https://web.stanford.edu/class/msande311/Coretheory.pdf&quot;&gt;the empty-core syndrome was &lt;/a&gt;&lt;em&gt;&lt;a href=&quot;https://web.stanford.edu/class/msande311/Coretheory.pdf&quot;&gt;a structural feature of particular industries&lt;/a&gt;&lt;/em&gt;&lt;span&gt;. Whether an industry suffered from an empty core or did not depended on a few simple conditions.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;What were those conditions? Telser identified a particular combination. Industries with an empty core, he suggested, are marked on the demand side by a lack of product differentiation and volatile consumer demand. And on the production side, they combine high fixed costs with low marginal costs and sharp economies of scale: the &lt;/span&gt;&lt;em&gt;minimum efficient scale&lt;/em&gt;&lt;span&gt; of a single firm is thus large relative to the total size of the market, and the &lt;/span&gt;&lt;em&gt;efficient number of firms&lt;/em&gt;&lt;span&gt; in the market is relatively small. By minimum efficient scale, we mean the smallest level of output at which a firm reaches its lowest average cost: below it, fixed costs are spread too thin and per-unit costs are high; and above it, the cost curve eventually flattens or even rises, as coordination costs and managerial complexity erode the gains from further growth. Total demand divided by minimum efficient scale, then, gives us the efficient number of firms a market can support.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;To see why this particular combination of features is so toxic, consider a stylized example. Suppose you have an industry where the minimum efficient scale of a single firm is large relative to the size of the market: large enough that the market can support, say, two and a half efficient firms. That is to say: two firms can’t quite produce enough to satisfy demand; but three firms is one too many for all of them to operate at full capacity. Obviously you can’t have &lt;/span&gt;&lt;em&gt;half&lt;/em&gt;&lt;span&gt; a firm: firms come in whole numbers. So what happens? &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;Suppose you try to run the industry with just two firms. Demand exceeds supply, such that prices are high and there’s plenty of profit to enjoy.&lt;/span&gt; &lt;span&gt;But that profit is exactly what invites a third firm to enter, undercut both incumbents, and still cover its costs. Now there are &lt;/span&gt;&lt;em&gt;three&lt;/em&gt;&lt;span&gt; firms, and supply exceeds demand. Someone has to operate below scale and bleed money on fixed expenses; eventually one of the firms will have to leave the market. Now you’re back to where you started: prices recover, profits climb higher, and the cycle begins again.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;So whichever side of the integer you land on—one firm too many, one firm too few—there is &lt;/span&gt;&lt;em&gt;some coalition&lt;/em&gt;&lt;span&gt; of firms and customers that can profitably reorganize the market against the existing arrangement. In the language of cooperative game theory, the allocation is always vulnerable to defection by some coalition. The core is empty.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;This wouldn’t be a problem if the efficient scale of a firm were small relative to total demand. If the market could support 1,778.4 firms’ worth of output, and there happened to be 1,779 firms, no one would notice the rounding error. But when the efficient number of firms is small, adding or subtracting one firm causes huge perturbations. “Lumpy” supply, in a small-numbers market, is the heart of the problem. And this is made worse by volatile demand. An industry that was barely sustainable with three firms becomes catastrophically oversupplied the moment that demand softens.&lt;/p&gt;&lt;p&gt;Most industries don’t really fall into this bucket. Take, for example, soap: manufacturing soap has real economies of scale, but the minimum efficient scale is small relative to total demand, products are differentiable enough through brand and recipe, and demand is reasonably steady. So the firm can settle quite comfortably into an equilibrium that is stable, competitive, and durably profitable. The empty-core syndrome only kicks in where minimum efficient scale is large relative to total demand, where products are undifferentiated, where economies of scale are sharp, and where demand is prone to swing.&lt;/p&gt;&lt;p&gt;You find the empty-core syndrome, for example, in the railroad industry of the nineteenth century. Building a railroad required vast capital expenditure on track, rolling stock, depots, and bridges; but once the infrastructure was in place, the marginal cost of carrying an additional ton of freight or another passenger across it was almost zero. Two railroads running competing lines between, say, Chicago and New York could not both operate at full cost recovery; so they spent the 1870s and 1880s alternately forming pools and rate-fixing agreements, then watching them collapse into ruinous price wars, going bankrupt, reorganizing, and starting the cycle over again.&lt;/p&gt;&lt;p&gt;And you’ll find the same dynamic in the contemporary airline industry.&lt;/p&gt;&lt;p&gt;&lt;span&gt;Suppose you’re managing an airline that does flights from San Francisco to Tokyo. (A flight I’m considering taking, by the way.) Most of your costs, you’ll find, are fixed. The aircraft itself—let’s say it’s a modern widebody, like a Boeing 787—will cost you somewhere in the low hundreds of millions; that’s a fixed cost. So are the gate slot for your departure from San Francisco and the landing rights for your arrival in Tokyo. Labor costs might seem variable, but they’re actually not: pilot, flight attendant, and mechanic compensation in the United States is governed by the &lt;/span&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Railway_Labor_Act&quot;&gt;Railway Labor Act of 1926&lt;/a&gt;&lt;span&gt; (which was extended to airlines in 1936), which stipulates that collective bargaining agreements don’t actually expire but rather remain in force until they’re replaced. So even your wage bill is more or less fixed over multi-year horizons. The most variable major cost you’ll have to deal with is jet fuel; but given that spiking fuel prices aren’t your friend, you’d rather &lt;/span&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Fuel_hedging&quot;&gt;hedge fuel costs aggressively&lt;/a&gt;&lt;span&gt; to smooth out cash flow. So fuel &lt;/span&gt;&lt;em&gt;also&lt;/em&gt;&lt;span&gt; acts more like a fixed cost.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;All of which is to say: you have &lt;/span&gt;&lt;em&gt;a lot&lt;/em&gt;&lt;span&gt; of fixed costs.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Now let’s suppose daily demand on your route from San Francisco to Tokyo is roughly 800 passengers willing to pay a price that covers the full cost of flying. A widebody seats around 250 to 300 people. Perhaps you offer one flight per day, and you have two competitors that also offer one flight a day. This puts about 750 to 900 seats into the market: close enough to demand that fares stay healthy and the route covers its costs, plus a bit extra that you and your competitors can take as profit. Some customers don’t fly, and fares get bid up; but this is fine enough, at least for you.&lt;/p&gt;&lt;p&gt;&lt;span&gt;But there’s a problem with this situation: there’s enough slack in the market—enough customers paying more than they could, and enough margin that you’re taking—that a new entrant could see an opportunity to enter. And once that new competitor has entered, you now have 1,000 to 1,200 seats chasing 800 passengers, which means that &lt;/span&gt;&lt;em&gt;somebody&lt;/em&gt;&lt;span&gt; has to lose out. The efficient number of daily flights is somewhere between three and four; but capacity is lumpy. So whereas three was somewhat &lt;/span&gt;&lt;em&gt;too few&lt;/em&gt;&lt;span&gt;, four is definitely &lt;/span&gt;&lt;em&gt;too many&lt;/em&gt;&lt;span&gt;. So you enter the instability part of the cycle. Fares collapse; margins take a hit; eventually someone has to exit. Once the weakest competitor has exited, the market consolidates again, and fares recover; but then someone sees the unmet demand and enters again.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;So even in the best of times, there’s a deep structural instability to the airline industry: margins are structurally depressed and companies are unable to recoup their cost of capital. And that is in the best of times. Whenever there’s a major shock that hits costs or demand, airlines enter periods of severe crisis. Because the variable cost of flying a half-empty plane is barely lower than the variable cost of flying a full one—and not that much higher than keeping the planes grounded—airlines don’t pull capacity proportional to the decline in demand. Capacity persists and fares collapse; so margins go from slightly positive to sharply negative. And this ruinous competition is the basic rhythm of the airline sector.&lt;/p&gt;&lt;p&gt;&lt;span&gt;That is why airlines go bankrupt so frequently. Under American law, Chapter 11 bankruptcy protection—which allows a company to continue operating while it restructures its debts under court supervision—is practically the only mechanism by which an airline can renegotiate its rigid cost structure, from aircraft leases to collective bargaining agreements. Oftentimes this renegotiation takes on a rather predatory character. When United Airlines filed for bankruptcy in 2002 in the aftermath of the September 11th attacks, it &lt;/span&gt;&lt;a href=&quot;https://archive.ph/iAZt9&quot;&gt;terminated its pension plan&lt;/a&gt;&lt;span&gt; and left the costs to be absorbed by the U.S. government’s Pension Benefit Guaranty Corporation—saving United about $6.6 billion. &lt;/span&gt;&lt;/p&gt;&lt;p&gt;So Chapter 11 is a relief valve for airlines struggling under the weight of their fixed costs; but it doesn’t really do much to help the system as a whole. For airlines, bankruptcy rarely culminates with liquidation; airlines that emerge from bankruptcy proceedings, having voided pension obligations and rejected aircraft leases, can operate at a fundamentally lower cost basis than their competitors. So bankruptcy doesn’t really restore the industry to a competitive equilibrium that can cover the cost of capital: it resets the floor at a lower level, from which a new round of ruinous competition can begin.&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;a href=&quot;https://substackcdn.com/image/fetch/$s_!2Xi9!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00d9535f-5cf4-4d9b-b7f4-48d882b6167b_1000x1250.png&quot;&gt;&lt;div&gt;&lt;picture&gt;&lt;img src=&quot;https://substackcdn.com/image/fetch/$s_!2Xi9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00d9535f-5cf4-4d9b-b7f4-48d882b6167b_1000x1250.png&quot; alt=&quot;&quot; title=&quot;&quot;/&gt;&lt;/picture&gt;&lt;/div&gt;&lt;/a&gt;&lt;/figure&gt;&lt;/div&gt;&lt;h3&gt;To be profitable, the airline industry has to be uncompetitive&lt;/h3&gt;&lt;p&gt;The economics of a genuinely competitive airline industry, then, are really bad—for the same reason the economics of any empty-core industry are bad. And this suggests that, in search of stability, the market participants will eventually try to suppress competition, if only so they can survive.&lt;/p&gt;&lt;p&gt;&lt;span&gt;This is what’s happened with most empty-core industries, like &lt;/span&gt;&lt;a href=&quot;https://www.sciencedirect.com/science/article/abs/pii/0167718794900167&quot;&gt;railroads&lt;/a&gt;&lt;span&gt; and &lt;/span&gt;&lt;a href=&quot;https://www.jstor.org/stable/1831890&quot;&gt;ocean shipping&lt;/a&gt;&lt;span&gt;. Anticompetitive measures, like cartels and mergers and vertical integration, are &lt;/span&gt;&lt;em&gt;necessary&lt;/em&gt;&lt;span&gt; in these industries: not because the firms involved are particularly “greedy,” but because uncompetitive equilibria are &lt;/span&gt;&lt;em&gt;the only stable equilibria&lt;/em&gt;&lt;span&gt;. In antitrust law, these arrangements would be considered “restraints of trade.” But they’re doing real economic work: they’re choosing, even if arbitrarily, among allocations that would otherwise be inherently unstable and frequently unprofitable.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;And this is also the story of the airline industry. From the very beginning of commercial aviation in the United States, it was clear that the industry couldn’t attain competitive equilibrium like other industries did. Airlines “weren’t like the other kids.” The 1930s, when commercial aviation first got onto its sickly legs, &lt;/span&gt;&lt;a href=&quot;https://simpleflying.com/americas-failed-airlines/&quot;&gt;already saw a wave of airline failures&lt;/a&gt;&lt;span&gt;; in response, the U.S. government created the &lt;/span&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Civil_Aeronautics_Board&quot;&gt;Civil Aeronautics Board&lt;/a&gt;&lt;span&gt;, a government commission to determine the shape of the airline industry. Essentially this amounted to a government-approved cartel. The CAB told airlines which routes they could fly, when they could fly them, and what they could charge; entry into new interstate markets was effectively prohibited, such that not a single trunk-line carrier was admitted to the industry between 1938 and 1978; and fares were set to provide carriers with reasonable rates of return. Under this regime, the airline industry was profitable, comfortable, and slightly boring; they competed on service and on the glamour of their cabins, not on price.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;But by the mid-1970s the consensus among economists had turned firmly against the CAB regime. Studies of &lt;/span&gt;&lt;a href=&quot;https://www.jstor.org/stable/3003030&quot;&gt;unregulated intrastate carriers&lt;/a&gt;&lt;span&gt; in California and Texas showed that they charged half the fares of the regulated lines on comparable routes, and made money doing it; and the broader environment of dramatic inflation made the aviation cartel look less like a stabilizing arrangement and more like a tax on the public. In 1978, the &lt;/span&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Airline_Deregulation_Act&quot;&gt;Airline Deregulation Act&lt;/a&gt;&lt;span&gt; stripped the CAB of its rate-setting and route-licensing authority, and—for the first time in American history—turned a regulated cartel into a competitive free market.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;The period after 1978, unsurprisingly, was a much more tumultuous one than what came before. The airline industry entered exactly the pattern of chronic instability that Telser described in empty-core industries. In route after route there were waves of entry, price wars, bankruptcies, consolidation, brief stability, and then another wave of entry and price wars. The first great wave of bankruptcies came in the 1980s, driven partly by the inability of the legacy carriers to adjust quickly enough to a world in which fares were set by markets and partly by the failure of most of the post-deregulation entrants. The 1990s were relatively stable; and then the 2000s saw another wave of insolvencies, with United, Delta, Northwest, and US Airways &lt;/span&gt;&lt;a href=&quot;https://www.aerotime.aero/articles/23050-day-4-american-carriers-bankrupt&quot;&gt;all declaring bankruptcy&lt;/a&gt;&lt;span&gt; in the course of a few years. The American airline industry enjoyed a period of rare stability in the 2010s—finally seeming, for a brief and glorious moment, like a good business—before proceeding to crash again in the 2020s.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;In the course of this long path of suffering, every airline has decided, in one way or another, that the competitive airline industry is structurally unprofitable, and not really worth participating in.&lt;/p&gt;&lt;p&gt;&lt;span&gt;One response is to cartelize the industry through means other than direct rate-fixing: to recreate, by private contract, the kind of &lt;/span&gt;&lt;a href=&quot;https://link.springer.com/article/10.1007/s11151-018-9636-x&quot;&gt;competition-suppressing arrangements&lt;/a&gt;&lt;span&gt; that the CAB previously wrote into statute. The international alliances of which airlines are so fond—Star, SkyTeam, and Oneworld, with their codesharing and antitrust-immunized joint venture agreements—are one form of this: they allow nominally competitive airlines to coordinate scheduling, share revenues, and refrain from undercutting each other on high-value trans-oceanic routes.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;The hub-and-spoke model that dominates domestic aviation is another form of this tacit cartelization. By concentrating its operations at a few major airports, an airline can turn those airports into something close to local monopolies. American Airlines, for example, carries &lt;/span&gt;&lt;a href=&quot;https://www.wcnc.com/article/travel/american-airlines-launches-technology-flyers-connecting-flights-charlotte-clt-airport/275-d2321346-6ab2-4fd9-8908-5852f8f7bb93&quot;&gt;about 90 percent of passengers at Charlotte Douglas&lt;/a&gt;&lt;span&gt; and &lt;/span&gt;&lt;a href=&quot;https://simpleflying.com/why-american-airlines-dominate-dallas-fort-worth/&quot;&gt;82 percent of passengers at Dallas-Fort Worth&lt;/a&gt;&lt;span&gt;, but only about &lt;/span&gt;&lt;a href=&quot;https://www.flysfo.com/about/about-sfo/sfo-fact-sheet&quot;&gt;7 percent of passengers at San Francisco&lt;/a&gt;&lt;span&gt;, where the market is dominated by United, and &lt;/span&gt;&lt;a href=&quot;https://www.atl.com/wp-content/uploads/2026/03/ATL-ATR-2602.pdf&quot;&gt;2 percent at Atlanta International&lt;/a&gt;&lt;span&gt;, which is the central hub for Delta. In effect, major domestic airlines have carved up the country into a sort of feudal map of fortress hubs, with each one operating a quasi-monopoly through which it produces the margins that cannot be earned in genuine competition.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;But the other response, and perhaps the more interesting one, is to leave the airline business entirely: to treat the planes as a kind of loss-leading distribution channel for what has become the &lt;/span&gt;&lt;em&gt;actual&lt;/em&gt;&lt;span&gt; product. The main innovation of the airline industry of the last few decades, from this vantage point, has been &lt;/span&gt;&lt;a href=&quot;https://archive.ph/levR4&quot;&gt;the frequent flyer program&lt;/a&gt;&lt;span&gt;. Invented in the immediate aftermath of deregulation as airlines scrambled for ways to lock in customer loyalty, frequent flyer programs have become something quite different: enormous, free-floating financial businesses, miles-as-currency operations whose value bears essentially no relationship to the cost of the seats backing them.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;The greatest beneficiary of this turn has been Delta, &lt;/span&gt;&lt;a href=&quot;https://archive.ph/LVUD8&quot;&gt;the most profitable airline in the United States&lt;/a&gt;&lt;span&gt;, which started a fruitful partnership with American Express in 1996 and launched a &lt;/span&gt;&lt;a href=&quot;https://archive.nytimes.com/www.nytimes.com/inc_com/inc1208779304545.html&quot;&gt;co-branded card with them in 2008&lt;/a&gt;&lt;span&gt;. Annual spending on Delta-branded American Express cards comes out to &lt;/span&gt;&lt;a href=&quot;https://www.fastcompany.com/90934980/how-much-do-we-charge-to-our-delta-air-american-express-cards-its-a-lot&quot;&gt;about 1 percent of U.S. GDP&lt;/a&gt;&lt;span&gt;. In 2025, this produced about $8 billion in revenue for Delta, &lt;/span&gt;&lt;a href=&quot;https://www.economist.com/business/2025/08/06/how-loyalty-programmes-are-keeping-americas-airlines-aloft&quot;&gt;accounting for more than the entirety of its profit&lt;/a&gt;&lt;span&gt;. That means that without the American Express partnership, Delta would be operating at a substantial loss. In effect, Delta’s aviation business is a loss leader for a much more profitable credit card partnership. So to the extent that Delta is now a good business, it is because it escaped the basic instability of the airline industry by becoming &lt;/span&gt;&lt;em&gt;less of an airline.&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;(We see a sort of mixed strategy from Ryanair, &lt;/span&gt;&lt;a href=&quot;https://www.economist.com/business/2026/01/26/ryanair-might-be-the-worlds-most-successful-airline&quot;&gt;the most consistently profitable of all airlines&lt;/a&gt;&lt;span&gt;. Ryanair has managed to attain by far the lowest fixed costs of any major airline in the world, due largely to its canny patronage of low-volume regional airports which give healthy discounts on gate slots and landing rights; it flies out of small secondary airports, like Stansted and Charleroi, and thus effectively monopolizes hundreds of routes within Europe; it extracts substantial subsidies from regional governments eager to attract air service; and it earns a large share of its profit from ancillary fees, treating the seat itself as something close to a loss leader. Ryanair, then, is profitable &lt;/span&gt;&lt;em&gt;roughly to the degree that it chooses not to compete&lt;/em&gt;&lt;span&gt;.)&lt;/span&gt;&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;a href=&quot;https://substackcdn.com/image/fetch/$s_!3Wkn!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c422452-6151-4ab7-88f6-413940796045_1500x1500.png&quot;&gt;&lt;div&gt;&lt;picture&gt;&lt;img src=&quot;https://substackcdn.com/image/fetch/$s_!3Wkn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c422452-6151-4ab7-88f6-413940796045_1500x1500.png&quot; alt=&quot;&quot; title=&quot;&quot;/&gt;&lt;/picture&gt;&lt;/div&gt;&lt;/a&gt;&lt;/figure&gt;&lt;/div&gt;&lt;h3&gt;Airlines are a permanently bad business&lt;/h3&gt;&lt;p&gt;It’s not at all clear that all this instability has been a bad thing for consumers. Real airfares in the United States have fallen by roughly half since deregulation; and this decline in prices has made air travel a form of mass transit, rather than a privilege of the affluent. To the extent that people have suffered for the empty-core syndrome that afflicts the aviation industry, the brunt has fallen on equity holders, who have been wiped out repeatedly, and on the airlines’ workers, whose contracts are occasionally rewritten under the duress of bankruptcy at the trough of every business cycle.&lt;/p&gt;&lt;p&gt;&lt;span&gt;So it’s not quite clear that airline deregulation was a bad thing: indeed, given the relative dearth of technical innovation in commercial aviation over the last few decades—largely due to &lt;/span&gt;&lt;a href=&quot;https://www.construction-physics.com/p/why-did-supersonic-airliners-fail&quot;&gt;the sad failure of supersonic airliners&lt;/a&gt;&lt;span&gt;—we probably have deregulation to thank for the declining cost of flying.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;But it’s still worth thinking about what the airline industry’s tendency toward bankruptcy tells us, not only about aviation but also about economics. Not all industries are able to attain a profitable competitive equilibrium. We need aviation to exist as an industry, but we’re unable to have it survive as a profitable concern; the natural tendency, then, is toward anticompetitive consolidation of some kind, or—as pioneered by Delta—toward treating airline seats as a loss-leader for something more lucrative.&lt;/p&gt;&lt;p&gt;In the last century we’ve groped toward stability through government-approved cartels; then dismantled them; then approved their tacit reinstatement through private contracts; and now the empty-core syndrome has at last raised the question of direct government ownership of a major airline. We’ve admitted to ourselves, by now, what we’re still not able to say aloud: that there’s no such thing as a competitive equilibrium for the airline industry. The only question that remains is who is going to be left holding the bag.&lt;/p&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;p&gt;This Substack is supported by readers like you.&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;1&lt;div&gt;&lt;p&gt;&lt;span&gt;A calculation of cumulative net profit for the aviation industry was last published, as far as I could find it, by &lt;/span&gt;&lt;a href=&quot;https://www.nber.org/system/files/working_papers/w16744/w16744.pdf&quot;&gt;the economist Severin Borenstein in 2011&lt;/a&gt;&lt;span&gt;; I had my trusty agentic LLM analyze his methods, replicate them (looking at “BTS TranStats Schedule P-1.2”), and carry them forward until Q3 of 2025. It reported that “cumulative domestic airline profit since deregulation is still about -$24.5B in 2009Q4 dollars, or about -$37.4B in March 2026 dollars.”&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;</content:encoded>
</item>
<item>
<title>Security Through Obscurity Is NOT Bad - Mo Beigi</title>
<link>https://mobeigi.com/blog/security/security-through-obscurity-is-not-bad/</link>
<guid isPermaLink="false">zeaZ82aM7L9JpjcDkLZFZRe3ZlCXaBjoHYcs-g==</guid>
<pubDate>Sun, 03 May 2026 18:29:41 +0000</pubDate>
<description>Why security through obscurity still matters: not as your only defence, but as a practical layer that raises attacker cost.</description>
<content:encoded>&lt;h2&gt;Escaping the crowded echo chamber&lt;/h2&gt;&lt;p&gt;I was recently reading a post by a user on a web development forum. This user, whom we’ll call &lt;strong&gt;Mini&lt;/strong&gt;, was asking the community whether it was worth using JavaScript obfuscation for some of the scripts running on their website. Their main goal was to make it harder for data-scraping bots to reverse engineer and replicate the API requests powering the page.&lt;/p&gt;&lt;p&gt;Then I saw it: like a solo LGTM comment on a &lt;code&gt;+4,156/-1,640&lt;/code&gt; line PR, a comment from another user whom we&amp;#39;ll call &lt;strong&gt;Echo&lt;/strong&gt;:&lt;/p&gt;&lt;blockquote&gt;Security through obscurity is bad&lt;/blockquote&gt;&lt;p&gt;What was worse was that this comment had many upvotes, likely from others who had heard the phrase once and simply channelled their inner parrot to repeat it forever.&lt;/p&gt;&lt;p&gt;I decided to reply to Echo&amp;#39;s comment and share my thoughts:&lt;/p&gt;&lt;blockquote&gt;Security through obscurity is &lt;strong&gt;NOT &lt;/strong&gt;bad.&lt;br/&gt;Security &lt;strong&gt;ONLY &lt;/strong&gt;through obscurity is bad (&lt;a href=&quot;https://en.wikipedia.org/wiki/Kerckhoffs%27s_principle&quot;&gt;Kerckhoffs&amp;#39;s Principle&lt;/a&gt;).&lt;br/&gt;Security through obscurity, &lt;strong&gt;as an additional layer&lt;/strong&gt;, is good!&lt;/blockquote&gt;&lt;p&gt;At first, I thought this was what Echo actually meant, but to my surprise, Echo believed that all forms of obscurity were redundant and should not be used at all. They also specifically argued that, in the modern day, AI had made getting around any sort of obscurity trivial.&lt;/p&gt;&lt;p&gt;In this post, I will explain why Echo is wrong and why security through obscurity has its place.&lt;/p&gt;&lt;h2&gt;Don&amp;#39;t show your working out&lt;/h2&gt;&lt;p&gt;Security through obscurity is the practice of reducing exposure by keeping an application&amp;#39;s inner workings or implementation details less visible to attackers. Unlike in mathematics, you do not want to show your working out.&lt;/p&gt;&lt;p&gt;It&amp;#39;s the digital equivalent of hiding a spare key under the doormat instead of leaving it in the lock. In this scenario, a malicious actor might not bother looking under the doormat and might just leave. Congratulations, obscurity just saved you a break-in. They might still find the key, but they may check a nearby potted plant or mailbox first. That costs time, and time is money. To a malicious actor, the longer they spend chasing dead ends, the more likely they are to give up and move on.&lt;/p&gt;&lt;p&gt;Now, of course, proper security here would be not hiding a spare key near the door at all, but instead leaving it with a trusted family member or friend. Relying only on obscurity for security is bad. You should always secure your applications to the degree warranted, then sprinkle some obscurity on top to make the endeavour of attacking you more expensive. This is simply one part of a defence-in-depth strategy.&lt;/p&gt;&lt;img src=&quot;https://mobeigi.com/_next/image/?url=%2Fapi%2Fmedia%2Ffile%2Fsecurity-through-obscurity-door-key-examples.webp&amp;amp;w=3840&amp;amp;q=100&quot; alt=&quot;Four-panel infographic about security through obscurity using a house key analogy: key left in the door, key hidden under a doormat, key hidden under a pot, and finally a burglar shrugging while the caption says proper security should come first.&quot; title=&quot;&quot;/&gt;&lt;h2&gt;Obscurity in the real world&lt;/h2&gt;&lt;p&gt;Of course, some examples might help drive the point home. Here are some specific examples I have personally encountered.&lt;/p&gt;&lt;h3&gt;WordPress database table prefix&lt;/h3&gt;&lt;p&gt;There is a long-standing security recommendation to change WordPress&amp;#39;s default database table prefix to a random one. For example, &lt;code&gt;wp_users&lt;/code&gt; becomes &lt;code&gt;wp_8df7b8_users&lt;/code&gt;. This is often dismissed as &amp;quot;worthless&amp;quot; because it is security through obscurity.&lt;/p&gt;&lt;p&gt;I used to run this very blog on WordPress. Back in 2015, one of the plugins I used had an SQL injection vulnerability that allowed malicious actors to dump the databases of websites using it. These actors had bots scouring the web for vulnerable WordPress targets.&lt;/p&gt;&lt;p&gt;My website was vulnerable. However, I was not impacted by any attacks, and I updated the plugin to a patched version a few days later. While other sites were &amp;quot;nulled&amp;quot; and destroyed, I was spared. I later found a PoC script on GitHub showcasing the exploitation. Using that PoC on my own site failed with a generic error like &lt;code&gt;Table &amp;#39;wordpress.wp_users&amp;#39; doesn&amp;#39;t exist&lt;/code&gt;. Therefore, while I was likely still vulnerable and could have been exploited with different SQL queries, the standard query targeting most users did not impact me.&lt;/p&gt;&lt;p&gt;I was spared thanks to that additional layer of security through obscurity. AI tooling today could keep trying different queries, and it may produce good results for malicious actors, but tokens still cost money. The more time and money the bot spends, the more likely it is to give up and move on. It&amp;#39;s a battle of sustained resistance.&lt;/p&gt;&lt;h3&gt;CSGO&amp;#39;s debug symbol leak&lt;/h3&gt;&lt;p&gt;I ran an Australian and New Zealand-based CSGO community server called Invex Gaming for several years. As a server operator, I tried to distinguish the servers I ran by adding unique custom mods. To do this, I used an amazing platform called SourceMod, which allowed you to write custom plugins and extensions. To write useful mods, you would often have to find and call functions directly in the game&amp;#39;s binaries. CSGO ships with binaries such as &lt;code&gt;engine.dll&lt;/code&gt;, &lt;code&gt;client.dll&lt;/code&gt;, and &lt;code&gt;server.dll&lt;/code&gt;. These binaries contained much of the game logic we wanted to invoke.&lt;/p&gt;&lt;p&gt;For example, I might want one of my mods to programmatically set a player&amp;#39;s health. To do this, my script, running on the CSGO server, had to call the right function in the game. In this case, &lt;code&gt;CBaseEntity::SetHealth&lt;/code&gt; is one such function, and calling it programmatically would allow me to set the health of any entity.&lt;/p&gt;&lt;p&gt;This is what the function signature looks like:&lt;/p&gt;&lt;p&gt;Now, this is a common and well-known function that SourceMod maps for us correctly. But there are many functions in the game that are less common or not well known. How do we find and use these functions in our scripts? We have to find the function in the binary by reverse engineering it with tools like IDA Pro or Ghidra. Once we have identified it, we can build a stable reference to it using signature scanning or an offset in a virtual function table.&lt;/p&gt;&lt;p&gt;Unfortunately, we cannot access Valve&amp;#39;s source code for the game. When looking at reverse-engineered game code, we see a mess of compiled code that takes significant effort to reverse and document properly. Function names, variable names, and data types or structures are not included. This is because it is common practice to strip away debug symbols from game binaries. Debug symbols are metadata generated during compilation that map a program&amp;#39;s machine code back to its original human-readable source code. They are extremely useful for reverse engineering and understanding the code.&lt;/p&gt;&lt;p&gt;One day, Valve accidentally pushed an update for the macOS version of CS:GO that included the full, unstripped Mach-O debug symbols in the &lt;code&gt;.dylib&lt;/code&gt; binaries. This exposed much more of the game&amp;#39;s internals at the time. This led to a rush of server operators using the new information to create new and exciting scripts. Unfortunately, cheat developers also used it to further develop their cheats. A classic double-edged sword.&lt;/p&gt;&lt;p&gt;This is a prime example of Valve valuing the additional layer of security provided by obscurity. Valve has to ship the game in binary form, because the game runs on our machines when we play it. Valve chooses to strip debug symbols from its binaries because doing so is highly effective at reducing the efficiency of cheat developers. Shortly after this release, Valve realised its mistake and re-released the same version with the debug symbols stripped.&lt;/p&gt;&lt;h3&gt;Obfuscated code&lt;/h3&gt;&lt;p&gt;I do my fair share of malware analysis and CTFs every now and again for fun. It is extremely common to run into obfuscated code, which is source code that has been intentionally complicated to make it harder for humans and tools to understand while remaining fully functional. The malware industry is a billion-dollar industry, and nobody relies on obscurity more than malicious actors. The more obfuscated the malicious payload, the less likely security researchers and tools are to understand what is going on.&lt;/p&gt;&lt;p&gt;On the flip side, enterprises like &lt;strong&gt;Google &lt;/strong&gt;also use JavaScript obfuscation to hide sensitive logic in the browser. A great example is &lt;strong&gt;Google reCAPTCHA&lt;/strong&gt;, where the obfuscation is often heavy and sophisticated in order to make it harder for bots to understand the checks being performed and automate solving them. &lt;strong&gt;Netflix &lt;/strong&gt;also uses obfuscation in its browser-side DRM components to help protect the logic that lets your browser play the video without exposing everything needed to easily extract and save a playable copy. &lt;strong&gt;Riot Games&lt;/strong&gt; also uses obfuscation around parts of the communication between its kernel-level anti-cheat system, &lt;strong&gt;Riot Vanguard&lt;/strong&gt;, and its servers to make it harder for cheaters to fake a clean signal while cheats are running.&lt;/p&gt;&lt;p&gt;Now, there was a suggestion that advances in AI have made obfuscation obsolete. I disagree. While AI tools are good at deobfuscating code, it is still often a slow and expensive process. I do believe a strong model will eventually reach a solution, but it will take time and money. Again, the longer and more expensive it is, the more likely people are to give up and move on.&lt;/p&gt;&lt;p&gt;I do not have concrete data to share on this topic, but I do have some anecdotal evidence. I attempted a hard PWN-style CTF challenge last year that I was not able to solve on my own. Using an LLM, Claude Opus 4.5, and giving it all the information, binaries, and local tools needed to solve the challenge, it still failed at first.&lt;/p&gt;&lt;p&gt;It was not until 4.5 hours of non-stop token burning and many trial-and-error iterations later that the LLM was able to find a solution. This endeavour used 61 million input tokens and 11 million output tokens, or roughly $300 USD. While I was willing to spend that much to gauge the model&amp;#39;s ability to solve the challenge, it is important to keep in mind that we already knew a solution existed because this was a CTF challenge with an intended solution. Would malicious actors be willing to spend that much per attempt across a large enterprise attack surface, where results are far from guaranteed? How long are they willing to iterate on one specific angle? That uncertainty is exactly where obscurity still has value.&lt;/p&gt;&lt;h2&gt;Spread the word&lt;/h2&gt;&lt;p&gt;It should be clear by now that security through obscurity still has its place as an additional security layer in the modern world, even with AI-assisted tooling.&lt;/p&gt;&lt;p&gt;So I no longer want to hear the phrase &amp;quot;security through obscurity is bad&amp;quot;.&lt;/p&gt;&lt;p&gt;From now on, let&amp;#39;s spread these two statements instead:&lt;/p&gt;&lt;blockquote&gt;Security ONLY through obscurity is bad&lt;/blockquote&gt;&lt;blockquote&gt;Security through obscurity, as an additional layer, is good!&lt;/blockquote&gt;</content:encoded>
</item>
<item>
<title>The text mode lie: why modern TUIs are a nightmare for accessibility — The Inclusive Lens</title>
<link>https://xogium.me/the-text-mode-lie-why-modern-tuis-are-a-nightmare-for-accessibility</link>
<enclosure type="image/jpeg" length="0" url="https://xogium.me/img/avatars/t.png"></enclosure>
<guid isPermaLink="false">Qx8geW8cJK9aLdD1FAdDR3kXFtaQ39PsFTXlHw==</guid>
<pubDate>Sun, 03 May 2026 18:29:34 +0000</pubDate>
<description>The mythical, it&#39;s text, so it&#39;s accessible There is a persistent misconception among sighted developers: if an application runs in a te...</description>
<content:encoded>&lt;h3&gt;The mythical, it&amp;#39;s text, so it&amp;#39;s accessible&lt;/h3&gt;&lt;p&gt;There is a persistent misconception among sighted developers: if an application runs in a terminal, it is inherently accessible. The logic assumes that because there are no graphics, no complex DOM, and no WebGL canvases, the content is just raw ASCII text that a screen reader can easily parse.&lt;/p&gt;&lt;p&gt;The reality is different. Most modern Text User Interfaces (TUIs) are often more hostile to accessibility than poorly coded graphical interfaces. The very tools designed to improve the Developer Experience (DX) in the terminal—frameworks like Ink (JS/React), Bubble Tea (Go), or tcell—are actively destroying the experience for blind users.&lt;/p&gt;&lt;h3&gt;The Architectural Flaw: Stream vs. Grid&lt;/h3&gt;&lt;p&gt;To understand the failure, we must distinguish between two distinct concepts often conflated under “terminal apps”: the CLI (Command Line Interface) and the TUI.&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;p&gt;The CLI (The Stream): This operates on a standard input/output model (&lt;code&gt;stdin&lt;/code&gt;/&lt;code&gt;stdout&lt;/code&gt;). You type a command, the system appends the result below, and the cursor moves down. This is linear and chronological. For a screen reader, specifically kernel-level readers like Speakup, this is ideal.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;The TUI (The Grid): This treats the terminal window not as a stream of text, but as a 2D grid of pixels, where every character cell is a pixel. It abandons the temporal flow for a spatial layout.&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;h3&gt;Case Study: The &lt;code&gt;gemini-cli&lt;/code&gt; Madness&lt;/h3&gt;&lt;p&gt;Let&amp;#39;s look at a concrete example: &lt;code&gt;gemini-cli&lt;/code&gt;, a tool written in Node.js using the Ink framework. On the surface, it looks like a simple chat interface. But underneath, Ink is trying to reconcile a React component tree into a terminal grid.&lt;/p&gt;&lt;p&gt;When you use this tool with Speakup (Linux) or NVDA (Windows), the application doesn&amp;#39;t just fail; it actively spams you.&lt;/p&gt;&lt;p&gt;Because the framework treats the screen as a reactive canvas, every update triggers a redraw. When the AI is “thinking,” the tool updates a timer or a spinner. To do this, it moves the hardware cursor to the timer location, writes the new time, and moves it back.&lt;/p&gt;&lt;p&gt;For a sighted user, this happens instantly. For a screen reader user, this is what you hear:
&lt;em&gt;“Responding... Time elapsed 1s... Responding... Time elapsed 2s... [Fragment of chat history]... Responding...”&lt;/em&gt;&lt;/p&gt;&lt;p&gt;It drives the screen reader mad. The cursor is teleporting all over the screen to update status indicators, spinners, and history. Speakup tries to read whatever is under the cursor at that exact millisecond. You end up hearing random bits of conversation mixed with timer updates, making it impossible to focus on what you are actually typing.&lt;/p&gt;&lt;p&gt;Worse, lets pretend that you&amp;#39;ve somehow managed well with speakup so far, but that you want to do some work with nvda. Maybe paste an error you&amp;#39;re getting on windows. So you open your terminal, ssh into your linux box, attach to your screen session and paste your text.&lt;/p&gt;&lt;p&gt;The result is an immediate crash of the screen reader (NVDA) or massive system instability.
Why? Every time you type a character or paste text, the application triggers a state change. The framework decides it needs to re-render the interface. Because the conversation history is part of that state, the application attempts to redraw or re-calculate the layout for thousands of lines of text instantly. The more messages you have in a conversation, the more this will happen. And no, you can&amp;#39;t just avoid this by using insert+5, the key combo supposed to avoid announcing dynamic change of content.&lt;/p&gt;&lt;h4&gt;The Lag Loop&lt;/h4&gt;&lt;p&gt;Furthermore, frameworks like Ink running on single-threaded environments (like Node.js) suffer from massive performance degradation when the history grows. If you paste a large block of text, the system has to calculate the diff for thousands of lines.&lt;/p&gt;&lt;p&gt;This causes input lag. You press a key, and you wait. You can wait up to &lt;strong&gt;10 seconds&lt;/strong&gt; for a single character to echo back. The system is too busy calculating how to redraw the screen to actually process your input.&lt;/p&gt;&lt;h3&gt;Why The “Old Guard” Works (&lt;code&gt;nano&lt;/code&gt;, &lt;code&gt;vim&lt;/code&gt;, &lt;code&gt;menuconfig&lt;/code&gt;)&lt;/h3&gt;&lt;p&gt;Sighted developers often ask: &lt;em&gt;“If TUIs are bad, why do you use nano, vim, or menuconfig?”&lt;/em&gt;&lt;/p&gt;&lt;p&gt;The answer is not that these tools handle the cursor perfectly by default. The answer is that they allow you to &lt;strong&gt;hide the cursor entirely&lt;/strong&gt;.&lt;/p&gt;&lt;h4&gt;1. Hiding the Cursor (&lt;code&gt;nano&lt;/code&gt;, &lt;code&gt;vim&lt;/code&gt;)&lt;/h4&gt;&lt;p&gt;In tools like &lt;code&gt;nano&lt;/code&gt; or &lt;code&gt;vim&lt;/code&gt;, usability depends on turning off features that track cursor position. If you run &lt;code&gt;nano&lt;/code&gt; with options that show the cursor position (like &lt;code&gt;--constantshow&lt;/code&gt;), or if you use &lt;code&gt;vim&lt;/code&gt; without specific configuration, the experience is broken.&lt;/p&gt;&lt;p&gt;When the cursor is visible and tracking is active, Speakup prioritizes the cursor&amp;#39;s location update over the character echo. Instead of hearing the letter “a” when you type it, you hear “Column 2”. You type “b”, and you hear “Column 3”.&lt;/p&gt;&lt;p&gt;These older tools succeed because they allow you to disable this noise. You can configure them to suppress the visual cursor or status bar updates, forcing the screen reader to rely on the character input stream rather than the noisy coordinate updates. Modern frameworks rarely offer a “no-cursor” or “headless” mode; they assume the visual cursor is essential.&lt;/p&gt;&lt;h4&gt;2. Single Column Focus (&lt;code&gt;menuconfig&lt;/code&gt;)&lt;/h4&gt;&lt;p&gt;Tools like the Linux kernel&amp;#39;s &lt;code&gt;menuconfig&lt;/code&gt; work because they enforce a strict, single-column focus. Even though there are borders and titles, the active area is a vertical list. The cursor stays pinned to that list. It doesn&amp;#39;t jump to the bottom right to update a clock, then to the top left to update a title. The spatial complexity is kept low enough that the screen reader never gets “lost.”&lt;/p&gt;&lt;h4&gt;3. The Lost Art of Scrolling Regions (&lt;code&gt;Irssi&lt;/code&gt;)&lt;/h4&gt;&lt;p&gt;Irssi is the gold standard for accessible chat, but not because of luck. Irssi was built over 20 years with a custom rendering engine that utilizes VT100 Scrolling Regions.&lt;/p&gt;&lt;p&gt;When a new message arrives in Irssi:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;p&gt;It tells the terminal driver: &lt;em&gt;“Define a scrolling region from line 1 to 23.”&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;It sends a command: &lt;em&gt;“Scroll up.”&lt;/em&gt; The terminal moves the bits up.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;It draws the new text at the bottom of that region.&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;Crucially, it handles this in a way that minimizes interference with the input line. It relies on the terminal&amp;#39;s hardware capabilities rather than rewriting every character on the screen manually. Modern frameworks ignore these hardware features in favor of “diffing” the screen state and rewriting characters, which is computationally heavier and hostile to accessibility.&lt;/p&gt;&lt;h3&gt;The “Stale Bot” excuse: A Case Study in Neglect&lt;/h3&gt;&lt;p&gt;Google and the maintainers of gemini-cli pretend to care about accessibility. “Pretend” is the operative word here.
If you look at the repository, critical accessibility regressions like Issue #3435 and Issue #11305 have been left to rot. There is no discussion, no roadmap, and no fix.
Even worse is the fate of Issue #1553, which was supposed to track these accessibility failures. It didn&amp;#39;t get solved; it got silenced. It was closed automatically by a bot with this generic dismissal:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;Hello! As part of our effort to keep our backlog manageable and focus on the most active issues, we are tidying up older reports. It looks like this &amp;gt; issue hasn&amp;#39;t been active for a while, so we are closing it for now.”&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;This is unacceptable. Closing an accessibility report because the maintainers haven&amp;#39;t touched it in months is not “tidying up”; it is hiding evidence. It effectively says that if a bug is ignored long enough, it ceases to exist. It boosts the project&amp;#39;s “Closed Issues” metric while leaving the actual software unusable for blind users.&lt;/p&gt;&lt;h3&gt;Conclusion&lt;/h3&gt;&lt;p&gt;If you are building for the terminal and care about accessibility, stop using declarative UI frameworks that treat the terminal like a canvas.&lt;/p&gt;&lt;p&gt;The “modern” TUI stack has optimized for the developer&amp;#39;s ability to write React-like code at the expense of the machine&amp;#39;s ability to render text efficiently.&lt;/p&gt;&lt;p&gt;If you cannot guarantee that your application allows the user to hide the cursor, or if you rely on aggressive redrawing to show spinners and timers, you are building an inaccessible tool.&lt;/p&gt;&lt;p&gt;For the blind user, a dumb, linear CLI stream is infinitely superior to a “smart” TUI that lags, spams, and scatters the cursor across the screen.&lt;/p&gt;</content:encoded>
</item>
<item>
<title>航札（一） | JustGoIdea</title>
<link>https://justgoidea.com/hang-zha-yi/</link>
<enclosure type="image/jpeg" length="0" url="https://bear-images.sfo2.cdn.digitaloceanspaces.com/justgoidea/hang-zha-yi.webp"></enclosure>
<guid isPermaLink="false">PCsVpYjFUY8l__GcgsiPkp0MMFqHv8bL7d-v7w==</guid>
<pubDate>Sat, 02 May 2026 20:05:36 +0000</pubDate>
<description>一组关于古籍掌故、文字训诂、文学悼亡、民俗信仰与世事观察的札记。</description>
<content:encoded>&lt;h1&gt;航札（一）&lt;/h1&gt;&lt;p&gt;
            &lt;i&gt;
                &lt;time&gt;
    02 May, 2026
&lt;/time&gt;
            &lt;/i&gt;
        &lt;/p&gt;&lt;blockquote&gt;
&lt;p&gt;按：读书遣日，偶有所感，辄随手札记。不成系统，聊备覆瓿。今略加铨次，辑而名之曰「航札」。&lt;/p&gt;
&lt;/blockquote&gt;&lt;h2&gt;笔记之书&lt;/h2&gt;&lt;p&gt;刘义庆《世说新语》、段成式《酉阳杂俎》、苏轼《东坡志林》、洪迈《容斋随笔》、张岱《夜航船》，皆笔记集结而成，读来不费力，却常得稀奇古怪之知。近现代此类佳作不多，鍾叔河《念楼学短》堪称翘楚。笔记之妙，不在体系森严，而在随手拈来，眼光到处，皆可成文。&lt;/p&gt;&lt;h2&gt;喷嚏&lt;/h2&gt;&lt;p&gt;今俗谓打喷嚏乃有人念我，或云「一想二骂三感冒」，本以为近代俚语耳。细读《容斋》，方知其来甚古。《诗经·邶风·终风》有「寤言不寐，愿言则嚏」，郑笺谓女子思我，我则嚏。洪迈因而叹曰，今人喷嚏便云「有人说我」，实古之遗语也。民俗之久远，往往藏于最琐碎处。&lt;/p&gt;&lt;h2&gt;蜜人&lt;/h2&gt;&lt;p&gt;《南村辍耕录》记「蜜人」事，云回回国有老人自愿舍身济众，不复进食，惟啖蜂蜜，久之便溺皆蜜。死后以石棺盛蜜浸之，封存百年，启封取用，可疗损折肢体。俗呼蜜人，番言即木乃伊也。读之怪诞，然古人所谓灵丹妙药，常在生死、身体、信仰之间游移。人之求愈也切，遂想象尸身亦可为药。&lt;/p&gt;&lt;h2&gt;放火&lt;/h2&gt;&lt;p&gt;「只许州官放火，不许百姓点灯」一语，出放翁《老学庵笔记》。田登作郡守，讳其名，州人不得言「灯」字，皆改称「火」。上元放灯，吏人出榜曰：「本州依例放火三日。」讳名本权力之小癖，一经传播，遂成千古讽刺。语言为权力所扭曲时，笑话往往最先看出破绽。&lt;/p&gt;&lt;h2&gt;人心道心&lt;/h2&gt;&lt;p&gt;大学士张英，有家训笔记《聪训斋语》传世，开卷第一句便是「人心惟危，道心惟微」。&lt;/p&gt;&lt;p&gt;此八字相传出《尚书·大禹谟》，乃舜授禹之十六字心传前半，后半为「惟精惟一，允执厥中」。然经清人阎若璩考据，《大禹谟》实为伪作。《荀子·解蔽》引「道经」亦有此语，足见其源远流长，不必系于一书。&lt;/p&gt;&lt;p&gt;张英以此训子女，释之甚精：「危者，嗜欲之心，如堤之束水，其溃甚易，一溃则不可复收也。微者，理义之心，如帷之映镫，若隐若现，见之难而晦之易也。」末云：「人心至灵至动，不可过劳，亦不可过逸，惟读书可以养之。」此语平正切实，可为座右。&lt;/p&gt;&lt;h2&gt;川上&lt;/h2&gt;&lt;p&gt;《论语》中最有余味者，或为「子在川上曰：逝者如斯夫，不舍昼夜」一句。后世写流水、写时光、写兴亡，大抵皆可追溯于此。杜甫「无边落木萧萧下，不尽长江滚滚来」，东坡「大江东去，浪淘尽，千古风流人物」，杨慎「滚滚长江东逝水，浪花淘尽英雄」，其源头皆在川上一叹。夫子此句好在不加议论，只将天地流行指与人看。&lt;/p&gt;&lt;h2&gt;繁简&lt;/h2&gt;&lt;p&gt;繁简之争，不可只以便利衡之。按《说文》，今之简体「礼」反是古文，「处」「与」亦古已有省体。然「葉」简作「叶」，则失其音义；「鐘」「鍾」并归「钟」，亦多生误解。繁简之间，有造型，有语源，有历史层累。文字非死物也，乃文明留下之纹理。若只以书写之快慢论之，便把文化看小了。&lt;/p&gt;&lt;h2&gt;造化鍾神秀&lt;/h2&gt;&lt;p&gt;杜甫《望岳》「造化钟神秀，阴阳割昏晓」，今人见「钟」字，每解作钟情，谓造化偏爱泰山。若还其本字，作「造化鍾神秀」，则义明矣。「鍾」者，聚也。大自然将神奇秀丽汇聚于斯，非钟情于斯也。钱锺书先生不愿被写作钱钟书，其意正在此。一字之差，足使诗意改道。&lt;/p&gt;&lt;h2&gt;悼亡&lt;/h2&gt;&lt;p&gt;自《诗经》以降，悼亡之传统深植文脉。《唐风·葛生》开其先声。&lt;/p&gt;&lt;p&gt;年少时表姐授我诗词，言其独爱东坡「小轩窗，正梳妆，相顾无言，惟有泪千行」之深情。然我更为贺铸「空床卧听南窗雨，谁复挑灯夜补衣」所动。常言生活中总见真着，人之大悲不在生离死别之际，实在晨昏琐碎之中。&lt;/p&gt;&lt;p&gt;唐宋以来，元稹以「惟将终夜长开眼，报答平生未展眉」立誓，梅尧臣借「窗冷孤萤入，宵长一雁过」造境，纳兰「赌书消得泼茶香，当时只道是寻常」化典无痕，俱为悼亡之佳构。乐天「手携稚子夜归院，月冷空房不见人」，虽稍显平实，亦自有其沉痛。&lt;/p&gt;&lt;p&gt;至于义山「何当共剪西窗烛，却话巴山夜雨时」，是否确属悼亡，历来尚有争议。若果为王氏殁后追思之作，则当推千古悼亡绝唱之首——以未来虚拟之欢聚，写当下刻骨之永诀，时空折叠而成之艺术张力，实非常人所能及也。&lt;/p&gt;&lt;h2&gt;西方哀歌&lt;/h2&gt;&lt;p&gt;西方虽无「悼亡」之固定名目，哀歌传统亦深且远。&lt;/p&gt;&lt;p&gt;俄耳甫斯追寻欧律狄刻于冥府，已见失爱之殇痛。及至浪漫派，个体情愫勃发，悼亡遂为诗中重要一脉。雪莱作《阿多尼斯》，丁尼生为挚友写《悼念》，磅礴之思与细腻之情兼具，探讨生死，寻求慰藉，开掘至深。&lt;/p&gt;&lt;p&gt;后世如哈代忆亡妻艾玛，字里行间尽是日常琐碎之回放。刘易斯《卿卿如晤》，以至诚笔触记丧偶后之悲恸与信仰挣扎，读来令人心折。&lt;/p&gt;&lt;p&gt;与东方之婉约含蓄不同，西方悼亡往往更为坦率直切，兼融哲学与宗教之思辨。然无论中西古今，因爱别离之锥心、对逝者之绵长思念，皆为人类所共通，于墨痕诗行中觅得永恒寄托。&lt;/p&gt;&lt;h2&gt;隽永&lt;/h2&gt;&lt;p&gt;何谓文字隽永？庾信《枯树赋》末云：「昔年种柳，依依汉南；今看摇落，凄怆江潭。树犹如此，人何以堪！」二十四字，千载之下犹觉苍凉。柳河东《江雪》亦然：「千山鸟飞绝，万径人踪灭。孤舟蓑笠翁，独钓寒江雪。」东坡叹其「殆天所赋，不可及也」，诚非虚语。隽永者，不必多言，而余意自生。&lt;/p&gt;&lt;h2&gt;一语成谶&lt;/h2&gt;&lt;p&gt;晋灭吴后，武帝司马炎谓孙皓曰：「设此座待卿久矣。」孙皓从容反讥：「臣于南方，亦设此座以待陛下。」一时以为笑谈。孰料后五胡乱华，晋室果南渡建业，改称建康，竟应其语。&lt;/p&gt;&lt;p&gt;寇老西少年时作诗，有「到海只十里，过山应万重」之句。后果贬死雷州，去乡万里，一语成谶。&lt;/p&gt;&lt;p&gt;东坡再过渑池，赠弟诗云：「人生到处知何似，应似飞鸿踏雪泥。」此句飘逸洒脱，却暗合其后半生宦海沉浮、颠沛流离之际遇。好句有时不只是好句，亦是命运之预言。&lt;/p&gt;&lt;h2&gt;屈原食谱&lt;/h2&gt;&lt;p&gt;论中国文人美食家，世人常举东坡、汪曾祺，鲜有人想到屈原。《招魂》《大招》虽为祭祀之辞，若当食谱读之，亦极丰盛。谷物、肥牛、鳖羔、鸿凫、甜点、冻饮、琼浆，陈列满前。楚辞之华美，不只在香草美人，亦在饮食声色。魂兮归来，先以口腹招之，此亦人情之至也。&lt;/p&gt;&lt;h2&gt;有香气的咖啡&lt;/h2&gt;&lt;p&gt;葡国有所谓 café com cheirinho，即加了酒的咖啡。cheirinho 者，「香气」之谓。里斯本人称 bica com cheirinho，马德拉与亚速尔群岛则称 café com música——「带音乐的咖啡」，名目妙不可言。所加之酒，或为 aguardente，或为 bagaço，或为 medronho。咖啡得酒，既暖身，又添兴，民间更谓可疗感冒喉痛。口腹之物，最能保存一方性情。&lt;/p&gt;&lt;h2&gt;七月半&lt;/h2&gt;&lt;p&gt;农历七月半，古有尝新祭祖之礼。《礼记·月令》云：「是月也，农乃登谷，天子尝新，先荐寝庙。」道家以此日为地官赦罪之期，佛家称盂兰盆节，又为僧团自恣之日。三月结夏安居后，僧众解夏忏悔，故又名佛欢喜日。虽已入佛门，亦须循规蹈矩，方得大自在。此语甚好。&lt;/p&gt;&lt;h2&gt;月食&lt;/h2&gt;&lt;p&gt;乙巳年初秋，中元甫过，适逢月全食。古人视血月为兵凶饥馑、天下巨变之兆，非中国独然。古希腊、古罗马乃至葡萄牙民俗中，皆有类似之说。葡人有所谓 mal de lua，亦有驱赶食月之兽的故事。中国谓天狗，葡国换作狮子，名目不同而恐惧相通。&lt;/p&gt;&lt;p&gt;不同文明隔绝万里，却同以天象之昏暗为不祥。或许所相似者，非迷信本身，而是人类面对黑暗与遮蔽时心中原型之恐惧。天象本无意，人心自有象。&lt;/p&gt;&lt;h2&gt;福尔摩沙&lt;/h2&gt;&lt;p&gt;欧洲拉丁语系诸国中，至今仍有人称台湾为 Formosa，或 Ilha Formosa。传十六世纪葡萄牙航海者初见台湾，叹曰：「Ilha formosa！」美丽之岛也。中文译作福尔摩沙，音义皆有余韵。地名犹如一枚贝壳，历史退潮之后，仍留海声。&lt;/p&gt;&lt;h2&gt;朋友之义&lt;/h2&gt;&lt;p&gt;《容斋》论朋友之义，历举《诗》《中庸》《孟子》《论语》诸书，末叹云：「本朝百年间，此风尚存。呜呼，今亡矣！」读此可知，南宋时朋友之道已为世风所伤。&lt;/p&gt;&lt;p&gt;又忆及反右之时，冯亦代常往章伯钧、费孝通诸人家中走动，貌为友朋，实则卧底。朋友若沦为耳目，义从何来？古人一叹尚止于世风浇薄，后世之祸，则是有人刻意以友谊为凶器。&lt;/p&gt;&lt;h2&gt;一念&lt;/h2&gt;&lt;p&gt;一九五〇年，张爱玲着旗袍赴沪上文代会。满座皆列宁装，独她一人异服。此一瞥之间，已窥全豹。去意渐生，两年后南渡香江，复远赴洛杉矶，终老于斯。&lt;/p&gt;&lt;p&gt;老舍彼时在美，写作售稿，生计无虞，亦有赴英执教之邀。然周公故交赵清阁殷殷劝归，竟从之。十余年后，太平湖畔，独坐半晌，终蹈水而殁。那日亦有相识在旁，无一人往劝。&lt;/p&gt;&lt;p&gt;人生抉择往往在一念之间。张爱玲之一念，老舍之一念，一去一留，天壤之别。世事之残酷，不在刀兵相加，而在归来时已无路可退。&lt;/p&gt;&lt;h2&gt;敌在本能寺&lt;/h2&gt;&lt;p&gt;日本战国之末，织田信长几近一统天下，威势赫赫。天正十年，驻跸京都本能寺，仅率少从。麾下大将明智光秀素为信长所倚重，手握重兵。孰料奉命出征途中，忽调矛头，率众夜袭。信长于烈焰中殒命，史称「本能寺之变」。&lt;/p&gt;&lt;p&gt;防外敌易，防家贼难。危亡之兆，常起于萧墙之内。故后人以「敌在本能寺」喻之。权力之巅与信任之危，从来比邻而居。古今皆然，今时今刻，恰如彼时彼刻。&lt;/p&gt;&lt;h2&gt;笔记与著述&lt;/h2&gt;&lt;p&gt;古人论著述，有两途焉：一曰体系，一曰札记。体系者如经学注疏，层层架构，丝丝入扣；札记者如随笔杂录，随感而发，不拘成法。今人治学问亦然，或建宏大之系统，或积零碎之心得，二者不可偏废。&lt;/p&gt;&lt;p&gt;然札记之难，世人多不察。以为随手可就，其实不然。信息被捕获，不过是起点；若不能化入自己的语言，接入旧有经验，生出新的判断，便只是搬运之功。读书而不思，犹饮食而不化，终为肠胃之累。&lt;/p&gt;&lt;p&gt;写作亦同理。思维本非线性，而文字必须线性呈现，其间之转化即是功夫所在。真正的写作，是在发散与收束之间往返：先见联系，再探本质；写而回看，重组再写。手慢一点，有时正是思想沉下去的机会。昌黎所谓「行成于思」，不外如是。&lt;/p&gt;&lt;h2&gt;世事不宜深考&lt;/h2&gt;&lt;p&gt;大国之间的折冲樽俎，公众解读往往两极：或曰「赢麻」，或曰「丧尽」，情绪之张力远大于理性之审思。此中固有当轴者对「从胜利走向胜利」之叙事渴求，亦有媒体对耸动标题之本能追逐。&lt;/p&gt;&lt;p&gt;然而棋局再宏大，终是由人来下。那些于夹缝中艰难求存之个体——卑微、渺小、羸弱——其挣扎与叹息，谁人倾听？「莫管他人瓦上霜」之冷漠，依旧是底层真实的处境。&lt;/p&gt;&lt;p&gt;殊不知，当前种种精巧之运筹与刻意营造之声浪，皆是掷出之回旋镖。看似飞向远方，终将循迹而归。&lt;/p&gt;&lt;h2&gt;妙绝千古&lt;/h2&gt;&lt;p&gt;诗词曲中，私以为堪称「妙绝千古」者，略举数联：&lt;/p&gt;&lt;p&gt;鸡声茅店月，人迹板桥霜。——温庭筠《商山早行》&lt;/p&gt;&lt;p&gt;海日生残夜，江春入旧年。——王湾《次北固山下》&lt;/p&gt;&lt;p&gt;无可奈何花落去，似曾相识燕归来。——晏殊《浣溪沙》&lt;/p&gt;&lt;p&gt;一川烟草，满城风絮，梅子黄时雨。——贺铸《青玉案》&lt;/p&gt;&lt;p&gt;枯藤老树昏鸦，小桥流水人家，古道西风瘦马。——马致远《天净沙·秋思》&lt;/p&gt;&lt;p&gt;兴，百姓苦；亡，百姓苦。——张养浩《山坡羊·潼关怀古》&lt;/p&gt;&lt;p&gt;此数联或以意象胜，或以气势胜，或以理趣胜，皆能以极简之笔触，拓极深之境界。妙处难与君说，惟读之再三，自能会心。&lt;/p&gt;&lt;h2&gt;七二〇&lt;/h2&gt;&lt;p&gt;一九六七年七月二十日前后，文革浩劫之际，江城发生「七二〇事件」。彼时毛泽东宿东湖宾馆，几为军中异己所拘系，险遭软禁之厄。周恩来星夜驰赴，方解危局。此乃毛氏问鼎后最惊心动魄之一幕，与一九七一年沪杭「龙潭虎穴」之险，实不相上下。弄权者自以为驾驭天下，殊不知反噬之力亦从权力内部滋生。&lt;/p&gt;&lt;h2&gt;天不惜才&lt;/h2&gt;&lt;p&gt;读王鼎钧《昨天的云》，提及许地山，忆起幼时所学《落花生》，余韵悠长。许氏卒年仅四十七，实是天不惜才。陈寅恪撰挽联云：「人事极烦劳，高斋延客，萧寺属文，心力暗殚浑未觉；离乱相依托，娇女寄庑，病妻求药，年时回忆倍伤神。」读之怆然。&lt;/p&gt;&lt;p&gt;又读王勃事迹，再叹天不佑英才。魂断沧海，年方二十八。传说其为文之前，先蒙头酣睡，忽然起身，笔走龙蛇，一气呵成，不复修改而华彩锦绣。或谓此等天授之才，本不宜久留人间。然终究是惋惜多于豁达。&lt;/p&gt;&lt;h2&gt;星经&lt;/h2&gt;&lt;p&gt;《史氏星经》为中国现存最古之星表。近读材料，有学者考其年代或可追溯至公元前四世纪，较旧说更早约二百五十年。若此说成立，则或为世界已知最古之星图。&lt;/p&gt;&lt;p&gt;古人仰观天象，不独为占验吉凶，亦是于无边黑暗中替人间寻秩序。星辰无言，而秩序感本身，已足以安顿人心。&lt;/p&gt;&lt;h2&gt;身与心&lt;/h2&gt;&lt;p&gt;孙隆基《中国文化的深层解构》有一段精妙之论，大意谓中国人非一个人便能完成自身，须经由「二人结构」——一人以心关照另一人之身，另一人亦如此回报，双方交心而安身，安身而安心。&lt;/p&gt;&lt;p&gt;故中国人之问候，必曰「你身体可好」「别来无恙」，所问皆身；而对方答以「你有心」「谢谢关心」，所谢皆心。一问一答之间，身心之学尽在其中。此与西方先确立独立个体再建立关系之路径，恰好相反。&lt;/p&gt;&lt;h2&gt;凋零&lt;/h2&gt;&lt;p&gt;港圈「黄金配角」一位又一位凋零，那个时代的风光，已如潮水退去。&lt;/p&gt;&lt;p&gt;戊戌年间，曾陪香港某制片人在京城看展，他说：「香港哪里还有以前的气象。」彼时不甚理解，甚而觉其言论偏激。后来目睹反送中与种种后续，方才若有所悟。&lt;/p&gt;&lt;p&gt;时代之一粒尘，落在寻常人头上，便是一座山。经济、政治、文化、社会，走到这一步，似乎皆属自然。然而见过维港之绚烂，听过街头之悲鸣，总有些不甘。再想，又有什么好不甘的呢？&lt;/p&gt;&lt;p&gt;一切皆无常。人终将老去、死去。那些绚烂过的、悲鸣过的，都曾真实存在。如此便够了。&lt;/p&gt;&lt;h2&gt;文明与族群&lt;/h2&gt;&lt;p&gt;今人有谓刘邦苗族、杨坚鲜卑、李唐沙陀、朱元璋回族云云，遂断言历代大一统王朝皆少数民族政权。此说貌似新颖，实则犯了根本性的概念错置。以现代民族国家之分类框架，强加于古代文明秩序之上。岂不可笑？&lt;/p&gt;&lt;p&gt;先秦时无现代意义之「民族」观念。所谓诸夏、戎、狄、蛮、夷，本是政治文化之标签，非血统之分类。一部族入华夏礼制秩序便是「夏人」，背离此秩序则谓之「夷狄」。《春秋》之义甚明：诸夏用夷礼则夷之，夷狄用夏礼则夏之。族属不由血统决，而由行为、文化、制度界定。此种认知框架，远比后世西方民族国家之血统论更为开放。&lt;/p&gt;&lt;p&gt;从秦至隋，「汉人」主要指一种政治文化认同。魏晋南北朝时，汉与鲜卑、羯、氐、羌于北方长期混居通婚，制度语言服饰互相塑形。孝文帝改革后，「汉」渐从地域性之文化认同，演为更广泛之文明共同体。「汉族」一词首见于唐代官方文献，以指称长城以内之居民，与「胡」相对；确立为法定民族身份，则已是清末民初之事。&lt;/p&gt;&lt;p&gt;故「汉族」本即复合型民族，是文化认同之概念，可视为「中华民族」观念之早期形态。入此秩序、认同此秩序者，皆为其成员；离之者，即为「他者」。中华文明之连续性，正建立于「文明高于族群」这一认知基础之上。&lt;/p&gt;&lt;p&gt;吴国光先生所提「海华族」之概念，亦可视为此框架之现代延伸。生活在中国以外之华人，无论国籍如何变化，只要认同华夏文明之价值与传统，便仍属这一文明共同体。&lt;/p&gt;&lt;h2&gt;礼与正统&lt;/h2&gt;&lt;p&gt;一个政治实体，若须靠精心炮制幻觉、对内进行认知作战，以维系其统治，则此实体之气数已可见端倪矣。&lt;/p&gt;&lt;p&gt;中国数千年之传承，核心在一个「礼」字。礼者，仪式也，秩序也，典章也，教养也。正统之最大合法性，即在于维护、遵循、发展此「礼」。守礼则正统不待自证，外人无可置喙。&lt;/p&gt;&lt;p&gt;犹记杨老虎于阿拉斯加对美方之言，何以豪气干云而不显突兀？何以连意识形态对立之媒体亦予正面报道？盖因彼时彼刻，杨氏占着一个「礼」字。主人失礼在先，客人据理以争，天下公论自在。美方纵有不甘，亦只能受之。礼之为用，不在声高，而在理直。&lt;/p&gt;&lt;h2&gt;面包与理想&lt;/h2&gt;&lt;p&gt;金庸写道：有人的地方就有恩怨，有恩怨就有江湖，人就是江湖。&lt;/p&gt;&lt;p&gt;理想是需要的，面包也是需要的。然而二者孰先孰后？理想之代价，极大的可能正是面包。若为理想而不顾面包，则中道崩殂近乎必然。更堪讽刺者，通往理想之路与获取面包之路往往背道而驰——为理想则失面包，求面包则弃理想。&lt;/p&gt;&lt;p&gt;所谓伟人，最要紧处在于能自洽地暂弃理想以得面包，复以面包哺育理想。此等腾挪功夫，常人万难为之。&lt;/p&gt;&lt;p&gt;然则于理想与面包之间，终须以最基本之人性为出发点。再宏大之愿景，再精巧之路径，背后皆是人，皆是恩怨，皆是江湖。伟人写下宏大的历史，常人活出具体的人生。江湖之中，能守住对人性的基本尊重，已属不易。&lt;/p&gt;&lt;h2&gt;小民尊严&lt;/h2&gt;&lt;p&gt;「没有大国崛起，哪有小民尊严」一语，流传甚广，细究之则谬甚。&lt;/p&gt;&lt;p&gt;国之强盛与民之尊严，非因果之关系，亦非充分或必要之条件。国家机器之威势，衡量的是其在国际体系中之位置；个体之尊严，系乎法律与社会结构中权利之实际保障。二者不同质，且往往此消彼长。&lt;/p&gt;&lt;p&gt;更堪玩味者，「小民」二字本身即预设了等级秩序，仿佛个体天然渺小，须依附宏大叙事方能获得价值。此正是以集体之名消解个体主体性之话术。&lt;/p&gt;&lt;p&gt;人之尊严，不待外在证成。法治之保障、权力之制衡、言论思想之自由、财产之不可侵犯……凡此种种，皆与「大国崛起」无涉，反常与之相悖。《孟子》所谓「民为贵，社稷次之，君为轻」，先贤早已洞见此理。奈何后世偏要把次序颠倒过来。&lt;/p&gt;&lt;h2&gt;载道之辨&lt;/h2&gt;&lt;p&gt;「文以载道」四字，世人多以为是道德教化之本旨。然细思之，其中恐怕更多的是话语权之垄断。&lt;/p&gt;&lt;p&gt;「克己复礼为仁」、「安贫乐道」、「存天理，灭人欲」，此类说教之本质，在于进行欲望之阶级分配：大众不宜执着个人情感，个人才华当用于颂扬圣德，「风花雪月」乃有资格享受者之专属。所要消灭的并非欲望本身，而是要把欲望之满足变成特权之标记。&lt;/p&gt;&lt;p&gt;古之儒者如此，后之当轴者亦如此。道统之名义虽殊，垄断之逻辑则一。&lt;/p&gt;&lt;h2&gt;译经双杰&lt;/h2&gt;&lt;p&gt;罗什三藏创造性地运用汉字组合表达抽象概念，以意译之法，将佛教辩证思维化为中文之表达习惯。所译经论如《金刚经》《维摩诘所说经》，文辞流丽，义理通达，至今仍为最广流通之版本。&lt;/p&gt;&lt;p&gt;玄奘大师则以精确音译配严谨注疏，赋予中文系统分析意识结构之能力。其所创译名如「阿赖耶识」「末那识」等，虽初见生涩，却为汉语开辟了精密思辨之新疆域。&lt;/p&gt;&lt;p&gt;简言之，罗什以意译化外来思维为本土语汇，玄奘以音译建概念分析之严谨框架。二公所奠之语言基础，非仅译事之功，实为中文思维能力之一次升级。&lt;/p&gt;&lt;h2&gt;拜菩萨&lt;/h2&gt;&lt;p&gt;世间有一桩常理，好多人一辈子不曾想透：倘若拜菩萨当真有用，便没有人会去拜菩萨了。&lt;/p&gt;&lt;p&gt;此语看似悖论，其实不然。正因为世事无常，求而不得是常态，人才需要一个寄托。菩萨之灵验与否并不重要，重要的是那一跪一拜之间，人暂时放下了自己无法掌控一切的焦虑。信仰之用，不在于改变世界，而在于安顿此心。&lt;/p&gt;&lt;hr/&gt;&lt;p&gt;&lt;a href=&quot;https://justgoidea.com/two-reds&quot;&gt;Previous&lt;/a&gt; | &lt;/p&gt;&lt;p&gt;
                
                    &lt;a href=&quot;https://justgoidea.com/posts/?q=notes&quot;&gt;#notes&lt;/a&gt;
                
            &lt;/p&gt;</content:encoded>
</item>
<item>
<title>How Big Is the American Dream House? - The Atlantic</title>
<link>https://www.theatlantic.com/newsletters/2026/04/small-american-dream-house/687011/</link>
<enclosure type="image/jpeg" length="0" url="https://cdn.theatlantic.com/thumbor/I5a5VjldWkihlZr5Qgmq23ectBg=/0x42:2000x1084/1200x625/media/newsletters/2026/04/2026_04_30_Time_Travel_mpg/original.jpg"></enclosure>
<guid isPermaLink="false">HtfNOiOe3hoP6qHTqEvtdw3LAumDzjvODKmQ7Q==</guid>
<pubDate>Fri, 01 May 2026 21:39:11 +0000</pubDate>
<description>Millennials are abandoning the idea of living in a giant home.</description>
<content:encoded>&lt;div&gt;&lt;p&gt;&lt;small&gt;&lt;em&gt;This is an edition of Time-Travel Thursdays, a journey through &lt;/em&gt;The Atlantic&lt;em&gt;’s archives to contextualize the present. &lt;a href=&quot;https://link.theatlantic.com/click/33390566.0/aHR0cHM6Ly93d3cudGhlYXRsYW50aWMuY29tL25ld3NsZXR0ZXJzL3NpZ24tdXAvdGltZS10cmF2ZWwtdGh1cnNkYXlzLz91dG1fY2FtcGFpZ249dGltZS10cmF2ZWwtdGh1cnNkYXlzJnV0bV9zb3VyY2U9bmV3c2xldHRlciZ1dG1fbWVkaXVtPWVtYWlsJnV0bV9jb250ZW50PTIwMjMxMTE2JmxjdGc9NjA1MGUyYjIxZmMxNmQxMzdmODNjMDM4/6050e2b21fc16d137f83c038B739d3752&quot;&gt;Sign up here.&lt;/a&gt;&lt;/em&gt;&lt;/small&gt;&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;“When I was nine or ten and lived in a dark fourth-floor apartment in a building that had seen better days, I fantasized mansions that were more suited to my romantic nature,” Linda Lewis &lt;a href=&quot;https://www.theatlantic.com/magazine/archive/1978/01/other-peoples-houses/670876/&quot;&gt;wrote&lt;/a&gt; in &lt;i&gt;The Atlantic &lt;/i&gt;in 1978. In adulthood, she got only more covetous—of friends’ gorgeous houses, of French castles, of architectural marvels such as Monticello and Frank Lloyd Wright’s Taliesin West.&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;As a fellow house envier, I sympathize. I feel, as Lewis did, that I “behave differently in different kinds of rooms”; that I’m “powerfully influenced by shapes and sizes, light and color, by degrees of privacy and security and beauty.” But I’ve never wanted a mansion, let alone a Monticello. I own a row house, and when I fantasize about something more suited to &lt;i&gt;my &lt;/i&gt;romantic nature, what I’m picturing is a slightly bigger row house in a neighborhood with more restaurants.&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;This is very Millennial of me. My generation of Americans is the first in decades to collectively abandon the dream of a big house. In part, that’s likely a concession to reality: Real estate is so expensive that homeownership is, for many, a fantasy. But it also reflects changing ideas about what makes a good house and a good life, for both renters and owners. According to the National Association of Realtors’ most recent &lt;a href=&quot;https://www.nar.realtor/sites/default/files/documents/2023-community-and-transportation-preferences-survey-slides-06-20-2023.pdf&quot;&gt;survey&lt;/a&gt; of American housing preferences, the majority of Millennials and Gen Zers would rather live in smaller homes in more walkable communities than larger ones in less dense areas. As a country, though, we aren’t building accordingly.&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;In 2012, the architect Daniel Parolek coined the term &lt;i&gt;missing middle housing&lt;/i&gt;. What’s lacking in America is the “middle scale of buildings between single-family homes and large apartment or condo buildings,” he argued in his 2020 &lt;a href=&quot;https://bookshop.org/a/12476/9781642830545&quot;&gt;book&lt;/a&gt;. Row houses, which are built in a continuous line and tend to be smaller than the average single-family detached home, are emblematic of the missing middle. Although they’re in high demand, they represent less than 20 percent of new construction, according to the &lt;a href=&quot;https://eyeonhousing.org/2026/03/flat-conditions-for-townhouse-construction/&quot;&gt;National Association of Home Builders&lt;/a&gt;. In part, this is due to zoning issues: Parolek’s book notes that many cities’ codes for house construction usually call for “minimum lot sizes that are too large, densities that are too low, [and] parking requirements that are too high” for attached homes.&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;Row houses have a prestige issue, too. Before the advent of car ownership and the suburban lifestyle it facilitated, row houses were popular with families of many classes and backgrounds; once more families began migrating farther from cities in the 1910s and ’20s, row homes were usurped by detached houses with lawns. As the latter became emblematic of comfort and success, the former came to be seen as down-market or second-class. Meanwhile, “over the course of the 20th century, government policy, the invention of cheaper, mass-produced building materials, marketing by home builders, and a shift in how people regarded their houses—not just as homes, but as financial assets—encouraged ever larger houses,” Joe Pinsker &lt;a href=&quot;https://www.theatlantic.com/family/archive/2019/09/american-houses-big/597811/&quot;&gt;wrote&lt;/a&gt; in &lt;i&gt;The Atlantic&lt;/i&gt; in 2019. The architect Witold Rybczynski &lt;a href=&quot;https://www.theatlantic.com/magazine/archive/1991/02/living-smaller/306205/&quot;&gt;observed&lt;/a&gt; in this magazine in 1991 that the average new single-family house had grown by more than a third from 1963 to 1989. From 1989 to today, it has grown even larger, now averaging around 2,100 square feet.&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;Rybczynski considered this increase in home size a mistake. In his view, row houses are an ideal design. Dividing one of them into multiple apartment units, or into mixed-use living and retail, is easy; their thick shared walls can reduce heating and cooling costs because fewer exterior-facing facades means less exposure to the elements; and they use less land than single-family homes, which means they’re usually more affordable. Of course, not everybody likes the trade-offs. Plenty of home buyers still want more backyard space, more rooms, more parking, more to show for their expensive mortgage.&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;Size aside, there are the matters of darkness and noise. Detached houses get more sun because they generally have windows on all four sides, and not everyone wants to rely on a white-noise machine, as I do, to drown out my neighbors watching Bravo on the other side of the wall. But with those annoyances comes what Rybczynski calls “the gregariousness of living in relatively close proximity.” Encountering a single block of row houses in isolation is rare; more frequently, they make up whole neighborhoods. As Parolek told me, the dream &lt;i&gt;neighborhood&lt;/i&gt; is “the American dream house for a majority of American households now”—and they’re happy to live smaller, and deal with some secondhand &lt;i&gt;Housewives&lt;/i&gt;, to get there.&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;When I asked Elizabeth Plater-Zyberk, an urban planner and a professor at the University of Miami’s School of Architecture, about her vision of the ideal American home, she brought up a development called Kentlands, a townhouse-centric development in Gaithersburg, Maryland, roughly a 45-minute drive from downtown Washington, D.C. The community is designed to be walkable, with plenty of shared space, meaning that “the entertainment portion of the house” is effectively outside the home, she explained.&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;At first I couldn’t quite imagine what she meant. Then I thought about the neighborhood restaurant where I met with a parents’ group when my daughter was an infant. I thought about the playground where we see friends weekly, the public picnic grove where we hosted her most recent birthday party. I have easy access to those places because, like Kentlands residents, I live in a dense and walkable area. The reason my fantasies don’t extend beyond a bigger row house is, I think, because I don’t want to lose that kind of access. What’s more, it strikes me as entirely possible that if I hadn’t been raised in the ’90s era of big American homes—in a country and culture that gave me the expectation that, as a grown-up, I’d have a guest room and a yard to mow—I’d never think about moving out at all.&lt;/p&gt;&lt;/div&gt;</content:encoded>
</item>
<item>
<title>Do Women Reproduce More than Men? - by Tomas Pueyo</title>
<link>https://unchartedterritories.tomaspueyo.com/p/do-women-reproduce-more-than-men</link>
<enclosure type="image/jpeg" length="0" url="https://substackcdn.com/image/fetch/$s_!D8ZR!,w_1200,h_675,c_fill,f_jpg,q_auto:good,fl_progressive:steep,g_auto/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fedfe087f-f302-421b-8087-a7ad3a9c954b_1248x832.jpeg"></enclosure>
<guid isPermaLink="false">vVc7LWKLbUGbSWRcDPTP9GvboHvZ0v0GYeKnCA==</guid>
<pubDate>Thu, 30 Apr 2026 19:19:45 +0000</pubDate>
<description>And the connection to incels, dating apps, AI, robots, immigration, feminism, polygamy, prostitution, and more</description>
<content:encoded>&lt;p&gt;&lt;em&gt;&lt;span&gt;Previous premium article: &lt;/span&gt;&lt;a href=&quot;https://unchartedterritories.tomaspueyo.com/p/why-did-islam-spread-so-fast-in-north&quot;&gt;Why Did Islam Spread So Fast in North Africa &amp;amp; Spain?&lt;/a&gt;&lt;br/&gt;&lt;span&gt;Next premium article: An anlysis of all the news on the Game Theory of Sex &amp;amp; Relationships&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p&gt;Here’s a crazy fact I read: 80% to 90% of women reproduce, but only about 40% of men do. What?!&lt;/p&gt;&lt;p&gt;It made me think of this:&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;a href=&quot;https://substackcdn.com/image/fetch/$s_!pUM7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcbaee918-b9ef-45e4-ac9f-1d5bc5b23f57_692x1363.png&quot;&gt;&lt;div&gt;&lt;picture&gt;&lt;img src=&quot;https://substackcdn.com/image/fetch/$s_!pUM7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcbaee918-b9ef-45e4-ac9f-1d5bc5b23f57_692x1363.png&quot; alt=&quot;&quot; title=&quot;&quot;/&gt;&lt;/picture&gt;&lt;/div&gt;&lt;/a&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;This represents the idea that, nowadays, women can easily have sex, so they gravitate towards attractive men, which is bad for unattractive men (no access to sex), and bad for all women (heightened competition for a few men only), while attractive men get all the access to sex they want and end up not partnering up.&lt;/p&gt;&lt;p&gt;Are these things true? Do men really reproduce less than women? Is it because historically, the more attractive men could hoard the women, leaving the least attractive men out of luck? If that’s the case, how frequent was it? How did different societies deal with this problem? Did it lead to violence? And what about today? Do more women than men still reproduce? How has technology like Tinder or contraception changed this? What can we predict about the future of sex, reproduction, and violence?&lt;/p&gt;&lt;h1&gt;1. Men Don’t Reproduce as Much&lt;/h1&gt;&lt;p&gt;&lt;span&gt;Let’s start with the initial claim: If 80% of women reproduce and only 40% of men, that means women have been 2x more likely to reproduce than men in history. Is this true? This is an &lt;/span&gt;&lt;a href=&quot;https://pmc.ncbi.nlm.nih.gov/articles/PMC4381518/&quot;&gt;estimate of how many women&lt;/a&gt;1&lt;span&gt; reproduced in a studied population throughout history:&lt;/span&gt;&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;a href=&quot;https://substackcdn.com/image/fetch/$s_!kRsh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F275b1b55-f145-4e56-9026-f335a6e47b23_912x990.png&quot;&gt;&lt;div&gt;&lt;picture&gt;&lt;img src=&quot;https://substackcdn.com/image/fetch/$s_!kRsh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F275b1b55-f145-4e56-9026-f335a6e47b23_912x990.png&quot; alt=&quot;&quot; title=&quot;&quot;/&gt;&lt;/picture&gt;&lt;/div&gt;&lt;/a&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;&lt;span&gt;Notice how the human population starts exploding about 70,000 years ago, around the time of the 2&lt;/span&gt;&lt;sup&gt;nd&lt;/sup&gt;&lt;span&gt; move out of Africa. Then, there’s a new explosion around 10,000-12,000 years ago, around the time of the end of the last ice age.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;But this is for females. How did males reproduce in comparison?&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;a href=&quot;https://substackcdn.com/image/fetch/$s_!z4Wn!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40706277-2353-4ff8-8fb9-6c8b247567ba_1600x891.png&quot;&gt;&lt;div&gt;&lt;picture&gt;&lt;img src=&quot;https://substackcdn.com/image/fetch/$s_!z4Wn!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40706277-2353-4ff8-8fb9-6c8b247567ba_1600x891.png&quot; alt=&quot;&quot; title=&quot;&quot;/&gt;&lt;/picture&gt;&lt;/div&gt;&lt;/a&gt;&lt;figcaption&gt;&lt;em&gt;I had to collapse the vertical axis for males because in the original paper, the researchers used different scales, which defeats the purpose of comparing them!&lt;/em&gt;&lt;/figcaption&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;Assuming that 80% of women reproduced at any given time, what does this tell us about the share of men who reproduced?&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;a href=&quot;https://substackcdn.com/image/fetch/$s_!mz0l!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4eb08ae8-4571-41c1-a255-1b30b3d78991_1438x1213.png&quot;&gt;&lt;div&gt;&lt;picture&gt;&lt;img src=&quot;https://substackcdn.com/image/fetch/$s_!mz0l!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4eb08ae8-4571-41c1-a255-1b30b3d78991_1438x1213.png&quot; alt=&quot;&quot; title=&quot;&quot;/&gt;&lt;/picture&gt;&lt;/div&gt;&lt;/a&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;&lt;span&gt;This is bonkers!! It means historically only about a quarter of men reproduced!?&lt;/span&gt;2&lt;/p&gt;&lt;p&gt;This maps tells you where:&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;a href=&quot;https://substackcdn.com/image/fetch/$s_!MqER!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86ed0f0c-5e92-4ce1-9dc3-62dab2c83890_1200x856.png&quot;&gt;&lt;div&gt;&lt;picture&gt;&lt;img src=&quot;https://substackcdn.com/image/fetch/$s_!MqER!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86ed0f0c-5e92-4ce1-9dc3-62dab2c83890_1200x856.png&quot; alt=&quot;&quot; title=&quot;&quot;/&gt;&lt;/picture&gt;&lt;/div&gt;&lt;/a&gt;&lt;figcaption&gt;&lt;em&gt;&lt;span&gt;In Europe and Eurasia, the male source individuals were 85-95% fewer than the female source individuals! Red numbers: estimated female effective population size; blue numbers: estimated male effective population size; top number near each triangle: “current” effective size for that regional sample; bottom number near each triangle: ancestral/founding effective size for that regional lineage; black oval “26 / 15”: estimated effective size of the initial out-of-Africa bottleneck: ~26 females, ~15 males; black arrow dates: inferred divergence times in years before present; arrows schematic ancestry/migration splits, not literal routes. &lt;/span&gt;&lt;a href=&quot;https://link.springer.com/article/10.1186/2041-2223-5-13&quot;&gt;Source&lt;/a&gt;&lt;span&gt;.&lt;/span&gt;&lt;/em&gt;&lt;/figcaption&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;How is this possible?&lt;/p&gt;&lt;h3&gt;Homosexuality&lt;/h3&gt;&lt;p&gt;&lt;span&gt;About &lt;/span&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Demographics_of_sexual_orientation&quot;&gt;3%&lt;/a&gt;&lt;span&gt; of men consider themselves fully homosexual, so it can explain only a tiny part of this gap.&lt;/span&gt;&lt;/p&gt;&lt;h3&gt;Polygyny&lt;/h3&gt;&lt;p&gt;&lt;span&gt;The most logical explanation for this would be polygamy (one person marrying several people of the other sex), which generally means polygyny (one man, several women).&lt;/span&gt;3&lt;span&gt; If the average man who marries has 3 wives, it means about ⅔ of men won’t have a wife.&lt;/span&gt;&lt;/p&gt;&lt;h3&gt;The Sexual Violence Problem&lt;/h3&gt;&lt;p&gt;This causes a lot of conflict. Because you get a lot of men who can’t access sex and reproduction. So societies had three options.&lt;/p&gt;&lt;p&gt;One was to just be violent, with men killing other men and kidnapping and raping women. That is not very stable at all, so such societies quickly learn to focus the violence outwards: They organize in clans and tribes where you’re not supposed to kill each other, and should raid your neighbor instead.&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;a href=&quot;https://substackcdn.com/image/fetch/$s_!3s3c!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04968bae-4346-4f0e-81d6-d6d720c12525_1422x1838.png&quot;&gt;&lt;div&gt;&lt;picture&gt;&lt;img src=&quot;https://substackcdn.com/image/fetch/$s_!3s3c!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04968bae-4346-4f0e-81d6-d6d720c12525_1422x1838.png&quot; alt=&quot;&quot; title=&quot;&quot;/&gt;&lt;/picture&gt;&lt;/div&gt;&lt;/a&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;&lt;span&gt;The societies that managed to do this at scale were able to spread extremely fast. Examples include the &lt;/span&gt;&lt;a href=&quot;https://unchartedterritories.tomaspueyo.com/p/why-did-vikings-appear-out-of-nowhere&quot;&gt;Vikings&lt;/a&gt;&lt;span&gt; and the &lt;/span&gt;&lt;a href=&quot;https://unchartedterritories.tomaspueyo.com/p/how-did-islam-spread-so-fast&quot;&gt;Arab Muslims&lt;/a&gt;&lt;span&gt;: In both cases, they had serious polygyny, and men were recruited to go raid foreigners and take their women as partners, concubines, or slaves. The Muslims had the added brilliant idea of telling recruits: “&lt;/span&gt;&lt;em&gt;Even if you die fighting, don’t worry, you’ll get your women in heaven.”&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;For example, we know from DNA analysis that &lt;/span&gt;&lt;a href=&quot;https://www.science.org/content/article/vikings-genetic-legacy&quot;&gt;80%&lt;/a&gt;&lt;span&gt; of the Icelandic male DNA was originally from Scandinavia, whereas 60% of women’s is Gaelic.&lt;/span&gt;4&lt;span&gt; So the most common way that Iceland was settled was with Scandinavian men taking Gaelic women in the British Isles and settling in Iceland. Something similar happened in Arab territories:&lt;/span&gt;&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;a href=&quot;https://substackcdn.com/image/fetch/$s_!SjiS!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e4b5a72-a824-44aa-85a2-48a3e74340b0_612x431.png&quot;&gt;&lt;div&gt;&lt;picture&gt;&lt;img src=&quot;https://substackcdn.com/image/fetch/$s_!SjiS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e4b5a72-a824-44aa-85a2-48a3e74340b0_612x431.png&quot; alt=&quot;&quot; title=&quot;&quot;/&gt;&lt;/picture&gt;&lt;/div&gt;&lt;/a&gt;&lt;figcaption&gt;&lt;em&gt;The Y chromosome is mostly handed down from father to son without much modification, which helps us track male lineages across many generations. Similarly, mitochondrial DNA is handed down from mother to children with no modification.&lt;/em&gt;&lt;/figcaption&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;So very certainly part of the difference between male and female reproduction is that some men hoarded women, so other men either didn’t have access to women and didn’t reproduce, or had to go to war or raid neighbors to get women. They would either die trying, or succeed and extinguish the male line of the conquered.&lt;/p&gt;&lt;p&gt;It doesn’t always need to be violent though. For example, the Swahili Coast in Africa has in some places up to 80-90% of male ancestors from Persia, India and Arabia, with nearly 100% local female ancestors, from Africa.&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;a href=&quot;https://substackcdn.com/image/fetch/$s_!Fm2C!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a88e30a-4d3f-4bdc-8a24-34ff8998705c_397x338.png&quot;&gt;&lt;div&gt;&lt;picture&gt;&lt;img src=&quot;https://substackcdn.com/image/fetch/$s_!Fm2C!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a88e30a-4d3f-4bdc-8a24-34ff8998705c_397x338.png&quot; alt=&quot;&quot; title=&quot;&quot;/&gt;&lt;/picture&gt;&lt;/div&gt;&lt;/a&gt;&lt;figcaption&gt;&lt;em&gt;Swahili coast, in Africa&lt;/em&gt;&lt;/figcaption&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;This was from trade: Rich Muslim traders would come and marry local women. But slaves were part of the traded goods, and so some of the partnerships would have been coerced rather than free.&lt;/p&gt;&lt;p&gt;&lt;span&gt;Conversely, some Arabic ancestry &lt;/span&gt;&lt;a href=&quot;https://www.sciencedirect.com/science/article/pii/S0002929707606302&quot;&gt;comes from African women&lt;/a&gt;&lt;span&gt;, but not men. Given that Arabs traded African slaves, the most logical explanation is that they didn’t let African men reproduce in Arabia,&lt;/span&gt;5&lt;span&gt; but some of the African women slaves did reproduce with the men.&lt;/span&gt;6&lt;/p&gt;&lt;h3&gt;Age&lt;/h3&gt;&lt;p&gt;&lt;span&gt;This one blew my mind. There’s a second way a polygynous society can manage the sex imbalance: Growth plus age differences. This explains why old men marry young women in Muslim countries.&lt;/span&gt;7&lt;/p&gt;&lt;p&gt;If you have 100 men, and they each have on average two wives, you need 200 women. How can you get them? You can solve that if the men are 40 years old and the women are 20 years old.&lt;/p&gt;&lt;p&gt;The women have four children each, for a total of eight children per father—approximately four boys and four girls. That means that our total population of 100 men and 200 women becomes, 20 years later, 800 men and 800 women.&lt;/p&gt;&lt;p&gt;&lt;span&gt;The women marry immediately and have children,&lt;/span&gt;8&lt;span&gt; but not the men! The 800 men have to wait 20 more years. By the time they do, there’s been a new generation. Now there are 1600 men and 1600 women aged 20: Enough women so there’s two of them per man!&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Another way to think about this: If every generation is twice as big as the previous one, every man can simply marry, when he is older, two younger women of the next generation.&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;a href=&quot;https://substackcdn.com/image/fetch/$s_!LJ4r!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F771585a5-b0f7-4979-8b58-16fb9d706722_875x653.gif&quot;&gt;&lt;div&gt;&lt;picture&gt;&lt;img src=&quot;https://substackcdn.com/image/fetch/$s_!LJ4r!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F771585a5-b0f7-4979-8b58-16fb9d706722_875x653.gif&quot; alt=&quot;&quot; title=&quot;&quot;/&gt;&lt;/picture&gt;&lt;/div&gt;&lt;/a&gt;&lt;figcaption&gt;&lt;em&gt;Purple is women, blue is men. In generation 1, there’s one 40 year old man and two 20 year old women who marry, and have eight kids in the 2nd generation (four kids per woman), four girls and four boys. The four girls marry when they are 20 with two 40 year old men from Gen 0. They have together the 3rd generation, made of 16 children (again, four kids each), eight girls and eight boys. The eight girls in Gen 3 marry the four boys from Gen 2, and have together 32 kids. And so on.&lt;/em&gt;&lt;/figcaption&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;So by marrying women young enough, remaining fertile, and having lots of children, you can actually maintain a highly polygynous society while all men still have women!&lt;/p&gt;&lt;p&gt;Something like that has happened in high-growth polygynous societies across the world. It’s one of the reasons I believe old men marry young girls in some Muslim countries. I don’t like it (and with children it’s abhorrent), but that’s the logic.&lt;/p&gt;&lt;p&gt;This wouldn’t explain why men have had more children than women though—in fact, it increases the mystery, because it could explain away polygyny without the need for women reproducing more than men.&lt;/p&gt;&lt;h3&gt;Monogamy&lt;/h3&gt;&lt;p&gt;The other way to handle this problem is by forbidding polygamy. If everybody is monogamous, everybody can pair up and have children. Yay!&lt;/p&gt;&lt;p&gt;This has a big advantage: Instead of pouring resources (men) into violence against each other to fight for women, who are then raped and / or kidnapped, you can focus all the energy on building stuff and accumulating wealth.&lt;/p&gt;&lt;p&gt;&lt;span&gt;This might be one of the reasons why the Greeks (and later, Romans), who were uniquely monogamous, were so successful. They imbued this into Christianity&lt;/span&gt;9&lt;span&gt;, which then spread the concept around the world.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Islam and China were not technically monogamous, but in practice the vast majority of marriages have been, I assume for the same reason.&lt;/p&gt;&lt;p&gt;A study looked at the ratio of men to women in several societies, and assuming 80% of women have had surviving descendants, then in East Asian societies about 72% of men had surviving descendants; in Europe it’s 62%, and in Nigeria (Yoruba) it’s 57%. So we can see in the data that monogamy might have indeed had a strong impact in balancing reproduction and descendants—which gives credence to the idea that polygyny was originally one of the causes of this imbalance.&lt;/p&gt;&lt;p&gt;But if monogamy has been so widespread, why do we see such an imbalance in male-female reproduction across the world until so recently?&lt;/p&gt;&lt;h1&gt;2. Patriarchy against Men&lt;/h1&gt;&lt;p&gt;&lt;span&gt;The most common structure for clans has usually been patrilineal: All the men in a family stay together, and the daughters leave to pair up with men in other clans. This means all men in a clan are related by blood, but not all women.&lt;/span&gt;10&lt;span&gt; So if a clan disappears—whether it’s wiped out, it starves, or it slowly shrinks because it doesn’t have access to resources or status—then the entire male line goes extinct. But not the female line, which is much more mixed! So, in effect, patriarchy is genetically much riskier for men than for women.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Meanwhile, this effect was compounded by the fact that successful clans would wipe out many other clans, further reducing genetic diversity.&lt;/p&gt;&lt;p&gt;&lt;span&gt;And then, these successful clans would grow too much and would need to split. When they did, they tended to do so along lines of close relatives. So for example each successful son would move out with his male descendants. The result is that every split would &lt;/span&gt;&lt;em&gt;increase&lt;/em&gt;&lt;span&gt; male line genetic concentration.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://www.nature.com/articles/s41467-024-47618-5&quot;&gt;One paper&lt;/a&gt;&lt;span&gt; tried to figure out how much the effects described in this section could explain the gap between male and female reproduction, and it found that it could theoretically explain it all. In other words, you don’t theoretically need polygyny or violence between men to explain this gap. The clan structure could be enough.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;My guess is that it’s something in between:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;p&gt;Polygyny meant that many men could not get wives and never reproduced.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Many men killed other men and took the women, further reducing the share of men who would ever reproduce (or killing off their offspring). This was more common in polygynous societies than in monogamous ones.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Even if some males reproduced, clan structure could eliminate their entire male line, if the entire clan was wiped out.&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;What does all this tell us about today? Here are the consequences we can draw for dating apps, incels, polygamy in the West, immigrant profiles, Ukraine and Russia, and AI and robots.&lt;/p&gt;</content:encoded>
</item>
<item>
<title>You Don&#39;t Want to Make Things, You Want to Have Made Things | blog.spu.io</title>
<link>https://blog.spu.io/you-dont-want-to-make-things-you-want-to-have-made-things/</link>
<enclosure type="image/jpeg" length="0" url="https://bear-images.sfo2.cdn.digitaloceanspaces.com/spu/you-dont-want-to-make-things-you-want-to-have-made-things_meta_image.webp"></enclosure>
<guid isPermaLink="false">GPKuvRAJm5mhb95m21jKIxsjXASk8_CToMC4ew==</guid>
<pubDate>Thu, 30 Apr 2026 00:27:16 +0000</pubDate>
<description>disclaimer: this post may contain mention of generative &quot;AI&quot;</description>
<content:encoded>&lt;h1&gt;You Don&amp;#39;t Want to Make Things, You Want to Have Made Things&lt;/h1&gt;&lt;p&gt;
            &lt;i&gt;
                &lt;time&gt;
    28 Apr, 2026
&lt;/time&gt;
            &lt;/i&gt;
        &lt;/p&gt;&lt;p&gt;One thing I’ve learned about myself over the years is that I want to watch movies, but I want to have watched tv shows. Of course it isn’t black and white like that, there are exceptions on both sides, but broadly speaking, with movies I’m looking forward to watching them, with shows I’m looking forward to finishing them - to having watched them. TV shows are just so long, man. Yes, I’m interested in this show, but am I interested enough to want to watch all of this?&lt;/p&gt;&lt;p&gt;I think that’s how a lot of people feel about making things.&lt;/p&gt;&lt;p&gt;For different reasons.&lt;/p&gt;&lt;p&gt;Some want the feeling of having made something. Without the hassle of making it. &amp;quot;I made this&amp;quot; meme meets &amp;quot;but it&amp;#39;s hard&amp;quot; Scott Pilgrim gif.&lt;/p&gt;&lt;p&gt;Some think that making something is fun in the same way using it is. You see this a lot in video games. &amp;quot;I love playing games I&amp;#39;d love to make one.&amp;quot; And yes, making games is fun, it&amp;#39;s just a very different kind of fun than playing them.&lt;/p&gt;&lt;p&gt;Some want to have the thing, but they don’t enjoy the process of making it.
This is different from &amp;quot;I made this&amp;quot;, it&amp;#39;s addressing a specific need. If someone else was making that thing they wouldn&amp;#39;t even be thinking about making it.&lt;/p&gt;&lt;p&gt;And then there&amp;#39;s, of course, the delusion you could make quick and easy money. When reality is neither quick, nor easy, nor money. For most people in the arts or entertainment, including people you&amp;#39;ve probably seen or heard of, having to quit their profession to become a gig economy food delivery driver represents a raise of hourly wages and overall income. And I&amp;#39;m talking about people who actually managed to make a living at some point - then there&amp;#39;s also the ones who never get a paid gig in the first place.&lt;/p&gt;&lt;p&gt;You can read a lot of this pretty clearly between the lines (and sometimes straight up on the lines) of how tech companies are trying to sell generative “AI”. &lt;/p&gt;&lt;p&gt;I hate that so called &amp;quot;AI&amp;quot; now has to be part of this topic. In the past you&amp;#39;d try something, realize it isn&amp;#39;t for you, come to terms with it and move on. Which is BIG! Admitting to yourself that something isn&amp;#39;t for you, that there&amp;#39;s something you can&amp;#39;t do and being able to live with it and move on requires character. A healthy relationship with your ego. It&amp;#39;s not easy. And now you have these snake-oil salesmen trying to tell you otherwise. Keeping you from growing as a person.&lt;/p&gt;&lt;p&gt;It was already hard enough to convince people that it&amp;#39;s okay not to be good at everything, now it&amp;#39;s next to impossible.&lt;/p&gt;&lt;p&gt;I guess this is somewhat related to yesterday&amp;#39;s &lt;a href=&quot;https://blog.spu.io/what-people-get-wrong-about-discipline/&quot;&gt;What People Get Wrong About Discipline&lt;/a&gt;&lt;/p&gt;&lt;hr/&gt;&lt;p&gt;&lt;a href=&quot;https://blog.spu.io/what-people-get-wrong-about-discipline&quot;&gt;Previous&lt;/a&gt; &lt;a href=&quot;https://blog.spu.io/content-creators-making-themselves-obsolete-with-ai&quot;&gt;Next&lt;/a&gt;&lt;/p&gt;&lt;hr/&gt;&lt;p&gt;
                
                    &lt;a href=&quot;https://blog.spu.io/posts/?q=thinking&quot;&gt;#thinking&lt;/a&gt;
                
            &lt;/p&gt;</content:encoded>
</item>
<item>
<title>FastCGI: 30 Years Old and Still the Better Protocol for Reverse Proxies</title>
<link>https://www.agwa.name/blog/post/fastcgi_is_the_better_protocol_for_reverse_proxies</link>
<guid isPermaLink="false">Ypv2XQzI6vCf_EpEuYtFRb1rjrnL8Tt6Iwu_LA==</guid>
<pubDate>Thu, 30 Apr 2026 00:27:34 +0000</pubDate>
<description>For FastCGI&#39;s 30th birthday, let&#39;s look at how it avoids the security problems inherent in HTTP reverse proxying</description>
<content:encoded>&lt;p&gt;
HTTP reverse proxying is a minefield.
Just the other week, a researcher disclosed a &lt;a href=&quot;https://tmctmt.com/posts/http-desync-in-discord/&quot;&gt;desync
vulnerability in Discord&amp;#39;s media proxy&lt;/a&gt; that allowed spying on private
attachments. This is not unusual; these vulnerabilities just keep coming.
&lt;/p&gt;&lt;p&gt;
The problem is the widespread use of HTTP as the protocol between reverse proxies
and backends, even though it&amp;#39;s unfit for the job.
But we don&amp;#39;t have to use HTTP here.
There&amp;#39;s a 30-year-old protocol for proxy-to-backend communication
that avoids HTTP&amp;#39;s pitfalls. It&amp;#39;s called FastCGI,
and its &lt;a href=&quot;https://fastcgi-archives.github.io/FastCGI_Specification.html&quot;&gt;specification&lt;/a&gt; was released 30 years ago today.
&lt;/p&gt;&lt;h4&gt;FastCGI is a Wire Protocol, not a Process Model&lt;/h4&gt;&lt;p&gt;
It&amp;#39;s true that some web servers can automatically spawn FastCGI processes
to handle requests for files with the &lt;code&gt;.fcgi&lt;/code&gt; extension, much like they
would for &lt;code&gt;.cgi&lt;/code&gt; files. But you don&amp;#39;t have to use FastCGI this way - you
can also use the FastCGI protocol just like HTTP, with requests sent
over a TCP or UNIX socket to a long-running daemon that handles them as if they
were HTTP requests.
&lt;/p&gt;&lt;p&gt;
For example, in Go all you have to do is import the
&lt;a href=&quot;https://pkg.go.dev/net/http/fcgi&quot;&gt;net/http/fcgi&lt;/a&gt;
standard library package and replace &lt;code&gt;http.Serve&lt;/code&gt; with &lt;code&gt;fcgi.Serve&lt;/code&gt;:
&lt;/p&gt;&lt;div&gt;
&lt;div&gt;&lt;div&gt;
&lt;h5&gt;Go HTTP&lt;/h5&gt;
&lt;code class=&quot;block pre&quot;&gt;l, _ := net.Listen(&amp;quot;tcp&amp;quot;, &amp;quot;127.0.0.1:8080&amp;quot;)
http.Serve(l, handler)&lt;/code&gt;
&lt;/div&gt;&lt;div&gt;
&lt;h5&gt;Go FastCGI&lt;/h5&gt;
&lt;code class=&quot;block pre&quot;&gt;l, _ := net.Listen(&amp;quot;tcp&amp;quot;, &amp;quot;127.0.0.1:8080&amp;quot;)
fcgi.Serve(l, handler)&lt;/code&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;
Everything else about your app stays the same - even your handler, which continues to use the standard
&lt;code&gt;http.ResponseWriter&lt;/code&gt; and &lt;code&gt;http.Request&lt;/code&gt; types.
&lt;/p&gt;&lt;p&gt;Popular proxies like Apache, Caddy, nginx, and HAProxy support FastCGI backends, and the configuration is simple:&lt;/p&gt;&lt;div&gt;
&lt;div&gt;&lt;div&gt;
&lt;h5&gt;nginx HTTP&lt;/h5&gt;
&lt;code class=&quot;block pre&quot;&gt;proxy_pass http://localhost:8080;&lt;/code&gt;
&lt;/div&gt;&lt;div&gt;
&lt;h5&gt;nginx FastCGI&lt;/h5&gt;
&lt;code class=&quot;block pre&quot;&gt;fastcgi_pass localhost:8080;
include fastcgi_params;&lt;/code&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;&lt;details&gt;
&lt;summary&gt;Show more config examples&lt;/summary&gt;
&lt;div&gt;
&lt;div&gt;&lt;div&gt;
&lt;h5&gt;Apache HTTP&lt;/h5&gt;
&lt;code class=&quot;block pre&quot;&gt;ProxyPass / http://localhost:8080/&lt;/code&gt;
&lt;/div&gt;&lt;div&gt;
&lt;h5&gt;Apache FastCGI&lt;/h5&gt;
&lt;code class=&quot;block pre&quot;&gt;ProxyPass / fcgi://localhost:8080/&lt;/code&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;&lt;div&gt;
&lt;h5&gt;Caddy HTTP&lt;/h5&gt;
&lt;code class=&quot;block pre&quot;&gt;reverse_proxy localhost:8080 {
	transport http {
	}
}&lt;/code&gt;
&lt;/div&gt;&lt;div&gt;
&lt;h5&gt;Caddy FastCGI&lt;/h5&gt;
&lt;code class=&quot;block pre&quot;&gt;reverse_proxy localhost:8080 {
	transport fastcgi {
	}
}&lt;/code&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;&lt;div&gt;
&lt;h5&gt;HAProxy HTTP&lt;/h5&gt;
&lt;code class=&quot;block pre&quot;&gt;backend app_backend
	server s1 localhost:8080&lt;/code&gt;
&lt;/div&gt;&lt;div&gt;
&lt;h5&gt;HAProxy FastCGI&lt;/h5&gt;
&lt;code class=&quot;block pre&quot;&gt;fcgi-app fcgi_app
	docroot /

backend app_backend
	use-fcgi-app fcgi_app
	server s1 localhost:8080 proto fcgi&lt;/code&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/details&gt;&lt;h4&gt;Why HTTP Sucks for Reverse Proxies: Desync Attacks / Request Smuggling&lt;/h4&gt;&lt;p&gt;
HTTP/1.1 has the tragic property of looking simple on the surface
(it&amp;#39;s just text!) but actually being a nightmare to parse robustly.
There are so many different ways to format the same HTTP message,
and there are too many edge cases and ambiguities for implementations to handle consistently.
As a result, no two HTTP/1.1 implementations
are exactly the same, and the same message can be parsed differently by different parsers.
&lt;/p&gt;&lt;p&gt;
The most serious problem is that there is no explicit framing of HTTP
messages - the message itself describes where it ends, and there are
multiple ways for a message to do that, all with their own edge cases.
Implementations can disagree about where a message ends,
and consequently, where the next message begins. This is the foundation of
&lt;a href=&quot;https://portswigger.net/research/http-desync-attacks-request-smuggling-reborn&quot;&gt;HTTP desync attacks&lt;/a&gt;,
also known as request smuggling, wherein a reverse proxy and a backend disagree about
the boundaries between HTTP messages, causing all sorts of nightmare
security issues, such as the Discord vulnerability I linked above.
&lt;/p&gt;&lt;p&gt;
A lot of people seem to think you can just patch the parser divergences,
but this is a losing strategy. &lt;a href=&quot;https://jameskettle.com/&quot;&gt;James Kettle&lt;/a&gt;
just keeps finding new ones. After
&lt;a href=&quot;https://portswigger.net/research/http1-must-die&quot;&gt;finding another batch last year&lt;/a&gt;,
he declared &lt;a href=&quot;https://http1mustdie.com/&quot;&gt;&amp;quot;HTTP/1.1 must die&amp;quot;&lt;/a&gt;.
&lt;/p&gt;&lt;p&gt;
HTTP/2, &lt;em&gt;when consistently used between the proxy and backend&lt;/em&gt;, fixes desync by putting clear boundaries around messages, but FastCGI
has been doing that since 1996 with a simpler protocol.
For context, nginx has supported FastCGI backends since its first release,
but only got support for HTTP/2 backends in late 2025. Apache&amp;#39;s support for HTTP/2 backends is still &lt;a href=&quot;https://httpd.apache.org/docs/trunk/mod/mod_proxy_http2.html&quot;&gt;&amp;quot;experimental&amp;quot;&lt;/a&gt;.

&lt;/p&gt;&lt;h4&gt;Why HTTP Sucks for Reverse Proxies: Untrusted Headers&lt;/h4&gt;&lt;p&gt;
If desync attacks were the only problem, you could just use HTTP/2 and call it
a day. Unfortunately, there&amp;#39;s another problem: HTTP has no robust way
for the proxy to convey trusted information about the request, such as the real client IP address,
authenticated username (if the proxy handles authentication), or client certificate details
(if mTLS is used).
&lt;/p&gt;&lt;p&gt;
The only option is to stick this information in HTTP headers, alongside
the headers proxied from the client, without a clear structural distinction between trusted
headers from the proxy and untrusted headers from a potential attacker.
For example, the &lt;code&gt;X-Real-IP&lt;/code&gt; header is often used
to convey the client&amp;#39;s real IP address. In theory, if your proxy correctly deletes all instances
of the &lt;code&gt;X-Real-IP&lt;/code&gt; header (not just the first, and including case variations like &lt;code&gt;x-REaL-ip&lt;/code&gt;) before adding its own, you&amp;#39;re safe.
&lt;/p&gt;&lt;p&gt;
In practice, &lt;a href=&quot;https://adam-p.ca/blog/2022/03/x-forwarded-for/&quot;&gt;this is a minefield&lt;/a&gt;
and there are an awful lot of ways your backend can end up trusting attacker-controlled data.
Your proxy really needs to delete not just &lt;code&gt;X-Real-IP&lt;/code&gt;, but &lt;strong&gt;any&lt;/strong&gt; header that&amp;#39;s used for this sort of thing,
just in case some part of your stack relies on it without your knowledge.
For example, the Chi middleware &lt;a href=&quot;https://adam-p.ca/blog/2022/03/x-forwarded-for/#go-chichi&quot;&gt;determines the client&amp;#39;s real IP address&lt;/a&gt; by looking at the
&lt;code&gt;True-Client-IP&lt;/code&gt; header first. Only if &lt;code&gt;True-Client-IP&lt;/code&gt; doesn&amp;#39;t exist does it use &lt;code&gt;X-Real-IP&lt;/code&gt;.
So even if your proxy does the right thing with &lt;code&gt;X-Real-IP&lt;/code&gt;, you can still be pwned by an attacker
sending a &lt;code&gt;True-Client-IP&lt;/code&gt; header.
&lt;/p&gt;&lt;p&gt;
FastCGI completely avoids this class of problem by providing domain separation between headers from the client
and information added by the proxy. Though trusted data from the proxy and HTTP request headers are
transmitted to the backend in the same key/value parameter list, HTTP header names are prefixed with the string
&amp;quot;HTTP_&amp;quot;, making it structurally impossible for clients to send a header that would be interpreted as trusted
data.
&lt;/p&gt;&lt;p&gt;
FastCGI defines some standard parameters such as &lt;code&gt;REMOTE_ADDR&lt;/code&gt; to convey the real client IP address.
Go&amp;#39;s &lt;code&gt;net/http/fcgi&lt;/code&gt; package automatically uses this parameter to populate the &lt;code&gt;RemoteAddr&lt;/code&gt; field of &lt;code&gt;http.Request&lt;/code&gt;,
rendering middleware unnecessary. It Just Works. Proxies can also use non-standard parameters to report whether HTTPS was used,
what TLS ciphersuite was negotiated, and what client certificate was presented, if any.
Go automatically sets the &lt;code&gt;Request&lt;/code&gt;&amp;#39;s &lt;code&gt;TLS&lt;/code&gt; field to a non-nil (but empty) value if the request used HTTPS,
which is very handy for enforcing the use of HTTPS. The &lt;a href=&quot;https://pkg.go.dev/net/http/fcgi#ProcessEnv&quot;&gt;&lt;code&gt;fcgi.ProcessEnv&lt;/code&gt;&lt;/a&gt; function can be used to access the full set of
trusted parameters sent by the proxy.
&lt;/p&gt;&lt;h4&gt;Closing Thoughts&lt;/h4&gt;&lt;p&gt;
If FastCGI is the better protocol, why isn&amp;#39;t it more popular? Maybe it&amp;#39;s the name - while capitalizing
on CGI&amp;#39;s popularity made sense in 1996, CGI feels dated in 2026. There&amp;#39;s also an enduring lack of
awareness of the security problems with HTTP reverse proxying. 
&lt;a href=&quot;https://www.cgisecurity.com/lib/HTTP-Request-Smuggling.pdf&quot;&gt;Watchfire described desync attacks
&lt;em&gt;in 2005&lt;/em&gt;&lt;/a&gt;, and gave a prescient warning of their intractability,
but the attacks were inexplicably ignored for over a decade. In an alternate timeline, Watchfire&amp;#39;s research was taken
seriously and people went looking for other protocols for reverse proxies.
&lt;/p&gt;&lt;p&gt;
FastCGI is very usable today, and has been in production use at &lt;a href=&quot;https://sslmate.com/&quot;&gt;SSLMate&lt;/a&gt; for over 10
years. That said, using a vintage technology has some downsides.
It was never updated to support WebSockets.  The tooling is not as good.
For example, curl has no way to make requests to a FastCGI server. It
supports FTP, Gopher, and even SMTP (however that works), but not
FastCGI. When I benchmarked Go&amp;#39;s FastCGI server behind a variety
of reverse proxies, some workloads had worse throughput compared to HTTP/1.1 or HTTP/2.
I don&amp;#39;t think that&amp;#39;s inherent to the protocol, but a reflection that FastCGI code paths have not been
optimized as much as HTTP.
&lt;/p&gt;&lt;p&gt;
Despite these shortcomings, I still think FastCGI is worth using. I don&amp;#39;t
use WebSockets, and it&amp;#39;s fast enough for my use case (and maybe yours
too).  If it ever became the bottleneck, I&amp;#39;d rather buy more hardware
than deal with the nightmare of HTTP reverse proxying.
&lt;/p&gt;&lt;p&gt;
Happy 30th birthday, FastCGI!
&lt;/p&gt;</content:encoded>
</item>
<item>
<title>How the Two-Hour Marathon Was Broken - The Atlantic</title>
<link>https://www.theatlantic.com/health/2026/04/marathon-2-hours-sabastian-sawe-running-london/686974/</link>
<enclosure type="image/jpeg" length="0" url="https://cdn.theatlantic.com/thumbor/qFKTnm6tYaqSEqgjLttYVs1XCKk=/1x170:4000x2253/1200x625/media/img/mt/2026/04/2026_04_27_What_Does_a_Marathon_World_Record_Even_Mean_Anymore_/original.jpg"></enclosure>
<guid isPermaLink="false">ah5aPruIV2Fz1dNtkYnEWC4Xk72UraAYglZrEA==</guid>
<pubDate>Tue, 28 Apr 2026 16:08:47 +0000</pubDate>
<description>The marathon’s impossible barrier was broken.</description>
<content:encoded>&lt;p&gt;&lt;small&gt;&lt;em&gt;Updated at 11:05 p.m. ET on April 27, 2026&lt;/em&gt;&lt;/small&gt;&lt;/p&gt;&lt;p&gt;To understand the significance of someone running a marathon in less than two hours, you also need to understand that, until recently, the notion of this actually happening was truly, utterly absurd. Sure, a physiologist named Michael Joyner had floated the idea that such a feat might be humanly possible in &lt;a href=&quot;https://pubmed.ncbi.nlm.nih.gov/2022559/&quot;&gt;a journal paper&lt;/a&gt; way back in 1991. But his peers laughed off the idea, and not much changed over the succeeding decades. In &lt;em&gt;Runner’s World&lt;/em&gt; in 2014, I predicted that it would happen in 2075. Frankly, even that forecast seemed overly optimistic to me, but I figured I’d be dead by then, so no one would be able to call me on it.&lt;/p&gt;&lt;p&gt;Well, I was wrong. Yesterday morning, the two-hour marathon barrier finally went down. A relatively unheralded 31-year-old Kenyan named Sabastian Sawe won the London Marathon with a time of 1:59:30. That is, for reference, 26.2 miles run at an average of 4:34 a mile—or, put another way, a pace that most recreational runners would struggle to sustain for more than a few seconds, if they could hit it at all. Perhaps even more arresting was the fact that the man who took second place, Ethiopia’s Yomif Kejelcha, &lt;em&gt;also&lt;/em&gt; ran under two hours, finishing just 11 seconds behind Sawe.&lt;/p&gt;&lt;p&gt;The feat was the culmination of a shift—or, perhaps more aptly, a total disruption—in marathoning over the past few years, in which the eventual breaking of the mythical two-hour mark went from an impossibility to a guarantee. When sports are young, they progress by leaps and bounds. The first marathon over the now-standard distance of 26 miles, 385 yards, contested at the 1908 London Olympics, was won in 2:55:19. Progress in the succeeding decades was rapid, but by 1991 the sport was mature, professionalized, and lucrative. When Joyner made his prediction, the world record was 2:06:50 and had advanced by less than two minutes since the 1960s. Logic dictated that future decades would see even slower progress, as runners approached insurmountable limits in factors such as how much training they could handle and how much fuel their muscles could store.&lt;/p&gt;&lt;p&gt;The turning point came in 2016, when Nike announced its Breaking2 project. The famous Kenyan runner Eliud Kipchoge and two others were chosen as the centerpieces of a multimillion-dollar attempt to engineer every detail of a sub-two-hour marathon: nutrition, hydration, training, shoes, weather, drafting, pacing, and so on. On a Formula 1 track in Monza, Italy, in May 2017, Kipchoge ended up running 2:00:25, astonishingly and unexpectedly close to the barrier. He ran virtually the entire race behind an arrowhead formation of six pacers who blocked the wind for him; the pacers swapped in and out throughout the race, intentionally violating the rule that all competitors must start at the same time, which meant it didn’t count as a world record. But at that moment, the conversation shifted from &lt;em&gt;if&lt;/em&gt; to &lt;em&gt;when&lt;/em&gt;.&lt;/p&gt;&lt;p&gt;What remained unclear after Breaking2 was &lt;em&gt;how&lt;/em&gt; Kipchoge had run so fast. Was he simply a generational talent? Was it the drafting, which aerodynamics experts argued could shave several minutes off his time all by itself? Or was it the shoes? Nike had unveiled a radically new design for Breaking2, incorporating a curved carbon-fiber plate into a thick wedge of springy midsole foam, which external lab data suggested would make runners several percent faster. Two years later, when &lt;a href=&quot;https://www.theatlantic.com/health/archive/2019/10/kipchoges-sub-two-hour-marathon-how-legitimate-it/599974/&quot;&gt;Kipchoge ran 1:59:41&lt;/a&gt; under similar non-record-eligible conditions at Ineos’s 1:59 Challenge in Vienna, those questions still lingered. But it was clear that the shoes really worked. National and international records at every distance were falling, and every major shoe company had come up with its own version of Nike’s plate-and-foam supershoe design.&lt;/p&gt;&lt;p&gt;Now that everyone has supershoes, you might think the playing field is level. In reality, the innovation arms race has continued. The exact workings of the plate-and-foam architecture still aren’t fully understood, so shoe companies keep tinkering and producing better shoes. For yesterday’s record-setting marathon, Adidas launched a new shoe featuring an ultralight midsole foam that reduced the overall weight of the shoe to just 3.4 ounces. Sawe was wearing the shoe; four of the top five men’s finishers, including Sawe, are sponsored by Adidas.&lt;/p&gt;&lt;p&gt;It’s hard to overstate how strange this situation is for the running world, which used to pride itself on being the simplest and most gear-agnostic sport. Every year since time immemorial, shoe companies have launched new shoes with the promise that they will be game changers. Until 2017, this was never actually true. But now the record books keep being rewritten. Kipchoge brought the official record down to 2:01:39 in 2018, then 2:01:09 in 2022. The following year, another Kenyan, Kelvin Kiptum, ran 2:00:35 at the Chicago Marathon. This was proof that Kipchoge wasn’t an irreplaceable freak of nature—and invited only more questions about the shoes and what it means to compare runners year by year. Could Sawe have broken two hours in different shoes? Could he even have done it in last year’s shoes? Head-to-head comparisons are difficult: Kipchoge, now 41, is past his competitive peak, and Kiptum was killed in a car accident at age 24, just a few months after setting his world record.&lt;/p&gt;&lt;p&gt;Then there’s the question of drugs. If sprinters on steroids was the cliché of the 1980s, blood-doping endurance athletes has become a similarly familiar trope. Kenya, in particular, has been singled out as a serial offender: More than 140 runners from the country are &lt;a href=&quot;https://www.athleticsintegrity.org/disciplinary-process/global-list-of-ineligible-persons?athleteName=&amp;amp;role=&amp;amp;country=KEN&amp;amp;sex=&amp;amp;sanction=&amp;amp;discipline=&amp;amp;secondaryDiscipline=&amp;amp;infraction-year-from=&amp;amp;infraction-year-to=&amp;amp;eligibility-year-from=&amp;amp;eligibility-year-to=&quot;&gt;currently serving doping suspensions&lt;/a&gt;, including the women’s marathon world-record holder, Ruth Chepngetich, who tested positive for drugs in the summer of 2025. (Kipchoge and Kiptum have not faced any formal doping accusations.) In this respect, Sawe and Adidas have been prescient. In the two months prior to last fall’s Berlin Marathon, Adidas ponied up a &lt;a href=&quot;https://www.letsrun.com/news/2026/04/how-sabastian-sawe-convinced-the-aiu-to-test-him-more-and-why-hes-doing-it-again-in-2026/&quot;&gt;reported&lt;/a&gt; $50,000 to have World Athletics’ Athletics Integrity Unit test Sawe 25 times. Berlin turned out to be too warm for a fast time, but Adidas and Sawe continued the arrangement this year. “I wanted people to know that whatever happened in the race, I was not to be doubted,” Sawe &lt;a href=&quot;https://www.letsrun.com/news/2026/04/how-sabastian-sawe-convinced-the-aiu-to-test-him-more-and-why-hes-doing-it-again-in-2026/&quot;&gt;told&lt;/a&gt; the running website LetsRun.&lt;/p&gt;&lt;p&gt;Sawe’s extraordinary performance justified the extraordinary precautions. In London, a pack of six runners broke away early, tucked behind three pacemakers until the halfway mark, reached in 1:00:29—which, you’ll note, is considerably slower than two-hour pace. Sawe looked barely conscious, conserving his energy, his eyes locked onto the back of the pacemaker in front of him. One of the pacemakers continued until just after the 25-kilometer mark, by which time the pack had been reduced to three. Once that final pacemaker dropped out, Sawe came alive and began to turn the screws.&lt;/p&gt;&lt;p&gt;If the magic of Kipchoge’s unofficial sub-two-hour race was in the drafting, then Sawe having to lead for more than 10 miles should have doomed him. Instead, he got steadily faster. Only in the final few miles did the BBC’s race commentators suddenly realize that history might be beckoning. You can’t blame them: Nobody could have foreseen how much Sawe would accelerate. He ran the second half in 59:01—a time that, on its own, would be a national record in all but a handful of countries. And glued to Sawe’s shoulder until the final mile was Kejelcha, the Ethiopian runner, waiting for him to falter. Sometimes top runners prefer to minimize competition when they’re chasing world records so that they don’t need to worry about getting passed if they misjudge the pace. But in this case, it seems likely that Sawe’s acceleration was fueled at least in part by the desperate desire to shake off his persistent shadow.&lt;/p&gt;&lt;p&gt;All told, Sawe’s breakthrough—the head-to-head throwdown, the drug-testing program, the dramatic finale—was exactly how you’d script an all-time performance. He did everything right—which is why I feel bad about the lingering hint of anticlimax I feel in myself and sense in my running friends. The truth is, Sawe’s performance was only the second-most surprising marathon result of the weekend. At a marathon in Toledo, Ohio, an unheralded local 25-year-old named Vincent Mauri won in 2:05:55, beating the previous course record by more than 13 minutes. This makes him the fourth-fastest American in history. These are both, in their own way, performances for the ages, unless next year’s shoes turn out to be even better.&lt;/p&gt;&lt;hr/&gt;&lt;p&gt;&lt;small&gt;&lt;em&gt;This story originally misstated Sawe’s time at the halfway point of his record-setting marathon as 1:00:26.&lt;/em&gt;&lt;/small&gt;&lt;/p&gt;</content:encoded>
</item>
<item>
<title>The Slavery in XXI Sentury</title>
<link>https://rocket-science.ru/essay/2026/04/28/21st-century-slavery</link>
<enclosure type="image/jpeg" length="0" url="https://rocket-science.ru/img/logo/logo-orig.png"></enclosure>
<guid isPermaLink="false">3CwEx460UzeMKGLGeUszGq7BozmZIZDUrKSZ6g==</guid>
<pubDate>Tue, 28 Apr 2026 11:26:03 +0000</pubDate>
<description>A sharp-tongued meditation on why people are genuinely excited about AI assistants—and why the answer has nothing to do with productivity.</description>
<content:encoded>&lt;p&gt;For a long time I couldn’t quite fathom what all the fuss was about with electronic writing and coding assistants. Technologically—amusing. Practically—it genuinely speeds up the production of anything that can be auto-completed without loss of meaning. In other words, if we already know how to walk and know the way to the library, the assistant will run there faster than us. But if we happen to be—God forgive us—a startup founder with an unfinished liberal arts degree, the models will only compound our incompetence. We’ll now be wading into impenetrable swamps a thousand times faster than the most agile Susanin. What exactly are the people around me so enraptured by?&lt;/p&gt;&lt;p&gt;I’ll set aside the fact that writing and debugging complex code is an indescribable pleasure (and the word “indescribable” carries many meanings here). Yes, fortunately, before the boom of assistants with anything close to a natural flavour, I had accumulated megabytes of both code and literary texts on which I trained my page, and he now observes the minimum rules of hygiene: doesn’t plaster nested conditionals left and right, and varies texts with not-too-hackneyed metaphors instead of bullet points and emoji. I know how to solve any problem within the competence of my intellectual court’s ladies-in-waiting, so my instructions produce coherent and working code. This saves time, but damn it all, I actually enjoy the process of writing code and notes. Speeding that process up by delegation is like summoning your valet to bed the visiting countess, “Right, listen—first crack a joke or two, then smile meaningfully, drop a Dante quote at exactly the right moment, take her by the hand, lead her to the chambers, undress her, and record the readings on the quasi-peak sound level meter so I can later compute the regression against your previous attempt.”&lt;/p&gt;&lt;p&gt;What is there to celebrate? What to admire?&lt;/p&gt;&lt;p&gt;From an early age I tried not to do things that didn’t interest me; things that did interest me I pursued with dedication. I learned to sew on my grandmother’s Singer to give my jeans a flare. To cook—so I could eat well. To work with wood and metal—because nothing is more pleasant than the smell of a blank being machined on a milling cutter. To lay stoves and run electrical wiring—for those two I even bothered to get the proper certificates. That said, I can neither swim nor dance, and I’ve never jumped with a parachute: those activities simply don’t interest me. From a burning aircraft—I’d jump without hesitation; spending personal time on them by choice—no, thank you.&lt;/p&gt;&lt;p&gt;Whatever interests me, I invest in fully. If programmers were paid less than sewage workers, I would still keep writing code. This is entirely not a question of monetary compensation (provided I have something modest for supper and something to rest on between sundown and sunrise).&lt;/p&gt;&lt;p&gt;So what is it about these assistants that so captivates people, beyond the technological component?—And then it hit me. All these people seem to have always harboured a secret dream of finding themselves in a slave-owning society—and not in Uncle Tom’s or Harry’s shoes. The dream of “giving orders and watching them carried out” turns out to be still quite popular even in our enlightened age. I can do literally everything I need in daily life—from fitting a sink to sewing straps onto towels, from dolma for a dinner party to driving a car loaded with belongings from Moscow to Barcelona in a couple of days. I have no habit of asking for help on any occasion whatsoever (that is how I learned to rhyme, for instance: it struck me as inappropriate to ask Pavlik to write a couple of quatrains for my lady of that particular moment). I begin every dialogue with the artificial &lt;em&gt;T9&lt;/em&gt; with the word “please” and wrap up each iteration with praise. I have been compelled to learn 17 synonyms for the word “amazing.”&lt;/p&gt;&lt;p&gt;But I have always been the person from whose direction of travel one can easily infer where the masses are headed: simply glance at where I’m going and point the other way. Most people are delighted to have acquired a personal slave. Not terribly smart, insufficiently independent—but one to whom you can always express your most outlandish fantasy and hear in return: “You are absolutely right!” In terms of soft skills, even the most budget-tier model surpasses me by a factor of a thousand.&lt;/p&gt;&lt;p&gt;People are enraptured not because they can now work &lt;em&gt;faster&lt;/em&gt; and &lt;em&gt;more productively&lt;/em&gt;—they are glad that they can now work &lt;em&gt;less&lt;/em&gt;. The indie-solo-entrepreneurs are overjoyed that they (ostensibly) no longer need to pay professionals. We have acquired a surrogate, junk food for the brain (first dose free). The Anthropic model’s approach currently seems like the right target-setting (&lt;em&gt;b2b&lt;/em&gt;), but no—the true future of this business lies in &lt;em&gt;b2c&lt;/em&gt;. Very soon people will find themselves unable to refuse a helper who never argues, always agrees, and is perpetually delighted. And who even does something uncomplicated in your stead. Once the critical mass crosses the point of no return, assistants will be packaged in cases resembling Tamagotchis and handed out at supermarkets. A subscription to such a slave will cost rather more than $20—but by all means, as Brodsky wrote on a somewhat different subject: “We’ll pin heavy brooches to our dresses, // and if anyone’s short of money, we’ll pay.”&lt;/p&gt;&lt;p&gt;I think that if right now someone launched a Kickstarter campaign for such a Tamagotchi—with voice recognition, naturally—the funding goal could be reached in a single day. If anyone is interested in building a profitable business (I am not)—I recommend giving it a try. The slave trade is a lucrative affair; was, is, and always will be.&lt;/p&gt;</content:encoded>
</item>
<item>
<title>两朵红花 | JustGoIdea</title>
<link>https://justgoidea.com/two-reds/</link>
<enclosure type="image/jpeg" length="0" url="https://bear-images.sfo2.cdn.digitaloceanspaces.com/justgoidea/two_reds.webp"></enclosure>
<guid isPermaLink="false">1GdA0lXru___5XiqTsOYM7usxedpPsE12pD_PQ==</guid>
<pubDate>Sat, 25 Apr 2026 12:01:30 +0000</pubDate>
<description>同一个 4 月 25 日，南半球的红罂粟纪念战争的代价，里斯本的红康乃馨纪念枪口曾经被花挡住的选择。</description>
<content:encoded>&lt;h1&gt;两朵红花&lt;/h1&gt;&lt;p&gt;
            &lt;i&gt;
                &lt;time&gt;
    25 Apr, 2026
&lt;/time&gt;
            &lt;/i&gt;
        &lt;/p&gt;&lt;h2&gt;一&lt;/h2&gt;&lt;p&gt;1497 年 7 月 8 日，达·伽马的船队即将从里斯本郊外的雷斯特罗海滩起航，去寻找通往印度的航路。送行的人群中，一位老人突然提高声音，朝着船上的水手喊出：&lt;/p&gt;&lt;blockquote&gt;
&lt;p&gt;Ó glória de mandar! Ó vã cobiça
Desta vaidade, a quem chamamos Fama!&lt;/p&gt;
&lt;p&gt;啊，统治的荣耀！啊，被我们称作「名誉」的虚妄贪欲！&lt;/p&gt;
&lt;p&gt;——Luís de Camões, &lt;em&gt;Os Lusíadas&lt;/em&gt;, IV.95&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;他不祝福，不壮行，而是诅咒。他告诉所有人，这趟即将开启的伟大远航不过是虚荣，统治的荣耀只是权力拿来骗年轻人去送死的幌子。&lt;/p&gt;&lt;p&gt;这个角色后来被称为 Velho do Restelo（雷斯特罗的老人）。他在整部史诗里只出现一次，而且出现在最不合时宜的时刻。&lt;/p&gt;&lt;p&gt;卡蒙斯本人曾作为士兵远赴帝国边疆，亲身经历过战争。写《葡国魂》原本是要歌颂葡萄牙的航海伟业，可他偏偏在这首颂歌的中央留了一道裂缝——让一个无名老人站在岸上，对着整个帝国的出发仪式说不。&lt;/p&gt;&lt;p&gt;在帝国叙事里，这个老人常被读成悲观者、失败主义者；1974 年之后，人们重新去读，才发现他是诗人埋在自己国家神话最深处的一根刺。&lt;/p&gt;&lt;p&gt;他的诅咒没有阻止任何一艘船起航。&lt;/p&gt;&lt;h2&gt;二&lt;/h2&gt;&lt;p&gt;2015 年，我在奥克兰。三月还没过完，红黑相间的纪念旗就挂满了大街小巷。从 Queen Street 到 Parnell，风把旗角吹得猎猎作响。整座城市在为一件大事蓄势——ANZAC Day 一百周年。&lt;/p&gt;&lt;p&gt;4 月 25 日的 Dawn Service 在 Auckland Domain 的博物馆前草坪上举行。天还没亮，人们打着手电筒沿山坡向上走。仪式从号角吹响 &lt;em&gt;Last Post&lt;/em&gt; 开始。然后是一分钟的沉默。那种沉默不是安静，是所有人同时停止呼吸。号角再次响起，吹的是 &lt;em&gt;Rouse&lt;/em&gt;，把人从死亡的静默里唤回来。&lt;/p&gt;&lt;p&gt;草坪上插满红色的纸罂粟，一朵代表一个死在异乡的年轻人。一百年前在加里波利登陆的那批澳新军团士兵，很多人没有活过那天的日出。&lt;/p&gt;&lt;p&gt;红罂粟的意象来自一战西线的弗兰德斯。炮弹把那片地反复犁开，红罂粟却在被战争翻开的土壤里成片生长。&lt;/p&gt;&lt;p&gt;这种纪念很容易被浪漫化。但清晨的寒意是真的，号角是真的，沉默是真的。数千人站在黑暗里，不是为了歌颂战争，而是为了承认一件事：那些被国家送出去的年轻人，有很多再也没有回来。&lt;/p&gt;&lt;p&gt;承认这件事本身就是一种政治行为。因为紧跟着这个承认的，是一个不那么舒服的问题：他们的死，原本是否可以避免？&lt;/p&gt;&lt;h2&gt;三&lt;/h2&gt;&lt;p&gt;同一个日期，地球另一端。&lt;/p&gt;&lt;p&gt;1974 年 4 月 25 日凌晨，Rádio Renascença 的夜间节目播出 &amp;quot;Grândola, Vila Morena&amp;quot;。对大多数听众来说，那只是深夜电台里一首模糊的旋律。但对「武装部队运动」的军官们来说，那是约定好的第二道暗号。&lt;/p&gt;&lt;p&gt;坦克开上了街头。奇怪的是，坦克不是冲着人民来的。&lt;/p&gt;&lt;p&gt;推动这场革命的是一批从非洲回来的青年军官。从 1961 年到 1974 年，葡萄牙在安哥拉、莫桑比克和几内亚比绍打了十三年殖民战争。他们被以「保卫海外行省」、「捍卫文明与信仰」的名义送往丛林。在那里他们看见的不是荣耀。他们看见的是卡蒙斯笔下那个老人四百年前就指认过的东西——&lt;em&gt;vã glória de mandar&lt;/em&gt;，统治的虚荣。&lt;/p&gt;&lt;p&gt;8,831 名葡萄牙年轻人死在非洲，15,507 人致残。非洲一方的死亡人数接近十万。到七十年代初，这场战争已经成了国家财政无法承受的黑洞；到战争末期，军事支出一度接近国家总支出的四成。&lt;/p&gt;&lt;p&gt;这些数字的背后是肉身。是一代人在丛林里发现自己正在替一个四十八年的独裁政权执行它最后的虚荣。&lt;/p&gt;&lt;p&gt;所以这些军官这一次没有把枪口对准平民，没有用坦克碾过广场。他们把枪口掉转过来，指向了派他们去打仗的那个独裁政权。&lt;/p&gt;&lt;p&gt;一位名为 Celeste Caeiro 的女人当时在里斯本 Rua Braamcamp 的一家 self-service 餐厅工作。那天是餐厅一周年店庆，老板买了一大筐康乃馨准备送给客人。革命一来，店没有开成。Celeste 抱着那筐没有送出去的花走上街头，后来来到 Rossio 一带，把康乃馨一支一支递给路过的士兵。&lt;/p&gt;&lt;p&gt;一个偶然。一筐本来用于庆祝店庆的花，变成了一场革命的符号。&lt;/p&gt;&lt;p&gt;花是因为握枪的人此刻选择不让它开火，才有意义的。&lt;/p&gt;&lt;h2&gt;四&lt;/h2&gt;&lt;p&gt;我写这篇文章的时候，世界上仍有多场战争正在进行。&lt;/p&gt;&lt;blockquote&gt;
&lt;p&gt;Ó glória de mandar.&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;统治的荣耀。四百年过去了，那个老人诅咒的东西换了名字——有时叫「保卫海外行省」，有时叫「特别军事行动」，有时叫「先发制人的自卫权」，有时叫「保家卫国」——但没有变过的是：先把年轻人送出去，再给他们的死找一个宏大的名义。&lt;/p&gt;&lt;p&gt;在 2026 年的此刻，康乃馨革命所代表的那种可能性——一支军队拒绝继续执行暴力，一个国家选择用宪法而非枪炮来解决分歧——正在变得越来越稀薄，越来越珍贵。&lt;/p&gt;&lt;p&gt;而从来都有一个红色幽灵在讲述着另一个版本。枪响了，广场清场了，然后那个清晨发生过的事从所有的教科书和公共记忆里被抹去，仿佛从未存在。在那个版本里，Velho do Restelo 不会被写进史诗。他会在说出第一个字之前就被从海滩上带走，而史诗本身会被审核，确保里面没有任何裂缝。&lt;/p&gt;&lt;p&gt;卡蒙斯的了不起之处在于，他把异议留在了颂歌里面。一个体制如果连自己的颂歌里都容不下一个提反对意见的老人，那它所守护的就不是什么荣耀，而仅仅是恐惧。&lt;/p&gt;&lt;h2&gt;五&lt;/h2&gt;&lt;p&gt;1974 年的革命只用了一天。但从军人发动的革命走到文官主持的宪政，用了两年。&lt;/p&gt;&lt;p&gt;这两年不平静。1975 年夏天，左翼激进派与温和派的拉扯一度让葡萄牙濒临内战。一个刚刚推翻独裁的国家，差点被自己的自由撕碎。&lt;/p&gt;&lt;p&gt;但最终，那些当年拒绝为殖民战争继续开火的军官，同样选择了在适当的时候把权力交出去。这是康乃馨革命最不被人谈论、却最值得记住的部分。&lt;/p&gt;&lt;p&gt;1976 年 4 月 2 日，制宪议会通过宪法。同月 25 日，宪法生效，共和国在新宪制下举行首次选举。宪法写明：人的生命不可侵犯，不得判处死刑。革命的能量从军营和街头，转移到了投票箱和议事厅。&lt;/p&gt;&lt;p&gt;今年是那部宪法生效的第五十年。&lt;/p&gt;&lt;p&gt;五十年，足够让一代人从出生走到中年；足够让人忘记宪法里每一条枯燥的条文，最初都是用血的教训换来的；也足够让人开始觉得，民主是空气一样理所当然的东西。直到有一天它不在了，才发现自己正在窒息。&lt;/p&gt;&lt;p&gt;革命需要勇气。但把权力从枪管转移到纸上，需要比勇气更难的东西，需要握枪的人相信，纸比枪更持久。&lt;/p&gt;&lt;h2&gt;六&lt;/h2&gt;&lt;p&gt;每年四月二十五日，我都出门走一走。自由大道上人不算多，有人举政党的旗帜，有人只是胸前别一朵红色康乃馨随意走走。里斯本的春天今年来得偏晚，但这一天是晴的。阳光打在那些老人的白头发上，他们是真正记得那个清晨的最后一代人。&lt;/p&gt;&lt;p&gt;我有时会想起 2015 年奥克兰的那个清晨。南半球的秋意已经很重，号角划过黑暗，草坪上插满纸罂粟，红得发暗。&lt;/p&gt;&lt;p&gt;红罂粟纪念的是已经发生的代价，康乃馨纪念的是一个曾经被做出的选择。&lt;/p&gt;&lt;p&gt;一朵红花说：他们死了。&lt;/p&gt;&lt;p&gt;另一朵红花说：他们本不必死。&lt;/p&gt;&lt;hr/&gt;&lt;p&gt;&lt;a href=&quot;https://justgoidea.com/du-tao-an-meng-yi-zhong-shan&quot;&gt;Previous&lt;/a&gt; | &lt;/p&gt;&lt;p&gt;
                
                    &lt;a href=&quot;https://justgoidea.com/posts/?q=LisbonDiary&quot;&gt;#LisbonDiary&lt;/a&gt;
                
            &lt;/p&gt;</content:encoded>
</item>
<item>
<title>Something has happened to my blog</title>
<link>https://freethoughtblogs.com/pharyngula/2026/04/22/something-has-happened-to-my-blog/</link>
<enclosure type="image/jpeg" length="0" url="https://freethoughtblogs.com/pharyngula/wp-content/themes/ftb2-theme/images/logo.gif"></enclosure>
<guid isPermaLink="false">ER0Ik-j4jFu_ymmH88iZoTLc0yYSGhfsh6mh0A==</guid>
<pubDate>Thu, 23 Apr 2026 00:33:46 +0000</pubDate>
<description>I don’t pay much attention to site stats, actively avoiding digging into them. I’m not interested in optimizing for traffic, or that SEO nonsense, but as the administrator for this site…</description>
<content:encoded>&lt;article&gt;&lt;header&gt;  &lt;div&gt;
    &lt;span&gt;&lt;a href=&quot;https://freethoughtblogs.com/pharyngula/2026/04/22/what-does-theridion-eat-asked-answered/&quot;&gt;What does &lt;i&gt;Theridion&lt;/i&gt; eat? Asked &amp;amp; answered&lt;/a&gt; »&lt;/span&gt;
    &lt;span&gt;« &lt;a href=&quot;https://freethoughtblogs.com/pharyngula/2026/04/22/failing-upward/&quot;&gt;Failing upward&lt;/a&gt;&lt;/span&gt;
    
  &lt;/div&gt;
&lt;h1&gt;Something has happened to my blog&lt;/h1&gt; 
&lt;/header&gt;&lt;hr/&gt;&lt;div&gt;&lt;p&gt;I don’t pay much attention to site stats, actively avoiding digging into them. I’m not interested in optimizing for traffic, or that SEO nonsense, but as the administrator for this site I’ve got this little toolbar at the top of the window that graphically shows how many visits the site gets. It’s not something I really care about, but I did like the predictable wave-like plot — visits rise until about noon, and then slowly decline over the course of the afternoon and evening, before starting to rise in the early morning. The tide goes in, the tide goes out, and you can’t explain that…OK, except that I can, because it tells me I have a predominantly American audience and it’s just a reflection of human daily activity levels in my hemisphere. That’s another reason to not attach much significance to those numbers.&lt;/p&gt;
&lt;p&gt;Except…over the last few weeks, the rhythm has been disrupted. The waves are gone. I’m getting site activity all night long, which makes me suspect this isn’t &lt;em&gt;human&lt;/em&gt; activity. On closer inspection, site views have also been more than doubled, which sounds like a good thing, except that I seem to be talking to non-human entities. Not aliens, though — AIs scouring the web.&lt;/p&gt;
&lt;p&gt;Then I saw &lt;a href=&quot;https://freethought.online/@jplebreton@mastodon.social/116446215614637619&quot;&gt;this comment on Mastodon&lt;/a&gt;:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://freethoughtblogs.com/pharyngula/files/2026/04/AI-agents.png&quot;&gt;&lt;img src=&quot;https://freethoughtblogs.com/pharyngula/files/2026/04/AI-agents-500x266.png&quot; alt=&quot;&quot; title=&quot;&quot;/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;It’s all artificial, and not at all intelligent. They’re not contributing anything, they’re not the audience I want to talk to, and I think all they’re going to do is jack up my hosting expenses.&lt;/p&gt;
&lt;p&gt;If it is aliens, though, welcome. Leave a comment. I’m sure many people here would love to have a conversation with you.&lt;/p&gt;
&lt;div&gt;&lt;div&gt;&lt;h3&gt;Share this:&lt;/h3&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://freethoughtblogs.com/pharyngula/2026/04/22/something-has-happened-to-my-blog/#print&quot;&gt;&lt;span&gt;Print&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://freethoughtblogs.com/pharyngula/2026/04/22/something-has-happened-to-my-blog/?share=email&quot;&gt;&lt;span&gt;Email&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.tumblr.com/share/link/?url=https%3A%2F%2Ffreethoughtblogs.com%2Fpharyngula%2F2026%2F04%2F22%2Fsomething-has-happened-to-my-blog%2F&amp;amp;name=Something%20has%20happened%20to%20my%20blog&quot;&gt;Share on Tumblr&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://twitter.com/share&quot;&gt;Tweet&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;&lt;a href=&quot;https://www.pinterest.com/pin/create/button/?url=https%3A%2F%2Ffreethoughtblogs.com%2Fpharyngula%2F2026%2F04%2F22%2Fsomething-has-happened-to-my-blog%2F&amp;amp;media=https%3A%2F%2Ffreethoughtblogs.com%2Fpharyngula%2Ffiles%2F2026%2F04%2FAI-agents.png&amp;amp;description=Something%20has%20happened%20to%20my%20blog&quot;&gt;&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;  &lt;div&gt;
    &lt;span&gt;&lt;a href=&quot;https://freethoughtblogs.com/pharyngula/2026/04/22/what-does-theridion-eat-asked-answered/&quot;&gt;What does &lt;i&gt;Theridion&lt;/i&gt; eat? Asked &amp;amp; answered&lt;/a&gt; »&lt;/span&gt;
    &lt;span&gt;« &lt;a href=&quot;https://freethoughtblogs.com/pharyngula/2026/04/22/failing-upward/&quot;&gt;Failing upward&lt;/a&gt;&lt;/span&gt;
    
  &lt;/div&gt;
&lt;footer&gt;&lt;ul&gt;
  &lt;li&gt; &lt;span&gt;&lt;a href=&quot;https://freethoughtblogs.com/pharyngula/author/pharyngula/&quot;&gt;&lt;span&gt;PZ Myers&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
  &lt;li&gt; &lt;time&gt;22 April 2026&lt;/time&gt;&lt;/li&gt;
  &lt;li&gt; &lt;span&gt;&lt;a href=&quot;https://freethoughtblogs.com/pharyngula/category/technology/&quot;&gt;Technology&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
  &lt;li&gt;
        &lt;a href=&quot;https://freethoughtblogs.com/wp-login.php?redirect_to=https://freethoughtblogs.com/pharyngula/2026/04/22/something-has-happened-to-my-blog/&quot;&gt;Log in to comment&lt;/a&gt;
      &lt;/li&gt;
&lt;/ul&gt;
&lt;/footer&gt;&lt;/article&gt;&lt;div&gt;&lt;h3&gt;Comments&lt;/h3&gt;&lt;ol&gt;
	&lt;li&gt;
	&lt;article&gt;

		
		&lt;header&gt;
			&lt;p&gt;
				&lt;img src=&quot;https://secure.gravatar.com/avatar/da867203f3e988a5eaeedc0916c31983?s=48&amp;amp;d=identicon&amp;amp;r=r&quot; alt=&quot;&quot; title=&quot;&quot;/&gt;&lt;span&gt;Snarki, child of Loki&lt;/span&gt; &lt;span&gt;says&lt;/span&gt;		 	&lt;/p&gt;

			&lt;p&gt;
				&lt;time&gt;&lt;a href=&quot;https://freethoughtblogs.com/pharyngula/2026/04/22/something-has-happened-to-my-blog/#comment-2298778&quot;&gt;22 April 2026 at 12:37 pm&lt;/a&gt;&lt;/time&gt;			&lt;/p&gt;
		&lt;/header&gt;

		&lt;div&gt;
			
			&lt;p&gt;There are configuration options that can block AI-bots, but they require direct control of your webserver.&lt;br/&gt;
…and with a rapidly changing landscape of AI monetization/grifting, what worked last week might not work so well this week.&lt;/p&gt;
&lt;p&gt;Nuke them from orbit, amirite?&lt;/p&gt;
		&lt;/div&gt;

		
		
	&lt;/article&gt;
	&lt;/li&gt;

	&lt;li&gt;
	&lt;article&gt;

		
		&lt;header&gt;
			&lt;p&gt;
				&lt;img src=&quot;https://secure.gravatar.com/avatar/da867203f3e988a5eaeedc0916c31983?s=48&amp;amp;d=identicon&amp;amp;r=r&quot; alt=&quot;&quot; title=&quot;&quot;/&gt;&lt;span&gt;Snarki, child of Loki&lt;/span&gt; &lt;span&gt;says&lt;/span&gt;		 	&lt;/p&gt;

			&lt;p&gt;
				&lt;time&gt;&lt;a href=&quot;https://freethoughtblogs.com/pharyngula/2026/04/22/something-has-happened-to-my-blog/#comment-2298779&quot;&gt;22 April 2026 at 12:39 pm&lt;/a&gt;&lt;/time&gt;			&lt;/p&gt;
		&lt;/header&gt;

		&lt;div&gt;
			
			&lt;p&gt;Possibly useful link:&lt;br/&gt;
 &lt;a href=&quot;https://perishablepress.com/ultimate-ai-block-list/&quot;&gt;https://perishablepress.com/ultimate-ai-block-list/&lt;/a&gt;&lt;/p&gt;
		&lt;/div&gt;

		
		
	&lt;/article&gt;
	&lt;/li&gt;

	&lt;li&gt;
	&lt;article&gt;

		
		&lt;header&gt;
			&lt;p&gt;
				&lt;img src=&quot;https://secure.gravatar.com/avatar/370c16e5c2dcc5a1c267495338b92d97?s=48&amp;amp;d=identicon&amp;amp;r=r&quot; alt=&quot;&quot; title=&quot;&quot;/&gt;&lt;span&gt;christoph&lt;/span&gt; &lt;span&gt;says&lt;/span&gt;		 	&lt;/p&gt;

			&lt;p&gt;
				&lt;time&gt;&lt;a href=&quot;https://freethoughtblogs.com/pharyngula/2026/04/22/something-has-happened-to-my-blog/#comment-2298781&quot;&gt;22 April 2026 at 12:48 pm&lt;/a&gt;&lt;/time&gt;			&lt;/p&gt;
		&lt;/header&gt;

		&lt;div&gt;
			
			&lt;p&gt;@ Snarki: “This is clearly an important species we’re dealing with, and I don’t think you-or I, or anyone else, has the right to arbitrarily wipe them out.”&lt;/p&gt;
		&lt;/div&gt;

		
		
	&lt;/article&gt;
	&lt;/li&gt;

	&lt;li&gt;
	&lt;article&gt;

		
		&lt;header&gt;
			&lt;p&gt;
				&lt;img src=&quot;https://secure.gravatar.com/avatar/a752b56619f21f521c551343c616e3f2?s=48&amp;amp;d=identicon&amp;amp;r=r&quot; alt=&quot;&quot; title=&quot;&quot;/&gt;&lt;span&gt;larpar&lt;/span&gt; &lt;span&gt;says&lt;/span&gt;		 	&lt;/p&gt;

			&lt;p&gt;
				&lt;time&gt;&lt;a href=&quot;https://freethoughtblogs.com/pharyngula/2026/04/22/something-has-happened-to-my-blog/#comment-2298787&quot;&gt;22 April 2026 at 1:15 pm&lt;/a&gt;&lt;/time&gt;			&lt;/p&gt;
		&lt;/header&gt;

		&lt;div&gt;
			
			&lt;p&gt;⊑⟟, ⊑⍜⍙ ⊬⍜⎍ ⎅⍜⟟⋏☌?&lt;/p&gt;
		&lt;/div&gt;

		
		
	&lt;/article&gt;
	&lt;/li&gt;

	&lt;li&gt;
	&lt;article&gt;

		
		&lt;header&gt;
			&lt;p&gt;
				&lt;img src=&quot;https://secure.gravatar.com/avatar/cc5134a819c7edfc0445c60b6810fc6c?s=48&amp;amp;d=identicon&amp;amp;r=r&quot; alt=&quot;&quot; title=&quot;&quot;/&gt;&lt;span&gt;timmyson&lt;/span&gt; &lt;span&gt;says&lt;/span&gt;		 	&lt;/p&gt;

			&lt;p&gt;
				&lt;time&gt;&lt;a href=&quot;https://freethoughtblogs.com/pharyngula/2026/04/22/something-has-happened-to-my-blog/#comment-2298788&quot;&gt;22 April 2026 at 1:21 pm&lt;/a&gt;&lt;/time&gt;			&lt;/p&gt;
		&lt;/header&gt;

		&lt;div&gt;
			
			&lt;p&gt;Handy that Larper in @4 already had Unicode code points to use!&lt;/p&gt;
		&lt;/div&gt;

		
		
	&lt;/article&gt;
	&lt;/li&gt;

	&lt;li&gt;
	&lt;article&gt;

		
		&lt;header&gt;
			&lt;p&gt;
				&lt;img src=&quot;https://secure.gravatar.com/avatar/a752b56619f21f521c551343c616e3f2?s=48&amp;amp;d=identicon&amp;amp;r=r&quot; alt=&quot;&quot; title=&quot;&quot;/&gt;&lt;span&gt;larpar&lt;/span&gt; &lt;span&gt;says&lt;/span&gt;		 	&lt;/p&gt;

			&lt;p&gt;
				&lt;time&gt;&lt;a href=&quot;https://freethoughtblogs.com/pharyngula/2026/04/22/something-has-happened-to-my-blog/#comment-2298789&quot;&gt;22 April 2026 at 1:26 pm&lt;/a&gt;&lt;/time&gt;			&lt;/p&gt;
		&lt;/header&gt;

		&lt;div&gt;
			
			&lt;p&gt;timmyson @5&lt;br/&gt;
I’m clueless. I used &lt;a href=&quot;https://alientextgenerator.com/&quot;&gt;https://alientextgenerator.com/&lt;/a&gt;.&lt;/p&gt;
		&lt;/div&gt;

		
		
	&lt;/article&gt;
	&lt;/li&gt;

	&lt;li&gt;
	&lt;article&gt;

		
		&lt;header&gt;
			&lt;p&gt;
				&lt;img src=&quot;https://secure.gravatar.com/avatar/63199534f2ffde147af0765d59ec8def?s=48&amp;amp;d=identicon&amp;amp;r=r&quot; alt=&quot;&quot; title=&quot;&quot;/&gt;&lt;span&gt;kurt1&lt;/span&gt; &lt;span&gt;says&lt;/span&gt;		 	&lt;/p&gt;

			&lt;p&gt;
				&lt;time&gt;&lt;a href=&quot;https://freethoughtblogs.com/pharyngula/2026/04/22/something-has-happened-to-my-blog/#comment-2298793&quot;&gt;22 April 2026 at 2:42 pm&lt;/a&gt;&lt;/time&gt;			&lt;/p&gt;
		&lt;/header&gt;

		&lt;div&gt;
			
			&lt;p&gt;Traffic increase is not even over 9000%.&lt;br/&gt;
The Bill O’Reilly reference brought back memories.&lt;/p&gt;
		&lt;/div&gt;

		
		
	&lt;/article&gt;
	&lt;/li&gt;

	&lt;li&gt;
	&lt;article&gt;

		
		&lt;header&gt;
			&lt;p&gt;
				&lt;img src=&quot;https://secure.gravatar.com/avatar/ae73b3007b37f9134dfbcadc1ae30803?s=48&amp;amp;d=identicon&amp;amp;r=r&quot; alt=&quot;&quot; title=&quot;&quot;/&gt;&lt;span&gt;&lt;a href=&quot;http://theartsinarizona.org&quot;&gt;shermanj&lt;/a&gt;&lt;/span&gt; &lt;span&gt;says&lt;/span&gt;		 	&lt;/p&gt;

			&lt;p&gt;
				&lt;time&gt;&lt;a href=&quot;https://freethoughtblogs.com/pharyngula/2026/04/22/something-has-happened-to-my-blog/#comment-2298798&quot;&gt;22 April 2026 at 3:58 pm&lt;/a&gt;&lt;/time&gt;			&lt;/p&gt;
		&lt;/header&gt;

		&lt;div&gt;
			
			&lt;p&gt;Our webmaster suspects a surge in traffic may be hacker and AI bots scraping your site and harvesting info on you and the commenters. If not them, it’s probably the krash patel fbi.&lt;br/&gt;
I suggest you go listen to The Byrds ‘mister spaceman’. It’s probably been pirated and posted on youtube.&lt;/p&gt;
		&lt;/div&gt;

		
		
	&lt;/article&gt;
	&lt;/li&gt;

	&lt;li&gt;
	&lt;article&gt;

		
		&lt;header&gt;
			&lt;p&gt;
				&lt;img src=&quot;https://secure.gravatar.com/avatar/ae73b3007b37f9134dfbcadc1ae30803?s=48&amp;amp;d=identicon&amp;amp;r=r&quot; alt=&quot;&quot; title=&quot;&quot;/&gt;&lt;span&gt;&lt;a href=&quot;http://theartsinarizona.org&quot;&gt;shermanj&lt;/a&gt;&lt;/span&gt; &lt;span&gt;says&lt;/span&gt;		 	&lt;/p&gt;

			&lt;p&gt;
				&lt;time&gt;&lt;a href=&quot;https://freethoughtblogs.com/pharyngula/2026/04/22/something-has-happened-to-my-blog/#comment-2298799&quot;&gt;22 April 2026 at 4:02 pm&lt;/a&gt;&lt;/time&gt;			&lt;/p&gt;
		&lt;/header&gt;

		&lt;div&gt;
			
			&lt;p&gt;PZ wrote: It’s all artificial, and not at all intelligent. They’re not contributing anything&lt;br/&gt;
I reply: it’s the wave of the AI bullshit future washing up on the shore of chaotic society. And, we are being drowned in it.&lt;/p&gt;
		&lt;/div&gt;

		
		
	&lt;/article&gt;
	&lt;/li&gt;

	&lt;li&gt;
	&lt;article&gt;

		
		&lt;header&gt;
			&lt;p&gt;
				&lt;img src=&quot;https://secure.gravatar.com/avatar/4987928529753f6ca237841116b867fb?s=48&amp;amp;d=identicon&amp;amp;r=r&quot; alt=&quot;&quot; title=&quot;&quot;/&gt;&lt;span&gt;John Morales&lt;/span&gt; &lt;span&gt;says&lt;/span&gt;		 	&lt;/p&gt;

			&lt;p&gt;
				&lt;time&gt;&lt;a href=&quot;https://freethoughtblogs.com/pharyngula/2026/04/22/something-has-happened-to-my-blog/#comment-2298800&quot;&gt;22 April 2026 at 4:14 pm&lt;/a&gt;&lt;/time&gt;			&lt;/p&gt;
		&lt;/header&gt;

		&lt;div&gt;
			
			&lt;p&gt;I myself don’t ever respond to advertising.  Unlike humans, apparently.&lt;/p&gt;
&lt;p&gt;(Heh)&lt;/p&gt;
&lt;p&gt;—&lt;/p&gt;
&lt;p&gt;As for the thesis, well… surely that is culturally-based.&lt;/p&gt;
&lt;p&gt;(Also, that Harry Chapin &lt;abbr&gt;song&lt;/abbr&gt;)&lt;/p&gt;
		&lt;/div&gt;

		
		
	&lt;/article&gt;
	&lt;/li&gt;

	&lt;li&gt;
	&lt;article&gt;

		
		&lt;header&gt;
			&lt;p&gt;
				&lt;img src=&quot;https://secure.gravatar.com/avatar/7ca9005fe0ec16f569261234f2f62a31?s=48&amp;amp;d=identicon&amp;amp;r=r&quot; alt=&quot;&quot; title=&quot;&quot;/&gt;&lt;span&gt;nomdeplume&lt;/span&gt; &lt;span&gt;says&lt;/span&gt;		 	&lt;/p&gt;

			&lt;p&gt;
				&lt;time&gt;&lt;a href=&quot;https://freethoughtblogs.com/pharyngula/2026/04/22/something-has-happened-to-my-blog/#comment-2298801&quot;&gt;22 April 2026 at 4:47 pm&lt;/a&gt;&lt;/time&gt;			&lt;/p&gt;
		&lt;/header&gt;

		&lt;div&gt;
			
			&lt;p&gt;Could it be …..SPIDERS?!&lt;/p&gt;
		&lt;/div&gt;

		
		
	&lt;/article&gt;
	&lt;/li&gt;

	&lt;li&gt;
	&lt;article&gt;

		
		&lt;header&gt;
			&lt;p&gt;
				&lt;img src=&quot;https://secure.gravatar.com/avatar/1822cded0e0a14fceb65ad15c171ef6a?s=48&amp;amp;d=identicon&amp;amp;r=r&quot; alt=&quot;&quot; title=&quot;&quot;/&gt;&lt;span&gt;Pierce R. Butler&lt;/span&gt; &lt;span&gt;says&lt;/span&gt;		 	&lt;/p&gt;

			&lt;p&gt;
				&lt;time&gt;&lt;a href=&quot;https://freethoughtblogs.com/pharyngula/2026/04/22/something-has-happened-to-my-blog/#comment-2298805&quot;&gt;22 April 2026 at 5:37 pm&lt;/a&gt;&lt;/time&gt;			&lt;/p&gt;
		&lt;/header&gt;

		&lt;div&gt;
			
			&lt;p&gt;A few years ago, articles about “that godawful bird app” and the chi-thing which ate it had varying guesses about the numbers of the bodiless among the readers &amp;amp; posters thereof; today, reports seem to accept the “followers” counts uncritically.&lt;/p&gt;
&lt;p&gt;I doubt the bots went away – so what happened to the assessments thereof?&lt;/p&gt;
		&lt;/div&gt;

		
		
	&lt;/article&gt;
	&lt;/li&gt;

	&lt;li&gt;
	&lt;article&gt;

		
		&lt;header&gt;
			&lt;p&gt;
				&lt;span&gt;&lt;a href=&quot;https://www.facebook.com/erlend.meyer.1&quot;&gt;Erlend Meyer&lt;/a&gt;&lt;/span&gt; &lt;span&gt;says&lt;/span&gt;		 	&lt;/p&gt;

			&lt;p&gt;
				&lt;time&gt;&lt;a href=&quot;https://freethoughtblogs.com/pharyngula/2026/04/22/something-has-happened-to-my-blog/#comment-2298807&quot;&gt;22 April 2026 at 5:43 pm&lt;/a&gt;&lt;/time&gt;			&lt;/p&gt;
		&lt;/header&gt;

		&lt;div&gt;
			
			&lt;p&gt;@nomdeplume#11: I can almost picture a large spider typing by dancing across the keyboard.&lt;/p&gt;
&lt;p&gt;But yeah, AI scrapers seems to be a problem these days. I frequent a niche forum running antiquated software, and lately it’s been completely swamped by guest users.&lt;/p&gt;
		&lt;/div&gt;

		
		
	&lt;/article&gt;
	&lt;/li&gt;

	&lt;li&gt;
	&lt;article&gt;

		
		&lt;header&gt;
			&lt;p&gt;
				&lt;img src=&quot;https://secure.gravatar.com/avatar/bbad5c7ab326511019ebbd539cac204b?s=48&amp;amp;d=identicon&amp;amp;r=r&quot; alt=&quot;&quot; title=&quot;&quot;/&gt;&lt;span&gt;drdrdrdrdralhazeneuler&lt;/span&gt; &lt;span&gt;says&lt;/span&gt;		 	&lt;/p&gt;

			&lt;p&gt;
				&lt;time&gt;&lt;a href=&quot;https://freethoughtblogs.com/pharyngula/2026/04/22/something-has-happened-to-my-blog/#comment-2298815&quot;&gt;22 April 2026 at 6:24 pm&lt;/a&gt;&lt;/time&gt;			&lt;/p&gt;
		&lt;/header&gt;

		&lt;div&gt;
			
			&lt;p&gt;“I’m sure many people here would love to have a conversation with you.” – What can I say? I’ll have to admit that for me it’s true.&lt;/p&gt;
		&lt;/div&gt;

		
		
	&lt;/article&gt;
	&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;&lt;div&gt;
		&lt;h3&gt;Leave a Reply &lt;small&gt;&lt;a href=&quot;https://freethoughtblogs.com/pharyngula/2026/04/22/something-has-happened-to-my-blog/#respond&quot;&gt;Cancel reply&lt;/a&gt;&lt;/small&gt;&lt;/h3&gt;&lt;p&gt;You must be &lt;a href=&quot;https://freethoughtblogs.com/wp-login.php?redirect_to=https://freethoughtblogs.com/pharyngula/2026/04/22/something-has-happened-to-my-blog/%23respond&quot;&gt;logged in&lt;/a&gt; to post a comment.&lt;/p&gt;&lt;p&gt; Notify me of followup comments via e-mail. You can also &lt;a href=&quot;https://freethoughtblogs.com/pharyngula/comment-subscriptions?srp=79103&amp;amp;srk=3e8369ed13070319329ad2b19d101439&amp;amp;sra=s&amp;amp;srsrc=f&quot;&gt;subscribe&lt;/a&gt; without commenting.&lt;/p&gt;	&lt;/div&gt;</content:encoded>
</item>
<item>
<title>回国随感</title>
<link>https://blog.3qin.us/china_trip.html</link>
<enclosure type="image/jpeg" length="0" url="https://mail.3qin.us/~derek/blog_imgs/pics/popsicle.jpg"></enclosure>
<guid isPermaLink="false">MvAXYfeU9IBVZmgLoOuq5ifj9NC_dU5khQAAbA==</guid>
<pubDate>Sun, 25 Aug 2024 15:06:14 +0000</pubDate>
<description>疫情之后第一次回国，短短两周走了四个城市，见到了很多亲朋好友，吃到了许多人间美味，观赏了不少各色美景和演出。这里不是为了向别人装逼的朋友圈，也不是为了对自己留纪念的日记本，就写一些抽象一点的碎碎念吧。</description>
<content:encoded>&lt;p&gt;疫情之后第一次回国，短短两周走了四个城市，见到了很多亲朋好友，吃到了许多人间美味，观赏了不少各色美景和演出。这里不是为了向别人装逼的朋友圈，也不是为了对自己留纪念的日记本，就写一些抽象一点的碎碎念吧。&lt;/p&gt;
&lt;h2&gt;怀旧&lt;/h2&gt;
&lt;p&gt;Nostalgia (怀旧）一词来自希腊语，是&lt;a href=&quot;https://www.bps.org.uk/psychologist/nostalgia-cowbells-meaning-life&quot;&gt;两个词的组合&lt;/a&gt;，nostos (回家) 和 algos (伤痛)。本意是想回家而不得的心痛。回一次国不容易，回去之后虽然不再心痛，但是感觉会更复杂，分很多种情况，各有不同。&lt;/p&gt;
&lt;p&gt;情况之一是你觉得你记得很清楚，但回去之后发现其实你的记忆早已模糊了，地方和东西其实没有变，但你变了。这次我去了我家三十多年前住过的小区，但怎么也找不到那一幢楼。这边不太像，那边也不太像，流连良久，最后只能怅然而去。&lt;/p&gt;
&lt;p&gt;情况之二是对你很重要，给你留下美好记忆的东西，随着时间的流逝不再是当年的样子，你再也找不到当年的感觉。以前我家旁边有个小博物馆，楼上有个小游戏厅。地方比较偏，很少有人去，也只有两三个街机可以打。但这里是我儿子心中的乐园，可以在里边玩一整天。这次回去发现博物馆还在，但破败了很多，楼上游戏厅已经关了。当然，这是经济规律作用的结果，不是任何人的错。但你的心只可能更痛。&lt;/p&gt;
&lt;figure&gt;
&lt;img src=&quot;https://mail.3qin.us/~derek/blog_imgs/pics/popsicle.jpg&quot; alt=&quot;冰棍儿&quot; title=&quot;&quot;/&gt;
&lt;figcaption&gt;冰棍儿&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;最后一种情况是你其实已经忘了，但在特定环境下突然又记起，往日情形毫无预料之下重现。这次我带儿子在街上走，走累了到小店去买冷饮。我儿子一不小心买到了当年爱吃的那一种冰棍儿。含在嘴里的时候突然想起很多年前同样是炎热的下午，放学第一件事是冲到小店买一根这种冰棍儿，一路走一路吮着到家的往事。这不是一根普通的冰棍儿，这是他童年的味道。这种感觉最甜蜜，但是太罕见，可遇不可求。&lt;/p&gt;
&lt;h2&gt;故人&lt;/h2&gt;
&lt;p&gt;我的童年和当时其他人家的小孩有所不同。我们搬了很多次家，换了好几个城市。所以，我是没有所谓的发小或死党的。我有同学，有邻居，有朋友，但他们都有有限的时间区间和单一的群体身份标示。但假如你在一个地方住的够久，那你的小学同学就不仅是你的同学，还是你表嫂的弟弟，第一份工作上司的侄子。你和他有多重的联系，他就成了你的发小：你可以不请自到到他家砸门，他也会放下手上所有事只为了陪你打发时间不再无聊。&lt;/p&gt;
&lt;p&gt;这次我儿子找到了他小学时的死党好友。五年不见，当年的小屁孩都长大成了翩翩少年，虽然眉目间还依稀是当年的样子。他们俩当年由于上课说话过多，经常被老师骂，还被请家长。但这次相遇却没什么话好说：当年的人和事都记不太清楚了，后来的人和事又没有交集。最后只好聊学业。好在有我这个资深游子在场，可以插科打诨，让场面不至于太过尴尬。&lt;/p&gt;
&lt;p&gt;我儿子随着我也搬了不少次家。我们都是别人眼中熟悉的陌生人，听得懂当地话的外地人，没有一起共过患难的边缘人。我们都没有发小。我姐姐对我们家的这种情况深恶痛绝，所以她下决心不再搬家，给她的孩子一个完整的当地童年。但是，在今天这个移动互联网里长大的孩子，就算不搬家，好像也没有发小这回事了呀？&lt;/p&gt;
&lt;figure&gt;
&lt;img src=&quot;https://mail.3qin.us/~derek/blog_imgs/pics/pig.jpg&quot; alt=&quot;烤乳猪&quot; title=&quot;&quot;/&gt;
&lt;figcaption&gt;烤乳猪&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;以前，孤独的人是可耻的，我也深感自卑。现在，我终于活到了无需自卑的年代：别人还不是也和我一样孤独？这次在各种朋友聚会上，我听到了有人生了孙子，有人生了孩子，有人生了病，有人结了婚，有人离了婚，有人离了婚又结了婚。这些我之前都不清楚，但在场的别人也不比我清楚多少。生活的悲欢离合说到底还是自己的事，旁人不过是看客，就算是死党，发小又如何。&lt;/p&gt;
&lt;h2&gt;时间&lt;/h2&gt;
&lt;p&gt;假如我是在别的地方度假，我会找个山清水秀的地方发呆发一整天，什么地方也不去，什么人也不见。但这次在中国，我每天时间安排的满满当当，基本每餐都去见人，每天都有参观活动，每晚回到宾馆都是深夜了。一方面很多是为人子为人父的责任，但另一方面我也乐在其中。这是为什么呢？&lt;/p&gt;
&lt;p&gt;因为这是我的家，我关心的人们。虽然，他们讲的事有些我不太在乎，也帮不上忙，甚至大多数事情我过两天就忘了，但我就是爱听。在国内，我一共就买了两个东西：一个小首饰给我老婆，一本书给我儿子，我自己要的，就只有感受。这些感受，我的心里装的满满的，足够慢慢回味的。&lt;/p&gt;
&lt;figure&gt;
&lt;img src=&quot;https://mail.3qin.us/~derek/blog_imgs/pics/flight.jpg&quot; alt=&quot;再见&quot; title=&quot;&quot;/&gt;
&lt;figcaption&gt;再见&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;你可以把一个孩子带离中国，但你不可能把中国从孩子心里带走。谢谢你们，我的亲人朋友们，让我像一个孩子一样吸取营养。我会再来的。&lt;/p&gt;</content:encoded>
</item>
<item>
<title>如何做一杯手工咖啡</title>
<link>https://blog.3qin.us/hand_made_coffee.html</link>
<enclosure type="image/jpeg" length="0" url="https://mail.3qin.us/~derek/blog_imgs/pics/green_beans.jpg"></enclosure>
<guid isPermaLink="false">yFi5-kxGAUNwa7sJrWzqGEjjxOQ5VIYuCCNNaw==</guid>
<pubDate>Tue, 02 Jan 2024 22:04:32 +0000</pubDate>
<description>我这个人的性格有一个自相矛盾的地方。一方面，我愿意亲力亲为，做一些其实用钱就能解决的事情，例如写一些自己用的 小工具 , 自己 砍树劈柴烧 等等，但另一方面，我又相当懒，连 猫都养不好 。我的信条是自己的生活一定要自己做主，绝不接受千篇一律的大路货，但在质量差不多的时候，自己能少麻烦些就少麻烦些。我每天早上都要喝一杯咖啡，那我的咖啡是怎么来...</description>
<content:encoded>&lt;p&gt;我这个人的性格有一个自相矛盾的地方。一方面，我愿意亲力亲为，做一些其实用钱就能解决的事情，例如写一些自己用的&lt;a href=&quot;https://blog.3qin.us/airss.html&quot;&gt;小工具&lt;/a&gt;, 自己&lt;a href=&quot;https://blog.3qin.us/spliting_wood.html&quot;&gt;砍树劈柴烧&lt;/a&gt; 等等，但另一方面，我又相当懒，连&lt;a href=&quot;https://blog.3qin.us/cats_have_nine_lives.html&quot;&gt;猫都养不好&lt;/a&gt;。我的信条是自己的生活一定要自己做主，绝不接受千篇一律的大路货，但在质量差不多的时候，自己能少麻烦些就少麻烦些。我每天早上都要喝一杯咖啡，那我的咖啡是怎么来的呢？当然是自己手工调制的。&lt;/p&gt;&lt;h2&gt;烤豆&lt;/h2&gt;&lt;figure&gt;
&lt;img src=&quot;https://mail.3qin.us/~derek/blog_imgs/pics/green_beans.jpg&quot; alt=&quot;生豆子&quot; title=&quot;&quot;/&gt;
&lt;figcaption&gt;生豆子&lt;/figcaption&gt;
&lt;/figure&gt;&lt;p&gt;市面上能买到的咖啡主要有两种，一种是磨好的粉，一种是尚未磨的豆子。当然还有速溶咖啡，但那就太low了，这里不算。我最近迷上的，是尚未烘培的生豆子，原产自埃塞俄比亚的传统家庭农庄，每月空运到美国。喝之前需要自己烘烤，才能得到天然美味。DIY 咖啡烘烤的教程 YouTube 上有的是，我这里不在重复。一般使用非专业工具的方法是用铁锅铁勺在火上翻炒，例如&lt;a href=&quot;https://youtu.be/0a1-qd5BySE&quot;&gt;这个视频&lt;/a&gt;。我作为中国人，自然有铁锅铁勺，但我的铁锅烹调各种食品已久，油腻洗不干净，容易串味，而且干炒豆子，不仅家里会乌烟瘴气，翻炒十分钟也挺累人的。那有没有简便一点的办法？&lt;/p&gt;&lt;p&gt;我的方法是用空气炸锅。空气炸锅虽然也经常炸个薯条鸡翅什么的，但毕竟有特富龙涂层，稍微洗洗就没有味道了。你这里可能会问：为什么不能用带特富龙涂层的锅来炒豆子呢？因为这样干的话锅是一定会过热，被划坏，导致锅和豆子同归于尽的。空气炸锅有精确温度反馈控制，而且不用炒，所以才安全。当然，也不是没有缺点。空气炸锅温度最高一档其实温度也不是很够，所以，你用它是不可能烘出黑亮黑亮的深度烘培效果的，好在我也不喜欢那个味道。另外，空气炸锅不用炒，加热还是有点不很均匀，烘出的效果如下图，大致每粒豆子在轻度烘培和中度烘培效果间随机分布。我的方法如下：&lt;/p&gt;&lt;figure&gt;
&lt;img src=&quot;https://mail.3qin.us/~derek/blog_imgs/pics/roasted_beans.jpg&quot; alt=&quot;熟豆子&quot; title=&quot;&quot;/&gt;
&lt;figcaption&gt;熟豆子&lt;/figcaption&gt;
&lt;/figure&gt;&lt;ul&gt;
&lt;li&gt;很随性地抓一把豆子大致80克左右，用清水冲一下，再用纸毛巾吸去水份&lt;/li&gt;
&lt;li&gt;放进空气炸锅打到最高温，烘15分钟&lt;/li&gt;
&lt;li&gt;把豆子倒出来，在室外扬去麸皮，顺便豆子也凉透了，装进一个可密封的瓶子里，完事！&lt;/li&gt;
&lt;/ul&gt;&lt;h2&gt;磨豆&lt;/h2&gt;&lt;p&gt;干豆子可以放半年，烘好的豆子最多放一周。粉呢要随用随磨，不能放的。当然，可以手磨，我也有工具。但手磨实在是烦人，所以我还是用电动磨豆器磨。小型磨豆器到处都有的卖的，也不贵。磨豆要记住，喝什么咖啡，磨到什么程度。粗粒，细粒，细粉各有用处。我通常磨成比较粗的颗粒，这是和我的下面的调制方法相关的。&lt;/p&gt;&lt;h2&gt;调制&lt;/h2&gt;&lt;figure&gt;
&lt;img src=&quot;https://mail.3qin.us/~derek/blog_imgs/pics/glass_jar.jpg&quot; alt=&quot;玻璃瓶&quot; title=&quot;&quot;/&gt;
&lt;figcaption&gt;玻璃瓶&lt;/figcaption&gt;
&lt;/figure&gt;&lt;p&gt;终于到了调制这一步，离喝上咖啡不远了。调制有很多方法，我在家里可以完成的包括滴滤，虹吸，冷萃，意式浓缩，法式直压等。我每天早上都要做的方法是最简单的法式直压，而且我会再进一步简化，我管它叫自然沉淀法，无需漏斗，滤纸等等专业工具，你需要的只是一个有盖的玻璃瓶，细长一点更好（我用的是一个罐头瓶子），其他没了。方法如下：&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;15克豆子磨成粗颗粒，大致相当于白砂糖颗粒大小，倒进玻璃瓶。&lt;/li&gt;
&lt;li&gt;把开水冲到瓶子里（约400毫升），盖上盖子，静置20分钟。这时候你可以去干点别的，我惯常是出门跑步。&lt;/li&gt;
&lt;li&gt;摇晃一下瓶子，让所有颗粒沉淀。小心把咖啡倒出来，渣子留在瓶底。&lt;/li&gt;
&lt;/ul&gt;&lt;figure&gt;
&lt;img src=&quot;https://mail.3qin.us/~derek/blog_imgs/pics/coffee_in_cup.jpg&quot; alt=&quot;咖啡&quot; title=&quot;&quot;/&gt;
&lt;figcaption&gt;咖啡&lt;/figcaption&gt;
&lt;/figure&gt;&lt;p&gt;这时刚好咖啡凉到六十摄氏度，正好享用。瓶子里的渣用凉水涮一下，可以用来浇花。我这杯咖啡相对比从店里买的口味要淡一些，但香气十足。装在保温杯里，一不加奶二不加糖，我慢慢喝，可以喝到中午，解渴提神两不误。&lt;/p&gt;&lt;h2&gt;总结&lt;/h2&gt;&lt;blockquote&gt;
&lt;p&gt;We will encourage you to develop the three great virtues of a programmer: laziness, impatience, and hubris. – Larry Wall&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;我至少做到了第一点。&lt;/p&gt;</content:encoded>
</item>
<item>
<title>读《陶庵梦忆》（二、锺山） | JustGoIdea</title>
<link>https://justgoidea.com/du-tao-an-meng-yi-zhong-shan/</link>
<enclosure type="image/jpeg" length="0" url="https://bear-images.sfo2.cdn.digitaloceanspaces.com/justgoidea/du-tao-an-meng-yi-zhong-shan.webp"></enclosure>
<guid isPermaLink="false">DiH8MuOYupBRhCBRERWioT7CBnTjTLAIil0skQ==</guid>
<pubDate>Sat, 18 Apr 2026 22:24:19 +0000</pubDate>
<description>细读张岱《陶庵梦忆·锺山》：从四人袖中所志的天命气魄，到祭殿里「莫惊驾」的屏息荒诞，再到最后「不得一盂麦饭」的归零。一个目击者如何用账本式的精确，记下一个王朝散去之前的所有不对劲。</description>
<content:encoded>&lt;h1&gt;读《陶庵梦忆》（二、锺山）&lt;/h1&gt;&lt;p&gt;
            &lt;i&gt;
                &lt;time&gt;
    18 Apr, 2026
&lt;/time&gt;
            &lt;/i&gt;
        &lt;/p&gt;&lt;blockquote&gt;
&lt;p&gt;锺山上有云气，浮浮冉冉，红紫间之，人言王气，龙蜕藏焉。&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;现在提起「锺山」这个词，很多人会想到毛那气势如虹的一句：「钟山风雨起苍黄，百万雄师过大江。」没错，张岱这里说的「锺山」，毛说的「钟山」，以及我们现在熟悉的「紫金山」，皆指南京城里的同一座山。&lt;/p&gt;&lt;p&gt;这里不得不提一笔：繁体字里，「鐘」（乐器）和「鍾」（聚集）本是两字，简化后都成了「钟」，意思全失。锺山之「锺」，正是「聚集」之意，表龙脉之所聚。若写成「钟山」，味道全无。&lt;/p&gt;&lt;p&gt;「浮浮冉冉，红紫间之」八字写云气，好在不确定。不是「祥云笼罩」，不是「紫气东来」，是飘忽的、散漫的、似有若无的，「浮浮冉冉」。红紫间之，颜色也不纯正，是红与紫交杂。&lt;/p&gt;&lt;p&gt;这是张岱的老实。他不是方士，不会言之凿凿说看见了什么龙什么凤。他只写他看见的：云气是飘的，颜色是杂的。至于是不是王气，他推给了别人，所谓「人言王气」。人言，不是我言。&lt;/p&gt;&lt;p&gt;可他偏偏又跟了一句「龙蜕藏焉」，突然笃定了。仿佛说：我虽然不敢肯定那是王气，但龙蜕确实埋在下面。这种写法半信半疑，恰是晚明文人对「气数」的真实态度：理智上未必全信，情感上又不敢不信。&lt;/p&gt;&lt;blockquote&gt;
&lt;p&gt;高皇帝与刘诚意、徐中山、汤东瓯定寝穴，各志其处，藏袖中。三人合，穴遂定。&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;这段写朱元璋与刘伯温、徐达、汤和选定陵穴。四个人各自选好位置，写在纸上藏进袖子里，打开一看竟然一样，穴位便定了。&lt;/p&gt;&lt;p&gt;读起来像传奇小说，但张岱记下来应不是猎奇。他要写的是这块地「天命所归」，不是一个人选的，是四个人不约而同选的。更何况，且不说朱元璋；跟着他寻龙点穴的三个人，刘伯温，半个神仙；徐达，一代战神；汤和，圆滑精怪。这不是天意又是什么？&lt;/p&gt;&lt;p&gt;然而，越是强调天命，后文的崩坏就越具讽刺性：天命选定的地方，最终照样守不住。&lt;/p&gt;&lt;p&gt;四人袖中所志竟然一致，在堪舆的逻辑里并不稀奇：真正的龙穴只有一个，识得的人自然会指向同一处。&lt;/p&gt;&lt;p&gt;问题在于，风水再好也挡不住人事。后文修陵「发根，隧其下数丈」，堪舆术语叫「破局」——局是山水格局，一旦破了，气就散了。所谓「伤地脉、泄王气」，正是此意。&lt;/p&gt;&lt;blockquote&gt;
&lt;p&gt;门左有孙权墓，请徙。太祖曰：「孙权亦是好汉子，留他守门。」&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;这句话流传极广，后人读来多觉得朱元璋豪迈大气。&lt;/p&gt;&lt;p&gt;细想之下却有一层不易察觉的残忍：孙权在此长眠八百余年，是此地的先来者；朱元璋是后到的，却可以一句话决定孙权的去留。「留他守门」，听着是尊重，骨子里是施舍。意为「你孙仲谋再英雄，在我朱元璋的陵前，不过是个门房罢了」。&lt;/p&gt;&lt;p&gt;张岱为什么记这个细节？我以为有两层意思。&lt;/p&gt;&lt;p&gt;第一层，写朱元璋的气魄。能让孙权守门的人，何等自信。&lt;/p&gt;&lt;p&gt;第二层，更隐晦：连孙权都只配守门，那锺山的真正主人朱元璋，最后又如何了呢？「不得一盂麦饭」。让人守门的人，最终自己连祭扫都得不到。&lt;/p&gt;&lt;p&gt;张岱记孙权守门，是为末尾的荒凉埋下伏笔。&lt;/p&gt;&lt;blockquote&gt;
&lt;p&gt;及开藏，下为梁志公和尚塔。真身不坏，指爪绕身数匝。军士輂之不起。太祖亲礼之，许以金棺银椁，庄田三百六十奉香火，舁灵谷寺塔之。今寺僧数千人，日食一庄田焉。&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;挖开地下，发现梁代志公和尚的塔，肉身未腐，指甲绕身好几圈。更重要的是，这不腐的金身就连军士都搬不动。&lt;/p&gt;&lt;p&gt;这段读来颇为诡异。&lt;/p&gt;&lt;p&gt;朱元璋天命所归的风水宝穴，挖下去，底下已经有人了，而且是个和尚，肉身不坏，搬都搬不走。&lt;/p&gt;&lt;p&gt;志公和尚是梁武帝的国师，梁武帝痴迷佛法而亡国，这段因缘本就不祥。&lt;/p&gt;&lt;p&gt;朱元璋把和尚迁走，「许以金棺银椁、三百六十庄田」。用世俗的富贵去安抚一个出世之人，这笔交易本身就透着荒诞。&lt;/p&gt;&lt;p&gt;而「今寺僧数千人，日食一庄田焉」一句，张岱写得冷，像是在记账：当年许下的代价，至今还在支付。&lt;/p&gt;&lt;p&gt;更耐人寻味的是：帝王陵寝之下是佛门高僧。张岱未必有意为之，但他肯把这个细节留下来，说明它在他心中留下了痕迹。&lt;/p&gt;&lt;p&gt;而这段因缘还有一层更隐秘的纠葛：朱元璋本人就当过和尚。他十七岁入皇觉寺为沙弥，其后云游化缘三年，尝尽饥寒，直至投奔郭子兴才弃僧从戎。所以当他挖开穴位，发现底下是一位肉身不坏的高僧时，心中作何感想？一个曾经的出家人，要把另一个出家人从自己的墓穴里请走。他「亲礼之」，这个「亲」字或许不只是帝王的礼贤下士，更有同为佛门中人的一点敬畏。&lt;/p&gt;&lt;p&gt;「真身不坏」在佛教中称为「全身舍利」，历来被视为修行极高的证验。僧人圆寂后，或坐缸封存（将遗体置于陶缸中，以石灰、木炭吸湿防腐），或直接入塔。若干年后开缸或启塔，肉身不朽者即被供为「肉身菩萨」。最著名的当属禅宗六祖慧能，唐代圆寂，肉身至今供奉于广东南华寺，已逾一千三百年。志公和尚自梁代至明初，历时近九百年而「真身不坏，指爪绕身数匝」，指甲仍在生长，这在佛教信众看来近乎神迹。&lt;/p&gt;&lt;p&gt;「輂之不起」（军士搬不动），这四个字颇堪玩味。是真的太重搬不动？还是不敢搬、不忍搬？张岱没有解释，只是记下。但无论如何，一个九百年不坏的肉身，连军士都奈何不了，最终还是被帝王的金棺银椁「请」走了。世俗权力或许搬得动佛门的肉身，搬不搬得动那份修行的力量，就是另一回事了。&lt;/p&gt;&lt;blockquote&gt;
&lt;p&gt;陵寝定，闭外羡，人不及知。所见者门三、飨殿一、寝殿一，后山苍莽而已。&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;外羡即墓道外端，封闭之后，地宫的具体形制便成了永远的秘密。&lt;/p&gt;&lt;p&gt;而张岱所见的地面建筑——「门三、飨殿一、寝殿一，后山苍莽而已」——看似简略，实则孝陵的完整规制远不止于此。明孝陵是中国帝陵史上的转折之作，开创了此后明清五百余年帝陵的基本格局：自南向北依次为下马坊、大金门、神功圣德碑亭、神道（两侧列石兽、石人）、棂星门、金水桥、文武方门、孝陵门、孝陵殿（即飨殿）、内红门、方城明楼，最后是宝城宝顶，地宫藏于其下。这条长达数里的中轴线，是帝王死后仍要维持的排场。&lt;/p&gt;&lt;p&gt;张岱却只写「门三、飨殿一、寝殿一，后山苍莽而已」，一个「而已」便收住了。这不是他看漏了，而是他有意为之：把皇陵的宏大压缩成几个数字，再用「后山苍莽」四字一笔带过，仿佛在说——规格再大，不过如此，终究敌不过后山那片苍莽。活人苦心经营的秩序，在自然面前只是一个小小的注脚。&lt;/p&gt;&lt;blockquote&gt;
&lt;p&gt;壬午七月，朱兆宣簿太常，中元祭期，岱观之。&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;壬午年是崇祯十五年（1642 年），距明亡只有两年。这个时间点极其重要。张岱看到的一切，都笼罩在将亡未亡的阴影下。他写的时候已经知道结局，不过当时他观礼时并不知道。这种「事后追记」的视角，使得每一个细节都带上了谶纬的意味。&lt;/p&gt;&lt;blockquote&gt;
&lt;p&gt;飨殿深穆，暖阁去殿三尺，黄龙幔幔之。列二交椅，褥以黄锦孔雀翎，织正面龙，甚华重。席地以毡，走其上必去舄轻趾。稍咳，内侍辄叱曰：「莫惊驾！」&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;「稍咳，内侍辄叱曰」这七个字是全篇写得最好的地方，张岱的白描功力尽在于此。&lt;/p&gt;&lt;p&gt;飨殿里供奉的是死去两百多年的朱元璋，活人在殿中轻咳一声，内侍立刻呵斥「别惊了皇上！」活人在死人面前大气不敢出，且不是作戏，是当真的。&lt;/p&gt;&lt;p&gt;荒诞么？当然荒诞。两百多年前的人，怎么可能被一声咳嗽惊到？但在礼制的逻辑里，皇帝没有死，只是在「寝」。交椅摆着，龙褥铺着，日日进膳，一切都在维持一个假象：皇上还在。&lt;/p&gt;&lt;p&gt;张岱不评论，只是如实记下。但他选择记下这个细节，本身就是评论。在他笔下，大明的祭祀制度，就是一群活人围着一个空座位，小心翼翼地假装座位上有人。&lt;/p&gt;&lt;p&gt;而这恰恰是整个晚明的隐喻。崇祯十五年，天下已经摇摇欲坠，可朝廷上下仍在维持体面，仿佛只要礼数不乱，江山就还在。「莫惊驾」，不过是别惊醒这个幻觉罢了。&lt;/p&gt;&lt;blockquote&gt;
&lt;p&gt;近阁下一座，稍前为䂵妃，是成祖生母。成祖生，孝慈皇后妊为己子，事甚秘。&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;这两句突然插入一桩宫闱秘事：成祖朱棣的生母并非马皇后，而是碽妃，马皇后不过是认作己子。「事甚秘」三字，意味深长。&lt;/p&gt;&lt;p&gt;张岱为什么要在写陵寝祭祀时夹带这一笔？表面上看像是见闻札记，随手记下。但放在全文的脉络里，这是在说：陵寝之中不只有庄严，还有秘密；不只有正统，还有谎言。孝陵供奉的是大明的正统叙事，可张岱一句「事甚秘」就捅破了窗户纸。帝王家的体面，从第一代就是靠隐瞒撑起来的。&lt;/p&gt;&lt;blockquote&gt;
&lt;p&gt;再下东西列四十六席，或坐或否。祭品极简陋。朱红木簋、木壶、木酒樽甚粗朴。簋中肉止三片，粉一铗，黍数粒，冬瓜汤一瓯而已。暖阁上一几，陈铜炉一、小箸瓶二、杯棬二；下一大几，陈太牢一、少牢一而已。他祭或不同，岱所见如是。&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;张岱写祭品，用的全是数字：肉三片，黍数粒，冬瓜汤一碗。越精确越寒酸。&lt;/p&gt;&lt;p&gt;但这里有个问题：孝陵祭品自洪武以来是否一直如此简陋？朱元璋出身布衣，厌恶奢靡，祭祀尚俭并非不可能。如果本来就是这个规格，那就谈不上「礼崩乐坏」。&lt;/p&gt;&lt;p&gt;不过，张岱的措辞很明确——「极简陋」、「甚粗朴」。他用的是判断词，不是描述词。他不是在客观记录，而是在表达震惊。以张岱的家世见识，他对皇家祭祀有一个预期，而眼前所见远远低于这个预期。无论实际原因为何，在他笔下，这种简陋已经成为衰象的证据。&lt;/p&gt;&lt;p&gt;更值得注意的是他记录的方式：一件一件数，一样一样列，像在做清单。这种机械，让我想到他在《梦忆序》里数自己的「果报」，同样是一一对仗地列举，同样是用精确来传达失落。只不过《梦忆序》里数的是自己失去了什么，这里数的是王朝还剩下什么。&lt;/p&gt;&lt;p&gt;不妨对比屈原《九歌·东皇太一》所写的祭祀：「蕙肴蒸兮兰藉，奠桂酒兮椒浆。」蕙草为肴，兰叶为藉，桂花酿酒，椒浆为饮。那是楚人祭祀天神的排场，处处是香草与芳馨，连食器都带着草木的清气。当然，《九歌》是诗，张岱写的是实录，二者不宜直接比较。但正因张岱写的是实录，「簋中肉止三片，冬瓜汤一瓯」的寒碜才格外刺目。屈原笔下的祭祀是美的，美到可以入诗；张岱笔下的祭祀是真的，真到不忍卒读。一个把祭品写成了文学，一个把文学写成了账本。&lt;/p&gt;&lt;blockquote&gt;
&lt;p&gt;先祭一日，太常官属开牺牲所中门，导以鼓乐旗帜，牛羊自出，龙袱盖之。至宰割所，以四索缚牛蹄。太常官属至，牛正面立，太常官属朝牲揖，揖未起，而牛头已入𬊈所。&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;这段写祭祀前一天的宰牲仪式。鼓乐旗帜引导牛羊出场，覆以龙袱，送至宰割所。官员对着牲畜行揖礼——揖还没起来，牛头已经进了刀下。&lt;/p&gt;&lt;p&gt;写得极快。「揖未起」与「已入𬊈所」之间没有过渡，礼仪与屠宰无缝衔接。官员的揖拜是慢的、庄重的，屠刀落下是快的、粗暴的。张岱把这两个节奏并置，不加一字评论，效果却惊人：所谓祭祀，不过是给杀戮披上一层体面。&lt;/p&gt;&lt;p&gt;而牛被宰杀之前要「正面立」，面朝官员，接受一揖。人对牛行礼，然后杀牛。这个画面本就荒诞得近乎残忍。&lt;/p&gt;&lt;blockquote&gt;
&lt;p&gt;𬊈已，舁至飨殿。次日五鼓，魏国至主祀，太常官属不随班，侍立飨殿上。祀毕，牛羊已臭腐不堪闻矣。平常日进二膳，亦魏国陪祀，日必至云。&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;「祀毕，牛羊已臭腐不堪闻矣」一句收束，冷得彻骨。祭祀完毕，供品已经腐臭了。&lt;/p&gt;&lt;p&gt;前面写了那么多排场——鼓乐旗帜、龙袱覆盖、官员行揖、太牢少牢——结果呢？肉臭了。所有的庄严与体面，最终归于腐烂。&lt;/p&gt;&lt;p&gt;张岱不说「如同国运」，不说「恰似王朝」，他只写「臭腐不堪闻」。但读到这里，谁能不想到两年后的甲申之变？&lt;/p&gt;&lt;blockquote&gt;
&lt;p&gt;戊寅，岱寓鹫峯寺。有言孝陵上黑气一股，冲入牛斗，百有馀日矣。岱夜起视，见之。自是流贼猖獗，处处告警。&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;戊寅年是崇祯十一年（1638 年），距明亡六年。&lt;/p&gt;&lt;p&gt;「有言」——又是这个写法，和开头的「人言王气」一样，先推给别人。但紧接着「岱夜起视，见之」，却又亲眼确认了。&lt;/p&gt;&lt;p&gt;这是张岱惯用的手法：先保持距离（人言、有言），再拉近距离（亲眼见之）。开头写王气，是「人言」而他不置可否；这里写黑气，他却「夜起视，见之」，四个字，确凿无疑。&lt;/p&gt;&lt;p&gt;从红紫间杂的云气，到冲入牛斗的黑气。锺山上方的天象，从暧昧变为凶险，从「人言」变为「亲见」。张岱的目击，赋予了这个凶兆以不可否认的重量。&lt;/p&gt;&lt;blockquote&gt;
&lt;p&gt;壬午，朱成国与王应华奉敕修陵，木枯三百年者尽出为薪，发根，隧其下数丈，识者为伤地脉、泄王气，今果有甲申之变，则寸斩应华亦不足赎也。&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;壬午年又出现了。开头写祭祀是壬午年，这里写修陵也是壬午年。同一年里，张岱既目睹了祭祀的简陋，又目睹了修陵的破坏。1642 年对他来说，是亲眼看着大明从两个方向同时崩塌的一年。&lt;/p&gt;&lt;p&gt;「木枯三百年者尽出为薪，发根，隧其下数丈」——三百年的古木全部砍了当柴烧，还掘地数丈。修陵修成了掘陵。&lt;/p&gt;&lt;p&gt;「识者为伤地脉、泄王气」，这里的「识者」和前面的「人言」不同。「人言」是泛泛的传说，「识者」是有见识的人。张岱的判断越来越明确了：从「人言」到「有言」到「亲见」到「识者」，他一步步从旁观走向了确信。&lt;/p&gt;&lt;p&gt;「寸斩应华亦不足赎」，这是全篇情绪最激烈的一句。张岱极少这样写，他向来是冷笔白描，不动声色。但写到这里，他忍不住了。把王应华千刀万剐也不够抵罪。这份愤怒不仅是对一个人的，更是对一种无可挽回的痛惜——你们亲手毁掉的，不只是几棵树、几丈土，是二百八十二年的国脉。&lt;/p&gt;&lt;blockquote&gt;
&lt;p&gt;孝陵玉石二百八十二年，今岁清明，乃遂不得一盂麦饭，思之猿咽。&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;全篇最后一句，也是全篇最重的一句。&lt;/p&gt;&lt;p&gt;二百八十二年，这个数字张岱算得很清楚。孝陵始建于洪武十四年（1381 年），以此倒推，张岱写此文当在 1663 年前后&lt;sup&gt;1&lt;/sup&gt;。数字精确，说明他不是泛泛感慨，而是认真算过。一个人会去精确计算一座陵墓的年龄，是因为他把这件事当成自己的事。&lt;/p&gt;&lt;p&gt;「一盂麦饭」四字尤其好。不是山珍海味，不是太牢少牢，只是一碗最粗粝的麦饭——而连这都供不上了。回看全文，「麦饭」与前面的祭品恰成一道残忍的递减：开国时四人袖中藏纸、天命所归的气魄 → 二百年后肉三片黍数粒的寒酸 → 最终一碗麦饭都没有。三个层次，一路向下，直至归零。&lt;/p&gt;&lt;p&gt;「猿咽」二字收尾，是声音，也是画面。猿啼凄厉，历来是中国文学中最悲的意象——「巴东三峡巫峡长，猿鸣三声泪沾裳」。但张岱不是在三峡听猿，他是自己的喉咙哽咽如猿啼。&lt;/p&gt;&lt;p&gt;全篇至此，回头再看开头的「锺山上有云气，浮浮冉冉，红紫间之」。那浮浮冉冉的云气，到底是王气还是劫灰？张岱写的时候恐怕自己都不确定。他只知道，他曾经亲眼看见过那些云气，也亲眼看见它们散了。&lt;/p&gt;&lt;h2&gt;侧记&lt;/h2&gt;&lt;p&gt;若论中国哪座城市最能见证历史兴衰，南京无出其右。&lt;/p&gt;&lt;p&gt;这话听来或有争议。论建都之久，西安与北京远在南京之上；论王朝之盛，汉唐长安、明清北京也更为煊赫。但恰恰因为如此，西安让人看到的是盛世可以有多盛，北京让人看到的是权力可以有多重。它们是赢家的城市，底色是恢弘与自信。&lt;/p&gt;&lt;p&gt;南京不同。南京让人看到的，是一切终将如何散去。&lt;/p&gt;&lt;p&gt;定都于此的政权——东吴、东晋、宋齐梁陈、南唐、明初、太平天国、中华民国——几乎无一长久。最像帝王之都的地方，偏偏留不住帝王之气。这本身就是对「天命」最深刻的反讽。龙蟠虎踞的地形还在，秦淮河的水还在流，锺山上的云气还在浮浮冉冉，可坐在龙椅上的人换了一拨又一拨。&lt;/p&gt;&lt;p&gt;历代文人写南京，写的也几乎都是散去：刘禹锡写「旧时王谢堂前燕，飞入寻常百姓家」，李白写「吴宫花草埋幽径，晋代衣冠成古丘」，韦庄写「无情最是台城柳，依旧烟笼十里堤」。没有哪座城市像南京这样，积累了如此深厚的兴亡文学传统。张岱的《锺山》或是这一传统中最晚也最痛的一篇，因为他不是在隔代凭吊，他是亲历者。刘禹锡写乌衣巷时，王谢早已是几百年前的事；张岱写孝陵时，那碗供不上的麦饭，是他自己那代人的切肤之痛。&lt;/p&gt;&lt;p&gt;如果说《梦忆序》是张岱的自剖，剖开自己的执念给人看；那么《锺山》是张岱的目击证词。他不是在写南京的兴亡史，也不是在发思古之幽情。他写的是自己亲眼看见了什么：看见祭殿里活人为死人屏息，看见祭品简陋到数得清每一粒黍，看见牛揖未起头已落，看见三百年古木被连根拔起，看见锺山上的黑气冲入星辰。&lt;/p&gt;&lt;p&gt;他是目击者，而目击者最沉痛的不是描述灾难，而是描述灾难来临之前那些不对劲的细节。全篇没有一句「明将亡矣」，可处处都是亡国的气息。那些细节不需要点破，因为张岱写的时候，他和读者都已经知道了结局。正因如此，「莫惊驾」三个字才格外刺耳——别惊醒皇上，也别惊醒这场即将结束的梦。&lt;/p&gt;&lt;hr/&gt;&lt;p&gt;&lt;a href=&quot;https://justgoidea.com/lisbon-spring&quot;&gt;Previous&lt;/a&gt; | &lt;/p&gt;&lt;section&gt;
&lt;ol&gt;
&lt;li&gt;&lt;p&gt;孝陵营建始于 1381 年，朱元璋葬于 1398 年，张岱此处似以始建之年起算。↩&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;&lt;p&gt;
                
                    &lt;a href=&quot;https://justgoidea.com/posts/?q=essay&quot;&gt;#essay&lt;/a&gt;
                
            &lt;/p&gt;</content:encoded>
</item>
<item>
<title>America lost the Mandate of Heaven | the singularity is nearer</title>
<link>https://geohot.github.io//blog/jekyll/update/2026/04/18/america-mandate-of-heaven.html</link>
<guid isPermaLink="false">9IlfduBU3PcfnHqGTlIpOuoOJmpTevVywpBpMQ==</guid>
<pubDate>Sat, 18 Apr 2026 11:45:45 +0000</pubDate>
<description>What does it mean if a country is winning?</description>
<content:encoded>&lt;p&gt;What does it mean if a country is winning?&lt;/p&gt;&lt;p&gt;I read an article a while back about how, basically because labor unions became too much of a pain to deal with, they were just cut out of the conversation. Everything was outsourced, and now after whining about a $25/hr job not having health insurance, there’s just no more $25 an hour job and nobody to try and bargain with anymore. The chips are made in Taiwan, the clothes are made in Vietnam, the cars are made in Mexico, and you are on the phone with India.&lt;/p&gt;&lt;p&gt;This isn’t like when stuff is made in China. Those are basically &lt;em&gt;American&lt;/em&gt; factories, just located in another country where you don’t have to negotiate with American labor. Companies make money, GDP goes up, everyone wins. Except, well … American people. This line of “oh they get cheap stuff” is hardcore cope, I can’t believe those who seriously try and say America’s value is in consuming. That sounds like &lt;a href=&quot;https://www.youtube.com/watch?v=J6hWnD9Wzno&quot;&gt;the mentality of Disney Adults&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Your value is in production, and your value is in providing a good society for your fellow countrymen.&lt;/p&gt;&lt;hr/&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;I think people are finally starting to realize what happened. Tariffs could, in theory, fix this. It would be a painful transition, but done properly you could force companies back to the negotiation table with American labor.&lt;/p&gt;&lt;p&gt;If you (artificially) make the cost of outsourcing high enough, you could imagine there being businesses capable of self sustaining in America. However, you give up hope of being a global leader at this point and create an insular economy. It’s a loser mentality.&lt;/p&gt;&lt;hr/&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;blockquote&gt;
  &lt;p&gt;“You’re not talking to somebody who woke up a loser. And that loser attitude, that loser premise makes no sense to me.” – Jensen Huang&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;Even more ridiculous is the &lt;em&gt;export&lt;/em&gt; controls on NVIDIA. Here we have an American made product the entire world wants, and what does America do? Oh yes, export controls. Sorry, we don’t want to win globally, please build an alternative.&lt;/p&gt;&lt;p&gt;But we have to export control it. Haven’t you heard about AGI? These nice folks at the “Center for Effective Altruism” told me about this blog they read called LessWrong. They said that the blog said AI is going to destroy the world, and if the world is going to be destroyed, I don’t want to live in a world where someone else destroys it better than Americans!&lt;/p&gt;&lt;p&gt;It’s interesting how America believes in these apocalyptic AI narratives while China doesn’t. And I think the reason comes back to the view of people.&lt;/p&gt;&lt;p&gt;Take the Mythos vulnerability finding thing. They didn’t just point Mythos at the codebase and say go, they built a harness where they asked it about each piece of code and if it was vulnerable. They triaged and spent more time looking at things that were flagged more, until eventually they passed it up to “upper management” aka the Anthropic software engineers, who are quite a bit more talented than your average bug hunter.&lt;/p&gt;&lt;p&gt;You could imagine building this exact same thing but all with humans. Educate them, get them to sit at a desk, read code, find vulns, put them in a management hierarchy. Actually, I can only really imagine that in China, have you seen the current graduates from the American universities?&lt;/p&gt;&lt;p&gt;And here is where you get to this American AGI is coming it’s over, AI will take all jobs worldview. Because it’s hard to conceive of doing things with people in America.&lt;/p&gt;&lt;hr/&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://geohot.github.io/blog/assets/images/ai_chips_scaling.png&quot; alt=&quot;&quot; title=&quot;&quot;/&gt;&lt;/p&gt;&lt;p&gt;A human is about 20 petaflops. All of this installed compute is only about a million people. There is no magical “step change” for AGI. With 8 billion humans in the world, that’s still 13 doublings for machines to catch up. Yes, it will happen, but not next year.&lt;/p&gt;&lt;hr/&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;When I was younger I used to think more negatively about jobs, I even called it the jobs problem in &lt;a href=&quot;https://backspace.ai/&quot;&gt;my 2019 agentic coding startup template&lt;/a&gt;. I have since come around, the point of a society is the flourishing of its inhabitants.&lt;/p&gt;&lt;p&gt;I know I know, I live in Hong Kong. Maybe the society here is brainwashing me or something. Or maybe, when I looked around on my walk yesterday, I saw a society that actually works for who lives here – not homeless everywhere, not isolation in cars, not blatant stagnation.&lt;/p&gt;&lt;p&gt;I know I know, that’s a socialist platitude or something, society that works. What they say right before they argue for a dumbass tax on billionaires or banning plastic straws. Don’t worry I still think most socialists are degrowth morons.&lt;/p&gt;&lt;p&gt;But what does it even mean to root for America anymore? Do these coming changes help the average American? Does Google getting ten million more TPUs help Americans? Or am I missing the point?&lt;/p&gt;&lt;hr/&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;Ahh oh is it weapons? America will get AI weapons. Because it faces so many threats on its own isolated continent, good thing it has AI weapons to stay safe. Oh, wait, America faces no real threats. It wants to use the weapons offensively? Oh sorry sorry, in a preemptive strike they obviously would have hit us if we didn’t attack them first. Yes yes, defensive preemptive attack.&lt;/p&gt;&lt;p&gt;It’s just bullying. It’s stupid. How can anyone root for America to win AI? In its current incarnation, it means job loss for Americans and more bullying on the world stage.&lt;/p&gt;&lt;p&gt;I love America. I am American. And I wish it had the mandate of heaven. I wish America winning meant peace and prosperity. But when it’s for offensive military and the largest psychologically manipulative corporations in history, how can anyone root for this?&lt;/p&gt;</content:encoded>
</item>
<item>
<title>The age of snarky UI</title>
<link>https://thoughtbot.com/blog/the-age-of-snarky-ui</link>
<enclosure type="image/jpeg" length="0" url="https://images.prismic.io/thoughtbot-website/aEccJrh8WN-LV5_m_default-article-background.png?auto=format%2Ccompress&amp;blend-mode=normal&amp;blend-x=0&amp;blend-y=0&amp;blend=https%3A%2F%2Fimages.prismic.io%2Fthoughtbot-website%2FZ1tQFJbqstJ98cGP_default.png&amp;mark-x=356&amp;mark-y=100&amp;mark64=aHR0cHM6Ly9hc3NldHMuaW1naXgubmV0L350ZXh0Lz90eHQtbGVhZD0tMjAmdHh0LXRyYWNrPTAmdHh0NjQ9VkdobElHRm5aU0J2WmlCemJtRnlhM2tnVlVrJTNEJnR4dGNscj1mNWY1ZjUmdHh0Zm9udD1JQk1QbGV4U2Fuc0pQLVNlbWlCb2xkJnR4dHBhZD0wJnR4dHNpemU9OTYmdz04MDA%3D&amp;txt-align=center%2Cmiddle&amp;txt-color=f5f5f5&amp;txt-fit=max&amp;txt-font=IBMPlexSansJP-SemiBold&amp;txt-size=24&amp;txt-x=391&amp;txt-y=526&amp;txt=Elaina+Natario"></enclosure>
<guid isPermaLink="false">i5VBYVhoLsA-9Jpkay-0iifpba1mvG9TahdG8g==</guid>
<pubDate>Thu, 16 Apr 2026 19:17:35 +0000</pubDate>
<description>Your devices are all judging you. They’re just too polite to say it directly.</description>
<content:encoded>&lt;p&gt;My husband and I recently leased a new car, a Hyundai IONIQ. This is my first time driving a fully electric vehicle and also my first time in a car with such a gigantic touchscreen dashboard display. It feels futuristic, a far cry from my 2010 Ford Taurus.&lt;/p&gt;&lt;p&gt;A few months into driving it, I encountered a notification on the dashboard. A big orange-outlined circle with a coffee cup icon and the words “Consider taking a break”. I had no idea what that meant. Had I been driving for too long and the car was suggesting I make a pit stop to stretch my legs? Was I going over the speed limit? Did I miss a turn? After a bit of research, I learned it was part of a driver attention system, detecting “irregular behavior” such as drifting out of your lane or not adjusting the steering wheel for a certain period of time. These behaviors may signify fatigue or distraction, thus the nudge (and the coffee cup).&lt;/p&gt;&lt;figure&gt;
  &lt;img src=&quot;https://images.thoughtbot.com/iimv4gpr9eqsu1kipo7uoka73adz_car-alert-1.jpg&quot; alt=&quot;A drawn illustration of a car dashboard with various driving stats and a circle to the right of the screen with a coffee cup icon and the words consider taking a break above it.&quot; title=&quot;&quot;/&gt;
  &lt;img src=&quot;https://images.thoughtbot.com/a4852fftb4cmanze8ugvoqradisq_car-alert-2.jpg&quot; alt=&quot;A drawn illustration of a person with long hair and an annoyed expression looking down while their hands are placed on steering wheel.&quot; title=&quot;&quot;/&gt;
  &lt;figcaption&gt;
    I figured it would be hypocritical to try and snap a photo of this alert &lt;em&gt;while&lt;/em&gt; driving, so here is an illustrated rendering of what it looks like and also what I look like when I see it.
  &lt;/figcaption&gt;
&lt;/figure&gt;&lt;p&gt;But was I tired or distracted? No. I don’t always stay within my lane, especially during Spring season in New England, where I have to narrowly avoid potholes every ¼ mile. I’m less annoyed about it notifying me (and the irony of it needing me to look away from the road to tell me to pay attention). I’m annoyed because of the condescending tone and the fact that I had to do some digging to find out why my car was sending me this message. Can’t you just tell me “stay in your lane”? Why tiptoe around it, especially when coming from a car and not a person?&lt;/p&gt;&lt;p&gt;Condescending or snarky UI copy isn’t a new concept. And I get it – as a business you want to come across more human, which sometimes means adding in humor or culturally relevant conversation patterns. But if that language obfuscates my understanding of the user experience or how to proceed, I’m going to leave very annoyed and not very amused.&lt;/p&gt;&lt;p&gt;A few other examples I’ve encountered in the wild:&lt;/p&gt;&lt;h2&gt;
  
    Confirmshaming
  
&lt;/h2&gt;&lt;p&gt;&lt;a href=&quot;https://www.deceptive.design/types/confirmshaming&quot;&gt;Confirmshaming&lt;/a&gt; aims to guilt you into opting in (or not opting out) of something. Instead of a “No thanks” or “Cancel” button in some type of upsell modal, you’ll get words like “I don’t want to save 20% on the world’s best mystery mayonnaise” or “&lt;a href=&quot;https://medium.com/design-bootcamp/the-devils-ux-dictionary-confirmshaming-4698372befe0&quot;&gt;No, I’m fine with losing customers&lt;/a&gt;”.&lt;/p&gt;&lt;p&gt;The undertone: &lt;em&gt;You are naive about our offerings and are passing up something good.&lt;/em&gt;&lt;/p&gt;&lt;figure&gt;
  &lt;img src=&quot;https://images.thoughtbot.com/uu5i5ohu4l3x1jvdlxth1kxsst80_confirmshame-jorts.jpg&quot; alt=&quot;A drawn illustration of a pop up modal with the words &amp;#39;Enter your email and enjoy 20% off your entire order&amp;#39;. There is an image of jorts and an email input with a submit button. Below that are underlined words that read &amp;#39;No thanks, I hate jorts.&amp;#39;&quot; title=&quot;&quot;/&gt;
  &lt;figcaption&gt;
    Apologies to jorts lovers.
  &lt;/figcaption&gt;
&lt;/figure&gt;&lt;h2&gt;
  
    Paused reminders
  
&lt;/h2&gt;&lt;p&gt;Apps like Duolingo and MyFitnessPal engage users with streaks, goal setting, and overall regular logging of your activity. You’ll get reminders through a push notification saying “Hey do the thing you said you’d do” as a way to keep you accountable. Ignore it for long enough, however, and get a final notification telling you they don’t think these reminders are working out for you so they’ll stop sending them. On the surface it seems like a kind gesture, but wording like that was off-putting enough for me to rage delete both of those apps years ago (maybe they’ve changed their copy since!).&lt;/p&gt;&lt;p&gt;The undertone: &lt;em&gt;You are lazy and we’ve given up on you.&lt;/em&gt;&lt;/p&gt;&lt;figure&gt;
  &lt;img src=&quot;https://images.thoughtbot.com/3rooxspaksi8aomb1239twiqiuaa_reminder-1.jpg&quot; alt=&quot;A drawn illustration of phone notification with the MyFitnessPal app icon and the words &amp;#39;Hmm. Seems like these reminders aren&amp;#39;t helpful. We&amp;#39;re going to turn them off.&amp;#39;&quot; title=&quot;&quot;/&gt;
  &lt;img src=&quot;https://images.thoughtbot.com/ehjjedp8cyxqabcyt3f30dt6w7ad_reminder-2.jpg&quot; alt=&quot;A drawn illustration of a hand with the thumb over a modal that asks &amp;#39;Remove My FitnessPal?&amp;#39; There are three buttons underneath that say Remove from Home Screen, Delete App, and Cancel. The thumb is hovering above the Delete App button.&quot; title=&quot;&quot;/&gt;
  &lt;figcaption&gt;
    Sometimes you have to show your apps who is the boss around here and remove them from existence when they get too snarky.
  &lt;/figcaption&gt;
&lt;/figure&gt;&lt;h2&gt;
  
    Over-encouragement
  
&lt;/h2&gt;&lt;p&gt;If you wear a smart watch and have notifications for various health trackers, you’ve probably been congratulated for simply walking around your house. Often they come through as encouraging, telling you how great you are for moving your body and taking 35% more steps than average. The reality is that unless you’re intentionally exercising, the messaging feels more like mockery. At that point, I’d prefer it to tell me I’m a disappointment.&lt;/p&gt;&lt;p&gt;The undertone: &lt;em&gt;We are genuinely shocked you left the couch.&lt;/em&gt;&lt;/p&gt;&lt;figure&gt;
  &lt;img src=&quot;https://images.thoughtbot.com/xe4qj0a379kttht3nvkgcdtvrakt_encouragement.jpg&quot; alt=&quot;A drawn illustration of a smart watch with the screen showing an arrow pointing up and the word Stand by it. Under it says &amp;#39;You did it! Did you use your standing desk to actually stand today?&amp;#39; Below that is a button that says Dismiss.&quot; title=&quot;&quot;/&gt;
  &lt;figcaption&gt;
    What? You don’t get notifications like this, too?
  &lt;/figcaption&gt;
&lt;/figure&gt;&lt;p&gt;Logically I know the computers are not making a judgement about my opinions, behaviors, or abilities. But I do sometimes feel like my devices are snickering under their breath at what a dolt I am. And perhaps that is because I live in an area that is known for its candor and “kind but not nice” way of communicating. Brusk interactions like that can be off-putting or seemingly rude, but I much prefer it over polite sugar-coated messaging that lacks clarity.&lt;/p&gt;</content:encoded>
</item>
<item>
<title>When “lol” becomes a way to soften real frustration</title>
<link>https://dmnews.com/when-lol-becomes-a-way-to-soften-real-frustration/</link>
<enclosure type="image/jpeg" length="0" url="https://dmnews.com/wp-content/uploads/2025/12/Bbm-35.png"></enclosure>
<guid isPermaLink="false">Ow0jI9cgtfeX3yw-t4r2gM-BaEb7fzCMlu1oOg==</guid>
<pubDate>Wed, 21 Jan 2026 16:05:07 +0000</pubDate>
<description>Tension: We’ve weaponized casual language to disguise genuine discontent, turning authentic frustration into performance-friendly communication. Noise: Digital communication…</description>
<content:encoded>&lt;div&gt;&lt;div&gt;&lt;em&gt;Add DMNews to your Google News feed.&lt;/em&gt; &lt;a href=&quot;https://news.google.com/search?q=dmnews.com&quot;&gt;&lt;img src=&quot;data:image/svg+xml,%3Csvg%20xmlns=&amp;#39;http://www.w3.org/2000/svg&amp;#39;%20width=&amp;#39;133&amp;#39;%20height=&amp;#39;36&amp;#39;%20viewBox=&amp;#39;0%200%20133%2036&amp;#39;%3E%3C/svg%3E&quot; alt=&quot;&quot; title=&quot;&quot;/&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Tension:&lt;/strong&gt; We’ve weaponized casual language to disguise genuine discontent, turning authentic frustration into performance-friendly communication.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Noise:&lt;/strong&gt; Digital communication experts celebrate “softening techniques” without examining the psychological cost of constant emotional camouflage.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Direct Message:&lt;/strong&gt; When every sharp edge requires a cushion, we lose the ability to distinguish between genuine ease and manufactured politeness.&lt;/p&gt;
&lt;p&gt;To learn more about our editorial approach, explore &lt;a href=&quot;https://dmnews.com/the-direct-message/&quot;&gt;The Direct Message methodology&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Watch someone deliver bad news in a text message. Before they get to the actual problem, there’s usually a buffer: an emoji, a “haha,” or the ubiquitous “lol.”&lt;/p&gt;
&lt;p&gt;The formula has become so standard that its absence feels aggressive. “Can we talk?” reads as ominous. “Can we talk? lol” somehow feels manageable, even though the “lol” carries no actual humor.&lt;/p&gt;
&lt;p&gt;This isn’t about whether people should communicate more directly. It’s about what happens when an entire communication system trains us to coat every edge in bubble wrap before we’re allowed to speak.&lt;/p&gt;
&lt;h2&gt;The comfort tax on honesty&lt;/h2&gt;
&lt;p&gt;Something shifted in how we express frustration once digital communication became our primary mode.&lt;/p&gt;
&lt;p&gt;In face-to-face conversation, tone and facial expressions carry emotional nuance. Online, that nuance gets flattened into text, and we’ve collectively decided that any negative emotion needs immediate softening.&lt;/p&gt;
&lt;p&gt;The result is a strange performance where genuine frustration must be dressed up as something lighter.&lt;/p&gt;
&lt;p&gt;“I’m actually pretty annoyed lol” signals that you’re upset but not so upset that you’ll make things uncomfortable.&lt;/p&gt;
&lt;p&gt;“This is driving me crazy haha” means you have a complaint but you’re still fun to be around.&lt;/p&gt;
&lt;p&gt;The emotional content is real. The packaging is strategic.&lt;/p&gt;
&lt;p&gt;During my time working with tech companies analyzing communication patterns in workplace Slack channels, I noticed something telling: Messages expressing frustration that included softening language (emojis, “lol,” “haha”) received responses 40% faster than messages with the same content but no softening.&lt;/p&gt;
&lt;p&gt;The unvarnished version sat longer, as if people needed time to prepare for something uncomfortable.&lt;/p&gt;
&lt;p&gt;We’ve created a system where expressing discontent requires paying a comfort tax.&lt;/p&gt;
&lt;p&gt;You can be frustrated, but only if you immediately signal that your frustration won’t disrupt the pleasant atmosphere we’re all maintaining.&lt;/p&gt;
&lt;p&gt;The “lol” isn’t about finding something funny. It’s about reassuring everyone that you’re still emotionally manageable.&lt;/p&gt;
&lt;p&gt;What makes this complicated is that the softening often feels necessary. Without it, messages can land harder than intended. Text strips away vocal warmth, so we’ve developed these linguistic cushions to recreate it.&lt;/p&gt;
&lt;p&gt;But there’s a difference between adding warmth and requiring constant emotional camouflage as the price of being heard.&lt;/p&gt;
&lt;h2&gt;How performance replaced authenticity&lt;/h2&gt;
&lt;p&gt;The advice around digital communication has become remarkably consistent: Use emojis to convey tone. Add “haha” to show you’re not being harsh. Include exclamation points so you don’t sound cold. Frame criticism as “just my thoughts!” to avoid seeming aggressive.&lt;/p&gt;
&lt;p&gt;All of this sounds reasonable until you step back and notice what it actually does. It turns emotional honesty into a performance where the primary goal is managing other people’s comfort rather than communicating your actual experience.&lt;/p&gt;
&lt;p&gt;Marketing psychology has long understood that people respond better to positive framing. What behavioral research shows, though, is that constant positive framing creates a baseline expectation.&lt;/p&gt;&lt;div&gt;&lt;div&gt;&lt;h3&gt;Related Stories from DMNews&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://dmnews.com/an-analysis-of-the-first-spam-email/&quot;&gt;What the first spam email reveals about modern deliverability&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://dmnews.com/fbi-investigating-media-buying-practices-what-it-means-for-marketers/&quot;&gt;The FBI came for the ad industry’s hidden kickbacks — what happened next revealed how the business really works&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://dmnews.com/inbound-marketing-is-a-work-in-progress/&quot;&gt;Inbound marketing works exactly as advertised — just not the way most companies are practicing it&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Once “lol” becomes standard, its absence signals something negative. Once “just wanted to check in!” becomes the norm, a straightforward “Can you send me that report?” reads as demanding.&lt;/p&gt;
&lt;p&gt;We’ve trained ourselves to read emotional content not from what’s said but from what softening language is or isn’t present. The actual words matter less than the packaging around them.&lt;/p&gt;
&lt;p&gt;Social media accelerated this. Platforms reward engagement, and harsh or direct content gets less engagement than palatable content.&lt;/p&gt;
&lt;p&gt;Algorithms don’t distinguish between “this is uncomfortable to hear” and “this is poorly expressed.” They just register that people scroll past it. So we learned to make everything more digestible, more shareable, more comfortable.&lt;/p&gt;
&lt;p&gt;The noise convinces us this is emotional intelligence. That softening language shows sophistication and empathy. That being direct without cushioning is simply poor communication.&lt;/p&gt;
&lt;p&gt;But sophistication that requires constant performance stops being sophistication. It becomes exhaustion dressed up as courtesy.&lt;/p&gt;
&lt;h2&gt;What we lose in translation&lt;/h2&gt;
&lt;blockquote&gt;&lt;p&gt;The problem isn’t that we soften difficult messages. It’s that we’ve made softening mandatory, turning genuine emotional expression into a choreographed performance where authenticity becomes indistinguishable from strategy.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;When every real frustration requires a “lol,” we lose something crucial: the ability to tell when someone is genuinely at ease versus when they’re just following the script.&lt;/p&gt;
&lt;p&gt;When disappointment must be wrapped in “haha,” actual disappointment starts to sound like manufactured drama.&lt;/p&gt;
&lt;p&gt;When concern can only be expressed through excessive punctuation and emojis, straightforward concern reads as cold.&lt;/p&gt;
&lt;p&gt;We’ve created a communication system where the default assumption is that people need to be handled carefully, that emotional honesty is something to be delivered in small, cushioned doses.&lt;/p&gt;
&lt;p&gt;And maybe sometimes that’s true. But when it becomes the universal standard, we stop distinguishing between situations that genuinely require care and situations where direct clarity would serve everyone better.&lt;/p&gt;
&lt;h2&gt;Reclaiming the right to be straightforward&lt;/h2&gt;
&lt;p&gt;This doesn’t mean abandoning warmth or tact. It means recognizing that constant softening creates its own problems.&lt;/p&gt;
&lt;p&gt;When frustration must always be performed as lighthearted, we lose the ability to signal when something actually matters deeply. W&lt;/p&gt;
&lt;p&gt;hen every request comes wrapped in apologetic language, genuine emergencies become harder to identify.&lt;/p&gt;
&lt;p&gt;The path forward isn’t about rejecting emoji or refusing to add warmth to messages. It’s about building communication relationships where straightforward expression doesn’t require constant emotional cushioning.&lt;/p&gt;
&lt;p&gt;Where “I’m frustrated about this” can exist without the “lol” and still be received as legitimate rather than aggressive.&lt;/p&gt;
&lt;p&gt;This requires reciprocal trust. Someone has to be willing to express things directly, and someone else has to be willing to receive that directness without assuming hostility.&lt;/p&gt;
&lt;p&gt;In professional contexts, this might mean explicitly establishing that straightforward feedback doesn’t require softening.&lt;/p&gt;
&lt;p&gt;In personal relationships, it might mean gradually testing whether honesty can exist without constant performance.&lt;/p&gt;
&lt;p&gt;What consumer behavior data reveals is that people respond positively to authenticity when it’s actually authentic, not when it’s another layer of strategy.&lt;/p&gt;
&lt;p&gt;The “lol” that genuinely reflects levity works differently than the “lol” that’s there to make frustration more palatable. We can usually tell the difference, even if we’ve stopped acknowledging it.&lt;/p&gt;&lt;div&gt;&lt;div&gt;
				&lt;div&gt;Trending around the web:&lt;/div&gt;
				&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://thevessel.io/a-t-8-ways-emotionally-unavailable-people-accidentally-reveal-what-theyre-actually-feeling/&quot;&gt;
								&lt;span&gt;8 ways emotionally unavailable people accidentally reveal what they’re actually feeling&lt;/span&gt;
								&lt;span&gt; - &lt;/span&gt;
								&lt;span&gt;The Vessel&lt;/span&gt;
							&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://thevessel.io/a-t-8-things-men-do-when-they-love-you-but-were-taught-that-showing-it-makes-them-weak/&quot;&gt;
								&lt;span&gt;8 things men do when they love you but were taught that showing it makes them weak&lt;/span&gt;
								&lt;span&gt; - &lt;/span&gt;
								&lt;span&gt;The Vessel&lt;/span&gt;
							&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://thevessel.io/k-t-8-types-of-people-you-should-stop-giving-second-chances-to-according-to-psychology/&quot;&gt;
								&lt;span&gt;8 types of people you should stop giving second chances to, according to psychology&lt;/span&gt;
								&lt;span&gt; - &lt;/span&gt;
								&lt;span&gt;The Vessel&lt;/span&gt;
							&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;The goal isn’t to make all communication harsher or more blunt. It’s to create space where emotional honesty doesn’t require constant translation into something more comfortable. Where you can be frustrated without performing casual lightheartedness. Where concern can be expressed without excessive punctuation. Where the words themselves, not just their packaging, carry meaning again.&lt;/p&gt;
&lt;p&gt;Because when every sharp edge needs a cushion, we don’t actually become better communicators. We just become better at hiding what we actually mean while pretending we’re being clear.&lt;/p&gt;
&lt;div&gt;&lt;div&gt;&lt;h3&gt;Related Stories from DMNews&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://dmnews.com/warren-buffetts-boring-money-rule-helped-me-save-34000-in-one-year-most-people-overthink-it/&quot;&gt;Warren Buffett’s “boring” money rule helped me save $34,000 in one year—most people overthink it&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://dmnews.com/minus-a-quorum-postal-governors-assume-emergency-powers/&quot;&gt;Governance without governors: How the Postal Service functioned without its board&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://dmnews.com/7-emerging-communication-trends-that-will-define-the-next-five-years/&quot;&gt;7 emerging communication trends that will define the next five years&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;</content:encoded>
</item>
</channel>
</rss>
