Manton.org: Last Week


Dark forest of the web

Jeremy Keith follows up on fighting AI bots, quoting a couple things I've said. He closes with:

There is nothing inevitable about any technology. The actions we take today are what determine our future. So let’s take steps now to prevent our web being turned into a dark, dark forest.

I agree with these statements in isolation. Maybe what we disagree on is whether AI is inherently destructive to the web, so all AI bots should be stopped, or whether we can more narrowly minimize AI slop from spreading.

Even without AI, Google referrers to blogs have also been going down, with Nilay Patel arguing that we are heading to Google Zero. In other words, Google is already taking more from the web than they are giving back.

The solution to that is Google alternatives that get us back to the style of old-school search engines: "10 blue links", with a focus on real blogs and news sites, weeding out content farms and other spam shenanigans. We have spammers creating accounts in Micro.blog every day, trying to pollute the open web. It's depressing. I want to create more tools that highlight human-generated content, like the audio narration we added.

Jeremy didn't quote one of my responses about trying to insert text into posts to confuse bots, so I'll add it here for completeness. I replied with:

I think it's a bad precedent. It's already hard enough for legitimate crawling because of tricks that paywalls use, or JavaScript that gets in the way. Mucking up text and images is bound to create problems for non-AI tools too. There's gotta be a better way to address this.

I viewed source to see how Jeremy is handling this on his blog. His technique doesn't appear to be causing any problems with Micro.blog's bookmarking, which saves a copy of the text in a blog post for reading later, because the prompt injection is outside the <article> and h-entry for the post. But it's not hard to imagine a well-behaved, non-AI bot getting tripped up by this.

I don't think technological determinism is an appropriate summary of my thoughts. There are a bunch of questions to resolve around generative AI, for sure, including rogue bots, but there's a lot of potential good too.

Audio 2024-07-01


I read parts of the Trump immunity decision, skipping around to what Roberts wrote and the dissent. The main opinion is dangerous. This court is undermining what we believe in as a country. Need a strong response from Biden. He should have "discussions with Justice Department officials" about it. 🇺🇸

2024-07-01


The news can be very deflating. It's critical to figure out small ways we can make a difference. Frustration should lead to action, not collapse. As Biden said the other day: "When you get knocked down, you get back up." 🇺🇸

Audio 2024-07-01


I always feel better after shipping new features for customers. Today, expanded our email newsletter support and added a new overview help page for it.

2024-07-01


I've gotten out of the habit of adding audio narration to my blog posts, so took a few minutes to add audio to this longer post today about AI bots.

2024-07-01


Audio snippets are fun. I added audio to this short post today too. To me, it underscores that my blog is my own space, not a wall of monotony on a silo. Every blog page adds a little something to the web.

2024-07-01


Happy for Derrick White on his 4-year, $125 million extension with the Celtics. He plays hard, knows the game, unselfish, and gets better every single year. Miss him on the Spurs. 🏀

2024-07-01


Just watched the President’s short speech reacting to the Supreme Court ruling on immunity. Joe Biden is a good man and loves this country. It’s that simple. He was granted new power by the courts today and he refused it. 🇺🇸

2024-07-01


It’s almost funny that I’ve had so much praise for Biden because I didn’t support him in the primaries in 2008 or 2020. But he has won me over. 🇺🇸

2024-07-01


At the coffee shop, glanced up at the TV and there's a news segment on "How To Avoid Sharks". It's not fair for me to judge everything they might've been covering based on 5 seconds, but is that the best journalists can do today? There's a real crisis in this country based largely on misinformation.

2024-07-02


Finally experimenting with Bluesky's Starter Packs. I created a test pack with a handful of people in the suggested list. When signed in, love how it can be viewed as a timeline of posts. Nice touches to this implementation that I think we could borrow for blog-based recommendations / blogrolls.

2024-07-02


Last week's debate was a wake-up call for our muddled framing of the issues at stake this year. There are only two things we should be talking about: abortion and democracy. Every other question can have a quick answer and then pivot to those two things. 🇺🇸

