ongoing by Tim Bray

ongoing fragmented essay by Tim Bray

Long Links 6 May 2025, 12:00 pm

Another Long Links curation (the 31st!); substantial pieces of reading (or watching or listening) that you probably don’t have time to take in all of. One or two, though, might reward your attention. The usual assortmet of music, geekery, and cosmology.

Galactic clusters

Ever heard of Laniakea? Neither had I. It’s another word for our home. This 7-minute YouTube video, The Laniakea supercluster of galaxies, is graceful and mind-expanding; highly recommended.

Atom Heart Mother

I was sitting up late, pretty mellow, and Google Music showed me Atom Heart Mother as performed by Japanese tribute band Pink Floyd Trips in 2016. It woke me right up. The Japanese hipsters are instrumentally strong and use keyboards for the acoustic-instrument parts. As for the vocals, well, oh my oh my, definitely next level. Good stuff.

Which made me curious about other performances of Atom Heart Mother. Turns out Floyd recorded a 1971 performance, coincidentally also from Japan. Obviously they’re competent, but they’re just four guys and the keyboard technology was way more primitive back then, so they’re at a disadvantage compared to the resources they had in the studio when recording it, or the technology deployed by PF Trips. A lot of the visuals are of the band arriving in and traveling around Japan, which is OK, because their performances in that era weren’t particularly visually stimulating. Credit to Gilmour for hitting the high notes (albeit with some electronic assist), but once again, he’s at a disadvantage compared to the awesome Japanese singers.

The arrangement is quite a bit different than the original on the eponymous album and, within the limitations, is good.

There’s a cover by “Pussycherry et l'Orchestre d'harmonie de Clermont Ferrand” which I abandoned partway through because the orchestra just isn’t very good, clumsy and harsh. There is a nice little cello part though.

I will link to Orchestre Philharmonique de Radio France with Ron Geesin at the Théâtre du Chatelet, once again an orchestra and a chorus. Ron Geesin is the guy that Floyd hired to do all the orchestral stuff after they’d recorded the basic tracks and went on tour. The orchestra is way better but disappointingly equals neither Geesin’s original take on the album, nor PF Trips. And the big choir doesn’t come close to those two Japanese women.

There are more performances out there, but I had to go to bed.

C2PA C2PA C2PA

I have written quite a bit about C2PA and other “Content Authenticity” initiative stuff. Recently, Adobe has released more C2PA-enabling technology in several of its apps, and there is commentary from DPReview and PetaPixel.

If you care about this stuff like I do you’ll probably enjoy reading both pieces. But they (mostly) miss what I think is the key point. The biggest value offered by this stuff is establishing provenance, and the most important place to establish provenance is on social media. Knowing that a pic on Fedi or Bluesky was first uploaded by @joe@somewhere.example is highly useful in helping people decide whether it’s real or not, and would not require a major technical leap from any social-media provider.

Less attention

Joan Westerberg’s excellent Notes from the Exit: Why I Left the Attention Economy is full of passion and truth. About stepping off the “content creator” treadmill, she writes:

Leaving the attention economy doesn’t mean vanishing. It means choosing to matter to fewer people, more deeply. It means owning the means of distribution. It means publishing like a human being instead of a content mill. It means you stop playing to the house odds and start building your own game.

And the rest is just as good. For what it’s worth, what she’s describing is what I’ve been trying to do in this space for the last 22 years.

Defective outlook

I don’t read The Register often enough; for many years they’ve been full of fresh takes and exhibited a usefully belligerant attitude. For example, When even Microsoft can’t understand its own Outlook, big tech is stuck in a swamp of its own making excoriates “the weird cruft that happens when Microsoft saws bits of our limbs off to make us fit into whatever profit center is running strategy today.” I actually disagree with some of the article, as I often do with the Reg, but I enjoyed reading it anyhow.

A billion times a second

Time to put on your hardcore-geek hat and look at Formally verified cloud-scale authorization. A group at AWS replaced a single heavily-used API call implementation with formally-verified code, simultaneously making it smaller and faster. The link is to an overview piece, the full PDF is here.

These are not lightweight technologies and this was not a cheap project; a lot of people did a lot of work and these are not junior people. But when what you’re working on is this call:

Answer evaluate(List<Policy> ps, Request r)

That call is at the core of where AWS grants or denies access by anything to anything, and it’s called more than a billion times a second. That’s billion with a B. A situation where this kind of investment isn’t merely justifiable, it’s a no-brainer. I know a couple of the people on the authors list, and I offer all of them my congratulations. Strong work!

Decarbonization at sea

Regular readers know that my family has a boat, that we’re trying to decarbonize our lives, and that the boat has been the hardest part of that.

So, I pay close attention to the latest news from the electric-boat scene. I’m starting to gain confidence that in a single-digit number of years we’ll be using a quieter, cheaper, more environmentally praiseworthy vessel of some sort. So, in case anybody has similar worries, here are snapshots from a few of the more viable electric-boat startups: Navier, Torqueedo, X Shore, Candela. Also, here’s Aqua superPower, which wants to bring dockside charging to the electric-boat scene. And finally, here is the Electric boats category from the always-useful electrek electric-mobility site.

Southsiders 4 May 2025, 12:00 pm

Ever been to a soccer match and noticed the “supporters section”, full of waving flags and drummers and wild enthusiasm? Last Saturday I went there. And marched in their parade, even. I could claim it was anthropology research. But maybe it’s just old guys wanna have fun. Which I did. Not sure if I will again.

For the rest of this piece, when I say “football” I mean fútbol as in soccer, because that‘s what everyone on the scene says.

Background

MLS (for Major League Soccer) is the top-level football league in North America and, depending on whose ratings you believe, the 9th or 10th strongest league in the world. At the moment, the Vancouver Whitecaps are the strongest team in MLS and are ranked #2 in Concacaf which means North and Central America. That may become #1 if they win the win the Champions Cup Final on June 1st in Mexico City, against #1-ranked Cruz Azul.

Who knows if these good times will last, but for the moment it means they’re kind of a big deal here my home town. I’ve become a fan, because the Whitecaps are fun to watch.

Mind you, the team is for sale and will probably be snapped up by a Yankee billionaire and relocated to Topeka or somewhere.

When I’ve been to Whitecaps games, I’ve always been entertained by the raucous energy coming out of the supporters section. They provide a background roar, shout co-ordinated insults at the other team and referee, have a drum section, and feature a waving forest of flags.

Southsiders

They’re called that because they inhabit the south end of the stadium, behind the goal that the Whitecaps attack in the second half. Check out the Web site.

So, on a manic impulse, I joined up. It didn’t cost much and got me a big-ass scarf with “Vancouver” on one side and “Southsiders” on the other. Which I picked up, along with a shiny new membership card, at Dublin Calling, a perfectly decent sports bar where the membership card gets you a discount. I have to say that the Southsiders people were friendly, efficient, and welcoming.

My son was happy to come along; we got to the bar long enough before The Parade to have a beer and perfectly OK bar food at what, especially with the discount, seemed a fair price. This matters because the food and beer at the stadium is exorbitantly priced slop.

Alternatives

Since I wrote this, I learned that there are actually four different fan clubs. Especially, check out Vancouver Sisters.

The Parade

Forty-five minutes before game time, the fans leave Dublin Calling a couple hundred strong and march to the stadium, chanting dopey chants and singing dopey songs and generally having good clean fun. It’s a family affair.

Southsiders parade

Note: Kid on Dad’s shoulders. Flags. Spectators, and here’s a thing: When you’re in a loud cheerful parade, everybody smiles at you. Well, except for the drivers stuck at an intersection. Since we’re Canadian we’re polite, so we stop the parade at red lights. Sometimes, anyhow.

Southsiders parade

Note: Maximal fan. Scarves held aloft (this happens a lot). Blue smoke. Flags in Whitecaps blue and Canada red.

When the parade gets to the stadium, everyone kneels.

Southsider parade kneels Southsider parade kneels

After a bit, someone starts a slow quiet chant, then they wind it up and up until everyone explodes to their feet and leaps around madly. That’s all then, time to pile into the stadium.

Inside BC Place stadium

Which is visually impressive on with the lid open on a sunny day.

Indoor fun

The Southsiders section is General Admission, pick anywhere to stand. And I mean stand, there’s no sitting down while the game’s on. There’s a big flag propped up every half-dozen seats or so you can grab and wave when the spirit moves you. There’s a guy on a podium down at the front, facing the crowd, and he co-ordinates the cheers and songs and… He. Never. Stops.

The Southsiders gleefully howl in joy at every good Whitecaps move and with rage at every adverse whistle, have stylized moves like for example whenever the opposing keeper launches a big goal kick everyone yells “You fat bastard!” No, I don’t know why.

When I shared that I was going to do this crazy thing people wondered if it was safe, would I get vomited on, was there violence, and so on. In the event it was perfectly civilized as long as you don’t mind a lot of noise and shouting. The beer-drinking was steady but I didn’t see anyone who seemed the worse for the wear. If it weren’t for all the colorful obscenity I’d be comfy bringing a kid along.

The crowd is a little whiter than usual for Vancouver, mostly pretty young, male dominated, with a visible gay faction. Nothing special.

View from the Southsiders section at BC Place

Note: Canadian and rainbow flags. Somewhat obstructed view; the flags are out because a goal has just been scored, you can see the smoke from the fireworks. The opposing goal is a long way away.

What’s good: Being right on top of any goals scored at the near end. The surges of shared emotion concerning the action in the game.

What’s bad: Standing all through the game. The action at the other end is too far away. The songs and chants grow wearing after a while.

The game

The Whitecaps won, which was nice. It was pretty close, actually, against a team that shouldn’t be much of a threat. But then, most of Vancouver’s best players were out in healing-from-injury or resting-from-overwork mode. I still think the Whitecaps are substandard at working the ball through the middle of the field, but do well at both ends; At the moment the stats seem to say that they’re on top both at scoring and preventing goals.

