A picture of me with my dog Tess next to me looking at me

Notes

What Do Booksellers Make Of “The End Of Reading”?

It’s also backed up by the fact that new bookstores keep opening at a rate that defies the end-of-reading narrative. According to the American Booksellers Association’s annual report at the end of 2025, 605 bookstore businesses (basically, any store whose primary goal is to sell books, be they pop-ups, online stores, or traditional storefronts) opened last year, compared to just 65 that closed. The number of new stores is up 87 percent from the same metric in 2024.

I'm fortunate to live right by two independent bookstores and love it. I know new ones have been opening nearby.

Talk to enough booksellers and you’ll find that it’s nearly impossible to square their experience with the despair about the state of reading that these pieces often leave you with. Matt and Megan Bormet opened People’s Book in Takoma Park, Md., in 2023, and shared a bit with me about what they’ve experienced since then. “We opened our store three years ago and had no idea whether anyone would show up when we opened our doors,” Matt said. “We sold about 60,000 books last year (for context, that’s three times the population of our city), and I really don’t know what I’m doing.” He told me later, “We just filled a very obvious need in the community, and people started knocking the doors down.”

I can think of worse things one could spend their money on.

Greg Kornbluh, who opened Downbound Books in Cincinnati in 2019, told me a story that spoke to this particularly well. “Nearly two years ago we started our first book club here, and we gave it a pretty specific remit: Anti-Despair Book Club," he said. "The idea was to pick books—both fiction and non—that would do more than just distract or comfort, but that could actually provide some tools or models for how to face the hardships and alienation of our times.

I'd go to a book club that did this.


Another Reason Not to Use “AI” For Your Writing

It’s not fair that newer writers will have to prove (to a larger extent than more established writers) that they can actually write, and that what they’ve written is actually their own work, not the result of a prompt. It’s especially unfair when the makers of the tools writers use to write — I’m looking at you, Microsoft and Google — are frantically stuffing “AI” tools into the programs writers rely on. No, Microsoft, I don’t fucking want Copilot to “help me write” in Word, and no, Google, I don’t fucking want Gemini to “help me write” in Google Docs. The very fact these “AI”s are hovering around my writing at all is bad enough from a provenance standpoint. These “AI” tools are making it harder for all writers in this regard, not easier.

As someone who writes for my site, as well as trying my hand at a novel, this kind of scares me. I write all my posts in markdown, and I've gone back and forth between writing my novel in markdown or LibreOffice. None of my tools have AI assitants or AI tooling built in, which is what I want, but anyone reading or judging my writing won't necessarily know that. Newer authors are going to have to find a way to prove to publishers and the world that they wrote it themselves. It's not something I look forward to.


Move Fast and Settle Things

Therefore, if you take a step back, it's basically Meta getting to write the standards for child safety across the big players of the internet.

And if you don't believe that Meta has been particularly good, like what amazes me of the people celebrating this are the same people who are like Meta is terrible and we don't trust them.

And now you have handed them the pen to write the rules of how internet safety for children works across the internet.

And even if you say, well, it's just limited to these biggest players, if they can convince YouTube and TikTok to go along with it, the trickle down of this is also really problematic because now what is happening is you've blessed these specific things, the two hour limit, the hidden likes, the things that we don't know whether or not they actually work.

But if any other platform wants to avoid getting sued in the future, the easiest thing to do is just say, well, we're doing the industry-wide standard as defined in this settlement between Meta and all of these states.

And so the way to reduce liability, if you're a company, a smaller company, an upstart trying to do something different, maybe you have an idea of how to actually protect children more.

That's now risky.

The easiest thing, the thing to do to reduce and avoid liability is to just go with the flow, take what Meta has agreed to and say, we're just going to do that because that is the industry standard.

And that really concerns me, especially when we don't know what actually works right now.

The laws of unintended consequences is likely to be seen heavily here. Sadly, Meta is probably going to love this. It puts them in the driver seat to put walls up making it harder for new players to enter the market.


In Defense of Polyfills

Standardized APIs have intrinsic value, independently of browser implementations.

We think of polyfills as a toggle: use a polyfill, leave it in there, and later when all browsers implement the feature natively, it gets removed.

This misses out on one of the biggest benefits of polyfills: decoupling API design from implementation.

Completely agree. It's nice when you can easily enhance functionality while not tying yourself to a specific implementation too tightly. Time moves on, implementations become standard across the different browsers, and you can go in and get rid of code. It's a great feeling.

It can also help handle things if a library ceases being maintained, or a vulnerability of some form is found in the polyfill library, or anything else. The easier things are to swap out implementations in general, the better.


Chrome's Breaking and Entering

Let’s not beat around the bush: This is effectively malware behaviour. It’s bullshit. It’s cancer. It’s deeply disrespectful toward the user. It’s prioritizing hollow metrics at the expense of everything else.

...

But, an app installing a global keyboard shortcut without user consent is bad. This can never be anything other than opt-in. At the very least, Chrome should have shown me a clear UI that said “We’re thinking Ctrl+G would be fun for you to use. You okay with that?” and a button for me to press to confirm.