Audio 2024-07-02


MacStories has written an open letter asking for AI regulation:

...a wide swath of the tech industry, including behemoths like Apple, Google, Microsoft, and Meta, have joined OpenAI, Anthropic, and Perplexity, to ingest the intellectual property of publishers without their consent, and then used that property to build their own commercial products.

This letter is a great idea. We need regulation and an update to copyright law. I don't like the repeated use of the word "theft", though. It risks oversimplifying the gray areas in LLM training (and Google crawling).

2024-07-02


Texas Sage while out walking. Can’t tell in the photo but the bees are happy too.

2024-07-02


I'm a little puzzled about why the new proposed fediverse:creator tag is only for approved web sites. Just a slow rollout? Clearly it's most useful for news organizations with multiple writers, where there's not a one-to-one mapping between author and fediverse account.

2024-07-02


New laptop sticker. Always iced coffee.

2024-07-03


We are starting to open up Micro.blog's notes feature to our standard plan. Private notes with end-to-end encryption and sharing. It used to be limited to Micro.blog Premium. On the web, you'll see a "Notes" link in the sidebar. Will be fully rolled out with updates to the native apps soon-ish.

2024-07-03


Good new ad from the Biden campaign:

The same Trump Supreme Court that overturned Roe v. Wade, ruled that the President can ignore the law, even to commit a crime, because Donald Trump asked them to. He's already led an insurrection... Donald Trump can never hold this office again.

🇺🇸

2024-07-03


After today's blog publishing change, I'm seeing posting about twice as fast for my blog. Your milage may vary, depends on whether replies are included on your blog. I've also done some tests with more CPUs and plan to upgrade a few servers if I can bear the cost.

2024-07-03


There are a lot of interesting stats in this Cloudflare blog post about AI bots. I still worry that we might over-correct when blocking LLM training. For example, CCBot is mentioned, but Common Crawl goes back 15+ years and has a variety of non-AI uses.

2024-07-03


John Gruber posting to Threads:

I feel great about Kamala Harris as the Democratic nominee. Go back and watch her in Kavanaugh’s confirmation hearing. She’s smart, sharp, aggressive, and emotive.

Hillary Clinton the day after the 2016 election:

I know we have still not shattered that highest and hardest glass ceiling, but someday someone will, and hopefully sooner than we might think right now.

If Joe Biden steps aside, Kamala Harris should be the nominee. She was part of the ticket we voted for in the primary. She's been tested and is ready. Still, it's Biden's call. 🇺🇸

2024-07-03


Jason Fried introducing Writebook:

It's a dead simple platform to publish web-based books. They have covers, they can have title pages, they can have picture pages, and they can have text pages. […] Writebook is our love letter to truly independent, zero-cost web publishing on the open web.

I'm playing around with this. I might've used it for my book if I hadn't already adapted a Micro.blog theme for it.

2024-07-03


After I blogged about a new text editor for Micro.blog, I ran into a couple tricky problems and work stalled. If 37signals does open source their Writebook editor, which I believe is the plan, I think I could use it with a couple tweaks. It's pretty close.

2024-07-03


Finished reading: The Assassin's Blade by Sarah J. Maas. A set of novellas that take place before the main series. 📚

2024-07-03


Nick Heer summarizes the OpenAI sandboxing news, initially covered by The Verge. I think the "security risk" of this is largely overblown. Many apps (including my own!) store files on your Mac with the assumption that no one else has access to your computer.

2024-07-04


What's bothering me this week is that I'm feeling like I felt when we were in limbo between election day 2020 and when the votes were counted a few days later. It's probably going to be fine, but maybe it won't be. 🇺🇸

2024-07-04


Patriotic delivery robot. Kirk Watson and Lloyd Doggett spoke briefly after Mueller’s parade. Paraphrasing Doggett: we have a choice this year between democracy and a path leading to autocracy. 🇺🇸

2024-07-04