Here’s what to do if you’re watching a game: If either Pedro Vite (#45) or Jayden Nelson (#7) get the ball, lean in and focus. Both those guys are lightning in a bottle. I’ve enjoyed watching this team more than any other Vancouver sports franchise ever. It probably can’t last.

Will I do the Southsiders section again? Maybe. I suspect I’ll enjoy their energy and edge just as much even when I’m not in the section, plus I’ll get to sit down. We’ll see.

My son and I had fun. No regrets.

Censoring Social Media 28 Apr 2025, 12:00 pm

In mid-April we learned about Bluesky censoring accounts as demanded by the government of Türkiye. While I haven’t seen coverage of who the account-holders were and what they said, the action followed on protests against Turkish autocrat Erdoğan for ordering the arrest of an opposition leader — typical behavior by a thin-skinned Führer-wannabe. This essay concerns how we might think about censorship, its mechanics, and how the ecosystems built around ActivityPub and ATproto can implement and/or fight it.

That link above is to TechCrunch’s write-up of the situation, which is good. There’s going to be overlap between that and this but neither piece is a subset of the other, so you might want to read TechCrunch too.

Censorship goals and non-goals

How, as the community of people who live and converse online, should we want our decentralized social media to behave?

I’m restricting this to decentralized social media because the issues around censorship differ radically between a service owned and controlled by a profit-seeking corporation, and an ecosystem of interoperating providers who may not be in it for the money.

So, from the decentralized point of view, what should be the core censorship goals? As Mencken said, “For every complex problem there is an answer that is clear, simple, and wrong.” Here are two of those:

  1. No censorship. Let people say what they will and the contest of ideas proceed. Freedom of speech must be absolute.

  2. Suppress any material which is illegal in the jurisdiction where the human participant is located. Stop there, because making policy in this area is not the domain of of social-media providers.

“Free speech”?

The absolutists’ position is at least internally consistent. But it has two fatal flaws, one generic and one specific. In general, a certain proportion of people are garbage and will post terrible, hateful, damaging things that make the online experience somewhere in the range between unpleasant and intolerable, to the extent that many who deserve to be heard will be driven away.

And specifically, history teaches us that certain narratives are dangerous to civic sanity and human life: Naziism, revanchism, hypernationalism, fomenting ethnic hatred, and so on.

Another way to put this: Everyone has a basic right to free speech, but nobody has a right to be listened to.

So, the Free Speech purists can now please show themselves out. (Disclosure: I didn’t mean that “please”.)

“Rule of law”?

I can get partially behind this. If you’re running a social-media service in a civilized democratic country and posting X is against the law, you’d better think carefully about allowing X. (Not saying that civil disobedience is always wrong, just that you need to think about it.)

But mostly no. The legalist approach suffers from positive and negative failures. Negative, as in censoring-is-wrong: I really DGAF about Turkish legal restrictions, because they’re more or less whatever Erdoğan says they are, and Erdoğan is a tinpot tyrant. Similarly, on Trump’s current trajectory it’ll soon be illegal to express anti-Netanyahu sentiment in the USA.

Positive, as in not-censoring is wrong: Lolicon is legal in Japan and treated like CSAM elsewhere. Elsewhere is right, Japan is wrong. Another example: Anti-trans hate is increasingly cheerled by conservative culture warriors all over the place and is now the official policy of the British government. Sir Keir Starmer would probably be suspended from my Mastodon instance and invited to find somewhere else, except for somewhere else would be mass-defederated if it tolerated foolish bigots like Starmer.

How Bluesky does it

(I should maybe say “How ATproto does it” but this seems more reader-friendly.) It’s not as though they pushed some button and silenced the hated-by-Erdoğan accounts. In fact, it’s subtle and complicated. For details, see Bluesky, censorship and country-based moderation by Laurens Hof at The Fediverse Report. Seriously, if you think you might have an opinion about Bluesky and what they’re doing, go read Hof before you share it.

Having said that, I think I can usefully offer a short form. Bluesky supports the use of multiple composable moderation services, and client software can decide which of them to subscribe to. It provides a central moderation service aimed at stopping things like CSAM and genocide-cheerleading that’s designed to operate at the scale of the whole network, which seems good to me.

It also offers “geographic moderation labelers”, which can attach “forbidden” signals to posts which are being read by people in particular areas. That’s what they did in this case; the Erdoğan-hated accounts had those labels attached to their posts, but only for people who are in Türkiye.

The default Bluesky client software subscribes to the geographic labeler and does as it’s told, which made Erdoğan and his toadies happy.

But anyone can write Bluesky client software, and there’s nothing in the technology that requires clients to subscribe to or follow the instructions of any moderation service. One alternate client, Deer.social, is a straightforward fork of the default, but with the geographic moderation removed. (It may have other features but looks about like basic Bluesky to me.)

How the Fediverse does it

(I should maybe say “How ActivityPub does it” or “How Mastodon does it” but…) Each instance does its own moderation and (this is important) makes its own decision as to which other instances to federate with. There are plenty of sites out there running Fediverse software that are full of CSAM and Lolicon and Nazis and so on. But the “mainstream” instances have universally defederated them, so it’s rare to run across that stuff. I never do.

To make things easy, there are “shared block-lists” that try to keep up-to-date on the malignant instances. It’s early days yet but I think this will be a growth area.

Most moderation is based on “reporting” — if you see something you think is abusive or breaks the rules, you can hit the “report” button, and the moderators for your instance and the source instance will get messaged and can decide what to do about it.

The effect is that there is a shared culture across a few thousand “mainstream” instances that leads, in my opinion, to a pretty pleasing atmosphere and low abuse level. We have a problem in that it’s still too easy to for a bad person to post abusive stuff in a way that is hard for moderators to see, but it’s being worked on and I’m optimistic.

Dealing with Erdoğan: Bluesky

So, suppose we want our social-media services to route around Erdoğan’s attempts to silence his political opponents. I do. How effective would Bluesky and the Fediverse be at that?

Bluesky makes it easy: Just use an alternate client. Yay! Except for, most people don’t and won’t and shouldn’t have to. Boo!

Still I dunno, in a place where the politics is hot, the word might get out on the grapevine and a lot of people could give another client a try. Maybe? Back in the day a lot of people used alternate Twitter clients, until Twitter stomped those out. I’m not smart enough to predict whether this could really be effective at routing round Erdoğan. I lean pessimistic though.

Wait, what about the Bluesky Web interface? Who needs a client anyhow! No luck; it turns out that that’s a big fat React app with mostly the same code that’s in the mobile apps. Oh well.

Anyhow, this ignores the real problem. Which is that if Erdoğan’s goons notice that people are dodging the censorship they’ll go nuclear on Bluesky (the company) and tell them to just stop displaying those people’s posts and to do it right fucking now.

If that doesn’t work, they have a lot of options, starting with just blocking access to bsky.app, and extending to arresting any in-country staff or, even better, their families. And throwing them in an unheated basement. I dunno, a courageous and smart company might be able to fight back, but it wouldn’t be a good situation.

And that’s a problem, because even though the ATproto is by design decentralized, in practice there’s only one central service that routes the firehose of posts globally. So my bet would be that Erdoğan wins.

Dealing with Erdoğan: Fediverse

This is a very different picture. Block access to the app and a lot of people won’t notice because they use the browser, connecting to one of the thousands of Fediverse instances, desktop or mobile, and it’ll work fine. OK, how about finding out which instances the people they’re trying to ban are on, and going after those instances? If the instance is in a rule-of-law democracy, the Turks would probably be told to go pound sand.

OK, so what if the Turks ferociously attacked the home servers of the Thought Criminals? No problemo, they’d migrate to a more resilient instance and, since this is the Fediverse, their followers might never notice, they’d just come along with them.

Pretty quickly the Erdoğan gang are gonna end up playing whack-a-mole. In fact I think it’s going to be really, really hard in general for oppressive governments to censor the Fediverse. Not impossible; the people who operate the Great Firewall would probably find a way.

When Bluesky progresses to the point that there isn’t a single essential company at the center of everything, it should be censorship-resilient too, for the same reasons.

Take-aways

I think that, to resist misguided censorship by misguided governments, we need (at least) these things:

  1. A service with no central choke-points, but rather a large number of independent co-operating nodes.

  2. Accounts, and the follower relationships between them, are not tied to any single node.

Clearly these conditions are necessary; we don’t know yet whether or not they’re sufficient. But I’m generally optimistic that decentralized social media has the potential to offer a pretty decent level of censorship resistance.

CL XLV: Island Spring 21 Apr 2025, 12:00 pm

Join me for a walk through a rain forest on a corner of a small island. This is to remind everyone that even in a world full of bad news, the trees are still there. From the slopes leading down to the sea they reach up for sunshine and rain, offering no objections to humans walking in the tall quiet spaces between them.

[The island is Keats Island, where we’ve had a cabin since 2008. It’s mostly just trees and cabins, you can buy an oceanfront mansion for millions or a basic Place That Needs Work for much less (as we did) or you can camp cheap. Come on over sometime.]

On the path up from the water to the cabin there’s this camellia that was unhappy at our home in the city, its flowers always stained brown even as they opened. So we brought it to the island and now look at it!

Camellia bush with many white and gold blossoms

One interior shot. On this recent visit I wired up this desk, a recent hand-me-down from old friend Tamara.

A desk with a computer and outboard monitor and really great views

When I got it all wired up I texted her “Now I write my masterpiece” but instead I wrote that one about URI schemes, no masterpiece but I was happy with it. And anyhow, it’s lovely space to sit and tap a keyboard.

Now the forest walk.

Pacific Northwest rain forest

These are rain forests and they are happy in their own way when it rains but I’m a Homo sapiens, we evolved in a sunny part of the world and my eyes welcome all those photons.

In 2008 I was told that the island had been logged “100 years ago”. So most of these are probably in the Young-Adult tree demographic, but there are a few of the real old giants still to be seen.

Sometimes the trees seem to dance with each other.

Tall bare tree trunks seem to dance Tall bare tree trunks seem to dance

Both of those pictures feature (but not exclusively) Acer macrophyllum, the bigleaf Maple, the only deciduous tree I know of that can compete for sun with the towering Cedar/Fir/Hemlock evergreens. It’s beautiful both naked (as here) and in its verdant midsummer raiment.

But sometimes when you dance too hard you can fall over. He are two different photographic takes on a bigleaf that seems to have lost its grip and is leaning on a nearby hemlock.

Tall trees leaning together Tall trees leaning together

And sometimes you can just totally lose it.

Nurse log rolled, laying a tree trunk flat

It is very common in these forests to see a tree growing out of a fallen log; these are called “nurse logs”. It turns out to be a high-risk arboreal lifestyle, as we see here. It must have been helluva drama when the nurse rolled.

I’m about done and will end as I began, with a flower.

Small pink blossom, a bit tattered, the background out of focus

This is the blossom of a salmonberry (Rubus spectabilis) a member of the rose family. It has berries in late summer but they’re only marginally edible.

It’s one of the first blossoms you see in the forest depths as spring struggles free of the shackles of the northwest winter.

Go hug a tree sometime soon, it really does help.

Decentralizing Schemes 16 Apr 2025, 12:00 pm

I’m a fan of decentralized social media and that’s partly because I enjoy using it. But mostly because history teaches that decentralization is the best basis for sustainable, resilient online conversation. (Evidence? Email!) For the purpose of this essay, let’s assume that you agree with me. Let’s also assume that our online life is still Web-flavored. I’m going to describe a few unfortunate things that can happen in a decentralized world, then look at a basic built-in feature of the Web that might make the problems go away.

Let’s start with bad-experience scenarios

Sharing pain

Suppose I post a picture to my social-media feed and since Ash follows me, it shows up in their stream. They can favorite or boost it, but let’s suppose they think their friend Layla might like it too, so they grab the link and drop into their chat window with Layla, or maybe they send her an email.

By “link” I mean “URL”, and by “URL” I mean “URI” (the distinction will matter in a bit). Here’s what that looks like, first on the Fediverse:
 https://cosocial.ca/@timbray/114361121438267145
And on Bluesky:
 https://bsky.app/profile/tbray.org/post/3lmxrkmwz5k2u

Layla sees the link and clicks it or taps it and yay, there’s the picture. She dislikes it and wants to add a negative comment. On the Fediverse, if it turns out she’s logged onto CoSocial.ca like me she’ll have no trouble, she can fire away. If she’s logged into another instance (and the Fediverse has thousands) she’s out of luck, even though she’s got a live Fediverse session. She can paste the URL or just “@timbray” into her search window and that might get her there indirectly if she’s lucky.

This is a bad experience.

On Bluesky, it’ll probably just work. Well, for now. Because while Bluesky is based on the AT Protocol (ATproto for short) which is in theory decentralized, at the moment Ash is logged into the “App View” at bsky.app just like I am, because in practice everybody on Bluesky is.

But in a future where there are multiple ATproto App Views, which is to say when Bluesky becomes as decentralized as the Fediverse is today, we’re back with the Fediverse problem, because her browser doesn’t know that the URI identifies an ATproto post that she should be able to boost or like.

Client pain

There’s another problem in this scenario. Suppose Layla was logged into CoSocial.ca, but she wasn’t using the default Mastodon client, but rather an alternative such as Phanpy or Elk.zone. When Layla clicks on that link she won’t be in her fave Fedi client but back in vanilla Mastodon.

Not a good experience.

Post portability pain

Let’s look at the URI for a different Fediverse post of a pretty picture:
 https://mastodon.cloud/@timbray/109508984818551909

It’s one of my posts all right, but it’s not from cosocial.ca, it’s from mastodon.cloud, which was my first home on the Fediverse. I left it in December 2022 because it was sold to another company which is sketchy, by which I mean Lolicon-friendly.

Whatever I think of whoever’s running mastodon.cloud, I have a lot of posts over there, some of which I care about. For now, they’re still there, but I’m not contributing any money to those guys, nor will I, so if they pull the plug and vanish I can’t complain. Only if they do, so do all those posts that I cared about back then and still do a bit.

Another bad experience.

URIs and schemes

[Anyone who already understands URIs schemes and so on can skip to the next section.]

Let’s look at that Fediverse link again:
 https://cosocial.ca/@timbray/114280972142347258

I call it a “URI” because that’s the official name for what it is. What they look like and how to use them are very thoroughly specified in several Internet Engineering Task Force publications starting with RFC3986. URLs are also URIs, but URIs can do surprising things that you’ve probably never seen in the world of ordinary URLs.

The crucial thing about both the Fediverse and Bluesky URIs is that they begin with the magic letters “https” followed by a colon. All URIs begin with a short string and a colon; the string is called the URI scheme. For each possible scheme, there’s a set of rules saying how to handle URIs of that flavor. If it’s “https”, then the rules say, using that Fediverse URI as an example, to make an encrypted connection to the server at cosocial.ca and ask it to send you /@timbray/114280972142347258. You’ll get some bytes that represent what the URI identifies.

[Yes, I’m oversimplifying. Sorry.]

While most of the URLs you’re ever likely to encounter begin with “https:” there are other schemes. Suppose your email is “tim@example.com”. Paste mailto:tim@example.com into your browser, hit Enter, and see what happens. This is a URI whose scheme is “mailto” and it works just fine.

When I tried this just now on my Mac, all three of Safari, Firefox, and Chrome noticed that I use the Mimestream mail app and popped that up. Which shows that somewhere in this computer there’s a notion of a registered handler for a particular URI scheme. Which is exactly what URI schemes were designed for.

I mean, if I can install an email app to handle mailto: URIs, why can’t I install a Fediverse app to handle fedi:?

There are lots of URI schemes! Here’s the official registry. Now, most of these are marked as “provisional” which means “we’re just reserving this scheme because we think we’re going to use it” and even among the ones that aren’t provisional, very few of them are in widespread enough use that you can expect your browser to handle them.

You’ll notice that the at: scheme is in there, registered by the Bluesky people (after I suggested they do so). For the Fediverse, I see web+ap: (which I’d never heard of before starting to write this).

Let’s suppose that there were URI schemes for both ATproto (at:) and the Fediverse(I suggest fedi: rather than web+ap: for reasons I’ll discuss later). Let’s also suppose that they were well supported by operating systems and browsers. I claim that this would help solve all three of those pain scenarios.

Solving sharing and client pain

Remember, Ash copied the URI for a post and dropped into their chat window with Layla; when Layla clicked it, she saw the post but couldn’t boost it or reply to it.

But suppose it began with either at: or fedi: — then the computer or mobile would dispatch to whatever Layla uses to interact with ATproto/Fediverse software, and it’d know how to go about opening that post in the way Layla expects so she can reply and boost and so on. I’m ignoring the details of how that’d work, and some of them are tricky, but this could be done.

Solving migration pain

This is a little more ambitious, but remember that “mastodon.cloud” post that might go away some day if the server does? Suppose we change it slightly, like so:
 fedi://mastodon.cloud/@timbray/109508984818551909

Once again, because it begins with “fedi:” not “https:”, the job would be handed off to Fediverse-savvy software. And since the Fediverse already knows how to migrate accounts from one server to another and bring your followers along, why shouldn’t it also copy your posts and store them somewhere, and when it hits that URI, remember “Oh wait, that @timbray@mastodon.cloud handle migrated a couple of times but that’s OK, I still have the posts from the old servers stored away so I can fetch that post rather than just giving up because mastodon.cloud went away”.

Now, as far as I know, Mastodon doesn’t have any capabilities like that, nor does any other Fediverse software. But once again, it’s a thing that could be done. And if we have a new URI scheme, there’d be a hook to hang that kind of software on.

At the moment, ATproto/Bluesky is a lot closer to being able to do this. Your ATproto account isn’t tied to the server you happen to be logged into when you posted it, it’s a long-lived asymmetric-crypto based thing and it assumes that there’ll be per-account storage not tied to any particular App View. Also posts are identified by content hash, which should be helpful.

But as far as I know, even with ATproto, if my browser’s visiting the bsky.app App View and I shoot a URL beginning with https://bsky.app to someone on the blacksky.web.xyz App View, I don’t see how the browser can figure out that that URL should invoke ATproto software.

But if it began at://bsky.capp, it’d be perfectly tractable (I think).

Scheme details and problems

There multiple proposals for a Fediverse URI scheme. I already mentioned web+ap: and then there’s web+activitypub: from silverpill (which may be the same?), and fedi: from me. The “web+” ones are more descriptive but mine is cooler and I think that matters. The proposals include useful discussions of the issues, which include those discussed in this essay; if you care about this stuff I think both would reward a read.

I also have to note this from Mastodon author Eugen Rochko back in 2022: “We've done this before but removed because browser support / UX was inadequate.”

(Before I go on I should point out that Eugen is right about support for alternate schemas in Web browsers being weak, but not all of them. On Android, any app can register itself to handle URIs of a particular scheme. I assume iOS has something similar? So this isn’t completely science-fictional.)

So using URI schemees isn’t a new idea and yeah, patchy browser support is a problem. The people who build Safari and Chrome and Firefox are busy and are fanatically concerned with security and stability for their billions of users, and if I go and tap them on the shoulder and say “Here are new schemes and here’s the decentralized-social-media software I want registered to handle them” they’re not gonna to just say “Okay” and do it.

Bit I dunno, the times they are a changin’. As Bluesky and the Fediverse build momentum, and the decentralized path forward looks more and more attractive, the case for new URI schemes probably becomes easier to make.

As it should. Because the notion of the URI is a core foundational piece of the Web’s architecture, and the design of URIs has multiple protocol support baked in, and the URI schemes exist specifically to enable it.

So, we should work on using it.

Coachella 2025 14 Apr 2025, 12:00 pm

Last weekend I spent a few hours watching Coachella on YouTube. The audio and video quality are high. It’s free of ad clutter, but maybe that’s because I pay for Google Music? The quality of the music is all over the map. If I read the schedule correctly, they’ll repeat the exercise next weekend, so I thought a few recommendations might be helpful. Even if it’s not available live, quite a few captures still seem to be there on YouTube, so check ’em out.

I tried sorting these into themes but that tied me in knots, so you get alphabetical order.

Lady Gaga at Coachella 2025

Lady Gaga brings it.

Blonde Redhead

Not sure what kind of music to call this, but the drums and guitar (played by identical twins Simone and Amedeo Pace) are both hot, and Kazu Makino on everything else has loads of charisma, and they all sang well. Didn’t regret a minute of my time with this one.

Ben Böhmer

I have no patience whatsoever for EDM. Deadmau5 and Zedd and their whole tribe should go practice goat-herding in Bolivia or anything else that’ll keep them away from audiences who want to hear music played by musicians. But there were multiple artists this year you could describe as X+EDM for some value of X, and much to my surprise a few of them worked.

(One that notably didn’t was Parcels, whose genius idea is EDM+Lightweight Aussie pretty-boy pop. On top of which, every second of their performance featured brilliant lights strobing away, shredding my retinas and forebrain. I say it’s EDM and I say to hell with it. Go back to Australia and stay.)

But Mr Böhmer not only held my attention but had my toes tappin’. His stuff isn’t just hot dance moves against recorded tracks, it’s moody and cool and phase-shifty and dreamy. It helps that he plays actual musical notes on actual keyboards.

Beth Gibbons

I thought “I remember that name.” (Sadly, on first glance at the schedule I did not in fact recognize many names.) Ms Gibbons was the singer for Portishead, standard-bearers of Trip-hop back in the day. Her voice sounds exactly the same today as it did three decades ago, which is to say vulnerable and lovely.

The songs were all new (aside from Portishead’s Glory Box) and good. Beth never had any stage presence and still doesn’t, draped motionless over the mike except when she turns away from the crowd to watch someone soloing.

What made the show a Coachella highlight was the band, who apparently had just arrived from another planet. It was wonderfully strange as in I didn’t even know what some of the instruments were. Anyhow it all sounded great albeit weird, the perfect complement to Beth’s spaced-out (I mean that in the nicest way) vocal arcs.

Go-Gos

This posse of sixtysomething women won my heart in the first three seconds of their set with a blast of girl-group punk/surf guitar noise and a thunderous backbeat. The purest rock-&-roll imaginable, played with love and bursting with joy. They can sing, they can play, they still have plenty of moves. It‘s only rock and roll but I like it, like it, yes I do.

HiTech

OK, this is another X+EDM, where the X is “Ghettotech, house, Rap & Miami base” (quoting their Web site). I have no idea what “Miami base” is but I guess I like it, because they’re pretty great. Outta Detroit.

Their set was affably chaotic, the rapping part sharp-edged and hot, and they had this camera cleverly mounted on the DJ deck giving an intense close-up of whichever HiTech-ers were currently pulling the levers and twisting the knobs. Sometimes it was all three of them and that was great fun to watch.

I’m an elderly well-off white guy and am not gonna pretend to much understanding of any of HiTech’s genres, but I’m pretty confident that a lot of people would be entertained.

Kraftwerk sigh

They are historically important but the show, I dunno, I seem to recall being impressed in 1975 but it felt kinda static and tedious. The only reason I mention them is that a few of their big video-backdrop screens, near the start of the set, were totally Macrodata Refinement, from Severance. I wonder if any of the showrunners were Kraftwerk fans?

LA Phil, conducted by Gustavo Dudamel

Give Coachella credit for giving this a try. Dudamel is a smart guy and put together a program that wasn’t designed to please a heavy classics consumer like me. I mean, opening with Ride of the Valkyries? But there were two pieces of Bach and the orchestra turned into a backup band for Laufey, an Icelandic folk/jazz singer, a Gospel singer/choir, and some other extremely random stuff. If you’re not already a classics fan, this might open your eyes a bit.

Lady Gaga

I’m sure you’ve already read one or two rave write-ups about this masterpiece. It’s going to be one of the performances remembered by name forever, like Prince at the Superbowl or Muddy Waters at the Last Waltz. They built a freaking opera house in the desert, and that makes me wonder what the Coachella economics are; someone has to pay for this stuff, do Gaga and Coachella split it or is it the price of getting her to come and play?

To be fair, as the review in Variety accurately noted, it was pretty well New-York-flavored hoofing and belting wrapped in a completely incomprehensible Goth/horror narrative. So what?! The songs were great. The singing was fantastic and the dancing white-hot, plus she had a pretty hard-ass live metal-adjacent band and an operatic string section, and she brought her soul along with her and unwrapped it. It was easy to believe she loved the audience just as much as she said. She didn’t leave anything on the stage. They should make it into a big-screen movie.

I did feel a little sorry for the physical audience, quite a bit of the performance seemed to be optimized for couch potatoes with big screens like for example me. Anyhow, if you get a chance to see this one don’t miss it.

Other headliners?

There were three nights and thus three headliners. You’ll notice that I only talked up Friday night’s Lady-Gaga set. That’s because the other two were some combination of talentless and uninspired and offensive. Obviously I’m in a minority here, they wouldn’t get the big slots if millions didn’t love ’em. And I like an unusually wide variety of musical forms. But not that shit.

The CoSocialist Future 5 Apr 2025, 12:00 pm

This week marks the second anniversary of the launch of the CoSocial.ca Mastodon server, which is one leg of my online presence (the other is this blog.) I’ve never been more convinced that online social interaction has to change paths and take a new direction. And I think CoSocial has lessons to teach about that direction. Here are some.

A personal note: I’ve been fortunate in that bits and pieces of my career have felt like building the future. For example, right now, about the Fediverse generally and CoSocial in particular. In this essay I’ll try to explain why. But it’s a fine feeling.

Decentralized

This is maybe the biggest thing. The Web, by design, is decentralized. You don’t need permission to put up any kind of Web server or service. Social media should follow the decentralized path blazed by the Web and by the world’s oldest and most successful conversational app, namely email.

It seems painfully obvious that a network of thousands or millions of servers, independently operated, sizes ranging from tiny to huge, is inherently more flexible and resilient than having all the conversations owned and operated by one globally-centralized business empire.

To be decentralized, you need a protocol framework so the servers can talk to each other. CoSocial uses ActivityPub, which at the moment I think is the best choice.

Some smart people who like the Bluesky experience are trying to make its AT Protocol work in a way that’s as demonstrably decentralized as ActivityPub is today. Maybe they’ll succeed; then operations like CoSocial should maybe consider it as an alternative. We’ll see.

Not for profit

Our goals do not include enriching any investors. We plan to pay the people who do the work and have just advertised for our first paid position.

We’re not-for-profit because the goals of the investor community are incompatible with a healthy online experience. In 2025, companies are judged on profit growth; everything else is secondary. If you can grow your audience organically, good, but the world is finite, so when you’ve attracted everyone you’re going to, you’re going to have to focus on raising prices and reducing costs. Which is likely to produce an unpleasant experience for the people you serve.

Cory Doctorow aptly uses “enshittification” to describe this often-observed pattern.

A registered co-operative

There are a lot of different ways to set up a not-for-profit. The simplest organization is no organization: Someone buys a domain name, puts up a server, invites people on board, and uses Patreon donations to keep the lights on.

Which is exactly what Chad did at Mstdn.ca, and it seems to be working OK. It’s a testament to the strong fibres of the Web, still there after all these decades of corrupting big money, that you can just do this without asking anyone’s permission, and get away with it.

But we didn’t. We are a registered co-operative in BC, Canada’s westernmost province. It took us a couple of months to pull together the Board and constitution and bylaws. We have to file annual reports and comply with governing legislation.

I am absolutely not going to suggest that a cooperative is the optimal not-for-profit approach. But I am pretty convinced that if you want to be treated as an organic component of civil society, you should work within its frameworks. Plus, it seems to me, on the evidence, that member-owned cooperatives are a pretty great way to organize human activities.

More than a click to join

As I write this, most modern social-media products let you just roll up to the Web site and say “I wanna join”, and they say “click here”. Or even just make a couple of API calls.

We’re not like that. You have to apply for membership and offer a few words about why. Then you have to [*gasp*] pay. A big fifty Canadian dollars a year buys a co-op membership and a Fediverse account. The first year of Fediverse is $40 so we can book $10 of your initial payment as payment for a CoSocial share (refundable if you later cancel).

When you apply, we check that you did so from an IP address in Canada, we glance at your reasons for wanting to join, then if you haven’t already contributed, we send you an email asking you to pony up and, once you have, we let you in.

The whole thing takes maybe five minutes of effort from the new member and a CoSocial moderator.

What matters about this process? The fact that it exists. Nicole the Fediverse Chick can’t get a CoSocial account, nor can any other flavor of low-rent griefer or channer or MAGA chud. Just the fact that you can’t join by calling a few APIs filters out most of the problems, and then being asked to, you know, pay a little money, takes care of the rest.

Which is to say, being a CoSocial moderator is dead easy. Sure, we get reports on our members from time to time. So far, zero have been really worrying. On a small single-digit-number of times, we’ve asked a member to consider the fact that they seem to be irritating some people.

And we throw reports from Hasbara keyboard warriors and similarly non-credible sources on the floor.

The key take-away: Imposing just a little teeny-tiny bit of friction on the onboarding process seems to achieve troll-resistance in one easy step.

Transparent

We have a bank account and credit cards and so on, but we run all our finances through a nice service called OpenCollective. Which makes all our financial moves 100% transparent: Here they are.

No Advertising

CoSocial has none, and never will.

It is a repeating pattern that advertising-supported social-media products offered by for-profit enterprises become engulfed in a tempest of controversy and litigation.

Since it’s axiomatic that centralized social media has to be free to use, ads are required, which means the advertisers are the customers. Those customers will continuously agitate for more intrusive advertising capabilities and for brand protection by avoiding sex, activism, or anything that might make anyone uncomfortable.

I don’t know about you, but I’m interested in sex and activism.

Intellectually, I appreciate that advertising should be a normal facet of a functional economy. How else am I going to find out what’s for sale? But empirically, advertising as it’s done now seems to exert a powerfully corrupting influence.

The only way forward?

I’m not claiming that CoSocial is. But I am arguing strongly for the combination of decentralization, not-for-profit, legal registration, non-zero onboarding friction, transparency, and advertising rejection. There are lots of ways to shape resilient social-media products that do these things. There are other legally regulated non-profit structures that aren’t co-ops.

Also, there are plenty of other organizations that would benefit from hosting social-media voices: Government departments, academic institutions, sports teams, fan clubs, marketing groups, professional societies, videogame platforms, and, well, the list is long.

How’s CoSocial doing?

Slow and steady. We’re tiny, less than 200 strong, but we get a few new members every month. Two years in, a grand total of two members have decided not to renew.

We’ve got a modestly pleasing buildup of money in the bank account, which means that we need to get serious about becoming less volunteer-centric, and thus more resilient.

The service is fun to use, it’s reliable, and about as troll-free as can be. Come on in!

(But only if you’re in Canada and willing to pay a bit.)

Latest Music (feat. Qobuz) 27 Mar 2025, 12:00 pm

I’ve written a lot about ways of listening to music; in the current decade about liking YouTube Music but then about de-Googling. What’s new is that I’m spending most of my time with Plexamp and Qobuz. The trade-offs are complicated.

YouTube Music

I liked YTM because:

  1. It let me upload my existing ten thousand tracks or so, which include many oddities that aren’t on streamers.

  2. It did a good job of discovering new artists for me.

  3. The Android Auto integration lets me say “Play Patti Smith” and it just does the right thing.

But the artist discovery has more or less ran out of gas. I can’t remember the last time I heard something new that made me want more, and when I play “My Supermix”, it seems to always be the same couple of dozen songs, never anything good and new.

Also: Bad at classical.

I think I might keep on paying for YTM for the moment, because I really like to watch live concerts before I go to bed, and it seems like YTM subscribers never see any ads, which is worth something.

Plexamp

Plexamp

I wrote up what it does in that de-Googling link. Tl;dr: Runs a server on a Mac Mini at home and lets me punch through to it from anywhere in the world. I’ve been listening to it a lot, especially in the car, since YTM got boring.

My back inventory of songs contains many jewels from CDs that I bought and loved in like 1989 or 2001 and subsequently forgot all about, and what a thrill when one of them lights up my day.

I still feel vaguely guilty that I’m not paying Plex anything, but on the other hand what I’m doing costs them peanuts.

But, I still want to hear new stuff.

Qobuz

Qobuz

I vaguely knew it was out there among the streamers, but I got an intense hands-on demonstration recently while shopping for new speakers; Phil at audiofi pulled up all my good-sound demo tracks with a couple of taps each, in what was apparently CD quality. Which opened my eyes.

What I like about Qobuz:

  1. It pays artists more per stream than any other service, by a wide margin.

  2. It seems to have as much music as anyone else.

  3. It’s album-oriented, and I appreciate artists curating their own music.

  4. Classical music is a first-class citizen.

  5. While it doesn’t have an algorithm that finds music it thinks I’ll like, it is actively curated and they highlight new music regularly, and pick a “record of the week”. This week’s, for example, is For Melancholy Brunettes (& Sad Women) by Japanese Breakfast. It’s extremely sweet stuff, maybe a little too low-key for me, but I still enjoyed it. They’re coming to town, I might go.

  6. This isn’t the only weekly selection that I’ve enjoyed. Qobuz gives evidence of being built by people who love music.

What don’t I like about Qobuz? The Mac app is kinda dumb, I sometimes can’t figure out how to do what I want, and for the life of me I can’t get it to show a simple full-screen display about the current song. But the Android app works OK.

As for Qobuz’s claim to offer “Hi-Res” (i.e. better than CD) sound, meh. I’m not convinced that this is actually audible and if it in principle were, I suspect that either my ears or my stereo would be a more important limiting factor.

Records!

Yep, I still occasionally drop the needle on the vinyl on the turntable, and don’t think I’ll ever stop.

And a reminder

If you really want to support artists, buy concert tickets. That thrill isn’t gone at all.

Long Links 17 Mar 2025, 12:00 pm

This will be the 30th “Long Links” post. The frequency has fallen off over the years; perhaps my time for long-form pieces has decreased or, just as likely, I protect my sanity in these dark days by consuming less. No, I don’t filter out Fascist Craziness, because it’s a thing that needs to be understood to be resisted. Thus, today’s Long Links does contain “the world is broken” pieces.” But not only; there’s good news here too, including fine typography and music.

Let’s start with music.

Music

All of Bach is a project of the Netherlands Bach Society with the aim to perform and record all of Bach's works and share them online with the world for free.” The project manifests on YouTube and I have spent a lot of hours enjoying it. The performances are all competent and while I disagree with an artistic choice here or there, I also think that many of these are triumphs.

One such triumph, and definitely a Long link, is Bach’s last work, The Art of Fugue, BWV 1080. Bach didn’t say which order the many parts of the piece should be performed in, or what instruments should be used, so there’s a lot of scope for choice and creativity in putting together a performance. This one is by Shinsuke Sato, the maestro of the Netherlands Bach Society. It is clever, unfancy, and its ninety or so minutes are mostly exquisite.

Vi Hart, mathemusician is now a Microsoftie, but has been one of my intellectual heroes. Get a comfy chair and pull up Twelve Tones, which addresses profound themes with a combination of cynicism, fun, music, and laserbats. You will need a bit of basic music literacy and intellectual flexibility, but you’ll probably end up smarter.

IsraPal

On the “everything is broken” front, Israel/Palestine looms large. Here are two New York Times gift links that face the ugliness with clear eyes. First, ‘No Other Land’ Won an Oscar. Many People Hope You Don’t See It is what the title says. Second, it’s bad that criticism of Israel has become Thoughtcrime, and worse when AI is weaponized to look for it.

Tchaikovsky Opera

Adrian not Pyotr, I mean, and space opera not musical costume drama. In particular, The Final Architecture series. It’s ultra-large-scale space opera in three big fat volumes. I would say it’s mining the same vein as The Expanse and while it didn’t hit me nearly as hard as that did, it’s fun, will keep you turning pages.

Photography

I’m a photography enthusiast and as a side-effect am gloomy about pro photogs’ increasing difficulty in making a living. I also buy a lot of stuff online. For both these reasons, What WhiteWall’s New Shopify Integration Means to Photographers caught my eye. First of all, it’s generally cool that someone’s offering a platform to help photogs get online and sell their wares.

Second, I can’t help but react to Shopify’s involvement. This gets complicated. First of all, Shopify is Canadian, yay. But, CEO Tobi Lütke is a MAGA panderer and invites wastrels like Breitbart onto the platform. And having said all that, speaking as a regular shopper, the Shopify platform is freaking excellent.

Whenever I’m on a new online merchant and I see their distinctive styling around the “Proceed to payment” button, I know this thing is gonna Just Work. A lot of times, once I’ve typed in my email address, it says “OK, done”, because it shares my payment data from merchant to merchant. Occasionally it’ll want me to re-authenticate or send a security code to my phone or or whatever.

If I were setting up an online store to sell anything, that’s what I’d use. I mean, I’d hold my nose and let the company know that they need to fire their CEO for treason, but it’s still what I’d probably use.

Speaking of photography, I’ve repeatedly written about “C2PA”, see On C2PA and C2PA Progress. I’m not going to explain once again what it is, but for those who know and care, it looks like Sony is doubling down on it, yay Sony!

Vancouver

Vancouver residents who know the names “Concord Pacific” or “Terry Hui”, or who have feelings about False Creek, will probably enjoy Terry Hui’s Hole in Vancouver’s Heart. You will have noticed some of the fragments of this bit of history going by, but Geoff Meggs puts it all together on a large vivid canvas that will you better informed and probably somewhat mind-boggled.

Let’s talk about TV!

By which I mean a video screen used recreationally. Check out Archimago’s HDMI Musings: high speed cables, data rates, YCbCr color subsampling, Dolby Vision MEL/FEL, optical cables and +5V injection. Yes, that’s a long title, and it’s a substantial piece, because HDMI is increasingly how you connect any two video-centric pieces of technology.

From which I quote: “This recent update makes HDMI the fastest of all currently-announced consumer Audio-Video connection standards, the one wire that basically does it all”. I’m not going to try to summarize, but if you plow through this one you’ll know a lot more about those black wires all over your A/V setup. There’s lots of practical advice; it turns out that if you’re going to run an HDMI cable further than about two meters, certification matters.

Life online

Where do people learn about the world from? The Pew Research Center investigated and published Social Media and News Fact Sheet. I suspect the results will surprise few of you, but it’s nice to have quantitative data. I would hope that a similar study, done next year not last year, would include decentralized social media, which this doesn’t.

I know that Ed Zitron’s Never Forgive Them went viral, and I bet a lot of you saw it go by, or even started reading then left it parked in a tab you meant to get back to, because it’s so long. Yeah; it’s arguably too long and too shrill, but on the other hand it is full of truth and says important things I’ve not seen elsewhere.

For example, I suspect most people reading this are angry about the ubiquitous enshittification of the online, but Zitron points out that people like us suffer much less because we have the money and the expertise to dodge and filter and route around a lot of the crap. Zitron actually purchased one of the most popular cheap Windows PCs — the kind of device ordinary people can afford — and reports from the front lines of what is in part a class war. The picture is much worse than you thought it was.

Here are a few bangers:
“It isn’t that you don’t ’get‘ tech, it’s that the tech you use every day is no longer built for you, and as a result feels a very specific kind of insane.”
“almost every single interaction with technology, which is required to live in modern society, has become actively adversarial to the user”.
“The average person’s experience with technology is one so aggressive and violative that I believe it leaves billions of people with a consistent low-grade trauma.”

Publishing tech

It’s where I got my start. Two of the most important things are typography and color. And there’s good news!

The Braille Institute offers Read Easier With Our Family of Hyperlegible™ Fonts, which begins “Is this font easy for you to read? Good—that’s the idea.” Like! Would use. And in an era where the Web is too much infested by teeny-tiny low-contrast typography, it’s good to have alternatives.

Now, as for color: It is a sickeningly complex subject, both at the theory level and in the many-layered stack of models and equations and hardware and software that cause something to happen on a screen that your brain perceives as color. Bram Cohen, best-known for inventing BitTorrent, has been digging in, and gives us Color Theory and A Simple Color Palette. I enjoyed them.

Geekery

If you know what “IPv6” is, then Geoff Huston’s The IPv6 Transition will probably interest you. Tl;dr: Don’t hold your breath waiting for an all-IPv6 Internet.

And, much as I’d like to, it’s difficult to avoid AI news. So here is plenty, from Simon Willison, who has no AI axe to grind nor product to sell: Things we learned about LLMs in 2024.

Business

I can testify from personal experience that Andy Jassy is an extremely skilled manager, but I found Amazon and the endangered future of the middle manager, from CNBC, unconvincing. The intro: “Jassy's messaging on an increased ratio of individual contributors to managers raises a much bigger question about organizational structure: What is the right balance between individual workers and managers in overall headcount?” There’s talk of laying off many thousands of managers.

Before I worked at Amazon I was at Google, which has a much higher IC/manager ratio. Teams of 20 were not uncommon, and as a result, there was both a manager and a Tech Lead, which meant the manager was basically an HR droid. Amazon always insisted that the manager sweat the details of what their team was working on, deeply understand the issues they were facing and what they were building. I don’t see how that’s compatible with increasing the ratio.

And, Google management was way weaker than Amazon’s, not even close. So I’d have to say that the evidence is against Andy on this one.

Art island

Japan has one. It’s called Naoshima. Great idea. I’d go.

Totem Tribe Towers 7 Mar 2025, 12:00 pm

I bought new speakers. This story combines beautiful music with advanced analogue technology and nerdy obsession. Despite which, many of you are not fascinated by high-end audio; you can leave now. Hey, this is a blog, I get to write about what excites me. The seventeen of you who remain will probably enjoy the deep dive.

Totem Tribe Towers

Totem Tribe Tower loudspeakers, standing on a subwoofer.
This picture makes them look bigger than they really are. They come in black or white, satin or gloss finish.
Prettier with the grille on, I think.

Why?

My main speakers were 22 years old, bore scars from toddlers (now grown) and cats (now deceased). While they still sounded beautiful, there was loss of precision. They’d had a good run.

Speakers matter

Just in the last year, I’ve become convinced, and argued here, that both DACs and amplifiers are pretty well solved problems, that there’s no good reason to spend big money on them, and that you should focus your audio investments on speakers and maybe room treatment. So this purchase is a big deal for me.

How to buy?

The number of boutique speaker makers, from all over the world, is mind-boggling; check out the Stereophile list of recommendations. Here’s the thing: Pretty well all of them sound wonderful. (The speakers I bought haven’t been reviewed by Stereophile.)

So there are too many options. Nobody could listen to even a small proportion of them, at any price point. Fortunately, I had three powerful filters to narrow down the options. The speakers had to (1) look nice, and (2) be Canadian products, probably (3) from Totem Acoustic.

Decor?

I do not have, nor do I want, a man-cave. I’ve never understood the concept.

And you have to be careful. There are high-end speakers, some very well-reviewed, with design sensibilities right out of Mad Max or Brazil. And then a whole bunch that are featureless rectangles with drivers on the front.

Ours have to live in a big media alcove just off the kitchen; they are shared by the pure-audio system and the huge TV. The setup has to please the eyes of the whole family.

Canadian?

At this point in time, a position of “from anywhere but the US, the malignant force threatening our sovereignty” would be unsurprising in a Canadian. But there are unsentimental reasons, too. It turns out Canadian speaker makers have had an advantage stretching back many decades.

This is mostly due to the work of Floyd Toole, electrical engineer and acoustician, once an employee of Canada’s National Research Council, who built an anechoic chamber at the NRC facility, demonstrated that humans can reliably detect differences in speaker accuracy, and made his facility available to commercial speaker builders. So there have been quite a few good speakers built up here over the years.

Totem?

What happened was, in 1990 or so I went to an audio show down East somewhere and met Vince Bruzzese, founder of Totem Acoustic, who was showing off his then-brand-new “Model One” speakers. They were small, basic-black, and entirely melted my heart playing a Purcell string suite. They still sell them, I see. Also, the Totem exhibit was having a quiet spell so there was time to talk, and it turned out that Bruzzese and I liked a lot of the same music.

So I snapped up the Model Ones and that same set is still sounding beautiful over at our cabin. And every speaker I’ve bought in the intervening decades has come from Totem or from PSB, another excellent Toole-influenced Canadian shop. I’ve also met and conversed with Paul Barton, PSB’s founder and main brain. Basically, there’s a good chance that I’ll like anything Vince or Paul ship.

My plan was to give a listen to those two companies’ products. A cousin I’d visited last year had big recent PSB speakers and I liked them a whole lot, so they were on my menu. But PSB seems to have given up on audio dealers, want to sell online. Huh?! Maybe it’ll work for them, but it doesn’t work for me.

So I found a local Totem dealer; audiofi in Mount Pleasant.

Auditioning

For this, you should use some of your most-listened-to tracks from your own collection. I took my computer along for that purpose, but it turned out that Qobuz had ’em all. (Hmm, maybe I should look closer at Qobuz.)

Here’s what was on my list. I should emphasize that, while I like all these tracks, they’re not terribly representative of what I listen to. They’re selected to stress out a specific aspect of audio reproduction. The Americana and Baroque and Roots Rock that I’m currently fixated on are pretty easy to reproduce.

  • 200 More Miles from the Cowboy Junkies’ Trinity Session. Almost any track from this record would do; they recorded with a single ambiphonic microphone and any competent setup should make it feel like you’re in the room with them. And Margo’s singing should make you want to cry.

  • The Longships, from Enya’s Watermark album. This is a single-purpose test for low bass. It has these huge carefully-tuned bass-drum whacks that just vanish on most speakers without extreme bass extension, and the music makes much less sense without them. You don’t have to listen to the whole track; but it’s fine music, Enya was really on her game back then.

  • The opening of Dvořák’s Symphony #9, “From the New World”. There are plenty of good recordings, but I like Solti and the Chicago Symphony. Dvořák gleefully deploys jump-scare explosions of massed strings and other cheap orchestration tricks in the first couple of minutes to pull you into the symphony. What I’m looking for is the raw physical shock of the first big full-orchestra entrance.

  • Death Don’t Have No Mercy from Hot Tuna’s Live At Sweetwater Two. Some of the prettiest slide guitar you’ll hear anywhere from Kaukonen, and magic muscle from Casady. And then Jorma’s voice, as comfortable as old shoes and full of grace. About three minutes in there’s an instrumental break and you want to hear the musical lines dancing around each other with no mixups at all.

  • First movement of Beethoven’s Sonata #23, “Appassionata”, Ashkenazy on London. Pianos are very difficult; two little speakers have a tiny fraction of the mass and vibrating surface of a big concert grand. It’s really easy for the sound to be on the one hand too small, or on the other all jumbled up. Ashkenazy and the London engineers do a fine job here; it really should sound like he’s sitting across the room from you.

  • Cannonball, the Breeders’ big hit. It’s a pure rocker and a real triumph of arrangement and production, with lots of different guitar/keys/drum tones. You need to feel it in your gut, and the rock & roll edge should be frightening.

  • Identikit from Radiohead’s A Moon Shaped Pool. This is mostly drums and voice, although there are eventually guitar interjections. It’s a totally artificial construct, no attempt to sound like live musicians in a real space. But the singing and drumming are fabulous and they need to be 100% separated in space, dancing without touching. And Thom Yorke in good voice had better make you shiver a bit.

  • Miles Runs The Voodoo Down from Bitches Brew. This is complex stuff, and Teo Macero’s production wizardry embraces the complexity without losing any of that fabulous band’s playing. Also Miles plays two of the greatest instrumental solos ever recorded, any instrument, any genre, and one or two of the ascending lines should feel like he’s pulling your whole body up out of your chair.

  • Emmylou Harris. This would better be phrased as “Some singer you have strong emotional reactions to.” I listened to the title track and Deeper Well from the Wrecking Ball album. If a song that can make you feel that way doesn’t make you feel that way, try different speakers.

The listening session

I made an appointment with Phil at Audiofi, and we spent much of an afternoon listening. I thought Audiofi was fine, would go back. Phil was erudite and patient and not pushy and clearly loves the technology and music and culture.

I was particularly interested in the Element Fire V2, which has been creating buzz in online audiophile conversation. They’re “bookshelf” (i.e. stand-mounted) rather than floorstanders, but people keep saying they sound like huge tower speakers that are taller than you are. So I was predisposed to find them interesting, and I listened to maybe half of the list above.

But I was unhappy, it just wasn’t making me smile. Sure, there was a stereo image, but at no point did I get a convincing musicians-are-right-over-there illusion. It was particularly painful on the Cowboy Junkies. It leapt satisfactorily out of the speakers on the Dvořák and was brilliant on Cannonball, but there were too many misses.

Also, the longer I looked at it the less it pleased my eyes.

“Not working, sorry. Let’s listen to something else” I said. I’d already noticed the Tribe Towers, which even though they were floorstanders, looked skinny and pointy compared to the Elements. I’d never read anything about them but they share the Element’s interesting driver technology, and are cheaper.

So we set them up and they absolutely aced everything the Elements had missed. Just vanished, I mean, and there was a three-dimensional posse of musicians across the room, filling the space with three-dimensional music. They flunked the Enya drum-thwack test but that’s OK because I have a subwoofer (from PSB) at home. In particular, they handled Ashkenazy pounding out the Beethoven just absolutely without effort. I’m not sure I’ve ever heard better piano reproduction.

And the longer I looked at them the more my thinking switched from “skinny and pointy” to “slender and elegant”.

A few minutes in and, I told Phil, I was two-thirds sold. He suggested I look at some Magico speakers but they were huge and like $30K; as an audiophile I’m only mildly deranged. And American, so no thanks.

I went home to think about it. I was worried that I’d somehow been unfair to the Elements. Then I read the Stereophile review, and while the guy who did the subjective listening test loved ’em, the lab measurements seemed to show real problems.

I dunno. Maybe that was the wrong room for them. Or the wrong amplifier. Or the wrong positioning. Or maybe they’re just a rare miss from Totem.

My research didn’t turn up a quantitative take on the Tribes, just a lot of people writing that they sound much bigger than they really are, and that they were happy they’d bought them.

And I’d been happy listening to them. So I pulled the trigger. My listening space is acoustically friendlier than the one at Audiofi and if they made me happy there, they’d make me happy at home.

And they do. Didn’t worry too much about positioning, just made sure it was symmetric. The first notes they played were brilliant.

But how does it sound?

See all those auditioning tracks up above, where it says what speakers “should” do? They do, that’s what they sound like.

I’ve been a little short on sleep, staying up late to listen to music.

Follow-up: Customer service

As noted above I have a subwoofer, and my preamp lets you configure where to roll off the bass going to the main speakers and hand off to the subwoofer. I wrote off to Totem’s customer-support email address wondering if they had any guidance on frequency. They got back to me with specific advice, and another couple of things to double-check.

High-end audio. Simpatico salespeople. The products last decades. The vendors answer emails from random customers. Businesses it’s still possible to like.

Bye, Prime 6 Mar 2025, 12:00 pm

Today I canceled my Amazon Prime subscription.

Amazon Prime canceled

Why?

As I wrote in Not an Amazon Problem (and please go read that if you haven’t) I don’t see myself as an enemy of Amazon, particularly. I think the pressures of 21st-century capitalism have put every large company into a place where they really can’t afford to be ethical or the financial sector will rip them to shreds then replace the CEO with someone who will maximize shareholder return at all costs, without any of that amateurish “ethics” stuff.

To the extent that Amazon is objectionable, it’s a symptom of those circumstances.

I’m bailing out of Prime not to hurt Amazon, but because it doesn’t make commercial or emotional sense for me just now.

Commercial?

Yes, free next-day delivery is pretty great. In fact, in connection with our recent move, I’ve been ordering small cheap stuff furiously: (USB cables, light switches, closet organizers, a mailbox, a TV mount, WiFi hubs, banana plugs, you name it).

But the moving operations are mostly done, and there are few (any?) things we really need the next day, and we’re fortunate, living in the center of a 15-minute city. So getting my elderly ass out of my chair and going to a store is a good option, for more than one reason.

Second, for a lot of things you want to order, the manufacturer has its own online store these days and a lot of them are actually well-built, perfectly pleasant to use.

Third, Amazon’s prices aren’t notably cheaper than the alternatives.

Emotional?

Amazon is an US corporation and the US is now hostile to Canada, repeatedly threatening to annex us. So I’m routing my shopping dollars away from there generally and to Canadian suppliers specifically. Dumping Prime is an easy way to help that along.

Second, shopping on Amazon for the kinds of small cheap things listed above is more than a little unpleasant. The search-results page is a battle of tooth and claw among low-rent importers. Also it’s just really freaking ugly, hurts my eyes to look at it.

You have watched 29 shows/movies with Prime Video

Really? I have no idea what they were.

Finally, one of Prime’s big benefits used to be Prime Video, but no longer. There was just no excuse for greenlighting that execrable Rings of Power show, and I’m not aware of anything else I want to watch.

Amazon is good at lots of things, but has never been known for good taste. I mean, look at that search-results page.

Are you sure you want to end your membership?

Yep.

Is it easy?

Yep, no complaints. There were only two please-don’t-go begs and neither was offensive.

No hard feelings.

Moved 28 Feb 2025, 12:00 pm

It is traditional in this season in this space to tickle your eyes with pictures of our early spring crocuses, while gently dunking a bit on our fellow Canadians who, away from the bottom left corner of the country, are still snowbound. So, here you go. Only not really.

Crocuses on moss

Yes, those are this spring’s crocuses. But they’re not our crocuses, they’re someone else’s. We don’t have any. Because we moved.

It’s a blog isn’t it? I’ve written up childbirths and pet news and vacations and all that stuff. So why not this?

What happened was, we bought a house in 1996 and then, after 27 years and raising two kids and more cats, it was, well, not actually dingy, but definitely tired. The floors. The paint. The carpet. The cupboards. So we started down two paths at once, planning for a major renovation on one side, and shopping for a new place on the other. Eighteen months later we hadn’t found anything to buy, and the reno was all planned and permitted and we were looking for rentals to camp out in.

Then, 72 hours from when we were scheduled to sign the reno contract, this place came on the market across our back alley and three houses over. The price was OK and it didn’t need much work and, well, now we live there.

I’m sweeping a lot of drama under the rug. Banking drama and real-estate drama and insurance drama and floor-finishing drama and Internet-setup drama and A/V drama and storage drama. And of course moving drama. Month after month now, Lauren and I have ended more days than not exhausted.

But here we are. And we’re not entirely without our plants.

Moving the rosebush

This is Jason of Cycle Driven Gardening,who lent his expertise to moving our favorite rosebushes, whose history goes back decades. Of course, there could be no guarantee that those old friends would survive the process.

Today was unseasonably warm and our new back patio is south-facing, so we soaked up the sun and cleared it of leftover moving rubble. Then ventured into the back yard, much-ignored over winter.

Each and every rosebush has buds peeking out. So it looks, Dear Reader, like I’ll be able to inflict still more blossom pictures on you, come spring.

And we’ll be putting in crocuses, but those photos will have to wait twelve months or so.

See, even in 2025, there are stories with happy endings.

Safari Cleanup 26 Feb 2025, 12:00 pm

Like most Web-heads I spent years living in Chrome, but now feel less comfy there, because Google. I use many browsers but now my daily driver is Safari. I’m pretty happy with it but there’s ugly stuff hiding in its corners that needs to be cleaned up. This fragment’s mostly about those corners, but I include notes on the bigger browser picture and a couple of ProTips.

Many browsers?

If your life is complicated at all you need to use more than one. By way of illustration not recommendation, here’s what I do:

  • Safari is where I spend most of my time. As I write this I have 36 tabs, eight of them pinned. That the pinned number is eight is no accident, it’s because of the Tab Trick, which if you don’t know about, you really need to learn.

    More on Safari later.

  • I use Chrome for business. It’s where I do banking and time-tracking and invoicing. (Much of this relies on Paymo, which is great. It takes seconds to track my time, and like ten minutes to do a super-professional monthly invoice.)

  • I use Firefox when I need to be @coop@cosocial.ca or go anywhere while certain that no Google accounts are logged in.

  • I use Chrome Canary for an organization I work with that has Chrome-dependent stuff that I don’t want to mix up with any of my personal business.

Safari, you say?

We inhabit the epoch of Late Capitalism. Which means there’s no reason for me to expect any company to exhibit ethical behavior. Because ethics is for amateurs.

So when I go looking for infrastructure that offers privacy protection, I look for a provider whose business model depends at least in part on it. That leaves Safari.

Yeah, I know about Cook kissing Trump’s ring, and detest companies who route billions of nominal profits internationally to dodge taxes, and am revolted at the App Store’s merciless rent-extraction from app developers who make Apple products better.

But still, I think their privacy story is pretty good, and it makes me happy when their marketing emphasizes it. Because if privacy is on their path to profit, I don’t have to mis-place my faith in any large 21st-century corporation’s “ethical values”.

Also, Safari is technically competent. It’s fast enough, and (unlike even a very few years ago) compatible with wherever I go. The number of Chome-only sites, thank goodness, seems to be declining rapidly.

So, a tip o’ the hat to the Safari team, they’re mostly giving me what I need. But there are irritants.

Tab fragility

This is my biggest gripe. Every so often, Safari just loses all my tabs when… well, I can’t spot a pattern. Sometimes it’s when I accidentally ⌘-Q it, sometimes it’s when I have two windows open for some reason and ⌘-W something. I think. Maybe. Sometimes they’re just gone.

Yes, I know about the “Reopen all windows from last session” operation. If it solved the problem I wouldn’t be writing this.

This is insanely annoying, and a few years back, more than once it seriously damaged my progress in multiple projects. Fortunately, I discovered that the Bookmarks menu has a one-click thing to create bookmarks for all my open tabs. So I hit that now and again and it’s saved me from tab-loss damage a couple of times now.

Someone out there might be thinking of suggesting that I not use browser tabs to store my current professional status. Please don’t, that would be rude.

Pin fragility

Even weirder, sometimes when I notice I’ve lost my main window and use the History menu to try to bring it back, I get a new window with all my tabs except for the pinned ones. Please, Safari.

Kill-pinned-tab theater

Safari won’t let me ⌘-W a pinned tab. This is good, correct where Chrome is wrong.

But when I try, does it quietly ignore me, or emit a gentle beep? No, it abruptly shifts to the first un-pinned tab. Which makes me think that I indeed killed the tab I was on, then I realize that no I didn’t, then I panic because obviously I killed something, and go looking for it. I try Shift-⌘-T to bring back most recently closed tab, realize I killed that an hour ago, and sit there blank-faced and worried.

New window huh?

When I’m in Discord or my Mail client or somewhere and I click on a link, sometimes it puts up a new Safari window. Huh? But usually not, I can’t spot the pattern. When I kill the new window, sometimes I lose all my tabs. Sigh.

Passive-aggressive refresh

When I have some tab that’s been around and unvisited for a while, sometimes there’s this tasteful decoration across the top.

Passive-aggressive Safari warning

I think that this used to say “significant memory” rather than “significant energy”? But really, Safari, try to imagine how little I care about your memory/energy problems, just do what you need to and keep it to yourself. And if you can’t, at least spruce up the typography and copy-editing.

Better back button

[This is partly a MacOS rather than Safari issue.] On my Android, I can click on something in Discord that takes me to the GitHub app, another click and I’m in the browser, then click on something there and be in the YouTube app, and so on and so on. And then I can use “Back” to retrace my steps from app to app. This is just incredibly convenient.

Safari’s memory of “how did I get here” apparently lives in the same evanescent place my tab configuration does, and usually vanishes the instant I step outside the browser. Why shouldn’t the Back operation always at least try to do something useful?

Hey Apple, it’s your operating system and your browser, why not catch up with Android in an area where you’re clearly behind?

I humbly suggest

… that Safari do these things:

  1. Save my current-tabs setup every few seconds on something more robust than the current fabric of spider webs and thistledown. Offer a “Restore Tabs” entry in the History menu that always works.

  2. Don’t just exit on ⌘-Q. Chrome gets this right, offering an option where I have to hold that key combo down for a second or two.

  3. When I try to kill a pinned tab, just ignore me or beep or put up a little message or something.

  4. Never create a new Safari window unless I ask for it.

  5. Kill the dumb “this webpage was refreshed…”

  6. Offer a “back” affordance that always works, even across applications.

Other browsers?

I already use Firefox every day and I know about Opera, Vivaldi, Brave, Arc, etc., and I’ve tried them, and none ever stuck. Or the experience was feeling good when something emerged about the provider that was scammy or scary or just dumb. (And the recent rumblings out of Mozilla are not reassuring.)

While it’d sure be nice for there to be a world-class unencumbered open-source browser from an organization I respect, I’m not holding my breath. So it’s Safari for me for now.

And it seems to me that the things that bother me should be easy to fix. Please do.

Posting and Fascism 8 Feb 2025, 12:00 pm

Recently, Janus Rose’s You Can’t Post Your Way Out of Fascism crossed my radar on a hundred channels. It’s a smart piece that says smart things. But I ended up mostly disagreeing. I’m not saying you can post your way out of Fascism, but I do think it’s gonna be hard to build the opposition without a lot of posting. The what and especially the where matter. But the “posting is useless” stance is dangerously reductive.

Before I get into my gripes with Ms Rose’s piece, let me highlight the good part: Use your browser’s search-in-page to scroll forward to “defend migrants”. Here begins a really smart and inspirational narrative of things people are doing to deflect and defeat the enemy.

But it ends with the observation that all the useful progressive action “arose from existing networks of neighbors and community organizers”. Here’s where I part ways. Sure, local action is the most accessible and in most cases the only action, but right now Fascism is a global problem and these fighters here need to network with those there, for values of “here” and “there” that are not local.

Which is gonna involve a certain amount of posting: Analyses, critiques, calls to action, date-setting, message-sharpening; it’s just not sensible to rely on networks of neighbors to accomplish this.

What to post about?

Message sharpening feels like the top of the list. Last month I posted In The Minority, making the (obvious I think) point that current progressive messaging isn’t working very well; we keep losing elections! What needs to be changed? I don’t know and I don’t believe anybody who says they do.

It’s not as simple as “be more progressive” or conversely “be more centrist”. I personally think the way to arrive at the right messaging strategies and wording is going to involve a lot of trial balloons and yes, local efforts. Since I unironically think that progressive policies will produce results that a majority of people will like, I also believe that there absolutely must be a way of explaining why and how that will move the needle and lead to victories.

Where to post it?

Short answer: Everywhere, almost.

Granted that TV, whatever that means these days, is useless. Anyone doing mass broadcasting is terrified of controversy and can’t afford to be seen as a progressive nexus.

And Ms Rose is 100% right that Tiktok, Xitter, Facebook, Insta, or really any other centralized profit-driven corporate “social network” products are just not useful for progressives. These are all ad-supported, and (at this historical moment) under heavy pressure from governments controlled by our enemies, and in some cases, themselves owned and operated by Fascists.

That leaves decentralized social media (the Fediverse and (for the moment) Bluesky), Net-native operations like 404/Vice/Axios/Verge (even though most of them are struggling), and mainstream “quality publications”: The Atlantic, the Guardian, and your local progressive press (nearest to me here in Canada, The Tyee).

Don’t forget blogs. They can still move the needle.

And, I guess, as Ms Rose says, highly focused local conversations on Discord, WhatsApp, and Signal. (Are there other tech options for this kind of thing?)

Are you angry?

I am. And here I part paths with Ms Rose, who is vehement that we should see online anger as an anti-pattern. Me, I’m kinda with Joe Strummer, anger can be power. Rose writes “researchers have found that the viral outrage disseminated on social media in response to these ridiculous claims actually reduces the effectiveness of collective action”. I followed that link and found the evidence unconvincing.

Also, if there’s one thing I believe it’s that in the social-media context, being yourself, exposing the person behind the words, is central to getting anywhere. And if the enemy’s actions are filling me with anger, it would be disingenuous and ineffective to edit that out of my public conversation.

Posting is a progressive tool

Not gonna say more about principles or theory, just offer samples.

50501 has done it all with hashtags and micro-posts. Let’s see how it works.

Here’s Semafor arguing that the Democrats’ litigation-centric resistance is working pretty well.

Heidi Li Feldman, in Fear and loathing plus what blue states should be doing now argues on her blog for resistance at the state-government level, disengaging from and pushing back against toxic Musk/Trump projects.

Here’s Josh Marshall at Talking Points Memo calling for pure oppositionism and then arguing that Democrats should go to the mattresses on keeping the government open and raising the debt limit.

Here’s the let’s-both-sides-Fascism New York Times absolutely savaging the GOP campaign to keep Mayor Adams in place as a MAGA puppet.

Here’s yours truly posting about who progressives should talk to.

Here’s Mark Cuban on Bluesky saying hardass political podcasts are the only way to reach young men.

Here’s Elizabeth Kolbert in The New Yorker making very specific suggestions as to the tone and content of progressive messaging.

Here’s Cory Doctorow on many channels as usual, on how Canada should push back against the Trump tariffs.

There’s lots more strong stuff out there. Who’s right?

I don’t know. Not convinced anyone does.

Let’s keep posting about it till we get it right.

Photo Philosophizing 4 Feb 2025, 12:00 pm

What happened was, I went to Saskatchewan to keep my mother company, and got a little obsessed about photo composition and complexity. Which in these troubled times is a relief.

This got started just after take-off from Vancouver. As the plane climbed over the city I thought “That’s a nice angle” and pointed the Pixel through the plexiglass.

Vancouver from the air, looking north

You might want to enlarge this one.

A couple of days into my Prairie visit I got around to processing the photos and thought that Vancouver aerial had come out well. No credit to the photographer here, got lucky on the opportunity, but holy crap modern mobile-device camera tech is getting good these days. I’ll take a little credit for the Lightrooming; this has had heavy dehazing and other prettifications applied.

A couple of days later I woke up and the thermometer said -36°C (in Fahrenheit that’s “too freaking cold”). The air was still and the hazy sunlight was weird. “There has to be a good photo in this somewhere, maybe to contrast that Vancouver shot” I thought. So I tucked the Fujifilm inside my parka (it claims to be only rated to -10°) and went for a walk. Mom politely declined my invitation to come along without, to her credit, getting that “Is he crazy?” expression on her face.

Her neighborhood isn’t that photogenic but there’s a Pitch-n-putt golf course a block away so I trudged through that. The snow made freaky squeaking sounds underfoot. At that temperature, it feels like you have to push the air aside with each step. Also, you realize that your lungs did not evolve to process that particular atmospheric condition.

Twenty minutes in I had seen nothing that made me want to pull out the camera, and was thinking it was about time to head home. So I stopped in a place where there was a bit of shape and shadow, and decided that if I had to force a photo opportunity to occur by pure force of will, so be it.

Snow shapes and shadows

It ain’t a great city framed by coastal mountains. But it ain’t nothing either. I had to take my gloves off to shoot, and after just a couple of minutes of twisting around looking for angles, my fingers were screaming at me.

The two pictures are at the opposite end of the density-vs-minimalism spectrum but they share, um, snow, so that’s something.

Anyhow, here’s the real reason I was there.

Jean Bray

Jean Bray, who’ll be turning 95 this year.

I find photography to be a very useful distraction from what’s happening to the world.

In The Minority 22 Jan 2025, 12:00 pm

That’s us. I assume you’re among those horrified at the direction of politics and culture in recent years and especially recent weeks, in the world at large and especially in America. We are a minority. We shouldn’t try to deny it, we should be adults and figure out how to deal with it.

Denialists

I’m out of patience with people who put the blame on the pollsters or the media or Big Tech, or really any third party. People generally heard what Mr Trump was offering — portrayed pretty accurately I thought — and enough of them liked it to elect him. Those who didn’t are in a minority. Quit dodging and deal.

Clearly, we the minority have failed in explaining our views. Many years ago I wrote an essay called Two Laws of Explanation. One law says that if you’re explaining something and the person you’re explaining to doesn’t get it, that’s not their problem, it’s your problem. I still believe this, absolutely.

So let’s try to figure out better explanations.

But first, a side trip into economic perception and reality.

Economists

A strong faction of progressives and macroeconomists are baffled by people being disaffected when the economy, they say, is great. Paul Krugman beats this drum all the time. Unemployment and inflation are low! Everything’s peachy! Subtext: If the population disagrees, they are fools.

I call bullshit. The evidence of homelessness is in my face wherever I go, even if there are Lamborghinis cruising past the sidewalk tents. Food banks are growing. I give a chunk of money every year to Adopt a School, which puts free cafeterias in Vancouver schools where kids are coming to school hungry. Kingston, a mid-sized mid-Canadian city, just declared an emergency because one household in three is suffering from food insecurity.

Even among those who are making it, for many it’s just barely:

… half of Canadians (50%, +8) are now $200 or less away each month from not being able to pay their bills and debt payments. This is a result of significantly more Canadians saying they are already insolvent (35%, +9) compared to last quarter. Canadians who disproportionately report being $200 or less away from insolvency continue to be women (55%, +4) but the proportion of men at risk has increased to 44%, up 13 points from last quarter.

Source: MNP Consumer Debt Index. The numbers like “+8” give the change since last quarter.

(Yes, this data is Canadian, because I am. But I can’t imagine that America is statistically any better.)

Majorities

Minorities need to study majorities closely. So let me sort them, the ones who gave Trump the election I mean, into baskets:

  1. Stone racists who hate immigrants, especially brown ones.

  2. Culture warriors who hate gays and trans people and so on.

  3. Class warriors; the conventional billionaire-led Republican faction who are rich, voting for anyone they think offers lower taxes and less regulation.

  4. People who don’t pay much attention to the news but remember that gas was cheaper when Trump was in office.

  5. Oh wait, I forgot one: People who heard Trump say what boiled down to “The people who are running things don’t care about you and are corrupt!” This worked pretty well because far too many don’t and are. A whole lot of the people who heard this are financially stressed (see above).

Who to talk to?

Frankly, I wouldn’t bother trying to reach out to either of the first two groups. Empirically, some people are garbage. You can argue that it’s not their fault; maybe they had a shitty upbringing or just fell into the wrong fellowships. Maybe. But you can be sure that that’s not your fault. The best practice is some combination of ignoring them and defending against their attacks, politics vs politics and force versus force.

I think talking to the 1% is worthwhile. The fascist leaders are rich, but not all of the rich are fascist. Some retain much of their humanity. And presumably some are smart enough to hear an argument that on this economic path lie tumbrils and guillotines.

That leaves the people who mostly ignore the news and the ones who have just had it with the deal they’re getting from late-Capitalist society. I’m pretty sure that’s who we should be talking to, mostly.

What to say?

I’m not going to claim I know. I hear lots of suggestions…

In the New Yorker, Elizabeth Kolbert’s Does One Emotion Rule All Our Ethical Judgments? makes two points. First, fear generally trumps all other emotions. So, try phrasing your arguments in terms of the threats that fascism poses directly to the listener, rather than abstract benefits to be enjoyed by everyone in a progressive world.

Second, she points out the awesome power of anecdote: MAGA made this terrible thing happen to this actual person, identified by name and neighborhood.

On Bluesky, Mark Cuban says we need offensive hardass progressive political podcasts, and offers a sort of horrifying example that might work.

On Bloomberg (paywalled) they say that the ruling class should be terrified of a K-shaped recovery; by inference, progressives should be using that as an attack vector.

Josh Marshall has been arguing for weeks that since the enemies won the election, they have the power and have to own the results. Progressives don’t need to sweat alternative policies, they just have to highlight the downsides of encroaching fascism (there are plenty) and say “What we are for is NOT THAT!” and just keep saying it. Here’s an example.

Maybe one of these lines of attack is right. I think they’re all worth trying. And I’m pretty sure I know one ingredient that’s going to have to be part of any successful line of attack…

Be blunt

Looking back at last year’s Presidential campaign, there’s a thing that strikes me as a huge example of What Not To Do. I’m talking about Harris campaign slogan: “Opportunity Economy”. This is marketing-speak. If there’s one thing we should have learned it’s that the population as a whole — rich, poor, Black, white, queer, straight, any old gender —has learned to see through this kind of happy talk.

Basically, in Modern Capitalism, whenever, and I mean whenever without exception, whenever someone offers you an “opportunity”, they’re trying to take advantage of you. This is appallingly tone-deaf, and apparently nobody inside that campaign asked themselves the simple question “Would I actually use this language in talking to someone I care about?” Because they wouldn’t.

Be blunt. Call theft theft. Call lies lies. Call violence violence. Call ignorance ignorance. Call stupidity stupidity.

Also, talk about money a lot. Because billionaires are unpopular.

Graph data from an AP poll

From a good AP poll.

Don’t say anything you wouldn’t say straight-up in straight-up conversation with a real person. Don’t let any marketing or PR professionals edit the messaging. This is the kind of messaging that social media is made for.

Maybe I’m oversimplifying, but I don’t think so.

Protocol Churn 14 Jan 2025, 12:00 pm

Bluesky and the Fediverse are our best online hopes for humane human conversation. Things happened on 2025/01/13; I’ll hand the microphone to Anil Dash, whose post starts “This is a monumental day for the future of the social web.”

Anil Dash on 2025/01/13

What happened? Follow Anil’s links: Mastodon and Bluesky (under the “Free Our Feeds” banner). Not in his sound-bite: Both groups are seeking donations, raising funds to meet those goals.

Fediverse fundraising program Bluesky/AT-Protocol fundraising program

I’m sympathetic to both these efforts, but not equally. I’m also cynical, mostly about the numbers: They’ve each announced a fundraising target, and both the targets are substantial, and I’m not going to share either, because they’re just numbers pulled out of the air, written on whiteboards, designed to sound impressive.

What is true

These initiatives, just by existing, are evidence in letters of fire 500 miles high, evidence of people noticing something important: Corporately-owned town squares are irreversibly discredited. They haven’t worked in the past, they don’t work now, and they’ll never work.

Something decentralized is the only way forward. Something not owned by anyone, defined by freely-available protocols. Something like email. Or like the Fediverse, which runs on the ActivityPub protocol. Or, maybe Bluesky, where by “Bluesky” I mean independent service providers federated via the AT Protocol, “ATProto” for short.

What is hard?

I’ll tell you what’s hard: Raising money for a good cause, when that good cause is full of abstractions about openness and the town square and so on. Which implies you’re not intending that the people providing the money will make money. So let’s wish both these efforts good luck. They’ll need it.

What matters

Previously in Why Not Bluesky I argued that, when thinking about the future of conversational media, what matters isn’t the technology, or even so much the culture, but the money: Who pays for the service? On that basis, I’m happy about both these initiatives.

But now I’m going to change course and talk about technology a bit. At the moment, the ATProto implementation that drives Bluesky is the only one in the world. If the company operating it failed in execution or ran out of money, the service would shut down.

So, in practice, Bluesky’s not really decentralized at all. Thus, I’m glad that the “Free Our Feeds” effort is going to focus on funding an alternative ATProto implementation. In particular, they’re talking about offering an alternative ATProto “Relay”.

Before I go on, you’re going to need a basic understanding of what ATProto is and how its parts work. Fortunately, as usual, Wikipedia has a terse, accurate introduction. If you haven’t looked into ATProto yet, please hop over there and remedy that. I’ll wait.

Now that you know the basics, you can understand why Free Our Feeds is focusing on the Relay. Because, assuming that Bluesky keeps growing, this is going to be a big, challenging piece of software to build, maintain, and operate, and the performance of the whole service depends on it.

The Fediverse in general and Mastodon in particular generally don’t rely on a global firehose feed that knows everything that happens, like an eye in the sky. In fact, the ActivityPub protocol assumes a large number of full-stack peer implementations that chatter with each other, in stark contrast to ATProto’s menagerie of Repos and PDSes and Relays and App Views and Lexicons.

The ATProto approach has advantages; since the Relay knows everything, you can be confident of seeing everything relevant. The Fediverse makes no such promise, and it’s well-known that in certain circumstances you can miss replies to your posts. And perhaps more important, miss replies to others’ posts, which opens the door to invisible attackers.

And this makes me nervous. Because why would anyone make the large engineering and financial investments that’d be required to build and operate an ATProto Relay?

ActivityPub servers may have their flaws, but in practice they are pretty cheap to operate. And it’s easy to think of lots of reasons why lots of organizations might want to run them:

  1. A university, to provide a conversational platform for its students…

  2. … or its faculty.

  3. A Developer Relations team, to talk to geeks.

  4. Organized religion, for evangelism, scholarship, and ministry.

  5. Marketing and PR teams, to get the message out.

  6. Government departments that provide services to the public.

Or consider my own instance, CoSocial, the creation of Canadians who (a) are fans of the co-operative movement, (b) concerned about Canadians’ data staying in Canada, and (c) want to explore modes of funding conversational media that aren’t advertising or Patreon.

Maybe, having built and run a Relay, the Free Our Feeds people will discover a rationale for why anyone else should do this.

So, anyhow…

I hope both efforts hit their fundraising targets. I hope both succeed at what they say they’re going to try.

But for my own conversation with the world, I’m sticking with the Fediverse.

Most of all, I’m happy that so many people, whatever they think of capitalism, have realized that it’s an unsuitable foundation for online human conversation. And most of all I hope that that number keeps growing.

AI Noise Reduction 10 Jan 2025, 12:00 pm

What happened was, there was a pretty moon in the sky, so I got out a tripod and the big honkin’ Tamron 150-500 and fired away. Here’s the shot I wanted to keep.

Photograph of the moon, half-shadowed

Sadly, the clouds had shifted
and Luna had lost her pretty bronze shading.

I thought the camera and lens did OK given that I was shooting from sea level through soggy Pacific-Northwest winter air. But when I zoomed in there was what looked like pretty heavy static. So I applied Lightroom to the problem, twice.

Photograph of the moon, half-shadowed, de-noised Photograph of the moon, half-shadowed, de-noised

I’ll be surprised if many of you can see a significant difference. (Go ahead and enlarge.) But you would if it were printed on a big piece of paper and hung on a wall. So we’ll look at the zoomed-in version. But first…

Noise reduction, old-school

Lightroom has had a Luminance-noise reduction tool for years. Once you wake it up, you can further refine with “Detail” and “Contrast” sliders, whose effects are subtle at best. For the moon shot, I cranked the Luminance slider pretty all the way over and turned up Detail quite a bit too.

Noise reduction, with AI

In recent Lightroom versions there’s a “Denoise…” button. Yes, with an ellipsis and a note that says “Reduce noise with AI.” It’s slow; took 30 seconds or more to get where it was going.

Anyhow, here are the close-up shots.

moon close-up, no noise reduction moon close-up, noise reduction by Lightroom moon close-up noise reduction with AI

Original first, then noise-reduced
in Lightroom by hand, then with AI.

What do you think?

I have a not-terribly-strong preference for the by-hand version. I think both noise reductions add value to the photo. I wonder why the AI decided to enhance the very-slight violet cast? You can look at the rim of one crater or another and obsess about things that nobody just admiring the moon will ever see.

It’s probably worth noting that the static in the original version isn’t “Luminance noise”, which is what you get when you’re pushing your sensor too hard to capture an image in low light. When you take pictures of the moon you quickly learn that it’s not a low-light scenario at all, the moon is a light-colored object in direct sunlight. These pix are taken at F7.1 at 1/4000 second shutter. I think the static is just the Earth’s atmosphere getting in the way. So I’m probably abusing Lightroom’s Luminance slider. Oh well.

You could take this as an opportunity to sneer at AI, but that would be dumb. First, Lightroom’s AI-driven “select sky” and “select subject” tools work astonishingly well, most times. Second, Adobe’s been refining that noise-reduction code for decades and the AI isn’t even a year old yet.

We’ll see how it goes.

December 24th Lasagna 2 Jan 2025, 12:00 pm

We had thirteen people at my Mom’s house this last Christmas. One of our traditions is a heroic Lasagna for Christmas Eve, a specialty of a family member. This year we asked them for the recipe and they agreed, but would rather remain uncredited. It’s called “Very Rich Red Sauce and four-Cheese Lasagna”.

I sort of enjoy cooking but would never have the courage to take on a project like this. I can testify that the results are wonderful.

Sauce

Key sauce ingredients are red wine & sun-dried tomatoes; lasagna is all about mozza, the provolone adds a certain extra something. Over to the chef:

Ingredients

Sauce:

  • butter - half a lb block or less

  • olive oil to sauté

  • carrots - 2 to 4 depending on size, make sure they are fresh!

  • celery - 5-6 spears, say ⅔ of a bunch

  • onions (ideally yellow, but whatevs) - 3-6 depending on size.

    (by volume, you are looking to get roughly 3:2:1 proportions when chopped of onions:celery:carrots)

  • a red sweet pepper

  • extra lean hamburger - 1 kg

  • 3 cloves

  • salt - half a tablespoon? more? (tomato sauces tend to need a little more salt than other applications)

  • black pepper - if not using cayenne, a LOT, perhaps a tablespoon of freshly ground

  • cayenne - if using, to taste, I find strength is highly variable so hard to say how much, perhaps a couple of teaspoons?

  • Two big cans of diced tomatoes (NOT AYLMER! yuck, Unico is acceptable, Italian imported best)

  • 3 small cans or one big can of tomato paste (or tubes, if you get them from an Italian grocery store, which are a rather superior product) It is hard to use too much tomato paste

    (pro tip for cans of tomato paste: use the can opener to open BOTH the top and bottom of the can, then the paste slides out neatly and you don’t have to fool around trying to spatula the paste out of the can!)

  • about a half bottle of cheap red wine (the grocery store sells cheap cooking wine in demi bottles, though red can be hard to find, one demi bottle is more than enough)

  • most of a garlic bulb, say three quarters, once again FINELY chopped (no not pressed or processed!)

  • a LOT of dried oregano, say 3-4 tablespoons plus

  • a fair amount of dried basil, say 2 tablespoons plus

  • some died thyme, say a half tablespoon plus

    (herbs are tough to give measurements for, as they vary enormously in potency with brand, age & storage)

  • about a tablespoon of powdered beef stock

  • about 1½ to 2 cups of finely chopped sun-dried tomatoes NO SUBSTITUTIONS!!!!!

Lasagna

  • 1 disposable foil pan

  • foil to cover

  • butter to grease pan

  • melted butter to cover top lightly

  • 1¼ margarine tins of sauce above

  • 1½ boxes of lasagna noodles (NOT the “instant” or pre-cooked kind)

  • salted water to boil noodles

  • 1 big block of mozzarella cheese, coarsely grated

  • 2 packages (12-16 slices) of provolone cheese

  • 1 tin of ricotta cheese

  • grated parmesan cheese

  • little bit of freshly ground black pepper

Procedure: Sauce

For the mirepoix, the vegetables all need to be FINELY chopped up for sauce consistency. And I mean FINELY chopped-- I have tried both powered and manual food processors, and they do not do a good job, either reducing things to mush, or leaving big chunks-- the idea here is to get everything about the same size (and the garlic later), it gives the sauce some consistency.

This is tedious and takes a long time.

To give you an idea, a celery spear can be cut into 5-7 strips longwise with the grain, and then the strips chopped as finely as possible across the grain. A big carrot can yield say 6 long flat pieces that can be cut longways into strips, and then the strips cuts finely against the grain to produce little cubes.

The mirepoix is important, we need to get the natural sugars to balance out the acidity of the tomatoes and wine. I cook the onions separately from the rest…

Caramelize the onions. Frankly, this is a pain in the ass. There are no shortcuts; the internet has all these handy tips like using a pressure cooker at first or a slow cooker or adding baking soda or water or whatnot, I’ve tried them, and just no. So a big non-stick frying pan, and sloooow saute with a little butter and salt, frequent stirring, a lot of patience, at LEAST 40 minutes. Maybe an hour. And constant attention, the bastards will burn on you at the drop of a hat. There is no hiding it, this is tricky and somewhat difficult. But worth it, caramelized onions are magic.

Meanwhile, in as big a heavy bottom pot as you can find, saute the celery and carrots (and peppers if you are using them) with say 3 dried cloves, in a little butter, you want to shrink them down and bring out the carrots’ natural sugars, and soften the cloves & bring out their flavour, this takes a while, say 20 minutes or more?

Remove the onions and carrots and celery to a BIG bowl, clean out the big heavy bottom pot and brown the hamburger, about 1kg. DO NOT USE “regular” as it is mostly fat; lately I have been using the “extra lean” because even the lean is quite fatty these days. A little olive oil in the pot, a fair amount of salt (half tablespoon?) & a lot of freshly ground black pepper (approaching a tablespoon?) on the meat and lots of stirring.

This where a lot of people screw up, essentially they “grey” the meat, they don’t BROWN it, ie achieve the Maillard reaction-- as with the mirepoix, we are trying to bring out natural sugars. A lot of stirring/scraping, to break the hamburger up into as small pieces as possible, ie the same size as the veggies in the mirepoix.

While this is happening, add the rest of the ingredients to the mirepoix in the big bowl: tomatoes, tomato paste (more is better), wine.

Also the chopped garlic, oregano, basil, thyme, about a tablespoon of powdered beef stock (yes this is cheating, shhh).

A word about sun-dried tomatoes: they are absolutely wonderful things, but hard to find. Ideally, you want the dried kind, not the “in oil” kind, but you may have to settle for that. There are two different kinds of “in oil”, the ones in jars floating in oil like pickles in brine (they are prepped for salads, not sauces, so they are floating oil, and disintegrate once they are in a sauce), which you really do not want, and the ones in packages that have been oiled for preservation. This is usually what you have to settle for. The best ones are dry and quite hard.They are hard to find.

Of these, the worst sun-dried tomatoes are the North American product, the big food companies noted there was a demand for them, and started tossing field tomatoes into drying kilns. These are quite inferior, but useable if it’s all you can find. The best ones are Turkish, followed by Italian, you can usually find in Italian delicatessens or grocery stores (even the Italians agree the Turkish ones are best).

[Tim says: I found them in Vancouver and the chef is right, the flavor is to die for.]

If you get the fully dried/no oil kind, you can simmer them a little in a little water to soften them before you try chopping them up; the water (or some of it anyway) should be added to the sauce…

Drain any fat from the browned meat, add the mix to the meat in the big pot. Stir it all up some more, get it well mixed. You can add a little wine and/or tomato juice if it seems too thick, but be aware that it will liquify a little during cooking. If you are going to use it as a pasta sauce, you want it more liquid, if for lasagna, you want it as thick as practical. In any case, it is very difficult to judge the final thickness at this point.

You can add a little (sun-dried tomato?) water, or tomato juice, or wine, if it needs it, but be cautious.

Put on medium to low heat and stir frequently until it comes to a high simmer/low boil (don’t let it burn!) then turn the heat down to minimum, and slow-cook for at least 4 hours, stirring every 20 minutes or so. Cooking it longer is a Good Thing, I often cook it for 7 or more hours.

LEAVE it out overnight! (this is important!)

Warm it up the next day, bringing it back to a high simmer/low boil and stirring a lot, serve it on pasta. Or make lasagna. Or freeze it. One margarine tin makes a meal with leftovers (each serving would be small, because the stuff is quite strong). One margarine tin (plus a little, ideally) makes for one lasagna. You should get about 3 or so margarine tins from the above. It freezes just fine.

Whew.

Lasagna

In theory, one box of lasagna noodles is just enough to make one pan of lasagna. However, there are almost always a lot of broken pieces of lasagna in a box, and pieces that break or get stuck or something during cooking. I allow for 1 and half a box per lasagna pan.

Ingredients:

  • enough lasagna noodles, cooked al dente in salted boiling water

  • 1¼ margarine tins of sauce, gently heated up

  • Butter (better than margarine but you can use that if necessary)

  • 1 big block of mozzarella (the regular supermarket kind is fine, I tried the expensive high quality italian stuff, and it was a LITTLE bit better, but not enough to justify the cost)

  • 1 tin of ricotta cheese, or failing that, dry curd cottage cheese

  • 12-16 slices of provolone cheese (usually 2 packages)

  • parmesan cheese (like with the mozza, I find the cheap Kraft product fully acceptable for this purpose)

  • freshly ground black pepper

  • foil lasagna pan

  • heavy duty foil

Grease the pan with butter. do a thorough job, you don’t want huge amounts of butter, but you do not want any bit of foil that might come in contact with lasagna ungreased.

Coarsely grate the mozzarella.

Lay an overlapping layer of lasagna noodles crossways in the pan, with the sides going up the sides of the pan. The pieces at either end need to overlap the piece on the bottom, but bend up to cover the short end of the pan as well. This is a pain in the ass to get right.

The sauce goes a long way, you do NOT want a thick layer. Spread a thin layer over the bottom of the pan, about a third of the sauce. Put a layer of mozza on top, about a third of it. Put half the provolone on top. Put a layer of lasagna noodles down long-ways , overlapping a bit.

Spread a thin layer of sauce, another third, covered with mozza, another third, and cover that with the ricotta (or dry-curd cottage). Put down another layer of lasagna long-ways.

The rest of the sauce, the rest of the mozza, and the rest of the provolone.

Cover the cross-wise lasagna noodles, overlapping, and trying to tuck the ends in to seal the package. This is tricky at the ends, I find putting a small cut in the lasagna noodle at the corner makes it easier to fold over neatly. (Usually I am tired by this point and less inclined to be finicky and careful, which is a pity.)

Pour a little melted butter over the top, enough to grease the surface. Sprinkle some freshly ground pepper and a fair amount of parmesan over the top. Cover with foil. Put in fridge (you can pre-make hours before use if you are having a party or something) or immediately put in pre-heated oven.

Preheat oven to pretty hot, 375-400. Cook lasagna for 45 minutes to an hour. Remove foil from pan 10-15 minutes before you remove it from the oven. Put the foil back on and let it stand for AT LEAST 15 minutes, better if you can hold off for half an hour (the hotter it is, the more likely it is do disintegrate when being served, you want the melted cheese to start to re-set a little)

Serve with garlic bread and salad and an impertinent red wine. One pan goes a fairly long way, serves 6-8ish? Depends how many hungry teens you have around…

Page processed in 0.256 seconds.

Powered by SimplePie 1.3, Build 20180209064251. Run the SimplePie Compatibility Test. SimplePie is © 2004–2025, Ryan Parman and Geoffrey Sneddon, and licensed under the BSD License.