ongoing by Tim Bray

ongoing fragmented essay by Tim Bray

Social-media Search Comparo 2 Oct 2023, 7:00 pm

Bluesky, Threads, and Mastodon (as of last week) all have a built-in search capability. So now’s a good time for a first-look comparison.

My social-media life is at, a member-owned co-op Mastodon instance, but I regularly visit Bluesky and Threads, just to keep in touch. I continue to believe that the evolution of humanity’s tools of conversation is terribly important. This week, our member-owned co-op instance installed Mastodon 4.2 and turned on search.

Methodology LOL

This mini-study uses a single query: "dark matter", two words enclosed in quotes, which many search engines will interpret as a search for the phrase, as distinct from the two words.

Hardly rigorous I know, and unquantitative; no numbers were abused in the construction of this essay. But I still think there are useful observations to make.

Let’s take them in chronological order of having shipped a search capability: Bluesky, Threads, Mastodon.

Bluesky search

It’s acceptably fast, well under a second.

Bluesky search for “dark matter”

The first observation is that it ignores the quotes, is apparently not requiring both words be present; note the second result. [Update: I was wrong, both words are there in that match.]

Off to the side is a list of matching accounts, which are sorted with a bit more attention to match quality. Clicking on the “Users” tab expands the list.

The result-list ranking algorithm, near as I can tell, is reverse-chronological. Easy to understand, at least.

There aren’t that many results, the list only goes back two days.

I’m being a little unfair here, because the AT Protocol behind Bluesky calls for two kinds of services, decoupling the functions of storing your data from doing cross-federation firehose features. The latter is called the Big Graph Server (BGS) and is said to handle, among other things, search. BGS development is clearly embryonic at the moment.

The design, like much about Bluesky, seems attractive in principle; you could have multiple BGS’s competing on the basis of search quality and result ranking. We’ll have to wait to see how well it works out in practice.

I will note there was an entertaining post from a “Hypnotic Vampiress”, featuring a very dark albeit scanty leather outfit.

There don’t seem to be any advanced-search options.

Threads search

Performance is neither better nor worse than Bluesky’s.

Threads search for “dark matter”

It respects the fact that I’m searching for a phrase not just words. It has a result-ranking algorithm, which shouldn’t be surprising, various Meta properties have been doing search for a long time. I can’t comment on the quality of the results in terms of precision and recall. It’s nice to see results from at the top of the list; back in the day on Twitter-that-was, you could find actual astrophysicists discussing their work. I only saw a couple posts like that; Bluesky likewise, in a much smaller result list.

There are a lot of results, presented in a nice snappy infinite scroll. So if you needed to go deep into a list to find something you were looking for, it wouldn’t be that unpleasant.

Like Bluesky, there are no advanced-search options. Unlike it, there’s no obvious way to search for accounts rather than posts.

The first experience feels about OK, exactly what I’d expect from conventional modern search technology applied to a large-ish data set in the control of a single service provider. Which raises a big question: How will it work once Threads goes out and federates with the thousands of Fediverse instances? It’ll be fun to watch.

Mastodon search

First, a few words of background. Mastodon lives in the Fediverse, the universe of instances that communicate using the ActivityPub protocol. There are instances that don’t run the Mastodon software, and Threads will soon, they say, be one of them.

So this is specifically about Mastodon’s search capability, based on Elasticsearch.

Even if your server is running Mastodon, you can be running one of many (mobile or Web) clients. The picture below is one called Phanpy, my own daily driver. So your Mastodon search results might look a lot different. But I checked out a couple and the payload seems about the same.

Mastodon search for “dark matter”

Now, about that payload. It’s richer enough in structure that I only had enough room to show the first post. But you can get all-posts, all-accounts, or all-hashtags.

The result ranking, as with Threads, feels unsurprising: modern and conventional. It knew I wanted a phrase, and the top results were pretty meaty. It featured a lot more hard scientists than the alternatives, but I suspect that’s a function of there being more of them on Mastodon.

There are a whole lot of advanced-search tools; check out the details in the Mastodon 4.2 announcement. I don’t weigh that very heavily; back in the day, Google proved that a great search engine can figure out what you want from a natural-language query, to the point that advanced search was mostly unnecessary. [Ah, the days when Google was laser-focused on search quality.]

Now we get to the important differences between Mastodon and the rest. First, it was noticeably faster. Second, it had fewer results, only two or three screens-full.

In today’s Fediverse, when you search, you’re just searching a local Elasticsearch index on your own instance. It should be fast, and it is, and that’s good.

Then there’s the fewer-results thing. Your instance can only search the results it knows about. Which means, everything that anyone on your instance has posted, and posts from anyone anywhere who’s followed by anyone on your instance, or which mention anyone there.

This means that on a bigger instance, you’re going to see more results. How many more? And how much will they matter? We don’t have enough experience yet. The super-popular high-impact stuff that’s gone viral will show up on any instance. But maybe exploring the Long Tail from a small instance could be a real problem? There’s a technology called Mastodon Relays that might help out. We’ll see.

And anyhow, that isn’t even the most important difference between Mastodon and the rest…


Your Mastodon posts don’t get indexed for other people to search unless you explicitly go into your profile settings and enable “Include public posts in search results”; by default, disabled. Which may seem crazy at first glance. But it’s actually a major positive in my opinion, because there are serious ethical issues here, ones that not enough people have thought of. I wrote a big long blog piece on the subject, Private and Public Mastodon, late last year, if you care about these issues.

Anyhow, since search only started arriving in Mastodonia last week, there are a lot of instances who haven’t upgraded yet. And really a lot of people who haven’t got around to doing that opt-in. So I’d expect my search result lists to organically get quite a bit longer (Better? Nobody knows) as those things happen.

But which is best?

Too soon to tell.

Interesting times we live in.

Digger Unearthed 24 Sep 2023, 7:00 pm

Digger is a Hugo-winning Webcomic by the excellent and remarkably prolific Ursula Vernon, originally written between 2005 and 2011. This essay exists to recommend the book, with a bit of back-story, but also to recommend a good way to read it.

When Digger was coming out as a comic book it was popular, and then there was an omnibus of the whole thing, but eventually the print run ran out, and you couldn’t buy it any more. The problem was that it’s really freaking huge — a thousand-ish pages — and thus expensive to print, and publishers didn’t want to. So Patrick Rothfuss founded a publishing company and set up a Kickstarter for an edition called Digger Unearthed; it did very well.

My wife Lauren Wood bought the hardcover package and eventually I started reading it, and was enjoying it, except it was just too damn big and heavy and made my wrists hurt. Also, one of my favorite reading retreats is a kind of dark place, and Digger has many very dark pages, and it wasn’t making my eyes happy.

That’s OK, because I have a Samsung Galaxy Tab S7+ which, with Gaiman’s Sandman, gave me the best comic-reading experience of my life. But Digger Unearthed isn’t on Kindle. Electronically, it’s a 419MB ePub file. Well then, you can upload ePubs to Kindle; but not that big.

After spinning my wheels for a while, here’s how I got it flying on the Galaxy: First, I put the ePub into DropBox. Then I installed Moon+ Reader and pointed it at the ePub. Initially opening it… wasn’t fast. But once it got going, page-turning was perfectly snappy..

Digger Unearthed, paper and tablet versionDigger Unearthed, paper and tablet version

It was a comfortable reading experience, much easier on my wrists and eyes.

Now… those pictures are lying a bit. They were taken outside on our back porch on a bright cloudy afternoon, and in that context the paper was immensely brighter than the tablet screen. So I brightened up the tablet a bit in the photos. In my usual reading context, later and darker, the tablet is much more readable than the book.

Anyhow. Good book. Good software. Good hardware. I still love paper, but not exclusively.

Safe Pixel Unlock 19 Sep 2023, 7:00 pm

My recent upgrade from Pixel 4 to 7 moved me from one to two biometric sensors; the thing unlocks with either face or finger. But the default setup is unsafe; making it safe is a little inconvenient, but worth doing.

I love fingerprint unlock, first experienced in 2016 on my then-state-of-the-art Nexus 5X. Its reader was on the back where your index finger naturally lands, had a physical target to guide your touch, and it never freaking failed!

My Pixel 4 replaced the fingerprint sensor with outstandingly great face unlock, even worked in the dark. But there was a huge fly in the ointment. One of my family responsibilities is the grocery shopping. Since I’m not stupid, I wear a KN95 mask in crowded public places, for example food stores. Thus no face unlock. When I (not infrequently) wanted to consult the phone, I had to tap in my (nontrival) PIN with one hand while holding stuff.

Thus, when I got the Pixel 7 I was all excited. The face unlock no longer has infrared, but there’s a fingerprint reader, so I figured I’d be home free, in the supermarket too. [Narrator: He was wrong.]

So I programmed my index finger, thumb, and face into the Pixel 7. Sometimes they work, when I awkwardly manage to hit the no-physical-target on-screen sensor. When I’m in bright light it usually lets me in instantly via face-recognition. But fingerprint access is, irritatingly, nowhere as near as good as it was in 2016.

What was even more irritating —maddening — was that the fingerprint reader went completely on strike when I was out shopping. Every freaking time, it sneered at my futile finger stabs and forced me into one-handed-typist mode.

But wait, something here doesn’t add up. I’ve enabled fingerprint recognition in a couple of apps. They almost always work first time, and when they don’t, another tap gets me there. Anywhere. Any time.

Android face/fingerprint unlock settings

It’s the mask, stupid

Yep. I disabled the face-unlock, and there you go. Haven’t typed the PIN in days. Oh wait, look what it says there in the preferences screen: “…your phone will ask you for your fingerprint when you wear a mask or are in a dark area.” Based on my experience, that’s just wrong: When I’m wearing a mask it won’t take my fingerprint.

I miss face unlock. A little. Maybe. But ain’t turning it back on.

Put another way, protecting yourself (and the people around you) from the pandemic disables biometric unlock.

Um, dear Google, I think this is wrong. Maybe there could be a setting to allow face to fail over to finger? Um, the KN95’s I wear are a stylish downtown black. Please don’t tell me the highly-touted Tensor silicon thinks masks have to be ugly institutional white?

Whatever. The way it is now is wrong.

Not Marching 13 Sep 2023, 7:00 pm

My inbox is full of reminders that this Friday, September 15, 2023, is the Global Climate Strike; marches and demonstrations are happening everywhere (here in Vancouver, starting 1PM Pacific at City Hall). But I’m not going. I’m too angry, angry enough to be stupid.

September 2023 Global Climate Strike

We’ve been marching and demonstrating and petitioning and getting arrested for decades and yet greenhouse gas emissions are not going down. Forests are burning, cities are sinking. This last summer, full of the hottest-days-on-record, will be one of the coolest that today’s children will ever experience. The deaths have started.

The way forward starts with something like The Fossil Fuel Non-Proliferation Treaty, which has received enthusiastic waves from Pacific nations, the European Union, and the state of California, and so far has had no effect.

Fossil Fuel non-proliferation treaty

You can yell all you want but nobody with any power is listening. People may cheer some of the better planks in the Biden Inflation Reduction Act, but everywhere I look, governments are still robotically approving every fossil-fuel extraction project that comes across their desk.

In Canada, our national police force has been enhanced with an attack-dog division specifically for busting up climate-justice activism.

Here’s the thing: That march is going to downtown Vancouver, infested with big glassy glossy storefronts for all the banks and “energy” companies. The Canadian banking sector’s annual profits are in excess of a thousand dollars per citizen of Canada per year, and includes some of the largest financiers of fossil-fuel extraction operations on the planet. I am so emotionally bent out of shape I might do something really stupid in that environment.

