❌

Normal view

  • βœ‡Daring Fireball
  • β˜… β€˜Your Frustration Is the Product’
    Shubham Bose, “The 49MB Web Page”: I went to the New York Times to glimpse at four headlines and was greeted with 422 network requests and 49 megabytes of data. It took two minutes before the page settled. And then you wonder why every sane tech person has an adblocker installed on systems of all their loved ones. It is the same story across top publishers today. This is an absolutely devastating deconstruction of the current web landscape. I implore you to pause here, and re
     

β˜… β€˜Your Frustration Is the Product’

18 March 2026 at 23:39

Shubham Bose, “The 49MB Web Page”:

I went to the New York Times to glimpse at four headlines and was greeted with 422 network requests and 49 megabytes of data. It took two minutes before the page settled. And then you wonder why every sane tech person has an adblocker installed on systems of all their loved ones.

It is the same story across top publishers today.

This is an absolutely devastating deconstruction of the current web landscape. I implore you to pause here, and read Bose’s entire amply illustrated essay. I’ll wait.


Even websites from publishers who care about quality are doing things on the web that they would never do with their print editions. Bose starts with The New York Times, but also mentions The Guardian, whose web pages are so laden with ads and modals that their default layout, on a mobile device, sometimes leaves just 11 percent of the screen for article content. That’s four lines of article text.

Bose writes:

Viewability and time-on-page are very important metrics these days. Every hostile UX decision originates from this single fact. The longer you’re trapped on the page, the higher the CPM the publisher can charge. Your frustration is the product. No wonder engineers and designers make every UX decision that optimizes for that. And you, the reader, are forced to interact, wait, click, scroll multiple times because of this optimization. Not only is it a step in the wrong direction, it is adversarial by design.

The reader is not respected enough by the software. The publisher is held hostage by incentives from an auction system that not only encourages but also rewards dark patterns.

I disagree only insofar as the reader isn’t respected at all. Part of my ongoing testing of the MacBook Neo is that I’ve been using it in as default a state as possible, only changing default settings, and only adding third-party software, as necessary. So I’ve been browsing the web without content-blocking extensions on the Neo. It’s been a while since I’ve done that for an extended period of time. Most of the advertising-bearing websites I read have gotten so bad that it’s almost beyond parody.

And even with content blockers installed (of late, I’ve been using and enjoying uBlock Origin Lite in Safari), many of these news websites intersperse bullshit like requests to subscribe to their newsletters, or links to other articles on their site — often totally unrelated to the one you’re trying to read — every few paragraphs. And the fucking autoplay videos, jesus. You read two paragraphs and there’s a box that interrupts you. You read another two paragraphs and there’s another interruption. All the way until the end of the article. We’re visiting their website to read a fucking article. If we wanted to watch videos, we’d be on YouTube. It’s like going to a restaurant, ordering a cheeseburger, and they send a marching band to your table to play trumpets right in your ear and squirt you with a water pistol while trying to sell you towels.

No print publication on the planet does this. The print editions of the very same publications — The New York Times, The Guardian, The Wall Street Journal, The Atlantic, The New Yorker — don’t do anything like this. The print edition of The New Yorker could not possibly be more respectful of both the reader’s attention and the sanctity of the prose they publish. But read an article on their website and you get autoplaying videos interspersed between random paragraphs. And the videos have nothing to do with the article you’re reading. I mean, we should be so lucky if every website were as respectfully designed as The New Yorker’s, but even their website — comparatively speaking, one of the “good ones” — shows only a fraction of the respect for the reader that their print edition does.

Without an ad-blocking content blocker running, one of the most crazy-making design patterns today is repeating the exact same ad within the same article, every few paragraphs. It’s hard to find a single article on Apple News — a sort of ersatz pidgin version of the web — that does not do this. The exact same ad — 6, 7, 8 times within the same article. How many 30-something blonde white women need hearing aids? It’s insane.

People are spending less and less time on the web because websites are becoming worse and worse experiences, but the publishers of websites are almost literally trying to dig their way out of that hole by adding more and more of the reader-hostile shit that is driving people away. The Guardian screenshot Bose captured, where only 11 percent of the entire screen shows text from the article, is the equivalent of a broadcast TV channel that only showed 7 minutes of actual TV content per hour, devoting the other 53 minutes to paid commercials and promotions for other shows on the same channel. Almost no one would watch such a channel. But somehow this strategy is deemed sustainable for websites.

