I am not a supplier

Well because companies keep discovering that they have big problems in their products, and that it does not come from the code their software engineers wrote. The problem can come from the owner of a library deciding to stop providing access to it (Leftpad for example) and breaking half the Internet.

I thought I had linked to this before, here, but surprised to find I hadn’t. If you don’t follow me on fedi, you might have missed a thread of mine that did numbers this week. I’ve had posts do numbers before, but nothing which attracted reply guys quite like this, and some people went through some astounding mental gynmastics to assert that by virtue of having published something, or having participated in something, I owe the world more. That’s colonial thinking.

Sonos workers shed light on why the app update went so horribly

In hindsight, it seems obvious that Sonos should have waited until the app was on par with the experience long-time users have enjoyed for years before rolling it out. It’s possible that it would have delayed the release of the Ace headphones, which were supposed to help Sonos revive its revenue after a post-pandemic decline. But now Sonos is delaying two product launches because of its hastiness.

I’m linking to the Ars summary of the Bloomberg article, which is paywalled. The redesigned app Sonos shipped in May is one of the worst pieces of software I’ve had the misfortune to need to use in recent memory. Any particular aspect of its awfulness is a microcosm of the whole. That the visual design feels like some first year design student’s Figma mockup is perhaps the least maddening thing about it.

If you want a lesson in how to destroy customer trust, the Sonos app debacle is worth studying. It’s also a good argument against internet-connected devices in your home with software you don’t control. Now, if only my robot cat litterbox was open-source…

Consider Slowing Down When Switching Password Managers

I know, I know. I wrote an entire post advocating for manually doing work when there’s a more automatic, less involved alternative available. You might think I’m encouraging you to defrag your password manager. And if you’re not convinced, that’s totally okay! But I’ve found that there’s a special feeling that comes from knowing that any one of my mission critical systems is clean.

I started a similar process to what Ricky describes here in migrating away from 1Password: Deleted all my cookies, looking up passwords and re-setting 2FA when signing back into something, and then deleting the old entry out of 1Password. My plan when my family’s 1Password subscription ends is to export, encrypt, and archive the remaining entries.

The Elite’s War on Remote Work Has Nothing to Do with Productivity

Anywhere from 12 to 20 percent of office space remains vacant. It’s worse than the 2008 recession. If these landlords can’t find a way to make money off their corporate real estate soon, they’re going to start defaulting on their loans. The landlords will go bankrupt, and banks will wind up with giant office towers they can’t sell. More than $1 trillion will go poof.

It seems to obvious to me that most Return-to-Office mandates are “stealth layoffs”, but this piece makes a very thorough argument for that idea.

A Conspiracy of Hogs: The McRib as Arbitrage

This piece from 2011 is a classic and worth a read, because it’s frame is very useful in understanding the above piece about the push for return to office as capturing investment on real estate.

Arbitrage is a risk-free way of making money by exploiting the difference between the price of a given good on two different markets — it’s the proverbial free lunch you were told doesn’t exist.

Web Components Are Not the Future

When primitives overstep their desired usage, when they over abstract, you don’t get to come back from that. You’ve already paid the cost. And as anyone who has done major architectural refactoring of a project can attest, the hardest part is adjusting boundaries. If things fall under the same logical grouping they are easier to update. It’s when you need to break things apart that it gets truly challenging. You can always add another layer of abstraction to solve a problem but removing one can be difficult.

I’ve dabbled a bit in WebComponents, mostly on this website for the few things that require interactivity, and by-and-large dislike them. I have three problems with WebComponents as they exist:

  1. They’re custom elements, not components. There’s a subtle but important difference here.

  2. You can’t opt-out of the ShadowDOM. While I believe this is meant to make it easier to share components between contexts by forcing an interface for custom styling through CSS variables, in practice it reminds me of boilerplate programming.

  3. I really, really dislike JS template tags. You can dismiss this as a me problem, sure; but I know I’m not alone in my dislike of them. They complicate the syntax tree in a multiplicative way: it’s not just adding another style of function declaration or async/await-type condition, but rather more feels like composing an SQL query via string concatenation. You’re programming via a layer that’s difficult to syntax-check without a lot of additional editor tooling.