Maybe, millions of people marching all over the world this week will make a difference this time. I really hope so.

I sign the right petitions and donate money and am working on a publishing project (will blog soon). I would really like to find something else useful to do that would move the needle. I want it to be non-violent. Eventually, without effective action to stop the burning and drowning, the violence will start. I won’t help start it. But just now, I have to stay away from situations where it could happen.

Outer Átl’ḵa7tsem 25 Aug 2023, 7:00 pm

On most maps is its colonial name: Howe Sound. It’s a triangular body of water northwest of Vancouver, its longest side about 40km, scattered with islands. Here’s a map. The Sound and its islands are mostly named after 19th-century British naval officers, which in 2023 I find loathsome. It’s time to lose the dead limeys and revive the Indigenous names. The area was peopled by the Squamish; they used more than one name, but these days “Átl’ḵa7tsem” seems to be what people (and officials) are using. It may be hard to spell but it’s not hard to say.

I recently took a boat ride around Átl’ḵa7tsem’s southern reaches; here are words and pictures. (Used to be, there were regular blog fragments here along the lines of how I went somewhere and took pictures and had thoughts. But what with the social climate and long-Covid in the family and decarbonization, we don’t go places much anymore. I miss it. And I miss photographing and writing about it.)

Looking north into Átl’ḵa7tsem from near Ragged Island

Looking north into Átl’ḵa7tsem from near Ragged Island.
From left to right: A bit of Keats Island, a Gambier Island mountain with a big ferry in front of it, Hutt Island, and Bowen rising out of the picture.
In the background, the mainland mountains.

What’s “remote” mean?

Our family has the good fortune to own a cabin on Keats Island, which isn’t big enough to be named on that map linked above, but if you move your focus south to where the Sound meets the broader Georgia Straight, you can see Keats, named after another dead Brit, and a cluster of smaller islands to its south.

Bowen Island is essentially a suburb of Vancouver; you can live there and commute to school and work. The rest have a thin sprinkling of year-round residents, and mostly-empty-except-for-summer cabins around their edges. The vast majority are owned by people from Vancouver, where the money is. The word “remote”, when applied to an island, measures how long it takes to get there from Vancouver.

Thus, that sprinkling south of Keats is considered very remote, which is kind of ridiculous to apply to anything that’s less than two hours motor transport from a major North American city. But in fact they feel and look remote.

What happened was…

We had our friends Tom and Lisa over to our cabin a couple weekends ago, and Tom was looking at one of our many, uh, Home Improvement Opportunities, and said out of the blue “When are you and I going to come over here for three or four days before I have to start teaching again, and sort that out?”

I initially didn’t take him seriously, but Lisa pointed out that Tom doesn’t get enough chances to work with tools and probably really meant it. So, last week, Tom and I spent Tuesday to Friday at the cabin and wow, did we ever get a lot of stuff done.

This isn’t a home-improvement blog and lord knows I have nothing to teach on the subject, so we’ll skip the details, except to remark that this Ryobi mitre saw is a freaking awesome piece of gear.

After working hard for two and a half days, Tom and I boated to the nearest town for dinner and then went on a marine tour of those remote southern islands; Tom piloted and I snapped pictures.

An island on the south fringe of Átl’ḵa7tsem

This is I think part of the shore of Pasley Island. It’s an interesting story; the whole island, on which there are 30 cabins, is owned by a corporation with 30 shares, one for each cabin owner. They employ a caretaker, who (I’ve read, but can’t find the source) will run you back and forth to a place you can drive to on Bowen Island; waterfront cabin, no boat required! It even has a tennis court.

Think it looks beautiful? Me too. Look close and there’s a bright green spot, apparently painted on the rocks. I don’t know what it means.

Out at the very edge, past Pasley, is Worlcombe Island.

Worlcombe Island

It’s a tiny little shred of land, a couple or three cabins clustered around sheltered bays at the east end, then the rest of the island (above is its west end) in a state of nature.

Would I want a cabin on one of these out-islands? Our view on Keats is very beautiful, but we have sometimes-noisy neighbors and there are a lot of boats going back and forth; it’s hardly secluded and sometimes un-peaceful. These would definitely be closer to nature.

But… you’d be 100% responsible for your own power and water, which would mean a combination of solar, a generator (don’t forget to bring fuel), a cistern, water purification, and during drought years I guess you’d have to import every drop. And if you fall over and break a leg, or have a survivable heart attack, 911 ain’t gonna come fast.

I said to Tom “Would you like to have a cabin here?” and he answered “No, but I’d like to have a friend with a cabin here.”

I saw at least two islands with just a single cabin. Hmm. And then there are solitary rocks, undisturbed except for the occasional summer kayaker.

Solitary rock in Átl’ḵa7tsem, sailboat off to the side.

Looks like a nice picnic spot except for I bet it’s always windy.

Certain rocks are have been decorated idiosyncratically.

Rocky outcrop in Átl’ḵa7tsem decorated with a cross and diving boardSmall rocky island in Átl’ḵa7tsem decorated with a skeleton and Jolly Roger

It was a terrific outing, and thanks to Tom for the excellent piloting, and for pitching in on the cabin improvement, and for being a decent human being. He has 47,501 photos on Flickr and if you keep your eye on his stream you’ll probably see some pretty decent Átl’ḵa7tsem vistas.

Unicode Scalar Value 14 Aug 2023, 7:00 pm

Suppose you’re writing code (or defining a protocol) that involves interchanging messages, and those messages include text for humans to read. You owe it to the world to make any such text Unicode, so that the humans can use Korean or Arabic or whatever else they live in. It turns out to be non-obvious how to say “do Unicode right.” Today’s ongoing piece exists to tell you how.

Here’s the rule

The text must consist of a sequence of Unicode scalar values, i.e integers in the inclusive ranges 0-0xD7FF and 0xE000-0x10FFFF.

The text must be encoded in UTF-8.

If the messages are packaged in JSON, they must conform to the I-JSON Message Format (RFC7493).

You can stop here; do this and you’ll be OK, and fortunately plenty of software libraries will help you do the right thing.

Here’s a bit of back story.

What’s a “Unicode character”?

You could read the Unicode standard, or you start at the bottom of my Technology/Coding/Text blog category and read forward in time.

Programmers don’t need to stress out over what a Unicode character is. All you really need to know is that they’re identified by numbers in the range 0-0x10FFFF, called “Code points”. There are 1,114,112 code points, but last time I looked, less than 150K are assigned. Which, yes, leaves lots of empty space, but if an unassigned value creeps into your text that doesn’t seem to break anything in practice.

In an ideal world, in the rule above you could just say “Code points”, but unfortunately there is a cursed block of 2048 code points (0xD800-0xDFFF inclusive) called surrogates that are leftovers from a historical mistake, can only occur in constrained pairs, and that in 2023 nobody should ever have to think about. The rule above says “any code point that’s not a surrogate”.


The second part of the rule above requires UTF-8. There are lots of different ways to encode a list of codepoints into bytes in computer storage. For use on the Internet, UTF-8 is always the right choice and any other choice is wrong.

If you want more, all these years later I still think my 2003 blog piece, Characters vs Bytes, is a good backgrounder.


Ever since its first-ever description at, JSON has specified that strings are made up of codepoints, not excluding surrogates. This can create a variety of problems, which you can avoid simply by never using any surrogates.

The JSON spec also allows several other dumb practices, for example duplicate object keys. (I can say that because I was the editor of that RFC.) I-JSON is an RFC that’s just JSON only with all that dumb stuff forbidden; among other things, text has to be UTF-8 and surrogates are forbidden. Adopting it is a good way to signal to users of your technology that textual data will be clean and sane.

Thank you for your attention

Fortunately, doing the right thing is easy.

Mastodon Status Check 12 Aug 2023, 7:00 pm

My social-media life has been Fediverse-first since last November. I stick my head into Bluesky and Threads regularly, but no longer bother visiting Twitter/X much. This piece takes a close look at Mastodon-land as things stand in late summer 2023. What’s working, what’s not, what are the alternatives?

First, my biases: I’m pretty sure that federation is the only plausible path for social media. Also: Right now, being on our member-owned co-op Mastodon server is the best social-media experience I’ve had in years and years, maybe ever.

Yeah, there are only maybe a couple of million active users, but a high proportion of the people I want to listen to, and that I want to be heard by, are here. Quality of discourse is good. Assholes are thin on the ground.

Why Fedi?

Because having the global conversation owned by a single party hasn’t worked, won’t work, can’t work.

Cliché but true: If you’re not paying for it, you’re the product. Which means that some combination of advertising and pay-for-reach is inevitable. Both of these, based on the evidence, are powerfully corrupting. In principle, advertising doesn’t have to be I guess, but in practice, Internet advertising is dysfunctional.