A new spin-off project from omg.lol: Spake. This is similar to what we were trying to do in Micro.blog with microcasting. Short-form podcasts or audio narration for posts that are much easier to get started with.

2024-07-04


I updated the Micro.blog for Mac app today. Several improvements including an easy way to just see draft blog posts.

Screenshot of Mac app showing drafts tab, publishing status, and notes option in the sidebar.

2024-07-05


Even folks who assumed the best intentions with Apple's DMA compliance can surely see that the iOS "notarization" process is in violation of any reading of the DMA. Apple has created a new tier of app review. It's wrong. See more with Epic Games on 9to5Mac.

2024-07-05


Back from the early screening of Fly Me to the Moon at Alamo — fun movie! — and watched the Biden interview with Stephanopoulos. Not bad. Wish the convention was sooner so we could officially nominate either Biden or Kamala Harris and be done. 🇺🇸

2024-07-05


We subscribed to the Alamo Drafthouse season pass for the summer. Makes it easier to decide to go to pretty much any movie. 🍿

2024-07-05


The New York Times, The Washington Post, and other major news outlets should scrap their opinion sections. There are more than enough places on the web to hear what people think. Cable news is already overrun with non-news. Let's refocus on reporting, not influencing.

2024-07-06


The world has changed since The New York Times was founded in the 1850s. It used to be that opinion sections and letters to the editor were great places to hear a diverse set of perspectives. Now the whole web is that. Journalists are straining their credibility when we most need the facts.

2024-07-06


ActivityPub paper cuts

Everyone who has implemented ActivityPub from scratch knows that there are implementation-specific quirks that trip up developers, making compatibility between apps more difficult. Some of these issues are being clarified by the Social Web Community Group. Test suites will help too. Micro.blog has had ActivityPub support for years and we're still finding edge cases.

With Ghost making progress on adding ActivityPub, I tried following their first test account today and immediately ran into a small issue. It's simple so I think illustrates the kind of problem that developers might hit. You only need to know what JSON looks like to follow along.

When you download an actor's profile, you get a bunch of fields like the inbox to send requests to, the user's full name, and the user's profile photo. The photo is set in a field called icon (or image). If you skim through the ActivityPub specification, you'll see this example:

"icon": [
  "https://kenzoishii.example.com/image/165987aklre4"
] 

Pretty simple. The field is an array with a single URL to the image. But most implementations don't follow that example. Mastodon and Micro.blog both use something like this, which is in the more complete ActivityStreams spec:

"icon": {
  "url": "https://micro.blog/manton/avatar.jpg",
  "type": "Image",
  "mediaType": "image/jpeg"
} 

Which one is correct? Both, of course! Back to the ActivityPub documentation for icon:

A link to an image or an Image object which represents the user's profile picture

Now let's check out what Ghost is doing:

"icon": "https://ghost.org/favicon.ico" 

This is a third variation of the same field, this time using a simple URL value. Not an array and not an object with multiple fields.

As programmers, we often try to follow Postel's law: "be conservative in what you do, be liberal in what you accept from others". In other words, we should gracefully handle all these different JSON responses, but we should only send out the best one, the one that is documented by the standard. And yet the standard is itself not very explicit about this.

I'm not attempting to blame anyone for this. Certainly not Ghost who has just barely got their implementation up and running and will likely have many changes coming in the next few months. But if you imagine this icon variation spread out across the whole suite of specs — not just ActivityPub but ActivityStreams, WebFinger, HTTP Signatures, and others, with potentially dozens of minor differences — you see why interoperability has sometimes been a challenge.

2024-07-07


Mark Gurman says that some of the core parts of Apple Intelligence will arrive with iOS 18.4 next year. This is sort of consistent with what Apple said at WWDC, but I think users will be confused that a new Siri is rolling out piecemeal.

2024-07-07


Enchanted Rock. It’s too hot today so I can’t be bothered to hike to the top, but it’s still nice.

2024-07-07


Manton Reece @manton