Year in books for 2023
Here are the books I finished reading in 2023. I thought I might finish another one this weekend, but it’s not going to happen, so might as well post this today. Happy New Year!
Here are the books I finished reading in 2023. I thought I might finish another one this weekend, but it’s not going to happen, so might as well post this today. Happy New Year!
I like John Gruber’s airport lounge analogy for iMessage. Michael Tsai takes it one step further to underscore how Apple’s control still twists what is possible.
I’m sure I’ve blogged about this before but deploying Micro.blog is like a hilarious 15-step process. So dumb! And yet I do it at least once a day usually. Eventually it’ll be worth burning a couple days to automate it.
I said during Micro Camp back in May that I hoped Micro.blog would be open source by the end of the year. Didn’t happen, too much else to do. Still have plans along those lines, as soon as I can carve out time to get the structure for everything set up correctly.
Feeling like it’s time to travel again. For 2024, I’m going to start a new challenge: visit all of the 88 state parks in Texas, spread out over a couple years. Will try to camp at many but not all of them. Blog posts and photos along the way. 🗺️
Blogs and social networks talking to each other is still kind of magic. If you’re on the latest version of Micro.blog’s Alpine theme, replies from Bluesky can now flow into Micro.blog via Bridgy. We’ll be updating all the blog themes to support this, or you can modify your theme.
This works by signing into Bridgy so that it knows how to link your blog and your Bluesky account. Then if you have cross-posting enabled to copy blog posts to Bluesky, Bridgy will look for replies and match them up to the canonical version of the blog post. It then sends a webmention to Micro.blog.
In the Alpine theme, I’m telling Bridgy about this relationship using the u-syndication
microformat. I have it hidden for now, but it can just as easily be an icon or text link to Bluesky:
{{ if .Params.bluesky }}
<a class="u-syndication" {{ printf "href=%q" .Params.bluesky.url | safeHTMLAttr }} style="display: none;">Also on Bluesky</a>
{{ end }}
Eventually this will all be more automatic. Replies back to Bluesky aren’t possible yet, so you’ll still need to click through to Bluesky to reply. But even now if you don’t mind tinkering, a lot is possible. It’s cool to see replies from Bluesky just show up like normal replies in the Micro.blog timeline. Because Bluesky uses domain names for usernames, they fit naturally into the way Micro.blog thinks about the web.
“I just had this weird feeling that my money wasn’t safe here anymore.” — Sneakers
Some people wondered about my vague microblog post last week. I didn’t post the details because I didn’t know everything about the situation yet, but now I do.
After 16 years in the same house, we moved this year, putting our old house on the market. The kids had all moved out. It was a good time to downsize, move a little closer into town, and maybe simplify. We had accumulated so many things, including thousands of books which I didn’t want to part with. The easiest way to solve this seemed to donate everything we could and then just box the rest up and rent a storage unit somewhere, to give us time to move and go through things more slowly.
This mostly worked out great. We recently downsized the storage to a smaller unit, because almost everything had been moved.
Fast forward to last week, I got a message from the storage facility that the lock on our unit needed to be replaced. No other details. We went up there and discovered a new lock on our door. The metal around the door was a little bent out of shape. I was able to point my camera into the grate at the top to look in. Someone had clearly broken in and messed everything up. Boxes were moved and at first it looked like half of our stuff was missing.
I often reflect on how lucky I’ve been in my life. Very few regrets, only a couple true setbacks to complain about. No one has ever robbed me! (Except identity theft to go on a shopping spree in my name, which was annoying and a huge waste of time, but fixable.)
What hit me hard about this was the irreplaceable stuff. I was imagining photos that were never scanned, family videos on VHS from my grandparents, my kids' old artwork from school, random documents, some stuff I’ve never even seen because I kept putting off digitizing it. I don’t worry about losing laptops, tech gadgets, or books. It’s the stuff that money and insurance can’t fix that hurts.
The next day I got to meet with the manager and get inside our storage unit. Turned out someone had made a run on multiple locations. They rented a unit to get an access code for the gate and elevator, then I guess cut locks or used a crowbar to open whatever they could. Other renters were there like I was, trying to understand what in their stuff was missing.
This is where the story ends with good news. Sorting through our stuff, I think everything actually important remained, just tossed around, boxes ripped open. The thief even skipped over old MacBooks and iPods. Maybe they were looking for guns? TVs to pawn? Who knows.
I’m still trying to understand what is missing, but even worst case now it might be a few inconsequential things or nothing at all, not what I had feared. Mostly a happy ending, and lessons learned. Please make copies of everything that matters.
Learning from this blog post that GitHub has 1200 MySQL servers.
Finished watching the Dragonsteel spoiler Q&A. It took a few days, off and on. I’ve read about 20 of Brandon Sanderson’s books and I still don’t even understand many of the questions! Love the super fans. 📚
In Evan Prodromou’s list of big and small fediverse traits, I lean more to big, but I don’t agree with everything in the big list. As one example, I think billion-person servers would recreate many Facebook-like problems. Evan’s list is great for sparking discussion, though.
I was thinking about Nick Heer’s post about the current top few social networks to replace Twitter, and specifically performance. I feel like Threads and Mastodon are fast, but it’s true that Bluesky is really fast. Wonder if federation performance will end up being AT Protocol’s strength.
Nitpick with some modern web services: I don’t like the trend of expiring URLs, like temp S3 resources for profile photos. It makes caching more difficult. In everything I design, I assume that a human might see the URL. That makes everything simpler and more stable.
At some point in the last few days, one of the changes to my blog has caused Hugo to go off the rails… Instead of taking a couple seconds to run, takes minutes. Having some difficulty tracking it down.
Watched some of the usual Christmas movies over the last week, and a couple new ones… 🎄 Then went on an anime tear with Princess Mononoke, Nausicaa, Tales from Earthsea, Weathering with You, The Wind Rises, and Kiki. 🍿
Happy holidays, everyone! A new episode of Core Intuition just went up, the last episode of 2023. We talk Apple Watch, Adobe and Figma, and look forward to next year.
This weekend I added limited support for following Bluesky users in Micro.blog. This isn’t federating with Bluesky yet. Instead, it uses a combination of Bluesky’s RSS feeds and the AT Protocol.
To follow a Bluesky user who has an account username in the form username.bsky.social, just search for the username in Micro.blog. It doesn’t work for custom domain usernames in Bluesky, because Micro.blog will think you want to follow the user’s blog instead.
Here’s a screenshot showing a search:
Note that Bluesky’s RSS feeds are brand new, and there are a few missing pieces. Photos in posts are not included and inline links may not work perfectly. Still, I expect Bluesky to improve this over time, and already it’s a useful way to follow many Bluesky users.
I’m planning to improve the Micro.blog side of this in the coming months, such as supporting replying back to Bluesky users. Bridgy can also take Bluesky replies to your blog posts and send them back to Micro.blog via Webmention. (I’ve updated the Alpine theme in Micro.blog to include the IndieWeb’s u-syndication
microformat, so services like Bridgy can more easily map Bluesky posts with the canonical microblog post on Micro.blog.)
Happy holidays! 🎄
More good progress in Bluesky: there are now RSS feeds for all user profiles. This is just a useful baseline for supporting different things. Nice, clean microblog feeds without titles.
I like the new Bluesky butterfly logo. Still invite-only, but I have a handful of invite codes if you want to try it out.
Writing a blog post draft in Micro.blog for Mac this morning and I guess I’m hitting ⌘-S pretty often. This saves it to the server and Micro.blog keeps a copy of each version in case you need to revert back. Here’s the web version where I happened to notice the saved count.
Watching the Substack drama unfold but just taking notes for now. Trying to put most of my writing time into book editing, and these big picture topics of indie blogs, newsletters, and moderation fit right in.
Got some bad news last night that really shook me. Nothing family or health related, which is what matters, but still bummed. (Also nothing to do with Micro.blog or business or money.) It was balanced a couple hours later with some really welcome news! The world gives and takes.
Raining in Austin this morning. Working and having coffee at Lazarus. 🎄
I should’ve done more testing with audio apps after upgrading to Sonoma. Things went off the rails while recording @coreint — noise while recording and also audio getting handed off to my phone. I think we mostly salvaged it.
I finally installed macOS Sonoma, so I’m testing Micro.blog as a saved web application for the first time. Works well. The most awkward thing is not having an address bar. Nice that Apple included Edit → Copy Link.
As the year winds down, thinking about the fediverse, I want to do a better job in 2024 of making the case for independent blogs. Lots of platforms with thousands of users on each server talking via ActivityPub is great, but more blogs also helps with portable identity and a more distributed web.
Great article from David Pierce at The Verge about the potential of the fediverse:
Forget the hand-wavy protocol stuff for a second — one of the best things about embracing ActivityPub is that it sticks a crowbar into a single Voltron-ic product like Facebook or Twitter or Snapchat and pries it apart into its component pieces, each one ripe for innovation and new ideas.
Continued my Redis spelunking last night and managed to cut 10 GB off our memory usage. Makes a big difference because forking and saving the db is faster, less chance of churning the disk too.
Love how Brandon just drops this sentence into the State of the Sanderson:
Tress would make a pretty great animated feature though, don’t you think?
Yes indeed. Many of his books would work really well in animation, but Tress of the Emerald Sea would be fantastic.
Spending the morning going through a lot of bloat in Redis, clearing out unused data. It has been a little out of control using a ridiculous amount of memory, which hurts performance saving to disk and just generally costs more to run.
I thought we had mostly avoided the Mastodon spam from the last couple of days, but it must’ve hit some users because there were a bunch of extra spam reports. I continue to have mixed feelings about how Mastodon handles private messages. Need to rethink Micro.blog’s implementation.
I don’t mind flying under the radar. There are benefits for a product to start small and grow slowly. But I’m still kind of puzzled why Micro.blog is rarely mentioned when articles talk about platforms that support the fediverse. We first added ActivityPub in 2018. Must be doing something wrong.
Flipboard is rolling out the first phase of joining the fediverse:
In this first phase we are partnering with 27 publishers and creators to help them federate their Flipboard accounts and gather feedback. This includes a range of publishers covering global news, tech, music, gaming, travel and science as well as a few content creators like Erin Brockovich and Jefferson Graham.
I tested following one of these accounts in Micro.blog and it’s working pretty well.
“Play Me” — piano outside the library, Windsor Park Branch.
I don’t have strong feelings about the Adobe/Figma deal falling through. I guess if we’re unsure, better to err on the side of fewer big acquisitions. Om Malik makes a really interesting point too that more regulation could mean fewer startups will have “just get acquired” as an exit plan.
Starting to see a path for Nikki Haley to be the nominee. I have mixed feelings about this. On the one hand, I don’t think she should be president, so I’d rather Joe Biden face a weaker candidate. On the other, it’d be such a relief just to definitively know Trump can’t be president again. 🇺🇸
I really liked Leave the World Behind. There are some great scenes in it. Left with a few things to think about too. 🍿
Threads starting opt-in for the fediverse is fine. In fact, it’s what we did in Micro.blog too back in 2018, because I wanted to focus on personal domain names and that requires a little more configuration. However, I do hope that Threads expands to enable federation by default for all users.
Don’t want to jinx it but we finally have Micro.blog performance under control after a couple rough days. Also gotta give credit to Threads, it is one of the fastest of the new social networks. The bar is higher than it was in Twitter’s fail whale days.
Jamie Thingelstad is today’s interview on Manuel Moreale’s People and Blogs series, with some nice words for Micro.blog:
When micro.blog was launched, I intended to use it as an alternative to Twitter. But then, as Manton built and improved the system, I realized it could host my entire site. I now have 8,449 posts in micro.blog and growing, with a total blog archive size of over 7 GB. It makes me chuckle since I think the “micro” in micro.blog makes folks think they can’t use it for everything, but you can.
Thanks @jthingelstad!
Brick Oven on Red River has been closed since the pandemic. Last week they made it permanent and bulldozed the building. Sad to see it go. 🍕
Good quotes from Bluesky CEO Jay Graber in this Fast Company interview. Surprised to learn that Bluesky has 30 people on their team already.
Love this update to Mimi Uploader that can generate photo alt text for you with AI. Mimi is a convenient batch photo uploader for Micro.blog, great for posting a few photos to your blog all at once.
Yesterday, Meta started enabling limited support for ActivityPub in Threads, mostly around following Threads users from platforms like Mastodon and Micro.blog. Adam Mosseri had an excellent video update on Threads that gave the most detailed look into their roadmap:
This work is taking longer than we thought given our safety work, given our compliance work, and given all the scrutiny on our company. But over 2024 we’re going to be adding the ability to post from Threads to these other servers. We’re going to eventually also support the ability to show replies in Threads natively, and eventually allow you to even follow accounts on those other servers from the Threads app itself.
I made a transcript of his video because it contains more than his text posts on Threads. I transcribed it with Audio Hijack and Micro.blog and then double-checked it with the subtitles on Adam’s video. You can read the full thing in this Gist.
One of those mornings where I just run redis-cli monitor
and look for things that surprise me.
Figured out where this delivery robot is from. They are made by Avride and do deliveries for restaurants. Free delivery! Replacing humans, one job at a time.
From a post-trial interview with Tim Sweeney, he reiterates why settlement talks with Google didn’t go anywhere:
We were rather far apart, let’s say, because what Epic wants ultimately is free competition and fair competition for everybody, and the removal of the payments tie and removal of the anticompetitive measures, which obviously leads to far better deals for consumers and developers.
Epic remains an imperfect messenger for App Store reform but they really do have this part right. It’s about the overall market for decades to come, not Epic or any other single company.
The slow rollout of ActivityPub in Threads continues, but it doesn’t appear to be accessible from Micro.blog yet. Hopefully soon. What I wrote in June is holding up well. This is an important step forward for open protocols.
After posting about not wanting to push unannounced features to a public repo, I got suggestions to create a private repo. I did eventually do that. I think my gut instinct is for simplification… Fewer dependencies and duplication to keep track of.
Mark Zuckerberg posted to Threads about starting ActivityPub testing, but it’s not clear what the scope of the test is. Doesn’t appear to be available to outside platforms yet. Still, a big deal just announcing it.
The day has finally come… I’ve added Swift to the Micro.blog for Mac project. Yes, I know it’s 2023, almost 2024. After tinkering with Apple’s Security framework and Common Crypto, decided CryptoKit was the way to go and it’s Swift-only.
Working on encryption and understanding the best initialization vector lengths and then all of a sudden I’m down the cryptography rabbit hole, reading about the birthday paradox. Might be time to call it a night.
Because the Mac app for Micro.blog is open source and we’re holding off announcing some new stuff until next month, I can’t just push in-progress changes to GitHub. Kind of makes me nervous having this code only on my Mac. (I do have backups but just daily.)
Walking down our street yesterday, I was thinking about how only one person for at least several blocks gets the newspaper delivered. We all get different news in our own bubbles. I love the web and the freedom of publishing, but we have lost something to no longer have a shared set of facts.
Thinking about renaming Micro.blog to the letter M. The subtitle will be “the everything app”. Blogs, pages, photos, bookshelves, social network, bookmarks, highlights, podcasts, link archiving, email newsletters… and maybe banking features early next year. Anyone else doing something like that? 🤪
When we added bookmarks to Micro.blog, I used 🐘 to make sure emoji worked. Now I’ve stuck with using that as a tag for Mastodon-related bookmarks.
Epic gets a win against Google. Everyone is trying to make sense of the differences between Epic v. Apple and Epic v. Google. To me, it’s fitting that the outcome is different not just because the facts are different but also because the app stores are fundamentally subjective and randomly unfair.
Trying Apple’s new Journal app for the first time after upgrading my phone to iOS 17.2. Not bad, but I don’t think it’s for me. Day One is a better fit. Just text notes without anything clever.
Beeper Mini is (partially) back. From their blog:
Make no mistake, the changes Apple made on Friday were designed to protect the lock-in effect of iMessage. The end result is that iPhone customers have less security and privacy than before.
I’m all for openness and interoperability, of course, but using a company’s private API in a way that competes with that business is not okay. Even so, I’m kind of rooting for Beeper to shake things up.
Increasingly thinking that we’re too worried about AI hallucination. AI is never going to be perfect, and humans aren’t either! We should focus on using AI in the right context. Running without supervision is the problem. If a 5-year-old kid shouldn’t be in charge of something, AI shouldn’t either.
We’ve gotten some good feedback about the latest Core Intuition, so this is a rare “in case you missed it” post… Episode 579 is a good place to start if you want to pick up the podcast. AI, Beeper, and related fallout.
Not trying to overhype this but I’m so excited about what we’re going to launch in Micro.blog next month. It’s coming along really well and expanding beyond what I first thought it would look like. Meanwhile the everyday stuff continues too, working on fixes and servers this week.
Finished reading: Age of Legend by Michael J. Sullivan. Didn’t expect this one to end so suddenly because the last 15% left on Kindle was actually an excerpt from another book. 📚
Speaking of self-promotion… 🙂 There’s a new Core Intuition out. On episode 579 we talked AI, Google Gemini, Apple’s MLX, Beeper, iMessage, and all the tech and ethical implications of the above. Recorded before Beeper Mini broke yesterday, so we’ll see how that shakes out.
Sometimes people ask for link preview cards in the Micro.blog timeline. Maybe eventually we’ll add them, controlled with a preference. But so often they are in your face, cluttering the timeline, overshadowing perfectly good content. Here’s yesterday’s post on my blog, displayed as intended:
There’s a subtle link on the text “a brand” because I thought people might be curious about the shoes. But that wasn’t the point of the post. I almost didn’t include the link at all.
And now here’s how the same post looks on Mastodon:
What the…? Did I write a short post about serendipity, or did I post an ad for a shoe company?
(Now there is a secondary issue, especially on mobile, where inline links can be confusing or even abused with spam links. There are other ways to solve that.)
So much of social media feels like a show, where everyone is outraged or promoting their own content, the timeline itself just a collection of billboards along the highway, one after another getting your attention. I don’t want that experience. Not having ads is a strength we should lean into.
Thinking about what Mosseri said introducing Threads search:
…having a comprehensive list of every post with a specific word in chronological order inevitably means spammers and other bad actors pummel the view with content by simply adding the relevant words or tags. And before you ask why we don’t take down that bad content, understand there’s a lot more content that people don’t want to see than we can or should take down.
This is what we’ve always thought at Micro.blog too. Meta solves it with algorithmic timelines. We don’t do that, so we’ve been admittedly slow to improve here.
I’m using ChatGPT more and more for coding help. Sometimes I don’t fully trust the answer and double check with Google or Stack Overflow. Today the AI produced some code that I thought it must have completely hallucinated… Does this even work technically? But it ran perfectly.
Love developing for the web and learning how to do something new for the first time. Processing a ZIP file fully within JavaScript in the browser instead of server-side? Never really considered doing it but it works great.
Sometimes the choices we don’t mean to make end up perfect. When I was traveling this year my shoes fell apart and I stopped at a random shoe store in Boulder. They had one pair of shoes in my size, a brand I’d never heard of, bought them, and they are now some of my favorites. Wear them everyday.
Threads launching in the EU next week. My earlier theory was they were waiting for ActivityPub (and so better account portability) before going live. Guess I was wrong.
Noticed load averages briefly jumping up to 10.0 so it’s going to be that kind of day. There’s always something to optimize! Looking okay now, though.
It’s been a couple weeks since we got our first Roomba, so here’s my review: it’s great. Took a day for us to settle into how best to use it, what to pick up from the floor or block, and when to run it… Now it just does its thing every day. Surprisingly good with dog hair too.
Testing new in-progress features and everything is kind of working. Maybe at this point in my career I shouldn’t be surprised when my code actually works, but it’s still a nice feeling.
Interesting juxtaposition of releases today… The new Ivory with Mastodon hashtags support and the Threads update with hashtags for the first time, limited to one tag per post. Also major Mammoth release, with open source on the way.
Watching a few clips from last night’s GOP debate. Chris Christie still fighting the good fight against Trump when no one else will. From Christie’s closing statement:
…picture in your mind election day. You’ll all be heading to the polls to vote. And that is something Donald Trump will not be able to do. Because he will be convicted of felonies before then and his right to vote will be taken away.
🇺🇸
I love these robots. We’ve seen more of them but it’s not clear if they are actually going anywhere or just practicing for deliveries.
Congrats to @cheesemaker and the Silverpine team for announcing the beta of Evergreen.ink, an interactive fiction authoring tool. Think: “choose your own adventure” stories. I’ve been helping with this behind the scenes too, and the upcoming iOS app… Really cool to see it come together.
Beeper Mini looks like an impressive feat of reverse-engineering. Apple will surely try to break this in the future, but if doing so requires an iOS update for iMessage API tweaks, it may take years before they can realistically cut off Beeper along with very old iPhones.
Made a little architecture diagram for Micro.blog that reflects the recent server upgrades. A couple simplifications but it’s pretty close to how things work.
I’ve been putting off an infrastructure upgrade because 💰, going to bring online another new server today. This would be a great time for everyone to upgrade to Micro.blog Premium. 🙂 Seriously though, you’ll get a major new feature launching next month.
Matt Haughey in a blog post about renting a Tesla:
I wish other EVs could be this good. I will never own a Tesla, but I can see the appeal now. It was easy to drive, even easier to recharge, and was quite comfortable and made every other car I’ve driven feel like a relic from a past era of personal travel.
As a side note, seems a trend where execs are becoming more public characters — with their random dumb thoughts posted online — at the same time that everything is becoming political. So now we buy products based on our values instead of quality. Sometimes good, sometimes taken too far.
Finished reading: The Ocean at the End of the Lane by Neil Gaiman. Absolutely wonderful. 📚
Can’t believe I’m still working on the book. Just a few final end-of-year updates. New excerpt:
Even the name itself and the bird branding are gone. The letter X feels like an appropriate placeholder for the platform’s grave. Here lies a dying platform. X marks the spot where it used to be.
Tweet Marker’s whole purpose was for cross-platform, cross-app timeline sync. There was never anything like it because it’s not actually a profitable idea on its own. But there are many apps that could benefit from something like this. Imagine note sync across Ulysses, iA Writer, Bear, and Obsidian.
The future of Nostr might not actually be for microblogging but instead as a cross-platform generic sync API for any type of small data. I know this was baked into the original idea, but the more I think about it, the more it feels like a unique solution to several things.
Apple Pay has made me lazy about credit cards and it finally came back to bite me. Drove to Dallas yesterday and forgot my wallet in Austin. Generally hasn’t been a problem… restaurants, gas, movie, coffee, all fine. Until the hotel where they assume you’re a criminal if you don’t have an ID.
Went to the early IMAX screening for Miyazaki’s The Boy and the Heron tonight. Managed to avoid seeing any trailer, plot summary, or review, so everything was a surprise. Still thinking about it so won’t say more for now. Subtitled, and I’d like to see the dubbed version later. 🍿
Starting to see “included in Premium” free audiobooks in Spotify. This is going to be great.
La La Land Kind Cafe. ☕️
I’m excited that Texas is in the playoffs, but only picking four teams is always going to leave someone out who should have a shot at it. College rankings have always felt subjective to me so I don’t give it much thought. The Longhorns barely lost that game anyway. 🏈
Quiet night camping at Ray Roberts Lake State Park.
Sunset at Lake Ray Roberts.
My quick 5-minute demo from FediForum is now on YouTube. I show off Micro.blog and fediverse integration. It’s a whirlwind tour of several different things including how we think about cross-posting.
Just published Core Intuition 578 about the MarsEdit 5.1 release, AI and copyright, software licensing, and more. Lots of good stuff in this episode I think.
Working more this weekend on the feature I teased about a few days ago. Work has accelerated and now I’m confident in the design and technical bits. The hardest part is pulling myself back every day to work on smaller fixes and improvements.
Castro is back online and Tiny is considering finding a new home for the app, via Rob Fahrni. For Micro.blog we host podcasts, and we have our Wavelength app, but we’ve thought about doing more. Kind of neat to imagine Castro in our suite of apps if we had a non-$0 acquisition budget.
Glass announced they are raising their prices for next year, but it looks like even with the change I would save money if I switched to the yearly plan. Interesting to see how different companies handle yearly discounts. 50% off is an unusually good deal.
December already! I still have 9 books left on my reading goal for the year. I’m halfway through a couple things already so I might hit it if I read more over the holidays. 📚
Nice approach in iA Writer 7 for pasting ChatGPT output into your writing and tracking your edits to make it your own. There is also a Markdown extension for attribution in a range of text. However, I found this part of their blog post a little puzzling:
While the format is open, avoid cloning our work. Draw inspiration from what we made. Change it. Improve it. Design it yourself. Work on it until it is substantially better. If you can’t beat our design, then let it be and do something else.
There is a long history with text editors of drawing inspiration from features in competing products. What iA Writer has built here is not easy technically. If someone eventually copies it, I would chalk it up as praise and move on to the next thing. (Admittedly that’s easy for me to say as an outsider, though.)
Also, a reminder that iA Writer supports native publishing to Micro.blog! It’s a great writing app with elegant support of Markdown. Despite my nitpick above, I do like their thoughtful take on AI integration, and I think version 7 is going to be well received.
Seems there aren’t many notes apps that are end-to-end encrypted. Obsidian is one, and there’s also Day One for journals. Wondering how important this is to folks. Personally, I like that Day One is encrypted but I would use it even if it wasn’t. And most of my notes are just on Dropbox.
Putting on my sys admin hat this week, evaluating what we can improve. Our primary MySQL server has been running for over three years without a restart. Not bad! (Hopefully I didn’t just jinx it.)
One year ago today, ChatGPT was released. It’s not that often that products truly change things. Whether you think artificial general intelligence is just a few years off or that it will remain a pipe dream forever, there’s no question that some form of AI is going to be part of so many products going forward.
AI is a tool. Even imperfect, it is incredibly useful. Looking back, I can’t believe I was so skeptical of its impact. I ignored ChatGPT for months.
This week I was creating a web page to show a grid of Micro.blog feature names, experimenting with different ways to highlight all of the things Micro.blog can do. I turned to ChatGPT to help me get started, like asking it this question:
Can you generate 10 colors that look kind of like #f80 and go good together?
Or this one:
Let’s say you have 87 HTML spans with id attributes 1 to 87. Write JS that randomizes the numbers 1 through 87, then loops over each one and sets it’s background color from an item in a list called colors.
And then:
Add a random delay before setting each color, from 1 to 2 seconds?
And so on. It probably saved me an hour. I’m still working on it, but you can see the result so far in this video.
This kind of functionality is why Microsoft’s “Copilot” branding is so good. AI is the little assistant that helps you with random tasks. Coding, brainstorming, writing. In the above examples, it didn’t replace my job. I still needed to take the output and tweak it, move things around, add my own code, think about the design.
Earlier this year when we added Twitter import to Micro.blog, I used AI to help make an illustration for the web page. I combined the output with my own sketches, compositing things together, adding color. AI was my junior artist assistant, helping me create something that I couldn’t dedicate enough time for on my own.
And in Micro.blog, we now use OpenAI to automatically transcribe podcasts for all Micro.blog Premium subscribers. I’m interested in finding more use cases like this: not using AI to replace our creativity — Micro.blog will always be about personal blogs, written by humans — but to automate tedious work.
I have no idea where AI will be in another year. I won’t obsess about it too much, and I won’t follow where it leads blindly, but I’m fascinated to watch it evolve, waiting for the opportunities that bring clear benefits to our work.
Not sure what to make of Elon Musk’s interview yesterday. It’s so easy to say he’s unhinged that I’m questioning whether I should dig deeper. Ultimately my core belief about huge social networks hasn’t changed in years: too much centralized power opens the door for user-hostile, dev-hostile leaders.
MarsEdit 5.1 is out with support for posting to Mastodon and improvements for Micro.blog too, like attaching photos in the micropost window and updated character counts. Congrats @danielpunkass!
Usually I work on improvements to Micro.blog for a couple days or weeks and roll them out. Very rarely does something sit for months before customers see it. But sometimes very big features need a little more process and restraint… Working on something new off and on that will launch in January.
Interesting conversation about web hosting and AI in this interview on Decoder with Avishai Abrahami, CEO of Wix. But this also stuck out to me:
The developers, they just read a very fantastic post by somebody on how to do something in a much nicer or interesting way, and then they want to try it. They want to play with it. They want to build something with it. And suddenly, it’s like, “Oh, no, this is how we do it. You have to do it like that.”
It takes a lot of discipline to ignore tech fads. I’m convinced this is why large teams often spin their wheels, getting very little done for users.
Today we’re rolling out some major improvements to domain name support in Micro.blog. We’ve had domain name registration for a while, but it was fairly limited. Now you can transfer domain names to Micro.blog hosting and let Micro.blog handle all the details. We also have a better management interface for adding custom DNS records.
Here’s a screenshot:
To register or transfer a domain name, in Micro.blog on the web click Account → Get a Domain Name.
There’s no requirement to use Micro.blog for domain names if you want to keep your domain name at another hosting provider. Some people like to keep domain name registration separate from their blog hosting. But if you’d like everything under your Micro.blog subscription, now it’s easier.
Playing around with Raindrop.io today. It’s really nicely done. I’ve added support for importing Raindrop.io bookmarks to Micro.blog bookmarks. There’s also an API, so maybe we’ll have more integration later.
There have been a bunch of “what apps am I using?” blog posts recently, inspired by an episode of Hemispheric Views. Robb Knight has a page with links to other people’s posts.
Here’s my list:
I added a few at the end that I’ve seen other folks use even if they weren’t in the original list. There is scoring too, but I don’t understand how it works. 🙂
I’ve been eyeing a specific domain name for several months. It’s a premium TLD and I can’t really justify the price. But every once in a while like today I come this close to grabbing it, then talk myself out of it. Whew.
Reminded by this post from Vincent that Arq exists. I used it years ago when I was frustrated with something from Backblaze, but I didn’t stick with it. Going back to it, backing up to S3 and skipping a backup subscription altogether.
Sarah Perez writing at TechCrunch about Evernote’s experiments with a more limited free plan:
…a pop-up message that informed them that unless they upgraded to a paid plan, they would now be limited to only 1 notebook and 50 notes. That change would dramatically limit the service for longtime Evernote users who have accumulated hundreds or thousands of notes over the years.
Evernote is a perfect example of a company getting too big for what it’s trying to do. It could’ve been a great 20-person company. The billion-dollar valuation ruined it.
Roomba vs. dog. It takes a lot for Ollie to move… Certainly more than a robot nudge. If he’s sitting in front of a door you want to open, for example, forget it.
Fixing one last thing after our server problems yesterday. I almost finished it last night but realized I was too tired to risk making a mistake restoring data. Much better in the morning with coffee and triple-checking backups and scripts. One day we’ll have a full-time sysadmin!
We talk about domain names as your web identity, how it’s more permanent and meaningful when you’re microblogging on your own site instead of someone else’s domain. Some social network is down? Shrug. Your web site is down? That feels personal. We’ve had good uptime but it’s gotta be even better.
Dealing with fallout from another server failure. We have pretty good redundancy most places, except ironically some of the most stable parts that always felt low on the list to prioritize because they never failed… until they did. Picking up the pieces, improving a few things for later.
Cool driving by REI on Black Friday and seeing the store closed. Kudos for thinking of employees and customers before profit. On the other hand, we participated in the shopping craziness by getting a Roomba. Figured the vacuum robot tech must be well along by now. Mixed results in the first run.
Super Mario Wonder is excellent on replay. I’m slowly finding all the levels I missed. Some of the levels are actually kind of difficult, which I love, and seems rare since the NES and SNES days. 🍄
The ads on TV for Humane’s pin are pretty effective. I don’t expect much success for the first version of the pin, but I do think they’re on to something if they can keep iterating. Best comparison is the Newton — a little ahead of its time.
Happy Thanksgiving! 🦃 I finished Mario Wonder. Great game, I’ve been playing a couple levels every day since its release. Missed a few things that I can still go back to, or play different characters. 🕹️
We just posted a new Core Intuition all about the chaos at OpenAI over the last several days, including the resolution with Sam Altman returning as CEO. The full episode is all on this, the relationship with Microsoft, the odd company structure of OpenAI, and the impact of AI on… well, everything.
Happy to keep growing the list of formats that Micro.blog can import to your blog. As of today: Twitter, WordPress, Medium, Tumblr, Ghost, Markdown, Substack, Goodreads, and Write.as. Plus cross-posting out of Micro.blog: Medium, Mastodon, LinkedIn, Tumblr, Flickr, Bluesky, Nostr, and Pixelfed.
Doing a little more tinkering with Stimulus. @vincent and I have talked about refactoring more of my clunky, old-school JavaScript to use Stimulus. It would at least provide a nice structure for all the code without feeling too abstracted and bloated.
Most companies would delay any product changes if they were in the middle of leadership chaos. Rolling out ChatGPT Voice to everyone this week says a lot about their confidence. Who is even CEO? Who cares, let’s ship it.
Pretty big deal that Spotify didn’t have to pay Google the usual in-app purchase fees. The inconsistencies across developers is just as unsustainable as the high 15% or 30% cut. As I’ve been saying forever, the ultimate solution is side-loading and external payments. Getting closer to that future.
Uptown in Dallas over the weekend, coffee and work at Foxtrot as the trolly goes by in the background.
Marlin from Finding Nemo:
I just can’t afford any more delays and you’re one of those fish that cause delays. And sometimes it’s a good thing. There’s a whole group of fish. They’re delay fish.
I think about this when I’m trying to get something done and not making progress. What is slowing everything down, making simple tasks more complicated than they need to be? Or is it my fault, overthinking something that should be simple?
Not everyone has the same priorities. That doesn’t mean everyone else is necessary wrong, but they don’t have the same urgency. Meetings might have people with good intentions. Emails might have good counter-points to consider. But they are delay fish, getting in the way of accomplishing anything.
After the OpenAI fallout this weekend, I’m pretty confident that Satya Nadella gets this. Friday afternoon he was probably looking forward to the weekend without a clue of the crisis unfolding at OpenAI. Then by Sunday night he had announced that Sam Altman, Greg Brockman, and other folks from OpenAI were joining Microsoft to lead a new AI research team, while preserving Microsoft’s relationship with OpenAI. Lemons to lemonade.
You can be sure there were meetings in those 48 hours. I bet there were delay fish, urging for a pause, time to reflect on what Microsoft should do. There was chaos and so also a moment to act and Satya took it.
Sometimes you need Dory. You need to be innocent, joyful, thoughtful, creative, brainstorming, slowing down. But sometimes you just need to get shit done and move on.
Catching up this morning on all the OpenAI and Microsoft news. Hard to overstate how dramatic a weekend this was for the tech world. As a (small) OpenAI customer, I’m not sure where this leaves me. One thing is clear: Satya Nadella is a really impactful CEO. He turned a crisis into a triumph.
Wanted to make my blog Creative Commons licensed again, so I created a little Micro.blog plug-in that adds a rel="license"
tag. Defaults to “CC BY” but can be changed to another license in the settings. Not sure yet how licenses should interact with our future AI overlords, though, if at all.
Om Malik on the OpenAI news:
…the big question is what this really means in the long term for the forward momentum of artificial intelligence and its impact on the broader technology ecosystem. While it might sound pessimistic, the past 24 hours have exposed a massive and obvious foundational risk in placing all bets on a single entity.
The latest Core Intuition has everything about my road trip, getting COVID, seeing U2 in Vegas, and then back to blog-related topics with the state of Tumblr under Automattic’s ownership.
I’ve been quite happy with OpenAI as a developer. We use their API to transcribe podcasts hosted on Micro.blog. It’s cheap enough that we can include the feature for everyone at no extra charge. I’ll admit I don’t know much about Sam Altman beyond the superficial, though. Ready for leaks.
Friday bombshell, Sam Altman is gone from OpenAI:
Mr. Altman’s departure follows a deliberative review process by the board, which concluded that he was not consistently candid in his communications with the board, hindering its ability to exercise its responsibilities. The board no longer has confidence in his ability to continue leading OpenAI.
Didn’t see even a hint that something like this might happen. Pretty shocking.
Amazing that we’re only a month and a half away from Steamboat Willie being in the public domain. Hoping animators experiment with remixing it, within the limits of copyright trademark. I think there’s a lot you could do. Probably won’t have time myself but maybe one day.
Lillihub is a new Micro.blog web client by @heyloura! It’s got a bunch of features and a really unique style compared to the other Micro.blog apps. Check it out if you’re looking for something new or just want to try a different browsing experience.
Very positive review of Coyote vs. Acme over at Cartoon Brew. This is the film that was finished but cancelled anyway as a tax write-off. Did the Warner CEO even watch it? When money comes before art, you’ve lost your way. (This is even worse than when Warner botched the marketing for Iron Giant.)
Good news from Bluesky that a public web interface is coming this month. They’ve had a “staging” web app, but it required signing in. Also:
As a reminder, Bluesky is a public social network, so your posts, likes, etc. have always been publicly accessible through the API. We designed Bluesky with the openness of the internet in mind, and you can think of your profile as a blog on the internet.
In the future, it will be easier to have actual blogs that seamlessly act as ActivityPub and AT Protocol profiles. We’re halfway there with Micro.blog already.
Great news that Apple will be adopting RCS, via 512 Pixels. iMessage is the biggest lock-in to Apple platforms for me. RCS won’t change that overnight, but if it makes Android interoperability better, I’m for it.
Kudos to Matt Mullenweg for making public the internal memo about the future of Tumblr. It seems they’ll pivot to a smaller team, acknowledging that maybe Tumblr can’t be competitive with other massive social networks, but could do just fine as a more niche platform:
We are shifting from the mode of “surging” on Tumblr with tons of people to get it to exciting growth, to working on how we can run Tumblr in the most smooth and efficient manner. Pretty amazing things in the social and messaging space have been accomplished with small teams, so I’m actually quite curious to see a smaller and more focused Tumblr’s performance in 2024.
I’m a little confused about what Tumblr has been up to in the four years since the acquisition. Automattic had ambitious plans both for ActivityPub and to rebuild the foundation of Tumblr on WordPress. But there are a lot of smaller things they could do, like add support for IndieWeb standards Micropub and Webmention, simple protocols that are straightforward to implement.
Even so, Automattic is a great home for Tumblr. Social networks come and go, but I expect Tumblr to be with us in some form for years. It still has a lot of potential.
Going to record a new @coreint today. It’s been a while… Traveling and getting sick didn’t help the schedule.
about preserving web sites after our death. I’ve also been thinking about this. There’s a little in my book about it. Hope to have more concrete plans by the end of the year.
Very reasonable take by Jason Snell about AI assistants. Siri needs to be completely gutted and rebuilt with generative AI. This will take, what, 2-3 years? The question is who can build a compelling device (“pin” or otherwise) in the meantime, before Apple gets there.
CNN’s web site is usually a mix of news headlines and dumb clickbait, but sometimes it’s exactly what you need to start the day. Love this story about a pilot and his daughter. I’m a sucker for this style of photos separated by decades.
Finished reading: Divergent by Veronica Roth. Wasn’t planning on getting this but it was on Libby’s no-wait list when I was queuing up books for my trip. Never saw the movie. 📚
Finished reading: Age of War by Michael J. Sullivan. Another good audiobook to finish on the road. Been working through this for a little while. 📚
Rest stop in Arizona, near Texas Canyon.
Finished reading: The House in the Cerulean Sea by TJ Klune. Listened to the audiobook version. Love the way the narrator interpreted all the kids' voices. 📚
Silver lining to getting sick and rerouting my trip back home for speed is I got to see Joshua Tree National Park. The original plan had me in Utah today.
I wish Google Maps had an “avoid clever shortcuts through the middle of nowhere” option.
For futuristic products, Humane’s AI Pin is actually a better idea than Apple’s Vision Pro, but it seems clear especially this week with spatial video that the Vision Pro will have better polish and completeness. There might be some clunky duds before someone makes the first indispensable AI device.
I-5 between Sacramento and Los Angeles.
A follow-up on my gripe about the digital download version of Mario Wonder. As pointed out by a couple helpful folks, I was holding it wrong. When you have multiple Switches, you can de-register the “primary” Switch. That fixed the internet check for me.
Going to attempt to catch up on some work today. Long story short, I got COVID this week while on the road. I had the new vaccine a month ago, also just started Paxlovid, so I’m as prepared as I can be. Swapping out cold camp sites for warm hotel rooms for the trip back home.
I’ve been traveling and now I’m sick, so of course Micro.blog goes down. Think I was too ambitious in the planning for this road trip. Hoping to shift things around so I can get back home sooner.
Great interview on Decoder with Barack Obama. He is so knowledgable and thoughtful. Plenty to think about with AI and social networks.
Blazers vs. Kings. 🏀
Millerton Lake. I’m still not used to how ridiculously early the sun is setting. This was a few minutes before 5pm!
First world problem, but I made the mistake of buying the digital download of Mario Wonder instead of the physical card. Every time the game opens, it has to check the internet, and when traveling sometimes there’s no good wi-fi. So I have to tether to my phone just to open the game? Not great. 🍄
Camping at Calico Ghost Town. Didn’t get here much past 5pm and it was already dark. There are over a hundred camping spots but only a couple other people here, far away, so it feels like just me and rocks and the wind. 👻
I knew I’d find a cool coffee shop around here somewhere. Bad Owl Coffee in Henderson, NV.
I posted a photo the night of the concert, purposefully picking something simple at the beginning in case people were planning to see the show and wanted to be surprised. Lately I’ve been trying to avoid spoilers for movies, books, and concerts as much as possible. Don’t tell me the setlist; I just want to experience it.
But let me share a little more about the concert. First of all, my bias is that I’m a U2 fan. I’ve seen them live several times. I bought tickets for Vegas a few months ago without a clear idea of who could go with me or how I would get there.
This is where you can stop reading if you are planning to go to the Sphere no matter what and don’t really need to hear my opinion or see more photos.
Over the last month, I concocted a plan to drive to Vegas, where my kids would fly in and meet me for the concert. Then I would continue on to California before heading back through Utah to see whatever I can see. I would work every day from the road. More about all of that later.
A lot could’ve gone wrong with all of this. Honestly, sitting in our seats at the Sphere, I reflected on how I wouldn’t have been at all surprised if none of this had panned out. Someone gets sick, can’t make it, or countless other problems.
The venue is unlike anything I’ve ever seen before. Photos don’t do it justice. Such a ginormous screen allows them to create scenes that are stunning. They can play tricks with movement that make it so immersive and new.
In a way, it’s an experiment, a spectacle. This is balanced by some quieter moments too, where the band plays without any fanciness on screen to distract you. I think this kind of show could continue to be tweaked as the producers better understand what works in the venue.
If you’re a fan of U2 or like visiting Las Vegas, I highly recommend it. I’ve grown to love and hate different parts of the city. For me, it’s best in moderation. Come for a couple days, have a great time, spend too much money, and then it’s time to get back to the real world. Roller coasters on the top of New York New York, a recreation of the Eiffel Tower, a pyramid… the Sphere is unique and amazing and fits in perfectly.
Morning at Lake Mead.
U2 at the Sphere. This is from the very beginning of the show, no spoilers. Incredible concert and venue.
Hoover Dam.
During COVID, I thought for sure no one would ever want to go to Las Vegas again. Stuck in a poorly-ventilated room with no windows and people smoking? No thanks! Yet here I am in the city. U2 at the Sphere tonight.
On this week’s Core Intuition, we react to Apple’s M3 Mac event. Are we planning on upgrading? Plus thoughts on Apple talking about AI.
James Harden this week after joining the Clippers:
I’m not a system player. I am a system.
It’s a great line. Unfortunately for Harden, I think you need a few things to win an NBA championship: skill, chemistry, and luck. Doesn’t seem like he’ll ever be on a team with all three. 🏀
Finished reading: She Who Became the Sun by Shelley Parker-Chan. An ambitious book that kept surprising me. Not everything worked, but I was hanging on until the end anyway. Curious if some unresolved threads will get attention in the next book. 📚
Back on the road. Sun coming up from Coconino National Forest.
In between audiobooks and podcasts, had a lot of time to think on the road today. Why do we travel? The more I see, the more obvious it is that there are nearly countless beautiful things still to find. Only our time is limited.
Wasn’t planning on stopping at Petrified Forest National Park but it was a great break from I-40. Tiponi Point over the Painted Desert.
What’s left of Budville Trading Company, originally opened in 1928 along Route 66.
We have a new page highlighting Micro.blog’s support for IndieWeb building blocks. Thanks @paulrobertlloyd for the new icons!
Cabra Coffee, a perfect cute coffee shop to work for a little while, only a mile from where I camped last night in New Mexico. ☕️
BNSF going by, somewhere just into New Mexico. 🚂
First coffee stop of the road trip. J&B Coffee in Lubbock. ☕️
Now that we’re in a new neighborhood, not sure how much candy we’ll need for trick-or-treaters. Have a feeling there will be more kids. Also I might’ve opened the Reese’s already.
If you’re new to Micro.blog, you might not know that there are some secret pins you can unlock on various holidays and events, based on words or phrases used in microblog posts. Happy Halloween! 🎃
Looking back on this post from three years ago when I bought my Intel MacBook Pro, previous me would be surprised that I still haven’t jumped to Apple silicon. Now is not quite right, but hopefully early next year. M3 will be a great upgrade.
Busy evening so I just watched the spooky Apple event replay. Feel like they got the timing right, not padded unnecessarily. And the MacBook Pro lineup makes sense again for the first time in years, with clear product differences and prices. 🎃
Got my car battery replaced. And in a ridiculously well-timed coincidence, just got an “our records indicate it’s time to get your battery checked” email from the Honda dealership. I don’t usually buy into the most extreme surveillance marketing conspiracy theories, but the timing is uncanny.
Bad timing or perfect timing? Car battery died the day before a big road trip. 🗺️
Even though we now share most code across iOS and Android, I wanted to keep the version numbers separate so that each platform can evolve as it needs to. Today we are bumping Micro.blog for Android to 2.0 because of a big addition: a system share action from other apps to Micro.blog.
Now when you’re in another Android app, you can start a new blog post or save a bookmark. Here are a few screenshots showing text selected in Chrome and then shared to Micro.blog to create a new post with the quoted text and URL.
Thanks as always to Vincent Ritter for developing this. Meanwhile I’ve also been tweaking things for iPad, so there will be another iOS release not too far off.
Looks like some great session topics at IndieWebCamp Nuremberg. I wasn’t organized enough to attend remotely because of the time zone difference… Catching up on the notes and chat now.
Back at the old house (still hasn’t sold) to mow the yard in between the rain. Mushrooms popping up.
Spurs win in OT. That was a good one. Can’t wait to see Wembanyama in person sometime this season. 🏀
We’ve just posted a new episode of Core Int. This week we talk about The Verge article on POSSE and the potential for AI in customer support email.
Watching the news at lunch. I want to blog about the war in Israel but it’s too divisive and terrible. Not interested in inviting a debate right now. Strong feelings mean everyone is quick to hit reply. I’m okay writing about American politics but this is much harder to get right in a short post.
Super Mario Wonder is so good. And yeah, I did end up getting a new Switch Lite to play it. 🕹️
Strongly agree with everything in @gruber’s post about pushing for gun legislation:
The aftermath of a massacre is the time to demand sane gun control measures. That’s when the issue is clarified.
There are already so many assault weapons out there, we won’t fully see the impact of new laws for years. Why are we okay with waiting even longer to start? Now is the time. It’s beyond frustrating to wait.
Biden should focus his 2024 campaign around banning assault weapons. Keep it simple, nothing else except guns and some basics about the economy. I think most people across parties are ready for it. 🇺🇸
Testing out SupportAgent.ai which uses AI to draft answers to support email. It is blowing my mind. However, human replies are always better, so not sure I can actually use it. Also, it replies to spam! 🤣 Here’s a screenshot to give an idea of how powerful it is but also how potentially wrong.
Spurs throw away the game in the last couple minutes but still a lot to like, despite the turnovers and foul trouble. Going to be a fun season. 🏀
I saw a couple Cybertrucks on the road today, in northeast Austin, presumably Tesla testing things out. Such a bizarre vehicle. I don’t get the appeal but I like that they tried something weird.
Doesn’t take much to make me happy. Walking to pick up coffee is one of those simple things. ☕️
This one ended a little more quickly than I expected:
Our goal was to build a kinder, safer, public square. We grew from 6 users on the first day (Dec 9, 2022) to a community of 20k by October 2023. But we weren’t growing fast enough justify additional investment, and we also underestimated the number of new competitors with a similar vision who would enter the field.
I liked the name Pebble. From their about page:
From our early days as T2 to our evolution into Pebble, our ethos is consistent: creating an inviting space for genuine dialogue. The name “Pebble” signifies that even small interactions can leave profound impacts.
The company was founded as Twitter started to implode under Elon Musk’s leadership. The Pebble folks seemed to have good intentions and they started building a nice product, with maybe more polish than the usual Twitter competition.
But when I signed up several months ago it struck me that they had built another data silo without either a client API or integration with other platforms via ActivityPub. Without any changes to embrace the open web, Pebble was probably always going to fail, it was just a matter of when. This is a lesson we should have learned years ago, going back to App.net’s rise and fall.
In 2023, no one wants a centralized, closed microblogging service. We already have Mastodon, Micro.blog, Bluesky, and Nostr, and even Threads will be embracing a more open approach. This is also part of my criticism with Glass.
It also might be a story about the erratic success of VC-backed companies. Pebble received $1.1 million in funding earlier this year. That seems like a lot of money to me, but I guess it provides too short a runway for a company that needed to get very big before turning a profit. I believe the future is smaller, more open platforms, and that means we can’t lean on ad-supported models. That strategy has served us well with Micro.blog and blog hosting.
Most small businesses fail and most Twitter clones fail. It has always been this way. Hopefully we can learn from Pebble, and I wish the founders good luck on the next thing.
Watching the courtroom statement and apology from former Trump lawyer Jenna Ellis, on CNN video here. Some of these lawyers and supporters were caught up in something much bigger, lost their good judgement for a while. Contrast with Trump who will never admit he lied, will never apologize. 🇺🇸
David Pierce at The Verge: The poster’s guide to the internet of the future:
The idea is that you, the poster, should post on a website that you own. Not an app that can go away and take all your posts with it, not a platform with ever-shifting rules and algorithms. Your website.
The podcast episode in The Vergecast has even more quotes from me, Tantek Çelik, Cory Doctorow, Mike McCue, and Matt Mullenweg. I love how well this captures the foundation for POSSE and where the web is headed.
Planning another road trip for next month, here to Nevada, California, and points in between, then back through Utah. The key is having enough downtime so I can work and not be on the road all day. My notes just have dates, reservations, nearby coffee, things to see, driving time. Works for me. 🗺️
Finished reading: Shadows for Silence in the Forests of Hell by Brandon Sanderson. Hadn’t realized until I had finished The Sunlit Man that I had missed this Cosmere novella. 📚
The kids took all our Nintendo Switches to their own apartments. Seriously considering picking up a Lite to play the new Mario Wonder. 🕹️
Picked up Killers of the Flower Moon a few weeks ago and only now starting it. Got tickets for the movie next week so I have a little time to make a dent in the book, at least. 📚
Happy Friday! New @coreint podcast to wind down the week. Episode 573 covers Apple’s “video reactions” feature and what we can learn about rolling out a surprising feature. Then we jump back into Twitter/X news with the $1/year subscription announcement.
Thinking about Biden’s address to the country last night, he did something remarkable that I didn’t realize at first. After the Hamas attack, I assumed that any chance of peace had been set back decades. Biden steered me back from the cliff: no, we cannot give up on peace, even when it is hard. 🇺🇸
This post from @mia@void.rehab will ring true to anyone who has actually implemented an ActivityPub server. We talk about ActivityPub as if it’s a fully-formed spec, but it’s really a suite of specs, and trial and error. I’d love to see the specs streamlined without breaking compatibility.
Matt Mullenweg on the experience of riding in a self-driving taxi:
The thing is I know these self-driving cars exist, I’ve seen them around San Francisco forever, but the experience of being picked up and dropped off by a robot navigating the tricky SF hills and streets just hits different.
We have these in Austin now too. Seeing a car just driving down the street with no one in it is absolutely wild.
The last big upgrade for my Honda Element was to build a bed platform to use for car camping. I worked on this a little bit at a time over about a month. I was inspired by designs from other people, but ended up just sketching out something that I thought would work for me.
I wanted it to be exactly the size of a twin mattress. Also wanted enough space for storage underneath, but not so much that I would feel cramped with limited space from my head to the roof. I got a trifold, 4-inch mattress on Amazon. The platform itself would be in two sections, with one section folding down over the front seats when set up as a bed.
First building the basic structure:
Not pictured, later I ended up adding little metal braces everywhere for more support. Screws alone did not hold the legs in well. It was too wobbly and would even come disconnected. In hindsight, I might’ve been too worried about minimizing weight. I used pretty thin pieces of wood, mostly pine.
I sanded everything, stained it, and added hinges:
Testing it in the car, fully extended and folded up:
I plan to do another coat of polyurethane later. By the time I was ready to use it, I felt like it was really only about 90% done. You can also see some screws poking out from the hinges, which I covered up with several layers of tape after these photos were taken.
Here’s the final bed set up, plus a shot inside at night from camping at the Davis Mountains State Park:
Overall, very happy with my little micro camper. I learned a lot during the first trip and there are some obvious things to improve for next time. I’ve collected the posts in this series in a category on my blog here.
Looks like Georgia knew what they were doing with the 19-person indictment… One by one the defendants agree to tell the truth until only Trump and a handful of people are left for a trial? Sidney Powell pleads guilty, via CNN:
Fulton County prosecutors are recommending a sentence of six years probation. Powell will also be required to testify at future trials and write an apology letter to the citizens of Georgia.
Thought I had a good job for our robot overlords. I grabbed a list of language codes from Wikipedia, ran some regex on it to make it JSON, then asked ChatGPT to trim it to the most popular 50 languages in the world. No luck, the output was wrong and not usable. AI still has a ways to go.
Finished reading: Age of Swords by Michael J. Sullivan. Still enjoying this series. 📚
Wow, great game to wrap up the WNBA finals. Liberty so close to forcing a game 5. Congrats to the Aces! Becky Hammon building a heck of a coaching career so far in Vegas. 🏀
Didn’t take many photos while in west Texas. Here’s a random shot as I stopped for a minute driving back to I-10.
Need to remind myself when on an interview or podcast: I usually do okay the first 15 minutes, then get a bit worked up, talk too fast, and lose my train of thought. Especially when the AC is off and I start sweating. Argh, summer.
Reviewing the cross-posting chapter of my book, several things are out of date. I’m doing a final pass through the book, cutting a few sections. Would rather most of the book withstand the test of time but things change too quickly, calling it “done” has been hard.
Seeing some variety in reactions to Marc Andreessen’s techno-optimist manifesto. I read it quickly and haven’t thought enough to have a strong opinion, except that I don’t like how “enemy” is used. Technology’s role in society should be a conversation, not a war.
On the last Core Intuition, I joked about a hypothetical manton.ai… But then I sort of worried someone else would register it, so I decided to grab the domain myself. Whoops! Too many domains. Just made it a placeholder site hosted on Micro.blog.
Finished reading: The Sunlit Man by Brandon Sanderson. Listened to the whole audiobook on the drive to and from the Davis Mountains. Brandon giving us a taste of the Cosmere endgame! Loved it. 📚
Found a great spot to work for the afternoon in the library at Sul Ross.
Kottke.org is bringing back blog comments. Members-only, which seems like a nice solution. I think we’ll see more of this as the social web evolves away from silos.
It’s that time of year when my iTunes Match subscription renews and I don’t know what will happen if I cancel it. One day need to figure out how to find iTunes Match tracks that are not on streaming. Or do I even care anymore? Just throwing money into Apple’s services revenue pot.
Another upgrade I made to my car is to add the weBoost Drive Reach Overland antenna on top. It essentially takes whatever cell signal it can find and rebroadcasts it inside your car. The antenna can rise several feet over the top of the car, picking up distant signals that the iPhone’s built-in antenna can’t reach.
I knew I needed something like this after my trip to Colorado earlier this year. I still needed to work but I was sometimes without any cell coverage. Starlink would be great but it’s a pricey $150/month. The weBoost is just a one-time cost without an ongoing subscription.
I attached it to my roof rails, keeping it rotated so it’s parallel with the roof and turned off most of the time. It’s easy to flip it up when needed at a campsite. The wires are a little all over the place right now. I’m considering drilling a hole in the roof but not ready to make that leap yet.
It works as advertised. I first tested it in the city where I had 2 bars. I turned it on and right away had 4 bars. Out in the Davis Mountains, I had 0-1 bars and with the weBoost that jumped to a reliable 2 bars.
Of course, it’s not magic. If you are too far away from a cell tower, there’s nothing it can do. But I’m amazed by it. It’s a game-changer when you’re just a little too out in the middle of nowhere.
Drove out to west Texas today. Left late, felt like I was always chasing the sun, and it was dark before I got to the Davis Mountains. Forgot how amazing the stars are.
Just published a new Core Intuition episode about ActivityPub support in WordPress.com and its impact on Micro.blog, plus a discussion of Humane and the potential for new AI-based devices.
Watching Biden react to the chaos in the world, the narrative that he is “too old” just does not match reality. He’s competent and thoughtful. Meanwhile almost nothing Trump says makes any sense. Biden is doing the job of president and Trump is still on some kind of improv stand-up comedy tour. 🇺🇸
Basketball fans who don’t usually have a way to tune-in to Spurs games: Spurs/Heat on TNT tonight. Big change from the last few years when we had almost no national coverage. And it’s still just the preseason! 🏀
The updated vaccine floored me for a couple days. I was starting to wonder if it was worth it, but then I remembered that I haven’t been actually sick in three years. Knock on wood, feeling lucky about that. I used to get a cold or flu or something every year. 💉
The Morning Show does a great job of reinventing itself each season. I wasn’t sure after the first season if they could sustain it, keep it relevant, but here we are in season 3 and it still works. Last episode with the Paul Marks interview was really good. 📺
Great to see WordPress.com’s support for ActivityPub. Following WordPress blogs from Micro.blog looks good, although @-mentioning Micro.blog from within WordPress isn’t working for me. I’ve been testing and reviewing the code, will make any tweaks I can so everything is compatible.
Went to the HEB on Lake Austin Boulevard today to get the updated COVID vaccine. When I was growing up, this was a Safeway that they had literally built around a big tree rather than cut it down. But nothing lasts forever, and the site is unrecognizable now. There’s a great history of it here. 💉
A random shot from a few weeks ago, walking down Steck over Shoal Creek back to the Honda dealer, waiting for service. 🚙
Updated the Epilogue beta on TestFlight with a new feature for book cover management using your own Internet Archive / Open Library account. Still early. You can browse editions of books and upload new covers. Here’s a quick video demo:
We don’t get a lot of disputed charges in Micro.blog. Maybe once a year. But it’s especially frustrating when a potential spammer disputes a charge. Every dispute costs us a $15 fee, so now we’re effectively paying extra for someone to violate our guidelines.
It’s only preseason but great to see more of what Victor Wembanyama can do. Great first half, so much potential for this Spurs team. 🏀
Evan Prodromou had an important post a few days ago, arguing for backwards compatibility with future ActivityPub work and discouraging competing protocols. I found some things to agree with in his post, but I’m less certain that there is a single path forward. On Bluesky and others, Evan writes:
We get exponential growth based on having one protocol, not a half dozen. I think Blue Sky, Nostr, and others are a threat to ActivityPub breaking out and becoming ubiquitous. There can’t be multiple winners. I often reference Metcalfe’s Law in this regard; one big connected internetwork is much better than 3 or 4 disconnected ones.
Maybe. But the web has always been more muddled than that. We have multiple feed formats, like RSS, Atom, and JSON Feed, and it’s okay. We have multiple blog APIs, like MetaWeblog, AtomPub, and Micropub, and it’s okay. We have multiple social web notification mechanisms, like ActivityPub, WebSub, and Webmention, and it’s okay.
What makes it all work is that the web is the network. The fediverse is one aspect of that network. If we go too far elevating the fediverse as the only ubiquitous network, it risks disconnecting it from the blogosphere (!) and the rest of the web. Already I’d argue that some Mastodon decisions have isolated the platform, such as loading content via JavaScript so there are no longer basic HTML web pages for post permalinks.
ActivityPub is a huge success story. Yet there are still good ideas to pull from competing protocols. For example:
If we never let other protocols get off the ground, there would be fewer experiments to help push ActivityPub along. It’s also curious that with Mastodon so well established, Bluesky recently hit 1 million users as an invite-only beta. How? Answering that may help Mastodon and ActivityPub adoption too.
I’m the guest on the latest ShopTalk Show! Really enjoyed talking with Dave and Chris about blogging and social networks. We cover a bunch of Micro.blog features.
Wheel of Time season 2 had a few good moments, but overall it’s just too much to squeeze into 8 episodes. No time to develop the most important character because the writers can’t seem to decide who the show is about. Veering way off the books probably doesn’t help. 📺
Sad watching the coverage of war in Israel. Meanwhile in this country we don’t have a Speaker of the House for petty, incompetent reasons. Reminder to voters that we actually got a bunch accomplished the first two years of Biden’s presidency. 🇺🇸
Between trying to sell our house, moving to a new place, and keeping up with actual work, I’ve managed to squeeze in some time here and there to work on my car. I recently put new OEM cross bars on it and our old rooftop box. The Element’s roof has a really nice design that makes this easy, with bolt holes under a little plastic panel.
Here are some photos:
I’ve also finished building the bed platform that’ll go in the back to make the car a micro-camper. That’ll be the next blog post in this series.
Just posted Core Intuition episode 571. From the show notes:
Daniel and Manton discuss Apple’s latest round of in-person and online “Apple Experts” events, the Apple Vision Pro sessions and whether the NDAs allude to anything exciting, and Daniel’s shoulder injury and worrying about getting older and being stuck in our ways as the technological world changes.
I’m finding so many old things as I clean out boxes from the garage. WWDC 2001 bag was a nice find. I’ve donated most away. Here’s a sticker from WebEdge, a web conference I helped run in a former life.
Our old house hit the market today and the professional photos are kind of stunning. Looks like a nice place. Hope a new family enjoys it as much as we did. 🏡
Spotify will include 15 hours of audiobooks as part of paid subscriptions. This sounds great to switch over to listening when I get stalled reading a print book or e-book, if the audiobook isn’t available quickly on Libby. Not in the US yet, though.
It’s one of those mornings. Accidentally texted some Redis info and server logs to our realtor instead of @vincent. 🤪
We’ve had an hours-long outage at our hosting provider Linode, mostly affecting photos using the CDN. They have rolled out a fix and we’re hoping things get back to normal. You may want to disable the CDN for your blog under the Design page temporarily if you’re still seeing issues.
Dan Moren writes about a bizarre 12-hour iCloud meltdown on his account. Doesn’t seem like much has changed since 2016 when I blogged that iCloud is too opaque. I still prefer Dropbox for everything important.
Not sure I’ve ever been this busy, simultaneously moving and getting our old house ready to sell. Dozens and dozens of little things to do. I fell behind in almost everything else, slowly crawling back to writing code, editing podcasts, email, etc. Thanks for your patience if you were waiting on me.
I get that Democrats wouldn’t be thrilled to save McCarthy after… well, everything he’s done. I’m sure they know what they’re doing. Yet, this is all a waste of everyone’s time. Matt Gaetz running amuck, sowing chaos. Felt like this was an enemy of my enemy is my friend moment. 🇺🇸
“Open web” is redundant
I like IndieWeb because it emphasizes smaller, more distributed sites run by people, not big companies. But Dave is right. The default for the web is openness.
Nice post by Remy Sharp about intercepting broken links and redirecting them to the Internet Archive. Reminds me of the Micro.blog Premium feature (see video on YouTube) where we archive a copy of any web page you link to. I’d love to do more with this.
This is a cool look at old icons from Rogue Amoeba. Fission probably needs an update but overall it’s a really nice set. That bottle for Audio Hijack is still one of my favorites.
Losing my mind trying to get fetch
or axios
or superagent
or anything in React Native to not follow redirects. About to give up and write my own Obj-C or Swift networking bridge.
If anyone has doubts about Threads supporting ActivityPub, listen to Mark Zuckerberg on Decoder. Some of what Mark says is almost IndieWeb-esq at times! I still believe Facebook has done a lot of harm to society, but they are clearly hoping to be more open with Threads and that’s a good thing.
We’ve updated Micro.blog for iOS to version 3.2.1 with some additional improvements. One change you’ll notice right away is that the formatting toolbar now has more traditional “b” for bold / “i” for italic buttons. In previous versions I thought that showing the Markdown syntax on the button titles would help educate people on how Micro.blog worked, but it just created more confusion. I like the simpler buttons.
For Micro.blog Premium subscribers, you’ll also see a new audio icon for attaching an MP3 (or any file) to a blog post.
Full release notes:
Enjoy!
A couple interesting bits in the letter about Epic Games layoffs: six months of severance pay, and Project Liberty continues:
We’ve been taking steps to reduce our legal expenses, but are continuing the fight against Apple and Google distribution monopolies and taxes, so the metaverse can thrive and bring opportunity to Epic and all other developers.
It has now been two years since Fortnite was banned from the App Store. The legal fight didn’t pan out, but I still believe side-loading is inevitable. Maybe next year when the EU’s Digital Markets Act goes into affect.
Our sleepy dog kept me company today during podcast recording. Lots of dog snoring, which may or may not be picked up on the microphone. Preferable to the usual barking, though. A quiet day with no package deliveries.
Why am I watching another Republican debate? It’s chaotic, awkward… Just kind of a mess. Maybe this should be like the State of the Union format so Biden gets a few minutes to respond at the end. 🇺🇸
Looking forward to macOS Sonoma, but decided to hold off with the install until next week, after we’ve shipped Micro.blog 3.2.1 for iOS. Don’t want to risk any last-minute Xcode build problems.
Impressed with Olivia Rodrigo’s album GUTS. Good stuff. 🎶
For day 26 of the photo challenge: beverage. My go-to coffee when at home, cold brew with oat milk. Getting started for the day with Micro.blog timeline catch-up and code pull requests. ☕️
When we first added ActivityPub support to Micro.blog years ago, I used the phrase “Mastodon-compatible” because I was worried that “ActivityPub” would be confusing for normal people. It now seems time to adopt “fediverse” as a term throughout our UI instead. Curious how Threads will handle this.
Skimming through more of this interview with me that was posted yesterday, really happy with how it turned out! Except the part in the middle where I forget @vincent’s name and you can see my brain turn to mush in realtime. We’re just human here at Micro.blog HQ. 🙂
With the writers strike ending, wonder how soon we can expect a return of SNL. No need to film anything in advance and I’m imagining all these comedians have a backlog of ideas.
Fun to see this new take on a Micro.blog client from @heyloura. It’s a great example of using the API to build a different user experience that can prioritize different aspects of navigation and features.
I love reading the perspective of people who have moved from their own Mastodon server to using Micro.blog hosting, like this post from @rachsmith. Thanks! There’s still more we could do to make this integration better.
There’s a new video interview with me up on YouTube. Thanks @numericcitizen for talking to me! We cover a lot about Micro.blog, thoughts about social networks, travel, hosting beyond someone’s lifetime, user experience, and what might be coming to Micro.blog in the future.
On the latest Core Intuition we talk about whether to order new Apple products, gripes about managing online payments for phones, and the macOS Sonoma upgrade from a dev perspective.
It’s a special photo challenge for day 23: a day in the life. This is me testing my camera this morning before being interviewed by @numericcitizen.
I’ve got a bunch of Bluesky invite codes. I’m just gonna put them in this Gist if anyone wants to grab one. I’ll update the list as I can, but you might need to try a different code if one is already taken. (I check in on Bluesky occasionally and let M.b send most of my posts over there.)
I’ve been ordering a lot of little things from Amazon lately as I try to turn my car into a micro-camper. Amazon has let way too many sponsored search results clutter up the buying experience. It’s going to hurt them long term if they don’t clean it up.
Love what Patrick Rhone is doing with this new blog For You. From yesterday’s post:
When you ask for help, you are not admitting failure or lack of ability to solve the problem. To the contrary, you are using your ability to bring further resources to bear.
Finished reading: Cloud Cuckoo Land by Anthony Doerr. Takes a little while to get there but love when all the threads start to come together. Wonderful. 📚
Ran through my Micro.blog demo at FediForum pretty quickly because I wanted to stay under the 5-minute goal, but also because my dog has been barking all morning. Can’t believe he was quiet for the whole demo.
I often tune into the news while eating breakfast. Impressed with Airbnb co-founder Brian Chesky on CNN this morning. He always seems more grounded and human than most CEOs.
I’ll be joining FediForum today. It starts in about half an hour. Mostly will lurk today, but looking forward to hearing what people are working on and what to solve next in the fediverse. Then tomorrow I’ll show off a little of Micro.blog.
I don’t usually look at Wordle stats. I solve the puzzles for fun and to wake my brain up a little, doesn’t matter if I get it in 2 tries or 6. But apparently I’ve played 543 times… Not sure I’ve played any game that many times before.
Today’s photo challenge word is “edge”… The retaining wall in our yard is currently being destroyed and rebuilt. Gotta make things nice for new potential buyers. 🏡
The second FediForum is this Wednesday and Thursday! Two half days. I’ll be doing a quick demo of how Micro.blog fits in with the fediverse, including recent Pixelfed integration.
Got my signed copy of Sword of Kaigen from the Kickstarter. The hardcover turned out great. 📚
Huge downpour as I was leaving HEB. I guess my life is boring, because running through the rain with my groceries, getting drenched, is the most alive I’ve felt in a while. Woohoo! We needed all of this rain. 🌧️
We “lost” an episode of Core Intuition because of audio quality problems, so we decided to post an edited transcript as a bonus for members. I’d like to make it public later, but for now you can get a link in the members channel on our Slack. See the membership page for more info.
Thanks to Hunter Biden for taking one for the team on the gun charges. Maybe the GOP will get serious about gun legislation and we can ban assault weapons next? (Sigh.) 🇺🇸
Skipping the iPhone 15 this year, my 14 Pro is still in perfect condition. No case, no scratches. I do envy USB-C upgraders, though.
Updated to iOS 17. No problems, seems like a good upgrade. I think it fixed the web view refresh flicker problems we’ve been having in the Micro.blog app.
I’ve just loosely been following the Pennsylvania inmate’s escape and now capture. Wild story. Kudos to law enforcement for capturing him without firing a shot, and no one injured.
iPhone 15 Pro action button is interesting. I wouldn’t mind a rethink of the volume and power buttons too. I still accidentally take screenshots or otherwise fumble with the buttons.
I enjoyed the Mother Nature video at the Apple event. Usually these videos seem overdone and unnecessary, but this was actually a fun format to list the same somewhat dense environmental facts. On the other hand, we’re 30 minutes in and no products I’m particularly interested in.
Took the new-to-me Honda Element in to get checked out and the cost for a bunch of random fixes is a little mind-boggling. It’s got 127k miles and I thought maybe I could push it to 250k… Now I’m starting to doubt. 💰
Over the weekend while I was working on my Letters from Europe page, I integrated footnotes using the Barefoot library. Completely forgot that @jsonbecker had already created a Bigfoot.js plug-in for Micro.blog. Anyway, now there are more plug-in options for footnotes!
24 years ago, Traci and I went to Europe with a rail pass and hardly any money or plans. We worked remotely: her as a contractor for Apple and me at a small Mac dev shop. Last week I rediscovered some emails and postcards we sent while traveling and I decided to put them together as a web page.
When the threads-api project was announced, it was so tempting to use it but I knew it would be too fragile relying on undocumented APIs. Sure enough, Meta has sent them a cease and desist letter and the project is now shut down. Trust in ad-based platforms will always get you burned.
The capitol and downtown buildings over yonder, reflecting in the windows. Eighth day of the Micro.blog photo challenge.
A couple people have read between the lines of my recent posts and wondered what is going on with my life. Short answer: we are selling our house of 17 16 years in northwest Austin and renting a place closer into town. Downsizing is hard. Feels like the right time for a major change. 🏡
App Store Connect is barely holding on today. Errors and more errors. Apparently this is the day I complain about other people’s software while I try to fix my own.
Starting to get the new Slack redesign in one of my workspaces but not others. I’m fine with the UI changes, but it’s jarring the way they roll these out so they don’t apply everywhere in the app.
Fascinating fallout happening in the JavaScript vs. TypeScript debate. In my experience, changing a language rarely brings the productivity gains you were hoping for.
More good advice from Manuel Moreale:
Please, for the love of all things web-related, if you decide to do anything online, get yourself a domain name.
We try to make this easy in Micro.blog, but it should be even easier. I’d like to spend some more time on it this year, so that transferring or configuring custom domains is effortless.
To follow up on some of the replies I’m getting about my hard drive, my philosophy is that nearly everything should be in one place. Less chance you will lose something important. Backups are simpler. Work anywhere. Same goes for what I post on the web: everything is on my blog.
Another new Micro.blog 3.2 beta is out for TestFlight. @vincent is tweaking the tags design and it’s looking really nice. I think we can probably ship this to everyone next week. And it’s a great time to try bookmarks and tagging in Micro.blog Premium if you haven’t upgraded yet.
Apple’s sending emails about getting apps ready for the Vision Pro App Store. Folks in the Apple dev community won’t like this, but I think Vision Pro will be a bust in the short term. Only develop for it for fun, not for a market. I’ll revisit it in 10 years when the tech catches up to the dream.
Can’t even calculate the number of hours and probably days I’ve lost because I cheapened out when I bought my MacBook Pro with too small of a hard drive. Still really like this computer (16-inch Intel) and don’t want the hassle of upgrading it just for more space.
We’re ramping up the TestFlight betas again for Micro.blog 3.2 with bookmark tags. The UI is still evolving. We’ll iterate quickly from here and get the final release out pretty soon.
Manuel Moreale follows up with some thoughts after interviewing me for his People and Blogs series:
That’s one of the main advantages of owning your place on the web: you can bend it and shape it to do exactly what you need it to do.
I love even the small tweaks we can make to our own sites. Having control over your site helps it fit your words and photos in a way that just isn’t possible when plugging content into the cookie-cutter mainstream social media platforms.
So many things are happening right now. Car, house, work. Change starts slowly but once momentum hits, it’s kind of unstoppable.
Love this new bookstore + coffee shop in Austin, First Light Books. Lots of thoughtful touches like the laptop-free book nooks for reading.
The photo challenge grid for Micro.blog is so cool right now. Lots of green for today (“forest”) and orange for yesterday (actually “orange”). Thanks everyone who is participating!
For technical folks who are interested in the plumbing of the social web, @snarfed has a great feature grid that compares IndieWeb, ActivityPub, Bluesky, and Nostr.
Day 2 of the Micro.blog photo challenge: buildup.
First day of the Micro.blog photo challenge: abstract.
Found some old postcards and emails we sent from Europe in 1999 and they are absolute gold. May try to put some of them online as an archive if I get permission from @traci. Here’s a highlight from traveling before wi-fi existed:
We won’t be connecting the PowerBook to the Internet again until we get to the next city, probably, but we should be checking email the rest of the week anyway. There’s a restaurant here that gives free Internet access when you order a dinner, which should be nice if it’s true.
Nice blog post from Allen Pike about link formatting. I’d add that overthinking SEO is a good way to lose your way. Design links for readers and the rest will take care of itself.
After owning a house for 20+ years, submitting a rental application is a nerve-racking process. Don’t usually have this kind of fear of denial.
Manuel Moreale has started a new People and Blogs series where he interviews people about their blogs. The post with me just went live today. I love this idea and look forward to future posts in the series.
This is how Amazon always wins… I want to pick up an organizing storage-type thing and think IKEA would be perfect. But it’s a bit of a drive, so I check Target and they have basically the same thing. But then I realize Amazon also has something similar that can be here tomorrow for zero effort.
It’s just about time for the September photo challenge! Got any ideas for prompt words to inspire each day’s photos? Jean has the details here and her email address to send them to. We’ll pick a random word each day and collect everyone’s photos together.
The third-party Mastodon web app Phanpy has a conversation view that reminds me a lot of Tweetie on iPad. The multi-pane layout in that app never really caught on, but I always thought it was a nice use of space.
Noticing the moon as a long day winds down.
Sarah Gooding, writing at WP Tavern about Automattic’s 100-year plan:
What resources will a URL (Uniform Resource Locator) point to 50 years from now? Or will URLs be discarded into the scrap pile of obsolete building blocks as soon as there’s a better, more efficient way to identify web addresses?
I think URLs and HTTP are here to stay. The web is over 30 years old and the basic foundation is strong.
There’s a new episode of Core Intuition out. We talk about Daniel shipping a beta of MarsEdit with Mastodon support, the value of feedback from customers, upcoming plans, microblogging and social network differences, and how sometimes we have to cut features to ship.
There are a bunch of things I want to add to my Honda Element to make it my own. I just finished the first upgrade: CarPlay. I didn’t really know what I was doing but somehow stumbled through it. It is a huge improvement compared to the 15-year-old factory radio.
Documentation online is a little inconsistent for this kind of upgrade. I wasn’t totally sure if the parts were correct until they arrived. In the end I used these:
If you are reading this in the future to upgrade your own car, note that I have a 2008 Honda Element SC. I don’t know if these parts would work perfectly with earlier or later models, or the EX or LX trims.
First step, disconnect the negative on the battery. Finding the right socket wrench in our garage took nearly as long as anything else.
With a little plastic removal tool, I popped up the faceplate around the radio. After that it’s easy to unscrew the old unit and take it out.
I stripped the wires on the new Sony unit and connected them to the appropriate wires on the Metra wiring harness. I didn’t have any fancy wire connectors so just threaded them together, twisted them, and wrapped in electrical tape. I went very slowly and think it turned out fine.
Finally, all that was left was to install the unit. I screwed everything in and popped on the new plastic covering. Some of the original wires from the car weren’t used so they are just dangling hidden inside. Hopefully they weren’t too important!
I also fed the microphone wire down to the floor so it can attach on the dashboard or behind the steering wheel. Haven’t totally figured out the best place for it yet.
Very happy with this upgrade overall. I probably should’ve had a professional do it, but I learned a lot. My car feels like it belongs in this decade now.
Still playing Wordle almost every day. Happy Wordle #800 day! 3/6
⬛⬛⬛⬛⬛
⬛🟩⬛🟨⬛
🟩🟩🟩🟩🟩
The music video for Used To Be Young by Miley Cyrus really struck me. Simple. Powerful. 🎵
Restaurants usually wrap a fork, spoon, and knife in a napkin. I got three knives instead! Someone in the kitchen is laughing. Keep it weird, Kerbey Lane.
And to follow up on this, there’s a little known policy for Micro.blog hosting: when you have a paid subscription, we continue to host your blog forever even after you cancel and stop paying. Good URLs don’t change and don’t go away, unless you want them to.
I love this idea: WordPress.com’s 100-year plan. But at $38k, it’s too expensive for most people. I’ve been planning something similar as a complement to Micro.blog, but from a completely different angle.
Looked through my old Clipstart source code for the first time in years, to answer a rare support question. Probably should’ve open-sourced the app. Everything broke when Apple abandoned QuickTime.
Heck of a mugshot, Trump. It feels like an angry, fitting reflection of that line from his inauguration speech: “This American carnage stops right here and stops right now.” 🇺🇸
Funny how different I drive depending on the car. In the Subaru Outback, adaptive cruise control on and let the car steer itself. In my son’s manual transmission Honda Civic, kind of recklessly like I’m street racing. And in the Honda Element, in the slow lane as if I have all the time in the world.
Sunset as we drive over the Trinity River in Fort Worth.
Made a sort of impulsive purchase of a used car: 2008 Honda Element SC, for a mini camper. Full details, photos, build, and more to follow in a longer blog post when I have it in my hands and set up. “It doesn’t make any sense. That’s why I trust it."
Jean just announced our next Micro.blog photo challenge! Starts September 1st.
Two years ago this week, Glass launched for iPhone. I had subscribed right away because I wanted to support their work and saw potential in it, even if I will always default to posting photos to my own blog first. Since then, Glass has added an Android version and a web version, along with other improvements like tags and appreciations.
Not long after Glass launched, we added special support in the Micro.blog iOS app for it. You can see a video of how it works in my blog post here. Unfortunately in the rewrite for Micro.blog 3.0, we had to temporarily remove the feature, although it’s slated to come back in version 3.3.
In that post about supporting Glass in 2021, I wrote:
Glass is so new that it remains to be seen where the app will go, and how it might expand in the future. It shares some of the same principles as Micro.blog — no ads, no algorithms, no likes — but Glass lacks important open web features like domain names and IndieWeb APIs.
Glass still lacks those features for the open web. After a couple years, if having an open API was at all on the radar, it probably would have happened by now in some form. The founders seem more interested in creating an Instagram alternative — another silo without an API or federation with other networks. And in 2023, I don’t think that works.
There is now mainstream pushback against big centralized platforms. We have Micro.blog and Mastodon. We have free photo platforms like Pixelfed. It is a harder sell for customers to spend $5/month for a photo service that is mostly disconnected from the rest of the social web.
I was thinking about Glass while looking into their export format, in case we wanted to support importing it into Micro.blog. I don’t plan to cancel my subscription, but I would not be surprised if many Glass customers have slipped away. The latest big announcement from Glass — an optional $99/year Patron membership — is geared toward increasing revenue from existing customers rather than growing the customer base.
We’ve been running Micro.blog for 6 years. I know how hard it is to balance marketing to new subscribers, keeping churn down, and offering new features regularly, including upgrades to higher subscription tiers. We barely have it figured out now and we were certainly a long way off after only 2 years. The default for SaaS platforms is the slow ramp of death.
There are effectively no success stories for Glass’s current business model. Small clones of Instagram and Twitter usually fail. To break out, there has to be something fundamentally different. For Micro.blog, the answer is simple: we are a social network but our business is blog hosting, a proven model. For Glass, the answer is less clear: they care deeply about photography, community, and design. I think the founders deserve a lot of credit for creating something beautiful. Is that enough?
I don’t know what the right model is for Glass, but I’m confident that it should include a strong foundation for open web standards. I hope that can be part of their vision. It might even be critical to the future success of the service.
Marty and Doc waiting for the DeLorean to be constructed.
Discovered the Snow Peak brand of camping-related products this week… Love the design. I didn’t know I needed $50 chopsticks for camping, but now I want them! Seriously though, some amazing stuff here. Camp stove with modular kitchen setup looks great.
August is halfway over? Summer must be slowly winding down. Last chance to get our special Summer of Blogging $1/month blog hosting. A great value that includes all the standard features that are built into Micro.blog, like full blogs, photos, book blogging, and cross-posting to 8 platforms. ☀️
This year I’ve fallen behind in email again. Very sorry to Micro.blog folks who have waited patiently too long for an answer. Attempting to dig out by replying to all emails from today and also some of the oldest emails, each day until caught up.
NBA in-season tournament dates announced. It’s a little odd to me how it’s spread out over so many weeks, but I’m still excited about it. Should make all of those games much more interesting. 🏀
Stayed up late watching the Georgia indictment details get revealed. Incredible to see the conspiracy outlined so thoroughly even though it was expected. There was also an excellent interview with Hillary Clinton on MSNBC. Trump will not be president again. No way. 🇺🇸
I recorded a video walk-through of Epilogue today and posted it here. Shows off the basics of tracking books you’re reading, and also a few not-so-obvious features.
It has been a great summer for movies. We’ve wrapped up seeing most of the “big” movies, so here’s a mini review of each.
Spider-Man: Across the Spider-Verse. I love the art style in these movies. When the big animation studios moved from 2D to 3D, we lost some of what made hand-drawn animation so beautiful. Getting a little bit of that back now.
Mission: Impossible 7. So much fun. The driving off the cliff scene might’ve been a little over-hyped leading up to the movie. Super dangerous but I think scaling the skyscraper (in 4) and hanging on to the side of a cargo plane (in 5) were both more stunning. Still, some great action.
Barbie. Really enjoyed this. It’s the kind of movie that you wouldn’t think would work. In the hands of a less-capable director, could’ve walked the line poorly between bad and brilliant. Still listening to What Was I Made For? by Billie Eilish.
TMNT: Mutant Mayhem. Pushing the boundaries of 3D animation again like the Spider-Verse movies. I remember reading my friend’s original black and white TMNT comics back in the day, but the new movie doesn’t require any previous knowledge to enjoy it.
Oppenheimer. Possibly a masterpiece. I was expecting great visuals, which is why we waited to see it on 70mm IMAX, but the pacing and acting and everything else also blew me away. Lots to think about afterwards. The best movie I’ve seen in years.
Oppenheimer was great. We drove down to San Antonio to see it in 70mm IMAX. 🍿
Packing up some old books. I’m trying not to look at everything, but every once in a while there is something priceless tucked away in a book that I had forgotten about, sometimes decades old. An old letter, postcard, or sketch.
Octopus tagging along with us during IKEA shopping this weekend.
I added a tags window in the latest Mac app for Micro.blog. Makes it easy to filter your bookmarks to a tag from the keyboard. Hit command-shift-T, type part of the tag, then the return key to focus the list, and return again to navigate to the tag. (Tags are for Micro.blog Premium.)
I enjoyed the conversation on the latest ATP about text editors. Lots of deservedly good praise for BBEdit. I’m sure the hosts have gotten feedback about this already from listeners, but surprised there was no mention of Panic’s Nova.
Feels like a good time to give an update on what text editors I’m using these days.
Xcode: This is obviously still the only reasonable way to go for Mac development. In the last few weeks I’ve shipped some updates to Micro.blog for macOS. Always fun to fire up Xcode, hammer out a feature, and ship it without much fuss. A couple things seem slower than they used to be, like debugging and auto-complete, but otherwise no complaints.
Nova: This is my go-to text editor for web projects now. Ruby for the Micro.blog web platform, JavaScript for the React Native app. Nova is arguably the most modern, native Mac text editor, and regularly updated. Lots of depth and I haven’t even scratched the surface with extensions.
Ulysses: This is essentially my note-taking app. I sync to a Dropbox folder with thousands of little text files. I prefer Dropbox instead of iCloud so I can edit more easily in any app, with backups and restoring old versions. I put draft blog posts here, notes about projects, upcoming trips, and anything that isn’t code-related.
BBEdit: This is for everything else. Looking at JSON and XML. Processing large text files, find-and-replace, grep. As a quick scratchpad for code or notes that I’m going to throw away. I haven’t totally customized it like John Siracusa, but I do have a couple shortcuts and scripts that I depend on. Rock-solid app that has withstood the test of time.
Austin this morning from the train station. Unfortunately just a drop-off, not going anywhere myself.
Whenever I create a new file in Xcode and choose Objective-C as the language, I laugh a little. Am I creating more technical debt or am I saving countless hours of time not dealing with the sharp edges of half-baked new tech? Zig when they zag.
Just posted this week’s episode of Core Intuition: Homemade Granola. Not actually about food. We talk through my frustration with Apple-only development, Apple’s power over distribution, and where the Vision Pro sits on the spectrum of open to closed Apple platforms.
Back to cool air after our upstairs A/C went out for a day. Something usually breaks every summer, and the heat has been especially ridiculous in Texas this year. Very thankful for a quick repair, less than 24 hours. ☀️
Did some testing this morning with Goodreads and it’s slow and clunky. Timeouts. Really happy with how much we’ve streamlined Micro.blog’s bookshelves so they are fast. Paraphrasing a Jason Fried quote: we can’t predict the future of technology, except that no one is going to want apps to be slower.
Spent the afternoon polishing up the next Android release of Epilogue and submitting it to Google. Because I don’t use Android often, I don’t have a great sense of what UI feels right. Things like swipe-to-delete are very inconsistent across apps. New version is definitely better, though.
Congrats to Casey Liss on shipping Callsheet. I’ve been using the beta. Great app for quickly looking up someone from a movie or TV show while on the couch. This will replace IMDb for most people… It’s just a better experience.
Great article by Christina Warren on the history of the App Store and why we’re due for some kind of change, likely helped along by the EU’s Digital Markers Act. Apple taking a cut of all developer revenue is not sustainable forever.
Interesting news on GitHub for Mastodon search, noticed via @darnell@one.darnell.one. Full-text post search is coming, will be opt-in. Discoverability and search is a frequent topic on Micro.blog so I’ll be following this closely.
I’ve gotten out of the habit of posting to Threads. I like the foundation Meta has built with Threads and expect it to be successful, but I’m going to scale back my use until ActivityPub is ready. Most of what I write (including this!) needs to start on my blog.
Fixing bugs and submitting apps to App Review this morning. As a long-time Apple developer going back to the 1990s, I now spend most of my time on web and cross-platform technologies. I’ll always love the Mac, but what a trap the Apple-only development rabbit hole is. Apple is too big and dominant.
Today we added Pixelfed cross-posting to Micro.blog. This joins our existing set of cross-posting services like Mastodon, Tumblr, Flickr, Bluesky, Nostr, and others.
Now you can post photos to your own blog, at your own domain name where you control your identity, and have Micro.blog send a copy elsewhere automatically. When posting, you can optionally select which services you want to include:
Because Micro.blog has built-in support for ActivityPub, your friends on Mastodon can also follow your blog directly without you needing to copy anything, or without you needing an account on any other platforms. There’s a lot of flexibility in how you want to configure this and which services you want to use. Some people even like to create a separate microblog just for photos.
As with all Micro.blog features, we’re looking forward to hearing how people use this. Photos are special, and there’s always more we want to do with them. We’ll continue to tweak the Pixelfed cross-posting based on feedback. Enjoy!
Snapped this photo while we were making a u-turn in Dallas the other day. Took my daughters here 14 years ago for lunch with their dolls. 🥲
I’ve driven by this tower a bunch of times on I-35 and was always curious about it. Turns out it’s an experiment in wireless energy transmission, built in 2017. A century after Nikola Tesla, fascinating that folks are working on this again.
We added a new about page with a little more about what Micro.blog is and what our values are.
I’m still waiting to see how DMs evolve in the fediverse before deciding what to do with Micro.blog, but one thing I’m sure of: we’re not going to have messaging that isn’t encrypted. Private replies to Mastodon users (which works now) will remain as a legacy feature, mostly hidden away.
Interesting what @dansup@mastodon.social is up to with a new messaging app called Sup. Early video demo is here. Sounds like it uses Mastodon to connect with users, but Signal protocol instead of ActivityPub for messaging. Meanwhile I still like Nostr’s approach to encrypted DMs.
Mystery boxes of records at Josey Records in Dallas, $10 each.
Frustrated with Dropbox ever since Apple required these sync apps to move to a new official API. Dropbox was rock solid, always working. Now I see frequent Finder errors or refusal to move files around. I know, “security”, but from sandboxing to this, not convinced locking down macOS actually helps.
Half Price Books flagship store in Dallas. 📚
For folks who have been using Micro.blog bookmarks… First of all, thanks! I’m curious: do we need a workflow for tracking “unread” or “read” articles? I’ve been wondering if we could do something clever so you could “tag” an article as read, maybe with an emoji or special tag.
Empty apartment with built-in bookshelves, just one potential future. We’ve been thinking about downsizing ever since all the kids moved out. Change is hard, though.
Finished reading: Age of Myth by Michael J. Sullivan. This was great. Really well paced, seems like a perfect setup for the series. First of six books. 📚
Writing some new web page text and maybe it’s early in the morning or maybe I watched too much of the news already today, but when I tried to type “independent” I misspelled it and it auto-corrected to “indictment”. 🇺🇸
Wasn’t expecting this kind of profound wisdom from the apartment sales guy today: “The world is too big to stay in one place.”
When the coffee shop recognizes me and remembers my regular order, it’s gonna be a good day. ☕️
Matilda at Zilker Hillside Theater. 🎭
If you’ve been fascinated with the Worldcoin Orb, but not sure how to feel about it, check out Molly White’s comprehensive write-up:
Having my eyeballs scanned by a shiny chrome orb so I can someday receive cryptocurrency disbursements because artificial intelligence has stolen my job sounds like something from the pages of a half-baked sci-fi novel. It also sounds like the kind of operation that venture capitalists would value at over a billion dollars.
Over the last couple years, I’ve gone from mostly reading books on a Kindle (Paperwhite), to only on the iPad Mini, and now back to the Kindle (basic 6-inch). Actually prefer the smallest screen.
Recorded another very short screencast to show the latest Micro.blog for macOS update. Less than a minute long. It’s here on YouTube.
Didn’t realize how exhausted I was toward the end of the week. Yesterday shipped new features, then took a nap after dinner, then read, then had a full night’s sleep. Up early and worked on the Mac app, shipping the 3.0.1 bug fix update. Feel back on schedule now.
Today we are shipping a new feature for Micro.blog Premium subscribers: bookmark tags. This is a big improvement for using bookmarks, and it touches several parts of the platform and apps.
There is updated documentation for bookmarks with new screenshots. There is a new version of the Mac app: version 3.0, with not just bookmark tagging but also a new interface for seeing recent highlights.
Wait, highlights? Yes, a little-known feature in Micro.blog Premium is that you can bookmark anything, not just short microblog posts. When you bookmark web pages, Micro.blog downloads a copy of the text so you can read the web page later without all the clutter. In this reading mode, you can select text and save highlights to your Micro.blog account, making it easier to find passages of important text or blog about them later.
I recorded a screencast video here on YouTube with a demo of bookmarks and highlights. It’s 8 minutes long. 📺
We’ve been thinking a lot about how to improve bookmarks. One seeming disconnect is that your hosted blog uses categories, not tags. This was deliberate: categories are generally simpler and more obvious as a navigation aid on your blog for readers. In other words, categories were chosen as an optimization for your readers, and deciding to only have categories and not tags keeps the interface in Micro.blog streamlined.
You’ll need different tools to organize bookmarks, and you may eventually have thousands or tens of thousands of bookmarks. Micro.blog imports existing bookmarks and tags from Instapaper, Pocket, and Pinboard. The ad-hoc nature of tags is more flexible and optimized for quickly adding bookmarks, compared to blog posts where you may want to put a little more thought into where readers expect a blog post to live within a shorter list of categories.
We’ll continue to improve bookmarks as we hear from folks who are consolidating their data to Micro.blog. I expect there will be feedback about different workflows people are used to.
A note on pricing. Micro.blog Premium is our $10/month subscription, with the bookmark features plus podcast hosting, video hosting, and email newsletters. While nearly every other service in the world has increased their prices in the last few years, Micro.blog’s base subscription remains at $5/month. We can do this because we have customers who have upgraded to the optional $10 plan.
If you’ve been wondering about Micro.blog Premium, I hope these new features give you a reason to check it out. You can upgrade or downgrade whenever you want. We never delete your data when downgrading, so it’s always there if you want to come back to it.
Happy bookmarking! 🏷️
At this point I just laugh when Xcode tells me WebView has been deprecated since macOS 10.14. I know! I could set aside a week to rewrite code that works, or wait until it’s removed from macOS, which I’m skeptical will ever happen. (Haven’t updated to Sonoma yet, though…)
Finished reading: Dungeons & Dragons: The Druid’s Call by E. K. Johnston. I think I was drawn to these prequels because of the fond memories I have of reading Dragonlance back in the day. 📚
This time we got him! 😜 New surprise indictment:
According to the court filing, Trump employees attempted to delete security footage at the Florida resort and one said “the boss” wanted a server deleted.
🇺🇸
This week’s episode of Core Intuition is up! We talk about X.
Going to bump to version 3.0 for the update to Micro.blog for macOS tomorrow. I think it’s warranted with the new bookmarks stuff, but also because the last version was 2.9.1 and I don’t believe in .10 versions. (It’s hard to explain… Somewhere in the Core Intuition back catalog we talk about this.)
Listening to What Was I Made For?, by Billie Eilish. Went to see Barbie a couple days ago and still thinking about it a little. Really good. 🎶
Threads appears to count every character in a URL as part of the 500 characters. A little surprising because I’m used to either Micro.blog (with inline links so no URL counts) or Twitter and Mastodon (with all URLs counting as a fixed size).
Micro.blog doesn’t have full search or hashtags by design, and I know it can be frustrating sometimes. I hear it. But this report on child abuse material across Mastodon instances is part of why:
During its search, the team found 554 pieces of content that matched hashtags or keywords often used by child sexual abuse groups online
Until moderation and automatic flagging can be deployed at scale, it’s better to go slowly.
Dave Winer posted a 12-minute audio recording on his blog, addressed to me but applicable to everyone who is creating tools for the social web. Listening to it, I have a bunch of thoughts. In this post, I just want to start with server-to-server ActivityPub, and leave some of the other technologies Dave brings up for later.
A few days ago I was revisiting the ActivityPub code in Micro.blog because we have some interoperability problems with Calckey, now called Firefish. Firefish is a Mastodon-like platform with a few unique design twists and features. To narrow down where things were going wrong, I read through the ActivityPub spec again and also looked at JSON responses from other platforms like Mastodon and Bridgy Fed.
To frame this blog post I’ll put forward this question, at the heart of interoperability on the fediverse:
Is it possible to implement a social web platform by reading the suite of ActivityPub specs, and have that new platform be compatible with Mastodon?
I would argue no, it is not possible. A new project would only be compatible with Mastodon by accident because there are some things that are not spelled out in precise detail in the specifications, and no JSON examples that exactly match what any server sends or expects. The specs have all the pieces, but not how to fit those pieces together.
In addition to the specs, Mastodon’s own documentation is very good, and it has improved even in the last year. But again, if you ask a developer to implement ActivityPub, they will naturally start at the W3C.
I hope this doesn’t sound overly critical. The fact is, ActivityPub is complicated, and by design this kind of architecture can only be simplified so much. A lot of great work came out of the W3C’s Social Web Working Group, including IndieWeb standards, and I don’t think the authors had enough time to get consensus on some parts of ActivityPub before publishing, nor could they predict everything a platform like Mastodon or Micro.blog might need. Recently, Evan Prodromou has been leading the effort to address GitHub issues and move things forward.
I said “suite” of ActivityPub specs above because ActivityPub is not really one thing. There’s the ActivityPub spec itself, but also ActivityStreams, HTTP Signatures, WebFinger, JSON-LD, and the working group note on authentication.
And there are other features, such as account migration between instances, that are not documented outside of Mastodon. This is why the IndieWeb principles warn of monoculture. We are lucky that Mastodon cares deeply about the open web, because other dominant platforms might have less incentive to make their extensions work outside their own ecosystem.
The current fediverse is impressive. It’s further along than most people would’ve guessed possible a few years ago, largely thanks to Mastodon’s polish and Twitter’s implosion. The next step should be getting to the point where the answer to my question above can be “yes”. How can new developers add support for ActivityPub without feeling like they are reverse-engineering every existing server?
We don’t necessarily need a new spec, although it would be helpful to have a single document that ties everything together — a guide that a developer could use to build something and be confident that it has a chance of being compatible with other platforms. I also think we should consider further simplification, such as making JSON-LD optional (!) and drafting a streamlined version of ActivityStreams with only the bare minimum object types that most servers need.
There is a lot of work to do, even outside of ActivityPub. As Dave mentions, we also need a common posting API. The most popular Mastodon client apps do not support either ActivityPub or Micropub. But a lot of progress can be made focusing on interoperability for the server-to-server part of the API. That should be the top priority with Threads set to join the fediverse.
Working on a new Mac feature that would be nice with SwiftUI, but we still run back to macOS 10.14 Mojave. Would have to jump forward several versions of macOS. Not worth it. Do plan to bump up the requirements a little, though.
Got my copy of Yumi and the Nightmare Painter in the mail today. I continue to be amazed at how great these print editions look. My favorite so far. 📚
Interesting that for single-letter .com domains, only q, x, and z are in use. They were registered before ICANN reserved the rest of the letters in 1993. I typed a through z in manually but could’ve saved time by reading the history on this Wikipedia page.
I’m still a little stunned that Elon followed through on x.com, even though it was expected. It’s remarkable how he both fixed the last decade of indecisive leadership at Twitter and used that new power to destroy the brand, maybe the one thing at Twitter that wasn’t broken.
The second FediForum has been announced, coming up in September. I really enjoyed the discussions at the last event and plan to attend this next one. They also have the video for the quick demo I did of Micro.blog and how it interacts with Mastodon.
Occasionally I go looking for new domains and I’m always annoyed with all the new TLDs that Amazon has reserved that they don’t allow anyone else to use: .book, .read, .like, and others. They’ve been sitting on these for years. It’s like domain squatting at a massive scale.
Spent a few hours yesterday trying to get Micro.blog to work better with Calckey (now Firefish). Made progress but not enough. ActivityPub remains extremely difficult to debug without reading the source code for other projects.
Finished reading: The Ember Blade by Chris Wooding. Read the first half of this a few months ago and then took a break before picking it up again. Really gets going in the second half. Excellent. 📚
A new episode of Core Intuition is out. We talk about Apple’s threat to withhold iMessage from the UK, what is acceptable for public surveillance, and the larger issue of powerful tech companies leveraging their size for good and bad.
Dusted off the old Drobo, which hasn’t been plugged in for a year. A little surprised it still seems to work. Don’t feel great about investing in a dead product, but might get another drive to put in it anyway.
Thinking about ActivityPub made me wonder what Tumblr has been working on, so I clicked around over there for a bit. I missed that Tumblr has live video now, with tipping in “diamonds”? Seems a little out of place with the rest of the platform.
Reminder that it’s still summer, which means we’re still offering blog hosting for only $1/month to new folks who join Micro.blog. There’s no easier way to blog that’s as full-featured and affordable. Feel free to share the link to anyone who might benefit from it! ☀️
Major addition to bookmarks in Micro.blog is coming along really well. Likely will ship next week. 🏷️
Power in the house went out. Summer in Texas is never a great time for this. Hopefully not long, lots of worker trucks in the neighborhood trimming trees and scheduled maintenance on the meters. Getting almost no signal on Verizon, so had to go to the coffee shop for a while to work. ☕️
I still believe we should welcome Threads to the fediverse, but the news that ActivityPub seems far off has soured my experience posting manually to Threads from my microblog. They grew too big, too quickly. Meanwhile, sounds like Tumblr’s ActivityPub effort has also stalled.
As I think about how to add tags to bookmarks in Micro.blog, I’ve been drawing inspiration from services like Pinboard but also my own (now sadly defunct) Mac app Clipstart. This video demo was from way back in 2009… I think the tagging UI is still really good.
Just posted a new episode of Core Intuition all about the Threads launch. Misunderstandings about ActivityPub, judging the leadership of Meta and Twitter, and whether Threads will beat Tumblr to supporting this open standard.
Frustrated with emails not reaching Micro.blog users, I’ve been working through steps to make things more robust. First added SMS as an option, then Sign in with Apple, and today we’re moving a percentage of emails from SendGrid to Amazon SES so we’re not reliant on a single platform.
We finally installed a new smoke alarm that has only been sitting unopened in its box for about two years. Feels like a major Saturday accomplishment. Very slowly upgrading everything.
First thoughts on Retro: great design and for me fills a similar role as BeReal. Not a true Instagram or photoblogging alternative because it’s focused more on private-ish photos. We don’t need another silo but in that niche they can get away with not being open.
Love this post from @adactio not just because he’s using Micro.blog cross-posting (thanks!) but also because the approach is exactly what we believe in. Start with your blog first:
When the current crop of services wither and die, my own website will still remain in full bloom.
I don’t plan on using Threads indefinitely, but I am curious about the user experience, both good and bad. The algorithmic timeline is so puzzling to me. Despite following people who are posting, I first always see posts from people I’m not following. Seems overly tuned to the popular.
Over the last few days we rewatched Mission: Impossible 4-6, then went to see 7 tonight. Enjoyed it. Intense as expected. The audience was into it, laughing and clapping. 🍿
As the fediverse grows, new people will hear about Micro.blog and send us feedback about how we can improve. Always good! I listen to everything. On the other hand, the fact that the fediverse is so big means we can do things differently and still be successful. Not all platforms should be the same.
Reminded by Jeremy Keith’s post of this quote from Robin Sloan. Beautiful, true:
The speed with which Twitter recedes in your mind will shock you. Like a demon from a folktale, the kind that only gains power when you invite it into your home, the platform melts like mist when that invitation is rescinded.
Finished reading: Yumi and the Nightmare Painter by Brandon Sanderson. This book alone was worth backing the Kickstarter project. Loved it. 📚
A new TestFlight beta is out for Micro.blog 3.1. The big changes for this release are per-post cross-posting options and video upload. (Might still be some problems for certain video files. Proceed cautiously in that part of the app.)
We’ve known for years that our onboarding in Micro.blog is bad. It’s tough to start with no followers and no recommended users. But even so, we’re not going to do the Threads or TikTok thing to just show a bunch of random popular crap. There’s gotta be a middle-ground to help people without that.
There are some quirky code design decisions in Micro.blog. For example, I prefer flat structures and all model classes are single words. Most are database tables and some are background tasks. Sounds obvious until you look at literally any other large web server project (and try to name things).
Accidentally clicked the “Post” button instead of “Bookmark” on that last link. Deleted it and the deletion should’ve propagated everywhere. I’ve fully switched to Micro.blog for managing bookmarks and web highlights… Perhaps we need an additional check to avoid accidental posts of just URLs.
The wild thing about Twitter’s demise is that it’s not too late to turn the platform around. Now that it has been burned to the ground, it could be rebuilt with a focus on standards, community features, and useful paid subscriptions. Would need new leadership, like a reverse-takeover from Bluesky.
Love what we saw from Victor Wimbanyama over the weekend. I missed some of the 4th quarter from yesterday’s game, so rewatching the highlights. Go Spurs Go. Next season is going to be fun. 🏀
I thought it would be a fun weekend project to port a simple WordPress.com theme to Micro.blog. What a mess! Lots of different CSS files that look like they were generated by machines, not humans. It’s drifted too far from the “view source” web.
Working on some more flexibility this morning to give people options for blocking Threads and other instances. Mixing lots of account types in one system is increasingly complicated: Micro.blog usernames, Mastodon handles, IndieWeb domains, newsletter email addresses… Spaghetti code.
Evolving thoughts on web scraping. First, I figured anything goes. Later, I was hesitant to depend on any web site structure that would break, and I wouldn’t work around attempts to stop scraping. Now, I’m back to thinking if you don’t want people to see something, don’t put it on the public web.
With Threads hitting 80 million users already, a lot of folks are dismissing Bluesky. But maybe it’s more important than ever for Bluesky to succeed. Or pivot slightly and implement enough of ActivityPub to co-exist? Micro.blog already cross-posts to Bluesky and I haven’t ruled out full federation.
Time to get serious about finding the Sorcerer’s Apprentice Mickey.
Fighting with our Nest thermostat all week. It wants to save energy and I want to not die of heatstroke in my own house. ☀️
Finished reading: The Magician’s Daughter by H. G. Parry. 📚
“I can’t wait to wear that Spurs jersey for a first time.” — Victor Wembanyama, ready for NBA Summer League in Vegas tonight 🏀
Ben Werdmuller blogs some second thoughts about Threads:
But there’s a bad taste in my mouth that isn’t going away, that has its roots in the genocide that Meta enabled through its actions and inactions, and the political polarization in the United States that it was undoubtedly a part of, and in Cambridge Analytica…
Good post. We haven’t forgotten about this or any of the other problems with massive ad-based platforms. I think it’s okay to hope that Threads is a step forward for open networks and want Facebook to fail to control social media again.
My posting workflow this morning: I post to my blog from my Mac, it goes out via ActivityPub, RSS of course, and Micro.blog sends it to Bluesky and Nostr. Then I go to my iPhone and… copy/paste it into Threads! iPhone-only may have been alright for Instagram, but it’s not gonna fly here for long.
There’s some great stuff in this comic. This rings true:
One of the most fun things about Twitter is complaining about being on it all the time because I am wildly addicted to it and how miserable it makes me. I hated it until Elon came and ruined it now I want old Twitter back again so I can hate how it was before again.
🤣
Watching CNN this morning over breakfast, they said “fediverse”… So yeah, decentralization is edging into the mainstream. Progress.
Finished reading: A Prayer for the Crown-Shy by Becky Chambers. A great second book. Hope there are more of these. 📚
One of the things I’m most proud of with my blog is how consistent I’ve been about the problems with social media. It felt a bit tilting at windmills to quit Twitter in 2012. No love for Facebook, either! But now we have a framework for solutions and can judge these big companies beyond gut feeling.
I’ve been blogging short posts this week about Meta’s launch of Threads, but I think it’s worth a slightly longer post with a quote from this interview with the head of Instagram, Adam Mosseri, on the Hard Fork podcast. Adam has a couple answers to why ActivityPub. The part that is most revealing to me is that he sees the industry going this way already:
I do think that decentralization — but more specifically or more broadly — more open systems are where the industry is getting pulled and is going to go over time. And for us, a new app offers us an opportunity to meaningful participate in that space, in the way that it would be very difficult to port an incredibly large app like Instagram over, and so to lean into where the industry is going.
This didn’t happen by accident. Many developers have been working to bring awareness to the problems of massive, centralize platforms — and bloggers and journalists have been doing the same — so much that users increasingly understand the value of decentralization and content ownership. Not everyone has jumped into Mastodon for various reasons, and not all smaller platforms have taken off, but it still helps get to where we are today that one of the most closed platforms ever (Facebook) is on the verge of rolling out support for an open protocol.
Eugen Rochko also blogged about this as an important milestone:
The fact that large platforms are adopting ActivityPub is not only validation of the movement towards decentralized social media, but a path forward for people locked into these platforms to switch to better providers. Which in turn, puts pressure on such platforms to provide better, less exploitative services. This is a clear victory for our cause, hopefully one of many to come.
What’s next? Imagine if later this year or early next year, Tumblr is able to follow through on their goal to support ActivityPub. Having such large platforms be even halfway interoperability was only a dream a year ago.
Posted this week’s episode of Core Intuition. Random topics like the potential Elon vs. Mark fight and then a first-look at macOS Sonoma’s support for saving web apps.
Blaine Cook on Threads bootstrapping from Instagram. I’ve seen a couple variations of this from other folks too:
Threads is blowing up because Facebook is using their monopoly on the social graph. Legislation to guarantee easy, fast access to your own contact lists for use in non-billionaire-owned media would help level the playing field, because Zuck & co sure aren’t going to give the connections they stole back to us otherwise.
Ignoring fairness, it would’ve been more interesting if Threads had started from scratch, even just as a comparison with e.g. Mastodon stats.
Nice instructions from @Mtt on how to use Micro.blog to verify your Bluesky or Nostr domain. Hopefully we can make this a plug-in or setting later.
I’ve been saying for a while that the fediverse will likely evolve to having maybe 10 medium-sized platforms, not 1000+ small servers. It won’t be a failure if Threads is one of those. It’s still much better than a single platform with a billion users.
Manually cross-posting to Threads to play with it and learn. As soon as it federates I’ll stop posting and people can just follow my Micro.blog-based blog directly.
Really enjoyed the new Indiana Jones. Easily the third favorite after Raiders and Last Crusade. 🍿
Meta’s Threads will obviously have ads later. Until now it hasn’t been clear what business model Bluesky is going for and whether it aligns with most users’ interests. Great to see their first paid service is domain name registration.
Setting up Threads. No surprise that getting started based on Instagram identities is super easy, even though I stopped posting to Instagram years ago. Smart move by Meta. (Doesn’t mean I like Facebook. Just exploring.)
I-10 over the Sabine River.
This is not what you’d expect to hear from a Meta executive, but it’s exactly right:
…you may one day end up leaving Threads, or, hopefully not, end up de-platformed. If that ever happens, you should be able to take your audience with you to another server. Being open can enable that.
Trains and clouds, in Louisiana.
Houston, twelve floors up.
Finished reading: The Frugal Wizard’s Handbook for Surviving Medieval England by Brandon Sanderson. Another totally different book from his usual. Fun. 📚
On pretty much a daily basis I’m torn on whether to enforce real tabs everywhere even in shared code or give up and use spaces. Tabs as spaces are so much worse, it’s still surprising that most of the JavaScript and Ruby world has settled on them. Trying to fight it creates new problems.
Just noticed this cool Glitch project from @AngeloStavrow to test styling Micro.blog’s Sidebar.js feed. Pretty amazing what Glitch can do.
Very frustrated with our Micro.blog emails being flagged as spam too often lately, so today we added the option to get a text message when signing in. This is a little experimental and will likely evolve. Should be fast and reliable if you want to add your phone number to your account.
One of those weeks where I’m a bit in over my head with bug fixes and email. Making progress.
Realizing that Brandon Sanderson’s secret project #3 is coming out in just a few days. And it’s another book in the Cosmere! Want to try to finish #2 this week even though they’re not related. 📚
Always feels good to release Mac software. No need to get permission from Apple. No delays when the build is ready to when it gets in people’s hands. Today we updated Micro.blog for the first time in a little while. Nothing major, just a little better.
Just in case we needed another reason to re-watch Across the Spider-Verse:
“I was wondering when people might start noticing…” Andrew Leviton said in response to a fan who noticed two different versions of a scene.
🤯
Spilled beer on my laptop yesterday. Seemed fine, but this morning the trackpad isn’t very clicky. It’s an older Intel-based MacBook Pro… Really did not want to upgrade yet. 🍺
Meta is working on a Twitter-like platform called Threads, codenamed Project 92 or P92, rumored to support ActivityPub soon after launch. Some Mastodon instances are committing to proactively block it. I’m here to take the opposite view.
Meta adopting ActivityPub has the potential to fast-forward the progress of the social web by years. Ever since I grew disillusioned with Twitter a decade ago and started pushing for indie microblogs, then writing a book about social networks and founding Micro.blog, I could only dream of a moment where a massive tech company embraced such a fundamental open API.
I get the concerns. I’ve never trusted Facebook either. I don’t post to Facebook and in Micro.blog we had to disable cross-posting to Facebook after they burned us with API changes. But this is an opportunity with Threads that I’m going to celebrate because it could have a significant, mostly-positive impact on growing the fediverse.
Johannes Ernst raised an important question: will the fediverse grow faster organically, cut off from Threads, or faster with the chance to bring Meta users over to the larger fediverse? And I’d zoom out from that to the big picture: do we really want to be a community that discourages for-profit companies from adopting open APIs?
To succeed with mainstream users, the fediverse should encompass many types of platforms and business models. Not just open source. Not just volunteer-led instances. Micro.blog charges $5/month for blog hosting so we can keep doing this and growing for the next 20 years.
Let’s talk about data privacy. My blog is public already and Meta is free to crawl it and its connections to other blogs. Admittedly, there are problems… For example, Mastodon direct messages were a concern in SciComm.xyz’s decision to block Meta:
Federation would allow Meta to cache non-public data too, such as followers-only and direct messages, which pass through its servers as part of the normal workings of ActivityPub.
This is valid. It’s effectively a design flaw that direct messages can leak out in plain-text to Meta’s servers. The good news is that people are already thinking about how to handle encrypted direct messaging in future revisions of ActivityPub. There have been a couple recent discussions on the SWICG mailing list about this.
Unfortunately, it’s likely that Threads will implement only the parts of ActivityPub that serve Meta’s business, ignoring features such as account migration that would allow users to move their followers from Threads to Mastodon or Micro.blog. Before we judge Meta too harshly, I don’t think most non-Mastodon servers support account migration either, and even Mastodon itself doesn’t support post migration.
In other words, maybe we get our own house in order, so that if larger platforms come on board there are clear best practices for doing things the right way. There is still a lot to do. As impressive as the ActivityPub adoption has been over the last year especially — and kudos to Eugen Rochko and the Mastodon community for ramping up so well to welcome Twitter refugees — it’s still early days compared to where we can go.
I don’t worry about Meta embracing ActivityPub and then extinguishing the fediverse as we know it. I worry that all this pushback will force Meta to reconsider whether they should even bother. Maybe they give up and Threads is yet another silo, cut off from the rest of the web. Then the current fediverse will have to compete directly for users instead of collaborating on a more open vision where the walls of closed gardens are finally starting to break down.
Tim Chambers blogged about how we can react to Threads. Perhaps most important is to prioritize our existing communities:
And remember we only have to protect the 1.3 million monthly active users inside the Fediverse. And we do that now every day. Spammers and toxic accounts inside the P92 network we or our social graph don’t follow is their problem. Our problem is protecting our people.
For Micro.blog, we will not proactively block Meta. We will, however, build tools for users to choose how they want accounts to federate with Threads.
Our users are passionate about indie blogs. They often support small companies and distrust big corporate-y platforms. There could be an account setting to effectively opt out of Threads, just as someone can disable ActivityPub in Micro.blog and only participate in conversations with other Micro.blog users.
I can’t predict how Threads and ActivityPub will play out. Meanwhile, Twitter continues to melt down. Back in 2018, I chose to implement ActivityPub instead of trying to compete with Mastodon. And just this year, we added Bluesky and Nostr cross-posting to Micro.blog, to make it easy to get microblog posts out to these emerging networks.
Let’s build stronger connections across platforms. I don’t want a monoculture where a single platform dominates, whether it’s open or closed. The web will be better if we have a variety of platforms that can interoperate, and users have the power to choose where to host their content, what their web identity is, and who can connect to their posts. The default should be open.
Lady Bird Lake under the I-35 bridge.
New episode of Core Intuition: AppKit Is Dying. We talk about visionOS, what platforms to dedicate our time too, and Meta’s rumored use of ActivityPub.
New update to Micro.blog for iOS is out with a bunch of fixes.
Did not finish: The Reading List by Sara Nisha Adams. I usually like books about books, but could not get into this one. I think I was too impatient for the plot to go somewhere. 📚
Can’t get enough of these James Cameron + Titan sub interviews. He seems to really know his stuff. Also not a bad track record as a director… Every movie starting with Terminator is good. Not just a few. All of them. 🍿
News media loves the suspense of an unfolding story. Can’t totally blame them for the Titanic sub coverage. Tragic now that the sub likely imploded days ago while we continued to sit around and watch the coverage. 😔 Rest in peace to those trying to do something amazing, hopefully knowing the risks.
Excited for the NBA Draft tonight. Even though the #1 pick is a lock, there’s a tiny part of me that is worried the Spurs will do something insane. 🏀
Thunder rolling through again today. Dogs are not happy. ⛈️
Pushed a new TestFlight build with some additional fixes. Likely will wrap this up as version 3.0.4 before we move on to 3.1 features.
I said on @coreint last week that visionOS might be a “zig when others zag” moment for me. As nearly everyone downloads the new SDK, I’m sticking to that motto. Going to ignore as much of Vision Pro as I can and work on stuff I can ship now to users who have $5 but not $3500.
Love these eWorld photos posted by Stephen Hackett at 512 Pixels. Brings back a lot of memories. 1990s Apple software had so much personality, and this was the height of it.
I don’t have much to add to the Meta vs. the fediverse debate beyond what John Gruber has written about. Big platforms using open APIs is a good thing! Much better than closed silos and locked-down APIs. I don’t trust Facebook either, but preemptively blocking them is shooting ourselves in the foot.
Good morning, Libby fans. Experimental feature now available in Micro.blog: go to this special path in Micro.blog in your web browser: /account/libraries
. Enjoy! 📚
If you’re frustrated and typing in Terminal, the harder you pound on the keyboard, the more effective whatever you’re working on is. It’s science.
Spent some time last night figuring out how the undocumented Libby API works. Fun. Hope they eventually make an official supported API, but in the meantime we can do some things on an experimental basis. Seeing my library holds within Micro.blog was the last missing piece I wanted. (Stay tuned.)
Kayaking.
Q*bert at Cidercade. 🕹️
Across the Spider-Verse was amazing. Love the art in these movies so much. I wish all comics adaptations were like this. 🍿
Hanging out at Civil Goat Coffee with my daughter. Working a bit while she reads. ☕️
It has been too long since we’ve updated the emoji in Micro.blog. Via @news, added a few new ones that were in the queue, hopefully can do more this year:
Added two new emoji to Discover: 🧘 for meditation and 🎭 for theater. Also added 🏳️⚧️ to LGBTQ+ in addition to 🏳️🌈.
There’s a new Core Intuition out. We talk more about last week’s WWDC, debate whether Apple is using “AI”, revisit Siri, and skim over some of the other session topics.
Another Brandon Sanderson book has arrived! Secret project #2: Frugal Wizard’s Handbook. Love the illustrations in the margins. I started this on e-book last month but will finish with the print version.
Rolled out changes to the default uploaded filenames in Micro.blog. This is the beginning of the end to the random filenames, although it still falls back on those for many situations.
High of 101° today in Austin. It’s gonna be one of those summers, huh? Gotta get away somewhere.
Despite the chaos at Twitter this year, I’m a little surprised that after paying Twitter for API access for the last couple months my app was still suspended. Just can’t trust big ad-based platforms.
Watched the BlackBerry movie and enjoyed it. Relevant for today too: it’s not a good idea to bet against Apple. Vision Pro is still quite different than every previous Apple product, though… Trying to perfect a niche device category vs. improving a mainstream device that people already want.
Federico Viticci got me with the Don Draper quote for his Vision Pro story. One of my favorite scenes in television, and a quote I used in my book too. Federico goes on:
I’m convinced that Vision Pro and the visionOS platform are a watershed moment in the arc of personal computing. After trying it, I came away reflecting that we’ll eventually think of software before spatial computing, and after it.
I still think it will be decades before this technology is usable and affordable in more AR-style glasses. But it is exciting to read everyone’s hands-on experience of the future.
I posted a video to YouTube to demo Micro.blog’s new reading goals interface on the web. By default it’s private just for you, whether you want to read 2 books or 20. Or none! No pressure.
Great game. Congrats to the Nuggets. And an impressive postseason for this underestimated Heat team too. Now just 10 days until the NBA Draft. 🏀
Since ditching cable years ago, I feel like we’ve tried everything… Sling, PlayStation TV, Hulu + Live TV, even back to cable streaming with Spectrum TV. New favorite: YouTube TV. Only downside is no regional sports networks. Need a better over-the-air antenna for Spurs games.
Only just occurred to me that Apple Vision would’ve been a great product to introduce at the height of the pandemic. Now, we want to reconnect in person, not hide away behind screens.
I recorded a very short (12 seconds!) video on YouTube showing the new toggle in Micro.blog to quickly show just photo uploads or video or audio. It appears for Micro.blog Premium subscribers because that’s where we support video hosting and podcasting.
New web analytics tool from @vincent looks like a nice fit for blogs and small web sites: tinylytics.
I made a little video of my time in Colorado last week, from short video clips and live photos. This is also a test of potentially longer videos on Micro.blog… I cheated to upload this because the file is bigger than the current limit.
Went to a wedding yesterday. No masks, hopefully no COVID. 🤞 My mind kept wandering back to A Psalm for the Wild-Built… Do we need a purpose, or is it enough to be happy and appreciate how remarkable the world and people are? Feeling lucky.
To create this transcript, I split the episode into 15-minute chunks with Fission, because Micro.blog’s OpenAI-based transcription is limited to 15 minutes. Then uploaded the MP3s to Micro.blog and copy/pasted the resulting transcripts into BBEdit. Fixed mistakes and edited to be more readable.
I listened to the latest Core Intuition again to see if my initial take on Apple Vision Pro was way off or unfair. I think it holds up. Here’s a transcript of the conversation with Daniel, lightly edited.
Daniel: Hello, this is Daniel Jalkut.
Manton: And this is Manton Reece.
Daniel: And this is Core Intuition. “Something wrong about this product.” This week’s show is sponsored by RevenueCat.
Daniel: All right, Manton, as so many people are this week, you are traveling, of course, because it’s the most important week of the year for Apple ecosystem developers. So you are in…
Manton: Colorado. Haha, not California. I think I mentioned this a couple weeks ago that I had thought about going to Cupertino and planned a road trip around California again. And it kind of changed to Colorado.
Manton: So totally missed out on all the in-person stuff at WWDC. I did watch the keynote and I did watch some sessions. It was a big WWDC, really big. I’m still wrapping my head around everything and what it means.
Daniel: Yes, me too. A lot of podcasts, a lot of people commentating on WWDC start from the beginning of the keynote and progress through. I really enjoyed the ATP recap along those lines. I don’t think we have time for that.
Manton: No way.
Daniel: I think we jump right to the headset. Because the headset is… That’s the part that I’m still having trouble wrapping my head around. That’s the only thing, quite frankly, that I’m having trouble wrapping my head around. Everything else more or less about WWDC and the announcements made there makes perfect sense.
Manton: Yep. Lots of good announcements, lots of good OS updates.
Manton: Before we get into the headset, I think a lot of people have been lost in the reality distortion and have forgotten to follow up on the fact — I don’t know if ATP mentioned this because I haven’t listened yet, I haven’t listened to a couple of podcasts — but have forgotten to follow up on: did Apple do anything with AI?
Manton: I think the answer is no. Although they did mention transformer-based language models and machine learning, but they skirted around it. I don’t think they did anything significant with AI.
Daniel: Yeah.
Manton: And I don’t think they did anything significant with Siri. They dropped the “hey” from “hey Siri”, but I don’t think that counts. So I just want to point that out because we are so distracted with the headset, rightly so. I don’t want to give Apple a complete pass on totally missing the big story of this year.
Daniel: Agreed. And I was frankly a little surprised by that. I thought that they would… And as you know, I wrote an article about it a couple of weeks ago. I knew that my specific take on it, that they would announce something called Apple Intelligence and that would be their way of kind of owning the initials AI without having to join the pack, so to speak. I didn’t think that was necessarily going to happen. I would have been thrilled if it did.
Daniel: But I thought the minimum was going to be some, especially at a developers conference, something like, we’ve made a arrangement with Microsoft so you can run Copilot at native performance in Xcode. Something like that.
Daniel: It didn’t have to be Apple has reinvented AI. It just had to be: we we can see the elephant in this room.
Manton: No. They had a lot of good updates to Xcode. I mean, I watched sessions. I was really lucky, I was able to hang out with some of the other Colorado iOS developers up in Boulder yesterday. Watched some sessions with those guys.
Manton: And yeah, good updates to Xcode. No problems. But yeah, totally ignored anything with code generation as far as I can tell.
Daniel: Yeah. And real quickly, I’ll just say, I also said something about this. I said, oh, well, you know, sounds like they didn’t say anything about AI.
Daniel: And a few people chimed in, of course, with: well, of course they did. Like you said, the whatever mechanism transformer, blah, blah, blah.
Daniel: That’s not what we mean right now when we say AI. Right now, when anybody in this world we live in, who is not like an AI researcher says AI, they mean large language models and the way that they provide chat or completion based services to users.
Manton: Yeah. Assistant-like stuff and the way Apple is using, I think the transformer language model they were talking about, of course that is part of like chat GPT and whatnot. But I think they were talking about better auto-complete and behind the scenes, seamless stuff. Great. Fantastic.
Manton: But that is just not the same thing as assistants that help you and that feel intelligent, even if they aren’t.
Daniel: Right.
Manton: All right, headset. Vision Pro.
Manton: I was simultaneously blown away by this, and also I still really question the strategy. But from everything I can tell — I was listening to Dithering and Ben and John were just like, this exceeds our expectations of how technically good it is.
Manton: And so I’m trying to take a step back and kind of separate, did they nail this versus should they have bothered to build this?
Daniel: I’ve been joking for a while now, and I mean, the joke has totally come to a head with this idea that the reality distortion field is actually the product now.
Daniel: It’s hard to know, and I agreed with you, I was watching the keynote and everything is so stylized because obviously they can’t show you, or maybe they could, they definitely could show you what it looked like just from the point of view of the wearer. I’m sure there’s like a screen capture recording released in their debug builds right now.
Daniel: But obviously the way they presented it was kind of like giving you an idea by showing you video of a person who’s allegedly looking at the stuff.
Daniel: I actually had the thought during the keynote, wouldn’t it be cool if the way they made those videos was one person wearing a headset looking at a room that happened to have another person wearing the headset in it?
Manton: Welcome to the future, everybody’s wearing headsets, even when they’re in the same room with real people.
Daniel: Well, and that gets at the real… To be honest, when I say my version of wrapping my head around things has a lot to do with the social implications of what such a product means.
Daniel: I had the same gut reaction with Google Glass 10 years ago. You know, products that draw the user inward do not make me feel comfortable about them as social interactive products. You know what I mean?
Manton: Mmm hmm.
Daniel: And I mean, I guess to be honest, I wear my AirPods all the time everywhere. And I know there are people out there still who believe it is rude to be in public and to have headphones on, which I don’t agree with that assessment.
Daniel: And so that might be like kind of an instructive example of people have different takes. But my take is if you’re going to block your eyes out to the world, do not talk to me. Do not talk to me.
Manton: Haha. Yeah.
Daniel: And even with my AirPods, I have social standards, I take my AirPods out when I’m going to like a retail counter.
Manton: For sure. Yeah.
Daniel: And I find it very rude if people don’t do that. I forgive it if they at least turn off the volume and the person doesn’t know that, you know, I kind of forgive it. But the case of something literally covering your face, I don’t want anybody interacting with me like that.
Manton: No…
Daniel: And I definitely do not want anybody interacting with their kids during like pivotal moments of their childhood.
Manton: Yeah. And people will push back maybe on that and say like, well, at the birthday party, we all have our phones out anyway, taking video. It’s just not the same thing. It is not the same thing.
Manton: And I have missed things because I’m looking at my stupid screen. It’s just not the same as covering your face.
Daniel: I think it’s so instinctive to us that covering your face is a way of, I mean, like we do it as humans. We do it when we’re scared of something or we don’t want to engage with something.
Daniel: And I think there’s a lot of instinctive, like animal response to this idea that somebody’s face is covered. And the eyes showing through is very impressive, but very not enough for me.
Manton: Yeah. It was really impressive in the keynote, but I do wonder in real life if it’s just creepy.
Manton: And I wanna acknowledge that we’re judging a product that we haven’t seen. Like some people have actually tried it, friends of ours have tried it, and their opinion goes a long way. We’re just reacting based on what we’ve seen in the keynote and heard people talk and blog about.
Manton: But even putting that aside, I kind of went into the keynote thinking, if it’s technically amazing, would I still want to use it? And would I still develop for it?
Manton: And it turns out like it’s even better than I thought. Even my wildest like expectations of Apple just completely getting this right for what they’re trying to do, it’s even better than that. Super impressive.
Manton: And yet there’s something wrong about this product. And we’ve talked about like AR versus VR, mixed reality, etc. And I even more strongly feel now that I’ve seen it that the number of years I have in my head is 20 years.
Manton: It’s gonna take 20 years for this product to be more seamless with actual glasses-looking things that you can actually see through and people can see your real eyes. More like real AR, at least 20 years, if it ever happens.
Manton: And so it’s certainly a bet on the future, but it’s so far away. It’s so far from being a product that I could use in public, that I could use anywhere that there are people.
Daniel: Yeah.
Manton: I think that is an issue for me.
Manton: I was thinking about this last night, so I’m in Colorado. I’m going to campsites with this van that I rented and just seeing nature and whatnot. And last night I made dinner. I sat at my like picnic table at my campsite and I pulled out my laptop, popped open a can of wine and I caught up on some work.
Daniel: Haha.
Manton: I’m chilling out, kind of in nature, but there are other people around. And I thought, I’m working on my Mac. Would I put a headset on here? No, I wouldn’t. It would be so weird.
Daniel: Even in a fairly remote like.
Manton: Yeah. Because people might walk by, drive by, it would just be weird.
Daniel: You would be so self-conscious.
Manton: Yeah, I wouldn’t be able to concentrate. It wouldn’t matter how much better the virtual screen is than my 16-inch, old-fashioned screen.
Manton: And I think there are areas like that. I work in coffee shops every day. I was working at a coffee shop here outside Denver this morning for a couple hours. I just can’t imagine this product ever being used in that environment.
Manton: Like I said, in 20 years, maybe it’s more like AR and more like real glasses, but this device is so powerful. It’s more powerful than my own Mac. To get it to the point that it can be seamless around people, man, it just seems so far off. I don’t know.
Daniel: I think I’m not quite as pessimistic about the timeline that this technology stands a chance.
Daniel: It’s funny because if you compare it to some Apple products, the chances are not great that it advances very quickly. For instance, the iPad was released 13 years ago. So if it advances at the rate, and just to be clear, the iPad today is an amazing device, so much more advanced than the original, but on the whole, it hasn’t changed that much.
Daniel: The usage is the same, basically. And I think a lot of people expected a lot more development on that front.
Daniel: On the other hand, something like the iPod is about 20 years old and is now essentially something that you wear in your ear. And that is the kind, so just to say, yeah, 20 years, maybe you’re right in that respect. But I could see it happening a lot faster because the unique technological angle here is going to fund this thing.
Daniel: I think even with a very modest amount of buyers, even as a loss product, even if Apple were losing money, I think staying ahead of the pack on this type of product is going to pay dividends for Apple. And the saving grace for me is that I do think there is a point at which it’s kind of the difference between the AirPods being a helmet you wear over your head or the little device you pop in your ear.
Daniel: I still feel a little self-conscious sometimes about my AirPods, but if it were a helmet that I had to wear, you know? Like, this is the helmet, and we’re going to see, you know, assuming everything goes the way I expect, we’re going to see, I think, a lot sooner than 20 years, the equivalent of the AirPod of this.
Manton: Yeah, I dunno. Okay, but let’s think about that, though. The technological leap from wired headphones to the AirPods, I mean, it is significant. There’s, you know, cool chips in the AirPods that allow it to do what it does, but it’s not the kind of leap we’re talking about from a $3500 headset that has 12 cameras to something that looks more like glasses that you could wear in public, even if they’re awkward, bulky glasses.
Manton: I’m really having trouble with that leap. I don’t see how you can do it. And think about how far the iPhone has come from gen one, couldn’t take video, to today. The iPhone’s great, it has come a long way, but even that is not the leap that we’re talking about, or I’m talking about.
Manton: That is a very natural year-by-year evolution, and that’s their core product, where they sell hundreds of millions of these things. They’re not going to sell very many of these. They’re not going to update it every year. I’d be surprised if they update the headset more often than every three years. So we’re talking five or six generations. I don’t know.
Manton: Man, I hate to be so negative. I just don’t think this is a product that Apple needed to build, or that I personally am gonna be into. I don’t know. It’s cool, though. It’s really cool.
Daniel: It is, well, and like you, me hearing the dithering, John Gruber and Ben Thompson describing it as not being able to distinguish the edge of the quote-unquote screen. That kind of was a wake-up call for me.
Daniel: There is no product, I think, I think even all the other VR headsets, I don’t think there is a product in the world. The combination of like, whatever Apple did to make the thing sit so close to your eye, and the fact that it’s such a high resolution, there’s no product in the world where you can kind of fool your mind into thinking you’re looking at reality.
Daniel: And that’s why the whole reality kit, whatever, sort of all makes sense now.
Manton: And really, every time they say, “only Apple could combine blah, blah, blah”, I always kind of roll my eyes a little bit. It’s totally accurate in this case. There is no company that could have built this.
Daniel: Nobody else has the money to do the research and the social influence to make it, you know, even vaguely. Like some random little like company headed by a billionaire could have come up with something like this, and it wouldn’t have gotten traction because it wouldn’t have captured the public’s imagination.
Manton: Right, and only Apple, they have all the right skills to pull this off. And they don’t have a great track record of hobby products improving. I would say none of their hobby products have really improved very quickly, which makes sense. Their business is built around the iPhone and the Mac. Apple TV is more or less the same as it was, you know, a dozen years ago.
Manton: And that’s fine, but they obviously care a lot about this product and they could change that reputation. They could have this fringe side product that they pump millions and millions, billions of dollars into, and they’re patient.
Manton: Again, they wait 20 years and then you have the Vision Pro and you also have the Vision Air or the Vision Lite or whatever you want to call it, a more mainstream device that is not as bulky, not as powerful, something that more like normal people maybe would be into. That could totally work. It feels really far off. I’m gonna be old or dead by the time this happens.
Daniel: I think there’s two things that are remarkable about this product. One that struck me right away was how much of an amalgamation of other Apple technologies it is in one unit. And you think about all the things they’ve been working on.
Daniel: The little digital crowd is just like the Apple Watch. The cameras actually remind me of whatever research they may have been doing into self-driving cars. You have super high resolution screens. The audio playback in the device is also using that kind of room reading, LIDAR type stuff.
Daniel: That’s one aspect of how “only Apple” could do this because they had all these other products in the works that sort of contributed to this device. But I also think this device is, regardless of its commercial success, it is a technological test bed that can easily spin off other devices that benefit from the advances they make with this.
Manton: Yep. And I can definitely buy the argument that someone had to build this. That’s not true, but there’s value in building this purely for the research and technology and just to see what’s possible. Because if no company pushes the edge and tries new things, we don’t get anywhere. There is a role for pushing, just seeing what we can do, whether it’s a compelling product or not.
Manton: So yeah, I totally respect that. And I think the people that worked on this should be very proud of what they’ve built. It really does look incredible. It’s just a question of, strategically, is this something that Apple should do? Is it good for humanity? And then secondarily, for developers, is this something that should be part of our strategy or not?
Daniel: Right.
Manton: If this is the — again, 20 years in the future — this is the replacement for the Mac, is this something that we should be fiddling with and paying attention to and watching all the WWDC sessions and playing with the simulator. I’m curious what you feel as a mostly Mac developer, how much are you going to pay attention to this?
Daniel: Yeah. I mean, it’s so much to take in because as you saw during the keynote, there’s like elements of how it, how it stands to just like integrate with your Mac and show you your Mac desktop apps on like virtual monitors within the device.
Daniel: And then there’s the other angle of native apps for this thing, maybe subsuming the uses of traditional Mac software, iOS software, all the above. So I’m going to keep an eye on it. I do, my instinct is to mostly ignore everything, especially since there’s no SDK yet. And I find it kind of awkward to even consider jumping into WWDC sessions about this when there’s no hands-on opportunity to do anything, even with a simulator. So I’m going to keep a cautious eye on it.
Daniel: I think there is something to what, I mean, you know me, like both of us have been pretty dismissive of AR VR the past several years. And I think the way we’re talking about this still reflects our skepticism about it, but it brings it into the real world in a way that I don’t think is going away.
Daniel: Having a point your iPhone at a table AR experience never felt compelling beyond the slightest novelty. But let’s just assume that this thing didn’t cost $3,500 and it costs $350, which might be the case in five years, 10 years.
Manton: 20. I’m sticking to 20 years.
Daniel: Haha. Well, the situation will be different when there’s a massive market of people who have these things.
Daniel: And I just want to say one more like slightly optimistic thing. I think my reticence and spooked-outness about this device is somewhat to blame on Apple’s presentation of it during the keynote. The way that they tried to frame it as something in particular that you would wear, like I mentioned, like when you’re engaged with your kids during special moments, that’s the opposite of what I think this type of device should be used for.
Daniel: And if I focus on the things that it’s good at… I won’t fault any parent for wearing a welding helmet while they’re building, you know, a rocking horse for their kid. That’s a special moment in a family’s history as well.
Daniel: But let’s not try to conflate the wearing the welding helmet with spending special time with your kids. Likewise, I think there are a lot of parallels actually with this to a device like a television, because televisions are famously attention absorbing. You can’t really talk to somebody who’s watching a television. And frankly, in my opinion, having a television on in any kind of social environment, unless you’re like watching a sports game with somebody is not conducive to sports or to social interactions.
Daniel: But I think if I try to look at this more generously, as like, it’s another kind of TV, or it’s another kind of welding helmet. You use it on your own time for your own purposes to either entertain yourself or achieve specific productivity goals. Then a lot of my negativity about it goes away. It’s just the idea of it being integrated as an everyday piece.
Daniel: It’s the same idea as if I envisioned everybody walking around with a television hanging off their forehead. No, we, nobody really wants to live in that world. So don’t highlight that as the use case for this device.
Manton: Yeah, I agree with you. I think that was a bit of a miss. Overall, I think the keynote will go down as the best in years, but I feel like some of those parts of the, you know, advertisement video that we watched, basically, we’ll remember them a little bit like the watch Apple Watch introduction. There was a lot of sort of gimmicky features. You know, texting your friend in class or sending pictures.
Daniel: Sending your heartbeat to somebody.
Manton: Exactly. I think some of these things will go down in that light. I love the Apple watch. I’m wearing mine now, I wear it all the time. But I think they were a little bit confused about their message when they introduced the watch and they sorted it out.
Manton: And I think this is going to be the same way. I think we’ll look back on some of those and be like, no, we’re not putting this headset on for a birthday party. That’s not going to be right.
Manton: And really, that’s why I kind of think about just strategically. I mean, we already have this problem that we didn’t have 15 years ago, which is that the family is sitting around TV, watching a movie or something and all the kids are on TikTok. This is already an issue.
Daniel: Yeah.
Manton: I’m not interested in it getting worse by actually having people close their whole face off from the world. So I think there are really legitimate uses for this, but in my life, they are very small.
Daniel: Yeah.
Manton: I like to work out of the house, I like to go places. I mean, I’m kind of an introvert. I don’t meet a lot of people and hang out with people in person. But when I do, when I’m around other people, it feels good to be around humans. We need that.
Manton: And just strategically, I guess I’m really pessimistic about it. I think maybe it’s okay for us to have those two thoughts in our head of just technically and pushing the envelope, this is a huge breakthrough. On the other hand, as a human and as a developer, I’m fine. Zig when they zag. If everybody else is obsessed with this and WWDC over the summer, I’m fine focusing on other things and just continuing working on Micro.blog and working on these other aspects of social networking.
Daniel: Yeah, I agree. In a sense, I am kind of relieved that I don’t feel like I’m going to have my work cut out for me in terms of new Apple technology over the summer. None of this is like, oh, drop everything.
Daniel: The one product that I think might have a little bit of a compelling case is like Black Ink with the idea of maybe like solving a puzzle on a virtual sheet or something. Even that’s a little bit of a stretch, but you know, maybe against a flat desk or something. But I don’t know. Obviously I have other Black Inks to ship before I get to that.
Manton: Yeah. I want to ask you, because I don’t know if you saw Apple News+, I think has some crossword thing.
Daniel: Oh yeah. Yeah, I did see that.
Manton: We’ll probably have a whole show next week about everything non-headset related. There’s really a lot at WWDC and we’ll have to tackle that next week. Because the headset is just the obsession right now.
Daniel: Yep, agreed. All right. Well, I hope you continue to have a great trip. I’m glad that this time around we’re recording, you’re in your van again. If folks remember the last time Manton recorded in his van, it was like a rainstorm.
Manton: Yeah. And unfortunately… So I bought a new mic. That’s a whole ‘nother story about going to three different Best Buys, trying to find something that I could take with me. I did a test recording and there’s a lot of background noise still. So apologies, everybody. Hopefully it turns out okay.
Manton: But thanks everyone for listening this week. Enjoy WWDC, and we’ll see you in the metaverse. I dunno.
Daniel: See you in my glasses.
On the flight back to Austin, finished reading A Psalm for the Wild-Built by Becky Chambers. Wonderful. Queued up the second book for later. 📚
John Gruber gets to the core of the Reddit API issue with a question for the CEO:
I have one simple question for him: What do you think Reddit co-founder Aaron Swartz would say about this if he were still alive?
That’s exactly the right perspective. Because it’s not just about business models, competition… It should be about doing what’s right.
Today I sent the following email to everyone who had Twitter cross-posting configured on their Micro.blog account. We’ve got about one month left on our commitment to support Twitter cross-posting. We can’t justify paying Twitter for API access beyond that. Tweet while you can, the feature shuts down July 15th.
Hi @your-username,
You’re receiving this email because you currently have cross-posting to Twitter configured in your Micro.blog account. Twitter has been changing their API and we want to let you know how this affects Micro.blog.
Micro.blog has committed to support Twitter cross-posting until July 15th. After that date, cross-posting will be disabled. We hope this gives you plenty of time to wind down how you’re using Twitter.
Note that you may need to disable and then re-enable Twitter cross-posting if your blog posts are not currently being posted correctly after recent Twitter API changes. In Micro.blog on the web, click on Account → Edit Sources & Cross-posting.
If you’re curious why we had to make this decision, please see Manton’s blog post about it.
If you’re looking for other options for automatic posting to Twitter, you’ll find that most services have already stopped working soon because of Twitter API changes. We currently recommend looking into Buffer, which may be able to sustainably offer this feature in a way that smaller companies like Micro.blog cannot.
However, there’s good Twitter news too! We have launched a new import feature for importing an archive of all your tweets to Micro.blog. This is a great way to browse and search old posts, keeping a copy of tweets outside of Twitter.
For more details about the tweets import, check out this YouTube video.
Thanks for your support!
P.S. We also support cross-posting to Mastodon, Medium, Tumblr, Bluesky, Flickr, LinkedIn, and Nostr.
Talking with @joec earlier this week about finding new coffee shops in new cities… Here’s the list for the week in Colorado: Inkwell & Brew, Novo Coffee, Aviano Coffee, Train Cars Coffee (photo), Atlas Coffees (photo), Corvus Coffee Roasters, Sonder Coffee & Tea, and Jubilee Roasting Co.
Good morning, Denver. Had a quick breakfast with this view before I wrap up the trip and return the van.
Winding down my week in Colorado. It’s beautiful here. Just about the right amount of time, juggling work and travel. 🗺️
Sitting in my rental campervan at Cherry Creek State Park, debugging on the laptop as the rain hits. Sounds like a Texas thunderstorm. Hopefully not hail because I waived all the rental insurance. ⛈️
Finished reading: Astrophysics for People in a Hurry by Neil deGrasse Tyson. Remembered only a little of this from college astronomy. The audiobook is about 4 hours, great for a short drive today. 📚
Georgetown Loop Railroad. 🚂
What a wild end for Apollo. The era of client APIs for ad-supported platforms is over. Developers should invest their time in open platforms where the business model is aligned with users' and developers' interests: Micro.blog (paid blog hosting) or the fediverse (often donation-supported).
After recording @coreint today, I’m settling into the opinion that Apple Vision Pro is both brilliant and a terrible mistake. On the other hand, I’m sitting in my rental campervan in Colorado watching the NBA finals on my iPad Mini and wouldn’t mind that courtside VR action. 🏀
Just posted a new Core Intuition with our reaction to WWDC and Apple Vision Pro.
Finished reading: Recursion by Blake Crouch. This book blew my mind a little. 📚
After driving around in circles with detours because of road construction, finally settled in at Atlas Coffees. ☕️
Jason Snell writing at Six Colors after using the Vision Pro:
I am now a believer that what Apple has built is an incredible accomplishment. This is the real deal. The unanswered question is, to what end?
Wasn’t expecting rabbits. Seems to be a bunch around my campsite tonight at Chatfield State Park.
Stopped at Train Cars Coffee in Nederland on the drive to Boulder this morning. Built out of train cars. Love it. Pretty good breakfast too. 🚂
Panorama Point as the sun’s starting to go down, at Golden Gate Canyon State Park.
Early thoughts on Vision Pro: looks about as good as it can possibly be, for what Apple is trying to do. Not a product for me, and not a product that will “replace” any other device. Will be talking more about this on @coreint tomorrow.
This is nitpicky but I feel like Apple should’ve cut over to the headset stuff at the 1-hour mark. watchOS improvements are good but they don’t need this much keynote time today. Feels like the narrative has gone into the weeds a little. We are here for the headset news. 🙂
I don’t think Apple needs to obsessively avoid saying AI. “Machine learning”, “transformer-based language model”… It just sounds awkward, but I get why they do it.
Need a place to blog what you think about all the WWDC news this week? Don’t forget Micro.blog is a ridiculously low $1/month this summer. micro.blog/summer
Looking forward to WWDC, but my expectations are low for announcements that are relevant to my work right now. Doubtful there can be a version of Micro.blog for a headset. Most interested in little surprises that might pop up in new versions of iOS and macOS.
Nuggets vs. Heat. Finals, game 2. 🏀
One of my favorite things about Colorado so far is the water. Looks and sounds like snow had melted somewhere upstream.
Finished reading: Tomorrow, and Tomorrow, and Tomorrow by Gabrielle Zevin. All the praise for this book is justified. A masterpiece. 📚
Raining off and on today, so I’ve spent more time driving and less time walking. Mickey is my traveling companion now for all road trips.
Forgot the Stanley Hotel was nearby, the inspiration for the hotel in The Shining. Stopped for a little while, walked around, had a beer in the restaurant. I’m sure there’s lots of history here.
Outside the Glacier Basin campground at Rocky Mountain National Park.
Cool to see people using the App.net posts archive. Here’s a post from @jsonbecker, a post from @otaviocc, and another post from @maique. I was starting to doubt preserving the archive and seeing these reminds me why it’s worth it.
Beautiful photo from aows. When I retire, I’m just going to blog photos of train tracks.
Thanks again to @vincent for fixing one of the servers yesterday while I was in Rocky Mountain National Park with no cell coverage. Not happy with the blips in downtime recently, going to reprioritize this. Enjoying the morning with good wi-fi and coffee at Inkwell & Brew in Estes Park. ☕️
Traveling today. Got to the airport early, plenty of time to catch up on a couple things. Submitted Micro.blog 3.0.3 to Apple to review. Hope everyone’s having a nice Friday!
Other things I learned about video games this week while we were temporarily without a Switch: the Wii with Skyward Sword still works, the N64 sort of works and then doesn’t, and the Game Boy Advance SP battery is starting to bulge, but replacements are just $10. 🕹️
We caved and bought another Nintendo Switch. The OLED Zelda edition. So nice. 🕹️
Ugh, this is a new pattern for me in Wordle. 712 X/6. 🙁
⬛🟩⬛⬛🟩
⬛🟩⬛⬛🟩
⬛🟩⬛⬛🟩
⬛🟩⬛⬛🟩
⬛🟩⬛⬛🟩
⬛🟩⬛⬛🟩
I’ve migrated the App.net posts archive to S3, to simplify hosting the archive. I’m not going to do any more work on this. No import feature for Micro.blog. The data files are there if anyone needs them.
Please only download your own posts, not everything. There are about 44 million posts in total. I’m happy to keep hosting this archive indefinitely as long as the costs are flat. I think it’s important to have an archive of as much of the web as possible. But at the end of the day, App.net was not my platform, just something I cared about, to help bridge the gap between the early days of Twitter and newer, more open platforms.
Don’t remember App.net? I wrote a chapter of my book about it.
I like this post from Dave Rupert on lessons from old Russian small nuclear generators:
I wonder if software has a kind of digital entropy, where even good software left untouched for a short timeframe rots and stops working.
Finished Ted Lasso. Overall really enjoyed it. This season almost lost its way a couple times, sometimes overthinking itself, but it wrapped up perfectly. 📺
I seem to have made a serious AWS pricing miscalculation, transferring a bunch of small files from EC2 to S3. Data transfer is free, but PUT requests aren’t. With millions of requests, adds up to real money. This is why I usually prefer Linode’s flat pricing.
Similar to my announcement last month about supporting Bluesky, we’re adding Nostr cross-posting to Micro.blog starting today. You can enable it under Account → Edit Sources & Cross-posting:
Nostr might have the most uncertain future among recent up-and-coming social web protocols. I’m fascinated with the architecture because it’s so different than ActivityPub, RSS, and IndieWeb protocols. I think it’s interesting and worth tinkering with. I’ve been personally using it through Micro.blog for about a week, so why not let other folks play with it too?
Nostr is quite technical. If you don’t want to be on the edge, feel free to wait. It’s so early that using Nostr feels like testing a prototype, letting your blog posts loose into the wild west of the internet to float between Nostr “relay” servers.
To get started, you will need a Nostr account. Unlike every other social network, in Nostr you don’t actually register on a specific server. Your account is just a private key, which you will paste into Micro.blog. For iOS, I suggest using Damus or Nos. For the web, check out Coracle.
These apps and others will create your private key, name, and profile photo. Make sure to save your key in a password manager. If you lose it, you lose access to your account.
Micro.blog’s support for these emerging protocols is essentially one-way, pushing your blog posts out to people on other platforms. Later we will consider federation, where posts and replies from other platforms and brought into Micro.blog, like we already do for Mastodon and ActivityPub. I’d like to see how much traction there is before we do more.
Thanks everyone who sent me feedback about how you are using Micro.blog’s email newsletters. I took this into account while finishing the new feature, but I realize it’s a functionality change. It is very rare that we change a feature so significantly. Felt like it had to be done.
Micro.blog Premium includes an email newsletter feature, so readers of your blog can subscribe to receive posts by email. It’s designed around microblogs. For example, Micro.blog can gather up lots of short posts over the week or month and collect them into a single email.
Today we’re launching a revamped template system for these emails, bringing much more control over what the emails look like. You can edit the template to add a header or footer, or change the HTML tags completely.
Because emails are generated outside of blog publishing, we can’t really use Hugo directly for this. I’ve written a new helper app in Go to process the templates, so they feel as familiar as possible to people customizing their blog theme. (Hugo also uses Go’s templating language.)
You can see what the default email template HTML source looks like here on GitHub. Micro.blog plug-ins can also override this template! So you could have a plug-in that provided a new email design. There’s a help page here with more details about variables you can use in a template.
This is a major improvement. A couple things to keep in mind:
You can edit the template under Newsletter → Settings. If you edit the template and then install a plug-in with a custom newsletter design, it will still keep your changes. You can clear your custom template to revert back to the default template or a plug-in’s template.
If you’re not comfortable editing HTML, that’s okay. You can continue to use the email newsletter feature and ignore the custom templates. It’s just a little more power under the hood for folks who want it, and for plug-in developers.
This article in Forbes has some new (to me) details on the creation of Nostr.
Trying audiobooks in Spotify for the first time. I’d like to see some UI tweaks for books, like less emphasis on chapters (books are not albums) and showing the time remaining with the speed taken into account.
Launching new features tomorrow. Going to lay low this afternoon instead of deploying major changes near the end of the day, which I’m sure I would regret.
Spilled a glass of water all over my MacBook keyboard. So that’s how my morning is going. Seems okay so far.
Working on improvements to email newsletters in Micro.blog. I’d like to split out the editing of queued newsletters to instead have a separate per-newsletter “intro” text, with the rest of the email not editable. Does that cause a problem for anyone? Will allow more flexibility in other ways.
Love this from Matt Mullenweg. It’s what we believe at Micro.blog, too.
…it’s not about how many views you have, how many likes, trying to max all your stats… sometimes a single connection to another human is all that matters.
Happy 20th to WordPress. Heck of an achievement.
Did my daughter come to visit this weekend to see us, or to take the Switch and Tears of the Kingdom back to her apartment? Who can know. Anyway, we’re busting out the N64 and Ocarina of Time… As soon as we get an RCA → HDMI adapter.
I’m testing Calckey to improve compatibility with Micro.blog. Some of the UI is quite busy and not for me, but I love how they are showing ActivityPub usernames, with the profile photo and dimmed domain name. Might borrow this.
Went to pay our respects to my uncle, for Memorial Day. Tomorrow would’ve been his birthday too. 🇺🇸
Love seeing all the “Where have I been?” posts. I blogged it on a whim and it’s so much more interesting to see the places other folks have gone. I also just realized I left Alaska off! Will edit.
Tinkering with something in Go this morning. Always felt like it would be a good language to know more about, and now finally have a real need.
A random conversation today made me curious about what countries I’ve visited in Europe. I got lost looking at maps and thought I might as well try to make a list.
Apparently 9 countries in the world:
And 29 states:
Not counting cities I’ve just flown through without leaving the airport. Might’ve missed some, but still feels kind of low. As anyone who has followed my 30 days lists knows, I like collecting visits to places. Now a little inspired to finish seeing all 50 states.
Just watched way too many replays and commentary on the final seconds of Celtics/Heat. Another memorable game 6 in Miami. Bring on game 7! 🏀
Listened to a couple hours of the Texas house debating impeachment against our corrupt attorney general. Kind of shocked to hear the final vote, overwhelmingly for the articles. Paxton is removed from office pending the trial. Wow. 🇺🇸
Seems unlikely that we’ll end up with a single unified social web platform. I like Mastodon’s focus on communities. I like Bluesky’s thinking on distributed moderation. I like the IndieWeb’s principles of ownership. I like Nostr’s private messaging. How will we tie all of this together? Blogs.
This week Bluesky rolled out their custom timeline feeds. Pretty interesting approach. However, I’m going to disable automatic cross-posting from my blog to Bluesky for a while… Bluesky feels so much like Twitter that it has been too distracting for me. Will check back in later.
Jean and I have been talking this week about what’s next to prioritize around the Micro.blog community. I often focus on technical improvements to blogs, but we’ve had some good momentum recently with community features too, such as rolling out profile pronouns, user blocking, and encouraging alt text in Discover. Starting today, Jean is also hosting monthly office hours to talk to folks on Zoom.
Halsted’s post about creating a safe and inclusive community is also on our minds, and there are a few points in particular that I think we can run with.
Thanks as always to everyone who uses Micro.blog and has given us a chance to build something unique on the web. I know everyone has high expectations, and we do too.
Joking aside, I really like Nostr. Something about it is very elegant. You just have to ignore 80% of it, especially anything around cryptocurrency. It’s a wild west platform with a few nuggets of gold. 🌵
Folks, Nostr is really easy to understand. Your username is 64 random letters and you just enable NIP-5, NIP-39, and put your private key in a hardware wallet. Simple! Mainstream adoption for non-technical users will not be a problem. 🙄
Good morning! Took an early walk. Coffee now at Summer Moon and I have some server changes to deploy. Also way behind in email and hope to catch up over the next couple days. ☕️
I’m testing cross-posting to Nostr. I’m still not really sure how to link to Nostr accounts… If you’ve ventured out into the wild west of Nostr country you might be able to find me with @manton.org
or npub1ae42p0d24pmccr47unf2a3hv2trmk9lrmr65ges4v3x5pscs4yrquu7ul9
. 🤪
Adding a new query to Micro.blog’s server status check to throw an error if the queue backlog is unusually high. Will be able to better track this error as platform downtime.
Upgraded Ruby last night and thought everything was stable. But no. Putting my sysadmin hat on for a bit this morning while everything gets back to normal.
The new episode of Core Intuition covers last week’s Micro Camp and looking ahead to WWDC. Thanks for listening!
Been thinking a lot about Nostr this week. Finally realized that it resonates in a “worse is better” way. This is a good thing and will help me grok how it fits alongside ActivityPub and Bluesky.
I’m continuing to use ChatGPT all the time. On a whim today I asked it what the philosophy of Micro.blog is and it nailed it. You can read the transcript here.
At last weekend’s Micro Camp, we had a panel session with me, Jean, and Vincent where we answered questions from the live chat. We didn’t have time for all the questions, so I wanted to try to answer a few more that we missed. Here we go…
Re: long posts and how they get truncated in the timeline. Are there thoughts or plans for letting us control where that truncation happens? Using a tag in the feed or something. The way truncation works now seems rough.
No current plans, but it’s something that comes up from time to time and has been discussed on the Help Center. We use Hugo under the hood and it supports marking an intro paragraph summary by using the <!‐‐more‐‐>
HTML comment. It’s possible that some form of summaries could be used in the timeline. In my experience, though, the more exceptions we add to the timeline, the more confusing it is. That’s why we’ve mostly stuck to a few very simple rules.
Is it likely that the success of updating the iOS and Android apps will influence development of the Mac app?
It will influence it only in that there will be more time for native Mac development using App Kit, because there will be less time trying to port features back and forth on iOS and Android. There are no plans to use the React Native code base on the Mac. The mobile UI doesn’t generally fit on the Mac, although there may be a few features we can borrow from Micro.blog 3.0 on iOS such as easier bookmark saving and the quick bar to switch between blogs.
Who is the best rock guitarist?
I just bought tickets to U2 in Vegas, so I’m inclined to say that The Edge has always been a favorite. Actually picking a single top guitarists is outside the scope of my skillset as the founder of Micro.blog. 😛
What are some of the features you can say “no” to?
One point I tried to make in the panel is that while we move quickly and often change priorities internally without much warning, the long-term vision for Micro.blog hasn’t changed. We want to make it easier for more people to use blogs, encouraging domain names and content ownership, and wrap that together with a safe, welcoming community. Every feature has some connection to one of those fundamental goals. So anything that goes against that is an easy “no”, like making posting more complicated with extra fields, adding ads, or turning the platform into more of a closed silo.
The more I tinker with Nostr, the more I understand the appeal for developers. It is fun. But there are so many usability challenges. User search and discovery are difficult.
When we added muting to Micro.blog, there was a discussion about whether user blocking should be added at the same time. My feeling was that Micro.blog is built around public blog posts on the web, so blocking didn’t seem particularly useful, and might even give someone a false sense of confidence that a specific user wouldn’t see their posts. After all, the posts are available to RSS readers and just reading on your blog for anyone.
This is the kind of opinion a programmer would have, though. “Well actually, the post is available anyway if you just drop down to the command-line and type curl and…” I was thinking about this again watching Bluesky scramble to add blocking a few weeks ago. We try to be thoughtful and not reactionary, so this was really something we should have taken care of earlier.
This is all a long way of saying that our initial support for blocking is rolling out this week on the web and the API, and in other apps to follow. Blocking someone will prevent your posts from showing up in their timeline. There may be tweaks and other options added to this later.
Great game and series. Didn’t really feel like a sweep with the Lakers in each game until late. Congrats to the Nuggets. 🏀
Checking out the Kagi search engine, via Daring Fireball. I remember hearing about this but never tried it. Looks clean, fast. I don’t think I’m at the point of wanting to pay for web search quite yet. So tired of ads, though.
San Antonio Museum of Art, raining. Used to be the Lone Star Brewing building.
One reason web development appeals to me is that while it can be complicated, it doesn’t have to be. You can build for the web like it’s 1995. For native apps, the complexity is required with tools, code signing, stores. Thinking about this as I wait for my code to be crunched and uploaded to Apple.
Did not expect to be installing a new version of Movable Type on EC2 this morning for testing, but here we are. Looks about the same as it did a decade ago. Nice to see it still works and is supported, though.
We shipped Micro.blog 1.7 for Android, available on Google Play. This syncs up the release with the features from the new iOS version. Lots of new stuff, like managing posts, uploads, username auto-complete, and external blogs.
Posted links for all of today’s videos on micro.camp. Thanks again to our Micro Camp presenters! I still need to edit the keynote so that will go up on Monday.
Great discount on MarsEdit today! From Daniel Jalkut:
I usually only offer discounts of 10% or 20%, but in celebration of Micro.camp 2023 I’m offering a 50% discount on MarsEdit. Use this link and see the 50% discount when you continue to checkout: redsweater.com/store/
We’re going live in an hour for Micro Camp day 2, featuring sessions by Chris Campbell, Anna Havron, Mandaris Moore, and Miraz Jordan. Watch at micro.camp or on YouTube.
Ben Werdmuller links to a great thread by Christina Warren. I get the distrust of big social media, but having e.g. Instagram or Tumblr adopt an open protocol would be amazing. Thinking otherwise would be like being unhappy if Twitter brought back RSS feeds. It’s only a good thing!
Kind of stunned by the Heat stealing both games in Boston. I like this Celtics team (of course rooting for Derrick White always) but this is going to be tough. 🏀
Thanks everyone who joined us for the first day of Micro Camp. I loved talking to Om Malik and hope it gave everyone something to think about. Tomorrow we wrap up with 4 sessions from the community and the State of the Platform panel.
Getting ready for Micro Camp so of course the lawn care service folks just showed up in the front yard with their loud lawnmowers. I had to smile. Kind of takes the pressure off when things are mostly outside my control.
We’re a couple hours away from the start of Micro Camp 2023! Details at micro.camp. (By the way, the web site is just a Micro.blog-hosted blog with a custom HTML home page.)
Episode 558 of Core Int is out with a discussion leading up to Micro Camp. The latest news on the schedule, why I’m nervous about preparing for it, and then speculation about Apple’s headset rumors.
Retrobatch from Flying Meat has been really useful while making a slideshow for Micro Camp. I first wrote a script to download the A Day in the Life photo challenge, then Retrobatch resizes them all and adds the username (from the filename) at the bottom.
We’ll have some door prizes for Micro Camp attendees. A license to MarsEdit, gift cards for movies, journals, coffee, and tea. 🎟️
Haven’t been able to finish any books lately. Probably way behind where I was for reading goals last year. Not sure if I’m working too much or just no books are quite the right fit. 📚
I missed that the videos from FediForum have been posted. Here’s the video of my demo of how Micro.blog works with the fediverse: youtu.be/2nKy-LKsS…
There’s a scheduled YouTube event for the Micro Camp live stream on Friday. We’ll link it again later, but for folks signed into YouTube you can also click the “Notify me” button. It looks like this:
Took some time this week to unravel the plumbing in Micro.blog with how blogs are published and feeds refreshed. At least for my account, it’s making a dramatic improvement to timeline updates and cross-posting performance.
Cool to see people take us up on the Summer of blogging coupon. $1/month full blog hosting! I’m biased but it’s really a great value.
Had a lot of weird dreams last night. But waking up this morning, apparently the Spurs getting the #1 pick in the draft was not a dream. Here we go! Looking forward to more basketball this week… NBA finals just around the corner. 🏀
Amazing. I’ve never believed in tanking and I had my expectations low, but… Spurs get the #1 pick. Victor Wembanyama is going to fit in perfectly. Can’t wait for next season. 🏀
Big announcement: we’re welcoming Om Malik for a keynote conversation to kick things off at Micro Camp on Friday! The updated schedule is online now at micro.camp.
Did a quick YouTube live streaming test. Seems to work as advertised. Resubscribed to Ecamm Live too, which has been helpful in past years to coordinate streaming files.
Ready for the NBA draft lottery tonight. Wearing my Spurs t-shirt. 🏀
We are finalizing the Micro Camp schedule to post later today. Very excited about what we’ve got planned. Pencil in 12pm Pacific time on your calendar this Friday! With more sessions on Saturday too.
People are often confused about what exactly Micro.blog is. Is it a Twitter clone? Is it a WordPress clone? Is it a Buffer clone? I like to think of it as a mashup of several things. This post from Alan Jacobs is another great perspective: the three paths of micro.blog.
Special shout-out to @sod who has been working with us to update all the Micro.blog themes with improved Microformats markup and other fixes. A bunch have been updated already! Check your Plug-ins page every once in a while to see if there’s an update to a theme you’re using.
Haven’t done much more than skim through the Bluesky app source, but glad to see it released. I’m sure there are things in there I can learn from. MIT license too. 👍
Making screenshots for App Store connect isn’t my favorite thing. I don’t do it often so always forget which dimensions go with which devices. Apple is too picky about this… Most people probably look at small versions of the screenshots anyway.
Jean posted today about how Discover in Micro.blog will be less likely to include photos that don’t have alt text. Just an extra nudge to encourage more people to make their photos accessible.
We watched Still with Michael J. Fox last night. Really good. 📺
Enjoying the new Zelda so far. Although I’m mostly watching other people in the family play. 🙂 Minor spoilers as we switch between accounts.
For a while now, Micro.blog has been archiving copies of web pages for Micro.blog Premium users, whenever you link to something or bookmark it. The archive has grown to about a million items (web pages and their images and other resources). Lots of potential here for future tools.
I’d like to update our terms of service to add a note about reclaiming old accounts, so we finally have an official policy. In a nutshell:
I say “may” because I think there needs to be some wiggle room for unique situations. There won’t be any automatic deletion of accounts.
More about the M.b problems overnight: I made what I thought was a minor code cleanup change yesterday that inadvertently affected the servers' ability to recover from failed background tasks, so publishing and timeline updating started slowing down and eventually just stopped. Very sorry, Europe!
We published a new Core Intuition. Daniel and I talk about the upcoming Micro Camp, event planning, iPad versions of Final Cut Pro and Logic, and thoughts on WWDC.
Playing with Google Bard. Impressed that it has much more recent data than ChatGPT. It knew about something that happened just a few days ago.
There’s a new beta out for Micro.blog 3.0. This adds the last big missing feature: posting to external blogs like WordPress. It should work with blogs that support the MetaWeblog or Micropub APIs.
Wordle 692 6/6. Went from thinking I’d get it in 3 guesses to barely getting it.
🟨🟨⬛⬛🟨
🟩⬛🟩🟩🟩
🟩⬛🟩🟩🟩
🟩⬛🟩🟩🟩
🟩⬛🟩🟩🟩
🟩🟩🟩🟩🟩
I’m excited to announce: Summer of blogging! For new folks signing up on Micro.blog, hosting is only $1/month for the summer. Full blog, photos, themes, ActivityPub, Bluesky cross-posting, and more. It’s a great time to start a blog at your own domain.
Two great new themes for Micro.blog are available: Outpost by @mikehaynes and Tiny by @Mtt. So happy whenever I see new themes. It takes a lot of work for someone to refine these and share them. Thanks y’all!
Got lost again browsing tld-list.com. So many fun new TLDs. Luckily was talked down from impulse buying another domain name. For now.
Thinking more about Heather Armstrong. I didn’t know her, but she was my age, and started her blog a year before mine. Must be difficult to put your whole life online. I keep my worlds fairly compartmentalized… My blog is my work, thoughts, travel, hobbies. But not the very personal.
From a post by @adders, remembering Heather Armstrong:
Already the early days of blogging are being forgotten, and the ability of the web to quietly erase history as sites fail and go offline means that those incredible, exciting, experimental days are being lost. But we shouldn’t forget those who forged the future of digital media, and Heather Armstrong was one of them.
Caught the last half of the Trump town hall. CNN was criticized for hosting this, but Kaitlan Collins did a great job fact-checking and pressing him on non-answers. It’s not really amplification. Zero risk that voters outside his base were convinced by anything he said. 🇺🇸
I’d love to see Mastodon adopt some variation of NIP-5 so that single-user instance usernames can be collapsed to just the @-domain name. I would support this in Micro.blog too (and maybe should just do it).
I’m fascinated with Nostr, but I’m having trouble getting on board with it because its development is disjointed and the creator is (I think) anonymous. The team at Bluesky is writing about their work. They have a blog. Same with Mastodon. Just easier to get behind a public, cohesive vision.
Thinking about fiatjaf’s Bluesky is a scam post. Some of the criticism seems fair, some feels premature, and “scam” is too loaded. Let’s see how it goes. My opinion hasn’t changed since AT Proto was announced: domain name usernames and data portability in Bluesky is interesting and worth exploring.
Shocked to hear that Heather Armstrong has died. See: dooce.com, Wikipedia. One of the great early bloggers. Rest in peace.
Can’t remember the last time I had an actual flat tire. 20 years ago? Longer? Luck ran out today. Slow leak that was patched a week ago came back with a vengeance. 🛞
Texas house getting HB 2744 out of committee is great news, even if feels like the bare minimum we could do. It’s okay to do this in stages. First raise the age limit from 18 to 21, then ban all assault weapons, then start a buyback program to reduce the AR-15s already out there.
Really good episode of Dithering this morning on Bluesky vs. Mastodon. As convenient as it would be to have a single decentralized protocol “win”, I want to be ready for a future with multiple successful web-friendly platforms.
Lonnie Walker ready when he’s called on. Love it. 🏀
Ever since I read that Bluesky has about 1.9 million folks on the waiting list, I’ve been thinking about what happens as more invites roll out. By comparison: Mastodon has over 7 million users, with 1 million on a single server. Plus a bunch more across the non-Mastodon fediverse.
Micro Camp 2023 is coming up soon! May 19th - 20th. We’ve posted the topics for the second day’s presentations.
If you missed it earlier from @news:
We are monitoring some performance problems because of unexpected server load. Thanks for your patience.
I’m continuing to troubleshoot (and optimize) slow blog publishing a cross-posting today. Almost back to normal but not quite.
Posted episode 556 of Core Intuition. We talk about tipping in Apple Stores, using ChatGPT, and whether Apple has missed “the year of AI” because they thought it was “the year of AR”.
Too many guns. After yesterday’s shooting in Allen, Greg Abbot “offered the full support of the State of Texas”… So that means he’ll work to ban assault weapons, right? That’s the kind of support we need.
Easy to get caught up in the excitement about the coronation. We are so stuck in divisive partisan debates over here that it’s hard to imagine the U.S. being that united around anything. 🇬🇧
I recorded a video on YouTube that goes through how I personally use Micro.blog for my own blog. It’s a little long and rambling, about 25 minutes, but it covers a bunch of features that folks might find useful.
Created a new blog on my Micro.blog account today, a placeholder for something new. Found a couple bugs in the process. I should do this more often… So easy to forget about the onboarding experience, or lack thereof.
This year’s NBA playoffs have been great. So many close games, ignoring a couple blowouts like last night’s Lakers/Warriors. With the Spurs out of contention early and their players scattered to different teams, I’ve been enjoying the postseason more than usual, finding new teams to root for. 🏀
Jack Dorsey gives $10 million to Nostr and related projects. Setting aside opinions on his leadership at Twitter, it feels significant that these funds are not VC-style investments. Presumably the reward is seeing interesting technology flourish, not profit.
Wondering what the Bluesky team has in mind for private messaging, if anything. Mastodon’s DMs have always felt awkward to me, both the user experience (hard to distinguish public and private posts) and the technical bits (any admin can read your messages).
Finished the first pass of rethinking how incoming direct messages work in Micro.blog. I still believe that most social networks should not reinvent the wheel with messaging, because it’s unlikely to be as secure as dedicated services like iMessage and WhatsApp. But we roll with what we’ve got.
Looking at this spam, I think our approach to accepting Mastodon DMs needs to change in Micro.blog. We forward them via email because we don’t have a private messaging system. But someone shouldn’t be able to intrude in your inbox. My fault. Going to rethink this today.
Eugen Rochko and team are fighting spammers at mastodon.social:
We’re aware of the spam attack hitting mastodon.social right now and our full moderation and DevOps teams are on the case mitigating any way we can (incl. switching to approval-mode registrations)
Haven’t seen this affect Micro.blog yet, but if anyone notices any unwanted @-mentions or other problems, let us know.
Update: Spoke too soon, definitely hitting us too. 🙁
Almost done with book edits. The task of manually reformatting all the footnotes and layout for the print edition was dragging me down, so figured out how to automate it with print CSS tools like Prince. Wow, going to save days or weeks of work.
Enjoyed the first episode of White House Plumbers. Also, Woody Harrelson and Matthew McConaughey might be half-brothers?! They need to go on Finding Your Roots.
Mastodon has added support for showing styled text in the new version deployed on mastodon.social. Looks good with bold and italics in blog posts federated from Micro.blog.
Waterfall at Cosmic Coffee + Beer Garden. 🍺
Maybe the most surprising thing to me about Bluesky’s early success is the “fun” aspect. I’m not very fun online — my microblog posts are often work-related or serious — but it seems clear there was a post-Twitter void here that Bluesky is filling. Casey Newton writes on Platformer:
Bluesky should continue to cultivate the sense that it is weirder and funnier than Twitter. That means leaning into some of the eye-rolling terms that users are insisting on, including skeets.
Noticed today while reviewing code that the first GitHub commit for Micro.blog was about 9 years ago. So much has happened since then, but also hardly anything. Software is never done because the world and people are always changing.
Left my headphones at home by accident. Now need to plan my whole day around which coffee shops probably have the best music on. ☕️
Went to see the Super Mario Bros movie this afternoon. So much fun. 🍄
Not content with banning native third-party apps, Twitter has continued to cripple their API and move to paid plans for very basic access. I was committed to support Twitter cross-posting as long as possible because there are still Micro.blog customers who want to keep a foot in the Twitter world. But we knew it couldn’t last forever.
July 15th will be our last day to support cross-posting blog posts to Twitter. Even though Twitter has been effectively dead to me since I stopped tweeting in 2012, I’m a little sad to finally have to cut the platform off.
I picked July 15th to give people a couple months to wind down their use of Twitter. We now have to pay Twitter for API access, and that is the longest I can justify doing so.
It’s all another reminder that centralized platforms with closed APIs can’t last. While it’s easy to blame Elon Musk, the writing has been on the wall for a decade.
For more of the Twitter history that brought us to this point, see the chapter in my book called Leaving Twitter. Newly updated for Elon.
So, what’s next?
End of an era. Seeya on the open web.
Core Intuition episode 555! We talk all about Bluesky. (And Mastodon and Nostr and Micro.blog.)
Today is the day that Twitter said they would shut off the old API and force upgrades to the new plans. But they say a lot of things. I haven’t paid yet. Also confused why April 29th (Saturday) and not May 1st (Monday).
I’ve done a little work now with the XRPC layer of the AT Protocol, supporting cross-posting to Bluesky from Micro.blog. This post is about what I’ve learned.
(As an aside, there have been questions about whether Micro.blog supporting Bluesky means we believe in everything they’re doing. No, right now I’m mostly interested in the technology. It’s still too early for judgements on the Bluesky leadership, user experience, or ultimately how this is all going to fit together with other social web protocols.)
Bluesky authenticates with a username and password. For third-party apps, the password can be an app-specific password. I hope that eventually Bluesky will support IndieAuth, a flavor of OAuth designed for signing in to web sites that should also work well for a distributed service like Bluesky.
The HTTP POST with JSON for signing in looks like this:
POST /xrpc/com.atproto.server.createSession
Content-Type: application/json
{
"identifier": "email-address-here",
"password": "password-here"
}
You’ll get back an access token and refresh token. Sessions do not last very long, only a couple hours last time I checked, so it’s important to keep the refresh token. The response looks like this:
{
"did": "did:plc:abcdef12345",
"handle": "manton.org",
"email": "email-address-here",
"accessJwt": "abcdefghijklmnopqrstuvxyz",
"refreshJwt": "zyxvutsrqponmlkjihgfedcba"
}
The DID is a unique identifier for your account that is stored with posts on an AT Protocol server. Even if you change your handle, the DID persists and helps make data portable across servers.
When cross-posting from Micro.blog, I first try to use the auth token and if it fails, I use the refresh token to establish a new session. In this case, we pass the refresh token in the Authorization
header:
POST /xrpc/com.atproto.server.refreshSession
Authorization: Bearer zyxvutsrqponmlkjihgfedcba
Sending a simple text post to Bluesky looks like this. For the rest of these requests, we pass the usual access token for authorization:
POST /xrpc/com.atproto.repo.createRecord
Authorization: Bearer abcdefghijklmnopqrstuvxyz
Content-Type: application/json
{
"repo": "did:plc:abcdef12345",
"collection": "app.bsky.feed.post",
"validate": true,
"record": {
"text": "Hello world.",
"createdAt": "2023-04-20T16:46:32+00:00"
}
}
It can get more complicated. To include a photo with the post, first upload it to storage as a blob. In my early testing, there were low limits for photo file size, so Micro.blog scales photos down quite a bit before sending them over to Bluesky.
Here’s uploading the photo, passing the raw JPEG bytes in the content body:
POST /xrpc/com.atproto.repo.uploadBlob
Authorization: Bearer abcdefghijklmnopqrstuvxyz
Content-Type: image/jpeg
image-data-here
You’ll get back a media CID (Content ID) in the ref
field that can be used to attach the photo to a new post. The response after uploading a photo looks like this:
{
"blob": {
"$type": "blob",
"ref": {
"$link": "abcdefgh"
},
"mimeType": "image/jpeg",
"size": 200000
}
}
Then when posting, use the embed
field with an array of the uploaded media CIDs:
POST /xrpc/com.atproto.repo.createRecord
Authorization: Bearer abcdefghijklmnopqrstuvxyz
Content-Type: application/json
{
"repo": "did:plc:abcdef12345",
"collection": "app.bsky.feed.post",
"record": {
"text": "Hello world with photo.",
"createdAt": "2023-03-08T16:46:32+00:00",
"embed": {
"$type": "app.bsky.embed.images",
"images": [
{
"image": {
"cid": "abcdefgh",
"mimeType": "image/jpeg"
},
"alt": ""
}
]
}
}
}
Bluesky also supports inline hyperlinks in the post text through “facets” that can be added to a post, similar to attaching a photo. I don’t love this because we already have HTML as a perfectly good way to format posts. I strongly believe that the social web should use HTML and HTTP wherever possible.
In Micro.blog, I automatically convert Markdown or HTML inline links to Bluesky’s facets. An example of linking the first word “Hello” in this post would look like this, using the character position and length of the word:
POST /xrpc/com.atproto.repo.createRecord
Authorization: Bearer abcdefghijklmnopqrstuvxyz
Content-Type: application/json
{
"repo": "did:plc:abcdef12345",
"collection": "app.bsky.feed.post",
"validate": true,
"record": {
"text": "Hello world with link.",
"createdAt": "2023-04-20T16:46:32+00:00",
"facets": [
{
"features": [
{
"uri": "https://manton.org/",
"$type": "app.bsky.richtext.facet#link"
}
],
"index": {
"byteStart": 0,
"byteEnd": 5
}
}
]
}
}
There is also a growing list of open source libraries for the AT Protocol. Unfortunately I wrote all my code before I realized this, so I stumbled through deciphering the API more than I needed to. Maybe this post will save you some time if you’re rolling your own thing.
Update: HTTP requests go to bsky.social
, not bsky.app
.
The storm is about to hit. Waiting it out downtown instead of on the highway. ⛈️
Listening to Dithering today about game consoles… If you have 2 consoles, you have Playstation + Switch, or Xbox + Switch. If you have 2 social networks, maybe you have [insert popular network] + Micro.blog. The hard part is carving out a unique, invaluable niche.
We updated the Micro Camp web site for 2023. Register for free if you’d like to join us May 19-20. Everyone gets a new sticker too! Special thanks to @Burk for the sticker design.
Austin sky before thunderstorms arrive in a few hours, supposedly. ☁️
Finished reading: Spinning Silver by Naomi Novik. I really enjoyed this story. First-person for multiple characters was a little awkward, though, and maybe held it back from what it could’ve been. 📚
The renewed interest in open, social web protocols has been a long time coming. It’s like we were in a drought for most of the 2010s, subsisting on the water leftover from the early blogosphere, and now it’s raining. Drink up, folks! The skies are blue and the future’s bright.
I’ve been impressed with Bluesky’s performance. It has inspired me to shave off a little time for some Micro.blog API requests. We usually think of “under a second” as fast enough, but 0.8 seconds vs. 0.4 seconds is actually pretty noticeable.
Continuing to tweak our Bluesky cross-posting support. Should work better with inline links in blog posts now.
Sometimes coding is hard, but not usually. It’s figuring out how something should work that takes all the time.
Just released a new 3.0 beta of Micro.blog for iOS. This includes a big change, borrowed from the 2.x versions: Markdown syntax highlighting when writing new posts. We are getting close to release. The only major feature left is WordPress posting support. TestFlight here to follow along.
I know I’ve written about this before, but it’s worth repeating: Micro.blog is constantly shifting priorities based on what people are talking about. If we only hear a feature request every few months instead of every week, it is probably going to drop off our radar, even if we want to do it.
I’m seeing lots of Bluesky takes that are a variation of: “Oh jeez, we just moved from Twitter to Mastodon, now there’s another new thing?” But indie microblogging is about moving away from centralized platforms to blogs and open web-friendly protocols. Anything in that spirit should be explored.
I’m always fascinated when our new AI bot overlords get really basic facts wrong. They know the answer, but can’t put it together until you press them on it. Here’s a quick transcript from ChatGPT that I ran into today.
Some technologies just keep coming back… Currently writing XML-RPC code, this time for JavaScript. Despite the new-ish JSON APIs in WordPress, not to mention Micropub, MetaWeblog is still the best way to talk to WordPress without any extra plugins or configuration.
U2 tickets for the Sphere in Vegas going on sale later this week. Need to somehow fit this into my plans for the fall.
Added a basic import in Micro.blog for folks migrating from Substack. For now, just blog posts. Still need to think through email address import for newsletters… Want to make sure it can’t be abused by spammers. (Substack’s HTML is so verbose. Tried to clean it up a little on import.)
This is not exactly a commentary on any specific platform, but you can just tell when the creators of a tool use their own stuff and engage with the community. The farther you get away from that, the less confidence users will have.
Today we enabled Bluesky as an option in Micro.blog. This adds to our existing cross-posting feature that supports platforms such as Mastodon, Tumblr, Medium, and Flickr. When you post to your blog, Micro.blog can copy the post to any of these platforms automatically.
As Twitter continues to implode, we are seeing a renewed interest in the open web and decentralized social media. It’s an exciting time. Mastodon and the larger fediverse have grown to nearly 9 million users. Micro.blog is part of that with its support for ActivityPub, so Mastodon users can follow and reply to Micro.blog users directly.
While Mastodon and ActivityPub have most of the attention, I’m not entirely sure how this next generation of open protocols is going to shake out. I like how Bluesky is focused on domain names and data portability, principles that are shared by the IndieWeb and Micro.blog. Whatever happens with Bluesky, I think there’s inspiration here that can benefit other platforms as well.
That’s why we’re adding support for Bluesky now, even before the Bluesky folks have rolled it out to everyone on their waiting list. Micro.blog has never been about a single protocol. It’s about putting your blog at the center of your online identity, the place where you can post short posts, longer essays, photos, podcasts, or whatever else you want to share.
It’s still early. I’ll be watching how Bluesky evolves. There will be challenges to potentially intertwine different approaches to federation. But now is not the time to build walls. Let’s try a few things, new ways to connect platforms, knowing some might not pan out, because that’s how the open web gets better.
Fox News in the, uhm, news today reminds me of last month when I was in Dallas. I worked from a coffee shop near my hotel one morning, Flying Horse Cafe. They had Fox News on the TV. Took me by surprise as an Austinite… No way you’d ever see that here, but oh yeah, I live in Texas.
Tantek Çelik blogged about Mastodon’s account migration and its post export, which is based on ActivityStreams. No other apps really import this format yet, not even Mastodon itself. He also mentions the Blog Archive Format and how useful it would be to convert between Mastodon and this format:
Such a library would make an excellent drop-in addition to any #ActivityPub implementation, allowing both export of posts, and also a browsable archive format, so you could visually double check when importing to another service that these were the old posts you were looking for.
I’ve taken a first pass at writing a Ruby script to convert Mastodon’s export to Blog Archive Format. It’s available as a GitHub Gist here. It’s not packaged as a general-purpose library but certainly could be adapted for that.
Direct posts import from Mastodon will be baked into Micro.blog soon. We already support several formats — WordPress, Medium, Tumblr, Ghost — and I learned a lot about how best to process large archives while building the new Twitter import.
HTML’s srcset
is such a weird image attribute. Can’t help but feel there was a better way to handle this. (But no, I don’t have any obviously better ideas.)
It’s a good day to have a good day.
Matt Baer blogs about the future of Write.as and WriteFreely — taking features that are currently separate products and integrating them into more of a suite:
At this point, I don’t think it makes sense for our self-hosted product to be chopped up into multiple components like our hosted tools are. Instead, I want to bring all those tools into a single application in WriteFreely.
Remark.as will also get fediverse replies. Sounds like a good direction.
It breaks my heart a little when I drive through a historic neighborhood to see old houses bulldozed to make room for modern mansion monstrosities. I know a house is just a thing, but it feels like erasing a bit of history that mattered to someone.
Trees by the trail at Lady Bird Lake.
“Make no little plans. Make the biggest one you can think of, and spend the rest of your life carrying it out.” — Harry Truman
The bookmarks pages in Micro.blog haven’t felt quite right to me, so today I rolled out a small redesign that I think better integrates bookmarks, highlights, and links. (This is only for Micro.blog Premium subscribers. Premium adds web page archiving and making highlights in bookmarked pages.)
Lunch at Easy Tiger earlier today. 🥪
If it was starting to feel like Humane’s device would be overhyped or vaporware, I’m ready to put aside those concerns. It looks like they are onto something fascinating, both the projection and the AI language translation.
On this week’s episode of Core Intuition, we talk about the Mastodon API and upcoming new MarsEdit release. And of course, blogging.
One of those afternoons where I’m hopping between unrelated tasks. Currently revisiting how to best crunch through OpenStreetMap data.
Updated my code for Bluesky for the recent API endpoint changes. Looking forward to enabling this for Micro.blog folks.
Tantek Çelik blogs about yesterday’s The Verge article on ActivityPub, underscoring some of the IndieWeb principles that are covered. There’s really a lot in there and I’m glad to see the article getting so much attention. Thanks @pierce@mas.to!
The Verge has a long article by David Pierce today about ActivityPub. The quote from me about domain names doesn’t come across quite how I intended it… Yes, domain names are hard, but we need to make them much easier to deal with because they’re actually great.
I haven’t written a new React Native diary blog post in a while because there hasn’t been anything noteworthy. We’ve shipped new versions of Epilogue for iOS and Android. Micro.blog 3.0 for iOS is almost ready — also a rewrite for React Native.
We did hit one feature that I wanted to preserve from the previous version of Micro.blog: Markdown and HTML syntax highlighting when writing a new blog post. The best way to preserve this was to port the Objective-C code over to React Native. (This feature won’t be available on Android yet.)
The “native” in React Native is because it uses native iOS and Android controls, even though they are driven from a JavaScript engine. This means we can make our own native components, written in Swift or Objective-C.
There are a few pieces of code to make this work:
Here’s a snippet of the MBHighlightingTextView interface:
@interface MBHighlightingTextView : UITextView
@property (copy, nonatomic) RCTBubblingEventBlock onChangeText;
@property (copy, nonatomic) RCTBubblingEventBlock onSelectionChange;
@end
And the MBHighlightingTextManager interface:
@interface MBHighlightingTextManager : RCTViewManager <UITextViewDelegate>
@end
For the MBHighlightingTextManager implementation, the important bits are the macros that define what properties we care about:
@implementation MBHighlightingTextManager
RCT_EXPORT_MODULE(MBHighlightingTextView)
RCT_EXPORT_VIEW_PROPERTY(onChangeText, RCTBubblingEventBlock)
RCT_EXPORT_VIEW_PROPERTY(onSelectionChange, RCTBubblingEventBlock)
RCT_CUSTOM_VIEW_PROPERTY(inputAccessoryViewID, NSString, MBHighlightingTextView)
{
if (json) {
NSString* input_id = [RCTConvert NSString:json];
// ...
}
}
- (UIView *) view
{
// make a new MBHighlightingTextView and return it
// ...
}
@end
Finally, the JavaScript side that loads the native component:
import * as React from 'react';
import { requireNativeComponent } from 'react-native';
const MBHighlightingTextView = requireNativeComponent("MBHighlightingTextView");
export default class HighlightingText extends React.Component {
render() {
return (
<MBHighlightingTextView {...this.props} />
)
}
}
Now we can simply use <HighlightingText>
in place of <TextInput>
in our XML when laying out the UI. Handlers like the property onChangeText
will be referenced from Objective-C so we can call them in response to methods from our UITextView
delegate.
I’m leaving some code out in the above examples for readability. And I have a bunch of code still to write, working in a branch of our project on GitHub. But already the basics are working, after (frankly) a lot of trial and error and sifting through the documentation, Stack Overflow, and even asking ChatGPT, which knows a surprising amount of how this works.
Accidentally clicked on a phishing email. Ugh, must not be awake yet. Stopped short of signing in and giving them my password, though.
Thunderbird Coffee. ☕️
Got lost down the rabbit hole of W3C membership fees… Interesting scaled fee structure, in the United States from $2k/year to $77k/year depending on the member company’s revenue.
There are always more ideas than time. One of the things I’ve most enjoyed about building Micro.blog is that it’s a platform where many blog-related ideas can fit together. The “micro” was always a bit of an undersell.
I’ve been impatient for Bluesky to ship, but this interview with The Verge has helped convince me that it’s okay to wait. The API is still in flux. Already I need to go back and update some early experiments.
One of those just try random code until it works mornings. Not proud of it. Sometimes coding is less well-crafted and more stubborn persistence.
Shoutout to the guy holding a “thoughts and prayers ain’t working” sign downtown this morning. Banning assault weapons should not be controversial. It’s time.
This year I’ve become fascinated with my family tree. Just got back my DNA kit results. (Yes, there are privacy issues. I’m ignoring those for now.) So far it reveals just about what I expected. Still amazing.
Some great NBA playoff games over the weekend. Too many injuries, though. Can’t believe Tyler Herro hit that 3-point shot with a broken hand. Shooters gonna shoot. 🏀
Happy Monday, everyone. Starting the week at Progress Coffee again. ☕️
We pushed a new Micro.blog beta out to TestFlight, improving blog selection to move the list of blogs to the toolbar area. Here’s a partial screenshot of what it looks like.
Didn’t get much feedback about my Substack blog post yesterday, so I started to doubt myself. I wrote it quickly and glossed over some details. But that’s how it is with blogs… Sometimes you put things out in the world and hardly anyone notices. That’s okay! Still worth it. On to the next post.
Another unexpected use for ChatGPT: asking it for examples of using command-line tools like rsync
for specific scenarios. Faster than digging through a man page.
For folks trying Micro.blog’s Twitter import, note that the tweets page is just a web page, so you can add intro text or other formatting if you want to. I added a little intro to mine here to give some context.
Dave Winer writes about the Twitter API changes:
Corporate platforms always fail, given enough time. The Twitter API had a good run. Now the deck is clear, and there’s room to make some new stuff, or just take a break and smell the roses a bit, or go for a bike ride. 🤪
This seems like the right attitude to me too, even if it’s frustrating to deal with platforms failing. When one door closes, another opens.
Nilay Patel’s Decoder interview with Substack co-founder Chris Best is excellent. If you’ve only seen the excerpt where Chris declines to answer Nilay’s hypothetical moderation question, that clip was not taken out of context. It is exactly how the interview went, but a small part, and they cover a lot about Substack’s business and the founder’s approach to the web.
I’ve been interested in Substack since the beginning because I think they get a lot of things right:
It seems clear from listening to Chris that this focus on identity and portability is no accident. Substack believes in empowering writers, and giving them their own “island” on the web, largely free of platform rules. There is little need for content moderation because readers are actively choosing to subscribe to a writer, not stumbling on random viewpoints that may be offensive or controversial.
Enter Substack Notes:
This is a very different design than the rest of Substack. As it grows, Notes will have much more power to amplify viewpoints and be central to how users discover new writers. It will need to be moderated like a traditional social network. It will need some kind of lightweight following model instead of jumping straight to giving a writer your email address.
In the Kickstarter video for Micro.blog in 2017, I talked about how I viewed the distinction between the Micro.blog timeline (the social network) and the blogs we hosted (or that you can host elsewhere):
If we start to separate the publishing from the social network, it unlocks something. It empowers writers to feel like they own their work, even if that’s short posts. And it frees social networks to build a safe community, without worrying about censorship, because no matter what the networks do you can always post to a site with your name on it.
This has guided our approach to moderation all along. I expanded on it in several chapters of Indie Microblogging, especially the one called Open gardens. It remains a unique part of how Micro.blog works compared to pretty much every other platform.
Substack could adopt a similar philosophy with Notes. Instead, they seem stuck on… something. I’m honestly not sure why they haven’t thought this through in a little more detail.
I’m not rooting for Substack to fail, but I do think Notes needs changes. And while I’m offering unsolicited advice, they should drop the “building a new economic engine for culture” tag line. It means nothing. Forget about the VC money, the drama, whatever is happening with Twitter, and get heads down to build something that makes the web better.
New episode of Core Intuition is up! On episode 553 we talk about WWDC 2023 tickets, conferences, and Micro.blog’s new Twitter import feature.
We redesigned the Micro.blog home page this year and it’s so much better. Yet I still wonder if we’re telling the complete story about what Micro.blog can do. Full blogs. Social network. ActivityPub. Podcast hosting. Newsletters. Tweet import. Hugo. Cross-posting. More open APIs than any platform.
I’ve been keeping an eye on our OpenAI bill since we added automatic podcast transcripts for all podcasts hosted on Micro.blog. It’s working out great and sustainable. Micro.blog for podcasts is best for solo microcasts anyway. Perfect for quick transcripts and the way our hosting is structured.
Good morning, Austin! At Progress Coffee. ☕️
Congrats to Rogue Amoeba on the major update to Farrago. They’ve done some really nice work in this app.
There’s a lot of talk about how AI can get facts wrong. That’s fair, but in my experience it’s correct most of the time. Even when it’s slightly off, there’s usually some useful truth in the answer. Much more frustrating is voice assistants who can’t even begin to give an answer.
More and more I find myself keeping ChatGPT open and asking it even dumb questions that Google or DuckDuckGo could answer just as well. “If it’s 1pm in California, what time is it in Poland?” Having an ad-free, simple response is nice. This is going to completely upend the search engine business.
I recorded a video on YouTube showing how Micro.blog’s new tweets archive import feature works. It’s 6 minutes long and I explain more about how the different parts fit together.
Daniel Jalkut blogs about Micro.blog’s new tweets import and how it can work with MarsEdit.
It’s not all about Elon Musk. Ben Thompson has made variations of this argument on Stratechery and Dithering, but I wanted to quote this segment from the Sharp Tech podcast where I thought Ben particularly nailed it:
Part of the irony of everyone getting upset about Elon Musk killing all the third-party Twitter apps is that that’s what Twitter’s management should have done a decade ago. If you’re going to go in that direction, go in that direction. Instead they didn’t have the guts to sort of follow through in their strategic decision to its logical endpoint.
I stopped posting to Twitter in 2012 exactly because of this strategy. I’ve said that Elon has greatly accelerated what was already the path for Twitter fading into silo irrelevance. I wish I could come up with a less violent analogy, but what comes to mind is Twitter leadership in 2012 loading the gun and pointing it at third-party apps, but it wasn’t until 2023 that anyone pulled the trigger.
Elon deservedly gets most of the blame for Twitter’s recent chaos. But I don’t think Twitter was going to last forever under any version of its clown car leadership over the last 15+ years. In the long run we will be thankful that Elon is effectively putting the company out of its misery. We’re going to see innovation on the open web as third-party developers realize they are the ones who have actually been given new life.
Share extension is back, and better! There’s a new beta of Micro.blog 3.0 for iOS with support for sharing photos and links from other apps. Grab it on TestFlight. Note that this is still a beta and there are a couple glitches, for example with cropping photos sometimes.
Substack Notes is interesting but they seem to have forgotten a valuable part of the rest of Substack: content ownership and portability. Your newsletter/blog can be at your own domain name, but “notes” are just another silo on someone else’s platform.
Today we launched a new feature: importing an archive of your tweets to Micro.blog. This is available to all paid subscriptions and can be accessed on the web under Posts → “…” → Import.
Very early Micro.blog customers may remember that we used to have a Twitter import feature alongside our traditional blog import from WordPress, Tumblr, and other platforms. We disabled this years ago because I kept hearing from people who realized that it was a mess importing tens of thousands of tweets into their new blog. I’ve taken that feedback to build this new feature into something that I think works much better.
There are a few unique twists with how this works:
You can see my own tweets on my blog here: manton.org/tweets
Structuring the tweet storage this way means we can leverage many of the powerful features built in to Micro.blog:
Because the storage is just blogs, you can use existing apps to manage the tweets and photos. For example, you can use MarsEdit to download and search all your tweets. It’s also easy to zap all your tweets and start over without touching your actual blog.
Some limitations: I’ve decided to only copy photos from the archive, not other types of media. If you have a lot of photos, expect this to take a long time as Micro.blog extracts the photos from your archive and uploads them to our servers. You can keep an eye on what it’s doing on Account → View logs. I expect we may tweak this as we get feedback from more people.
Enjoy! I hope this makes it a little easier to say goodbye to Twitter.
If you’ve procrastinated downloading your tweets archive from Twitter, I would do it now. It takes up to a day to get it, and who knows if it will change or break in the future.
Went to see Air. Loved it. So hard to make dialog in a movie like this not sound fake, but they pulled it off. Felt very real. Best movie I’ve seen in years. 🏀
ChatGPT continues to impress. I’ve started asking it programming questions just to save a few minutes here or there. For example, this question returned a detailed answer that was exactly correct:
I’m using Ruby and DataMapper with MySQL. How to get a list of unique years used in a database table “pages” with date field “posted_at”?
🤯
Just posted a new Core Intuition. More on our favorite recent topics: the Twitter API shutdown and AI-generated images and text.
Love that feeling when I realize that previous me had already written code to do exactly what I need today. There’s a whole database table I forgot existed to solve this.
Wanted an illustration for an upcoming feature, and spent some time using DALL•E for the first time. Fascinating. Generated dozens of images, then drew some parts myself and put them together. I don’t think these models should be trained with copyrighted works, but credit is murky to me now.
The Fediverse Report continues their great summarization of recent hot topics. On trademarks, Eugen is certainly within his right to trademark Mastodon. I chose not to trademark Micro.blog because it’s too close to microblog, which is a word everyone can use. I also prefer “social web” to fediverse.
Spurs vs. Blazers… in Austin! 🏀
Fascinating discussion on the latest The Talk Show with @gruber@mastodon.social and @danielpunkass about AI. What does it mean for humanity when more tasks can be automated and fewer people need traditional jobs? As a developer, a lot of my time isn’t coding but thinking how something should work.
Blast from the past: video of my old iOS app Tweet Library. I forgot how much I loved this app. 📦
When I started building Micro.blog, I tried to limit dependencies on external platforms. The main connection is via cross-posting, which is an optional feature and not what I consider the core platform. So for example, I resisted integrating tweets into Micro.blog’s timeline, even as many people asked for it.
We are seeing now with Twitter’s implosion why that matters. I didn’t think Twitter was going to last forever, but Elon Musk has greatly accelerated Twitter’s fall beyond what I expected even when I was most pessimistic about massive, centralized platforms.
Even so, I find myself this week investing time into keeping Twitter cross-posting in Micro.blog going for a little longer. I’ve rewritten the API from version 1.1 to 2.0. Auth has to change to make that work, and an unfortunate side effect is that photo upload also has to change. I’m forced to simplify tweets so that they link back to your blog for photos.
Twitter’s paid API rollout have been chaotic. Bridgy developer Ryan Barrett found that Bridgy’s API access was shut off already, weeks ahead of the expected April 29th deadline:
The silver lining is, after all the chaos and destruction and flight to the fediverse, Twitter doesn’t feel nearly as important now as it did half a year ago.
Back in 2012 when I stopped using Twitter, I would never have guessed that 10+ years later I might be paying Twitter $100/month for the privilege of using the API. But I don’t like shutting off a feature without warning. The compromise I’ve come up with is to continue supporting Twitter cross-posting for a limited time.
Here’s where I see things going from here:
In a bit of “lemonade from lemons” good news, I’m working on something new for Twitter users that we can control. Tweet archive import! We had a version of this feature a few years ago in Micro.blog but had to disable it because it wasn’t quite right. I’m taking those lessons and also my experience building Tweet Library to make something that will last.
Did a first pass of rewriting all my Twitter API 1.1 code to 2.0. Halfway through I started to seriously question why I am bothering, given the limited lifespan of this code. It’s straightforward to push through, except for one wrinkle: Twitter never finished implementing media upload in 2.0! Sigh.
There’s a lot going on with the S-GPT shortcut. Very clever to have trigger words in the speech that help integrate with system tasks. I also keep imagining the potential for this when voice assistants are powered by it.
I’m sure a lot of Trump supporters are having a hard time processing what is going on with multiple potential charges against the former president. Doesn’t seem fair, right? Why was he impeached twice and always in legal trouble? But it’s simple: he was a corrupt president. 🇺🇸
Attempts to refill the bird feeders have resulted in squirrels taking over the backyard. They are relentless. I’m downstairs trying to work and keep getting distracted looking out the window.
Interesting to compare the main headlines from feed reader home pages:
Feedbin: “A nice place to read on the web” (Love it!)
Inoreader: “Take back control of your news feed” (Also good!)
Feedly: “Track insights across the web without having to read everything” (Enterprise-y!)
Molly White has a good post covering Feedly’s “protests” feature. But even ignoring all those problems, it didn’t seem like this belonged in an RSS reader. Even minor features should support a product’s main reason for existing, or its mission.
Somewhere north of Meridian, TX. 🚂
Deploying code to servers, on a train that has no wi-fi. Everything will be fine.
Grabbing coffee this morning before heading back to Austin, catching up on email. Still thinking about Taylor Swift last night. Incredible show. AT&T Stadium is massive… 70k people at the concert, times 3 nights here, so 210k people just for the Dallas / Fort Worth area.
Taylor Swift. Eras Tour in Arlington, TX.
Union Station in Dallas. 🚂
Good write-up about FediForum from The Fediverse Report. On the $40 pricing, I was a little skeptical at first of excluding too many people, but the attendance size was just right. Great participation. For the fediverse to reach its potential, there should be a mix of business models.
If you use Drafts, check out this new action for Micro.blog. Post drafts, publish, choose your blog, cross-posting, and more options. Thanks @donnydavis!
The plug-in Search Space by @sod has been updated to 1.0. It’s a nice upgrade over the older search I wrote, searching blog posts, replies, and even the new podcast transcripts.
Taking the train up to Dallas tomorrow for a quick 24-hour trip. Initially was trying to save money in coach, but just upgraded to a roomette so I can more easily work and enjoy the trip. Hope when Brightline is finished with the Vegas line they can expand to Texas. 🚂
Zilker Kite Festival. 🪁
Posted Core Intuition 551! This episode covers the launch of Micro.blog’s new podcast transcripts feature, and more generally what AI is good for. A short show, just 22 minutes this week.
Wrote a help page with some more details about automatic podcast transcripts in Micro.blog, a new feature we shipped this week. Really happy with how this feature came together.
No one is above the law. 🇺🇸
The new Twitter API tiers are about what was expected. Disappointing. For Micro.blog, we plan to support cross-posting for a limited number of months, to let folks wind down their use of Twitter. There’s no future on Twitter so all we can do is smooth over the shutdown for customers.
Just finished a quick demo of Micro.blog at FediForum. Might’ve talked too fast. The variety of demos is so interesting. Mastodon clients, Planetary, WordPress, Flipboard, and others. It’s an exciting time for the open web.
We’ve launched a new feature for Micro.blog Premium customers: automatic podcast episode transcripts, powered by OpenAI’s Whisper model. I’m excited about this because it’s one of the more practical, time-saving solutions coming out of the rise of AI. The automatic transcripts are so accurate they can be used as-is, or edited by hand as you have time.
I thought it would be clever to ask ChatGPT to write a blog post announcing this feature. You can see the result here. But I threw it out because I like writing my own blog posts!
At Micro.blog, we don’t usually reach for automation first. We curate the Discover section by hand, looking for posts that will provide a snapshot of activity on Micro.blog to help you find new people to follow. We don’t have trends and don’t have public likes or retweets. AI is going to reshuffle many tech products, but we’re never going to have an AI-driven algorithmic timeline. AI is a tool that we’ll only use when there is real benefit that aligns with our principles.
The new transcripts feature is available to anyone hosting their podcast on Micro.blog. When you upload a new MP3, Micro.blog will process it to generate a transcript. You can then edit the transcript or link it from your podcast page.
There is also a new Micro.blog plug-in to add a list of transcripts to your blog, as well as control options to disable transcription and link to the transcript from blog post. Search in the plug-in directory for “Transcripts” to install it.
There’s no extra charge for any of this. Micro.blog Premium has always been $10/month and it will continue to be priced that way. It includes podcast hosting and also email newsletters, bookmark archiving, web page highlights, and much more. We think it’s a great value.
NSDrinking tonight! 🍻 I’ll be there. I haven’t joined in a while, so will be nice to catch up with folks. Anyone’s welcome.
It’s pretty incredible how little has changed in podcast RSS feeds in 20 years. That’s a good thing. The podcast ecosystem is not exactly suffering because of any confusion or missing spec features.
I agree with the spirit of the Podcast Standards Project but I’m concerned about the details. The specification seems overly strict in a couple places (like guid
) that will not be compatible with a bunch of feeds.
The automatic code reloading in React Native is still kind of wild to me. I committed some changes, pushed to GitHub, then switched branches to something else, and the UI updated while the app was running in the simulator. Surprised me even though I know it works that way.
Just pushed out another TestFlight beta of Micro.blog 3.0. This has some really nice new stuff for managing uploads. Also the return of basic photo filters! Getting closer. Still missing: share sheet.
The new Zelda looks great. Love the fuse ability featured in this gameplay video.
I’ve been playing with Wavelength Messenger. Not to be confused with our own Micro.blog companion app for podcasts, also called Wavelength! I wish it was called something else, but ignoring that I think there’s a lot to like. John Gruber’s introduction is the best place to start.
My copy of Tress of the Emerald Sea arrived! Love the green ink throughout the book. 📚
FediForum is this week! On Thursday I’ll be demoing how Micro.blog fits into the fediverse, and I’ll join in other sessions when I can. You can see the schedule here.
Worked a bunch this weekend trying to decommission an EC2 server (hosting App.net archives!) by moving millions of little files to S3. Taking forever, often failing. I’ve been maintaining this for years and really want to turn the page on it, but can’t accept losing any data.
With yesterday’s podcast, we hit 550 episodes. Some listeners may have noticed that we’ve slowed down a little, recording every other week while there has been a lull in sponsors. Hoping we can do a few new secret member-only episodes this year.
On the latest Core Int, we talk about shifting deadlines for shipping Black Ink and the potential for integrating new AI tools in developing our apps.
I like this summary by @snarfed of why HTTP content negotiation is more trouble than it’s worth. Simple, different URLs for different things are easier to debug, copy/paste between apps, etc. I often look at Micro.blog’s JSON in a web browser, no special tools needed.
Great story from the @RogueAmoeba blog about a meeting with Adam Curry, Eddie Cue, and Steve Jobs that may have saved Audio Hijack.
We don’t use AWS for that much, but costs just about doubled last month with more CDN usage. I tweaked some settings to try to bring it down a little. 💰
Finished reading: The Cat who Saved Books by Sosuke Natsukawa. Books about books. 📚
Dunno if I’m late or early to this, but I’m playing with the OpenAI API. Impressive. The folks over there know what they’re doing.
Really didn’t want to be up at midnight still dealing with attacks on our servers, but here we are. Good news is I was able to optimize a few things that will be helpful going forward anyway.
Micro.blog was acting a little sluggish so I looked at the logs and of course the servers are being hammered again by “hackers” attempting to exploit security holes that don’t exist. Blocked a bunch of stuff and should be better now.
Great article in Texas Monthly about Community Impact, a hyper-local newspaper for neighborhoods around Austin, Dallas, San Antonio, and elsewhere.
I hadn’t been following Hachette v. Internet Archive closely, so spent a few minutes listening to Brewster Kahle’s statement. It seems part of a larger issue of whether we can own digital content or will have to rent it. The Internet Archive is such a force for good, glad they’re fighting this.
Watching some of the recent Microsoft Copilot demos and playing with Bing, I wonder what AI products they will roll out before everyone else can even attempt to catch up. Maybe a Microsoft voice assistant box? It would leapfrog Alexa and Siri.
I really enjoyed this episode of The Talk Show with guest Jason Kottke. Their talk of 404 links after years (and decades!) of blogging inspired me to expand our archiver in Micro.blog to make it easier to preserve a copy of web pages you link to. I recorded a YouTube video with the details.
The new beta of Micro.blog for iOS is coming along really well. We’re at the point where I can see the finish line, and I’m comfortable punting some more features into the next update.
Spurs eliminated from the playoffs early this year, but you couldn’t tell by watching the 2nd half of this Hawks/Spurs game. So fun to watch. 🏀
Listening to U2’s Songs of Surrender. I think I was expecting a kind of “Taylor’s Version”-style re-recording, but it’s more a new take like you’d hear at a concert. Love this. 🎵
Playing with FeedLand reminds me that Micro.blog doesn’t have OPML export. The reason is because some people might have private-ish RSS feeds that power their account. This is rare but I wanted to be careful about exposing the URLs. Need to first add OPML that only includes obviously-public feeds.
We’re enabling ActivityPub for everyone now, not just recent users. This is needed so that you can fully migrate followers away from Micro.blog if you want to in the future. It will cause email notifications for some folks who haven’t used Micro.blog in years, but I think it’s the best way forward.
Captured a little video of the lightning on the other side of the storm back at home.
Long day. Drove into hail somewhere before Denton, then through a thunderstorm between Waco and Austin. It started with lightning playing in the clouds and then the downpour was on us, destroying visibility as we crept down the highway with our hazard lights on. Kind of a Texas-sized welcome home.
I’ve been a software developer for about 30 years and ChatGPT is the first technology that I can barely comprehend. Still feels like magic. 🪄
Last day on the road as we make our way through a rainy highway 287 in the middle of nowhere.
Finished reading: Elder Race by Adrian Tchaikovsky. A short, great read. 📚
Did not finish: Senlin Ascends by Josiah Bancroft. Just couldn’t get into it. Might try to pick it up again some other time in print instead of audiobook. 📚
I was reviewing a GitHub pull request today for a potential upcoming feature and was struck by how well it represents my workflow with Micro.blog for major new features. Start with some basic structure for the code, add more pieces, then fix bugs and polish it up. Screenshot:
Great milestone as Kottke.org hits 25 years. Jason writes about the early days:
The updates on weblogs & diaries were smaller but more frequent than on other personal sites — their velocity felt different, exhilarating.
Enjoyed Colorado this week. Heading back to Texas today… Going to miss my new morning routine of walking to the coffee shop with a view of the mountains in the background.
Pikes Peak from Garden of the Gods. For “horizon”, day 14 of the Micro.blog photo challenge.
Royal Gorge Route Railroad. Incredible views, good lunch. Makes me want to re-read From the River to the Sea which covered a lot of building the track here.
Shiny light at Palace Coffee in Amarillo, for day 12 of the photo challenge. Be kind. ☕️
There’s no lesson in impermanence like spray painting your message at Cadillac Ranch only to have it covered up by someone else 30 seconds later.
Posted this week’s Core Intuition, all about social networks and blogging. Bluesky, the AT Protocol, Micro.blog, WordPress, ActivityPub, and Nostr.
I can’t take Meta’s efforts at decentralization seriously while they don’t even have a usable API for posting to Facebook and Instagram. From Platformer:
Building a decentralized network could also give Meta the opportunity for its new app to interoperate with other social products — a previously unheard-of gesture from a company known for building some of the most lucrative walled gardens in the industry’s history.
Morning at Lamppost Coffee. As close to a ritual as I have, for day 10 of the photo challenge. ☕️
Finished reading: Assassin’s Quest by Robin Hobb. An extraordinary series.📚
21 years ago today, my first blog post. A bunch of promising social networks have come and gone in that time. Often feels like very little is permanent, so make sure to have your own space on the web.
What an incredible milestone for @_Davidsmith@mastodon.social: 100 million downloads of Widgetsmith. This part of his blog post resonates with me too:
The Indie Developer community has demonstrated time and time again the tremendous capability of the individual or small team. Showing that it doesn’t take massive teams with giant budgets to create things with enduring value.
Walked up to the coffee shop this morning. The side of the road everywhere still looks like this, leftover branches from the winter storm. Cleanup trucks starting to arrive, but it’s going to take a while.
Congrats @playdate@panic.com on the Catalog release! I’m updating my Playdate now. It’s the model that I still hope we’ll get for the iOS App Store one day: a curated store + side-loading for everything else.
Worked this morning at Cuvée Coffee. Bags of coffee beans for today’s prompt “whole” on the photo challenge. ☕️
New Micro.blog 3.0 beta going out to TestFlight folks now, adding username auto-complete. Still has a couple glitches but should be a nice improvement when you @-mention people. We are steadily working through re-implementing the features from 2.3 so we can ship 3.0 to the App Store.
Bluesky is starting to enable custom domains. This is exactly how things should work in terms of identity and portability. Micro.blog has a similar (but less ambitious) way to follow domain names. Would love to see Mastodon get inspiration from this.
Photos still rolling in every day for our March photo challenge. It’s fun to see some Mastodon posts in the mix too! Check out the grid view on the web for an overview of everything. Not too late to participate, follow @challenges for the prompt each day.
Stopped at a train crossing as an Amtrak went by. Because today’s photo prompt is “engineering”, thought of a train engineer and got this shot out the car window. 🚂
Two new iOS app updates to start the week: Sunlit 3.4.4 fixes setting alt text, and another Micro.blog 3.0 beta with support for saving and publishing drafts.
Day 5 of the photo challenge: tile.
Looks like Mastodon will be getting expanded support for showing styles in posts. Micro.blog already sends bold, italics, and other basics to Mastodon, so this will be a nice improvement for folks reading in Mastodon.
In case anyone doesn’t notice the post on @news, there was an issue with loading photos from the CDN tonight after an HTTPS certificate expired. I’ve fixed it and also added the CDN to our monitoring so this won’t happen again.
I’m going to attend FediForum on March 30th (day 2) to show how Micro.blog and Mastodon work together. Should be interesting! Feels like 2023 is going to be different tech communities coming together in our shared post-Twitter world.
I’ve been trying the Bluesky beta (still private, but they have a waitlist). I’m open to supporting it because Micro.blog isn’t based on any single protocol. It’s a blogging platform and social network that connects with the web. ActivityPub, Micropub, WebSub, RSS, XML-RPC, whatever.
Thanks @Aywren for the kind words about Micro.blog and how it connects to the fediverse and other services. Love this line: “Micro.blog has the ability to connect everything together in a crazy good way.”
Solitude is coffee and a breakfast taco and my laptop, having the whole outside to myself for a little while. Lazarus Brewing. ☕️ (Also trying to do all my photo challenges in black and white for something new.)
Looking up at the sky as we’re expecting bad weather tonight. Wind is starting to pick up.
We went seriously down the genealogy rabbit hole last night, with a couple “oh wow” moments of discovery. Need to do a little more research at the library (print books! microfilm!) and then will try to write it up in a blog post.
John Gruber writing about the App Store / Twitter apps refund problem:
Consider the gut punch of losing your job — you stop earning income. It’s brutal. Now imagine that the way it worked when you get fired or laid off is that you’re also suddenly on the hook to pay back the last, say, 6 months of your income. That’s where Tapbots and The Iconfactory are.
Love seeing the photos coming in for the March photo challenge. My favorite view is this grid view of thumbnails. Related, I think it’s time we enable the CDN for all blogs by default. I’ll make that change later today and of course you can opt out.
I’ve said before I never want to change Micro.blog’s $5 standard hosting price. The best way to increase revenue is to get more customers and make our $10 plan valuable. But if we ever change it, I promise not to blame it on macroeconomic headwinds. Customers want clear and honest answers, not spin.
Good write-up on Six Colors about the updates to Twitterrific and Tweetbot, which let you opt out of getting a refund. Strongly recommend if you had a subscription to download the update and opt out. Just takes a few seconds and will really help those developers.
Day 1 of the Micro.blog photo challenge! Today’s word is “secure”. I noticed this keyhole covered up or filled in at the coffee shop.
It’s bad enough that Linode dropped their logo, but now prices are going up by 20%? I haven’t done the math but this is going to be a big hit to our Micro.blog hosting costs. Not happy.
Can’t believe it’s March already, at least for folks on the other side of the world. Reminder to Mastodon folks: you can follow and participate in the Micro.blog photo challenge by following @challenges@micro.blog. We’ll be sharing some more details as things get underway.
Loved the first book in this world so decided to get A Day of Fallen Night on release day. Still have a couple other books to finish first before I can start this. 📚
Last night, stayed up until 1am reading Assassin’s Quest. Felt like I was 17 years old instead of 47. 📚
With the big character limit change behind us, I had a free morning to work on anything. This is my favorite thing about being small. Added a new CSV export for highlights based on recent feedback.
Don’t sleep on our bookmarks and highlights feature. 🙂 It is going to grow into something special.
I uploaded a very short 21-second demo video to YouTube, showing the Mac app’s updated character counter for posts with block quotes. Same behavior across all platforms as described in this announcement post.
In 2014, as I was starting work on Micro.blog, I blogged about the properties of a microblog post, including the character length:
I picked 280 characters instead of App.net’s 256 characters because it’s slightly less nerdy, and feels right at exactly double Twitter’s 140. This should be thought of as more of a guideline than a rule, though — just something to shoot for.
After that, Twitter also doubled their character limit to 280 characters. Mastodon launched at 500 characters. In the years since, it has felt less symbolic for Micro.blog to stick to 280 characters. Thinking about a post-Twitter world, 280 actually now feels kind of wrong.
Micro.blog is based on real blogs, so you can have full-length blog posts with a title, categories, photos, inline links, podcasts, and anything else you’d expect blogs to have. Those full posts don’t have a limit. It’s the Micro.blog timeline that encourages the 280-character limit to make the timeline as readable as possible, not cluttered with long posts or “read more” links.
Today we’re making the next big change to how the timeline works: we’re “rounding up” the character limit to 300, and for short posts that contain a block quote, we’re doubling it to 600.
Unlike some social networks, Micro.blog’s character counter is for the text you will see in the final post. It strips out any Markdown or HTML tags when calculating the length, so there’s no extra cost to italic text or links. And with the 600 limit for quotes, it’s more consistent to use Micro.blog’s “Embed” link to paste in someone else’s post from the timeline and know it won’t be truncated.
This gives posts a little more room to breathe. The posts are still short enough that it’s not a significant change to the reading experience in the way that bumping it all the way to 500 would be. It feels right for Micro.blog.
Micro.blog on the web, the Mac app, Android app, and beta of Micro.blog 3.0 for iOS on TestFlight have all been updated with this new limit.
There’s still more to do. We plan to adopt this change for Micro.blog replies as well, which have always been treated differently than regular posts. Because that’s a more disruptive change, we’ll roll it out separately in the coming months. We have some ideas for improving the UI for long replies to tie replies back to your blog. That will take longer to get right.
Enjoy the extra 20 characters! Happy blogging.
We’re doing another photo challenge in March! Post a photo each day to your blog, inspired by prompts that we’ll post to Micro.blog.
New episode of Core Int: I’m the King of the World. We talk about @danielpunkass trying to ship Black Ink for iOS. Then we react to the latest news of Twitter’s Titanic-like slow sinking.
Actually made a to-do list to coordinate shipping a new feature on all platforms at once: web, macOS, iOS, Android. Takes a lot of juggling even for minor code changes.
Spending a little time this morning improving performance to combat “hackers” making a bunch of requests to our servers, as they attempt to exploit holes that don’t exist. A large percentage of our total hosted blog traffic is just 404s. Waste of internet bandwidth. 🙁
I’ve documented how Micro.blog works with the Micropub API’s syndicate-to
parameter now that there’s more control over cross-posting. Always feels good to revisit an IndieWeb API.
From Platformer, this rings true especially for the Twitter API free vs. paid changes that never materialized:
Musk seems to announce a new thing coming “next week” all the time, and often those deadlines pass and whatever feature was allegedly coming is never heard of again.
It’s really cool what @lex has been doing with his Daily Lex podcast. I hoped we’d see this kind of thing when we built podcast hosting in Micro.blog. Recording even a short show nearly every day is hard… I’ve tried and want to get back into it.
Today we updated the web version of Micro.blog (and the Mac app) to provide better control over how new posts are routed to external services like Twitter, Mastodon, LinkedIn, etc. Just like showing blog categories, you can show checkboxes and uncheck which services you don’t want Micro.blog to cross-post to. This setting is remembered only for the current post and by default posts go out everywhere.
This is a fairly big change. I expect we’ll learn more as people actually use it. I wanted to get it out for the web and Mac first because we can ship those without waiting for approval from Apple and Google. Mobile versions will follow.
Some of the gotchas you might run across:
We’ve also expanded our support for the Micropub API to include syndicate-to
fields. This is well-covered in the spec. The Mac app is open source and uses the same public API.
Finished reading: Ready Player One by Ernest Cline. So much fun. Still going to skip the movie, doesn’t seem possible to adapt without losing too much. 📚
Working on a couple new features. Some things we try to roll out across all platforms at once. Some it’s better to release for the web first, then follow up with native app implementations. Not an exact science, just depends on what feels foundational or optional.
Not a lot of words, big change:
Enabled spell checking as you type in new posts for desktop web browsers. For mobile, the best editing experience will still be our native iOS and Android apps.
Still kind of jarring to see the Akamai logo when I’m using the Linode manager.
Reading about Biden’s trip to Ukraine. Flight to Poland and then 10-hour train to Kyiv. Hoping we see some photos of the train… Fascinating everything that went into the trip. 🇺🇸
Micro Camp 2023 will be in May. Online-only this year. Email @jean if you’ve got an idea for a short talk you’d like to share with the Micro.blog community.
Rolling out some plumbing for future work. Some features are best deployed in phases… Database changes first, then other services bits, then finally clients. Nice to be able to see how things are running before launching for real.
I try not to complain about pricing because I know how annoying it can be when someone says $5 for Micro.blog is too much, but $12 for Meta Verified is way out of whack. Seems to be a new trend to charge for non-features.
This new Micro.blog plug-in from @sod is so clever. Post previews using your blog template!
Another week, another round of ActivityPub-related improvements! Over the last few months we’ve been filling in little details for Mastodon compatibility in Micro.blog. Were at the point where Micro.blog is a good fediverse citizen and has everything most people should need.
Today I rolled out initial support for setting a Mastodon profile header image. This is a feature that Micro.blog doesn’t currently have for its own profiles. Should it? I’m not sure, but in the meantime I didn’t want it to hold back anyone who likes profile headers on Mastodon.
You can upload a profile header in Micro.blog under Account → View Mastodon Details. When Mastodon users follow your account, they will see the header on Mastodon. Here’s a screenshot of part of the settings screen:
Micro.blog also does a better job of notifying followers on other servers when a profile photo updates. Mastodon generally has a different philosophy for storing images than Micro.blog does. Micro.blog loads most images as needed when they are viewed and caches them for a certain length of time, whereas Mastodon waits for a server to tell it that a profile or post has updated and then copies any images to its own server.
We could take most major features in Micro.blog and keep fine-tuning them indefinitely. Mastodon support is no exception, but I think this is a good time to pause. Next week I’m excited to revisit some pieces of the core Micro.blog platform that don’t necessary have anything to do with the fediverse.
Finished reading the last few chapters of Royal Assassin by Robin Hobb on the flight back to Austin. Can’t wait for the next one. 📚
Lunch and tea at Guilder.
Coffee and breakfast and coding at Either/Or. Love this boot glass. ☕️
Realized yesterday that a better per-post cross-posting setting is probably the most common Micro.bog feature request over the years. I think it’s time. Expect it soon-ish.
Yesterday at the Rose City Book Pub, catching up with @jean. 📚
Hung out with a bunch of people yesterday who I mostly hadn’t met in person before, so now I’m replaying every conversation in my head to remember what idiotic things I probably said.
Columbia River at Astoria.
Of course the HTTPS cert for one of our CDNs would expire while I’m on an airplane. Thanks as always to @vincent for recovering things quickly.
At the beginning of each week, I make a short list of important tasks to work on. Always nice when it’s midweek and a bunch of things are done, sometimes everything. I’ve found this approach works well for me… Each week is a reset with achievable goals.
Every time I set up something in S3 or Cloudfront, I have to re-learn how it works. Users, bucket policies, CORS… Doesn’t matter if it was only a few weeks ago that I last configured something, or that I’ve used AWS for years. The UI is optimized for flexibility, not convenience.
Got some good replies that maybe I’m wrong about UFOs. But assuming we’re mostly alone, I still don’t know whether to be sad or inspired by it. No neighbors means it’s all on us to explore and eventually move to other planets. 👽 Preferably not with balloon power. 🎈
UFO speculation is funny. Aliens aren’t going to invade with balloon-powered airships! 🎈 I think we’re mostly alone. The universe is vast, but it’s not that much older than our own planet. Not enough time to develop another civilization and solve lightspeed travel. 👽
We pushed another TestFlight beta out for the Micro.blog rewrite. This adds post editing, which was one of the last things that I missed from the previous shipping version. @vincent continues to do good work on this, and I’ve even started contributing a little bit of code.
Window art at a doctor’s office.
“I expect chaos.” — Me, writing in October just after Elon took control of Twitter.
One of my favorite things about blogging is looking back on what guidance might be hidden in old posts. Old blog posts are like a mission statement reality check. Yep, still on track.
I don’t have strong opinions about football rules like I do about basketball. I think my nitpick with last night’s game is that a 5-yard penalty also came with a free 1st down. Clock management is so critical late in the game that 1st downs shouldn’t be given out easily. 🏈
I love emoji, but I seem to have become grumpy about custom emoji (like Slack or Mastodon) because they don’t actually work anywhere else on the web. Maybe it’s time for me to let go and embrace the fun, despite the inconsistencies.
Posted @coreint episode 547 with a recap of last week’s ice storm in Austin, and then a long discussion about enabling Mastodon-compatible usernames in Micro.blog and what the impending Twitter API changes might mean for Micro.blog.
We’re caught up on Last of Us on HBO, and also started playing the game on PS4. I’ve been mostly in the Nintendo world for years, so I missed a lot of really good PlayStation games. Nice thing about waiting: it was only $10. 🕹️
Lots of NBA news. Poeltl back to the Raptors. Will miss him, loved having him on the Spurs. Durant to the Suns. And this is mind-boggling on the failed Brooklyn experiment:
Durant, Kyrie Irving and James Harden all arrived to conquer the NBA together, and they all left on the muscle of trade requests. They played a total of 16 games together.
Continuing to tweak how we handle Mastodon servers that are down. A lot of instances come and go. Micro.blog is better now about retrying connections but also noticing when a server is probably not coming back.
Excited as LeBron gets closer to the all-time points record. Should happen tonight or Thursday. I loved watching Kareem when I was growing up. Always a Spurs fan now, but it’s been a long time since the Spurs/Heat finals… LeBron has won me over. 🏀
Setting up more Micro.blog accounts today to be ActivityPub-enabled. Folks will get an email when this is enabled. It can be turned off, and we’ll likely be adding some more settings here too.
We’re going to be doing more regular TestFlight builds of Micro.blog 3.0 as we get more features filled in. If you want to follow along, check out @news for the latest links and other updates.
Several days ago, Twitter announced the API will no longer be free. Then Elon backtracked, saying maybe “good” bots will be free. We still have no idea. It’s stunning how badly they are handling… well, everything. 2k employees is still a lot! It’s not the staff, it’s the chaos.
Ahead of the Twitter API going paid-only, I’ve been looking into how much we’re actually using it. I’d like to keep offering Twitter cross-posting for the next X months to give Micro.blog customers an offramp. It’s hard to make business decisions with Elon’s erratic leadership.
Finished reading: The Dragon Republic by R. F. Kuang. Not sure I’m going to continue the series. There’s great stuff here but I’m no longer feeling much sympathy for the main character. 📚
Slowly getting back to normal after a few days without power. Lights came back on last night, and it was like a luxury… Fast internet. Heater. Hot showers. The only reminder of what happened is a yard full of tree branches. Just hoping most of our live oaks survive this. ❄️
Even though I’ve been personally done with Twitter for years, still sucks to see the API go paid-only. Feels similar to when we had to disable Facebook cross-posting from Micro.blog because Facebook continued to lock it down. But we’ll see… Curious about the price and terms.
Driving through the neighborhood and it’s like nothing we’ve seen here… For a moment I imagined a giant ice god, sweeping down with frost and fury, smashing trees. ❄️
We’ve lost more tree branches today than the last ice storm. Hearing the creak and fall, or scraping the roof… Not good. Power has been out most of the day, but we’ve got plenty of firewood. Sitting by the fire with a glass of wine and an e-book and pretending it’s all fine. ❄️
Woke to the sound of tree branches breaking under the weight of ice. No power. Made a fire. Sun starting to come up. ❄️
I know that 64-bit numbers are insanely large, but I still hate wasting database IDs. Bug caused hundreds of thousands of unnecessary database records. Oh well, onward.
Would love to know more about yesterday’s mastodon.social DDoS attack. So many people use that instance, when it’s slow we notice. In this case, it actually revealed a bug in Micro.blog, sending too many requests to Mastodon. Feel bad that it probably wasn’t helping their server.
Last night, instead of actually reading, I wasted a lot of time conflicted on whether I could finish reading an e-book before it was due at the library or if I should pause and read something else. Usually juggle 2-3 books (at least 1 audiobook)… So much to read. 📚
Finished reading: River of Stars by Guy Gavriel Kay. I’m sort of left without the right words, dumbfounded after finishing this. Really good. 📚
January is almost over. Micro.blog has been much more stable after the few glitches we had in November as Mastodon was blowing up. We’ve had ActivityPub support since 2018, but only needed to learn how to actually scale it recently. Progress.
When we started using @news more, I was worried about adding noise to people’s timeline, so I customized the feeds to only include “big” changes. That ended up being confusing. I’ve reverted it now so that the news.micro.blog home page, feeds, and timeline include all posts.
New episode of Core Intuition went up last night. Daniel reviews the redesigned Micro.blog home page. We talk about being a tiny company, open source licenses, and more.
For puzzled Mastodon users reading my posts, I keep forgetting about Mastodon ignoring blockquote
tags. Need to update Micro.blog’s cross-posting and ActivityPub to automatically change the output to use regular quotes.
This is a really important point from Alan Jacobs:
Mastodon has certain virtues, at least for some, but let’s not attribute to it powers it does not have.
Federation is a step forward, but it does not solve everything. I think my post from 4 years ago holds up here.
A little morning work and coffee at Lazarus. ☕️
One of the last missing pieces for Mastodon compatibility was improving DMs, which I rolled out yesterday. We don’t have DMs as a core feature on Micro.blog because I think private messaging needs to be handled very carefully, and not every social network should have its own messaging system. iMessage and Signal are better for this.
DMs just going into the void isn’t good either, though. The compromise we’ve settled on is that when someone from Mastodon sends you a DM, Micro.blog forwards that message to you in email. The email now includes a link to a form for you to send a reply back to Mastodon:
There is no message history and messages are deleted automatically after 60 days.
Last year I blogged about our roadmap to get a little distance from Apple in mobile development. The next major version of Micro.blog for iOS is coming along well, based on React Native. This week we open sourced the app! Feels good to get the source out there.
Good morning! Slightly busy schedule today. New day, new possibilities.
This is a great story from KUT on what happened with the Zilker Park train. Should’ve just fixed the track instead of starting over. Every experienced programmer knows this… Don’t rebuild everything all at once.
This is going to be the most frequent of frequently asked questions. If Micro.blog supports the fediverse, why doesn’t the new Tapbots app Ivory work with Micro.blog?
ActivityPub is a mostly server-to-server API that both Micro.blog and Mastodon support. This allows people on Mastodon to follow people on Micro.blog. When you post to your blog, the post is sent out to Mastodon folks, and they can reply and join conversations on Micro.blog all from within Mastodon. Likewise, on Micro.blog you can follow Mastodon accounts and reply to posts without needing an actual Mastodon account yourself.
For client apps like Ivory, Mastodon has its own API. It’s a completely different thing than ActivityPub, closer to the Twitter API. It’s not an open standard and Micro.blog does not support it.
Could Micro.blog implement the Mastodon API, thereby allowing Ivory to connect to Micro.blog as if it was a Mastodon server? Technically yes, but doing so would introduce a couple problems. By design, Micro.blog does not have exactly the same features as Mastodon. We left out boosts, trends, and follower counts, and added other things that are outside the scope of Mastodon.
If Micro.blog worked with Ivory, what would the UI look like when the features didn’t exactly match up? It would be confusing. Ivory would appear broken and it would disrupt the experience we’re going for with Micro.blog’s community.
As Mastodon becomes more popular, it’s important that Micro.blog stays true to its blogging roots and unique take on social media, rather than shifting to be a Twitter or Mastodon clone. We don’t need a monoculture with all apps looking exactly the same.
Micro.blog already supports multiple APIs for posting from client apps, including Micropub (which most IndieWeb apps use) and XML-RPC (which MarsEdit uses). I’m happy to add additional posting APIs like Mastodon’s, but only when we can make it fit well.
There are some obvious next steps.
I’d like to experiment with extending Mastodon’s /api/v2/instance
endpoint to return Micro.blog-specific feature info. That way, clients like Ivory could in theory adapt their UI to fit the server capabilities. For example, if there are no boosts, hide the boost button. There is already precedence for this with Mastodon’s character limit and other common settings.
I’m also keeping an eye on Ice Cubes, which is open source. This app seems like a great playground to try out new features that work with Micro.blog. When those changes are prototyped, it will be easier to pitch Tapbots and other developers on supporting them.
It’s still early days in the post-Twitter world. I’m excited about what we have planned for this year. We’ll keep improving our compatibility with Mastodon and see what comes of it.
I’m going to start the process of enabling ActivityPub support for older Micro.blog accounts this week, likely tomorrow. You’ll be able to disable it if you don’t want it. But in the long run it’ll help bridge conversations across the networks.
Rainy day in Austin. Walked up to the coffee shop anyway, trying to time my walk to when Apple Weather predicted a pause in the rain. Still can’t find any of our umbrellas. 🌧️
Still a little experimental, but I added a new plug-in for Micro.blog based on the theme in Bear Blog. Nice lightweight design that looks good and should be pretty easy to customize.
Finished reading: The Poppy War by R. F. Kuang. Loved Babel so wanted to read this series too. Strong first book. 📚
Posted a new episode of Core Intuition. We talk all about Twitter. The end of third-party apps, differences between when Manton quit Twitter compared to now, could Twitter be saved, open protocols, and more.
Watched Emily the Criminal last night, and then Aubrey Plaza host SNL. She was great in both. 📺
Started listening to River of Stars by Guy Gavriel Kay today while on the road. Love his writing. Also have the print version which I may switch to later. 📚
In addition to the new home page, over the coming weeks we’ll be sponsoring podcasts and web sites to help get the word out about Micro.blog. The first show went live yesterday: The Pen Addict episode 547. Thanks @brad for the kind words!
Some folks have noticed that we’ve rolled out a totally new Micro.blog home page (if you’re not signed in already). Huge thanks to @vincent and @jean for making this happen. Just the start of how we want to better highlight Micro.blog’s capabilities this year.
Managed to mess up links on my blog while changing something else. Some RSS and ActivityPub posts might be wrong while I sort it out.
Finished reading: The Kingdom of Back by Marie Lu. A mix of historical fiction and fantasy. Took me a while to get into it, but enjoyed it more as it progressed. 📚
I believe the dopamine hit from posting to Twitter’s large audience is addictive and very difficult to put down. […] Fortunately, I do not care about my audience size.
My best posts are written for myself first. Gotta be okay with sometimes posting into a void.
As I posted this morning to the news blog, I’m going to upgrade one of our servers in about an hour. We have redundancy for most things to avoid downtime, but this is a tricky one. Won’t affect hosted blogs. Hopefully will be quick. 🤞
I was re-reading Craig Hockenberry’s post on the third-party Twitter apps shutdown. It’s a great post, channeling the frustration of so many developers and users. And I love that it’s on his blog, not as a tweet or toot. Ideas and writing sometimes need space to breath on the web.
Everyone had a different last straw with Twitter. It helped to have a villain in Elon Musk who could be blamed for every bad decision in the growing narrative of Twitter acquisition chaos.
But one problem with pinning everything on Elon is that it leaves open the possibility that maybe Twitter would be fine if the company was led by a different CEO who continued the Twitter API status quo. I don’t think so. Twitter wasn’t going to last forever because massive ad-based silos will always be at odds with the open web. Twitter’s recent implosion greatly accelerated what would need to happen regardless.
Today we got Twitter’s first public statement that the apps shutdown was about API rules. Remember back in 2012 they announced that apps could not have more than 100k users, even if popular apps at the time were exempted. There were other restrictions too, largely ignored. Third-party Twitter apps were living on borrowed time, strung along with false hope every few years as Twitter’s leadership drifted back and forth on whether to encourage developers or cut them off.
Craig also highlights open standards like ActivityPub in his blog post, and how the future shouldn’t be Mastodon-only:
Federation exposes a lot of different data sources that you’d want to follow. Not all of these sources will be Mastodon instances: you may want to stay up-to-date with someone’s Micro.blog, or maybe another person’s Tumblr, or someone else’s photo feed.
The sudden migration to Mastodon is going to make Mastodon look a lot like Twitter in the coming months. Don’t get me wrong: the migration is a great thing. Smaller social networks is one of the four parts I blogged about in 2018 for how to get out of the social network mess. But we need new apps and ideas too, to not recreate some of the same problems again.
Wish I could permanently hide the 👎 button on YouTube. I’m always worried I’m going to accidentally click it. I never, ever want to downvote something. If I don’t like a video, I’ll watch something else.
Need a break from the news. Nice to see The New York Times now allows quick online cancels, no longer need to chat or call anyone. Progress.
In the latest Gluon beta you can customize your profile photo with a color or emoji. Essentially layers another API on top of the official Micro.blog API. Reminds me a little of how Tweet Marker supplemented the Twitter API. (RIP, Twitter API.)
Not feeling well this weekend, so I’m less chatty about the confirmed Twitter third-party app shutdown than I’d usually be. Just listening to audiobooks and keeping up with the news and blog posts.
New Core Intuition! We talk about marketing and upcoming app plans. I also fixed a feed issue in Micro.blog with it, so posts will start flowing into @coreint@micro.blog again for fediverse folks who want to follow along.
Sad that this post from the Iconfactory is needed, but the art is great.
From @news:
Updates to and from Mastodon are quite delayed this morning. We are monitoring it, and expect everything to sort out eventually. May be random or a spike in Mastodon activity as Twitter continues to implode.
While we wait to see if the Twitter API problems are the end of third-party clients or just a glitch, this chapter from my book provides some of the history of how we got here and personally why I stopped using Twitter years ago. The writing has been on the wall for a decade.
Listening to Dithering this morning, which was a longer discussion following up on John Gruber’s post about the self-driving accident in San Francisco last week, I remembered a near-accident I was in a few weeks ago.
It was the usual morning traffic on the highway when cars stopped in front of me and I had to stop quickly. I watched in the rearview mirror as the car behind me narrowly missed me, moving to the side slightly, but the car behind that person swerved and clipped another car. Traffic kept moving around them and there was nothing I could do, just thankful that it wasn’t worse and that I wasn’t in the collision.
These kind of small crashes or near-accidents must happen hundreds or thousands of times a day. They don’t make the news, except as part of an update on rush-hour traffic. The same accident with self-driving “beta” software is more notable.
I guess I’m of two minds about self-driving: the technology enthusiast in me thinks autonomous vehicles will generally be safer than cars driven by humans, but I also think it’s largely a waste of resources to prioritize this effort. I’d much rather see the money and time put into better public transportation. It’s gotta be more efficient and safer to move people on a train.
In a few years there may be a handful of very large, Medium-level Mastodon instances capable of scaling to millions of users each, and some thousands of smaller, volunteer-run instances that come and go. Centralization brings convenience. Too early to know how it plays out.
I’ll be watching as Medium runs their own Mastodon instance. I like my approach better: integrating ActivityPub directly into the blog platform, not alongside it as a separate platform. But there’s no single right way to do this.
Productive morning fixing bugs, reviewing logs, answering email. Sometimes lots of small things feel like more forward momentum than the big stuff. ☕️
Can’t shake a comment that someone liked Micro.blog but it didn’t have many features. Blogs, themes, plug-ins, social network, podcast hosting, read-later bookmarks, cross-posts, archiving, highlights, email newsletters, bookshelves, IndieWeb, fediverse… Missing: marketing.
Nice summary by Colin Devroe on the return to blogging:
People that hadn't written on their blog in a long time are blogging again. Websites that hadn't been updated in many years, some over a decade, are being spruced up and published to again.
Finished reading: Assassin’s Apprentice by Robin Hobb. That was excellent. 📚
After several months, decided to cancel Kindle Unlimited. I didn’t think about how it could become an incentive for authors to go Amazon-only, which isn’t good for the larger e-book ecosystem. Still mostly using Libby, purchased books, and Audible. 📚
New fiber going up in the neighborhood? Not sure who’s installing this but can’t hurt.
This is a clever bookmarklet from @darby3 that improves Micro.blog’s post scheduling by filling in the date. Maybe Micro.blog should do this by default? Eventually need to have a real date-picker on the web, like we do in the Mac app.
We are so spoiled with movies now, gotta be careful not to become too cynical or “everything sucks” if it’s not a perfect, totally new idea. I thought Avatar 2 was incredible. Visually stunning, engaging. Not just in a few big scenes, but all the time.
Finished reading: Tress of the Emerald Sea by Brandon Sanderson. First book of the new year! Different than Brandon’s other novels but wonderful in its own way. 📚
Great post from @jeannie about the problem with the favorite button. “It removes genuine interaction and replaces it with a convenient click.” And I’ll add: algorithms love clicks because they can measure and sort it. Humans need more than that.
Just published our first Core Intuition episode of the year. We talk about goals and themes for the year, Micro.blog and Epilogue, and whether MarsEdit is the “one thing” @danielpunkass should be focused on.
Realized this week that the “versions” feature in Micro.blog isn’t well-understood, so I wrote up a quick overview of the different backup features in Micro.blog. Always good to occasionally grab a blog backup, or at the very least make sure the Wayback Machine has a copy.
It was fun to meet people in person at yesterday’s Micro Meetup! @jean has a photo here.
Hi Austin! 👋 We’re having a Micro Meetup today with @jean in town. We’ll be at Lazarus Brewing on 6th between 4pm - 6pm. Anyone’s welcome to stop by! ☕️🍺
New version of Micro.blog for macOS released! This adds a new modern-style macOS app icon, bug fixes, and a change to the context menu in timeline posts. We now show inline Reply and Bookmark buttons. Faster to show conversations and more consistent with future mobile apps.
Happy New Year! We shipped an update to Epilogue today that makes blogging about last year’s finished books more discoverable. If Micro.blog found any blog posts to include in your reading goal for 2022, it will show this at the top of the Goals tab:
Unfortunately I discovered after the calendar flipped over to 2023 that sometimes this button doesn’t show the right default new post text. I’m working on an update to fix that. (The button icon and spacing is also wonky.)
I’ve been going back and forth on how to expand the reading goals feature so that it can find more books. Currently it only works if you blogged about a book as you finished it. 2022 was a bit of an experiment, but 2023 is an opportunity for new habits. More blogging, less Goodreads.
Starting 2023 right with a rare 2/6 in Wordle:
🟨🟨⬛⬛🟩
🟩🟩🟩🟩🟩
Did not finish: Deadhouse Gates by Steven Erikson. Decided to start 2023 by giving up on this. I want to get back to it one day because I think I’ll like it after I get through the first couple books, but might need to start the series over. 📚
Happy New Year! Excited for everything planned this year. 🎉