The web is the only medium the world has ever seen where its highest-profile decision makers are people who despise the medium and are trying to drive people away from it. As Bose notes, “A lot of websites actively interfere the reader from accessing them by pestering them with their ‘apps’ these days. I don’t know where this fascination with getting everyone to download your app comes from.” It comes from people who literally do not understand, and do not enjoy, the web, but yet find themselves running large websites.

The people making these decisions for these websites are like ocean liner captains who are trying to hit icebergs.

  • βœ‡Daring Fireball
  • β˜… AppleScript: β€˜Save MarsEdit Document to Text File’
    Here’s a simple AppleScript I wrote this week — one that solves a minor itch I’ve had for, jeez, 20 years. Almost every item I post to Daring Fireball goes through MarsEdit, the excellent Mac blogging client from Red Sweater Software (my friend Daniel Jalkut). MarsEdit has a built-in “local drafts” feature, where you can save unpublished drafts within a library in MarsEdit itself. It doesn’t happen often but I occasionally wind up with partially
     

β˜… AppleScript: β€˜Save MarsEdit Document to Text File’

19 March 2026 at 16:46

Here’s a simple AppleScript I wrote this week — one that solves a minor itch I’ve had for, jeez, 20 years. Almost every item I post to Daring Fireball goes through MarsEdit, the excellent Mac blogging client from Red Sweater Software (my friend Daniel Jalkut). MarsEdit has a built-in “local drafts” feature, where you can save unpublished drafts within a library in MarsEdit itself. It doesn’t happen often but I occasionally wind up with partially written posts that I don’t publish, but don’t want to throw away. But I don’t really want to keep them in MarsEdit. I want them saved as text files. For me, those text files go in a folder in Dropbox. For someone else, maybe they go in iCloud Drive.

I write my longer posts in BBEdit, and then copy them into a MarsEdit document when they’re ready to publish. My shorter posts — which is most of them — are usually entirely composed in MarsEdit. Any abandoned drafts that I might return to, I probably want to compose in BBEdit, because the reason they’re abandoned is that they need to be longer. Or they need to be shorter. But either way they need more thought, and BBEdit is where I go to do my most concentrated thinking.

MarsEdit doesn’t have a built-in way to save a document window as a text file. Just its built-in “Save as Local Draft” feature. I didn’t merely suspect but knew that it’d be relatively easy to write an AppleScript to add a “Save as Text File…” feature to MarsEdit, which I could invoke within MarsEdit from FastScripts, the system-wide scripts menu utility that is also from Red Sweater/Jalkut, and, using FastScripts, I could even give the script the standard keyboard shortcut Option-Command-S. (Or is it Command-Option-S?)

It’ll take a window like this:

Screenshot of the MarsEdit document window for this very post. Sort of meta.

and then prompt you with a system Save dialog to enter a filename (defaulting to the Title field contents, if any, in the MarsEdit document) and location to save the text file. AppleScript even conveniently remembers the last place you saved a file, so it defaults to the same folder the next time you invoke it, without the script doing any work to remember that. The text file looks like this:

Title:  AppleScript: 'Save MarsEdit Document to Text File'
Blog:   ★ Daring Fireball
Edited: Thursday 19 March 2026 at 12:16:29 pm
Tags:   AppleScript, MarsEdit
Slug:   AppleScript: 'Save MarsEdit Document to Text File'
Excerpt: 
---