Completely agree with everything Marcin is saying. And to me, it feels even worse since it doesn't feel like it's something that feels like we'd expect. When I installed Alfred and Raycast on my Mac, I installed them to get that launcher. I don't install a web browser for that. In either case, we shouldn't have apps be able to just steal global shortcuts without side kind of "hey, do you want this application to do X" What's next? Remapping Cmd+Z?


Why Good Architecture Still Fails in Production

Seniority, at least in architecture, often means noticing the missing question before the missing answer turns into an incident. The same logic applies to coupled systems. A component can behave well on its own and still create trouble once the rest of the system starts reacting to it.

Senior developers can see things newer developers might miss. That comes with having more experience both with the software being developed, and many years of experience, likely making the same mistakes or missing the same things being caught in review. But even with all the experience, so much goes into software, it's hard to catch everything. The best you can do is set systems up with a good foundation, so when things go wrong, you probably already know where to look to fix it.

The point is not documentation for its own sake though, but to make the system legible before production does the explanation instead.


Progressively Enhancing Grid Lanes

The more I think about it, the less sympathy I have for Grid Lanes. You create a DOM order that you think makes sense, then you mess it up with CSS. Then, if you're aware of the problem, you fix it again with CSS. Finally, you have a patched-up layout that may have created other issues you can't address.

I'm looking forward to Chrome's, Firefox's, and Safari's next moves. Until then, to sum it up, my slightly adjusted recommendations are:

  • Always test your Grid Lanes with the keyboard or a screen reader across different screen sizes.
  • If you find a mismatch between the DOM and the visual order, increase the flow-tolerance value. You may have to use a high value or even infinite.
  • As soon as it's available and supports Grid Lanes, try using reading-flow instead.
  • If that doesn't work, consider using a regular grid.

Some good thoughts and examples here to help with accessibility should you choose to use CSS Grid Lanes.


How to Measure Returns on AI

In the beginning there was ai, and bosses everywhere lost their minds and said you must all use this technology no matter whether it is useful and no matter how much it costs. And they introduced ai leaderboards and came up with stupid words like “tokenmaxxing”. And lo, usage did indeed rise. And then the bosses remembered some very basic concepts like “budgets” and realised that this might not be such a great idea after all. And then a different question rang through the boardrooms, and this question was about returns, and it was harder to answer.

Measuring productivity is almost always difficult. With AI it can be even more difficult as it can be hard to identify how any gains now can be countered by the potential for tech debt later. If AI generates code that someone else has to keep cleaning up later, how much is really gained?

From a software engineering perspective, if a company is going to use AI coding assistants, it should make sure the engineers are keeping tabs on the code generated and that the engineers are taking responsibility for any code they use AI to produce.


The Founding Story Behind Japan’s Oldest Whisky Maker

More than a century before Japanese whisky became one of the most coveted spirits in the world, a young merchant in Osaka had a simple observation: the wines and liquors being imported from Europe didn’t suit Japanese tastes. What he built from that insight—one product at a time, for the last 127 years and counting—is now one of the largest beverage companies on earth.

As a fan of whiskies of all kinds, it was an interesting story of Suntory's history.


You Got Faster. Your Company Didn’t.

By the way, it’s not just documents… I’m also seeing the same pattern in pull requests, automated tests, and even decisions. We’re going faster by passing the slow part (the reading, the actual understanding) to whoever comes next. A Ponzi scheme?

Don’t get me wrong: by all means, do use AI. I do too, and I’m (probably) not going back. The thing is: the model is giving you many hours back, so please spend a bit of them editing!

I already have a rule for AI-written code: if I can’t explain the change, I can’t ship it. The same rule applies here: if you can’t defend a sentence with the document done, it’s not really done, is it?

If you're going to use LLMs, the least you can do for those you work with is to fully review the output and ensure you understand it.


Enhancing with CSS Grid Lanes

CSS Grid Lanes has started to ship in browsers. It’s in Safari and behind a flag in Chrome and Edge.

It enables masonry layouts, where items get packed together in the most efficient way possible.

Unsurprisingly, I’m a fan of a layout tool where the browser does all the hard work. It very much aligns with the idea of declarative design; you specify the boundary conditions, and then browser does the maths and heavy lifting.

This is so awesome, I'd recommend checking Jeremy's full post out as well as the documentation.


The 40 Most Rage-Inducing Problems in Tech

Some of these are petty in just the right ways.

Since you don’t respect my opinion anyway, quit pestering me to fill out a survey after every single consumer experience. I keep wondering who looks at these surveys. Is the CEO sitting in his wood-paneled office, reading each individual response on an old-timey stock ticker? If so, you can keep doing this. If not, I rate this experience zero stars out of infinity.

Let's see how we can enshittify things further...

In conclusion: Stop forcing me to download a dang app to use my air fryer! I WOULD THROW MY PHONE INTO THE AIR FRYER OVER THIS IF I HAD ANY WAY TO TURN THE AIR FRYER ON AFTER IT WAS IN THERE.

I want dumb appliances, not everything needs to be internet connected.


Older Notes →