Maybe I’m oversimplifying, but the solution seems obvious: Don’t have just one provider. And have people pay for the service, whether through voluntary donations or (as with our own low membership fees.

What’s Fedi?

What does a protocol or platform have to have and do to be “Federated”?

(Let’s call the service providers “instances”.) Obviously, you need to be able to follow and boost and reply and so on from one instance to another.

But, equally important: You must be free to move your account from one instance for another. No, let me re-phrase that: It should be acceptably cheap to switch instances.

Let’s be a little more specific about that cost, and list how it should work. When I switch instances, I’d like:

  1. To keep the same identity. This works for email; I’ve had the same email address for decades, and switched providers more than once.

  2. To drag my followers along with me.

  3. To have the service remember who I’m following and blocking and muting.

  4. My posts to survive the move, and remain associated with me.

Finally, curation and moderation must be cheap and easy enough that most people have an abuse-free experience, even if they are intersectionally vulnerable.

Which Fedi?

At the moment, there are only two plausible candidate protocols for the Fediverse, ActivityPub (it’s behind Mastodon) and the AT Protocol (behind Bluesky). Let’s go through our criteria and see how they stack up.

Oh, wait; while AT/Bluesky says they will have federation, they don’t yet. So I guess we’ll talk about the ActivityPub/Fediverse side of things.

Oh, wait; while there are lots of ActivityPub implementations and they interoperate pretty well, the world calls it “Mastodon”. Whether we Fedi-fans like it or not, for the purposes of this article let’s not fight it, we’ll look at the current state of Mastodon. (But I will keep mentioning Bluesky for purposes of comparison.)

Mastodon: Basic federation

Yep, you can follow and reply and block and so on, instance-to-instance. The experience is OK.

But… there are problems. The instances’ views of the conversation aren’t perfectly consistent. Which means that sometimes you won’t see all the replies or boosts that you should. Except for if you’re on a big server with thousands of users this will happen less. Why? It’s brutally complex; here are explanations by Julia Evans and Sebastian Jambor. Mastodon has things called relays that can help with this; I haven’t tried one out yet.

Interestingly, the Bluesky AT Protocol is trying to solve this problem by having two kinds of servers: Personal Data Servers where you interact with the network, and Big Graph Servers that “handle all of your events, like retrieving large-scale metrics (likes, reposts, followers), content discovery (algorithms), and user search”. Like much else about Bluesky, this is still theory-ware at the moment; if that architectural idea works, maybe Mastodon can adopt it?

In any case, is this a fatal flaw? Based on my own experience, I’m going to say no; and I’m on a pretty small server. And if it is, I’m pretty sure my profession can figure out a fix.

Mastodon: Identity migration

In Mastodon-land, your identity is totally tied to your instance. When you migrate, that identity changes. But maybe that doesn’t hurt so much?

Let me illustrate by example, the example being me; I’ve migrated three times. A long time ago, I was But if you follow that link, it tells you that I’ve migrated to and there’s a nice “Go to profile” button, the first step along my migration path, to, then, and finally my current home at

Don’t know about you, but to me this feels… OK? If I were fanatical about preserving my identity long-term I could have my own private instance, I guess, and lots of people do.

Once again, let’s look at the Bluesky/AT theory. In that world, if you own a domain name, that can be your identity, independent of what instance you’re on (in theory, since they only have one instance now). For example, I’m There’s an even deeper layer involving public-key voodoo where you can change the domain and retain your identity. Appealing! Will it work at scale? Who knows!

But if you like the Mastodon approach of server-based identity, Bluesky can do that too, I could be (and was, for a while)

Mastodon: Follower migration

The drag-your-followers piece seems to work. I’ve grown from nothing to 16K followers since last November, dragging them along three times. The process doesn’t seem to be 100% perfect, I’ve lost a tiny sprinkling at each step, but I’d say good enough.

As for the people you follow and block and so on, things could be better. Yes, you can migrate them, but you have to export them from the old instance to CSV and import on the new instance. Given that Mastodon has solved the hard problem of dragging followers, this part of migration should just be built-in.

Mastodon: Post migration

Nope. Doesn’t happen. The posts that I made on hachyderm and .cloud and .social are still there. How bad a fail is this?

It’s a hard problem. The Fediverse is embedded in the Web, and on the Web, things have HTTP URLs, and those URLs begin with the name of a host, and that’s pretty well that. Here’s a forest picture post from late last year (its address starts…) and a golden tulip from April (…). Well… what should have happened when I migrated?

Those posts’ URLs might have been used in lots of other Web pages out there. Some of those places might be Mastodon posts (or Bluesky or Wikipedia or the New York Times). Do you want to break all those links when you change instances?

You could copy all the posts over to the new instance; then each exists in two locations. Doesn’t seem optimal. You could do that and arrange for the “old” instance to redirect requests to the post’s location on the new one. (For geeks: 301.) Which, OK, but relies on that host continuing to exist and be well-behaved. Thus, fragile; you might have left the host because it’s misbehaving or going away.

Like I said, hard problem. Once again, Bluesky has (in theory) an answer. That tulip picture on hachyderm that I linked above has a URL that looks like So anything Web-compatible that sees it will start by contacting a Web server at Bluesky wants posts to have a URL that looks like at:// The idea is that the leading at: tells software not to send it to, but to software that understands Bluesky’s AT Protocol and will know how to find the instance that that post happens to be on. The mechanism isn’t that important, what matters is that the post’s address doesn’t depend on what instance you were logged into when you made it.

Will it work? Nobody knows, Bluesky is still building this stuff. It’s clever and as far as I can see architecturally sound. To work, all that needs to happen is for all the web browsers and apps you use every day to learn how to deal with addresses that begin with at://. Which, while not as impossible as it sounds, is a heavy lift.

I have a personal opinion here, which may be eccentric: I just don’t care that much about migrating posts. If I publish anything that I think might stand the test of time and contains a message I really care about, I do it here on this blog, which is my space and nobody else’s.

The stuff I’ve published on Twitter and more recently Mastodon has an ephemeral feel; I’d be sad if it went away, but not heartbroken. So I can live with Mastodon’s approach. And even if I couldn’t, for the moment all the solutions I can think of look like Bluesky’s, i.e. not lightweight.

So, for the moment, what Mastodon does is OK by me. And I should point out that being able to migrate service providers at all is a new thing in the social-media world and maybe Mastodon’s most important feature.

Mastodon: Curation and moderation

I think this is the most important and interesting problem in the federated social media space. (The technology issues are a bit on the boring side: We’ve built things like this before, we know how to do it, we’ll solve whatever software-design problems we need to. Computers, you know, they’re fast.) But defederated moderation at scale? Scary!

At the surface level, this one should be a little boring too. Billions of humans participate in social media every day, and while it’s not all sweetness and light, the systems people have built for spam-fighting and anti-abuse are… not bad. I firmly believe that if a social-media provider has an abuse issue, it’s because they don’t care enough (or maybe are on the abusers’ side). No, you can never cut the level of nasty noise down to zero. Yes, you can achieve an acceptable level of trust and safety.

Mastodon’s trust-and-safety story is imperfect, but it’s not terrible. The fact that there are thousands of instances, each of them does their own moderation, and each spots problem people coming in from problem instances, is in aggregate very powerful.

Also, Mastodon has a nuclear weapon: Defederation. If you’re running an instance, and you don’t police it, and if Nazis and incels and channers start using it for abuse, instance admins will notice really damn fast, and unless you fix the problem the mainstream instances will de-federate you, which is to say 100% of your users will be perma-blocked from everywhere. At which point you might as well shut down. So the incentives to tend your garden are pretty strong.

Will it work at really huge scale? I’m not sure, to be honest. There are already a couple of organizations offering “shared blocklists” to aggregate knowledge on who it’s not safe to talk to. There’s a nascent organization, IFTAS, that wants to develop a whole suite of shared tools and offer moderation as a service.

I’m optimistic.

Mastodon: What’s good

The client-software space is lively. For each of iOS, Android, and Web, there are multiple option that offer really unique takes on the experience. A few of them are delightful.

It’s pretty feature-rich these days. You can edit your posts. Boost and follow and like work smoothly. There are polls. The presentation of images and video is pleasing, and translation from other languages is robust.

The Content-Warning (CW) system works great. For a while you’d get snarled at if you were publicly angry about bigotry without a CW, but that seems to have subsided. These days CWs are used appropriately: Suicide, Food, Food including meat, alcohol, #NSFW. Oh yeah, #NSFW and “#lewd”; there is plenty of bared-adult-flesh erotica that you can see or not as you please.

(Note: This does not include the big servers, mostly in Japan, that are full of what they call “Lolicon” and we call child abuse; they’re defederated by all the mainstream instances.)

Hashtag following is excellent.

The best thing, though, is the quality of the conversation. People are interesting and thoughtful and on average kind.

Mastodon: What’s bad

Features are slow to arrive. It’s not that huge a code-base (120K or so lines of Ruby) but it’s complicated and the development team is thin.

The search capability is very limited. OH WAIT, opt-in search of post content is arriving in Masto 4.2 later this year.

It doesn’t do quote-tweet. Yeah, bummer. On the roadmap but don’t know when it’ll land.

Discovery is hard for new arrivals; there’s plenty of interesting stuff but how do you find it? I cracked that nut by aggressively looking for interesting people and seeing what they boosted, but I’ve been on social media forever and know plenty of good names to start with.

What about money?

Low membership fees times lots of people means that real money could start flowing through the Fediverse. Smells like an opportunity for businesses to provide services like sysadmin and moderation for instances. I’m pretty sure these are not opportunities to grow fast, attract venture investment, and get billion-dollar valuations. Because for that, you have to be “sticky”, lock your users in so you can squeeze the money out.

I may be kind of left-ish, but I generally approve of free-market mechanisms where appropriate. And I’m old-fashioned, I think that for free markets to work, customers have to have free choice, which means businesses really shouldn’t be based on lock-ins which remove that freedom.


Elon Musk was the Chicxulub asteroid that doomed the social-media dinosaurs. They’re still vertical, but staggering. A few misguided souls are trying to breed new dinosaurs with the hope of owning and monetizing the world’s conversations.

Mastodons are mammals; unlike mastodons, the players in the Fediverse aren’t huge, they are the little furry mammals scurrying around those unsteady dinosaur feet. Federation is the only plausible way forward. It’s where I’m investing my time and energy and I think you should too.

For now, that mostly means Mastodon.

Scanography 1 Aug 2023, 7:00 pm

Recently I visited Alex Waterhouse-Hayward; he gave me an excellent lunch and then I observed scanography at work, which was cool. Then I remembered that I’ve long wanted to write about his unique approach to technology. Let’s start with the good part, the picture:

Hosta 'Halcyon', Aug. 23, 2023

Hosta ‘Halcyon’, 1 August 2023.
By Alex Waterhouse-Hayward;
Really deserves to be expanded.

Alex is an interesting guy and an accomplished professional photographer; at age 80, he still gets regular gigs. Check his site and especially the blog, featuring his extremely colorful autobiography, illustrated and adorned with pictures. I’ve always had a special affection for Nicolás Guillén and the Switchblade, one of his earliest pieces. If you want to see his best boudoir work, which is dreamy and romantic, you’ll have to get to know him; it’s probably not bloggable.

Anyhow, his current photographic passion — I so hope that I still have passions, photographic or otherwise, at his age — is using a desktop scanner to capture each of the blossoms in his small but excellent garden. As you can see above, the depth-of-field is large (why is that, I wonder?) and the fall-off of light is dramatic.

Here’s the set-up.

The scanner and the subject

Scanner as camera.

See the rod coming from the upper right, just the right height to suspend the flowers? Alex credits it with opening the door to what he calls “scanography”; it’s part of a weird old desktop lamp. I told him that on basic lexicographic and etymological principles it’s still “photography”, whatever he wants to call it, but I’m not sure I convinced him.

Do you think getting that composition was quick and easy? Nope. It took Alex a half-hour of snipping back stems and re-arranging foliage to get it looking the way he wanted. The man knows what he’s doing. I speak from experience; back in 2007, I tried using Alex’s technique to capture eroded seashells, and found it taxing.

Immutable infrastructure

Here’s a picture of Alex at work; unfortunately my Pixel decided to focus on his hair, so I’ll have to explain what’s on the screen and why it might surprise you.

Alex working on his scanograph

He has an ordinary PC, a couple of years old I think. The scanner is an Epson Perfection V700, a little older.

The screen is a 22-year-old CRT monitor. On it, were it not blurred, you’d observe a 19-year-old version of Photoshop, which successfully controls the Epson scanner and imports its monster TIFFs.

Once Alex finds a technology he likes, he flatly refuses to update it. He’s retained a Windows wizard who somehow keeps all this ancient stuff running on a current OS version; I gotta say that that old Photoshop is damn fast on a modern PC. Watching him work, I was surprised by how capable that software is; the vast majority of what I do today with Lightroom CC classic was available back then.

Alex’s strategy has also led to him refusing to update his 17-year-old Blogger setup, an attitude which sometimes fails to work well with Google’s habit of sometimes breaking the world.

Speaking as a technology fashion victim who is always running the latest version of everything, I admire this approach. I think that if more people shared it, the world would be a better place. I’ve argued before that we need to disempower the Product Managers who insist on “improving” their offerings for reasons related to their career aspirations, not their customers’ experience. I loathe their assumption that the cost of the world retraining itself is zero. Also, they frequently make things worse.

Anyhow, if you’re in Vancouver and you want a portrait or a picture of a flower or a boudoir shot, Alex would be a good choice, and you’d also meet a really interesting person.

Workin’ for the Man 24 Jul 2023, 7:00 pm

I think that anybody who publishes publicly should disclose who’s paying them, because it’s unethical not to. Call me old-fashioned. So I’m here to disclose a new paymaster and tell you almost nothing more. But stick around anyhow, because I have a moderately funny onboarding story.

Just the facts

For some months now, I have been working a few hours most weeks, part-time, for The Man. What man, you ask? The man, I mean: Uncle Sam!

Specifically, I’ve been helping an agency of the United States government, in the capacity of Invited Expert, with an in-progress litigation between them and Meta Platforms, Inc.

That’s all I’m gonna say. It’s a time-honored tradition to decline comment on an issue where litigation is in progress. Any questions on the subject will be met with stony silence. Maybe when the story is over there’ll be stories to share. But not now. Thanks for listening.

Oh, wait!

There is a story to tell! Let’s start with a screenshot.

The web-site front page

So, when I was negotiating about Working for the Man, there were a couple of conditions. First, I needed to keep the relationship confidential for an initial period (now over), and second, our little family company needed to register as an official vendor to The Government Of The United States Of America. which means getting to know, whose welcome page I have reproduced above. “Well,” I thought, “I’d better just go register, then, hadn’t I?”

[Narrator: (Hollow, mocking laughter, intermittent sobs.)]

Now, let’s be fair: It’s probably not reasonable to expect the process of getting set up to get paid, by the world’s single largest spender of money, to be lightweight. In any modern nation, there’s going to be a forest of legislation surrounding this, for good reasons. People being what they are, there are going to be those making it their lives’ work to figure out how to extract money fraudulently. There are going to be programs favoring certain sectors: Small businesses, disadvantaged minorities, and so on.

Also, I tip my hat to whoever came up with the name System for Award Management (S.A.M., get it?) and thus dub the money-spout Web site “”. I grin a little every time it comes up.

Anyhow, getting registered took many weeks and included more than one episode of me shouting filth at the computer while family members escaped to other parts of the house.

First I had to get a number from NATO to help with co-ordinated acquisition; suppose I wanted to sell flame-throwers to France in future? That was pretty easy.

Then the first Boss Battle: Apparently at some previous point someone had already registered our company (An accountant? A lawyer? Me?) and when I entered the details, they were inconsistent with what was on file.

[Narrator: Sucks to be you.]

Of course, would not reveal what the inconsistency was, its error message was along the lines of “Field mismatch, xthksby.”

Weeks passed. I uploaded multiple documents concerning every detail of the business. Finally, it worked. I then trudged through the many, many screens-full of registration questions which, I will concede, were mostly perfectly sane. Sam required reassurance on many subjects: That I had not been previously convicted of stealing from the government or systematically abusing my female employees or selling arms to Tajikistan, for example. You’d be surprised (well, I was) how many bad things I might have done (but hadn’t). I also had to confess that, for many special categories of extra-worthy vendor, I wasn’t one of those.

Then, unexpectedly, on another ordinary Web form, the final end-game Boss Battle, a field asking me to enter the Trade Register Number.

[Narrator: Oh, no, not the Trade Register Number! You’re doomed, doomed. Abandon all hope, ye who enter here.]

Any company that’s doing business has many different ID numbers having to do with tax and incorporation and banking and so on. I tried them all. (“Incorrect value, kthksby.”) I filed ticket after ticket with the General Service Administration help desk. I Googled furiously. I asked everyone. All these efforts bounced off’s surface like bullets off Godzilla. Finally I sent a regretful email to the agency saying they’d have to do without my expert advice.

Literally the same morning that email went out, a wave of peace and beauty swept through the noösphere, and relented. So now our little Canadian company has a “Unique Entity ID”. And an agency name and a contract number. And every month, I generate an invoice containing that data (we use Paymo, it’s totally great) and email it to an address that ends in .gov and, a few days later, we get a polite email acknowledgment which suggests an actual human is in the loop, then some dollars land in the bank account with the notation “US TREASURY”.

What’s the winning formula?

Well, I guess I’m now a minor expert in fighting my way into, and I think I know what happened. Every time the registration process went off the rails, I created an “Incident” with the GSA Federal help-desk. In most cases, the response was the equivalent of “Did you try turning it off and on again? Ticket closed. Kthksby.” But on two occasions — once for the conflict with the pre-existing registration, once for the Trade Register Number — there was an eventual response like “Fixed it, re-submit.” And indeed they had fixed it.

So I think the winning technique is simply to flood their input queue with issues and eventually one will find a chink in the armour and reach an intelligent human being who Just Fixes It.

Anyhow, recently on the Fourth of July, at dinner, this Canadian family drank a toast to Uncle Sam.

Long Links 19 Jul 2023, 7:00 pm

My Long Links blog fragments curate long-form pieces that I think worth an investment of time, acknowledging that most people with jobs and lives and so on can’t read all of them, in the hopes that one or two will reward, Dear Reader, an intrusion into your scarce free time. Here’s another offering. But first, why haven’t I written any since December 2022?

[Hmm, there’s a problem here; too many of these links are to the New Yorker. I will pay attention to this issue in future outings.]

One reason for the Long Links hiatus is that I’ve been Workin’ for The Man. Another is that Social Media has been consuming a whole lot of my time. I don’t regret that time, because we’re at an inflection point, what with the implosion of Twitter and the emergence of multiple aspirant successors. The future of Social Media is teetering just now and nobody knows which way it will fall. Online written communication has strongly shaped my life, and it bids fair to impinge on the lives of a monotonically increasing proportion of everybody in the world. I care a whole lot and I’m not embarrassed in the slightest.

Having said that, this Long Links is going to be a social-media-free zone. I’ve shouted enough, on each of my (many) output channels, and (sorry) fully plan to shout more. We all deserve a break.

But before I give you that break, drop by CoSocial, our member-owned co-op Fediverse instance. I think something like it is the future. Now the break starts.

In recent months I’ve on two occasions had personal contact with the member of the “TPOT” (or “postrat” or “incrowd”) faction and boy, is it ever hard to figure them out. But a good place to start is to mention that “postrat” means “post-rationalist”, and visit The Wide Angle: Understanding TESCREAL — the Weird Ideologies Behind Silicon Valley’s Rightward Turn. I’m gonna say that all you really need to know is that Peter Thiel is mixed up in it and there’s no recovering from that.

If you look away from Social Media, you’re probably looking at some aspect of the ongoing AI/ML frenzy. Can anything new be said about it? From last April, here are Ten Things about AI by Stephen O’Grady and There Is No A.I. by Jaron Disclosure: I like O’Grady but have long had negative feelings about Lanier — he was a practitioner of disdainful Internet Contrarianism, which for some years was a cheap way to get published on prestigious pages. Still, both of them offer unique angles. Some, I agree with. Are they right? I don’t know. Nobody knows anything about the future of whatever it is the AI/ML people are cooking up. Including the AI/ML people.

Let’s look at the Middle East, where Israel has been tearing itself apart for months and months, under a government that seems corrupt and racist on the face of it. Israel Turns Seventy-five as a Nation Divided is, again, from April, but I just revisited it and the exact same people are having the exact same arguments in my newsflow, so it’s effectively up-to-date. Israeli politics are closely watched by many; those of its Palestinian adversaries hardly at all. Isaac Chotiner offers a really useful look in The Future of Palestinian Politics.

Now let’s have some fun, by which I mean Weathering Software Winter, by Devine Lu Linvega, also known as, easily one of my top-5 Mastodon follows. Not going to try to summarize it; follow the link and if it’s not for you, you’ll know right away.

And now for something completely different: Why aren't women having more babies? We should ask them. This is from The Line, a conservative-leaning but sane (can’t remember the last time I combined those adjectives) Canadian newsletter. Despite my frequent despair at the state of the planet, I think that new humans coming into being is generally a good thing, and that if people want to have children they should be able to. This piece offers data showing that women are having way fewer children than they say they’d like. The piece doesn’t answer the question in the title, but rather grumbles that governments seem to think that if they’ve made contraceptives widely available and cheap (obviously good policy) they think they’ve done everything needed to address women’s reproductive health. But anyhow, the reason I’m posting the link is the first graph in the article; the data shocked me. I wonder what equivalent US data would say?

Let’s hop across the Atlantic to Britain, and turn to the reliably-excellent Laurie Penny, who offers Dancing on the picket lines in broken Britain. It opens: “Desperate times call for Gloria Gaynor”. The UK’s right-wing governments have been shredding its social services every year for quite a few years now; it’s hard to appreciate how desperate things are getting from over here in the New World, but Ms Penny paints a compelling picture.

Now in the summer of 2023, larger and larger swathes of humanity are being subjected to the leading edge of the climate catastrophe. The environmental news is horrifying, whichever direction you look. So this is a good point to offer you, from last October, Beyond Catastrophe: A New Climate Reality Is Coming Into View. Summary: Yes, it’s horrible, but the very worst cases are looking less likely. Doesn’t mean we should sit on our asses; what are useful things we might do? Well, David Klein over at Truthout has an idea: Sabotaging Oil and Gas Infrastructure Is an Act of Climate Heroism. I quote: “In this context, we need to ask ourselves whether the destruction of planet-killing machinery is necessarily an act of violence.” And so on. I’m not actually recommending you go blow up a pipeline (although I totally recommend How to Blow Up a Pipeline, the movie, it’s excellent). But I sense an Overton window on the move here and we should be paying close attention.

My readership is pretty geeky, so let’s quick-visit a few software blogs: The disproportionate influence of early tech decisions, illustrated by experiences at Stripe. In The cloudy layers of modern-day programming, Vicki Boykis offers an amusing, erudite, and irritated trip through building a modern cloud-hosted application. In ‘Go get your swag!’: Five days living large at a giant Vegas tech-fest, a non-technical Kiwi journo goes to re:Invent and his mind is unsurprisingly boggled. Dear Readers, I cannot lie, I loved the intensity and all the cool people at re:Invent but words cannot express my loathing of Vegas, so I miss it but don’t.

And now for something completely different. My twenty-something son is a fairly serious Smash player; enters and volunteers at tournaments, watches the big ones on streaming, will talk your ear off about the arcana of playing Marth. The Smash community is large-ish and self-made. Nintendo apparently hates them, because they tend to spend their time competing on decades-old games, and more generally, control-freakery around their brand. The loathing between Nintendo and the Smashers is mutual: Smash World Tour canceled after TOs blindsided by Nintendo cease and desist

The title speaks for itself: Why Are So Many Guys Obsessed With Master and Commander?

From the high-end audiophile press, a beautiful little essay about not listening to music: Why Not Listen to Everything?

From the International Journal of Motorcycle Studies (no, really), Chrome and Black and Dusty: Robert Pirsig’s Motorcycle Heritage. Pirsig, of course, wrote Zen and the Art of Motorcycle Maintenance, which was a damn important book in the days of my youth and don’t you forget it. I think its standing has fallen over the decades but it enriched my life and taught me useful things. The article is what it says; look past the Zen at the motorcycles. I’ve never owned a bike but I still enjoyed it.

Feel like a blast of healthy, cleansing, rage? Try The Haves and the Have-Yachts, an exploration of super-yacht culture, at a time when children in my well-off home-town show up to school hungry.

If you read what I write, you will already be used to me shouting at the world that E-bikes are wonderful things, life-changers, and you should get one. Craig Mod thinks so too: Electric Bike, Stupid Love of My Life.

Joyce Carol Oates is great. You already knew that, but also: Joyce Carol Oates Figured Out the Secret to Immortality.

That’s all, folks. Another reason I finished this up and hit “Publish” is that I already have a thriving new crop of tabs that needed to herded into the Long-Links slaughterhouse. Don’t say you haven’t been warned.

Mimestream 18 Jul 2023, 7:00 pm

I’ve been doing my email using the Mimestream app for the last six weeks or so, and apparently I’m not going back to Gmail-in-the-browser; the choice wasn’t a slam-dunk but I seem to have made it. Mimestream is a Gmail client (specifically, not IMap generally) and a native MacOS app. Now (assuming you know what Gmail and MacOS apps are) you know exactly what to expect, and whether or not you might like it. I’m just here to fill in the corners.

Mimestream home page

Unfortunately, I can’t possibly share any screenshots because a lot of my traffic is about two extremely non-public projects; but the web site has plenty.

It’s hard to single out the biggest reason for changing over but, on balance, I’m going with not having to use the Gmail editor. I mean, that editor is OK, it’s just that I have this feeling that I’m running at the edge of what a browser tab can reasonably be expected to do, and it goes off the rails sometime, particularly when dealing with nested threads. Mimestream feels rock-solid and when I want to move the cursor or insert a line, I never get a nasty surprise. Since I spend a lot of time doing email, small quality-of-life improvements really add up.

I guess the editor is one of the many fit-and-finish benefits of not having to be an email app and a browser at the same time. And yes, Mimestream looks subtly but unmistakably better than native Gmail. Also, a TAB is just a TAB and Delete deletes a message!

So, why would you not want to use Mimestream? Here are a few items:

  • I use the Tab Trick (really, go read that if you don’t know the Tab Trick) so my hindbrain still assumes that typing ⌘-1 takes me to my mail.

  • The (few, minor) variations on the standard Gmail shortcuts are extremely irritating. For example, “/in:spam” doesn’t work, and “GI” doesn’t yank you to the top of inbox. Bugs filed.

  • I regularly and foolishly type “x” to focus on a message before archiving or deleting it, which isn’t required, and Mimestream cheeps at me annoyingly. Just ignore my old reflexes please.

  • The fact that there’s no force-refresh is annoying, but to be honest I’ve never needed one, Mimestream seems to notice and grab incoming mail right away.

So as not to end on a negative note, a few other minor benefits:

  • Having multiple open email drafts in flight, each in its own window, Just Works, nothing spooky.

  • You can turn off the unread-message count display in the Dock! Since I practice the Low-stress Inbox discipline (another thing you should read if you don’t know what it is), the absence of distracting notifications is crucial.

  • The freed-up Gmail tab now has my Pixel SMS/RCS traffic; phone messaging with a real keyboard FTW!

Mimestream, it’s pretty good, it’s cheap, why not?

Pixel 7 RAW vs JPG 25 Jun 2023, 7:00 pm

Back in 2019, when I had a Pixel 2, I compared the Google Android camera app’s RAW (specifically DNG) files against its JPGs, and was left with little temptation to save the DNG files. I just repeated the experiment with my brand-new Pixel 7 and the results are more complicated.

Multiple reviewers have pointed out that the P7 has a really damn good camera/app combo and, well yeah, no point me pounding that drum. It’s scary good.

Background: “Real”-camera RAW

On my camera-that-isn’t-also-a-telephone (currently a Fujifilm X-T30) I always shoot in RAW, which is some weirdo Fuji proprietary bit-bag that Lightroom turns into DNG for me to edit.

The camera has a totally great JPG engine, which I mostly ignore. I think a lot of other photo-enthusiasts shoot RAW, and I think they do it for the same reason I do: Because of the “depth”. Which means that if part of your shot is blown-out-white or pitch-black, a RAW file likely has lots of useful picture there you can’t see, but a program like Lightroom can get it back for you. In a JPG, you just don’t expect that invisible data to be there.

How modern mobiles photograph

They have sensors and lenses that are pathetic compared to what’s on any recent DSLR or mirrorless camera. On the other hand, they have extremely powerful computers with specialized hardware for running machine-learning (ML) models.

What they do (and I think Google is regarded as extra-good at this) is called “computational photography”. This involves taking lots of pictures at a rate of 50/second or so and combining them to learn more about the scene and how to render it. Then there’s usually some HDR sugar tossed in. Then they apply ML models whose goal is to produce something that will please your eye.

Apparently the underlying sensor is 50MP, but the computation includes “binning” the pixels so you get 12.5MP. It’s easy to believe that this is definitely going to improve the quality and zoom-ability.

Then they wrap up the output in a JPG file that you can share to social media or print out and hang up.

What “RAW” means

In theory, it’s historically meant the photo-intensity readings from the individual pixels in the sensor, with no processing at all. The idea is that using a powerful photo-editor like Lightroom, you (because you’re a human and oh so clever), can do a better job of beautifying those bits than a pathetic little lump of silicon.

On the evidence, the computational-photography posse over at Google doesn’t agree.

Enough talk, show me the pictures!

Case study: Trees

This photograph is taken lying in a hammock looking up at big evergreens. DNG above, JPG below.

DNG version of picture looking up at evergreensJPG version of picture looking up at evergreens

Gosh, that JPG looks a lot better, doesn’t it. I wonder if I can achieve the same effect with Lightroom?

The answer is yes:

  1. Tint: +9 toward red.

  2. Contrast: +23

  3. Highlights: -50

  4. Shadows: +68

  5. Blacks: -49

  6. Vibrance: +5

  7. Sharpening: 84

(I’m not going to show you the corrected version, you’ll have to take my word for it; they’re about indistinguishable.)

A question arises: If all I had was the DNG, would I have made the right moves to get the more-pleasing version?

Case study: Dark room

This room was very dark; I seem to remember that the camera switched into some low-light mode, of which I think it has more than one. DNG up, JPG down.

Shadowy room, DNG versionShadowy room, JPG version

This DNG is really skanky. Once again, could I brush it up in Lightroom? In this case, the answer is “not even close.” In particular, whatever the camera did to capture the textures and verticals in those curtains is pretty magical. I dug way into those bits with Lightroom and just couldn’t find that stuff.

Case study: Colors

This is a tiny crop, near-100%, into a picture of a big old stump covered with flowers and little green plants. DNG up, JPG down.

Wood and vegetation, DNG versionWood and vegetation, JPG version

Pretty clearly, the phone has strong ideas about what colors things should be. It’s desaturated the brown parts of the picture, and turned the leaves from a bit bleached and yellow-ish to vibrant picture-of-good-health green.

Could I achieve the same effect with Lightroom? Yes, but I wouldn’t want to. I went and checked and the DNG is the color those leaves really are. Does the picture look prettier with the green vs brown treatment? I guess, but this particular opinion statement bothers me.

Hmm, something odd is going on. Looked at in Lightroom, the leaf color in those two treatments is strikingly different. But the exported version is closer, the leaves are less yellow. I wonder if Lightroom’s JPG generator also has opinions about plant health? Everything is more complicated than you think.

Things I learned

  1. You have to dig pretty deep into the Camera app preferences to find the enable-RAW switch. What’s good is that once you have, it doesn’t switch to all RAW all the time. Instead, you get a toggle in the quick-prefs pulldown to enable or disable RAW+JPG per-picture.

  2. The JPGs in every case made the sky less blue than the DNG. I didn’t notice this till later so I don’t know which variation is truer, but the sky is prettier in the DNGs.

  3. It may seem to the observant reader that my feelings about truth and beauty are not entirely self-consistent.

  4. The DNG and JPG files have different pixel dimensions, which seems weird to me. The JPG is about 1% bigger. And if you look at the pictures, the edges of the JPG stretch out a tiny bit further. Huh?

  5. The JPG process always applies a judicious amount of sharpening. I can’t fault its judgment.

  6. It also does what looks like lens correction. I don’t know the correct technical term, but it looks like the center of the picture is pulled back a little bit to occupy less space. Back in DSLR days, Lightroom used have a huge table of All The Lenses and would do this for you. These days, mirrorless cameras take care of it in-place.

    I looked into Lightroom and it offers corrections for various Pixels, one labeled “Pixel rear camera”, which did the same-and-a-little-more on the JPG and was a no-op on the DNG. Huh?

    Note to self: Take a picture of a rectangular grid and find out which is correct.

  7. Everyone knows that RAW is better because of image depth, you can pull data out of areas that look black or bleached. Um, no longer; the JPG seems to have about as much depth as the DNG. Which is a lot less than my Fujifilm camera, but more than I’m used to getting from JPGs.

  8. On my Fujifilm I always shoot RAW+JPG because you can pull the JPGs over to your phone using the fragile sometimes-it-works Android app, for sharing. When I pull those RAW+JPG pairs off the SD card into Lightroom, it understands that they’re the same picture. I get my Pixel photos into Lightroom by opening them in the Lightroom app on the phone, which works OK but doesn’t realize that the DNG and JPG are the same picture. (Which made this piece easier to write.)

What I think about all this

Uh, I dunno. I do wish Google would publish an explanation of what that “RAW” file actually is. Because, having done this work, I have no idea.

I enjoy touching pictures up with Lightroom. And I still can, even if they’re JPGs.

I think I’d turn on the RAW capture for anything where I care a lot about color accuracy. As of now, I can’t think of another situation where it’s the best choice.

Anyhow, here’s a picture taken with a nice Fujifilm camera using a 145mm F/2.0 prime lens. The mountains are 16.5km (10.25 miles) away. It looks brilliant on my big 4K screen. Can mobiles do that yet?

Mountains over Lions Bay, BC, taken from Keats Island

Fediverse Governance 24 Jun 2023, 7:00 pm

When there’s anything that you’re a member or citizen or user of, you should be concerned about who runs it and how it’s run. This is most obviously true of your nation, but also of your book club and your workplace. And, these days, the online place where you interact with your fellow humans: Social Media. This essay describes the Fediverse and its self-defence mechanisms, outlines a potential attack on it, which makes a nice case study on who runs things, and how.

Status quo

The governance of Social Media has historically been simple: The corporation that owns the service has the power. This has generally produced terrible results: Monopolization, enshittification, trolling, doxxing, swatting, wilful disinformation, and the list goes on. No privately-owned social-media platform has managed to provide a quality non-abusive experience for any significant fraction of a human lifetime.

The Fediverse could be better. If there are thousands of standalone service providers, federating with each other, it seems at least possible that they can avoid the corrosive forces of Late Capitalism. I personally believe this and find the idea hugely energizing.

However, this does not mean that you can stop worrying about the governance of your own personal social-media space. Just because it isn’t owned by Elon Musk doesn’t guarantee that it will be well-run or have a lifetime that is a significant fraction of yours.

Fediverse Backgrounder

Most people reading this probably know the following, but these basics are worth listing just to ensure we’re using the same language. Feel free to skip over this if you’re Fediverse-savvy.

  1. The things that federate to make up the Fediverse are called “instances” (people sometimes say “servers”).

  2. For instances to federate, they need to agree on a protocol, a set of rules to support people posting, reading, following, replying, blocking, and so on. ActivityPub is the most common protocol, mature enough that there are multiple different implementations that can talk to each other. Mastodon is the most popular. There are other protocols and other pieces of software, but today let’s stick to ActivityPub and say "Fediverse" to describe all the instances that use it.

  3. When you set up a new instance, by default it federates with all the other instances.

  4. Anybody on any instance can follow anybody on any other that’s federated.

  5. Anybody can block anybody, then the blocker and blockee will never see each other’s posts.

  6. Anybody can block a whole instance, with an effect identical to blocking everyone on that instance.

  7. There are mechanisms to allow people to report bad behavior by other people or other whole instances.

  8. Any instance can defederate from (or “block”, or “suspend”) any other instance, with an effect identical to everyone on the blocking instance having blocked everyone on the blocked instance.

    For example, there are islands of awfulness such as Gab and Truth Social that use ActivityPub but are not in practice part of the Fediverse because everyone blocks them. Similarly, there are instances (mostly in Japan) that talk ActivityPub but are almost-universally blocked because they allow sexual content that is legal in Japan but almost nowhere else.

    Lots of other instances are widely-defederated because they allow griefers and Nazis and homophobes and racists to run amok.

  9. Defederation is the nuclear weapon that, many believe, keeps the Fediverse safe. If you’re a free-speech absolutist and want to let Anti-Semites or Klansmen or incels hold forth on your instance, that’s fine, the technology won’t get in your way. But pretty quickly, you’ll be defederated from everywhere and your users won’t be able to get in too many other faces, which kind of takes the fun out of being a shitty human being.

  10. There is an emerging community of shared-blocklists to facilitate rapid defederation from various flavors of troll farm.

  11. Most Fediverse instances are run by a single person who has essentially dictatorial control, usually a software professional who did the work to set the instance up and continues to co-ordinate its care and feeding. Most of these people are decent and competent. Some are neither.

  12. Most Fediverse instances are funded by voluntary donations run through Patreon or equivalent.

Case study: #Faceblock

Recently in the Fediverse there has been much ado about the imminent arrival of Meta’s “Twitter Replacement”, apparently to be called “Threads”, and apparently to be ActivityPub-compatible. So your weird Aussie Aunt from Adelaide who lives on Facebook can follow your account on a queer geek instance, and vice versa.

Unsurprisingly, this prospect horrified a lot of people. There is close-to-universal consensus that Meta is a loathsome organization, entirely amoral, and the subject of litigation by law enforcers in multiple nations. They are the Leopards Eating People’s Faces Party.

The question arises: Should the Fediverse give Meta a chance, or should we block them immediately and pre-emptively? Because otherwise, we might be the ones saying “I didn’t think the leopards would eat my face!”

Pretty quickly, arrived online (warning; its design is disturbing). As I write this, it has 444 entries, each claiming to be a Fediverse instance admin pledging to pre-emptively block Meta.

My own opinions on what to do here are not relevant to the issue I want to address. Which is: Now that the thousands of instances that make up the Fediblock are facing a common decision, how will each make it?


Here’s a random data point. Big Fediverse Name ran a poll on what people want to do about Meta’s arrival.

#FaceBlock poll from

This poll still has days to run as I write,
but hasn’t been moving much.

Getting this many voters on a Mastodon poll is pretty awesome, but @stux has 125K followers, which is big-time in the Fediverse.

Now as to the numbers… I’m surprised. Bear in mind that @stux’s followers may not be representative of anything and, who knows, someone might have figured out a way to game polls through the API. Having said all that, Facebook totally brought this on itself. No tears shed for ’em.

Anyhow, seeing this made me curious about whether those people with those opinions got to express them where it matters, as in to the people who will decide whether to block Meta or not.

So, I ran my own poll.

#FaceBlock poll from

It’s frankly weird that I got so few participants; I recently got 3K on a poll on light vs dark mode. I think it’s also indicative; among the 15K or so people who follow me, it looks like most don’t care very much about this issue. And, they shouldn’t have to!

But, for the ones that cared enough to vote, the fact that only 35% of them were consulted by their local admins is disappointing. I sincerely hope that my numbers are misleading.

What CoSocial did

My Fediverse instance is called “CoSocial” and may be found at It is a registered member-owned co-operative for residents of Canada. Our constitution basically gives all the powers to the Board of Directors, who are elected annually by our members. So it’d be perfectly procedurally OK for the Directors (I’m not one) to go ahead and make up their minds and if it sufficiently irritated the members they might get dumped next Annual General Meeting. But, that seems kind of dumb.

When we talked this over, at least one Director said they were glad this issue had come up because it forced us to settle on a policy for dealing with this sort of thing. The decision was:

  1. We posted an “Announcement” to all our users, asking them to participate in a discussion. I’m not sure whether the “announcement” feature is an ActivityPub thing or Mastodon-specific.

  2. We asked them to tag their posts with #CoSocialMeta.

  3. We promised that the Directors would look at the input before deciding what to do.

You can read the #CoSocialMeta discussion! Go ahead. [Narrator: Tl;dr: Eh… probably give ’em a chance but keep the finger on the trigger.]

I thought the discussion was smart and useful. I think the Directors are getting a pretty straightforward message.

Update: Board decision

I quote from here: will not pre-emptively defederate from the Threads app fediverse instance by Meta. However, we authorise the Trust and Safety team to take all necessary steps to protect user safety on CoSocial.

Who wasn’t involved?

Venture capitalists. Entrepreneurs. Advertisers. Private-equity people. Billionaires.

Isn’t that nice?


I’m absolutely not suggesting that every Fediverse admin adopt the CoSocial approach. I do suggest they find a way to get input from the people using their instances though.

Because we really do want the Fediverse to be different from what’s come before.

CSS Boost 21 Jun 2023, 7:00 pm

The blog you are now looking at is looking a little different (better I think), especially on mobile devices, because the CSS has been improved. I have a report on the details, and unexpected lessons.

What launched me into action was the acquisition of a Pixel 7, on which this blog’s text was unreadably tiny. I’m not sure what changed, but I got complaints from a couple of other people at the same time that I noticed it myself, so maybe it’s Android’s fault? Anyhow, couldn’t ignore that problem. On top of which, I had a list of minor gripes that had been on the to-do list for way too long.

Lesson: Falling behind

The first thing I had to do was face the fact that I’m years behind on CSS, which is a long time given that technology‘s history of rapid accretive enrichment. To be brutally honest, I had no idea where to start. Yes, I’d glanced at a few blogs about CSS Grids and so on, but it became obvious I’d have to put days and days into getting the basics, and I just never did.

This is a bit painful because, heretofore, everything about ongoing had been hand-built solo by me, from first principles based on my knowledge of the Web, overwhelmingly acquired via the View Source path. And the fact today is that a high proportion of us can’t view CSS source and come away with anything useful. So it goes.

I will however eagerly scrutinize the new CSS and who knows, maybe I’ll come to understand it.

Lesson: Fediverse recruiting

Time was, if I needed this kind of help I’d look for it on Twitter. Those days are gone. So I advertised on the Fediverse.

Mastodon post asking for CSS help

And within an hour or two, I had several high-quality responses that took the trouble to respond in the form I asked, and I pointed them at a public Google Doc that read like this:

Currently my blog relies on a single static CSS file at (Many years ago I used to offer serif and sans-serif variants of the blog). The blog is written in raw XML and the publishing system turns it into XHTML with reasonably good semantic markup. If it would facilitate fixing the CSS I could update the publishing system to fine-tune the markup. The CSS is entirely hand-constructed by myself and is not good. The blog mostly looks OK but I would like to achieve the following:

  1. Have the text be readable on as wide a variety as possible of different screen sizes and shapes. Something seems to have broken recently, the text is unreadably tiny on Android.

  2. If I put in an image that is too tall-and-narrow (I can supply an example) the text tries to wrap around it, I want images strictly in-line with the main column.

  3. I’d like images to extend out to the left, to the edge of the screen if they’re wide enough.

  4. If I have a header and then drop into an ol or ul without having a paragraph after the header, the first list item gets a deformed font.

  5. The text comes too close to the top of images (OK, I could fix that one).

  6. I’d like anything that is hideously wrong in my current CSS replaced with something modern and good.

I got a couple of plausible offers and picked the first decent-looking one that came in, which was from Matt Slack of Collective Idea. You see the eventual results. Lesson: The Fediverse is a plausible place to look to hire talent.

What happened

Matt set up a GitHub repo to work in. It took a half-dozen back-and-forths, but now ongoing works better on plenty of platforms and (this warms my heart) my pictures present themselves better.

It turned out that my Perl-from-2002-generated markup was broken in a couple of places and Matt was extremely gentle and polite in pointing out my shortcomings. Fixed now.

I asked Matt if he wanted to write a couple of paragraphs about what he did; here they are:

The first thing I did (after Daniel voluntold me to work on this, but before we’d actually contacted Tim) was open an inspector and see how far adding the viewport meta would get us. That normalized our font-sizes reasonably well. Next removing the second column made things feel very readable, and not run off the screen, which seemed like enough progress to make a boastful pitch off of.

Once I started working with the actual CSS in an editor the first order of business was fixing any syntax errors, and make sure it weren’t using a mix of tabs and spaces. Next I added some media queries to use a single column until the screen was side enough to support two. Additionally, I used grid layout to make our columns instead of absolute positioning. A few small spacing tweaks an that was enough to see how Tim felt.

The CSS originally did not use a lot of advanced features, and that’s cool. For the type of site it is, I really didn’t want to overcomplicate things. So in the first pass, other than using grid (which I spent so many years waiting for it’s hard to believe it’s been supported in all the major browsers for six years now) I didn’t add any new functionality.

In the second pass, I focused on how wide images were presented, which was a good opportunity to start using custom properties. I love custom properties in general, but I find them particularly useful for putting in long calc functions.

calc(((100vw / 2) + (var(--body-half-width) - (var(--side-col) + var(--grid-gap)))) - var(--gutter))

Gives you a lot better idea what’s going on than

calc(((100vw / 2) + 400px - (240px + 17px)) - 5vw)

The last major bit was figuring out the header. Once the screen was narrow the text overlapped with the search box and felt very crowded. We tied a few options, but eventually ended up making the text a lot smaller.

It was a nice quick project. If I were working on it longer I’m sure I’d find more to tweak and be more pedantic about, but I think it’s in a good spot for Tim to maintain for the next few years.

Thanks, Matt!

Lesson: Own your home

Since I first set up this joint in February 2002, it has reliably and consistently boosted my understanding of what’s going on, and, well, my life in general.

The lesson is that, for those of us who live online, having a simple static-site home on the range, on your own domain name, under your own control, has one of the highest returns on investment of anything you can do.

No Man’s Sky and Apple Silicon 18 Jun 2023, 7:00 pm

I updated to a 14"/32G/M2-Pro MacBook Pro a few weeks ago but (unusually) haven’t written about it here. Recently, No Man’s Sky for Mac was announced. Since I played that regularly but casually for a couple of years starting in 2016 on PS4, I thought I’d give it a try, and now I’ve put in a few hours. Here’s a weird counterintuitive idea: Maybe games are what the MacBook Pro is built for?

No Man’s Sky on Mac, screenshot

Nice planet!

Tech Notes

  1. It’s on Steam, and if you already have NMS on Steam/Windows, it’s free.

  2. You can cross-play with people on some other platforms but I’m not really sure of that story yet.

  3. When it’s running, you can ⌘-tab back to MacOS and, I dunno, read your email or whatever; no hesitation or heavy breathing, just works. I wonder if you can do that while under attack; Does it freeze the game or can you die in absentia?

  4. To my surprise, you can play it without an outboard screen or mouse, works just fine with the trackpad. Now, this little fourteen-incher isn’t giving me the full wide-sci-fi-vista NMS experience, but it’s still fun. By the way, the default resolution seems too low, so go on in and crank that puppy up a few notches; the M2 Pro can handle it.

    One nit on the trackpad — I have it set (like a lot of people) so you can do everything with tapping, no clicking required. But NMS doesn’t know that, you have to click to shoot (or with two fingers to exit).

  5. Because we’re a multi-geek household, we have three locations with CalDigit Thunderbolt hubs and 4K screens; one LG, one Samsung, one Dell. None of the screens are terribly recent. NMS runs fine on the LG, haven’t tried the Dell, and on the Samsung (which I think is the oldest) after a little while playing it dropped into unusably-slow territory. But I haven’t proved that wasn’t a network storm or some other variable.

    On both the 4K screens I ran at full native resolution, no problem.

  6. Controls are mostly nice. WASD works, right-click or Esc to back out of whatever. Left-shift plus W for accelerated travel is a little clumsy. Looks like you can remap the controls but I haven’t yet.

  7. A few YouTubers are starting to work on how far you can max out the resolution and other graphics and still have a good frame-rate without melting your computer. There are lots of settings, including a few that twiddle Metal parameters. I haven’t really investigated this stuff except for boosting resolutions, I’ll keep an eye on the gamer-geeks’ research.

  8. Ha-ha, late bug report discovered in writing this: The Steam screenshot manager is hopelessly broken for NMS screenies.

Feeling guilty

I haven’t blogged about the new laptop because what’s to write about? It’s a Mac. It runs all the same software my Intel MBP did. Lightroom is a little faster flicking from photo to photo. I used to keep a charging cable at the places in the house where I spend my evenings, but I don’t need them any more because the charge it gets from at-work time on the Thunderbolt hub lasts through any given evening.

It’s a lot faster at running unit-test suites, and especially at building big open-source packages.

Near as I can tell, I never come close to maxing out the memory, every time I look at Activity Monitor, there are a few gig free.

Which has made me feel that this purchase had been pure self-indulgence, wasted money. That I did it just because I’m a Big Computer Guy and so I ought to need a really Big Computer.

Which is kind of boring. But it is interesting that, near as I can tell, we’ve arrived at a point in history where the basic entry-level computer (in Mac-land, the Air) is enough for anyone who’s not a professional video editor or 3D model-builder. Probably good enough for me. For me, on the evidence, the recently-announced 15" Air would have been both a cheaper and a better choice.

Except maybe for games.

Big game

I can report that No Man’s Sky makes this puppy breathe hard. I’d never noticed it had a fan before, but wow, it sure does, and not a quiet one either. It’d never been detectably warm before but after an hour or so of NMS, it’ll sizzle your fingertip.

Mac Activity Monitor with No Man’s Sky running

A couple days ago, after supper I holed up in the comfy chair in the media room to see if the game would work on the built-in screen with no mouse (as noted above, it does). Um, I got stuck wondering around a pretty planet and suddenly it was an hour later and the Mac was hot and noisy. Counterintuitive anecdata: It seems to get a little more hot-and-bothered running the game on battery than while plugged in.

I ⌘-tabbed away from the game and was glad I did because the battery was heading for the red. To be honest, since I got this thing I’ve gotten out of the habit of even looking at the battery meter because it’s just never an issue. Fortunately, the much-disused power cord behind where I sit was still there.

Now remember, I’m still running mostly on default settings and there are a lot of graphics settings that I could, but haven’t yet, switch over from “Good” to “Ultra”.

Why do people buy high-end personal computers?

A very few people buy them to edit video and do other pro-level media work. The rest — a much larger group — are gamers. The gamers have been Mac-oblivious basically forever.

That can change now. Feels like a no-brainer that the number-one thing Apple could do to boost the Mac business would be a full-court press on the gaming industry.

Anyhow, No Man’s Sky works great on modern Macs. I recommend it.

It’s been a long time…

A long time since I’ve had a computer that I want to use every day for work, and can also play serious games on.

AR Vision 10 Jun 2023, 7:00 pm

“AR”, as in Augmented Reality. “Vision”, as in not what Apple’s selling. It’s been a decade now that I’ve thought that AR will be a next Really Big Thing, once the technology to build it is here (which it isn’t). Since Meta and Apple and plenty of startups are muddying the waters around what AR might mean, here’s a vision of the AR mid-game. Not the end-game, since that’s unimaginable, but still a long way out from here.

Side-trip: Why not AppleVision?

The Vision Pro looks like a cool piece of gear. There are two apps where I can see coughing up the $3500 right now today. First, giving my Mac an infinitely big screen. Right now I’m working on a project where I’m constructing this huge and complex document which sources its content from my brain, supported by multiple other big complex documents and a whole lot of browser tabs. The amount of time I spend doing ⌘-Tab and ⌘-` to get at the window I want is highly annoying. I gather that the Vision Pro would let me have a dozen full-page windows scattered in fixed spatial positions where I could just look/finger-tap for access. Tasty!

Second is the sports experience. I’d totally buy one for third-base-dugout or soccer-pitch-penalty-box immersion. I’m pessimistic though. The world’s richest sports organizations — Britain’s EPL, India’s IPL, America’s NFL — typically can’t manage to deliver even high-quality 1080p, let alone 4K, so I see no grounds for optimism that they’re gonna build the expensive ultra-high-bandwidth infrastructure to boost sales of multi-kilobuck headsets.

I notice Apple hasn’t said how much bandwidth one of these things needs to drive it. Dual 4K monitors running at 90Hz, that’s a whole lot of bits.

Let’s turn our attention back to AR.

The “R” in AR

It stands for Reality. A certain amount of your reality (and mine) happens at home where an I/O helmet might be appropriate, but the rest happens out in the real world, and I’m totally not going there faceplated. Consider Dan Morrill quoting Neal Stephenson’s Snow Crash:

Gargoyles represent the embarrassing side of the Central Intelligence Corporation. Instead of using laptops, they wear their computers on their bodies, broken up into separate modules that hang on the waist, on the back, on the headset. They serve as human surveillance devices, recording everything that happens around them. Nothing looks stupider; these getups are the modern-day equivalent of the slide-rule scabbard or the calculator pouch on the belt, marking the user as belonging to a class that is at once above and far below human society. They are a boon to Hiro because they embody the worst stereotype of the CIC stringer. They draw all of the attention. The payoff for this self-imposed ostracism is that you can be in the Metaverse all the time, and gather intelligence all the time.

Wanna be one of those? Me neither.

So anything that claims to be meaningfully “AR” needs to be usable out there in public when interfacing with, you know, reality.


So here’s the pure vision, the one that’ll be the big winner eventually. You’re doing something out in the world; walking in a park, shopping in a store, shooting baskets, painting a room, going to lunch. Not wearing a helmet. Reality is what you see when you look around you. At some point, you’ll be able to choose to see it plain or augmented. Let’s totally ignore whether you look through glasses or a tablet or a magic magnifying glass or a phone or cyborg eye-socket implants.

Augmented how? Here are ideas.

But wait, “augmentation” is a long klunky word. Let’s say “aug” for short (plural: augs, verb: to aug, participle: augging).

Art augs

At dusk, you’ve gone for a walk in a park that has lots of big trees because you’ve heard that it has good augging. A few minutes in, you get an aug notification: Natty Trunks. You give the go-ahead and a slow spacey dub of Bob Marley’s Natty Dread fades in; all the trees exhibit a glowing ring around their bases, in a variety of blues and blue-adjacent turquoises and violets. Then they dance, the color pulsing up the trunk, most following the bass (it’s Dub!), others the drums and horns. Snatches of vocals are highlighted by funky multicolored snakes flowing through the dark leafy canopy.

You look across the water at Downtown’s high-rises and get a hot-trending-aug signal. Accept it, and there’s a huge shabby grey-haired woman pushing a shopping cart across that skyline, stooping to look in windows and offer foul, profane, hilarious comments on what she says she sees.

The next Banksy could be an augger. Hey, he’s not that old, the current Banksy might give it a try.

Shopping aug

You visit Costco on your way home from work, in a hurry. Your shopping list says “Peanut butter, toilet paper, gin.” You’re smart enough to avoid Costco’s own aug, which will route you inefficiently past attractive distractions.

So you fire up the FastShop aug you’ve subscribed to for years and suddenly there are garish neon signs floating in the air for your three targets. It’s your call how you get there, if you want to head by the cake counter go ahead. But Costco is definitely less painful this way than it is now.

Graffiti augs

What people seem to like best on the Net is conversation; mostly now breathless little swirls of prose not designed to hold meaning for more than minutes. So you can chat-paint on fences or rocks or dogs. And have them dissolve in seconds or, for a particular message that matters, be there permanently but only for the person you sent it to.

Map augs

This is just what your current map app does, only the turn-here arrows and destination ETA and so on are in front of you. In fact, there are cars with heads-up floating map displays; I’d call that (very basic) real AR.

And, like in today’s online maps, there is plenty of space for ads and reviews that could float up from anything you look at.

Which brings me to…

Advertising augs

Offer the advertising profession an opportunity to paste their stuff on every freaking surface and they’ll go nuts; it’s the Holy Grail. They have a problem in that nobody wants to see ads. I don’t know they solve that problem, that’s why they earn the big bucks.

Game augs

This is easy to predict because it already exists. Niantic has led the charge with Ingress and Pokemon Go and I just got email advertising a new offering, “Peridot”. Niantic offers very, very weak AR, but it is AR. And the games attract millions and apparently made Niantic a lot of money, even in their current state.

One of the reasons that worked is that you didn’t have to wear any headgear, you could just stroll around and play on your phone, although I used to play on my Nexus Seven, which looked maybe a little weird but gave me quite an advantage.

War augs

Well, obviously. But I’ve never been in a war so that’s all I’ll say.

A weaker form of war is cops vs protesters. I will be highly unsurprised if the social conflict between climate-justice activists and uniformed petro-state defenders leads to some pretty gruesome street confrontations before our society sobers up and starts attempting to save us not burn us.

In that kind of situation I’d sure like annotations about where surveillance cams are and which way the cops’ tactical vehicle is heading.

Aug hardware

For some of these scenarios, a phone-sized device would work just fine. I used to own one! It was a pre-release beta of what became the Tango platform. It was an Android, only two or three times as thick, with LIDAR and IR and an ultra-wide-angle. You could run Java code on it that did primitive AR; filling your space with spheres, I seem to recall, or piloting a little virtual drone around the room.

It was a standard Android-style Java API. I got some basic code running and was excited at hell. But then Google dumped me because I wouldn’t move to Mountain View.

I mean, the hardware sucked. It ran slow and hot and the software was flaky as hell. Still felt like the future.

I have a feeling that for serious augging — like going to an art show or a nature tour — the ideal form factor would be, essentially, an iPad with a handle. So it’d be easy to hold up and look through.

Software problems

Let’s agree that the hardware you’d need to support a real AR experience is starting to flicker into existence, because the Vision Pro has most of it. Let’s assume that that hardware can eventually be fit into an iPad-with-handle form factor. (Not soon I think, but eventually.) So, what should software dweebs like me thinking about?

I think discoverability is an interesting problem. Let’s assume that at any reasonably popular location, there are going to be lots of augs around, more than anyone could look at, and they’d get in each others’ way. So you’d need augging filters that are location- and tag-sensitive. Would that be enough?

Then there are the actual payloads. Obviously you’d need some real horsepower in your device, and so it seems like the logical thing would be to ship augs as scene graphs? But how do you express the relation to the local geometry? I’m totally out of touch as to whether there are useful standards in that space? I guess looking at the Apple visionOS APIs would be useful.

AR is gonna be huge, I’m sure of it. But you won’t need to wear anything that covers your face.

Pixel 4 ➔ 7 9 Jun 2023, 7:00 pm

I just replaced my poor tired battered old Pixel 4 with a garish “Lemongrass” Pixel 7. I just don’t care that much about mobile technology any more — what was the last time a new phone changed your life? — but jumping four years and three generations ought to be newsworthy, no?

Pixel 7

Disclosure: Big fat farmer fingers.


First question: Why a new phone at all?

My four-year-old Pixel was fast enough, small enough to be comfy in any pocket, camera still one of the mobile greats. But the battery was wearing out and the USB-C socket was pretty well done for. It’d charge most times from most wires, but only if you didn’t breathe on it. And keeping Android Auto running was a real problem, because my car doesn’t do AA-on-Bluetooth, so pretty well any serious bump in the road stopped the music.

Next: Why Pixel? It’s over a decade since I left the Android group, but my heart’s still with that platform. And I still decline to use a general-purpose computer where I have have to get its manufacturer’s approval to give away any code I might write.

Also I’m a paying YouTube Music customer and Android Auto addict.

Last question: Why the Pixel 7? To be honest, mostly because MKBHD said so (and here). I’ve pretty well outsourced my thinking about mobile devices to him because he seems to share my technical tastes and is fun to watch.

His advice was “The 7a is pretty good but the 7 is better even if it’s six months older, and when it goes on sale it’s a great deal.” So I watched and pounced when it went on sale.

Is it better?

Yeah, it’s a little faster. I doubt I’d have noticed the speed bump from 4 ➔ 5, 5 ➔ 6, or 6 ➔ 7, but from 4 ➔ 7 you can feel it. I guess the 90Hz screen helps.

The display’s not just faster, it’s better. At least that’s what my eyes tell me when I look at my pictures.

The big suprise was Android Auto. It syncs up with the car faster, and Google Maps got a big shot in the arm; sharper-looking and better-positioned on the screen.


It’s too big, doesn’t slide easily into the car’s mobile holder. I guess I’m in a tiny minority in liking smaller devices. Oh well.

The fingerprint reader is meh and is stupidly on the front of the phone, unlike my fingers, which go on the its back.


5G? I remain skeptical. We’ll see. I spend a considerable amount in the boat/office tethered to the hot spot; we’ll see if that improves.

Well, and of course the camera. I’m 100% sure I’ll have more to say about that, and will be sharing its fruits.

The real lesson

Phones are nowhere near the white-hot center of tech innovation any more. I was there when they were and boy, was it ever fun. Golden ages all end.

Parasound Halo P 6 Preamp 3 Jun 2023, 7:00 pm

I just bought one of these things and, while the high-end audio community is small, every time I post on the subject, I get stimulating commentary. In particular, anyone who’s interested in the state of the audio DAC art might want to read this. Also there’s a little bug in the P 6 manual that I’ll mention to help future Web-searchers. First things first: The P 6 is a pretty great product, and reasonably priced, and might fit into a lot of peoples’ homes.


I listen to analog music on vinyl, and digitally via a Mac, which has 290G of music representing my former CD collection and also runs YouTube Music. If you sneer at vinyl, here’s why you’re probably wrong. If you thought “Huh, YouTube Music?” here’s why you might like it.

So, what happened was, my pre-amp was a thirty-plus-year-old Linn Kairn, which was a pretty hot item back in the Nineties. Notably, Linn products always have good phono stages. Which I need because I have a very-low output cartridge. For digital I was taking the USB out of the computer and into a fourteen-year-old Benchmark DAC1 USB, which probably cost hundreds of dollars. Both digital and analog music sounded very good, assuming the recordings were good.

Anyhow, within a few weeks, both analog and digital started sounding skanky, with various flavors of static. Something had gone wrong in the ancient preamp and (the symptoms were spooky) maybe the Benchmark too.

So I went searching for a new preamp with a well-regarded phono section, and several trails led to the P 6, and the price was fair, and now all the music sounds fine.

About the P 6

Here’s what it looks like, front and back.

Parasound Halo P 6, front viewParasound Halo P 6, back view

Holy crap, is there ever a lot of stuff on that baby’s back.
(Too much, in fact — see below.)

If you want to read a whole lot of breathless prose about its wonderfulness, check the product page.

What’s unique about it? First, the volume control: A neat analog resistor ladder setup, and it just feels cool in your fingers, and uses the whole 100-point volume range smoothly. Second, the fact that the founder of Parasound is John Curl, one of the world’s more famous phono-stage designers. Finally, the fact that it comes with a well-reviewed remote.

And then there’s the DAC issue — would this thing’s built-in DAC be competitive with the pretty-elite-for-its-day Benchmark it was replacing? More on that later.

What’s good

The sound is great. A bit better than the decades-old predecessor on the analog side; digital is a wash.

The remote control is brilliant, has a white button you can see in the dark that makes the other buttons light up, has controls for everything you need. Also, it lets you fix the volume the thing turns on at, so you don’t accidentally get last night’s party volume in a peaceful room.

The subwoofer setup is terrific; you can set or disable the crossover for both main and sub outputs, so you don’t need to use the crossover on the subwoofer, which probably isn’t as good.

It was dead easy to set up.

What’s imperfect

There are treble/bass controls, superfluous among audio weenies, but they’re easy to disable. It doesn’t look as sleek and elegant as the Linn it replaced. And the Linn remembered different boost levels per input.

Also, isn’t having five line-level and four digital inputs stupid overkill in 2023? I think I’m totally typical in listening to vinyl and computer digital and not much else. I mean, CD players and tape recorders and FM tuners still exist, but I totally fail to understand who could need all these. The preamp is way wider than it needs to be.

The DAC issue

As I mentioned, I’m plugging the computer’s USB output into the preamp and using its built-in DAC. That Benchmark cost hundreds and, while well-reviewed, was not felt to be in a class with the really high-end DACs, which can go for $10,000 and way, way up. Am I confident that that DAC can do the music justice?

What is it, anyhow? Turns out Parasound tells you right there on the product page; it’s an ESS Sabre32 Reference DAC (ES9018K2M) — hmm, that data sheet has “CONFIDENTIAL” in big letters at the top of the page. How expensive is it? Reasonable question, and a quick Web search reveals the answer: $12.00 (quantity 1, $8.28 for 100 or more). OMG I’ve been robbed! This is a cheap piece o’ junk! I want my money back!

Wait just a second. First of all, you still have to collect the bits from the USB, feed them (and power) to the DAC chip, and route the analog signal coming out to the pre-amp circuitry, so a digital path costs more than just its DAC chip. Well, but OK, that still feels like a pretty basic part, not the thing for high-end audio.

You might think that, unless you’ve been reading the Archimago’s Musings blog. Archimago is a cynical, skeptical, and highly technical music lover and audiophile who blogs, like me, from Vancouver. Consider MEASUREMENTS: Topping D10s - an inexpensive high performance basic USB DAC with S/PDIF outs. And on "perceptibly perfect" DACs, in which Archimago digs insanely deep into a $100 consumer DAC and demonstrates, pretty conclusively by my read, that all respectable modern DACs sound like all the others.

If you’re going to build a consumer DAC retailing at $100 or so and make money, your DAC-chip budget is probably around $10. And there’s very little evidence you can do better for more money. Which means that my opinion, expressed in 2012, that D-A is hard to do well, may have been wrong then and certainly is now.

It seems that Moore’s Law and the relentless progress of semiconductor technology have got us to a place where DACs, good enough ones not to be the quality bottleneck in any sane audio system, have become a commodity.

Parasound P 6 turn on volume “Vol-Set” doesn’t work

[Sorry, that section header is SEO to get this indexed to help people with a problem I had.]

In the manual, to set the turn-on volume, it says to “Press the Vol-Set button” then “Press the Power On button”. Do they mean hold down one while you press the other? Do they mean press one and then the other, slowly and deliberately? None of those things. Press and release one, then the other, in a pretty quick cadence (a second or so) and it’ll work.

[Pardon the interruption.]

A good audiophile product

Look, there’s no denying that audiophilia is infested by snake-oil salespeople pushing things like those $100K DACs I mentioned. And exotic cables. And there’s more. But there are islands of real value, and the products are well-built and last decades.

And a nice audio system with good speakers and electronics just sounds totally, unsubtly better than your Sonos or Smart Speaker or Bluetooth blob. Like by really a lot.

While I was getting the subwoofer settings tuned up I put on Keith Jarrett’s The Köln Concert and just sat in front of the speakers, totally stuck, for most of the 26 minutes of Part 1. It’s wonderful music and it sounded so, so, great. I can’t help loving this hobby.

CL XLIV: Long Tree Lenses 27 May 2023, 7:00 pm

We had our first real recreational visit to the cabin on the May long weekend. I pointed lenses at trees and came away with pictures that charmed me but are unsatisfactory. Which offers an excuse for a bit of camera geekery. No, even better, lens geekery.

But first, the pictures. Whether you’re on the beach, or up the hill looking out over the ocean, sometimes you should ignore the ocean and look up instead.

Looking up at a big Douglas Fir

That big Douglas Fir is perched on rocks right at the water’s edge and frequently serves as a bald-eagle eagle perch and launchpad. I greet it whenever I pass it going uphill because it has a special place in my heart.

That photo, and the next, are taken with through Fujifilm’s little “kit” 18-55mm f/2.8-4 lens, previously blogged about here where I noted that it’s one of Fuji’s oldest and cheapest lenses, and while (unlike some other Fuji X-lenses) it doesn’t make things look magically better, is amazingly versatile and accurate and I use it a lot.

OK, let’s point that 18-55mm across Howe Sound at Gambier Island as dusk falls; you’re sitting roughly here looking at this.

Looking north at Gambier island as the sun sets

A bit of sun is getting through the clouds, lighting up the trees in the foreground, leaving the mountains opaque. I think that sunlit bit is pretty and want a closer look. Notice that little point near the bottom right corner with a few boats in view? Here you go.

Coastline of Gambier Island near Gambier harbour

This is taken with my decades-old Tokina SL-400 f5.6, whose acquisition was blogged in 2009 and its application to Fujifilm mirrorless in 2014.

But… that photo has an abstract look, where by “abstract” I mean “out of focus”. Mind you, it was dusky, the air was hazy, and the target is 2km (1¼ miles) away. But still.

If you’re trying for arty abstraction, well then no problem.

A forested mountainside at dusk, streaks of sunlight across ranks of trees

“But they’re out of focus!”
“Bah, Henri Cartier-Bresson said
‘Sharpness is a bourgeois concept’, so there.”

Glancing at that 2009 blog piece made me realise that I’ve been resisting lashing out on a decent long lens for fourteen years now, and if I plan to continue sitting at the cabin pointing a camera across the ocean, maybe I ought to unclench and send some money to Japan.

But OMG the choices! From Fujifilm, there’s the 70-300 f/4-5.7 (fabulous for the money, bokeh a bit grungy), the 100-400 f/4-5.6 (sharp all the way out, but an extra thousand bucks and weighs a ton), and finally the 150-600 f/5.6-8 (omg 600mm, very slick, white barrel). Fuji also offers tele-extenders to multiply the focal length by 1.4 or 2.0. Then from Tamron there’s a 150-500mm f5-6.7. The prices seem kind of volatile; right now here in Canada, the 100-400 is just slightly more than the 150-600 (?!) and the Tamron is a lot cheaper than either. If you care about this kind of thing, Cris Photography has a maniacally complete comparison.

It helps that while my cameras are a couple of generations behind the current, none of the latest Fuji camera bodies are calling out to me. Hm… stand by, maybe my pictures of what’s across the ocean will become less, uh, impressionistic.

Page processed in 1.342 seconds.

Powered by SimplePie 1.3.1, Build 20121030095402. Run the SimplePie Compatibility Test. SimplePie is © 2004–2023, Ryan Parman and Geoffrey Sneddon, and licensed under the BSD License.