[Here's a simple AppleScript I wrote this week][s] -- one that
solves a minor itch I've had for, jeez, 20 years. Almost every
item I post to Daring Fireball goes through [MarsEdit], the
excellent Mac blogging client from Red Sweater Software (my
friend [Daniel Jalkut]). ...

That’s it. If you use MarsEdit, maybe it’ll help you. I picked the document fields in MarsEdit that I use (Title, Tags, Excerpt, etc.). One potential point of confusion is that while MarsEdit has an optional document field named “Slug”, I don’t use it. For historical reasons, I use Movable Type’s “Keyword” field for the words I want to use for the URL slug for each post. So in my text files, where it says “Slug:”, the text after that label comes from MarsEdit’s Keywords field. And I keep MarsEdit’s actual Slug field hidden, because I don’t use a field with that name in Movable Type. Your mileage, as ever, may vary. But this makes total sense to me.

Anyway, this script helped me clean up 29 drafts, some of them years old, that had been sitting around in MarsEdit, bugging me. Now my “Local Drafts” library in MarsEdit is empty, and those drafts are safe and sound in text files in Dropbox. When something in your workflow is bugging you, you should figure out a way to address it. Why I didn’t write (and share) this script years ago is a mystery for the ages.

  • βœ‡Daring Fireball
  • Hacker News Discussion on Shubham Bose’s β€˜The 49MB Web Page’
    One of the most controversial opinions I’ve long espoused, and believe today more than ever, is that it was a terrible mistake for web browsers to support JavaScript. Not that they should have picked a different language, but that they supported scripting at all. That decision turned web pages — which were originally intended as documents — into embedded computer programs. There would be no 49 MB web pages without scripting. There would be no surve
     

Hacker News Discussion on Shubham Bose’s β€˜The 49MB Web Page’

19 March 2026 at 17:31

One of the most controversial opinions I’ve long espoused, and believe today more than ever, is that it was a terrible mistake for web browsers to support JavaScript. Not that they should have picked a different language, but that they supported scripting at all. That decision turned web pages — which were originally intended as documents — into embedded computer programs.

There would be no 49 MB web pages without scripting. There would be no surveillance tracking industrial complex. The text on a page is visible. The images and video embedded on a page are visible. You see them. JavaScript is invisible. That makes it seem OK to do things that are not OK at all.

In my piece riffing on Bose’s “The 49MB Web Page” yesterday, I reiterated my also-longstanding argument that publications with print editions do things with their websites that they’d never in a million years do with their print editions. The way The New York Times uses JavaScript to present popovers that obstruct reading the actual article text would be the equivalent of them gluing pages together in the print edition, using tape labeled with an advertisement. They wouldn’t do that. But they do the equivalent, using JavaScript, on every page of their website.

  • βœ‡Daring Fireball
  • Google’s New Sideloading Restrictions for Android Include a 24-Hour Waiting Period
    Adamya Sharma, reporting for Android Authority: When Google execs previously said sideloading would become a high-friction process on Android, they really weren’t kidding. The company is finally sharing what Android’s new sideloading flow will look like in practice, and if you’re someone who installs apps outside the Play Store, you’re going to feel it immediately, and you’re going to feel it deeply. [...] When Android’s new sideloading rules come into f
     

Google’s New Sideloading Restrictions for Android Include a 24-Hour Waiting Period

19 March 2026 at 19:03

Adamya Sharma, reporting for Android Authority:

When Google execs previously said sideloading would become a high-friction process on Android, they really weren’t kidding. The company is finally sharing what Android’s new sideloading flow will look like in practice, and if you’re someone who installs apps outside the Play Store, you’re going to feel it immediately, and you’re going to feel it deeply. [...]

When Android’s new sideloading rules come into force, installing apps from developers without Google verification (more on that later) will become extremely tedious by design and require a 24-hour lock before users can install them.

Here’s Google’s own explanation of the new restrictions. “Open always wins”, baby.

Would be interesting to hear Tim Sweeney’s thoughts on this, but he took a sack of cash in exchange for agreeing that whatever Google does with Android hence is “procompetitive” until 2032.

  • βœ‡Daring Fireball
  • The Day Mark Simonson Discovered Type Design
    Mark Simonson: Just by coincidence, I discovered a copy of U&lc magazine in the graphics classroom. U&lc was published by ITC, the International Typeface Corporation, a typeface publisher, and the designer and editor was the legendary Herb Lubalin. I’d never seen such beautiful typography and design. It was a motherlode for an aspiring typophile like me. [...] I decided right then that someday, somehow, I wanted to design typefaces.  ★ 
     

The Day Mark Simonson Discovered Type Design

19 March 2026 at 19:15

Mark Simonson:

Just by coincidence, I discovered a copy of U&lc magazine in the graphics classroom. U&lc was published by ITC, the International Typeface Corporation, a typeface publisher, and the designer and editor was the legendary Herb Lubalin. I’d never seen such beautiful typography and design. It was a motherlode for an aspiring typophile like me. [...]

I decided right then that someday, somehow, I wanted to design typefaces.

  • βœ‡Daring Fireball
  • β€˜Everyone but Trump Understands What He’s Done’
    Anne Applebaum, writing for The Atlantic (gift link): Specifically, they remember that for 14 months, the American president has tariffed them, mocked their security concerns, and repeatedly insulted them. As long ago as January 2020, Trump told several European officials that “if Europe is under attack, we will never come to help you and to support you.” In February 2025, he told Ukrainian President Volodymyr Zelensky that he had no right to expect support either, because &ldqu
     

β€˜Everyone but Trump Understands What He’s Done’

19 March 2026 at 20:09

Anne Applebaum, writing for The Atlantic (gift link):

Specifically, they remember that for 14 months, the American president has tariffed them, mocked their security concerns, and repeatedly insulted them. As long ago as January 2020, Trump told several European officials that “if Europe is under attack, we will never come to help you and to support you.” In February 2025, he told Ukrainian President Volodymyr Zelensky that he had no right to expect support either, because “you don’t have any cards.” Trump ridiculed Canada as the “51st state” and referred to both the present and previous Canadian prime ministers as “governor.” He claimed, incorrectly, that allied troops in Afghanistan “stayed a little back, a little off the front lines,” causing huge offense to the families of soldiers who died fighting after NATO invoked Article 5 of the organization’s treaty, on behalf of the United States, the only time it has done so. He called the British “our once-great ally,” after they refused to participate in the initial assault on Iran; when they discussed sending some aircraft carriers to the Persian Gulf conflict earlier this month, he ridiculed the idea on social media: “We don’t need people that join Wars after ​we’ve already won!”

Meanwhile, Irina Slav at Oilprice.com writes that oil — which was trading around $60 per barrel before the war — might soon be headed to $150–200 per barrel. $200! Energy Common Sense reports “This is now a multi-month, likely rest-of-year story of elevated prices and elevated risk.” Axios reports that most Americans will soon be paying over $4/gallon for gasoline, but I walked by Center City Philly’s lone gas station at lunch, and regular gas remains under $4 and premium under $5 — both with an entire one-tenth of one cent to spare.

The Economist quips:

Although President Donald Trump says he has “destroyed 100% of Iran’s Military Capability”, the 0% that remains is playing havoc with the global economy by choking off 10-15% of its oil supply.

This whole dumb fiasco might go down as the canonical example for the phrase “hoist with his own petard”. You just hate to see it.

Actual Headline in the Actual New York Times: β€˜Trump Jokes About Pearl Harbor in Meeting With Japan’s Leader’

19 March 2026 at 21:01

Javier C. Hernández, reporting for The New York Times:

He was responding to a question about why Japan and other allies had received no advance notice of the U.S.-Israeli assault on Iran.

“We didn’t tell anybody about it because we wanted surprise,” he said. “Who knows better about surprise than Japan, OK? Why didn’t you tell me about Pearl Harbor, OK? Right?”

There was some laughter from the officials and journalists gathered in the room. “You believe in surprise, I think, much more so than us,” he added.

As Trump sinks further into dementia and his presidency slides further into disarray, his administration, in a sick way, gets funnier and funnier.

  • βœ‡Daring Fireball
  • StopTheMadness Pro and StopTheScript Extensions for Safari
    Jeff Johnson, linking to my “Your Frustration Is the Product” piece: My browser extension StopTheMadness Pro stops autoplaying videos and hides Sign in with Google on all sites. It also hides sticky videos and notification requests on many sites. For more extreme measures, try my Safari extension StopTheScript. It kills JavaScript dead on websites you select. For example, from the blog post, it makes The Guardian readable. These are both great extensions, and I have both inst
     

StopTheMadness Pro and StopTheScript Extensions for Safari

19 March 2026 at 21:09

Jeff Johnson, linking to my “Your Frustration Is the Product” piece:

My browser extension StopTheMadness Pro stops autoplaying videos and hides Sign in with Google on all sites. It also hides sticky videos and notification requests on many sites.

For more extreme measures, try my Safari extension StopTheScript. It kills JavaScript dead on websites you select. For example, from the blog post, it makes The Guardian readable.

These are both great extensions, and I have both installed for use in Safari on all my devices. StopTheScript is a bit peculiar, by nature of how it does what it does, but Johnson has a great illustrated tutorial for it and a good blog post explaining which sites he uses it on and why.

Over on the Chrome/Chromium side, there’s a very slick extension called Quick JavaScript Switcher. It’s free, but the developer (Maxime Le Breton) asks for a 5€ donation. QJS adds a simple JS on/off switch to the toolbar.

A lot of stuff doesn’t load when you just completely disable JavaScript for a site. You might be surprised just how much of that stuff is shit you don’t want or won’t miss.

Or, you can go the other way, give in, stop fighting the man, and install OnlyAds — an extension that hides everything on a website except the ads.

❌