Manton Reece
About Photos Videos Archive 30 days 90 parks Replies Reading Search Also on Micro.blog
  • Tree and stained glass at Lazarus on Airport. ☕️

    An outdoor patio features festive string lights, a decorated Christmas tree, picnic tables, and colorful overhead stained glass.
    → 12:47 PM, Dec 4
    Also on Bluesky
  • I’ve been wanting to make this change for months, finally rolled it out. When you’re on the pages for your managing your blog, the header looks better now, less clutter and fewer lines. Required a surprising amount of HTML and CSS restructuring.

    → 8:24 AM, Dec 4
    Also on Bluesky
  • Puzzle is starting to come together.

    A partially completed jigsaw puzzle depicts various colorful wildflower illustrations.
    → 8:56 PM, Dec 3
    Also on Bluesky
  • Mickey Mouse holding horseshoe ornament. 🎄

    → 5:43 PM, Nov 28
    Also on Bluesky
  • Thanksgiving is tomorrow, and I think this is the earliest we’ve ever gone Christmas tree shopping. Also we’re now measuring tree height in percentages of a Wembanyama. Got a tree that is about one Wemby tall.

    → 9:47 PM, Nov 26
    Also on Bluesky
  • Inks Lake State Park.

    A car is parked near a serene lakeside at dusk, surrounded by silhouettes of trees against a dimly lit sky.
    → 6:50 PM, Nov 21
    Also on Bluesky
  • One mistake I made building the bed platform for my car is these flimsy little brackets. They ended up bending enough over months that they broke in half. Worked on fixing this today.

    Wooden pieces are connected with metal brackets and screws, forming part of a bed frame.
    → 4:46 PM, Nov 21
    Also on Bluesky
  • Experimenting with a new Movies tab in our mobile app Epilogue. Feels a little weird… The app is for books. But also, I think it works here better than in the main app. I’m going to finish implementing it and use it and then decide for sure.

    A mobile app interface is displayed showing a Movies tab with a search bar and navigation options at the bottom for Bookshelves, Goals, Movies, and Discover.
    → 8:28 AM, Nov 20
    Also on Bluesky
  • New audio option for Micro.blog Studio

    Last week when I announced Micro.blog Studio — our new subscription plan with improved video hosting including up to 20-minute videos — I also mentioned we would be adding more features for podcasting. Today we have the first of those new features.

    Exclusively for Micro.blog Studio subscribers: Micro.blog can automatically adjust the audio levels and reduce noise for uploaded MP3s. We want to make podcasting easier, with more tools and defaults so that things “just work” without requiring a lot of podcasting experience.

    On your blog settings page, you’ll see a new checkbox: “Level audio and reduce noise”. This is a feature that some people would previously use services like Auphonic for.

    Screenshot of checkbox titled Level volume and reduce noise is selected.

    Now when you upload an MP3, Micro.blog will make it available right away but also process it in the background, replacing the uploaded file with the new version. We preserve the original file, so you can visually compare the waveforms. Click on the audio file on the Uploads page on the web.

    Screenshot with audio waveforms, with the top waveform being more amplified and distinct compared to the lower, quieter original audio file.

    Is this as good as Auphonic? No, they have some secret sauce for cleaning up audio with lots of configuration options. For Micro.blog Studio, I wanted a single checkbox that will improve most audio, especially if recorded on-the-go from your phone or without a good microphone. It’s optional. If you find it doesn’t help your audio uploads, you can leave it turned off.

    Thanks again for everyone who has tried Micro.blog Studio. More to come!

    → 11:14 AM, Nov 18
    Also on Bluesky
  • Trail just east of I-35.

    A pathway through a wooded area with trees arching overhead.
    → 5:21 PM, Nov 17
    Also on Bluesky
  • Micro.blog posts to Day One

    I’ve updated Micro.blog with support for Day One journals. In the Mac app we’ve had a manual export to Day One for a while, and now the platform can automatically copy your blog posts to Day One. This uses Day One Premium’s “Email to journal” feature.

    You can enable it on Micro.blog’s “Sources” page:

    Screenshot of Micro.blog Sources page with Day One highlighted.

    If you haven’t checked out our cross-posting options in a while, we have built-in support for over 10 different services, from Bluesky to PeerTube to Tumblr. I think our cross-posting features are unmatched by any other platform.

    For more details about Day One, see this help page.

    → 10:30 AM, Nov 16
    Also on Bluesky
  • From earlier today, McKenna Park in Denton. 🌳

    A sunny park scene featuring a lush green lawn and several tall trees under a clear blue sky.
    → 10:47 PM, Nov 13
    Also on Bluesky
  • Neat cups at Communion Coffee with the Richardson water tower and skyline.

    A coffee cup with a black lid and minimalist design sits on a wooden table in a cafe setting.
    → 10:11 AM, Nov 13
    Also on Bluesky
  • Music Hall at Fair Park in Dallas, for The Outsiders. Great show. First time I had seen it. 🎭

    → 11:00 PM, Nov 12
    Also on Bluesky
  • Oh cool, Jarrod Blundy’s blog post about Micro.blog Studio made it on Hacker News.

    A list of Hacker News articles features various tech-related headlines and community discussions, with a specific news item about Micro.blog’s new video hosting tier circled in orange.
    → 10:55 AM, Nov 12
    Also on Bluesky
  • Unwired.

    Electrical equipment and meters are mounted on a wooden wall, in disrepair, with surrounding grass and vines.
    → 4:11 PM, Nov 6
    Also on Bluesky
  • Added one of the oldest requested features to Micro.blog today: editing the slug for a post. There’s a new page for managing URL paths. A couple other things will go here later, like batch delete, to avoid cluttering the main editing interface.

    → 10:06 AM, Nov 6
    Also on Bluesky
  • ChatGPT Pulse is my favorite product of the year. It’s expensive, but it’s the first new thing I’ve seen in software in years. Love reading about what it’s come up for me each day. Here’s a snapshot, because it knows I’m thinking about Spain. (And if I scroll, it has actual work / code topics too.)

    Three travel articles featuring rail trips from Barcelona and Catalan phrases are displayed with images and brief descriptions.
    → 1:44 PM, Nov 5
    Also on Bluesky
  • Voting desert. 🇺🇸

    A cup of vanilla ice cream with a plastic spoon and a sticker that reads, I Voted Yo Voté.
    → 2:43 PM, Nov 4
    Also on Bluesky
  • Survey results

    Last week I posted a short survey to get some feedback on what features people are using in Micro.blog. The response was great. I’m reading through the freeform answers and they’re especially helpful.

    I also wanted to hear opinions about the new Movies feature we recently added on the web, and better understand how people might use better video upload support. Here are charts from a few questions.

    Where should the new Movies page go in the apps?

    Do you want to post your own videos to your blog?

    If you post video, how long will most clips be?

    → 9:43 AM, Nov 4
    Also on Bluesky
  • Wind turbines, driving back from Corpus Christi.

    Wind turbines stand prominently in a field under a clear blue sky.
    → 4:05 PM, Nov 3
    Also on Bluesky
  • Mural in Corpus Christi.

    A vibrant mural depicts skeletons wearing hats and playing musical instruments against a swirling blue background.
    → 10:01 AM, Nov 3
    Also on Bluesky
  • We’ve been going through old photos this week. I always smile looking at this one of me and my mom, from around 1980. I look so funny.

    Me and my mom pose in front of the ancient Parthenon temple on the Acropolis, with several other visitors in the background.
    → 1:50 PM, Oct 29
    Also on Bluesky
  • My mom

    Last weekend, my mom passed away. I had blogged once or twice that in recent months I found myself at the hospital often, as she declined in health and was in and out of the hospital and rehab. It was what inspired me to make Micro.blog free for nurses and teachers.

    My mom was selfless, making many sacrifices throughout her life so that I could become the person I am. At the hospital, when I thought she might only have days left, she told me, “I’m fine, go home and get some rest.”

    Even in grief, there are moments of good that we can hold on to. I am thankful that my life and work allowed me to care for her in what became her final weeks. When there was nothing else the doctors could do, my mom moved in with my wife and I under hospice care so she could be at our house, always surrounded by people who loved her.

    This has been the hardest thing I’ve ever done in my life. I rarely share such personal stories of family publicly. It feels right, though, because it ties into many things I write about.

    What do we do when everything goes wrong? The next right thing. We breathe. We get up. Tomorrow the sun will rise on a new day.

    Last year I blogged that loss can be a huge motivator:

    After my father died, I got married, had kids, and bought a house. After the 2016 election, I launched Micro.blog. After my kids moved away to college, we sold the house and downsized.

    As I reflect on this current phase of my life, I know there will be more changes. I continue to put my heart and soul into Micro.blog. I feel really good about the progress we’ve made over the last couple of years.

    So for Micro.blog, the work continues. I will catch up on email, and I can’t wait to wrap up the new video hosting I’ve been working on.

    I’m motivated to simplify and slow down, to be more at peace with the pace of my schedule. To do less. When I was dealing with the stress of personal attacks early this year, I made a similar choice, asking Daniel Jalkut if it was time to retire our Core Intuition podcast.

    I hope Micro.blog can play a small part in providing a quieter social timeline for others too, as we try to build a platform that is less obsessed with trending news and heated discussions.

    I also just turned 50 years old. In the span of just 4 days, I had my wedding anniversary, my mom’s death, and my birthday. We decided to plant a tree in our backyard, to mark our anniversary and in memory of my mom. So I found myself outside last week digging a hole as tears slid down my face. Anticipating the loss, needing to do something.

    Way back in 2008, I blogged about planting trees and starting projects:

    If you procrastinate forever, just because you won’t see results anytime soon, you’ll find yourself looking back 10 years later and wishing if only I had just planted that tree / started that new software project, it would have been done by now.

    This time I wanted the new tree to be a Monterrey Oak. They don’t last hundreds of years like a Live Oak, and maybe they aren’t as strong, but they grow very quickly. Time is precious. I want to see the tree get large and provide beauty and shade before it’s too late.

    A young tree is planted in a grassy yard near a wooden fence, with a telephone pole and shade sail in the background.
    → 9:07 AM, Oct 28
    Also on Bluesky
  • Long day. This was breakfast, feels like forever ago. Funny book at Phoebe’s Diner. 🥞

    A book titled Dad Jokes: 202 Hilarious Dad Jokes sits on a table next to a plate with partially eaten pancakes.
    → 6:09 PM, Oct 17
    Also on Bluesky
  • Lights.

    Hospital glass ceiling with hanging spherical light fixtures.
    → 5:59 PM, Oct 15
    Also on Bluesky
  • Quick update on today’s TV show rollout in Micro.blog, added a new button to make it easy to link to the entire season, not just one episode. Here’s a screenshot.

    Screenshot of Micro.blog web interace showing Slow Horses season 4 and a couple episodes.
    → 4:05 PM, Oct 13
    Also on Bluesky
  • We added new settings for your profile page today. By default Micro.blog thinks about most everything as public on the open web, but adding more control here feels right and is consistent with some of our fediverse settings. Here’s a screenshot:

    A privacy settings interface with options to hide the profile for signed-out users and hide replies on the profile page is displayed.
    → 9:00 AM, Oct 10
    Also on Bluesky
  • Picked up my car from the repair shop. Nice new bumper and paint, “like new” for a 2008 car. Itching to drive somewhere.

    → 4:46 PM, Oct 8
    Also on Bluesky
  • One of those days when most everything is hard, yet there are still a few moments of clarity. The view out from Whole Foods. Took a little time for breakfast tacos and work in between visits to the hospital. 😞

    → 11:25 AM, Oct 7
  • Laughed a little when I saw this sign yesterday. I’ve been taking this elevator a bunch over the last week and it always shakes and rattles like maybe you’re lucky when it successfully makes it back to the first floor. Came back at night and it seems fixed. 🤞

    → 6:30 AM, Oct 4
    Also on Bluesky
  • Lake Austin from Mozart’s. ☕️

    A calm river reflects surrounding trees and buildings under a clear blue sky.
    → 11:09 AM, Oct 3
    Also on Bluesky
  • The sky and clouds while walking yesterday.

    Light fluffy clouds fill a bright sky above silhouetted trees.
    → 11:06 AM, Sep 30
    Also on Bluesky
  • New book: Adventures in Animation. We were at Alamo recently and before the movie there were the usual shorts and old commercials. One struck me immediately and I thought: that looks like Richard Williams. It was.

    → 4:50 PM, Sep 28
    Also on Bluesky
  • ChatGPT Pulse

    I temporarily upgraded to ChatGPT Pro so I could try out Pulse. I know, Pro is expensive. While it’s a “business expense”, I don’t plan to keep the subscription. I’m trying to cut expenses and raise revenue, not the opposite!

    ChatGPT Pulse takes your AI chat history, optionally your email and calendar, and other tips you give it to provide a morning report on topics you’re probably interested in. It’s essentially a personalized “website” with posts written only for you.

    The first version generated for me looked like this:

    Screenshot of Pulse with a text discusses making AI-generated alt-text cleaner and shorter. Screenshot of Pulse with a story about HLS segments and FFMPEG.

    Other stories included what changed in the latest Hugo release, new web standards, and things to see in Oregon that might make for a good Micro.blog photo challenge. It knows I’m the creator of Micro.blog based on my questions to ChatGPT, and it knows I’m traveling next month because I told it. (I did not connect it to my email or calendar.)

    It was all very impressive… and actually useful. A story can also be bookmarked into your ChatGPT history to follow up on later.

    There’s something else about how this works that is fundamentally different than current chat-based AI where people are looking for answers. Instead of replacing a Google search, it’s adding opportunities to point to other websites and blogs. Because it’s proactively pushing stories to you that you may never think to look for, it should increase referrers to websites instead of subtracting them. Not enough to offset the lost Google searches, but still notable.

    OpenAI is shooting for the moon with their fundraising, investments, and data center scale out. It’s too early to know how that plays out. But one thing has been clear for a while: they are building products, not just models. Pulse is the best example of that yet.

    → 1:41 PM, Sep 27
    Also on Bluesky
  • More with book covers

    Over the summer we started including little book cover previews on the Micro.blog timeline when a book is mentioned. People loved this, and of course wanted it on their own blog too. That is starting to roll out now.

    As an example, here’s what the books category page looks like on my own blog. If there is already a photo included in the post, it skips including the cover:

    To accomplish this, Micro.blog inserts a bit of HTML into the published post, without modifying the source Markdown. The cover image can be further styled using the CSS class microblog_book. Because we also add some inline styles, you may need to add !important in your CSS to adjust margin and padding.

    Happy reading! 📚

    → 8:04 AM, Sep 25
    Also on Bluesky
  • Busy day yesterday juggling lots of different things. This morning I get to try to catch up. Coffee at Medici in the Domain. ☕️

    Iced latte in glass next to a laptop with just part of the screen visible.
    → 10:09 AM, Sep 20
    Also on Bluesky
  • Tracks at North Lamar and Airport Blvd. 🚂

    Railroad tracks stretch into the distance, flanked by greenery and utility poles, under a clear blue sky.
    → 9:20 AM, Sep 16
    Also on Bluesky
  • Good feedback from folks on whether and how to adopt macOS Tahoe menu item icons. After experimenting, menus seem to look better with icons in most places so that major sections of menu items are aligned together. I’ll ship this in a few days.

    → 10:02 AM, Sep 12
    Also on Bluesky
  • It’s going to be a busy day, juggling several different things with work and life. Starting the morning with Summer Moon. Love that exclamation point. ☕️

    MacBook Pro covered in a variety of colorful stickers sits next to a plastic cup of iced coffee on a wooden table.
    → 7:40 AM, Sep 10
    Also on Bluesky
  • Seeing this sign after parking my car… Not so much worried as I am curious how bad it must be to order a custom sign for this.

    A caution sign warns about the presence of venomous snakes in the area.
    → 3:56 PM, Sep 4
    Also on Bluesky
  • Epilogue 2.0

    Epilogue 2.0 for iOS out now. I’ve also submitted the Android version to Google for review, so that won’t be far behind.

    It seemed right to bump the version to 2.0 because of the new private notes support. The app won’t look very different if you don’t enable notes. With notes enabled on the profile screen, you’ll see a new “Add Note…” button when viewing a book you’re reading. Here you can add a note about your reading progress, and it will be saved to the Micro.blog backend, encrypted along with other Micro.blog notes.

    I blogged more about book notes in Micro.blog yesterday.

    Notes are available for all Micro.blog or Micro.blog Premium subscribers, but not Micro.one. If you need to upgrade from Micro.one, click on the Plans page on the web.

    → 8:04 AM, Sep 3
    Also on Bluesky
  • Good morning! Sunrise over MLK Boulevard. Too many trees and power lines in the way, but still was nice to see coming up over the horizon, on the way to coffee. ☕️

    A scenic view of a sunrise sky with scattered clouds is visible above a road lined with power lines and trees.
    → 6:34 AM, Sep 3
    Also on Bluesky
  • A few flowers left at Cherrywood. ☕️

    A cluster of pink and orange flowers is surrounded by lush green foliage.
    → 11:05 AM, Sep 2
    Also on Bluesky
  • Micro.blog notes while reading books

    When we added private, end-to-end encrypted notes to Micro.blog, I said that this would be a foundation for new features. The first feature was shared notes. Any private note can be published to your blog with a special, unguessable URL, convenient for sharing with other people.

    There are many other places where notes will be useful. This week, we’re rolling out support for attaching notes to books you’re reading. You’ll see a new button for this in the books list on the web, and in the next version of Epilogue, currently in review at Apple.

    Screenshot of book titled This Is How You Lose the Time War is shown alongside buttons for various actions like New Post, Add Notes, and a notes count.

    When you click “Add Note…”, it will associate the book with the new note and add the note to a notebook called “Reading”. Notebooks are a way to organize notes, for example for a collection of blog post drafts, work notes, or a private journal.

    Screenshot of editing a note with book cover thumbnail and title above it.

    If you’ve never used notes in Micro.blog before, you’ll need to set up a secret key that is used to encrypt notes. That secret key can be copied into other apps that support notes, like our companion apps Strata and the upcoming Epilogue, as well as the third-party web app Lillihub.

    I know it can sometimes seem that Micro.blog goes off on strange tangents, but everything we do is to support a platform that is centered around owning your content and publishing to your own domain name. Features like bookmarking web pages, keeping track of books you’re reading, and private or shared notes — these all help bring content together in one place where you can easily blog about it, instead of putting it in a closed silo.

    I’ve also updated the notes API documentation. There is a new endpoint for getting notes from a book ISBN, as well as new metadata in the JSON responses. Happy reading!

    → 9:45 AM, Sep 2
    Also on Bluesky
  • I stopped for a minute to look at this sign, just as a flock of birds took to the sky.

    A flock of birds flies over a grassy field with a sign designating a parking space for veterans.
    → 5:21 PM, Aug 30
    Also on Bluesky
  • Mural at Waterloo Park.

    A colorful mural depicts a person with flowers wrapped in paper and flying up, set against a vibrant purple background.
    → 1:57 PM, Aug 29
    Also on Bluesky
  • I’m always curious about other blog hosts' pricing. With Typepad shutting down, I took a screenshot of their pricing page. One of the most confusing, “why would I upgrade to Premium or Enterprise?” set of plans.

    → 7:10 PM, Aug 27
    Also on Bluesky
  • Multiple users and passkeys in Micro.blog

    Big update today for Micro.blog folks who have multiple accounts. The iOS, Android, and Mac apps have long supported multiple accounts, but on the web you could only switch between separate blogs on the same account. Managing multiple accounts on the web was frustrating.

    Now you’ll find a popover menu in the sidebar to add a new account and select between your accounts. Here’s a screenshot showing me signed into a couple of our official accounts in addition to my personal account:

    Screenshot of popover menu showing my accounts in the Micro.blog sidebar.

    And for all users, even if you only have a single Micro.blog account, we now have passkeys! This is the password-less standard for quickly signing in. No more waiting for a confirmation email from Micro.blog.

    → 10:44 AM, Aug 26
    Also on Bluesky
  • Using AI to scaffold

    A few months ago, I wrote a blog post about using AI for polish. The idea was to let AI help with taking care of lots of little details that can be tempting to skip in the rush to get a new feature out.

    Lately I’ve been thinking about another good use for AI. Not to finish a feature, but to start one. There are some bugs or features that I know I’ve needed to work on. It can sometimes feel overwhelming. Where to start, what else to bump off the priority queue so I can start this new thing?

    Two recent examples. I fired up the cloud version of Codex. This is the tool that you can give a prompt, and it’ll go off and start working on a new feature, then come back with a Git branch and GitHub pull request to review. It’s nuts and magical.

    Screenshot of Codex with two finished tasks.

    As a first test, I picked something very simple. I wrote a prompt that was about twice as long as the actual code change. When it worked, I picked something else more complicated, letting AI create a couple new files and methods.

    Did it work perfectly? Nope! It was close, though, and I could go into the code that had been created, tweak the formatting, rename some things, fix bugs. It turned a slightly daunting task into a very simple series of tweaks, iterating on it (without AI) until I liked it.

    I think this is going to be a powerful use of AI in the future. To brainstorm and draft. To get through the dip of something challenging. There is a lot of room to get coding help without necessarily going all-in and giving control to AI.

    → 10:28 AM, Aug 26
    Also on Bluesky
  • Guess I won’t be deploying this bug fix right away. 🙁 When deploying to the app servers, I roll each server out of the load balancer to avoid downtime. Can’t do that when Linode’s management interface and API are down.

    Screenshot showing status page for Linode.
    → 9:26 AM, Aug 26
    Also on Bluesky
  • It is common on Mastodon to append a bunch of hashtags to the end of a post. I’ve added a new feature in Micro.blog to help wrangle these. Here’s a screenshot from the Account page:

    This doesn’t affect inline hashtags, only hashtags at the end if they’re in their own paragraph.

    → 11:22 AM, Aug 23
    Also on Bluesky
  • Picked up this little sticker at Muse Coffee Truck while out today. Feels good to get out after being mostly stuck at home sick all week. ☕️

    → 1:26 PM, Aug 22
    Also on Bluesky
  • Liquid Glass has (deservedly) received plenty of criticism. But there are some areas that are clearly better, like these buttons in iOS alerts.

    → 1:27 PM, Aug 18
    Also on Bluesky
  • Sitting outside at the hotel, drinking so much water and Gatorade. I always seem to get sick while traveling. 😷

    A covered fire pit is surrounded by cushioned outdoor chairs with a cautionary notice about watching children etched into the stone.
    → 1:39 PM, Aug 17
    Also on Bluesky
  • Flowers.

    → 6:07 PM, Aug 11
    Also on Bluesky
  • Category improvements

    Today we rolled out two improvements to category management in Micro.blog on the web. The first is a new selection interface so you can more easily delete lots of categories at once. This was particularly a problem when importing from other blog systems, which could create lots of categories you didn’t really want anymore.

    The second is a new “intro text” field for category pages. This lets you add some text at the top of an individual category list page. So maybe on my Coffee page, I want to add a little intro paragraph that explains visiting new coffee shops while I’m traveling.

    You’ll see this new field when editing a category:

    Most themes have not been updated to support this feature yet. I’m working through themes this morning, adding the necessary Hugo code. In the template layouts/_default/list.html, there’s this extra bit of code that will add the intro text if it’s set:

    {{ with .Content }}
      <div class="microblog_category_intro">{{ . }}</div>
    {{ end }}
    

    You may also want to style it a little with CSS, until themes have adopted this with their own design:

    .microblog_category_intro {
      padding-bottom: 2em;
      margin-bottom: 2em;
      border-bottom: 1px solid #EEEEEE;
    }
    

    Keep an eye out for new versions of plug-ins you might be using. Enjoy!

    → 9:57 AM, Aug 11
    Also on Bluesky
  • Laptop stickers.

    MacBook Pro with stickers all over the cover, from coffee shops, parks, and other travel.
    → 7:41 AM, Aug 1
    Also on Bluesky
  • Now that my laptop is completely full of stickers, moving on to pins on my bag. Starting with just Mickey.

    A gray backpack with a small pin featuring Mickey Mouse.
    → 9:15 AM, Jul 31
    Also on Bluesky
  • Higher photo resolution for Micro.blog Premium

    This week we’re announcing an improvement to photo storage and photo scaling for Micro.blog Premium subscribers, our $10/month plan that also includes up to 5 blogs, email newsletters, bookmark archiving, and highlights.

    For years now, we’ve scaled photos down to about 1800x1800 when uploading them to Micro.blog. This has been a good balance of resolution and file size. Photos still look good on the web, and they take up a little less space by default.

    Now with Micro.blog Premium, we’re also saving a separate larger version, with resolution up to about 3000x3000. This version of the photo is available for themes to use, and it automatically works with the “Photo collections” plug-in, so that when you click on a photo in a collection it uses the higher resolution when zooming the photo to full screen in your web browser.

    For more about photo collections, see this help page.

    In the web interface to Micro.blog, for uploads you’ll start seeing little icons for various sizes of a photo: small, medium, or the new “extra large” size. These icons link to that resolution. Here’s a screenshot:

    The URLs for photo sizes are available in the Hugo front matter under the existing .photos_with_metadata array:

    - url: https://www.manton.org/uploads/2025/filename.jpg
      sizes:
        small: https://www.manton.org/uploads/2025/filename-s.jpg
        medium: https://www.manton.org/uploads/2025/filename-m.jpg
        xl: https://www.manton.org/uploads/2025/filename-xl.jpg
    

    You might wonder why we handle photo URLs this way, while other platforms try to hide the implementation behind random, super-long CDN URLs and dynamic scaling. I find that approach confusing whenever you need to customize anything. All the technical bits in Micro.blog are designed to be human readable. You should be able to view HTML source if you need to and not be completely lost.

    Hope you find this new size useful! As more larger photos are saved, there will be opportunities for further tweaks to use the different sizes in more places. But I wanted to get the foundation for this change out now.

    → 8:36 AM, Jul 31
    Also on Bluesky
  • Lobby aquarium fish.

    Two fish swim among green and red aquatic plants in a freshwater aquarium.
    → 7:50 AM, Jul 30
    Also on Bluesky
  • Finished reading: Isles of the Emberdark by Brandon Sanderson. I read the e-book, but I also got the print edition in the mail yesterday. Half of the book is white text on black pages! I’ve never seen this before in a novel. 📚

    A book open showing the edges of some white pages and the open facing pages that are black.
    → 12:37 PM, Jul 27
    Also on Bluesky
  • Lupe Tortilla. 🌮

    A large, rustic pig sculpture made of metal with a weathered orange and yellow finish stands on a ground covered in mulch.
    → 6:57 PM, Jul 23
    Also on Bluesky
  • Walking around and noticing all the crepe myrtles today.

    → 12:19 PM, Jul 22
    Also on Bluesky
  • Know your bananas. 🍌

    A sign at Central Market displays bananas labeled with different ripening stages, from Ready Now to 2-3 Days.
    → 3:03 PM, Jul 19
    Also on Bluesky
  • I drove by this spot on Parmer Lane yesterday and was amazed. This corner used to be a gas station and McDonald’s! They tore it down and now it’s a field of grass and wildflowers.

    A grassy field is bordered by trees under a partly cloudy sky.
    → 4:32 PM, Jul 17
    Also on Bluesky
  • 🅖

    Big red G sign in a parking garage.
    → 12:53 PM, Jul 17
    Also on Bluesky
  • Micro.blog 3.6 for Mac

    Big update to Micro.blog for Mac today if you use the notes feature. Everything is faster and more robust. I personally have probably a thousand notes, and it was a little flaky with so many notes before.

    I’ve also added a “Versions…” option to the context menu. Micro.blog keeps a record of each edit to a note, so if you make a mistake you can go back to an older version. Now there’s an interface for browsing and restoring a previous copy of the note. (This interface will come to the web later. The third-party web client Lillihub already has something similar!)

    Here’s a screenshot of the main interface. This is a test “Journal” notebook (you can have multiple notebooks) that also shows the new sharing URL pane.

    Micro.blog screenshot shows notes and sharing options.
    → 10:37 AM, Jul 16
    Also on Bluesky
  • The photo search in Micro.blog for Mac has gotten really good. I don’t think there’s anything like this in other blogging platforms. Screenshot of “coffee” search for my blog. (Similar interface on the web too. Works best with AI enabled so we can generate keywords for everything.)

    A collage of various coffee-related images, including cups of coffee, coffee shops, and coffee equipment.
    → 7:44 AM, Jul 12
    Also on Bluesky
  • The pattern of coffee and people. Overhead light looks like a halo.

    Houndstooth coffee shop features a long wooden bench, white tables, and chairs, with a wall sign that reads THE PATTERN OF COFFEE AND PEOPLE, with a circular light overhead.
    → 7:27 AM, Jul 12
    Also on Bluesky
  • Photo button when editing posts

    I’ve finished a significant improvement to editing blog posts that include photos. Let’s say you want to add a photo to an existing blog post. Before, you could upload a new photo in Uploads, then copy and paste the <img> tag HTML into an edited blog post. Now there’s a photo toolbar button when editing, just like there already was for new posts.

    Screenshot of editing a blog post in Micro.blog with photo button circled.

    When you add a photo, it will include a thumbnail version at the bottom of the post. Click the photo to remove it or add an accessibility description.

    This change introduced an interesting new wrinkle for more complex blog posts. These photo thumbnails are automatically added to the interface when editing a post that includes one or more photos at the end of the blog post, which is the default layout in Micro.blog. If you have a blog post that includes text and photos interspersed, it does not touch those photos.

    Micro.blog is both a full-featured blog hosting platform and a social network. We want creating new posts to be as simple as it is on platforms like Mastodon or Bluesky, while still including the flexibility to jump the guardrails using Markdown, HTML, and CSS. I hope this new editing interface strikes the right balance.

    Please let me know if you see any new problems. I changed a few things in both the web interface and our implementation of the Micropub API that is used behind the scenes.

    → 3:20 PM, Jul 11
    Also on Bluesky
  • Swarm changed their app icon from orange to gray (in a generic “bug fixes” update with no release notes) so I had to move it on my home screen. It used to be in between Overcast and Audible. Bottom dock hasn’t changed in a while: Hey, Epilogue, Strata, Micro.blog.

    → 5:40 PM, Jul 10
    Also on Bluesky
  • Micro.blog 3.5.8, logs window

    Today we’ve updated Micro.blog for macOS to version 3.5.8, fixing a couple problems. I’ve also improved the Logs window to color in green the lines for when a blog publish was finished. Just makes it a little easier to see when glancing at the window.

    Screenshot of Micro.blog for Mac with publish done line in green text.

    Micro.blog keeps the log to show when it’s preparing your posts, when they’re being run through Hugo, and then when they are actually available on the web.

    Those of y’all who have listened to Core Intuition for years might know that I always avoid .10 bug fix releases. As a long-time Mac developer, my brain is still wired with the classic vers resource, and .10 feels wrong and potentially confusing for sorting. Since we’re at .8 already, it’s almost time to bump the version to 3.6! Thinking about what new features might be appropriate for that release.

    If you use Micro.blog but haven’t tried the Mac version, check it out! I think it has gotten quite good. The web version will always be the complete version of Micro.blog, but for posting, editing, managing uploads, and much more, the Mac version is my go-to app.

    → 10:40 AM, Jul 4
    Also on Bluesky
  • Next step with AT Proto

    I’m considering some improvements to our Bluesky and AT Protocol implementation in Micro.blog. Currently we can cross-post blog posts to Bluesky, either manually or automatically whenever you post to your blog. You can also follow Bluesky users directly in Micro.blog. You can even browse Bluesky starter packs.

    There are several directions we could go from here. At one point, I thought PDS hosting would be the next step, but it still feels too early for that, and it would be a daunting infrastructure change. I’d like to instead focus on lexicons.

    When we post to Bluesky, short posts under 300 characters are preserved mostly as-is, with inline links and photos. Longer posts are truncated. Posts with titles are linked back to your blog, including the post summary if it’s set.

    Meanwhile there are people in the AT Protocol community exploring long-form content, such as WhiteWind and Leaflet. My rough plan is:

    • Add an option to Micro.blog cross-posting for Bluesky that also copies long-form posts to Leaflet’s structured format. I hope that this might help spur interest in Leaflet. Leaflet uses a block-based document format, and Micro.blog would essentially convert HTML to this format as best it can, with each paragraph or image becoming a block.
    • Add a new embed type for long-form posts with a new lexicon that removes the 300-character limit, adding an optional title field and other things. This way, Bluesky clients would continue to see the truncated post in the timeline, but clients that are aware of this new embed could extract it and show a “read more” link or just include the full text.

    Posts in Bluesky can only have a single embed, which is a union that could be one of several types. The most common embed is an array of images. Another embed is the Open Graph preview. A new blog.micro.embed.post lexicon would be an additional embed.

    Let me try to visualize this structure with a diagram of two posts. The first is a simple short microblog post. The second is a microblog post with the full-length blog post embedded in it.

    Diagram showing a microblog post and a long-form post with embed in AT Protocol.

    Note there are a couple of potential issues here, and probably others I haven’t run into yet:

    • Because there can only be one embed, we’d lose the very useful array of images attached to a post. Instead, we’ll recreate this as an images field inside the embed, so Bluesky clients can fall back on that.
    • Because real blog posts often have inline images, we’ll add a new rich text facet type blog.micro.richtext.image that represents an image. In the same way you could have a range of text that is a link or @-mention, you could have a range of text that is an “image” and should be replaced in a post renderer with the image, or linked to open the image.

    Of course it’s a slippery slope to just reinventing HTML. I’ve included an optional html field that has a copy of the blog post as the author intended. If available, clients could choose to show that in an embedded web view. But by attempting to stick with Bluesky’s rich text and facets wherever possible, it feels like it is a little more at home with the network.

    I’ve published drafts of this on GitHub: blog.micro.embed.post and blog.micro.richtext.image. Feedback welcome. These are not finalized and might be wrong or later change in breaking ways until I actually write the code.

    → 8:55 AM, Jul 2
    Also on Bluesky
  • Final day of the photo challenge. After a busy weekend, I needed a little solitude. Houndstooth Coffee on MLK. ☕️

    A laptop displaying a website and the Micro.blog timeline is placed on a wooden table next to a glass of iced coffee.
    → 9:07 AM, Jun 30
    Also on Bluesky
  • Mineral Wells State Park. The hike down to the lake and back was a little steeper and more rocky than we were expecting. Great morning but too hot.

    → 1:34 PM, Jun 29
    Also on Bluesky
  • Clouds along I-35. Day 28, ephemeral.

    The side of the highway with fluffy clouds in a blue sky above green trees and grass.
    → 4:21 PM, Jun 28
    Also on Bluesky
  • Day 24 of the photo challenge, although a day late… Bloom.

    → 7:48 AM, Jun 25
    Also on Bluesky
  • Delivery robots gathering. It’s day 20 of the photo challenge.

    → 8:55 PM, Jun 20
    Also on Bluesky
  • Dia after a week

    I’ve now been using Dia for about a week. Parker Ortolani just blogged that he was skeptical of the Arc to Dia transition, but he’s now convinced:

    The success of Dia over the past few weeks has brought me back my roots, reminding me of the iconic Steve Jobs quote “people don’t know what they want until you show it to them.”

    My experience with Dia has also been positive. Because I’m not a heavy tabs user — I rarely keep more than a few tabs open, and by the end of the day they’re all closed — I actually prefer the tabs going back to the top of the window. Obviously this was a needed change for the AI sidebar.

    My only nitpick is the iOS-like text selection bars, which are distracting. I’m always accidentally clicking on them because of how I often double-click and drag to select text. This is on a Mac:

    Using Dia is a nice reminder that there is very little lock-in with web browsers. Switching to a new browser is easy. If The Browser Company can’t make their business work, then I’ll switch to something else.

    → 3:24 PM, Jun 20
    Also on Bluesky
  • Updated the Mac app again today, adding a search field for your replies and improving the highlighting when searching posts. I’ve been meaning to do this for a while. Looks a lot better.

    Screenshot of Micro.blog for Mac, showing the sidebar and an active search for Apple and various blog post results where Apple is highlighted in yellow.
    → 8:57 AM, Jun 20
    Also on Bluesky
  • After travel and work and family things that have pulled me away, I’m back to the Micro.blog photo challenge! Day 18, texture. Dusting off the microphone.

    A microphone is positioned above a wooden desk with a laptop covered in stickers.
    → 2:27 PM, Jun 18
    Also on Bluesky
  • I’ll be releasing a new Mac app today, with a few updates for macOS Tahoe. It’s the bare minimum, and more changes will be needed later when Tahoe ships to everyone. One quirk that is annoying me is how to handle items that were previously very close to the edge of a window, like this photo icon.

    → 8:08 AM, Jun 17
    Also on Bluesky
  • The Talk Show Live was excellent. My WWDC week is winding down… It was great to catch up with folks. Saw several people tonight I hadn’t seen in years.

    → 1:50 AM, Jun 11
    Also on Bluesky
  • Liquid Glass is getting a little bit of hate after the first day of WWDC. Apple can dial it back in some places, but I think it’s mostly going to work. I’ve also tested the Micro.blog iOS app with it. We’ll update our UI as we get closer to the final iOS 26 release. Amusing button glitches:

    → 1:10 PM, Jun 10
    Also on Bluesky
  • Catching up on yesterday for the photo challenge. Day 9, wood. From walking around Oakland, near Children’s Fairyland.

    A tree stump is situated in a grassy area with trees and a fenced area in the background.
    → 12:11 PM, Jun 10
    Also on Bluesky
  • Day 8 of the Micro.blog photo challenge: travel. Heading down to San Jose. Not actually my train… It arrived on the other track.

    → 6:17 PM, Jun 8
    Also on Bluesky
  • This was unexpected. Walking back to my hotel tonight, I noticed that some of the traffic lights were out. Turns out the power is out at the hotel too, and they gave everyone little glow sticks to help navigate the stairs and rooms.

    A glowing green light stick is held by a hand near a staircase.
    → 10:11 PM, Jun 7
  • Day 6 of the photo challenge, contrast. Jack London Square / C. L. Dellums Station in Oakland.

    → 11:09 PM, Jun 6
  • While walking to Groundwork Coffee this morning in Los Angeles. A jacaranda tree, I think.

    → 11:32 AM, Jun 6
  • Rolled into Los Angeles super early. Found a coffee shop that I could walk to that was open at 6am. Still forming some thoughts about this Amtrak trip… It was disappointing, and I think I’m done with Amtrak for a few years, which is unfortunate because I love trains. Just too many weird problems.

    Union Station in Los Angeles is illuminated with purple and white lights, surrounded by tall palm trees.
    → 7:30 AM, Jun 6
  • Vise Coffee in Alpine. I had just finished a cold brew I brought with me, so got a sticker and postcard instead of actual coffee.

    → 3:19 PM, Jun 5
  • Just a tiny bit of reflection, outside Alpine.

    → 10:09 AM, Jun 5
  • This might be a bit dark, but for day 4 of the photo challenge, I was stuck in traffic and looked to my left at this cemetery off MLK. So many stories here.

    → 3:57 PM, Jun 4
  • Screenshot of a couple blog post drafts I might publish this week. You can tell I primarily wrote these on my Mac, because whenever I compulsively hit command-S, Micro.blog saves another version. Every few months I need this feature to restore some deleted sentence.

    Screenshot of Micro.blog drafts list with saved versions counts of 77 and 156.
    → 2:21 PM, Jun 3
  • For day 2 of the Micro.blog photo challenge: curve. A shot from when I was walking through the Texas Capitol a few days ago.

    → 8:33 PM, Jun 2
    Also on Bluesky
  • Red oak tree, for day 1 of the new Micro.blog photo challenge.

    → 8:04 PM, Jun 1
    Also on Bluesky
  • Build the wall. First time in northwest Austin in a while, more work on the 183 toll road construction.

    → 8:58 AM, Jun 1
    Also on Bluesky
  • From yesterday, at the Texas State Capitol.

    Capitol building is partially visible between leafy oak trees under a cloudy sky with some blue.
    → 8:37 AM, May 30
    Also on Bluesky
  • Micro.blog 3.5 for iOS

    We just released a new version of Micro.blog for iOS that adds two improvements:

    • Redesigned the reply pane to be smaller, with a new username bar for adding or removing people from your reply. Non-modal so you can scroll the timeline behind it.
    • Added a new publishing progress pane, to give better status of what’s going on with a new blog post.

    Here are a couple screenshots showing the changes:

    Screenshot of the Micro.blog iOS app interface with the timeline and a reply section, featuring a vibrant photo of a sunset, and another screenshot showing a progress bar.

    We’re wrapping up the Android version too. Hope to submit it to Google for approval later this week.

    → 2:33 PM, May 27
    Also on Bluesky
  • Stephen F. Austin State Park. Short hike on a trail near the Brazos River.

    A river with brown-ish water is surrounded by green vegetation under a clear blue sky.
    → 3:04 PM, May 22
    Also on Bluesky
  • You might’ve noticed there’s a new status line in Micro.blog’s publishing progress, providing a little more context for what the platform is doing. I’ll continue to tweak this so the progress is more useful.

    Screenshot of publishing pane on the web with running Hugo status line.
    → 7:48 AM, May 22
    Also on Bluesky
  • Big Thicket National Preserve.

    → 12:25 PM, May 18
    Also on Bluesky
  • Acadiana Park in Lafayette. 🌳

    → 2:23 PM, May 17
    Also on Bluesky
  • Sheldon Lake State Park. The ponds used to be part of a fish hatchery, then closed in 1975 and let nature take over. We saw some alligators. 🐊

    → 4:10 PM, May 15
    Also on Bluesky
  • With OpenAI adding 4.1, I’m having to think a little too much about which models I should be using. I generally use o4-mini for coding, 4o for simple, fast questions. What now? I expect GPT-5 will help consolidate some of these choices.

    → 2:41 PM, May 14
    Also on Bluesky
  • Time for some plants for the front yard. Mother’s Day shopping at Home Depot.

    → 1:09 PM, May 11
    Also on Bluesky
  • Made several little design updates to Micro.blog this weekend, including a more consistent, cleaner header for pages that have some text and a “new” button. Here’s a screenshot for posterity.

    → 10:20 AM, May 11
    Also on Bluesky
  • When we launched Micro.one, I was interested in simplifying the sidebar. I moved the link to manage blog post categories to another pane for all users. I now think that was a mistake. Today along with some other minor UI tweaks, I’ve added it back.

    → 7:38 AM, May 10
    Also on Bluesky
  • Hello again, Austin. It was about 3500 miles round-trip, driving to New York and back. Good couple weeks but glad I won’t have to be on the road tomorrow.

    → 7:31 PM, May 2
    Also on Bluesky
  • Using AI for polish

    By “polish” I don’t mean the design, necessarily. I mean all the little details that differentiate a good app from a great one. Extra things that busy or lazy developers (like me!) don’t always make time for. Here’s an example from this week.

    I’m experimenting with a new feature in Micro.blog for Mac. I’m not exactly sure what form this will take, so don’t read too much into the screenshot below yet. For now this is a fun thing that I’m working on between bug fixing and other important improvements to the platform.

    The window will have a progress bar to show the status of downloading a file. My first pass at this code was pretty basic, and I almost left it that way, but the download could take quite a while on most internet connections. How about giving the user an estimate of time remaining for the download?

    This is the kind of thing I might not always bother with. I’m only one person, and there is a lot to work on. By leaning on AI, I could easily add this extra bit of polish to the user experience.

    Here’s the prompt I used with OpenAI’s o3 model:

    During download, calculate approx how many minutes will be remaining in the download and put that in the field like “1.2 GB (1 MB, 5 minutes remaining)”. Ideally use hours with 1 decimal place if > 60 minutes, just minutes as a whole number if < 60 minutes, and if < 1 minute, just seconds as a whole number.

    ChatGPT produced just the right code. It only took me a few minutes to tweak and reformat it a little. Very happy with the result.

    A download progress window for an AI model to categorize blog posts is displayed, showing the size and remaining time.
    → 4:14 PM, May 1
    Also on Bluesky
  • Old train bridge viewed from the Bill Clinton presidential library. It’s a pedestrian bridge now, but it lines up perfectly with the former Choctaw Route Station on the park grounds, even if the rails are long gone. 🚂

    A curved metal railway bridge spans over a river surrounded by lush green trees under a partly cloudy sky.
    → 3:18 PM, May 1
    Also on Bluesky
  • Fidel & Co. A little more time in Little Rock before hitting the road again. ☕️

    A bottle of Topo Chico and a glass of iced coffee with a colorful design are placed on a wooden table alongside a black and white sticker.
    → 9:10 AM, May 1
    Also on Bluesky
  • Bookshelves at Nexus Coffee & Creative in Little Rock. ☕️

    → 1:43 PM, Apr 30
    Also on Bluesky
  • Parked at The Root Cafe in Little Rock. Lunch and plotting a change to my route stops so I don’t drive directly into a storm and tornado watch. 🌪️

    A Honda Element is parked in a lot beside a colorful mural featuring whimsical, cartoon-like creatures with exaggerated facial features and bright colors.
    → 1:05 PM, Apr 30
    Also on Bluesky
  • City & State, morning in Memphis. Looks like there’s gonna be bad weather today heading west. ☕️

    → 8:16 AM, Apr 30
    Also on Bluesky
  • Model train at the Casey Jones Home & Railroad Museum. I visited the museum today, nearly perfectly timed. Tomorrow is the 125th anniversary of Casey’s death. Seeing the sign for the museum on the drive east last week, went down a deep rabbit hole of Dumbo, Disney, and Casey Jones history. 🚂

    → 7:49 PM, Apr 29
    Also on Bluesky
  • Remedy Coffee in Knoxville.

    → 11:48 AM, Apr 29
    Also on Bluesky
  • Another shot from Washington, D.C. — the Carnegie Library, also probably the most beautiful Apple Store I’ve ever visited. Needed to pick up a new MacBook charger since I somehow left mine in NYC.

    → 10:54 AM, Apr 28
    Also on Bluesky
  • Loved all the greenery at Maman this morning. Got there early enough that there was lots of space, but it filled up. ☕️

    → 10:48 AM, Apr 28
    Also on Bluesky
  • Over the Chesapeake Bay Bridge into Washington, D.C.

    A bridge is visible through a car windshield at sunset, with a small Sorcerer’s Apprentice Mickey Mouse minifigure on the dashboard.
    → 7:48 PM, Apr 27
    Also on Bluesky
  • Micro.blog 3.4.6 beta

    For beta testers on iOS, there’s a new build of Micro.blog with a button to toggle just showing draft blog posts. This matches the functionality we’ve had on the web and Mac apps for a while. Useful if you manage lots of drafts.

    Screenshot of iOS beta with Drafts button circled in the toolbar.

    If you’re not on the beta yet, feel free to sign up at this TestFlight link. We’ll release it to all customers in the coming week.

    → 7:25 AM, Apr 27
    Also on Bluesky
  • xAI turbines status update

    A city street flanked by tall buildings has trolley tracks running along it, with several parked cars and a clear sky above. Stephen Hackett continues to have good links related to xAI energy use and gas turbines in Memphis. From what I can tell, none of the other AI companies have done anything like this. They use the existing grid or have proposed new power plants. Google considered generators for backup only. xAI is unique in seeming to not care at all about pollution.

    This fits the model we’ve come to expect from Elon Musk. He cares a lot about the big picture and less about who is hurt along the way. It’s an extremist, unhealthy perspective.

    I drove through Memphis a few nights ago, only stopping for dinner, but I could tell right away it was a city I’d love to explore more on a future trip. Cool place.

    → 7:03 AM, Apr 26
    Also on Bluesky
  • The view from Queens. Kind of a wild few days of driving now that I reflect on it.

    → 8:32 PM, Apr 25
    Also on Bluesky
  • Train bridge at Falling Waters, West Virginia. On the other side of the river, the Confederates were stranded for days after Gettysburg.

    A train bridge spans across a green landscape with trees and a pathway beneath.
    → 4:32 PM, Apr 24
    Also on Bluesky
  • Roanoke River overlook, along the Blue Ridge Parkway.

    → 1:13 PM, Apr 24
    Also on Bluesky
  • Nashville Public Library.

    → 4:13 PM, Apr 23
    Also on Bluesky
  • Nailed it. I’m too amused by wall outlets and light switches gone wrong, it’s surprisingly common. This one in the hotel stairway.

    An electrical outlet is installed on the edge where two walls meet with the plastic needed to be cut, surrounded by a textured gray wall.
    → 6:29 PM, Apr 21
    Also on Bluesky
  • New laptop sticker, from Vintage bookstore and wine bar. Booksellers not algorithms. 🍷

    MacBook Pro with various stickers, like Terrible Coffee, Mastodon, Bluesky, Books are Magic, and others.
    → 7:26 AM, Apr 19
    Also on Bluesky
  • Coffee yesterday at Lazarus. ☕️

    Iced latte with almond milk, barrels in the background, edge of MacBook Pro on the side.
    → 10:39 AM, Apr 18
    Also on Bluesky
  • Micro.blog for Mac continues to improve. Just released version 3.5. A new feature I like in this release: paste a photo from the clipboard directly into the Uploads section to upload it.

    Also added a Preview button. I use this with command-shift-P but I’m sure some people didn’t know it was there.

    Screenshot of Mac windows showing preview button.
    → 9:24 AM, Apr 18
  • The Internet Archive is asking for help to defend against lawsuits:

    A coalition of major record labels has filed a lawsuit against the Internet Archive—demanding $700 million for our work preserving and providing access to historical 78rpm records. These fragile, obsolete discs hold some of the earliest recordings of a vanishing American culture.

    The Internet Archive is a unique force for good. Sad that they have to waste any time on this.

    → 12:33 PM, Apr 17
    Also on Bluesky
  • Gutter.

    A downspout is attached to a stone wall beside a closed door with a small overhang.
    → 5:12 PM, Apr 15
    Also on Bluesky
  • New Mac app for Micro.blog is out today with a couple improvements, including a little interface for editing the auto-generated accessibility text for uploaded photos. Here’s a screenshot:

    A dialog box displaying a URL link and a description about a basketball game with players, referees, and an audience.
    → 9:13 AM, Apr 14
    Also on Bluesky
  • Stephon Castle layup, Spurs at Suns. 🏀

    → 9:54 PM, Apr 11
    Also on Bluesky
  • Changing Hands Bookstore in Phoenix.

    → 6:17 PM, Apr 11
    Also on Bluesky
  • Old train bridge next to new light rail bridge in Tempe.

    → 10:40 AM, Apr 11
    Also on Bluesky
  • It wasn’t the Amtrak route I had planned for today, but guess this airport train will have to do. Hi Phoenix. 👋

    A train is stopped at Terminal 4 Station with a view of airport runways and airplanes in the background.
    → 6:36 PM, Apr 10
  • The new park around the old Mueller tower. Walked by here today and hadn’t seen it since the area was under construction.

    A uniquely curved airport traffic control building stands amidst a landscaped area with trees and pathways under a clear blue sky.
    → 1:23 PM, Apr 10
  • Found leaked technical diagrams of a new roller coaster at Disneyland. No, wait… That’s just the last 5 days of Apple stock. 🤪

    A stock price chart displays fluctuations from April 6th to April 10th with a marked decline and subsequent rise, closing at 183.89.
    → 10:31 AM, Apr 10
    Also on Bluesky
  • Waterloo Park. 🌳

    A large oak tree with green leaves provides shade over a sunlit wooden deck with railings.
    → 4:08 PM, Apr 9
    Also on Bluesky
  • 19 miles out from Lampasas.

    → 8:37 PM, Apr 5
    Also on Bluesky
  • Rolled out some Micro.blog improvements to uploads on the web today. For example, if AI is enabled there are auto-generated accessibility descriptions for photos, and now you can edit the description without first needing to use it in a post. Plus some more UI tweaks for uploads.

    Screenshot showing edit alt text field.
    → 2:02 PM, Apr 5
    Also on Bluesky
  • All the broken pecan shells are in one spot under the tree. Must be some happy squirrels living here.

    A tree trunk surrounded by dark soil covered with scattered pecan shells and some leaves.
    → 12:30 PM, Apr 5
    Also on Bluesky
  • Vibe coding on the 20th floor

    This week’s ATP has a members-only special segment about vibe coding. One snippet from John Siracusa, encapsulating much of the conversation:

    As programming tools have gotten better, the demand for programmers has gone up, not down.

    When Steve Jobs returned to Apple, he gave a demo of NeXTSTEP at Macworld. I was lucky enough to be in the audience. Steve said that moving from traditional programming frameworks where you had to start with almost nothing, to Objective-C and what would become the Cocoa frameworks, was like starting a building on the 20th floor, with all the foundational pieces built for you.

    Presentation slide with 3 columns, one for Windows, one for Mac, and one for OPENSTEP.

    A small team of only a couple developers could now build complete apps that before would’ve required a much larger team. Solo developers were of course already building apps on their own, but Steve was right that Cocoa would greatly increase productivity, opening up the Mac to more developers.

    Vibe coding is different than a new system framework. With a framework, you mostly trust that it is well-tested and understood by the developers who wrote it. With AI slop, no human has tested the code before you literally just saw it unfold on screen. You have to understand it and tweak it before shipping a real product. Vibe coding instead is purposefully giving in to the machine and just letting code fly without any review.

    Still, there’s a similarity to previous programming advances just because of the productivity gains. With AI, the step forward is more extreme than it has ever been.

    Vibe coding will mostly prop up small projects and experiments, less likely to replace actual full-time development work. But if you’re programming without any assistance from AI, you are at a disadvantage, in the same way that programming in pure C with the Mac toolbox was much slower and error-prone for building a modern Mac app than using Objective-C when the Cocoa frameworks matured.

    If after considering that productivity difference, a developer on principle wants to avoid AI, I respect that. Everyone should choose the programming language and frameworks that best suit their work. But there’s no sense in pretending that AI won’t change development, or that we won’t need to adapt along with it.

    → 4:10 PM, Apr 4
    Also on Bluesky
  • Micro.blog 3.4.5 for Mac

    Today’s update to the Mac app addresses a few things related to managing uploads. It’s now easier to upload a new photo, or start a new post from an already-uploaded photo.

    These screenshots highlight a couple of the new items:

    Two screenshots of Mac main window, showing Upload button a New Post menu item.

    There are also some bug fixes and little improvements that make using the app nicer.

    → 11:28 AM, Apr 3
    Also on Bluesky
  • Spurs / Warriors tonight. Not a close game but still fun. It has been too long since I was last in San Antonio. 🏀

    → 9:42 PM, Mar 30
    Also on Bluesky
  • The pond at The Village, walking back to the mechanic to pick up my car after getting coffee.

    A peaceful garden features a small pond with a stone border, surrounded by lush greenery and trees, along with a bench and a lamppost nearby.
    → 2:56 PM, Mar 28
    Also on Bluesky
  • Worked on some book-related improvements in Micro.blog this morning. We try to integrate with all sorts of things — Google Books, Open Library, Libby — but a lot of it is not exactly officially sanctioned. Added more Goodreads scraping today. In for a penny, in for a pound!

    Screenshot of Micro.blog web form with Goodreads ID field.
    → 8:53 AM, Mar 27
    Also on Bluesky
  • Micro.blog expanding photo servers in Europe

    Today we’re rolling out a big improvement to our new EU-based servers. Along with the option to host your web pages in Europe, Micro.blog will now also copy your photos and other uploads. It will copy your data the first time the feature is enabled, and then going forward will maintain a copy on both sides of the Atlantic.

    This means all your blog content can be served from Europe. Your blog and all its photos will remain up even if our servers in the United States were ever to go down.

    If you’ve already enabled the European servers checkbox, your photos have been copied. There’s nothing else to do.

    If you’re enabling the European checkbox for the first time, you’ll see this status of the progress:

    Screenshot of Micro.blog on the web showing progress bar with US flag emoji on left and EU flag emoji on right.

    You can continue to use Micro.blog and it will finish copying in the background.

    You might also see URLs with a new hostname: eu.uploads.micro.blog. This is a CDN that pulls photos from our European servers but still caches them in both North America and Europe, so there’s no new performance hit for visitors outside of Europe. All of this should be seamless.

    These are the biggest changes we’ve made to Micro.blog’s infrastructure in years. The result should be a more resilient and scalable platform. Happy blogging!

    → 7:33 PM, Mar 25
    Also on Bluesky
  • Got my copy of Dragonsteel Prime in the mail from the last crowdfunding. 📚

    A red book titled Dragonsteel Prime with intricate gold designs on the cover, and A Sanderson Curiosity at the top.
    → 8:06 PM, Mar 24
    Also on Bluesky
  • Heading home. Texas / Louisiana border visitors center. 🤠

    → 3:39 PM, Mar 23
    Also on Bluesky
  • Durafan.

    A large outdoor fan is mounted with warm string lights overhead against a blue sky backdrop.
    → 9:43 AM, Mar 23
    Also on Bluesky
  • Carolina Jessamine… I think.

    Vines on a fence with flowers that are yellow with pink and orange around the edges, and a little of the blue sky in the background.
    → 1:59 PM, Mar 21
  • Had a good run for a few months on uptime until today. I’ve upgraded one of our servers to prevent this particular meltdown from happening again.

    Screenshot of uptime showing green dots for January and February.
    → 8:44 AM, Mar 20
    Also on Bluesky
  • Micro.blog adding European servers

    Starting today there is a new option for customers who want more flexibility for where their blog is hosted. When Micro.blog publishes your blog, it runs your blog posts through Hugo, creating static HTML files that are hosted outside of the main Micro.blog platform. Those files can now be served from a data center in Europe.

    Here’s a screenshot of the new checkbox on the Design page:

    Screenshot of checkbox and custom domain name interface.

    After you enable this setting, there’s one more step: updating the DNS for your custom domain name to use the new servers in Europe. There’s a help page with an overview of DNS settings. If you registered your domain name through Micro.blog, we’ll automatically update the DNS records for you when the checkbox is toggled.

    In Europe we’re using Hetzner’s data center in Nuremberg, Germany.

    Note that photos continue to be hosted in the United States and made available around the world via our CDN. That way your blog visitors still get photos delivered as quickly as possible whether they are in North America or Europe. Other data on the platform such as draft posts, encrypted notes, and the Micro.blog timeline also remain in the United States.

    There is a lot of uncertainty in the United States right now, but Micro.blog is built for the world wide web. Our principles have always included a focus on web identity and permanence, with domain names at the heart of what we do. The distributed nature of the web makes improvements like today’s change possible.

    I’d love to hear what you think. We’ll keep exploring how to make the platform as resilient as possible.

    → 10:28 PM, Mar 19
  • Coffee (and booze). Houndstooth. ☕️

    A sidewalk sign displays the text COFFEE and then AND BOOZE smaller, with an illustration of a coffee cup.
    → 3:57 PM, Mar 17
    Also on Bluesky
  • Micro.blog domain aliases

    I added a new feature to Micro.blog Premium today called domain name aliases. Often when people host their blog on Micro.blog, they later change their mind about the primary domain name for their blog. Now you can more easily redirect multiple domain names to the same blog so no previous links break.

    For example, maybe you start with the subdomain micro.yourdomain.com but later want it to just be the root domain yourdomain.com. Micro.blog handles HTTPS and redirecting any path in the URL between domain names.

    Here’s a screenshot with a couple test examples for my blog. You can find this feature under Account → New Domain Alias:

    Screenshot of adding a new domain alias and a list of existing redirects.

    This option is available for Micro.blog Premium subscribers. Micro.blog Premium also includes support for up to 5 separate hosted blogs and any number of single-page websites.

    → 9:07 AM, Mar 17
    Also on Bluesky
  • Totoro. 🌳

    Poster of large tree under a night sky with a full moon, a cozy cottage nearby, and small creatures sitting on a branch, inspired by the movie My Neighbor Totoro.
    → 11:17 AM, Mar 16
    Also on Bluesky
  • Fog from liquid nitrogen ice cream.

    → 9:11 PM, Mar 15
    Also on Bluesky
  • Rêve Coffee in Lafayette, LA. ☕️

    → 1:36 PM, Mar 12
    Also on Bluesky
  • New feature for Micro.blog’s Bluesky cross-posting: preview cards. This is still off by default, but if you flip it on in Sources, Micro.blog will try to figure out the title, description, and og:image for the first link in your post and attach it. Screenshot:

    Screenshot of new checkbox to enable Bluesky preview cards.
    → 9:57 AM, Mar 12
    Also on Bluesky
  • POSSE.

    → 11:19 AM, Mar 10
    Also on Bluesky
  • Now that bookmark tags are available to all plans on Micro.blog, it’s more consistent to manage bookmarks. I’ve moved my read-later type activities to Micro.blog. Just nice to have it all in one place to bookmark posts and blog about them. Screenshot example of a bookmark with summary and tags:

    Screenshot of one of my bookmarks of a MacStories blog post.
    → 9:08 AM, Mar 10
    Also on Bluesky
  • Good morning, Austin. Back downtown after a great day yesterday at Fediverse House.

    → 8:01 AM, Mar 10
    Also on Bluesky
  • Bastrop Abstract Company. Established 1883. Closed.

    → 1:55 PM, Mar 8
    Also on Bluesky
  • Ready to plant, along Mopac. 🌱

    → 5:04 PM, Mar 6
    Also on Bluesky
  • Earth is our only home.

    → 12:28 PM, Mar 1
    Also on Bluesky
  • Working on some ActivityPub tweaks today, finally added some code to handle Question objects / polls. It was confusing to not have the context for these posts from Mastodon before. They look like this in the Micro.blog timeline now:

    Personally I don’t use polls. I’ll revisit doing more later.

    → 12:22 PM, Feb 25
  • Working on Open Graph

    I’m improving something I started last year, to automatically save thumbnail versions of web pages that could be used in various places. As an example, starting this week Micro.blog now makes banners suitable for Open Graph meta tags, combining the profile photo and a rendered thumbnail of the page.

    I can’t decide yet if this is actually good, but I think it’s on the right track to something. I’ve never been happy with the way most platforms use Open Graph. It adds a lot of clutter. At the same time, Micro.blog’s previous default of doing nothing wasn’t great either, and some platforms like Threads would pull in the profile photo only, attempting to crop a square photo into a wider banner.

    Here’s an example of one of the new images:

    Coincidentally the text of my post fit perfectly, otherwise it will be centered or cropped off the bottom.

    Another example with a post that has a photo:

    I’d love to hear feedback before we go further with this. The new option is available in the Hugo front matter as a URL in .Params.opengraph.image. If a post has a photo, plug-ins can still prefer using the photo URL directly. If you want the web page thumbnail only, that’s in .Params.thumbnail.

    I’m imagining it used like this:

    {{ if .Params.photos }}  
      {{ with index .Params.photos 0 }}
        <meta property="og:image" content="{{ . }}">
      {{ end }} 
    {{ else }}
      {{ with .Params.opengraph }}  
        <meta property="og:title" content="{{ .title }}">
        <meta property="og:image" content="{{ .image }}">
      {{ end }} 
    {{ end }}
    

    This hasn’t been added to the built-in themes yet. It can be added by editing your header template, or wait until the dust settles and it’s available in plug-ins.

    Testing this has been a little hit or miss because platforms like Threads and Bluesky aggressively cache the metadata for a page. These thumbnails are created right after a blog post is published, so they might not be available the first time a platform checks for them, especially if Micro.blog cross-posts your post to the platform more quickly than the thumbnail is ready. More tweaks likely needed.

    → 10:16 AM, Feb 25
    Also on Bluesky
  • More post summary updates

    Today we updated another part of Micro.blog to support blog post summaries. When automatically cross-posting to Bluesky, Mastodon, Threads, and LinkedIn, the summary will now be included for long-form posts with a title. It will look something like this after being copied to the other platform:

    Your title here: <link to blog post>
    
    The summary of the post here.
    

    For example, here’s this very post on Bluesky:

    Screenshot of post with summary on Bluesky.

    You can write these summaries yourself or have AI generate them for you from the text on the new post or draft editing screens. They are also included in your published JSON Feed. And for external feeds using JSON Feed, Micro.blog will also look for the summary and use it in the timeline and cross-posting.

    I’ve also added support in the APIs — Micropub as summary and XML-RPC as mt_excerpt — so that third-party apps can get and set summaries. This is being tested now for an upcoming MarsEdit release.

    → 3:07 PM, Feb 18
    Also on Bluesky
  • New fediverse settings in Micro.blog

    We added ActivityPub support to Micro.blog in 2018. In the years since, we’ve improved it a lot. And we’ve seen how people actually use it.

    Mastodon and other popular fediverse software have had a huge impact on the open web. There is a lot to like. By focusing on tens of thousands of smaller communities, the whole system is insulated from a single rogue CEO, and it’s more manageable for admins to stay on top of community issues. This is a really good step forward compared to massive silos.

    Many of the problems with social networks remain in Mastodon, though. Chasing follower counts and likes. Scanning headlines instead of reading. Piling on with quick replies. Algorithms to surface popular stories that are being boosted. The infrastructure changed, but human behavior did not, and the platform features are still nearly identical to Twitter.

    There is a new problem too that didn’t exist before. Smaller communities can become insular bubbles. Admins and users with many followers on a server have power to shape opinion and direct frustration at other users. The local timeline provides both connection to fellow members of the community and isolation from broader viewpoints outside the community.

    I’m not suggesting that everyone is unhappy with Mastodon, Threads, or even Bluesky. Some people don’t see the same problems that I see, and that’s fine. But I’m not happy. And increasingly, I want to unplug from these networks and focus on my blog and the Micro.blog community, even though I believe in APIs and connecting many different platforms on the open web.

    I occasionally hear the same thing from other users. They want to participate in the larger social web, but on their own terms, with their blog as the most important part of their online presence.

    Today we’re launching new settings in Micro.blog to take control of how your account federates with everyone else. For the first time, this allows you to dial back your participation in the fediverse without actually deleting your fediverse profile. Your account still exists on the fediverse. It’s just a little quieter.

    Here is a screenshot for what’s available under Account → View Fediverse Details:

    Screenshot for a set of options for sending posts and replies to the fediverse, including sending all posts, sending only replies when mentioning other users, and muting all replies.

    By selecting the second option, users on Mastodon won’t see your blog posts in their timeline. You can still get replies and reply to other Mastodon users, but you will likely get drastically fewer replies, because there won’t be much for Mastodon users to reply to.

    As you can see in the screenshot, there is also a new option for muting. For a while you’ve been able to mute people or servers. For example, some users wanted to mute Threads. Now you can mute the entire fediverse. With this selected, replies to you from the fediverse will still arrive at Micro.blog, but you won’t see them in your timeline.

    This is for people who want a quieter space on the web. A space focused more on writing and less on reacting to other people.

    Of course all of this is optional. If you like the way it already works, no need to change anything. I’m imagining these settings are something that people will enable or disable from time to time, not keep permanently set.

    The social web is growing quickly and Micro.blog will adapt along with it. We’ll always stay true to our founding ideals and IndieWeb principles, trying to find the balance between blogging and the social web that’s right for our platform.

    → 3:14 PM, Feb 12
    Also on Bluesky
  • Hope folks are having a good weekend. I rolled out a few changes this morning, including this “New Post…” menu option on the Uploads page. Surprised we never had this before.

    → 11:06 AM, Feb 9
    Also on Bluesky
  • Thoughts on Wind and Truth

    If you haven’t read Wind and Truth, book 5 of the Stormlight Archive, please skip this post. Spoilers ahead. Knowing someone else’s opinion about a book before you read it risks ruining your own interpretation.

    I finished Wind and Truth last week and generally loved most of it despite a few unsatisfying bits. I don’t give books star ratings. Usually I post a short note about the book as you can see on this category page. I’m just writing this to process my thoughts, so it probably sounds a little more critical than it really is. Expectations were extremely high for this book, possibly so high that they could not be met.

    I was hoping for more of an ending in the ending, but it clearly sets up the second arc of the series. I’m not sure I can fairly judge book 5 until book 6 is ready, and that is years away. The more I think about the ending, though, the more I like it.

    The strongest parts of the book for me were Szeth’s flashbacks and Adolin’s storyline. These were great. I also liked how Dalinar in the Spiritual Realm was used to fill in the history of Roshar for the reader. Half the book was effectively a clever flashback that didn’t feel like a flashback. The structure of the book and plot were solid. Brandon Sanderson famously outlines the heck out of his stories before writing, and I can’t fault anything in the planning for this book.

    The weaker parts were Kaladin’s and Jasnah’s viewpoints. Kaladin is such a well-developed character in the first books of the series. Way of Kings is one of my all-time favorite books. By book 5, there wasn’t much more to tell with Kaladin. His scenes in Wind and Truth often felt redundant and forced.

    For Jasnah, hear me out… I think the book would’ve been better if all of her chapters were cut. There is so much going on in this book, spread across several different parts of the world, and I don’t think Jasnah’s role was needed. I wasn’t convinced by her getting outmaneuvered by Odium. 1300 pages is a lot. The book might’ve been stronger if it was just a little shorter, even if that meant sacrificing the viewpoint of a great character.

    I liked Shallan’s story. Her character continues to grow. The ending sets her up for something, perhaps the most unresolved of any character. I was originally under the impression that book 6 would take place a generation or two later, but apparently it’s going to be more like a decade jump. I wonder if there could be a flashback or a novella to fill the gap from Shallan’s perspective.

    Maybe another editing pass would’ve fixed the little things that nagged at me. Just more time to bake. I enjoyed reading it, though, and maybe on a re-read of the complete series I won’t notice the little things that pulled me out of the story the first time.

    Can’t wait for Mistborn era 3. Brandon is drafting the entire trilogy before publishing the first book, which seems like a smart move, and hopefully will set us up for yearly releases when it’s all ready. It’s remarkable what he’s accomplished with the Cosmere.

    → 10:12 AM, Feb 8
    Also on Bluesky
  • So many nails and staples.

    Telephone pole with dozens of old nails in it and street in background.
    → 3:59 PM, Feb 6
  • Old trains.

    → 1:52 PM, Feb 6
  • Sumo default and donate buttons

    Today we’re rolling out two plug-in changes to Micro.blog. The first is that for new users, the Sumo theme by Matt Langford is now the default theme. This is a great theme that I think will serve new users better than our previous default theme Marfa. Sumo is better maintained and easier to customize.

    Inspired by the good work that plug-in developers are doing, we’re also starting to sprinkle in donation buttons on your plug-ins list. The buttons can say either donate, tip, or buy me a coffee. Here’s an example:

    Screenshot of Micro.blog installed plug-in with donation button.

    I’ve been manually wiring these up, but later we’ll automate this so that Micro.blog can discover the donation link via a plug-in’s config or readme. If you’ve created a plug-in that accepts donations, let me know and I’ll update the listing.

    → 9:30 AM, Feb 5
  • A small, pointless Apple Intelligence chat completion failure as I’m chatting with Verizon support… It thinks I’m talking to myself? I know it’s a cheap shot to gripe about AI, but this is really basic stuff.

    Screenshot of messages window on Mac.
    → 2:42 PM, Feb 3
    Also on Bluesky
  • Last little bit of the sunset.

    → 6:15 PM, Jan 31
    Also on Bluesky
  • Playing with private note tags in the latest update to Lillihub. It is based on the Micro.blog API but adds its own features and user experience. This is what is possible when there’s an API that developers can just run with.

    Screenshot of editing a note in Lillihub.
    → 11:36 AM, Jan 31
    Also on Bluesky
  • Looking out over the trees and mist from the parking garage at the title company. Just signed our life away for the next 30 years.

    → 12:15 PM, Jan 29
    Also on Bluesky
  • Batch, a new favorite. I can’t believe I’ve been living within walking distance to this place for over a year and never tried it before this week. A misty, gray morning.

    A neon sign advertising coffee, cold beer, and fresh kolaches is set against a misty, monochrome street scene.
    → 9:07 AM, Jan 29
    Also on Bluesky
  • I finally sorted through an old box of my dad’s stuff that I’ve had for over 25 years. I could never bring myself to open it after he died. I knew there would be some letters in it that were heartbreaking, but if I had also known there would be gems like this I would’ve looked sooner! Made me smile.

    → 1:42 PM, Jan 26
    Also on Bluesky
  • After a few days of the freeze, actually turned into a nice late afternoon for a walk. Mueller Lake Park.

    → 5:33 PM, Jan 24
    Also on Bluesky
  • Another shot of downtown and the sky with fewer clouds, from across the river.

    Austin city skyline with modern skyscrapers is reflected in a calm river, set against a blue sky with scattered clouds and framed by tree branches.
    → 4:54 PM, Jan 17
    Also on Bluesky
  • Lady Bird Lake and downtown Austin from the pedestrian bridge.

    → 2:32 PM, Jan 17
    Also on Bluesky
  • ChatGPT scheduled tasks are interesting. I’ve tried a few things — sending me a news summary or programming tip at a certain time — and it works as advertised. Not sure I have a good use case right now, so for fun I’m having it send me a haiku.

    Screenshot of asking ChatGPT to write a haiku based on Miyazaki movies, every morning at 8am.
    → 8:40 PM, Jan 14
    Also on Bluesky
  • Very cold and slightly rainy afternoon. For some reason I picked this weather to go for a short walk along the river.

    → 1:55 PM, Jan 9
    Also on Bluesky
  • We’re starting up a new beta for Strata, our companion mobile app for private and shared notes in Micro.blog. You can join the TestFlight beta here. Bookmarks, tags, and highlights are moving into Strata and (eventually) out of the main Micro.blog app.

    → 9:03 AM, Jan 9
    Also on Bluesky
  • I was here last year… This time getting a sticker, at Johnson City Coffee Co. A convenient place on the way to or from west Texas. ☕️

    → 12:22 PM, Jan 6
    Also on Bluesky
  • Old Tunnel State Park. Now taken over by bats, this was an old train tunnel to connect San Antonio and Fredericksburg in 1913.

    A tunnel entrance is set within a rocky hillside, surrounded by vegetation.
    → 11:28 AM, Jan 6
    Also on Bluesky
  • Glad to have a fire on a cold night at South Llano River State Park.

    → 7:26 PM, Jan 5
    Also on Bluesky
  • What would Steve Jobs do?

    An edited photo from the time that Steve Jobs gave the middle finger to an IBM logo on a trip to New York City, but the IBM logo is replaced with TRUMP in a similar font.
    → 12:05 PM, Jan 4
    Also on Bluesky
  • My last blog post title partially inspired by walking by this sign today.

    A vintage-looking sign for The Long Goodbye cocktail and coffee establishment stands outdoors surrounded by trees and desert plants.
    → 10:12 AM, Jan 4
    Also on Bluesky
  • BLK Vinyl.

    → 6:42 PM, Jan 2
    Also on Bluesky
  • Retired jerseys at Frost Bank Center. Last game of 2024, Spurs vs. Clippers. 🏀

    → 10:03 PM, Dec 31
    Also on Bluesky
  • Nowhere Bookshop. 📚

    → 4:54 PM, Dec 31
    Also on Bluesky
  • Hotel Emma at the Pearl. Spending the day in San Antonio.

    → 3:38 PM, Dec 31
    Also on Bluesky
  • Fleet Coffee on Manor. ☕️

    View from above white picnic tables arranged under trees with vines and an outdoor fan, orange dirt and gravel on the ground.
    → 8:56 AM, Dec 30
    Also on Bluesky
  • Found this first edition, signed copy of A Song for Arbonne at Half Price Books the other day and had to get it. Read it so long ago that it’ll be like reading it for the first time. I’m always on the lookout for old Kay books, they seem in short supply. 📚

    → 12:09 PM, Dec 29
    Also on Bluesky
  • Texas French Bread, still boarded up after the fire a couple years ago.

    A black and white photo with blue sky shows a boarded-up brick building labeled Texas French Bread in a street setting.
    → 3:07 PM, Dec 28
    Also on Bluesky
  • Rail lights from Manor. 🚂

    Railway tracks curve alongside graffiti-covered buildings and a tree, under a cloudy sky, with red lights in the background.
    → 9:10 AM, Dec 28
    Also on Bluesky
  • Christmas tree with green books at Half Price Books. 📚

    A Christmas tree is made from stacked green books and adorned with blue and silver ornaments, topped with a star.
    → 11:06 AM, Dec 27
  • We got a new game for the holidays: Everdell. Still figuring it out but it’s great so far. Looking forward to checking out the expansions too.

    A tabletop game setup featuring a forest-themed board with cards, tokens, and game pieces arranged neatly.
    → 1:13 PM, Dec 26
    Also on Bluesky
  • From last night, the Zilker tree at the Trail of Lights. 🎄

    Large Christmas tree structure on an Austin Moon Tower, adorned with strings of colorful lights, extends skyward against a dark background.
    → 9:30 AM, Dec 23
    Also on Bluesky
  • Rolling out a few improvements today, including some tweaks to categories. One small change that I like is showing recent blog posts for a category underneath it when editing. Just shows the truncated preview of each post.

    Screenshot of Micro.blog when editing a category.
    → 11:21 AM, Dec 22
    Also on Bluesky
  • Part of a large abandoned lot on 51st that rumor has it will eventually be a new Whole Foods.

    Buildings with plywood covering the windows and some trees in the background with a blue sky.
    → 9:31 AM, Dec 22
  • Micro.blog folks, I’m planning to move the Categories link out of the web sidebar and put it in the header that’s used when managing posts. Cleans up the sidebar a little and I don’t think it’s clicked on that often. If this messes up anyone’s workflow, let me know. Screenshot preview:

    Screenshot of Micro.blog showing categories link with tags icon next to blog settings link.
    → 4:59 PM, Dec 21
    Also on Bluesky
  • This “154 versions” link is hilarious to me. I wrote my last post in Micro.blog for Mac and whenever you hit ⌘S it saves another version to the server just in case you need to revert. Other obsessive ⌘S people may be able to relate.

    Screenshot of Mac app showing 154 versions link and edit buttons.
    → 11:52 AM, Dec 21
    Also on Bluesky
  • The rebuild of I-35 continues. This rubble is where Star Seeds Cafe used to be.

    → 7:49 PM, Dec 20
    Also on Bluesky
  • The weather’s changing. Rain and wind, leaves falling down at Cherrywood. ☕️

    → 9:50 AM, Dec 18
    Also on Bluesky
  • Cosmic sticker. ☕️

    → 9:28 AM, Dec 17
    Also on Bluesky
  • I usually post one photo at a time, so my last post was mostly an excuse to test the new layout for photo collections in the Micro.blog mobile app. Here’s a screenshot. Photos scroll horizontally, tap to go full-screen. This currently only works for collections, not any set of photos… yet.

    Screen of Micro.blog timeline on iPhone.
    → 12:54 PM, Dec 16
    Also on Bluesky
  • Scoot Inn. Nope.

    A rustic wooden door with a NOPE neon sign (OPEN is dimmed out) leads into a building shaded by a slatted canopy.
    → 11:07 AM, Dec 15
    Also on Bluesky
  • Downtown buildings disappearing into the mist.

    → 5:56 PM, Dec 13
    Also on Bluesky
  • Cosmic’s building was originally the Texaco Depot, built around 1911. It’s the only surviving building from the old rail yard in Austin. 🚂

    Building with windows and metal front with some graffiti and a no parking sign, blue sky in the background.
    → 11:24 AM, Dec 12
    Also on Bluesky
  • Cosmic on 4th is my new favorite place for winter mornings. Fire pits outside and heaters on the deck. ☕️

    → 10:40 AM, Dec 9
    Also on Bluesky
  • Sneak peek of something new I’ve been working on. Coming along well, should be able to ship this week.

    Screenshot of Micro.blog shows a context menu with options to Copy HTML, Copy Markdown, Add to collection..., and Europe.
    → 8:45 AM, Dec 9
    Also on Bluesky
  • I’ve updated our Mastodon and Bluesky cross-posting to have new options to control whether to backfeed replies to Micro.blog. It also now better respects the visibility of posts to avoid leaking semi-private posts outside of Mastodon. Screenshot of the setting:

    Screenshot of Micro.blog Sources page.
    → 3:34 PM, Dec 7
    Also on Bluesky
  • Little known fact: Micro.blog has the best photo search of any blogging platform. Great to find one of your old photos to reference, or to remember if you blogged about something. If there’s anything even close to this good, let me know.

    Screenshot of Micro.blog's web search using AI-generated keywords.
    → 11:43 AM, Dec 4
    Also on Bluesky
  • From a few days ago, this little “eggplant” sign makes me smile whenever I see it.

    A green mural of a garden scene with trees, plants labeled eggplant, and a beehive.
    → 11:27 AM, Dec 4
    Also on Bluesky
  • Book and film covers! I’ve updated Micro.blog to show little thumbnails of book covers when you blog about a book using Micro.blog or our companion app Epilogue. I wanted something visually helpful but less in your face than link preview banners. There’s also special support for Letterboxd links.

    Screenshot of books in the timeline.
    → 10:23 AM, Dec 2
    Also on Bluesky
  • Mastodon replies in Micro.blog

    For a while (years!) we’ve had both ActivityPub support in Micro.blog and cross-posting to Mastodon. ActivityPub is best if you want people on the fediverse to follow your Micro.blog account directly. No need to maintain a Mastodon account. Cross-posting is good if you want to keep a separate Mastodon account, but still post first to your own blog.

    This week we’ve rolled out two significant improvements to Mastodon cross-posting. The first is support for bringing Mastodon replies back into Micro.blog. When your blog post is cross-posted to Mastodon, we’ll also routinely check for replies to those posts via the Mastodon API, even if you aren’t using ActivityPub. Those replies will be integrated into the Micro.blog timeline and available in the Mentions section.

    This makes Micro.blog an even better universal timeline with access to multiple services. Check for replies in one place, on Micro.blog, and then only occasionally hop over to other services. You can reply to posts directly in Micro.blog and those replies will also be copied back to Mastodon.

    There’s also a new set of filter buttons when there are replies. If the Mentions section gets cluttered, click the buttons to only show replies from either Micro.blog, Mastodon, or Bluesky.

    Screenshot with icons for Micro.blog, Mastodon, and Bluesky.

    All of this works with Bluesky. When you get a reply from Bluesky, it will show up in Micro.blog. If you reply to the Bluesky user, your reply will be copied back to Bluesky too.

    These changes continue our goal of having the best integration with as many other platforms on the open web as possible. Happy blogging!

    → 4:35 PM, Dec 1
    Also on Bluesky
  • Mum Foods. The best BBQ I’ve had in a long while.

    A black and white photograph features an industrial setting with large metal smokers inside a structure with a grid-like ceiling.
    → 2:57 PM, Dec 1
    Also on Bluesky
  • I hadn’t noticed this before. New styling for blockquotes on Mastodon. This post started on my blog: Markdown → HTML → ActivityPub → Mastodon. This version of Mastodon is probably deployed widely enough that I can drop the redundant quotes that Micro.blog adds.

    Screenshot of my post with blockquote on Mastodon.
    → 10:24 AM, Nov 27
    Also on Bluesky
  • Cozumel. 🏖️

    A clear, calm ocean stretches to the horizon under a bright blue sky.
    → 10:15 AM, Nov 23
    Also on Bluesky
  • Bird on a pole with lights on it and blue sky.
    → 8:53 PM, Nov 20
    Also on Bluesky
  • Randomly drove by Terrible Love and had to stop. It’s a coffee shop in an old boiler room in Hyde Park. ☕️

    → 1:36 PM, Nov 15
    Also on Bluesky
  • The I-35 upper decks will be demolished soon. This view is going to look a lot different.

    → 8:36 AM, Nov 15
    Also on Bluesky
  • More Bluesky improvements! Fixed a couple bugs and added support for alt text for manually cross-posted blog posts. It gets the text from your blog post, of course. Here’s a screenshot of the new preview.

    Screenshot of the manual cross-posting interface to Bluesky with editable post text, photo thumbnail, and accessibility text.
    → 10:29 AM, Nov 14
    Also on Bluesky
  • Long walk this morning to Civil Goat on Manor. ☕️

    A glass of iced coffee sits on a wooden table.
    → 8:40 AM, Nov 14
    Also on Bluesky
  • Lost Maples State Natural Area.

    → 10:10 AM, Nov 9
    Also on Bluesky
  • At the 38th 1/2 Street crossing. 🚂

    → 1:33 PM, Nov 7
    Also on Bluesky
  • The sun will rise

    “I know what I have to do now. I’ve got to keep breathing because tomorrow the sun will rise. Who knows what the tide could bring.” — Cast Away

    We went to bed early last night, just as the county results for Georgia and North Carolina were starting to come in and you could see a rough picture of the electorate. I slept terribly, waking up multiple times, but never checked the news until morning. Mostly I was thinking of what I would do next.

    I walked to the coffee shop. Not the closest coffee shop. Not the second-closest. A longer walk, and on the way I checked the mailbox. The new Micro.blog t-shirt had arrived. I think it turned out great.

    Black t-shirt with Micro.blog orange logo on it.

    Apparently the stock market is reacting well this morning. Fine. I plan to milk this idiotic new administration for all the financial gains and tax cuts off the backs of working people that I can. Elections have consequences, assholes. And I’ll use every penny to fight Trump, fight misinformation, fight the hellscape of mainstream social media.

    I won’t dwell more on politics except to say that Democrats have lost rural America. Too many people feel left behind. Too many people still had no idea who Trump really was. Too many people have no ideology so don’t know who to blame when life is hard. Biden has done a lot of good, but it’s the kind of progress that takes years to notice.

    I was inspired to vote for Kamala Harris, but it’s especially disheartening to now know we should have stuck with Joe Biden. Yes, he would have lost. Most candidates would have lost this year. But Joe was ready to take one for the team because that’s the kind of person he is. Then Kamala could’ve run in 2028 for the first time. Now that story is just another what might have been.

    Loss can be a huge motivator. After my father died, I got married, had kids, and bought a house. After the 2016 election, I launched Micro.blog. After my kids moved away to college, we sold the house and downsized.

    Change is part of life. Everyone will cope in their own way. Give them the space they need. For me, I’m writing this blog post, and I’m picking up in Xcode where I left off yesterday.

    There is a lot to do. Let’s get to work.

    → 9:00 AM, Nov 6
  • Another photo from Oklahoma City a few days ago, the statues commemorating the land run of 1889. I learned a surprising amount of history from reading Boom Town. Still thinking about it.

    A bronze statue of horses pulling a wagon is set against a backdrop of trees and a small canal, with tall buildings and a clear blue sky in the distance.
    → 9:09 AM, Nov 2
    Also on Bluesky
  • Common Grounds Coffeehouse in Brownwood, Texas. ☕️

    → 10:14 AM, Nov 1
    Also on Bluesky
  • Rained off and on through the night at Abilene State Park. Went for a short hike in the morning.

    → 9:32 AM, Nov 1
    Also on Bluesky
  • Oklahoma City loves this team. Thunder are really good right now. Still excited for the Spurs this season, just a little overmatched tonight. 🏀

    → 10:06 PM, Oct 30
    Also on Bluesky
  • Spurs vs. Thunder. Wemby warming up from the 3-point line. 🏀

    → 6:52 PM, Oct 30
    Also on Bluesky
  • Trees and remains of the wall of the federal building, at the Oklahoma City bombing memorial.

    → 4:57 PM, Oct 30
    Also on Bluesky
  • Turquoise Coffee Stop. Neat little coffee shop in the very small town of Chillicothe, with a sort of museum inside that reflects the memorabilia and politics of its owners.

    → 12:45 PM, Oct 29
    Also on Bluesky
  • Sunrise at Copper Breaks State Park.

    → 8:05 AM, Oct 29
    Also on Bluesky
  • Old and new energy capture in Texas.

    → 3:33 PM, Oct 28
    Also on Bluesky
  • On the road this week. Stopped for a quick lunch and coffee at 8th Street Coffee House in Wichita Falls.

    → 12:25 PM, Oct 28
    Also on Bluesky
  • I voted today. Triple-checked my ballot. Still nervous but feels good to have the end of the election in sight. This is one for the history books. 🇺🇸

    A sign with the word VOTE and stars around it is placed on a grassy area by the sidewalk.
    → 3:42 PM, Oct 26
    Also on Bluesky
  • Buzz Mill Coffee. ☕️

    → 11:40 AM, Oct 26
    Also on Bluesky
  • Train crossing at Cherrywood.

    Austin MetroRail red train approaching railroad crossing with trees in background and blue sky.
    → 12:47 PM, Oct 24
    Also on Bluesky
  • Last night from Mattie’s at Green Pastures.

    A nighttime scene features large, illuminated oak trees with a backdrop of a sky.
    → 8:11 AM, Oct 24
    Also on Bluesky
  • Eisenhower State Park near my campsite this morning. I had so much fun last night for the Honda Element meetup! Lots of cool cars, all different.

    Tree branches with a few remaining leaves frame a view of a lake under a partly cloudy sky.
    → 9:11 AM, Oct 19
    Also on Bluesky
  • Bennu Coffee might be too serious about their wi-fi passwords. ☕️

    → 3:16 PM, Oct 12
    Also on Bluesky
  • Honda Element: roof solar

    It’s time for another update in my Honda Element blog post series. After my last road trip, I decided to scrap the rooftop box. Even though the extra storage was great, I was suspicious it was dragging too much on the highway and killing my gas milage. In its place I’ve mounted a much slimmer roof basket, which I also thought would be perfect for helping add a solar panel to the roof in a clean, non-destructive way.

    So far I really like it. Here are a few photos:

    I bolted the panel to the roof basket rods, and it seems mostly secure, but it’s not perfect. Of the four mount points, I could only get three actually aligned in a workable way. I’m hoping to adjust how it’s attached and add a few extra zip ties as insurance.

    Not really shown, I’m winding the cable down into the back of the car, where I can charge one of my portable batteries. This is sort of a luxury I don’t need, to be honest, but it’s fun and you can never have too much electricity while traveling. Also still need to get something to stick the cable to the roof better.

    The basket is the Thule Canyon XT Cargo Basket. The panel is the Jackery SolarSaga 100 Prime. It’s purposefully off-center because I still need to reattach my weBoost antenna.

    → 2:35 PM, Oct 12
    Also on Bluesky
  • Now that we’ve got Threads cross-posting for everyone, it was time to clean up a few related things. Today I added some better styling for showing categories and cross-post services. Plus, you can finally edit the cross-posting for a draft!

    Screenshot of Micro.blog with cross-posting pane shown, with Bluesky, Nostr, and Threads enabled.
    → 9:22 AM, Oct 12
    Also on Bluesky
  • Trying a new coffee place. Cafe at the Loren with a nice view across Riverside. Where I’m sitting used to be a Taco Cabana. ☕️

    A laptop is on a table next to an iced coffee and a paper bag with probably breakfast inside, and a view of a tree and chairs outside.
    → 10:21 AM, Oct 11
    Also on Bluesky
  • Old steps to nowhere in east Austin. Someone’s house used to be here.

    Old concrete steps surrounded by overgrown grass and trees on an empty lot.
    → 2:22 PM, Oct 8
  • As usual I’m working on a few different things in parallel. Server bug fixes, mobile app updates, and something new… Sneak peek in this screenshot. Can’t share more for now, it’s too early! But I love the potential.

    Micro.blog UI showing menu with New Page, New Smart Page, and New Redirect, with pages like About, Archive, and others listed.
    → 2:07 PM, Oct 8
  • Here’s what the new prompt for email newsletter subscriptions looks like for your blog. The extra step lets us generate some random values hidden from real users, inspired by this post from Jeremy Keith, to make it a tiny bit harder for bots. Could do more later now that this is in place.

    Screenshot of a subscription form with an email address, a subscribe button, and a link to manton.org is displayed.
    → 8:18 AM, Oct 3
    Also on Bluesky
  • I think the new “finished” pane turned out well. This has been a much-needed improvement to Micro.blog. Because we fire off publishing and Hugo-ing in the background, it was irritating to keep an eye on the status and find the new blog post link.

    → 3:57 PM, Sep 29
    Also on Bluesky
  • Austin forever. New mural on 51st.

    → 8:41 AM, Sep 28
    Also on Bluesky
  • Cherrywood Coffeehouse. ☕️

    → 10:53 AM, Sep 27
    Also on Bluesky
  • Just uploaded a new TestFlight beta with support for iOS 18 dark and tinted icons. Looks way better now for folks who’ve customized their home screen icons.

    Screenshot of Safari, Photos, and Micro.blog on iOS 18.
    → 10:36 AM, Sep 25
    Also on Bluesky
  • Molly White is doing something on her blog that I don’t think I’ve seen before. When linking some people’s names, she will include tiny links to Wikipedia or social web profiles. Here’s a screenshot with the links highlighted, in this case Wikipedia, Mastodon, and Bluesky:

    → 9:33 AM, Sep 24
    Also on Bluesky
  • Frilly’s Seafood Bayou Kitchen, in Denton.

    A brick wall displays the words Fresh and Crawfish with a light fixture on the side.
    → 8:57 PM, Sep 21
    Also on Bluesky
  • Wayward Coffee. ☕️

    → 8:07 PM, Sep 20
    Also on Bluesky
  • Earlier this year I took a photo of the demolition of the Frank Erwin Center. Today I took another photo. It’s just a huge field of dirt and grass, no sign that anything was ever here.

    An empty field with patches of grass in front of a group of modern buildings in the distance and cranes under a partly cloudy sky.
    → 7:05 PM, Sep 19
    Also on Bluesky
  • Pre-ordered Directing at Disney a few months ago and promptly forgot about it until it arrived this week. Looks good just flipping through the pages. 📚

    A book features a black-and-white cover photo of two men, one of them Walt Disney, reviewing a printout of storyboards.
    → 11:27 AM, Sep 18
    Also on Bluesky
  • With a new iPhone coming this week, seems a good time to post my latest home screen. Same layout as before, but now using iOS 18 instead of blank spacer icons. In the dock: Hey, Epilogue, Strata, and Micro.blog.

    → 7:18 AM, Sep 17
    Also on Bluesky
  • Looking up, at Beyond Van Gogh. In the old Austin American-Statesman building.

    A large room is illuminated with dynamic, starry blue projections reminiscent of Van Gogh's Starry Night, with pipes visible on the ceiling.
    → 1:16 PM, Sep 7
  • Honda Element: fans

    In my blog post series for upgrades to my Honda Element, this post is a little different. It’s not an actual change to the car like the posts about CarPlay, the WeBoost, or my bed platform.

    It is usually too hot to camp in Texas during the summer. To help beat the heat, I’m currently using a few portable fans and a water-cooled fan, the Evapolar evaCHILL. It doesn’t blow cold air, but it does blow cool-ish air. Every little bit helps. It also draws very little energy, about 10W from my Jackery.

    Inside my car at night, illuminated by green lights, with several fans and a battery lined up.

    I also swear by these simple fans by Dorobeen. They charge via USB-C and double as batteries that can charge a phone.

    I’m still considering a “real” air conditioning unit like the EcoFlow Wave or Zero Breeze, but they are a lot bigger. I don’t think it’s currently worth the trouble.

    → 7:52 AM, Sep 6
  • Cloudy morning at Brazos Bend State Park, from the observation tower. Unlike any other state park I’ve been to. Didn’t see any alligators.

    A vast, lush green wetland stretches under a cloudy sky, creating a serene and expansive landscape.
    → 7:16 AM, Sep 5
    Also on Bluesky
  • Sometimes you just need a little color. Stairwell at Central Market.

    Orange wall with lights overhead and white walls on left and right.
    → 10:16 AM, Sep 2
    Also on Bluesky
  • Ollie inspecting a new package, the SolarSaga 100 Prime. This is going to go on my car.

    → 12:56 PM, Aug 31
    Also on Bluesky
  • Fountain at Cosmic on 4th. I should go here more often. ☕️

    A narrow rectangular pond features lily pads, white water lilies, and flowing water from a spout, surrounded by vines.
    → 6:17 PM, Aug 28
    Also on Bluesky
  • Years ago, mostly by accident, I started using green for block quotes in Markdown. Screenshot below. It’s weird because I never use green in actual published blog themes or Micro.blog on the web. I did a quick survey of other Markdown apps for inspiration and can’t really find a better style.

    → 1:15 PM, Aug 28
    Also on Bluesky
  • Epilogue 1.8.2

    We’ve got a new minor update to Epilogue for iOS ready. This release focuses on the context menu in the book details screen. Many people didn’t know the menu was there. Now there’s an ellipsis button to make it more discoverable, plus a couple other additions to the menu.

    → 7:32 PM, Aug 27
    Also on Bluesky
  • Rainy morning at Lazarus on Airport. The sun is starting to come out now and I want the rain back. ☕️

    → 8:44 AM, Aug 27
    Also on Bluesky
  • Penn family farm at Cedar Hill State Park.

    → 5:28 PM, Aug 24
    Also on Bluesky
  • Loco Cafe in Denton. ☕️

    → 10:40 AM, Aug 24
    Also on Bluesky
  • Are ChatGPT notifications actually a thing? I’ve never seen this before, so can’t tell if it’s a real or hallucinated feature.

    Screenshot of ChatGPT conversation reveals that the 2024 iPhone event date is typically in early September and offers to notify the user once the date is officially announced.
    → 12:50 PM, Aug 21
    Also on Bluesky
  • Cool walls at Spokesman Coffee. ☕️

    → 10:50 AM, Aug 18
    Also on Bluesky
  • Pretty happy with how the new editor for Micro.blog is coming along. I’m going to ship it Monday. It’ll be enabled when starting a new post, editing a post, and for replies. Not yet for CSS or theme editing. Screenshot here for a quick reply… Notice better highlighting, preview toggle, toolbar.

    Screenshot of new editor for a reply.
    → 11:26 AM, Aug 17
    Also on Bluesky
  • Random rail crossing in Denton. 🚂

    → 9:26 AM, Aug 14
    Also on Bluesky
  • Continuing to make progress with the new editor. Fixed several things, added support for @-mentions, better styling. There are still a couple quirks with the insertion cursor. If I can work through those, will ship this as soon as I can.

    Screenshot of new Markdown editor for Micro.blog.
    → 1:43 PM, Aug 11
    Also on Bluesky
  • Buescher State Park at lunchtime. Had a picnic, then started listening to USA vs. France on the drive back before we watched the second half back at home.

    A lake is bordered by lush trees under a partly cloudy sky.
    → 3:37 PM, Aug 10
    Also on Bluesky
  • Micro.blog survey results

    This week we posted a short survey for Micro.blog customers to provide feedback about the service. I was particularly interested in some of our extra features like bookmarks, bookshelves, and notes. These aren’t necessarily well-known and I’ve been thinking about how to better position them within the Micro.blog platform and companion apps.

    We’ve gotten about 250 responses so far and they are still coming in. That’s enough to see some trends. I’m including notes after each chart.

    Which operating systems do you use Micro.blog from?

    No surprise here that Mac and iOS are the majority considering my roots in the Apple developer community. I’m happy that Windows and Linux are starting to poke into the stats, though. That’s a good indication that we should continue to prioritize the web platform as the most complete, primary interface for Micro.blog.

    What plan are you subscribed to?

    I included Micro.blog Teams as an option but we don’t even have a link to subscribe to that plan anymore, so no surprise effectively no one uses it. We have actual subscription data in Stripe, but I wanted to include this question because it tilts the data more to active users.

    This price is:

    I’m happy with this. 97% think the price is just right or a great value. I wonder if some of the 3% who think it’s too expensive are from countries where their local currency doesn’t go quite as far against the US dollar, because I do hear from those folks. I wish I had thought to ask where people are located.

    Do you use any of these companion mobile apps?

    Our customers love books. Strata is still iOS-only but we have the Android version ready to release. We also have an update to Sunlit almost ready, with the new icon and some fixes.

    What are you favorite services to cross-post to?

    There were a few “none” answers here too that I edited out of the chart, and one Farcaster, which I’m keeping an eye on. These charts are from Google Forms, but I cleaned them up in Acorn to be more readable.

    Twitter X is probably never going to die. Also, don’t read too much into Bluesky being more popular than Threads. Our automatic Threads cross-posting is still in beta, so not available to everyone yet.

    What should be our most important priorities? Pick 2!

    The chart was a mess for this because there was an “other” choice with lots of suggestions for what we should work on, so I’m not including it. The top responses were performance and stability, the text editor, finding new people to follow, blog themes, and timeline position sync.

    How would you feel if the advanced bookmark features like highlights, tags, and archiving were split off into our app Strata?

    I asked this question because these features are great and I use them every day, but they tend to get lost in the blog-focused interface we have today. I always worry about clutter in the UI. I think moving them into a separate “product” could help with both marketing and user experience. If we do this, there would be a bundle to subscribe to everything, and no prices would change for existing users.

    For anyone worried about us always adding new features instead of making what we already have better, I consider Micro.blog feature complete now. Almost everything we do from here will be refining what we have. There will always be improvements, but I don’t think there will be huge new core features at the scale of photos, podcasting, bookmarks, notes, and bookshelves.

    Any other feedback about Micro.blog? Features you like or things we can improve.

    This freeform question was at the end for general feedback. Those responses were incredibly useful. I’m not going to share them publicly because they feel private-ish, but I’m reading all of them. There are some common themes such as not getting stretched too thin, making sure the service is robust, and improving the UI.

    We’ll continue to keep the survey open for another week in case there are some late responses. Thank you, everyone!

    → 8:33 AM, Aug 7
    Also on Bluesky
  • Puttshack. ⛳️

    → 8:43 PM, Aug 4
  • You can always count on Teslas to have fun vanity license plates.

    → 10:18 AM, Aug 4
  • Here’s an example screenshot in the Mac app of how I use bookmark summarization. I bookmark things I might blog about and get a nice summary of the story. Then later I might add tags or make highlights and use those as quotes in blog posts.

    Screenshot in Micro.blog for Mac with bookmarked Washington Post story, summary of article, and tags.
    → 9:31 AM, Aug 2
  • Idina Menzel at the Paramount.

    A stage inside the Paramount Theater with a curtain covered in various words in different fonts, lit with pink lighting, with an audience seated in front before the show starts.
    → 6:38 PM, Jul 30
  • Short walk to Somerville Lake right before it started to rain. So quiet this morning.

    A tree stands beside a body of water, surrounded by lush greenery under a cloudy sky.
    → 9:08 AM, Jul 27
    Also on Bluesky
  • Camping at Lake Somerville State Park. Lots of dense trees and bushes around each site, makes for nice privacy if anyone was actually here except me. Not pictured: the lake.

    Honda Element parked at a campsite, surrounded by dense, green trees.
    → 7:31 PM, Jul 26
    Also on Bluesky
  • Micro.blog 3.3 for Mac

    Today we’ve released a new version of Micro.blog for macOS. This update adds two new features: import from Glass and better support for showing auto-generated summaries of bookmarked web pages. Most of the advanced bookmark features in Micro.blog — like summaries, highlights, and tags — require Micro.blog Premium.

    Glass recently updated their photos export. The archive now includes all your photos and the date they were posted. It does not include the caption of the photo, so we can’t import that to your blog yet.

    When you download the Glass archive to your Mac and unzip it, you can select it in Micro.blog and get a preview of the photos that will be imported. Select a few photos or all of them. Micro.blog will copy the photos and also create blog posts referencing the photos, each with the correct posted date.

    Screenshot of Glass import window showing grid of thumbnails.

    Another change in this version of Micro.blog is how bookmark summaries are handled. When you bookmark a web page using Micro.blog Premium, if you have the AI setting enabled, Micro.blog will summarize the web page text so you can see at a glance what the bookmark is about. There’s a new menu item View → Bookmark Summaries to toggle this on and off.

    Screenshot of AI summaries in bookmarks list.

    Enjoy! Thanks for using Micro.blog.

    → 8:52 AM, Jul 25
    Also on Bluesky
  • Micro.blog has a couple options for creating redirects, but adding pages to your blog navigation that go somewhere else hasn’t been intuitive before now. I’ve added a new option that makes this much more discoverable.

    Screenshot creating a redirect with a blog page title.
    → 7:25 AM, Jul 22
    Also on Bluesky
  • In Dallas for a few days. Iced latte outside at Ascension, near White Rock Lake. ☕️

    A glass of iced coffee with a straw sits on a wooden table alongside a glass of water, condiments, and a folded napkin in an outdoor setting.
    → 8:52 AM, Jul 18
    Also on Bluesky
  • Downtown from old east Dallas. Some yellow in the sky before sunset.

    A cityscape view at sunset features modern skyscrapers in the background, residential buildings in the foreground, and a partly cloudy sky.
    → 7:24 PM, Jul 17
    Also on Bluesky
  • Here’s a sneak peek at a reorganized theme editor, moving a few things around to fix long-standing usability problems. When it’s ready (next week?) should be much easier to do quick edits without a bunch of clicks through managing themes.

    Screenshot of new themes editor with sidebar of templates list.
    → 3:38 PM, Jul 12
    Also on Bluesky
  • Here’s a screenshot of the new Get Info window in the latest Mac app for Micro.blog, released today. Makes it possible to quickly grab the auto-generated text for uploaded photos on the Mac.

    Screenshot of Mac app with sidebar and grid of uploads, with a floating window that shows the URL, alt text, and a copy button.
    → 7:43 AM, Jul 10
    Also on Bluesky
  • Small fan I keep in my laptop bag. Doesn’t completely solve Texas summer but helps a tiny bit. Need to find a USB-C version. ☀️

    → 2:55 PM, Jul 9
  • Lunch at LBJ State Park. Picked up a turkey melt sandwich from a food truck in Johnson City, Cast Iron Punk.

    → 12:52 PM, Jul 8
    Also on Bluesky
  • Johnson City Coffee Co. ☕️

    A rustic room features a large framed cow portrait on a wooden wall, with various seating areas and a wooden bookshelf filled with books and magazines.
    → 9:33 AM, Jul 8
    Also on Bluesky
  • Enchanted Rock. It’s too hot today so I can’t be bothered to hike to the top, but it’s still nice.

    → 5:23 PM, Jul 7
    Also on Bluesky
  • I updated the Micro.blog for Mac app today. Several improvements including an easy way to just see draft blog posts.

    Screenshot of Mac app showing drafts tab, publishing status, and notes option in the sidebar.
    → 7:36 AM, Jul 5
    Also on Bluesky
  • Patriotic delivery robot. Kirk Watson and Lloyd Doggett spoke briefly after Mueller’s parade. Paraphrasing Doggett: we have a choice this year between democracy and a path leading to autocracy. 🇺🇸

    → 11:16 AM, Jul 4
    Also on Bluesky
  • New laptop sticker. Always iced coffee.

    → 7:20 AM, Jul 3
    Also on Bluesky
  • Texas Sage while out walking. Can’t tell in the photo but the bees are happy too.

    → 12:41 PM, Jul 2
    Also on Bluesky
  • Trail bridge at Bastrop State Park. Trees are slowly coming back after the 2011 fire.

    → 3:12 PM, Jun 30
    Also on Bluesky
  • Kora Kora Coffee in Gruene, Texas. ☕️

    A narrow pathway lined with stone buildings leads to an outdoor seating area for Kora Kora Coffee, shaded by trees.
    → 9:44 AM, Jun 29
    Also on Bluesky
  • Morning at Guadalupe River State Park.

    → 7:39 AM, Jun 29
    Also on Bluesky
  • Some progress with the Threads API, the issue with the Meta dev dashboard not updating to show API calls has been fixed. However, there’s still no way to submit the app for review. Expecting an “App review” option in the sidebar, but it’s not there.

    Screenshot showing Threads API calls.
    → 8:52 AM, Jun 26
    Also on Bluesky
  • Finally got my R1. The hype has worn off, so not sure it has a place in my life for regular use. Nice little device, though, and very orange.

    → 12:03 PM, Jun 24
  • Decided to promote the “Edit Sources & Cross-posting” screen to its own link in the sidebar. It’s called simply “Sources”. This is a powerful part of Micro.blog and needs more visibility. (Using a feed icon, even if one day we might have other feed reader-related sidebar things.)

    → 11:50 AM, Jun 23
  • We saw the new Zilker Eagle today while going to Barton Springs. It looks really nice. Unfortunately it derailed on the switch while we were at the pool. No one was hurt because it goes extremely slow. 🚂

    → 10:52 AM, Jun 23
  • Still no option for me to submit our Threads feature to Meta for review. Tried contacting developer support but that submission fails for unknown reasons. The issue seems to be that the Meta dev dashboard is not recognizing all the successful API calls we are already making.

    → 11:32 AM, Jun 22
    Also on Bluesky
  • Rough Point. This view brought to you by a contribution from the Doris Duke Charitable Foundation.

    → 12:03 PM, Jun 19
  • Last night in Newport. Another lighthouse, with the sunset at Castle Hill.

    A lighthouse stands at the edge of a body of water with the sun setting on the horizon.
    → 8:00 PM, Jun 18
  • Brant Point Lighthouse, Nantucket.

    → 11:45 AM, Jun 17
  • Springline Coffee. ☕️

    → 5:48 AM, Jun 17
  • The Breakers. Beautiful walk along the cliffs and in the mansion. The Vanderbilts really had a stunning amount of wealth.

    → 11:58 AM, Jun 16
  • Drift Cafe, Newport. ☕️

    → 8:17 AM, Jun 16
  • Newport Bridge from Goat Island.

    → 6:54 PM, Jun 15
  • Last month I got sucked into an auction for Disney artwork and came away with a sequence of drawings of Scrooge in Mickey’s Christmas Carol, from 1983. They arrived! Need to figure out how to frame them.

    → 3:44 PM, Jun 14
  • Gandy’s Creamery in Brady, Texas. No trespassing.

    → 8:25 PM, Jun 13
  • Stellar Coffee in Roswell. ☕️

    → 10:10 AM, Jun 13
  • Wind turbines as the sun sets in New Mexico.

    → 11:06 PM, Jun 12
  • Freight trains in the middle of nowhere, Arizona.

    → 1:53 PM, Jun 12
  • This text without any vending machines is like a cruel mirage in what feels like the middle of the desert of southern California this afternoon, outside Boron.

    → 5:46 PM, Jun 11
  • Vaguely keeping up with the Platform State of the Union in the hotel lobby. Thinking I’ll update to macOS Sequoia later, but not on this wi-fi.

    → 3:16 PM, Jun 10
  • Field of Light in Paso Robles. I was expecting something different and beautiful, and it was that. But it also made me wonder if we’re in an era of synthetic art, where ideas matter more than craftsmanship. (This is about AI too.) Glad I stopped here to see it.

    → 10:58 PM, Jun 8
  • Santa Ynez Valley.

    → 5:30 PM, Jun 8
  • Santa Barbara from the pier.

    → 2:19 PM, Jun 8
  • Made it to the coast, settling in at Point Mugu State Park. Way too crowded, almost left, but I like my tree.

    A circular fire pit sits on a patch of dirt, surrounded by dense, twisting trees and foliage.
    → 8:41 PM, Jun 7
  • Honda Element: window rain guards

    This is a pretty simple one, another addition to my blog post series about upgrading my Honda Element. These rain guards attach above each window, so you can crack the window while it’s raining and not get water in the car. They just stick on, but they seem surprisingly sturdy.

    → 6:05 PM, Jun 5
  • Bryce Canyon National Park. Didn’t catch this view at the right time for the best lighting, but it really is extraordinary. Hiked down and up and now I’m so exhausted just going to chill for the afternoon.

    → 1:08 PM, Jun 5
  • Glen Canyon.

    → 4:36 PM, Jun 4
  • Winding up along the Animas River. I’m in the last car of a 15-car train, so around the curves it’s a great view ahead. A beautiful route. 🚂

    → 1:03 PM, Jun 3
  • Good morning from Colorado! All aboard the Durango & Silverton Railroad. 🚂

    → 9:41 AM, Jun 3
  • Left late from home today, but still arrived at Caprock Canyons State Park before dark. Not pictured, there was a band playing at the visitors center, a nice welcome.

    A scenic landscape features a wooden fence in the foreground overlooking a lush, green valley with distant red rock formations under a clear blue sky.
    → 7:28 PM, Jun 1
  • Just some clouds.

    A sunny day with a vivid blue sky filled with scattered white clouds and a view of trees and a few streetlights at the bottom.
    → 3:06 PM, May 31
  • As part of the podcast pricing decrease, everyone also now gets this little segment control for filtering and searching uploads on the web:

    Screenshot of Micro.blog control to only show photos or other upload types.
    → 8:19 AM, May 30
  • Mr. Goodnight. ☕️

    A brick wall with a neon sign that reads GOODNIGHT COFFEE CO is flanked by two black chairs with a small table in between.
    → 6:58 AM, May 27
  • Fort Worth, downtown with the county courthouse.

    → 8:10 PM, May 26
  • Went to Barton Springs today to swim but there was a ridiculous number of people waiting in line, must’ve been over 200 people, stretching well past the Zilker train depot, so we went kayaking instead. Austin may be too crowded.

    Austin cityscape is visible across Lady Bird Lake with lush trees on the right under a partly cloudy sky.
    → 7:25 PM, May 25
  • Audio narration in Micro.blog

    This feature went from idea to implementation quickly because it turns out we already have full podcast hosting in Micro.blog! How convenient. I’m going to use this post to break it all down.

    AI is everywhere, including some places it probably shouldn’t be. If you’ve been following my blog you know that I see huge potential in generative AI. We’re using it in Micro.blog to improve photos search and accessibility text for photos. But like many tools, AI is going to be overused before we all find the right balance for what it’s good at.

    When Jean and I were talking to Christina Warren at Micro Camp, I asked Christina about a talk she gave at Çingleton about 10 years ago. I actually blogged about it at the time. What struck me as particularly relevant now as we’re about to be swamped with AI-generated content is that there’s no substitute for the human voice. I don’t just mean that an actual recording is better than a synthetic voice. I also mean that things that are created by humans will increasingly be sought out.

    We want to see the personal side of someone, not just the polished brand. We want to see the imperfect, the creative, the emotion. We want authenticity.

    In Micro.blog, you can now upload an audio recording of one of your blog posts. Use the audio icon in the new post form on the web, which is available to everyone starting today, even at the standard $5 plan. Your blog readers can listen to the audio narration of the post if they don’t feel like reading the post. Of course it’s especially great for the visually impaired.

    Here’s what it looks like on my blog, next to the posted date. Shout-out to Medium which I drew some inspiration from.

    Play button screenshot.

    I’m also adding audio narration to this very blog post, so you can click over to the web to try it out.

    When there’s audio attached to a post, Micro.blog attempts to check if it is probably the narration for a post. If the number of words in the post and the audio duration is roughly comparable to how long it would take a human to read the post, it assumes it’s narration and not a podcast. Podcast episodes are more likely to be longer with very short “show notes” in the actual blog post text.

    Micro.blog checks this so that it can hide the default audio player and transcript link. These would add clutter to normal blog posts.

    Blog themes will still need to be updated to support the play button. I’ve already updated the Alpine theme and will update others later. Themes can use a new API called Narration.js. Just plop this JavaScript anywhere you want the play button in your template, likely the layouts/post/single.html file. (Note that this currently needs to be on the permalink page. It won’t work correctly on the home page with a list of blog posts yet.)

    {{ with .Params.audio }}
      <script type="text/javascript" src="https://micro.blog/narration.js?url={{ . }}"></script>
    {{ end }}
    

    If you’re using Micro.blog Premium, the audio narration will also be included in the podcast feed. Any blog can effectively be a podcast, even if you don’t think of it as a traditional podcast. Some of my favorite writers have had great success with a dual model of email newsletter plus podcast version of the same content, like Ben Thompson and Molly White.

    I can’t wait to see how people use this. It’s totally optional. It’s more work, and not everyone is going to want to do that extra work. I’m imagining this would be used for selective, special blog posts, rather than everything. I’m also interested in working this functionality into our companion app Wavelength, which should cut down on the technical steps.

    In some ways, this feature isn’t actually about what is possible. This feature is a statement: we make things for humans, so they can make the web a little better. Along the way there will be plenty to automate, plenty of AI tools that will be important shortcuts, but we’re not going to lose our voice.

    → 3:14 PM, May 24
  • Tried the new Cajun place that opened a couple weeks ago, Lil’ Easy.

    → 6:52 PM, May 23
    Also on Bluesky
  • Mural from I-35.

    Vibrant mural of colorful animals and people with flowers for heads on the side of a building next to a Whole Foods sign.
    → 6:16 PM, May 19
    Also on Bluesky
  • Good morning! Coffee.

    A glass of iced coffee sits on a table next to a laptop with text on its screen, part of a server message in Safari. The glass says Whichcraft.
    → 7:52 AM, May 15
    Also on Bluesky
  • Rainy day to be on the road. Clouds and skyline in the distance as we drive back through Dallas.

    A grayscale cityscape is depicted under a cloudy sky, with buildings silhouetted on the horizon and a rooftop in the foreground.
    → 7:45 PM, May 12
  • Violet Hill B&B, Natchitoches.

    A serene outdoor setting with two wicker chairs and a small table on a deck, overlooking a lush green area and the Cane River.
    → 2:36 PM, May 8
  • Garden Cafe in Dallas.

    Stone walkway and garden next to the restaurant patio.
    → 11:54 AM, May 4
  • Ordered another Jackery. This one is so tiny.

    Battery and cables on a counter.
    → 7:39 AM, May 4
  • Finally checked out the Carpenter Hotel’s coffee shop yesterday. Nice place. Had a little break from the rain outside.

    Iced coffee and veggie sandwich with my laptop on an outside table.
    → 10:41 AM, May 3
  • Grand opening of the new Chuy’s in Mueller.

    A bowl of salsa and a basket of tortilla chips, with the Chuy’s menu that says Let’s Eat, Y’all.
    → 5:46 PM, Apr 30
  • Saw this poster the other day and was fascinated by it. I’m posting it to capture the time we live in. It also inspired me to read a few random articles about horses in the Middle East, including this one from 2016 in The New York Times:

    Palestinians and Israelis in the business, as well as foreign trainers and judges who know the region, say that Arabian horses have another effect that is almost magical: They coax Israelis and Palestinians into the same arenas, where the conflict briefly melts away and everyone admires the horses as they strut, dance, gallop and compete for trophies.

    A weathered poster on a pole depicts figures on horseback, the Palestinian flag, and the text Free Palestine.
    → 4:05 PM, Apr 30
    Also on Bluesky
  • Little known feature in Micro.blog: it saves each copy of a draft in case you need to revert or get text from a previous version. Apparently I hit ⌘S a lot while writing that post about TikTok this morning.

    → 1:01 PM, Apr 25
    Also on Bluesky
  • Fish pond after getting coffee at Epoch earlier. Looks the same as a couple decades ago except all the retail space has changed, except Korea House. When I walk through I always think of the little model train store that used to be on the corner.

    → 4:26 PM, Apr 24
    Also on Bluesky
  • For folks using Micro.blog Premium with the AI setting enabled, you may start to notice some new generated data for photos, as in this screenshot. I’ll blog more about this in the coming weeks when it’s fully enabled. The goal is better photo search and accessibility.

    Screenshot of Micro.blog on the web when clicking on an upload, showing AI-generated text and tags.
    → 8:47 AM, Apr 23
    Also on Bluesky
  • Coffee this morning at WhichCraft. I have the whole place to myself for now. ☕️

    An iced latte in a nice glass next to a MacBook Pro with various Mac icons in the Dock, Micro.blog open in Safari, on a wooden table, with the word WhichCraft visible on the glass.
    → 7:47 AM, Apr 23
    Also on Bluesky
  • Sarah Sherman and Chloe Fineman at the Paramount.

    Congress Avenue with the Capitol and Paramount Theatre.
    → 8:13 PM, Apr 20
  • New AI global setting

    There is a lot happening around generative AI. With the continued improvements from OpenAI, expected AI features from Apple coming up at WWDC, and new devices like the Rabbit R1, we’re all going to be swimming in AI this year. Some people feel (understandably!) like they’re drowning already.

    I like writing blog posts by hand, but I think AI can be a powerful tool. Micro.blog Premium currently has two AI-related features:

    • When you host your podcast on Micro.blog, we’ll automatically generate a transcript of each episode, which you can edit.
    • When you bookmark web pages in Micro.blog, we’ll automatically generate a short summary of the web page, which you can show on the web under the “…” button → Show Summaries.

    As we add more features that are powered by AI, we need a comprehensive way to tie them together, especially for anyone concerned about privacy. To be clear, there are no plans to use AI except on public data that is already on the web, like podcasts or photos. We aren’t going to suddenly start sending your private Micro.blog notes to OpenAI for processing. (And because they are end-to-end encrypted, we couldn’t anyway.)

    This is all a long introduction to announce a new, simple setting to globally control whether AI is used for anything in your account. You can find it on the web under the Account link:

    Screenshot of new AI setting.

    For existing users, this is turned off by default unless you have previously used one of the AI features mentioned above. For example, if you have a podcast that generated transcripts, the setting is on so that the feature will continue to work. For new users who join Micro.blog starting today, it’s turned on by default. I think it’s simple and clear, but obviously we’ll be listening to feedback.

    I recommend toggling the checkbox on for your account if you are at all interested in the potential for AI around things like helping with photo alt tags, search, or categorization. No new features to announce today, though.

    → 11:34 AM, Apr 16
    Also on Bluesky
  • Streetcars in New Orleans. Had a great few days here.

    → 10:50 AM, Apr 15
    Also on Bluesky
  • Lakers vs. Pelicans. Last game of the regular season. 🏀

    → 2:59 PM, Apr 14
    Also on Bluesky
  • Dauphine St. Books. 📚

    Books piled everywhere in the French Quarter.
    → 5:48 PM, Apr 11
    Also on Bluesky
  • First sticker on the new laptop. ☕️

    French Truck Coffee sticker on MacBook Pro with iced latter in the corner on outside blue table.
    → 12:48 PM, Apr 11
    Also on Bluesky
  • Audubon Park.

    Old oak trees in New Orleans.
    → 12:14 PM, Apr 11
    Also on Bluesky
  • Railroad crossing in Scott, Louisiana.

    Train tracks with old boxcar and building in background.
    → 8:42 PM, Apr 10
    Also on Bluesky
  • Storm clouds.

    Clouds over Mueller, covering right side of sky.
    → 7:19 PM, Apr 9
    Also on Bluesky
  • For day 8 of the Micro.blog photo challenge: prevention.

    Eclipse glasses on the counter.
    → 4:14 PM, Apr 8
    Also on Bluesky
  • Book to read while we wait for the eclipse, with a sort of appropriate title, Sunbringer. 🌑

    Two books and a sandwich on a picnic blanket.
    → 11:41 AM, Apr 8
    Also on Bluesky
  • I’m a day late for the Micro.blog photo challenge word “foliage”, but this was a nice view this morning. 🌳

    Trees with green leaves along a walkway with wall.
    → 10:54 AM, Apr 5
    Also on Bluesky
  • Micro.blog 3.2 for macOS

    Lots of improvements in this release. Full release notes:

    • Added new logs window to show current blog publishing status and other errors.
    • Added keyboard navigation for the timeline. Up and down arrows to select posts, return key to view conversation, and command-R to reply.
    • Added View menu → Go to @username command to show your profile.
    • Added keyboard shortcut command-[ for back button.
    • Added right-click option to delete selected upload.
    • Added “…” button for selected books in a bookshelf, same options as right-click.
    • Improved book cover caching.
    • Improved icons and other little layout fixes.
    • Fixed Markdown header color when writing a blog post.

    Here’s a screenshot of the new logs window:

    Screenshot of logs window.

    Perhaps the biggest change is finally some keyboard navigation for the timeline. Use the up and down arrow keys to select posts, the return key to view a conversation, and command-R to reply to a post.

    → 9:46 AM, Apr 5
    Also on Bluesky
  • Time for an upgrade. Intel to M3.

    Two 16-inch MacBook Pros. Intel on the right, M3 Max on the left.
    → 11:12 AM, Apr 2
    Also on Bluesky
  • Working this morning at Lazarus on Airport. ☕️

    Big metal thing for brewing beer.
    → 10:15 AM, Apr 1
  • Wicked is an all-time favorite. Haven’t seen it in years and forgot a few details that you miss on the soundtrack. Amazing.

    Sign for Wicked outside Bass Concert Hall.
    → 3:14 PM, Mar 31
    Also on Bluesky
  • Still a lot of bluebonnets everywhere in Austin.

    Flowers along the sidewalk.
    → 3:03 PM, Mar 26
  • Pedernales Falls State Park.

    View of the water and rocks.
    → 6:28 PM, Mar 24
    Also on Bluesky
  • Spurs in Austin. Finally seeing Wemby in person. 🏀

    Victor shooting over the Brooklyn Nets.
    → 6:40 PM, Mar 17
    Also on Bluesky
  • Mother Neff State Park.

    Stone tower and steps.
    → 6:07 PM, Mar 14
    Also on Bluesky
  • Dichotomy. In Waco this morning in between state park visits. ☕️

    Iced coffee and laptop.
    → 10:27 AM, Mar 14
    Also on Bluesky
  • Fort Parker State Park.

    Lake just after sunset.
    → 10:04 PM, Mar 12
    Also on Bluesky
  • Recommendations and blogrolls on Micro.blog

    Today we’re introducing a new feature: blog recommendations. This was inspired by recent interest in bringing back blogrolls, including posts from Dave Winer, his service FeedLand, the recommendations feature in Ghost, and feedback from Micro.blog users asking for new ways to discover people to follow. It’s a way to curate a list of favorite sites to link to from your blog.

    Here’s a screenshot showing my current blogroll. I’m still adding people, but generally expect most blogrolls to be more limited than someone’s complete social following list.

    Screenshot of home page with sidebar blogroll on right.

    To get started, click on Design → Edit Recommendations. By default, there is a single blogroll named “Recommendations”, but you can create additional blogrolls, for example to organize blogs in topics like “Favorite Authors” or “Technology”.

    Your blogroll will be available in a few places within Micro.blog:

    • Profile pages on the web will get a new “Recommended 5 blogs” link. This list can include any blog no matter where it’s hosted, and Micro.blog will attempt to link to the Micro.blog profile where possible for easy following.
    • Hugo gets a new blogroll shortcode. You can use this to include your recommendations on a web page. It’s provided by a plug-in that will be automatically installed if needed.
    • There’s also a plug-in for the Marfa and Alpine themes to show a blogroll in the sidebar on your home page. Check out my home page for an example. (Currently this is only visible for wide browser screens, not on mobile.)
    • There’s data in Hugo for each blogroll, like .Site.Data.blogrolls.recommendations, with a name and url.

    Like other features in Micro.blog, recommendations are built in an extensible way to give you control from Hugo themes, and with open file formats to connect with other platforms. Micro.blog manages updating OPML and JSON files. It also sends a webmention ping to the linked site when you add a recommendation, compatible with Ghost’s support for webmention.

    I’ll be working on help pages with more examples for how this can be used. Happy blogging!

    → 1:48 PM, Mar 11
    Also on Bluesky
  • Old steps and trail built by the CCC, at Lockhart State Park.

    Sign that says CCC trail, steps leading down to trees.
    → 3:49 PM, Mar 9
    Also on Bluesky
  • McKinney Falls State Park.

    Cliff with trees above the creek.
    → 1:55 PM, Mar 9
    Also on Bluesky
  • The demolition of the Frank Erwin Center. It has been a part of Austin my entire life — under construction when I was born and opened a couple years later. Some great memories there.

    Large round building being taken apart.
    → 5:17 PM, Mar 4
  • Rearranged part of the living room to create a workspace, with new prints from Cameron Moll on the wall.

    Small table with MacBook Pro, prints of Golden Gate Bridge and Brooklyn Bridge on the wall, plus other chair and pillows.
    → 9:06 AM, Mar 4
    Also on Bluesky
  • This goes well with my post yesterday.

    Cardboard box that says please leave a review.
    → 6:22 PM, Feb 29
    Also on Bluesky
  • Tracks across Navasota Street, before having lunch with an old friend at Cosmic. 🚂

    Train tracks merging together.
    → 3:35 PM, Feb 27
    Also on Bluesky
  • Digging underway at Mueller.

    Construction site with dump truck.
    → 8:45 AM, Feb 26
    Also on Bluesky
  • On a bit of a roll with iOS app updates this week. Some minor improvements to both Strata and Epilogue in the queue for Apple to review. Love how the new icons look in my iPhone dock.

    Screenshot of Epilogue and Strata in the dock.
    → 9:17 AM, Feb 24
  • New sticker, Books Are Magic. Also started reading The Bone Season. 📚

    Photo of sticker and 10th anniversary edition of The Bone Season.
    → 6:19 PM, Feb 19
    Also on Bluesky
  • Introducing notes in Micro.blog

    Today we’re launching a major new feature for Micro.blog Premium subscribers. Micro.blog notes are a new way to save content in Micro.blog when you don’t want to use a blog post or draft. Notes are private by default, end-to-end encrypted across all platforms, with a special companion app named Strata for iOS. (Android coming soon.)

    Notes are great for:

    • Jotting down ideas or brainstorming future blog posts. Notes use Markdown, so it’s easy to move the text into a blog post draft later.
    • Sharing content with a smaller group of friends or family, without that content being linked on your blog. When a note is shared, it is given a unique, random-looking URL on your blog that you can send to others.
    • Journaling within Micro.blog, so you can use the same platform whether you’re writing something just for yourself or sharing it with the world in a blog post.

    From the launch of the platform, Micro.blog has been about public blog posts. We want to make the web a little better with thousands of new blogs, where the user owns their identity and content. Some people want private posts too, but we’ve delayed adding that because it doesn’t fit perfectly into the public web. With the wrong implementation, it would turn Micro.blog into more of a closed silo, with some features only available when you’re signed in.

    Notes will be Micro.blog’s initial solution to private posts, a foundation we can build on. By default, notes really are private. They are encrypted and we can’t see them. But any note can be shared with others. When sharing a note, it’s decrypted and published to a corner of your blog, accessible only by direct URL.

    This level of encryption adds a new wrinkle to how Micro.blog usually stores data. We’ve tried to keep it simple, but honestly it can be confusing, and we expect a few bumps along the road. We will continue to make it as seamless as possible. There are options to download a copy of the “secret key” used in Micro.blog, as well as saving a copy to iCloud. I recommend both.

    In the future, notes will make their way into more Micro.blog features. For example, you can imagine attaching notes to bookmarks, web page highlights, or a book you’re reading. We are very excited about the potential for this in Micro.blog.

    Here’s a screenshot from the web. Enjoy!

    Screenshot of notes view on the web.
    → 10:09 AM, Feb 13
    Also on Bluesky
  • Haven’t posted a new home screen in a while. Our new app in the dock, almost ready. Otherwise my go-to apps remain about the same.

    Screenshot of my home screen.
    → 10:47 AM, Feb 11
    Also on Bluesky
  • Bookmark improvements for AI, browsers

    Rolling out bookmark improvements in Micro.blog Premium today. Two things:

    • Micro.blog will now try to summarize the text of a web page that is bookmarked by sending it to our future robot overlords at OpenAI. This is hidden by default, but can be enabled by clicking Bookmarks → “…” → “Show Summaries” on the web.
    • There is a new web browser extension to make bookmarking the current web page easier, initially available for Firefox and Chrome, with Safari to follow. You can find it by searching “Micro.blog” in the Firefox and Chrome extensions directories. After it’s installed, you can pin it to your toolbar.

    The AI summaries are still experimental. I’ve found them useful to get a quick glance of something I want to read later. In the future, I hope we can use them to improve search too.

    Here’s a screenshot of a bookmarked web page with the summary shown:

    Screenshot of bookmark with summary next to little robot icon.

    It’s going to be a busy week. We have another new feature set to launch this month, with a new app that I’m submitting to Apple today. Thanks for your support!

    → 10:00 AM, Feb 5
    Also on Bluesky
  • Manual cross-posting to Threads and more

    Today we’ve added a brand new option for manual cross-posting from Micro.blog to other services, including Threads. This new option is great for services that don’t yet have an open API, so Micro.blog can’t automatically post to them, or for when you want to edit and preview your posts before sending them elsewhere.

    This feature is for blogs hosted on Micro.blog, so it’s available in the Posts page where you manage your blog posts:

    Screenshot of cross-post button.

    This brings support for Threads for the first time. When choosing Threads, Micro.blog will reformat your blog post as plain text, truncate it if necessary, and copy the text over to Threads where you can finish sending the post. You will need to be signed into Threads in your web browser, or in the Threads app on mobile.

    Twitter X is also now back in a more limited form with this new cross-posting option. We still can’t automatically post to Twitter X because of their API changes. There’s also the usual suspects like Mastodon, Tumblr, and Bluesky.

    This feature doesn’t work exactly like Micro.blog’s existing, automatic cross-posting, so be sure to check out the help page for the details. In future updates, I expect that the two different ways of cross-posting will look more similar.

    Last month we teased that a major new feature is coming to Micro.blog soon. Whenever we add something new, folks ask if the new thing is the major feature… Nope, this cross-posting improvement isn’t it either! You’ll know when we ship it next month because it comes with its own section of Micro.blog, a new companion app for iOS and Android, and an update to the macOS app. Stay tuned.

    → 3:39 PM, Jan 29
    Also on Bluesky
  • Free parking, at Lazarus on Airport. ☕️

    Free parking from Monopoly painted on parking space.
    → 8:35 AM, Jan 25
    Also on Bluesky
  • Posts reply count UI

    Micro.blog can be thought of as a mashup of a Twitter-like social timeline and a WordPress-like blog posts admin interface. Some parts of the interface are designed for interacting with the community, some parts are designed for managing your blog, and some parts are kind of in limbo between both sides of the platform.

    One example of this is on the Posts screen, where there hasn’t been a link from one of your blog posts to any of its replies. Today I added that:

    Screenshot of post with edit button and 1 reply bubble.

    I have mixed feelings about this interface. We try to avoid “counts of things” across the platform. There are no follower counts and no like counts. We want to discourage the popularity contest mentality that can come from comparing statistics across users.

    In this case, these are just links to replies on your own view of your posts. If a post has no replies, there is no indicator. I decided to roll this out so we can live with it for a little while and see if we like it. I consider if somewhat experimental and based on feedback, we may change it to be less prominent, or deemphasize the count. It could also fade away if there are no new replies recently.

    Still thinking about this, but wanted to share it now. We update the platform on a near-daily basis, usually small fixes and tweaks. Check out news.micro.blog for a log of recent changes.

    → 4:03 PM, Jan 22
    Also on Bluesky
  • Life is short, make the most of it. This is on the old El Milagro building. Shame about the misspelling.

    Mural that says one day you’re here and the next day your gone.
    → 3:25 PM, Jan 19
    Also on Bluesky
  • Read And Find Out shirt from Dragonsteel. Brandon Sanderson picked up this phrase from Robert Jordan, answering reader questions that might be covered in future books. 📚

    T-shirt that says RAFO on it.
    → 5:28 PM, Jan 17
    Also on Bluesky
  • If you use Micro.blog on the web, you may notice the layout has changed slightly. These kind of design updates are my favorite. Just a little better, not throwing everything out in a way that would be jarring.

    Screenshot of Micro.blog on the web with left sidebar and blue background, more width for the content.
    → 11:17 AM, Jan 9
    Also on Bluesky
  • Ray Roberts Lake State Park. First state park of the new year as I attempt to visit all 88 parks in Texas over the next couple of years.

    Trees in the winter with leaves on the ground, blue sky with clouds in the background.
    → 6:27 PM, Jan 6
    Also on Bluesky
  • New Chuy’s going up in Mueller. 🌮

    Sign saying 'Coming Soon!' around construction.
    → 11:19 AM, Jan 5
    Also on Bluesky
  • ePub testing on Kindle.

    Kindle with book cover of Indie Microblogging shown.
    → 9:25 AM, Jan 5
    Also on Bluesky
  • Mickey and Minnie in Steamboat Willie, finally in the public domain. Happy New Year! 🎉

    Frame from the 1928 animated film, Steamboat Willie with Mickey and Minnie Mouse playing music on the animals.
    → 9:27 AM, Jan 1
    Also on Bluesky
  • Following Bluesky users from Micro.blog

    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:

    Screenshot of searching for scottmccloud.bsky.social in Micro.blog's Discover page.

    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! 🎄

    → 10:39 AM, Dec 24
    Also on Bluesky
  • 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.

    Screenshot of Micro.blog showing 22 versions count.
    → 10:00 AM, Dec 22
    Also on Bluesky
  • Raining in Austin this morning. Working and having coffee at Lazarus. 🎄

    Christmas tree on the patio at the coffee shop.
    → 8:24 AM, Dec 21
    Also on Bluesky
  • “Play Me” — piano outside the library, Windsor Park Branch.

    Old piano, painted with green leaves.
    → 10:14 PM, Dec 18
    Also on Bluesky
  • 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.

    Screenshot showing Micro.blog tags with an elephant emoji.
    → 8:43 AM, Dec 12
    Also on Bluesky
  • Link previews or ads

    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:

    Screenshot of my blog post about stopping to buy some shoes.

    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:

    Screenshot of Mastodon with a giant link preview image for Lems shoes that is bigger than my actual text post.

    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.

    → 3:10 PM, Dec 9
  • 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.

    Boxes and arrows showing the different Micro.blog app servers, database servers, and static file servers.
    → 2:18 PM, Dec 6
    Also on Bluesky
  • La La Land Kind Cafe. ☕️

    Outside patio, fence with “lost in la la land” painted on it with yellow stars.
    → 11:38 AM, Dec 4
    Also on Bluesky
  • Quiet night camping at Ray Roberts Lake State Park.

    Honda Element with blue fairy lights inside, stars out in the sky.
    → 10:15 PM, Dec 3
    Also on Bluesky
  • Sunset at Lake Ray Roberts.

    Orange sun still half visible on the horizon, silhouetted trees in foreground.
    → 8:59 PM, Dec 3
    Also on Bluesky
  • Transfer domains to Micro.blog

    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:

    Screenshot of Micro.blog DNS records interface.

    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.

    → 9:52 AM, Nov 29
    Also on Bluesky
  • Uptown in Dallas over the weekend, coffee and work at Foxtrot as the trolly goes by in the background.

    Coffee and laptop outside.
    → 7:52 AM, Nov 21
    Also on Bluesky
  • Rest stop in Arizona, near Texas Canyon.

    View of boulders and sky.
    → 12:59 PM, Nov 13
    Also on Bluesky
  • 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.

    Yucca tree and mountains in the desert.
    → 5:21 PM, Nov 12
    Also on Bluesky
  • I-5 between Sacramento and Los Angeles.

    View above the highway with California mountains in distance and blue sky.
    → 2:38 PM, Nov 11
    Also on Bluesky
  • Blazers vs. Kings. 🏀

    Basketball game in Sacramento.
    → 11:09 PM, Nov 8
    Also on Bluesky
  • Millerton Lake. I’m still not used to how ridiculously early the sun is setting. This was a few minutes before 5pm!

    Low lake with sun setting in background and orange sky.
    → 10:10 PM, Nov 7
    Also on Bluesky
  • 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. 👻

    Light on my fan and jug of water on the ground, casting shadows.
    → 9:55 PM, Nov 6
    Also on Bluesky
  • I knew I’d find a cool coffee shop around here somewhere. Bad Owl Coffee in Henderson, NV.

    Flying brooms on the wall for Harry Potter theme.
    → 1:27 PM, Nov 6
    Also on Bluesky
  • A longer post about U2 in Vegas

    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.

    → 12:00 PM, Nov 6
  • Morning at Lake Mead.

    Honda Element with lake and mountains in background.
    → 10:35 AM, Nov 6
    Also on Bluesky
  • U2 at the Sphere. This is from the very beginning of the show, no spoilers. Incredible concert and venue.

    The band on stage with shadows of Bono on the huge wall.
    → 1:38 AM, Nov 5
    Also on Bluesky
  • Hoover Dam.

    → 8:27 PM, Nov 4
    Also on Bluesky
  • Back on the road. Sun coming up from Coconino National Forest.

    Trees in the canyon.
    → 10:09 AM, Nov 3
    Also on Bluesky
  • 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.

    Photo of the overlook.
    → 6:28 PM, Nov 2
    Also on Bluesky
  • What’s left of Budville Trading Company, originally opened in 1928 along Route 66.

    Photo of the old building that was a gas station and store, now in disrepair.
    → 3:06 PM, Nov 2
    Also on Bluesky
  • 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. ☕️

    Outside photo of coffee shop, blue sky in the distance.
    → 8:42 AM, Nov 2
    Also on Bluesky
  • First coffee stop of the road trip. J&B Coffee in Lubbock. ☕️

    Iced latte with some oatmeal.
    → 8:09 AM, Nov 1
    Also on Bluesky
  • 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.

    Bags of candy.
    → 12:40 PM, Oct 31
    Also on Bluesky
  • Micro.blog 2.0 for Android

    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.

    Screenshot of Chrome with selected text. Screenshot of share sheet. Screenshot of new post in Micro.blog.

    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.

    → 11:37 AM, Oct 30
  • Back at the old house (still hasn’t sold) to mow the yard in between the rain. Mushrooms popping up.

    Mushrooms growing in the mulch.
    → 9:50 AM, Oct 29
    Also on Bluesky
  • Super Mario Wonder is so good. And yeah, I did end up getting a new Switch Lite to play it. 🕹️

    Turquoise Switch Lite playing Super Mario Bros. Wonder.
    → 11:17 AM, Oct 27
    Also on Bluesky
  • 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.

    Screenshot of draft email from SupportAgent.ai.
    → 9:15 AM, Oct 26
    Also on Bluesky
  • Honda Element: bed platform

    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.

    → 10:36 AM, Oct 19
    Also on Bluesky
  • 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.

    → 4:19 PM, Oct 18
    Also on Bluesky
  • Found a great spot to work for the afternoon in the library at Sul Ross.

    Laptop and bag on table with Alpine TX and mountains out the window.
    → 12:46 PM, Oct 16
    Also on Bluesky
  • Honda Element: weBoost

    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.

    Attaching the weBoost to roof rails. Wire going into the car above driver's seat window. weBoost inside components, with antenna velcro-ed near passenger seat. weBoost pointed up.

    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.

    → 10:01 AM, Oct 16
    Also on Bluesky
  • A random shot from a few weeks ago, walking down Steck over Shoal Creek back to the Honda dealer, waiting for service. 🚙

    Mosaic post on bridge with Shoal on it.
    → 9:25 AM, Oct 11
  • Honda Element: rooftop box

    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.

    → 10:54 AM, Oct 7
    Also on Bluesky
  • 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.

    WebEdge conference sticker from 1995.
    → 8:02 AM, Oct 6
    Also on Bluesky
  • Micro.blog 3.2.1 for iOS

    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:

    • Updated new post toolbar to use b, i, and link icons.
    • Added audio attach icon to new post for Micro.blog Premium subscribers.
    • Added new notifications pane when receiving new mentions.
    • Added link to Indie Microblogging book and Markdown reference in help.
    • Fixed remembering last selected blog when using multiple blogs.
    • Fixed scrolling to allow more room for accessibility text on photos.
    • Improved some minor layout and styles in other parts of the app.

    Enjoy!

    → 8:04 AM, Sep 29
  • 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. ☕️

    → 7:05 AM, Sep 26
    Also on Bluesky
  • 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.

    MacBook on a desk with window and plant.
    → 9:37 AM, Sep 23
    Also on Bluesky
  • 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. 🏡

    Old railroad ties and new ones in front yard with trees.
    → 9:23 AM, Sep 19
    Also on Bluesky
  • Got my signed copy of Sword of Kaigen from the Kickstarter. The hardcover turned out great. 📚

    Book with nice silver paper edge.
    → 2:58 PM, Sep 16
    Also on Bluesky
  • The capitol and downtown buildings over yonder, reflecting in the windows. Eighth day of the Micro.blog photo challenge.

    Looking across Waterloo Park.
    → 1:42 PM, Sep 8
    Also on Bluesky
  • 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.

    Screenshot of bookmark tags on iOS.
    → 8:31 AM, Sep 7
    Also on Bluesky
  • Love this new bookstore + coffee shop in Austin, First Light Books. Lots of thoughtful touches like the laptop-free book nooks for reading.

    Seat by the window with a sign.
    → 9:54 AM, Sep 6
    Also on Bluesky
  • Day 2 of the Micro.blog photo challenge: buildup.

    Stack of cardboard boxes.
    → 7:44 PM, Sep 2
    Also on Bluesky
  • First day of the Micro.blog photo challenge: abstract.

    Sliding door at Public Storage, looks like stripes of orange.
    → 1:00 PM, Sep 1
    Also on Bluesky
  • Noticing the moon as a long day winds down.

    Full moon and clouds.
    → 9:05 PM, Aug 29
    Also on Bluesky
  • Honda Element: CarPlay upgrade

    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:

    • Sony XAVAX1000, 6.2-inch media receiver. Simple, clean design with an actual knob. I think it’s discontinued but Best Buy had one.
    • Metra 70-7863, stereo wiring harness. With RCA cables that go to the Sony unit. Ordered the wrong kit at first, then found the right one at Custom Sounds in Austin instead of waiting for shipping.
    • Metra 95-7863, plastic dash kit. I was honestly shocked when this arrived and it was the right shape. It was hard to tell from the online photos.

    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.

    → 8:18 AM, Aug 28
  • 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.

    Salad and three knives.
    → 1:34 PM, Aug 26
    Also on Bluesky
  • Sunset as we drive over the Trinity River in Fort Worth.

    Sunset over the river with bridge railing in foreground and building on the horizon.
    → 8:02 PM, Aug 23
    Also on Bluesky
  • Marty and Doc waiting for the DeLorean to be constructed.

    Back to the Future LEGO minifigures.
    → 7:48 AM, Aug 18
    Also on Bluesky
  • Octopus tagging along with us during IKEA shopping this weekend.

    Stuffed animal octopus in shopping cart.
    → 7:38 AM, Aug 13
    Also on Bluesky
  • 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.)

    Screenshot of Mac app with floating tags palette and bookmarks.
    → 8:45 AM, Aug 12
    Also on Bluesky
  • Austin this morning from the train station. Unfortunately just a drop-off, not going anywhere myself.

    View of tracks and downtown Austin. Black and white.
    → 2:28 PM, Aug 11
    Also on Bluesky
  • Pixelfed cross-posting in Micro.blog

    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:

    Screenshot of cross-posting options showing Bluesky, Nostr, and Pixelfed.

    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!

    → 9:39 AM, Aug 7
  • 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. 🥲

    American Girl store and bistro.
    → 8:48 AM, Aug 7
    Also on Bluesky
  • 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.

    Oddly-shaped tower with trees and hay bails in foreground.
    → 6:18 PM, Aug 6
    Also on Bluesky
  • Mystery boxes of records at Josey Records in Dallas, $10 each.

    Stack of U-Haul boxes. Heavy.
    → 2:29 PM, Aug 5
    Also on Bluesky
  • Half Price Books flagship store in Dallas. 📚

    Bookshelves. A small part of the largest Half Price Books in Texas.
    → 3:58 PM, Aug 4
    Also on Bluesky
  • 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.

    Photo of bookshelves and empty room.
    → 7:26 AM, Aug 4
    Also on Bluesky
  • Matilda at Zilker Hillside Theater. 🎭

    Matilda and Miss Honey on stage singing.
    → 10:01 PM, Jul 30
    Also on Bluesky
  • 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. 📚

    Photo of book open with illustration.
    → 2:15 PM, Jul 24
    Also on Bluesky
  • 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).

    Screenshot of partial file list in Nova.
    → 8:14 AM, Jul 11
    Also on Bluesky
  • Time to get serious about finding the Sorcerer’s Apprentice Mickey.

    Box with six bags of LEGO minifigures.
    → 8:05 AM, Jul 8
    Also on Bluesky
  • I-10 over the Sabine River.

    View driving over the bridge with clouds.
    → 2:03 PM, Jul 5
    Also on Bluesky
  • Trains and clouds, in Louisiana.

    View from an overpass in Lafayette. Freight train on tracks and clouds before sunset.
    → 6:25 PM, Jul 4
    Also on Bluesky
  • Houston, twelve floors up.

    Houston buildings downtown.
    → 6:41 PM, Jul 2
    Also on Bluesky
  • Lady Bird Lake under the I-35 bridge.

    Water with old concrete columns.
    → 4:11 PM, Jun 25
    Also on Bluesky
  • Kayaking.

    Lady Bird Lake and Austin skyline.
    → 7:24 PM, Jun 18
    Also on Bluesky
  • Q*bert at Cidercade. 🕹️

    Old-school Q*bert video game screen.
    → 6:16 PM, Jun 18
    Also on Bluesky
  • Hanging out at Civil Goat Coffee with my daughter. Working a bit while she reads. ☕️

    Photo of my laptop and iced coffee, Guadalupe Street in background.
    → 9:23 AM, Jun 17
    Also on Bluesky
  • 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.

    Frugal Wizard's Handbook book open to a page that shows illustration in margin.
    → 11:17 AM, Jun 16
    Also on Bluesky
  • Good morning, Denver. Had a quick breakfast with this view before I wrap up the trip and return the van.

    Cherry Creek reservoir with buildings and mountains in distance.
    → 9:08 AM, Jun 9
  • Georgetown Loop Railroad. 🚂

    Train on high bridge in Colorado.
    → 3:07 PM, Jun 8
  • After driving around in circles with detours because of road construction, finally settled in at Atlas Coffees. ☕️

    View out large glass windows at coffee shop.
    → 9:50 AM, Jun 7
  • Wasn’t expecting rabbits. Seems to be a bunch around my campsite tonight at Chatfield State Park.

    Rabbit near a tree.
    → 7:07 PM, Jun 6
  • 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. 🚂

    Caboose and train cars with stairs leading up to door.
    → 2:21 PM, Jun 6
  • Panorama Point as the sun’s starting to go down, at Golden Gate Canyon State Park.

    → 7:35 PM, Jun 5
  • Nuggets vs. Heat. Finals, game 2. 🏀

    Basketball court in Denver. Butler shooting over Nokic.
    → 6:42 PM, Jun 4
  • One of my favorite things about Colorado so far is the water. Looks and sounds like snow had melted somewhere upstream.

    Rolling stream on rocks with trees around.
    → 10:58 AM, Jun 4
  • 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.

    LEGO Mickey Mouse attached to van dashboard.
    → 3:01 PM, Jun 3
  • 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.

    Statue of Stanley and hotel in background.
    → 2:44 PM, Jun 3
  • Outside the Glacier Basin campground at Rocky Mountain National Park.

    Mountains and clouds.
    → 11:30 AM, Jun 3
  • We caved and bought another Nintendo Switch. The OLED Zelda edition. So nice. 🕹️

    Switch controllers with Zelda-themed pattern and old Wii controller.
    → 12:21 PM, Jun 1
  • Introducing Nostr cross-posting

    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:

    Screenshot with Nostr icon and add link.

    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.

    → 10:21 AM, May 31
  • 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.

    Screenshot of Calckey with usernames.
    → 9:51 AM, May 29
  • Went to pay our respects to my uncle, for Memorial Day. Tomorrow would’ve been his birthday too. 🇺🇸

    Gravestone with name and Vietnam inscribed on it.
    → 5:53 PM, May 28
  • San Antonio Museum of Art, raining. Used to be the Lone Star Brewing building.

    Old brick building.
    → 4:35 PM, May 21
    Also on Bluesky
  • 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.

    Screenshot of Retrobatch window.
    → 2:31 PM, May 18
    Also on Bluesky
  • 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:

    Screenshot of YouTube notify me
    → 2:29 PM, May 17
    Also on Bluesky
  • Waterfall at Cosmic Coffee + Beer Garden. 🍺

    Plants and small waterfall over rocks into garden pool.
    → 3:30 PM, May 2
    Also on Bluesky
  • The storm is about to hit. Waiting it out downtown instead of on the highway. ⛈️

    Texas Capitol building with gray clouds.
    → 4:18 PM, Apr 28
    Also on Bluesky
  • Austin sky before thunderstorms arrive in a few hours, supposedly. ☁️

    Light clouds over Lady Bird lake from the dam.
    → 12:22 PM, Apr 28
    Also on Bluesky
  • It’s a good day to have a good day.

    Photo of wall and sign at Freddo ATX
    → 4:28 PM, Apr 22
    Also on Bluesky
  • Trees by the trail at Lady Bird Lake.

    Photo of lake with large tree in front of it, apartments in the background. Just east of I-35.
    → 9:50 AM, Apr 22
    Also on Bluesky
  • 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.)

    Screenshot of new Micro.blog interface with bookmarks tab and search box.
    → 8:03 AM, Apr 22
    Also on Bluesky
  • Lunch at Easy Tiger earlier today. 🥪

    Photo of building with tiger logo.
    → 2:58 PM, Apr 21
    Also on Bluesky
  • Thunderbird Coffee. ☕️

    → 6:23 AM, Apr 20
  • Happy Monday, everyone. Starting the week at Progress Coffee again. ☕️

    → 7:27 AM, Apr 17
  • 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.

    Screenshot showing Micro.blog 3.0 for iOS with bar above formatting bar to select the current blog by hostname.
    → 9:28 AM, Apr 16
  • Good morning, Austin! At Progress Coffee. ☕️

    Photo of painting of Austin with picnic tables at coffee shop.
    → 7:23 AM, Apr 14
  • Spurs vs. Blazers… in Austin! 🏀

    → 7:48 PM, Apr 6
  • Somewhere north of Meridian, TX. 🚂

    Out the train window, blue skies.
    → 2:30 PM, Apr 3
  • Taylor Swift. Eras Tour in Arlington, TX.

    Taylor Swift on stage from way up in the cheap seats.
    → 10:55 PM, Apr 2
  • Union Station in Dallas. 🚂

    → 3:25 PM, Apr 2
  • Zilker Kite Festival. 🪁

    Blue sky with kites flying.
    → 1:40 PM, Apr 1
  • My copy of Tress of the Emerald Sea arrived! Love the green ink throughout the book. 📚

    Inside page of book with green illustration of leaves.
    → 8:42 AM, Mar 28
  • Last day on the road as we make our way through a rainy highway 287 in the middle of nowhere.

    Highway with rain on car window.
    → 11:24 AM, Mar 16
  • 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:

    Screenshot of GitHub pull request commits.
    → 9:25 AM, Mar 15
  • Pikes Peak from Garden of the Gods. For “horizon”, day 14 of the Micro.blog photo challenge.

    → 5:28 PM, Mar 14
  • 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.

    Photo of train and gorge and Arkansas River.
    → 3:05 PM, Mar 13
  • Shiny light at Palace Coffee in Amarillo, for day 12 of the photo challenge. Be kind. ☕️

    Neon light that spells Be Kind.
    → 4:02 PM, Mar 12
  • 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.

    Car buried in the ground covered in graffiti.
    → 9:56 AM, Mar 12
  • 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.

    → 9:46 AM, Mar 8
  • Worked this morning at Cuvée Coffee. Bags of coffee beans for today’s prompt “whole” on the photo challenge. ☕️

    Bags of coffee beans on a shelf.
    → 2:20 PM, Mar 7
  • 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. 🚂

    Amtrak on railroad track.
    → 5:00 PM, Mar 6
  • Day 5 of the photo challenge: tile.

    Looking down at the tile floor with shoes visible.
    → 5:52 PM, Mar 5
  • 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.)

    → 8:48 AM, Mar 3
  • Looking up at the sky as we’re expecting bad weather tonight. Wind is starting to pick up.

    → 6:42 PM, Mar 2
  • 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.

    Photo of door handle with keyhole that doesn’t have a place to put a key.
    → 2:53 PM, Mar 1
  • 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. 📚

    Hardcover book with dragon on cover.
    → 3:50 PM, Feb 28
  • Adding per-post cross-posting to Micro.blog

    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.

    Screenshot of new checkboxes for cross-posting on macOS.

    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:

    • This is designed for setting on new posts. There’s no interface for changing it when editing a draft post yet.
    • Micro.blog will only show the cross-post services you have enabled in Account → Edit Feeds. If you have multiple feeds, things might be a little weird if there’s no obvious mapping between feeds and your blog.
    • This is for blogs hosted on Micro.blog. If you are posting to an external blog like WordPress, there’s no mechanism to customize cross-posting other than the existing global options.

    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.

    → 10:37 AM, Feb 23
  • Wrapping up ActivityPub improvements

    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:

    Screenshot of Mastodon details page on Micro.blog with header upload button.

    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.

    → 10:48 AM, Feb 19
  • Lunch and tea at Guilder.

    → 4:25 PM, Feb 18
  • Coffee and breakfast and coding at Either/Or. Love this boot glass. ☕️

    At a table at the coffee shop, with laptop and iced latte.
    → 11:19 AM, Feb 18
  • Yesterday at the Rose City Book Pub, catching up with @jean. 📚

    Bookshelves.
    → 10:03 AM, Feb 18
  • Columbia River at Astoria.

    Photo of the river.
    → 12:41 PM, Feb 16
  • Window art at a doctor’s office.

    Happy Valentine’s Day with heart drawn on window.
    → 8:48 AM, Feb 14
  • Woke to the sound of tree branches breaking under the weight of ice. No power. Made a fire. Sun starting to come up. ❄️

    → 7:18 AM, Feb 1
  • 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.

    Screenshot showing recent uptime of Micro.blog from October through January.
    → 10:57 AM, Jan 29
  • A little morning work and coffee at Lazarus. ☕️

    → 9:47 AM, Jan 27
  • Mastodon DMs on Micro.blog

    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:

    Screenshot of Micro.blog DM reply form.

    There is no message history and messages are deleted automatically after 60 days.

    → 8:50 AM, Jan 27
  • Good morning! Slightly busy schedule today. New day, new possibilities.

    Sunrise over trees.
    → 8:43 AM, Jan 26
  • New fiber going up in the neighborhood? Not sure who’s installing this but can’t hurt.

    Big coil of cable on the street.
    → 11:19 AM, Jan 10
  • Epilogue 1.5.1

    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:

    Screenshot of Epilogue 1.5.1 reading goals

    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.

    → 1:13 PM, Jan 1
  • Working a little on the next Micro.blog for Mac update. Probably will ship early January. Includes a new icon in the modern macOS style! (Thanks Brad Ellis!)

    Screenshot of new Mac icon.
    → 12:33 PM, Dec 28
  • Lighting kit for the LEGO Fiat.

    → 7:01 PM, Dec 27
  • Epilogue 1.5

    We released a new version of Epilogue for both iOS and Android. I’m finally getting these platforms in sync. I think our bet on React Native is paying off.

    This version adds a new post screen to your reading goals. As you blog about books you finished reading, Epilogue keeps track of them. At the end of the year, you can use the new post screen to compose a blog post with all the books you’ve read. Each book cover links to your blog post about the book.

    You can see what my books post for 2022 looks like here.

    This uses a new Micro.blog plug-in called Book reading goals. If you don’t have the plug-in installed yet, Micro.blog will automatically install it when publishing your blog if needed. (Epilogue works with any blog that supports the Micropub API, but this feature is only for Micro.blog because of the plug-in.)

    Here’s a screenshot of the new screen on iOS. You can edit the text before posting.

    Screenshot of Epilogue new goals post

    With this feature, I’ve completed the transition away from Goodreads, and don’t plan on using it going forward. Good luck with your reading goals in 2023!

    → 10:29 AM, Dec 26
  • Got a new game: The Great American Mail Race. Similar to Ticket to Ride so I knew we’d love it. The ink stamp to track your score is perfect.

    → 1:10 PM, Dec 25
  • I’ve been trying to walk up to the coffee shop every other day. Mostly quiet out as I headed back home, sky reflecting on the lake but no rain yet.

    → 1:49 PM, Dec 10
  • CDN for Micro.blog blogs

    Micro.blog has always tried to put all the important URLs for your blog at your own domain name if you have one, including URLs for photos you post to your blog. I like this because it’s consistent with prioritizing content ownership, and makes migrating photos to another blog host easier in the future. We like clean, simple URLs.

    Today we’re adding an option to enable serving photos from a content delivery network. This will update your photo URLs to use the CDN, while your home page and other blog pages will still use your own domain name. As your blog grows, especially with years of uploaded photos, this can really improve performance as people visit your blog from all over the world.

    To enable the CDN, click on Design and look for the “ Use content delivery network for images” checkbox:

    Screenshot of CDN checkbox.

    There is no extra charge for this feature, and it’s included in all plans. Happy photo-blogging!

    → 8:50 AM, Dec 8
  • Moving from Mastodon to a new instance or to Micro.blog

    Mastodon has a feature to move accounts from one instance to another instance. I spent some time recently exploring how this works so that we could support it in Micro.blog. I used this to consolidate my ActivityPub presence from multiple Mastodon accounts to just @manton@manton.org, powered by my blog and Micro.blog.

    From what I can tell, this feature is not well-documented. It does not exist in the ActivityPub spec. The “Move” activity examples in the companion ActivityStreams spec also do not cover moving accounts. So I’ll document some of the technical bits here in the hope that it’ll be helpful to other folks.

    To move accounts, 2 things are required:

    • From the new instance, set up an “alias” that links your new and old accounts.
    • From the old instance, initiate a migration to the new instance.

    The Mastodon documentation says that aliases should be set up on both sides of the migration, but this does not seem to be required. In my testing, an alias is only needed on the new instance.

    Because I wanted to move to Micro.blog, I added an alias in Micro.blog that references one of my old accounts: @manton@mastodon.social. You can find this in Micro.blog under Account → View Mastodon Details → Aliases.

    Screenshot of Micro.blog aliases page.

    Aliases are added to the ActivityPub profile information in the field alsoKnownAs. Here’s a snippet of my info:

    {
      "preferredUsername": "manton",
      "name": "Manton Reece",
      "alsoKnownAs": [
        "https://mastodon.social/users/manton"
      ],
      …
    }
    

    For debugging, I often use curl on the command line to poke around at people’s accounts. To see my full ActivityPub JSON, use something like this with the “actor” URL returned from WebFinger:

    curl -L -H "Accept: application/activity+json" https://manton.org/activitypub/manton
    

    The next step is to sign into the old Mastodon instance and tell it to move to Micro.blog. Mastodon will take a few actions when this starts:

    • It will verify that there’s an alias on Micro.blog, confirming that both accounts are yours.
    • It will lock your Mastodon account, updating the profile to tell people about the new Mastodon instance. (In my case, actually powered by Micro.blog.)
    • It will send a “Move” activity to all the instances for all your followers, telling them to update their references to point to your new username.

    The “Move” activity is sent to each follower’s inbox just like other activities such as “Create”. It includes a field target for the new instance that the user is moving to:

    {
      "actor": "https://mastodon.social/users/manton",
      "target": "https://manton.org/activitypub/manton",
      …
    }
    

    Mastodon won’t add alsoKnownAs to your ActivityPub profile on the old instance, but instead it will add a similar field named movedTo with the new actor URL:

    {
      "preferredUsername": "manton",
      "name": "Manton Reece",
      "movedTo": "https://manton.org/activitypub/manton",
      …
    }
    

    Updating your followers can take quite a while. Likely hours and possibly over a day, if you have hundreds or thousands of followers. It makes sense that this is a very low priority background task. You can watch the progress as Mastodon essentially decrements your follower count on the old instance.

    Here’s what Mastodon now looks like for my account, to tell people that I’ve moved:

    Screenshot of Mastodon.social with moved account.

    This is a fairly new feature in Mastodon, and I expect we’ll need to keep refining our support for it as there is more real-world usage. If you’re using Micro.blog, also remember that Micro.blog is not Mastodon. You can follow and reply to anyone on Mastodon, but you can’t use Mastodon-only clients like the upcoming Ivory from Tapbots.

    What about moving in the opposite direction, away from Micro.blog to Mastodon? We’ll be adding that later. ActivityPub is only currently enabled for new Micro.blog users, or if you’ve manually enabled it, so I want to wait until we’ve enabled it for all users. Otherwise there will be no way to move Micro.blog-only followers.

    → 10:19 AM, Dec 2
  • Micro.blog has a mini Goodreads-like feature built in. Why not! I love books and this helps me blog about what I’m reading. The bookshelves account page is one of my favorite things.

    Screenshot of Micro.blog bookshelves page.
    → 11:14 AM, Nov 30
  • Great to see all the posts from folks participating in Microblogvember. I’ve added a new pin for the challenge. It should be redeemed on your Micro.blog account within the next couple days if you used at least 2/3 of the words this month.

    Screenshot of pin with leaves in Micro.blog.
    → 8:48 AM, Nov 30
  • Closed.

    Construction sign along a path at a rest stop on I-10 in east Texas.
    → 11:37 AM, Nov 27
  • Another photo from our quick coffee stop in Opelousas. Old federal building, unused now, built in 1891.

    → 8:14 PM, Nov 26
  • Java Square Cafe, in the building for an old bank in Opelousas, LA. ☕️

    → 5:33 PM, Nov 26
  • Another random railroad, driving over on a misty day in Louisiana. 🚂

    → 4:26 PM, Nov 25
  • Pre-turkey Ticket to Ride. 🦃

    → 3:15 PM, Nov 24
  • On the road today. Louisiana rest stop. 🐊

    → 3:35 PM, Nov 23
  • Old mailboxes on Burnet Road.

    Old rusty mailboxes on the side of the road.
    → 8:53 AM, Nov 22
  • Love the owl who moved into a tree in our backyard. @traci set up a tripod and moved the Nest camera, so expect more owl photos and maybe video if we can catch him in his evening routine.

    → 2:33 PM, Nov 20
  • An appropriately cold day in Austin. Coffee and server troubleshooting while the rain falls outside. ☕️

    → 1:34 PM, Nov 19
  • 2 weeks on the road

    Last month I flew out to Portland and rented a van from Escape Campervans. The trip started because of meetings but it kept getting extended as I tacked on more places to visit. I posted some photos while I was on the road, which I’ll link again below, but I wanted to summarize a few thoughts now that the trip is over and I’m back in Austin.

    It was a fantastic experience. I figured at the end of it, I’d either be completely burned out on the van lifestyle or ready to stay on the road. I’m glad to be home, but not burned out.

    My daughter and son joined me for a few days at the beginning and end of the trip, too. It was great to share part of the experience with them and helped avoid loneliness while so long away.

    Here are the main camping locations from the trip:

    • Ainsworth State Park, Oregon. Literally the last night the camp was open before winter. Had the Multnomah Falls basically to myself because it was cold and rainy and kind of a miserable early morning outside.
    • Fort Stevens State Park, Oregon. Loved exploring around Astoria. Planning to be back.
    • Cape Lookout State Park, Oregon. Rained all night. Not good beach weather, but a good stop while heading down the coast.
    • Umpqua Lighthouse State Park, Oregon. Still want to eventually visit all lighthouses on the west coast.
    • Prairie Creek Redwoods State Park, California. Beautiful trees, so much to see in nearby parks. Driving through Avenue of the Giants was a highlight.
    • Salt Point State Park, California. Beautiful rocky views of the ocean after the twisting turns of Highway 1.
    • Courtyard at Fisherman’s Wharf, California. A hotel! Ditched the van in a parking lot for a day to explore the city. Felt luxurious.
    • New Brighton Beach, California. Outside Santa Cruz, stayed here 3 nights. 10 minutes to nice coffee shops to catch up on work.
    • Terminal 4, California. Interesting campground on the water, north of the Richmond Bridge. Abandoned buildings everywhere, felt like a post-apocalyptic drive to a view of San Francisco.
    • Marriott at Union Square, California. Splurged on a hotel again for the final night. Saw Bono’s show at the Orpheum Theatre.

    Stopped at many other parks, coffee shops, bookstores, and beaches along the way. I’m going to publish my check-in history later.

    The timing wasn’t ideal because it felt like Twitter was imploding as I was on the road. There was a lot of new interest in Micro.blog. I worked a little every day, but some days not enough. Even so, having the flexibility to just pull over into a park and use my laptop on the table inside the van from anywhere was pretty great.

    I can’t overstate how different it is to have a van to eat and work and sleep in compared to tent camping. It rained for a significant part of the trip, pretty much every day in Oregon, but it never ruined anything.

    Waterfalls. Oregon somewhere. Oregon beach. Mickey Mouse. Oregon cliffs. The van. Gardens sign. Oregon rocks. Redwoods. More beaches. More ocean. Coffee shop. Lighthouse. Sunset. Jungle Book. Orpheum Theatre. BART.

    Feel very lucky to have been able to take this trip. I learned a lot of what to do and not do. Wasted some money on food I could never finish using. Spent a fortune on gas. Nervously navigated cities in a van larger than what I’m used to driving.

    But the good days made it so worth it, and even with occasional extra stress of last-minute planning I felt that time slowed down… Awake with the sun, coffee and work, beautiful vistas, some driving, cooking dinner, popping open a can of wine, then reading and bed when it got dark. It was very freeing. I don’t think it was a midlife crisis, but I did feel a few years younger, reminding me of backpacking in Europe ages ago. After some months back at home, pretty sure I’ll be ready to get back out there.

    → 3:18 PM, Nov 15
  • On the BART for a while.

    → 5:01 PM, Nov 13
  • Not Frozen, although I’d like to see that too one day… Bono: Stories of Surrender. Incredible show. Couldn’t think of a better way to wrap up a couple weeks on the road.

    Outside the Orpheum Theatre in San Francisco.
    → 1:11 AM, Nov 13
  • One of my favorite places in the world: the Walt Disney Family Museum. Checked out the Jungle Book special exhibit, organized in large part from Andreas Deja’s collection. These are 4 animation drawings by Frank Thomas.

    4 drawings by Frank Thomas from Jungle Book.
    → 3:29 PM, Nov 12
  • Kind of a bizarre camp location tonight, had my doubts as we were approaching on the road past shuttered houses and buildings from another era, but the view at sunset was worth it. Terminal 4 at Point San Pablo.

    → 9:16 PM, Nov 11
  • Walton Lighthouse.

    → 2:42 PM, Nov 10
  • Coffee and overnight oats at Cat & Cloud. Great start to the workday. ☕️

    → 12:08 PM, Nov 10
  • New Brighton State Beach. Wi-fi at the park, 10 minutes to Verve Coffee… I may never leave.

    → 7:08 PM, Nov 8
  • A few days ago at Salt Point. After camping, detoured into San Francisco for a day of being a city tourist with reliable wi-fi.

    Pacific ocean and rocks at Salt Point State Park.
    → 1:07 PM, Nov 8
  • Avenue of the Giants.

    → 8:30 PM, Nov 6
  • Somewhere along the Oregon coast yesterday.

    → 11:20 AM, Nov 6
  • ⬆️ Garden House, at Shore Acres State Park.

    Path leading to the gardens with sign
    → 3:06 PM, Nov 5
  • The van at Umpqua Lighthouse State Park.

    → 12:43 PM, Nov 5
  • Devils Churn.

    → 7:01 PM, Nov 4
  • My traveling buddy for this road trip.

    → 10:06 AM, Nov 4
  • Found the ocean. Fort Stephens State Park.

    → 7:04 PM, Nov 2
  • Figured there be some kind of view between Portland and the coast. Stopped about halfway, a nice break in the rain.

    → 10:14 PM, Nov 1
  • Multnomah Falls early this morning. A little cold and wet outside, had the place mostly to myself.

    Waterfall in Oregon.
    → 3:08 PM, Nov 1
  • Voted. 🇺🇸

    → 4:49 PM, Oct 26
  • End of the line in Galveston. 🚂

    Train tracks.
    → 12:19 PM, Oct 24
  • Do not cross the red line. 🛳️

    Dock at Puerto Costa Maya / Mahahual, Mexico.
    → 3:04 PM, Oct 21
  • Good morning from somewhere in the Gulf of Mexico. 🛳

    Photo of the sunrise from our cruise ship balcony
    → 7:19 AM, Oct 20
  • Out of the house this morning for errands, a break for a little while at Epoch Coffee on Anderson Lane. A Day in the Life in Austin, 8:15am. ☕️

    Photo outside at Epoch Coffee
    → 7:26 AM, Oct 14
  • Some of the Micro.blog pins are special and only appear when they’ve been unlocked. Here’s what the new pin will look like if you participate in A Day in the Life 2022:

    Screenshot of A Day in the Life pin
    → 9:51 AM, Oct 13
  • From this morning, coffee at Stinson’s. Looking at this photo, the text almost looks like a digital overlay. But no, the obnoxious TM is there in real life. ☕️

    → 2:33 PM, Oct 11
  • These are really good.

    Hatch chile and sweet lime sandwich cookies.
    → 6:05 PM, Oct 5
  • Hello there. Looking right at ya. 🦌

    → 2:07 PM, Oct 5
  • My book is about 70 short chapters, and to keep track of editing I made a spreadsheet long ago with notes and color-coding: red for chapters that needed a lot of work, orange for small tweaks, and green for ready to go. Going to do another editing pass and call it done.

    Screenshot of book progress spreadsheet
    → 9:45 AM, Oct 3
  • Skylight.

    → 5:57 PM, Oct 1
  • Attaching multiple photos in M.b

    Today we’re rolling out better support for attaching multiple photos to a post in Micro.blog on the web. The native apps have been able upload to multiple photos with a post for years, so it’s a little embarrassing that it has taken so long to get the web version updated too.

    If you click on an attached photo, you will also see new options for removing the photo or setting a description for the photo, which is included in the HTML’s alt tag.

    Screenshot of attaching multiple photos

    Attached photos are added at the end of a post. We think this streamlined approach to the UI is the best default for most people. If you want to mix the photos in between paragraphs of text, you can continue to use the “Copy HTML” button on the Uploads page and paste the img tag into your post. Our companion iOS app Sunlit also has more control over post layouts.

    Note that these improvements do not change how photo posts are displayed in the Micro.blog timeline. Short posts with a single photo or a few photos are shown inline, and longer posts are truncated with a link back to your blog.

    Enjoy! Happy photo-blogging.

    → 7:34 AM, Sep 29
  • New feature! When adding feeds, you can now set posts to import to a blog instead of just showing up in the Micro.blog timeline. Great for keeping everything in one place or syncing between multiple blogs. Deserves a longer write-up, but for now here’s a screenshot.

    → 10:33 AM, Sep 27
  • Introducing Meridian

    Over the summer, Jon Hays and I started working on a new project to build a places database that can power location check-in apps. It’s based on OpenStreetMap, but focused just on places. We call it Meridian, and it has the amazing domain name latl.ong.

    For years I’ve been using Foursquare to check into places like coffee shops, restaurants, and landmarks. I love having a record of places while traveling, and I’ve published many of them to a special blog. I just don’t like depending on a single company for this data.

    Meridian is open source and separate from Micro.blog, but it will form the foundation for location check-in features in our apps like Sunlit and Micro.blog. You can see a little of what we have planned for Sunlit in these screenshots:

    Why build something new like this? There seemed to be a missing platform for small location apps. Foursquare is increasingly interested in business customers. Google is full of ads. OpenStreetMap is a great start, but also has quite a learning curve. If all you want is nearby places, it’s too much work to bring along all the overhead of a full mapping API.

    The architecture of Meridian will allow other platforms like Micro.blog to host their own copy of the data, feeding back into Meridian and OpenStreetMap. The goal is to design something as distributed as possible, where multiple people using different apps can add new places to grow the database, while still having an API that is simple to use. We’ll iterate on it slowly but there are already some pieces in place to start experimenting with. Should be fun!

    → 8:48 AM, Sep 26
  • Over the weekend we made a bunch of little refinements to Micro.blog on the web. Here’s a screenshot of the Bookshelves page which now has recent book covers.

    → 7:08 AM, Sep 26
  • MetroRail near the MLK station a couple days ago.

    → 8:31 AM, Sep 25
  • Sunset at UT.

    → 6:18 PM, Sep 23
  • Houndstooth on MLK. ☕️

    → 7:26 AM, Sep 23
  • Waterloo Park with the capitol mirrored in windows.

    → 4:06 PM, Sep 22
  • A couple nights ago at Kelly Reeves.

    → 6:45 PM, Sep 19
  • Mueller Lake Park. I like the reflection of the clouds in the water.

    → 9:00 AM, Sep 17
  • After working at a coffee shop downtown, took a break to read by the trail. Finished reading: Mr. Penumbra’s 24-Hour Bookstore by Robin Sloan. Loved everything about this book. 📚

    → 10:43 AM, Sep 13
  • Early beta of Micro.blog 3.0 for iOS

    Today we’re excited to announce an early preview of Micro.blog 3.0 for iOS. We are rebuilding the app to move closer to feature parity across iOS and Android. We’re updating the user interface based on years of feedback, adding a tab bar and cleaning up some screens in the app.

    Screenshot of timeline Screenshot of discover
    Screenshot of menu Screenshot of post editor

    This is a major update, and it will take time to get right. The first 3.0 beta is missing several features from the current 2.3 release for iOS. Post editing, managing uploads, creating pages, external blog posting, and more will follow in later betas. There also is no special iPad split view yet. If you want to try 3.0, we’d love to hear what you think, but note that it may be months before the beta catches up with the current shipping iOS release.

    You can join the new TestFlight beta here. You can’t have both versions installed at once. If you want to go back to the 2.3 release, just download it again from the App Store.

    → 8:51 AM, Sep 13
  • The Killers at Moody Center.

    → 10:29 PM, Sep 9
  • Train tracks at east 6th.

    → 6:37 PM, Sep 8
  • Austin from the other side of Longhorn Dam.

    → 11:39 AM, Sep 2
  • We’ve been playing Root more. It took about 4 play-throughs and watching multiple how-to videos to finally get the rules right. Great game. 🎲

    → 9:12 AM, Sep 2
  • Our app Epilogue is the little happy place I go when I need to work on something fun and simple. But it’s not wasted procrastination time… It also contributes back to the larger goal of encouraging posting to your own blog. Sneak peek at next version.

    Screenshot of Epilogue goals tab
    → 7:23 AM, Aug 30
  • New game, Root. One of the most complicated board games to get started with because every player’s rules are different, but like it now we’ve figured out the basics. Really nice design. 🎲

    → 9:02 PM, Aug 28
  • Deer out exploring after last night’s rain. The grass is starting to look green again.

    → 4:13 PM, Aug 28
  • DART tracks at DFW.

    → 2:06 PM, Aug 24
  • The icon for our app Epilogue has bugged me since I whipped it together for version 1.0. I should probably get a real designer to make a new one, but I spent a little time this week coming up with a new one that I like. Old on left, new on right. Goodreads-inspired colors.

    Epilogue icons
    → 7:39 AM, Aug 24
  • Lunch at Fort Brewery in Fort Worth. 🍺

    → 12:34 PM, Aug 21
  • Raining over downtown Austin, from Mopac.

    → 2:50 PM, Aug 18
  • St. Peter’s in Bordelonville, LA.

    → 12:35 PM, Aug 17
  • Gas is really expensive in California. But at least we got this cool total. 12345!

    → 9:21 AM, Aug 14
  • Great few days in San Diego, then drove up for a quick 24 hours at Disneyland. Dinner last night at Lamplight Lounge in California Adventure, watching World of Color.

    → 6:35 PM, Aug 13
  • Deployed a server tweak that may improve some of the flakiness today. Now back to vacation mode with a beer and my book, looking out at San Diego.

    → 5:02 PM, Aug 11
  • Torrey Pines State Natural Reserve.

    → 5:56 PM, Aug 10
  • Love the glasses at James Coffee Co. ☕️

    → 9:46 AM, Aug 10
  • San Diego model train museum. So many landscapes. Some really nice bridges and little details everywhere.

    → 7:09 PM, Aug 9
  • Landing in San Diego.

    → 2:10 PM, Aug 9
  • Stopped in Corsicana for a coffee and world-famous fruitcake to go. I don’t even love fruitcake, but I’m fascinated with the Collin Street Bakery history. Next up need to watch the Fruitcake Fraud documentary. ☕️

    → 3:52 PM, Aug 6
  • We released a new beta of Epilogue for iOS. You can now tap and hold on a book cover in Discover to quickly add it to one of your bookshelves.

    Screenshot of context menu in Epilogue
    → 1:42 PM, Aug 1
  • We’ve continued to tweak the new profile popup so that it’s more usable. Faster, smaller, and off to the side a little now. Pretty happy with this version! Here’s a screenshot to capture the progress.

    Screenshot of profile popup.
    → 8:27 AM, Jul 29
  • Wrapping up another quick trip to Denton. Breakfast earlier at Avoca Coffee. ☕️

    → 11:50 AM, Jul 28
  • Finished reading: My Neighbor Totoro by Tsugiko Kubo. A short book, for kids or Miyazaki fans. Adds more details and scenes than the movie. Wonderful. 📚

    → 3:59 PM, Jul 23
  • New t-shirt.

    → 7:43 AM, Jul 23
  • We like huge flags in Texas.

    → 7:57 AM, Jul 22
  • Chuy’s patio. 🍸

    → 9:27 PM, Jul 20
  • Out walking yesterday. Can’t remember if this was before, during, or after it was too hot.

    → 4:49 PM, Jul 18
  • Running out of room on my laptop for big stickers, so I cut this Gowalla sticker to fit on the corner.

    → 11:15 AM, Jul 16
  • First time back to Red Horn in a year. ☕️

    → 10:44 AM, Jul 12
  • Old ranch right next to a brand new office building. This guy’s probably wondering why his space is being encroached on.

    → 9:36 AM, Jul 12
  • Wind turbine blades going up I-35.

    → 5:31 PM, Jul 9
  • A cute Little Free Library at the Blue Bell factory in Brenham from a couple weeks ago.

    → 8:45 AM, Jul 8
  • First time at Cosmic Coffee, in south Austin after selling a car at Carvana. Great outdoor space. ☕️

    → 8:25 AM, Jul 6
  • Helping @cheesemaker test early game builds on Playdate. First crash. So fun to see games come to life on this little device.

    → 9:34 AM, Jul 3
  • Brenham courthouse from yesterday’s short road trip. Built in 1939. Would be fun to visit all 254 county courthouses in Texas.

    → 9:02 AM, Jun 26
  • Crossing the Brazos River where San Felipe de Austin was located in the 1820s, part of Stephen F. Austin’s colony.

    → 2:22 PM, Jun 25
  • Micro.blog plug-ins can have a settings screen to change config parameters. I’ve added a new field type “color” that I’m hoping will be useful to customize the design of more themes. Modern web browsers provide a color picker for these. (Example config for this screenshot.)

    Color config screenshot
    → 3:45 PM, Jun 24
  • Tokaido at Vigilante Gastropub & Games.

    → 8:38 PM, Jun 23
  • You may have noticed that we added a new status bubble to Micro.blog on the web. Makes it easier to tell if Micro.blog is still working on publishing your blog post when it takes more than a few seconds. It also links to your log so you can jump to recent progress messages.

    Screenshot of publishing progress
    → 8:30 AM, Jun 22
  • Got a hardcover of The Lies of Locke Lamora, which I had only read in e-book before. Want to re-read it after I get through some more of my current reading list. 📚

    → 11:44 AM, Jun 19
  • Coffee shop photos template

    I take a lot of photos at coffee shops. For some reason this morning I thought it would be fun to create a page on my blog that just shows coffee photos. I already use Micro.blog filters so that whenever I include the ☕️ emoji in a microblog post, it assigns the Coffee category:

    Coffee filter screenshot

    The next step was to create a template layouts/_default/coffee.html in my custom theme that would pull posts from this category. It grabs the latest 100 posts, then also checks if the post has a photo (“photos not equal nil”):

    Finally, I created a template content/coffee-photos.md to tell Micro.blog to use that template when creating the web page:

    Voilà! Looks pretty good.

    → 9:24 AM, Jun 18
  • Playdate has arrived! 🕹

    → 1:37 PM, Jun 17
  • West Oak Coffee Bar from over the weekend in Denton. ☕️

    → 10:03 AM, Jun 15
  • UNT campus.

    → 2:58 PM, Jun 13
  • Murals outside Aura Coffee. Protect kids not guns. ☕️

    → 1:48 PM, Jun 12
  • “If you love books enough, books will love you back.” — Jo Walton

    → 8:51 AM, Jun 12
  • d20 Tavern in Denton. Such a great idea. Tons of games and 20 beers on tap, so you can roll a d20 to randomly select a beer. We played the NYC Ticket to Ride. (My daughter also wrote an article about the place for the Denton Record-Chronicle!)

    Photo of glass of beer and board game
    → 9:54 PM, Jun 11
  • Micro.blog will now keep track of previous versions of a blog post when it’s saved. It will keep these extra copies for 60 days. It’s designed as a simple, short-term backup in case something is edited or deleted that needs to be restored. Here’s a screenshot of the new link:

    Screenshot of Micro.blog versions links
    → 8:39 AM, Jun 9
  • I’ve added a special Micro.blog pin if you mention “WWDC” in a microblog post today. Screenshot of a few of my pins… You can view these under the Account screen.

    Screenshot of Micro.blog pins
    → 9:22 AM, Jun 6
  • Lunch yesterday. I usually keep a mask in my pocket wherever I go, but forgot it for some reason and so dug in my backpack and found this old Mickey cloth mask from early in the pandemic.

    → 8:27 AM, Jun 3
  • For the last couple weekends we’ve been updating our bathrooms. New cabinets, sink, mirrors. Our house was filling up with old paint cans and cardboard, so loaded it up to take to the recycle center today. Could’ve flattened these a little better.

    → 12:51 PM, Jun 2
  • Micro.blog 2.5 for Mac with replies, bookshelves

    We shipped version 2.5 of Micro.blog for macOS today. I had originally intended to just add a new Replies section of the app for this version, but it looked kind of lonely by itself, so I added Bookshelves too, with a multi-window interface for managing books you want to read or blog about. This uses our existing JSON Feed-based API for books data.

    Here’s a screenshot of my bookshelves:

    Screenshot of book windows in Micro.blog for Mac

    You can download the latest version from the help page or choose “Check for Updates” from within the app.

    If you’re puzzled by why Micro.blog has all these book-related features… We have a lot of members of our community who love to read and write. If it’s easier to blog about books you’re reading, we can eventually build a distributed, web-scale alternative to Amazon-owned Goodreads. This won’t happen overnight. It’s a years-long goal and just one of many facets of the IndieWeb that we’re interested in.

    Books are also great for mental health and thoughtful commentary, broadening our understanding of other perspectives, which maybe the world could use right now.

    → 8:41 AM, May 31
  • Trying to get back into the photo challenge after missing a bunch of days. Today’s word is beverage. Stopped at a food truck for brisket tacos and much-needed bottled water on a hot day.

    → 12:21 PM, May 20
  • Bike and outliners with M.b

    Blogging and outlining share a long history together. Userland’s Clay Basket could create a full static site from an outline. NetNewsWire 1.0 had a built-in outliner for notes and blog publishing that would later be spun out as MarsEdit.

    Recently there have been new outliners that work with Micro.blog. I blogged about publishing to Micro.blog via Dave Winer’s Drummer. Maurice Parker wrote about his Zavala outliner and integrating it with Micro.blog via Shortcuts.

    Bike is a new Mac outliner from Jesse Grosjean of Hog Bay Software. It has a clean interface that feels closer to a text editor than most outliners, and it can save as OPML and plain text. I’m also fascinated that the native .bike file format is just HTML.

    I wired up publishing from Bike to Micro.blog with Maurice’s Humboldt that provides Shortcuts for Micro.blog. It looks like Bike has great AppleScript support. You can iterate over the rows in an outline, or you can just grab the contents as HTML like this:

    tell application "Bike"
    	set doc to front document
    	export doc as bike format
    end tell
    

    Note that the export command requires a paid Bike license.

    Screenshot of Shortcuts

    You can download my test shortcut here. It’s a little hacky. It strips out the HTML header/footer with a simple find-and-replace in Shortcuts. It will need a little more work if you want to clean up the outline and publish real blog posts with it.

    → 10:38 AM, May 19
  • Try hard. ☕️

    → 10:32 AM, May 19
  • Avoca Coffee in Denton. ☕️

    → 8:51 AM, May 15
  • Good morning! Busy day but first a little work and coffee. ☕️

    → 7:16 AM, May 10
  • Driving through our old neighborhood, a lot has changed in the 20 years since we lived there, but the little grocery store and deli remain.

    → 4:04 PM, May 9
  • Not a silhouette, but the only photo I took today that reminds me of one. Kind of the opposite.

    → 10:36 PM, May 6
  • Herbs and flowers in the earth, for day 5 of the photo challenge. Happy Cinco de Mayo! This is from lunch on the patio at Mi Madre’s.

    → 12:44 PM, May 5
  • Day 3 of the photo challenge is experimental… Didn’t have a good idea for the photo until I was reading (Wise Man’s Fear) and noticed “experiment” on the page. 📚

    → 8:30 PM, May 3
  • Photo challenge, day 2. I bought this camera last year thinking it would be worth it for the zoom, especially for school events like marching band. I don’t use it often but the photos are priceless.

    → 3:57 PM, May 2
  • Last month was difficult in ways I haven’t blogged about yet. Needed a break, so loaded up the kayak to take a little peaceful time on the water after working downtown this morning.

    → 10:42 AM, May 2
  • The photo challenge is underway! Day 1, switch.

    → 9:32 AM, May 1
  • Achievement unlocked? No idea where the key is to this old lock and the trick with leveraging the force of 2 wrenches together totally works to bust it open.

    → 2:15 PM, Apr 27
  • Email response time in Help Scout for the last couple of months. Average about 14 hours. Could be better but I feel good about this… Huge improvement compared to last year.

    → 10:46 AM, Apr 27
  • Morning everyone. Coffee and work outside at Cenote. ☕️

    → 10:08 AM, Apr 27
  • Lunch earlier at Torchy’s. Hadn’t been there in a while, nice to see some menu tweaks like fresh avocados instead of fried. 🌮

    → 4:47 PM, Apr 26
  • Walking around Barton Springs for the first time in a while. Kind of shocked to see Shady Grove closed and rundown.

    → 12:30 PM, Apr 24
  • Barton Creek.

    → 12:06 PM, Apr 24
  • Raining a little this morning. Coffee at Lazarus. ☕️

    → 7:30 AM, Apr 22
  • Bouldin Creek Cafe. ☕️

    → 7:43 AM, Apr 21
  • Needed to be in Georgetown for a band UIL concert this afternoon, so had a long lunch sitting outside at Hat Creek with my laptop. Nice spot above the San Gabriel River. 🍔

    → 1:49 PM, Apr 20
  • If you’re not on Micro.blog Premium, you might not know that Micro.blog has a read-later bookmark interface with highlights. Helps when blogging and quoting. I updated the Dark Mode interface for it today, switching to an orange-ish highlight instead of the murky yellow before.

    Screenshot of Micro.blog highlights
    → 1:15 PM, Apr 20
  • Micro.blog mobile and tablet redesign

    Today we launched a design update for the Micro.blog web interface. Vincent has been working on this with a focus on the mobile interface especially, and it looks great on the iPad as well.

    In the previous version, when viewing on mobile the sidebar would collapse and you’d get a hamburger menu that was clunky to use. Now, the most important menu items like Timeline, Mentions, and Discover will move to the header, with a new popover menu for accessing other features.

    You can see the new layout even on desktop by just resizing your window smaller. Here’s what the header looks like on tablet and at small desktop window sizes:

    Micro.blog on tablet screenshot

    And on the iPhone, with the new popup menu open:

    Micro.blog on iPhone screenshot

    We are very excited to roll this out. The iOS and Android apps will always be a great choice for posting or checking replies, but they can’t do everything the web version can do. The web version of Micro.blog is now much nicer to use everywhere.

    → 8:52 AM, Apr 19
  • Thunderbird Coffee. Kind of cold outside this morning. ☕️

    → 7:45 AM, Apr 19
  • Waterloo Park.

    → 12:55 PM, Apr 18
  • Can’t believe we’re already getting peaches on the new tree. Only planted it a few weeks ago and thought it might be years until it was big enough.

    → 4:55 PM, Apr 15
  • Walking through the capitol grounds after an appointment downtown this morning.

    → 9:10 AM, Apr 12
  • Spurs vs. Mavs, last game of the regular season. 🏀

    → 8:49 PM, Apr 10
  • Finished a bunch of work this morning, now taking some time to get into the 2nd book of The Kingkiller Chronicle. Already can tell I’m going to love it. 📚

    → 12:23 PM, Apr 9
  • Bluebonnets around the neighborhood.

    → 8:29 AM, Apr 4
  • I’ve been reading a lot of e-books and audiobooks, so wanted to pick up something new in print. Just arrived: The Girl Who Fell Beneath the Sea by Axie Oh. 📚

    Book cover
    → 2:00 PM, Mar 29
  • New Spurs mural on east 4th. Getting coffee around the corner at Wright Bros. ☕️

    → 7:26 AM, Mar 25
  • Bookmark improvements in Micro.blog

    Today we rolled out a few improvements to bookmarks, including an import from Instapaper and Pocket. This is meant to complement Micro.blog’s bookmark archiving, where Micro.blog archives a copy of a web page and allows making highlights in it. Like the archiving and highlights, the import feature is for Micro.blog Premium subscribers.

    Bookmark import button screenshot

    I’ve personally wanted to consolidate my bookmarks to Micro.blog, because I’ve had some things in Instapaper and some newer posts in Micro.blog. Micro.blog is not designed as a replacement for every feature in other read-later services, but instead a quick way to save links and either reference them later or start a new microblog post from a highlight.

    To learn more about bookmark archiving and highlights, check out the video in this post on the news blog from when we announced Micro.blog 2.0.

    I’ve also improved other aspects of bookmarks, like faster loading, paging through many hundreds or thousands of bookmarks, and better profile icons for domain names that are added to Micro.blog.

    → 8:54 AM, Mar 23
  • My mom found this notebook paper I had used when I was 13 years old to plan out the route to my friend Sam’s house, taking 3 buses across Austin. Why did I copyright this?! 🙂

    → 2:16 PM, Mar 16
  • A few photos from the McMenamins Kennedy School Hotel.

    → 5:44 PM, Mar 13
  • Speaking of cold, here’s another photo from Salt Lake City a few days ago. Cottonwood Canyon.

    → 10:41 AM, Mar 12
  • Jazz vs. Blazers. 🏀

    → 10:04 PM, Mar 9
  • Published the book draft this morning and then got on a flight to Utah, slight detour before Portland for Micro Camp. Beautiful here around Salt Lake City.

    → 6:21 PM, Mar 9
  • A walk through the University of North Texas yesterday.

    → 5:04 PM, Feb 28
  • Epilogue for iOS has been updated to version 1.2.1, with better accessibility support and a new book description when searching for books. Here’s a screenshot of the new text:

    Screenshot
    → 7:45 AM, Feb 24
  • Enjoying the switch to Help Scout. Fast, clean UI, and nice personality. Feels like software created by real people.

    → 8:34 AM, Feb 18
  • Getting some work done between errands today. Easy Tiger. ☕️

    → 4:25 PM, Feb 17
  • React Native diary #6: SF Symbols

    The goal in my experiments with React Native is to build an app that feels as native to iOS as possible. Early on I tried to use SF Symbols and couldn’t get it to work, so I dropped in some custom icons instead. But the more I used the new version of Epilogue on my iPhone, the more this compromise bugged me.

    I briefly considered exporting the symbols I need as SVGs or PNGs and using them in the app only on iOS, but that’s against Apple’s license. Not worth even the small risk. Sticking to real SF Symbols also ensures the icons match other apps if Apple redesigns them slightly in future versions of iOS.

    I revisited using SF Symbols today with the component birkir/react-native-sfsymbols. A default install shows a runtime error when attempting to load a symbol. Luckily there’s a work-around mentioned in one of the issues.

    I copied this file from the repo and saved it as SFSymbols.tsx. Then instead of importing from the Node module, I just import that file:

    import { SFSymbol } from "./SFSymbols";
    

    It works! Here’s a quick screenshot of my navigation bar now:

    SF Symbols in navbar sccreenshot
    → 12:44 PM, Feb 16
  • Worked downtown this morning from Lazarus, then walked around. I’m okay with the mix of new buildings and old on east 6th and 7th, but wonder if enough of old Austin was preserved. This place doesn’t look long for this world.

    → 3:50 PM, Feb 14
  • React Native diary #4: modals

    I’m continuing to plow ahead with the Epilogue rewrite. I’ve added a storage class to wrap AsyncStorage, making it easier to persist various bits of data. I’ve added searching for books using the Google Books API, largely copying JavaScript code from the previous version. The fetch() calls are the same between web browser-based JavaScript and React Native.

    Today I’m working on adding the posting screen. This shows a modal text view with some default blog post text for the current book, so you can quickly blog about what you’re reading:

    New post screenshot

    Just like the navigation controller, the modal uses React Navigation so that it looks and feels the same as any native iOS app. In the JSX, we add a group containing the new modal screen declaration:

    <NavigationContainer>
    	<Stack.Navigator>
    		<Stack.Group>
    			...
    		</Stack.Group>
    		<Stack.Group screenOptions={{ presentation: "modal" }}>
    			<Stack.Screen name="Post" component={PostScreen} />
    		</Stack.Group>
    	</Stack.Navigator>
    </NavigationContainer>
    

    For this version, I’m using a simple multi-line TextInput class. This appears to use a real UITextView under-the-hood.

    One thing I’d like to experiment with later is integrating the Markdown syntax highlighting Objective-C code from the current Micro.blog app, making it a component that we could use in multiple apps. It obviously wouldn’t work on Android, but we’ll need something like it when we’re ready to switch the official Micro.blog iOS app over to React Native.

    → 1:45 PM, Feb 14
  • React Native diary #3: dark mode

    Even though Epilogue 1.0 was simple, it did support Dark Mode on iOS. I always run my phone in Dark Mode, so I didn’t want to lose that when rewriting Epilogue in React Native.

    There are a handful of helper utilities to access iOS-only features in React Native, like Platform.isPad . There’s also useColorScheme, which can be used to check if we’re running in Dark Mode:

    const is_dark = (useColorScheme() == "dark");
    

    There doesn’t appear to be built-in support in React Native to use different sets of styles automatically. There are, however, at least a few third-party libraries to make this easier, including various dynamic stylesheets and React Navigation’s themes. I started to go down that rabbit hole, then stopped… There’s a lot to learn and I’d rather adopt a quick “worse is better” approach to first get a feel for how painful it is to style my views manually.

    I have a Styles.js source file that looks like this, controlling layout and colors for UI elements in Epilogue:

    import { StyleSheet } from "react-native";
    
    export default StyleSheet.create({
      bookTitle: {
        marginTop: 8,
        paddingLeft: 7
      },
      bookAuthor: {
        paddingTop: 4,
        paddingLeft: 7,
        color: "#777777"
      },
      ...
    }
    

    To use this style in JSX, I have something like this:

    <Text style={styles.bookAuthor}>Neil Gaiman</Text>
    

    To support Dark Mode, I’ve added a special “dark” field to the styles object. This will only have style properties that I want to override from the default light mode. In the case of bookAuthor, there’s no need to change the padding, just the text color:

    bookAuthor: {
      paddingTop: 4,
      paddingLeft: 7,
      color: "#777777"
    },
    dark: {
      bookAuthor: {
        color: "#FFFFFF"
      }
    }
    

    Back to the JSX, I check my is_dark variable and then reference a different set of styles. JSX lets me pass an array of styles, so we’ll include both the light mode version (styles.bookAuthor) and then the dark value (styles.dark.bookAuthor) that will override the color:

    <Text style={is_dark ? [ styles.bookAuthor, styles.dark.bookAuthor ] : styles.bookAuthor}>Neil Gaiman</Text>
    

    Here are a couple screenshots showing each mode side by side:

    Epilogue light screenshot Epilogue dark screenshot

    The JSX code is admittedly a little clunky. I can see how it could be cleaned up and more readable with other solutions. But the app only has a few screens, so I’m going to run with this for now.

    → 2:26 PM, Feb 13
  • Micro.blog 2.3 for iOS

    Micro.blog 2.3 is now available in the App Store, including these changes:

    • Added syntax highlighting for HTML when creating or editing posts.
    • Fixed compatibility with some Micropub servers.

    We’ve supported color highlighting in Markdown for a while, and now this release adds HTML too. I’ve found this most helpful when editing a blog post that includes images, where the img tag was probably added by Micro.blog:

    Micro.blog iOS screenshot

    I also fixed a bug with Micropub servers, no longer requiring the me parameter from some IndieAuth API calls. There has been some related housekeeping of the IndieAuth spec recently, and I want to make sure Micro.blog can post to as many non-Micro.blog servers as possible.

    → 8:16 AM, Feb 7
  • Nice to make a fire because we want to rather than because we have to like last year’s winter storm.

    → 7:31 PM, Feb 5
  • Added plug-in search to Micro.blog and a filter for only showing themes, now that we are starting to get so many plug-ins. Planning to add categories or tags later for more filtering.

    Plug-in search screenshot
    → 9:35 AM, Feb 5
  • Looking pretty good with screenshots in the Micro.blog plug-ins directory.

    → 1:09 PM, Jan 24
  • I updated Micro.blog for macOS today with a bug fix and new right-click context menu for hosted blog posts. Part of making the app a little more Mac-like.

    → 10:22 AM, Jan 17
  • Cold morning in downtown Dallas, walking from the hotel to get coffee and I passed this, on the birthday of Martin Luther King Jr.

    → 10:03 AM, Jan 16
  • Introducing Micro.blog for Android

    Today we’re releasing the first public beta of Micro.blog for Android. You can download it here on Google Play.

    Android timeline screenshot Android Discover screenshot Android profile screenshot

    Vincent Ritter led the development on this and there’s a ton in it for a first beta. Some of the features in this initial version:

    • Timeline, Mentions, Bookmarks, and Discover.
    • Creating new posts and replying.
    • Uploading photos.
    • Viewing conversations.
    • Emoji picker in Discover.
    • Multiple blogs and multiple Micro.blog accounts.
    • Choose categories when posting.
    • Viewing profiles and following new users.

    We have a few more things to wrap up before we officially call it 1.0. For example, push notifications will make the final release but they aren’t in this beta. There will be bug fixes, UI tweaks, and other improvements based on feedback.

    Enjoy! Let us know what you think.

    → 12:38 PM, Jan 14
  • Testing a bug fix update to today’s Micro.blog for Mac update, and I also squeezed in a change I’ve been wanting to add for a while: HTML highlighting. We’ve had Markdown highlighting, but I really love this for img references. It’ll ship tomorrow.

    Micro.blog screenshot
    → 8:40 PM, Jan 10
  • Micro.blog 2.4 for macOS

    Today we released an update to the Mac app that adds a preview window. This is handy for longer posts with lots of Markdown or HTML, so you can check what they will look like when published.

    Preview screenshot

    I decided to make this a floating window that previews whatever post window happens to be open. You can move it off to the side of your screen and then quickly show or hide it with the keyboard shortcut whenever you need it.

    Full changes:

    • Added View menu → Preview when writing a blog post. The preview floats over other windows and will show you what the current Markdown or HTML will look like.
    • Fixed posts list not updating when saving a new draft.
    • Fixed post button for drafts to show that the draft will be published. Use File → Save to keep saving as a draft on Micro.blog.

    As always, the download link is on the help site, or choose “Check for Updates” if you’re already running an older version.

    → 9:16 AM, Jan 10
  • Revisiting 43 Things

    A few weeks ago, something in a discussion prompted me to look up the site 43 Things, which I used in 2005 to keep track of big things I wanted to do. The site is long gone, but a lot of it is preserved in the Internet Archive. I took a screenshot of the 10 things I had on my list back then:

    43 Things screenshot

    The site was peak Web 2.0. Part personal to-do list, part community, part API. Something about the design was fun to use.

    Now that it has been 15+ years, I thought I’d revisit my list and see how I’m doing now, with some context from 2005:

    1. Finish my degree — I spent a year at UT Austin, but I was more interesting in working at tech companies than attending school. Later I went back to take classes at night. I always thought I’d eventually get my college degree. Seems unlikely at this point.
    2. Animate a short film — Might be something I’ll get back to one day. A couple years ago I dug up some drawings and posted them to my blog.
    3. Run a half marathon — Still haven’t done this. I’ve run a couple 5Ks.
    4. Watch a space shuttle launch — Sadly the space shuttle is gone. There are more rockets than ever, though, so this seems doable.
    5. Write a book — I consider this done.
    6. Drive across the USA — I’ve driven from Texas to the west coast and to the east coast. Never all the way across. Can’t see this one happening unless I actually live on one of the coasts.
    7. Learn Ruby — Done.
    8. Work on a political campaign — I’ve volunteered for a few campaigns to call voters and knock on doors. Seems good enough.
    9. Read 50 books in 2005 — I’m sure I didn’t ready that many books in 2005, but I could still do this for another year. Last year I read 33 books and this year my goal is 40.
    10. Live to see Halley’s Comet return in 2061 — The most difficult thing on this list. I would be 86.

    Daniel and I also discussed this list on Core Intuition 402 from 2020.

    → 3:19 PM, Jan 8
  • Moving to new Hugo

    There has been a lot of activity around Micro.blog plug-ins lately, inspiring me to improve the theme and plug-in system. Under the hood Micro.blog uses Hugo to process blog templates, and we’ve been running an ancient version of Hugo. Having such an old version has held back some plug-in features, so today I started the process of migrating to the latest version of Hugo.

    It’s a big jump, from version 0.54 released in 2019, to 0.91 released just a couple weeks ago. Some things are likely to break, so instead of updating everyone’s blog automatically and dealing with the fallout, we’re going to take it slow. The new version of Hugo is opt-in for now, under the Design screen:

    Screenshot of Hugo popup

    Each blog on your account can use a different version, making it convenient to run Hugo 0.91 with a test blog while keeping your main blog as-is.

    I don’t recommend updating unless you are working on a theme or plug-in that needs a specific feature from newer versions of Hugo. I’m testing all the built-in themes with the new Hugo and will keep updating them with tweaks until we’re happy that everything is running smoothly.

    If you do try Hugo 0.91, I’ve already updated the Default and Marfa plug-ins — as well as some built-in Micro.blog templates — to work with the new version. You can install the latest versions of the plug-ins for those themes to get the latest versions, instead of waiting for Micro.blog to update.

    The most common problem I noticed was using .Data.Pages. That’s a quick fix to use .Site.Pages instead so that it’s compatible with both versions.

    I’ve also fixed some HTML escaping issues this week. Micro.blog is now smarter about not escaping special characters like “<” and “{{” when inside a code block.

    → 4:05 PM, Jan 7
  • Train bridge and more wind turbines, halfway between Lubbock and Abilene.

    → 2:17 PM, Jan 1
  • New year, new coffee. Stopped at Palace Coffee in Canyon, Texas. Cool old building from 1906. ☕️

    Palace Coffee photo
    → 11:13 AM, Jan 1
  • Lighthouse trail at Palo Duro Canyon.

    → 3:14 PM, Dec 31
  • Wind turbines outside of Sweetwater, Texas. Hundreds of them in all directions.

    → 12:48 PM, Dec 30
  • Old oak trees at Merit Coffee on South Lamar. The house also has a historical marker — built around 1900 by sisters who were teachers and then real estate developers. ☕️

    → 3:18 PM, Dec 28
  • Importing blog archive files

    It was way back around IndieWebCamp Austin 2017 that I proposed a new archive format for blogs. These .bar files are essentially ZIP files that contain HTML with Microformats, JSON Feed with original Markdown or HTML, and uploaded photos. The nice thing about this format is that you can unzip them and preview your entire site in any web browser, and it contains all the related photos and other files.

    I’ve been working on improving support for Blog Archive in Micro.blog. Version 2.3 of the Mac app can now import .bar files with a nice preview window and progress. It can import into Micro.blog or external Micropub and WordPress blogs.

    Screenshot of .bar window

    When the Mac app uploads photos for your blog from the archive, it rewrites img tags in your HTML to use the new URLs, so it’s a good way to migrate a blog with no or minimal cleanup needed afterwards.

    Tools that want to process these files can choose between parsing the Microformats or JSON Feed version of the blog. IndieWeb-friendly tools may find it easier to work with Microformats, and new apps can use any JSON parser.

    When generating a .bar file, I recommend having plain HTML in index.html with common Microformats like h-feed, h-entry, u-url, dt-published, and e-content. In the JSON Feed, you can use content_text for the source Markdown or HTML if you have it, and then HTML in content_html. Micro.blog will prefer content_text if it’s there.

    For an example to test with, check out this file: example.bar. This contains a few posts and screenshots from our Epilogue blog.

    I really hope this format catches on. The files can be big, but they give you a single file that you can backup anywhere.

    → 12:28 PM, Dec 27
  • Trail of Lights at Zilker was cars-only again this year, but still fun. I bet it’ll be back to normal next year. 🎄

    → 7:29 PM, Dec 23
  • Micro.blog 2.2 for macOS

    I’ve updated the Mac app with some improvements around drafts and scheduling posts. There’s a new File → “Schedule Post” menu command to tell Micro.blog to publish a post at a date in the future.

    Mac schedule

    This update includes a handful of other fixes and minor changes too. See the help page for the download link and full release notes. Or choose “Check for Updates” in the current app.

    → 8:40 AM, Dec 14
  • An old part of Hancock Center. Wonder what’ll happen to this.

    → 4:47 PM, Dec 13
  • Christmas tree and stained glass at Lazarus Brewing. Coffee and work on the macOS app this morning. ☕️

    → 1:19 PM, Dec 13
  • Introducing email newsletter subscriptions

    Today we’re announcing a major new feature for Micro.blog Premium subscribers: email newsletters. Micro.blog can now manage letting readers subscribe to your blog and receive emails for new blog posts. It’s deeply integrated into Micro.blog and works great for collecting multiple microblog posts together automatically.

    Why are we creating yet another email newsletter feature when there’s already Substack, Buttondown, HEY World, SendGrid, MailChimp, and others? We always want to make blogging easier and to encourage more people to blog. We think many people want to publish to the web and email, instead of splitting their writing off into a members-only newsletter.

    Micro.blog’s email newsletters are like Micro.blog’s cross-posting: designed to start with your blog first and be effortless to maintain. You can enable it and forget about it. Micro.blog will create newsletter drafts from your blog posts automatically. You can edit a newsletter if you want, or ignore it and Micro.blog will queue it to send to your subscribers.

    There are a few settings when you enable email subscriptions: have Micro.blog send a new email for every full-length blog post; collect all your blog posts for a week together and send them in a single email; or collect all your blog posts from a category into a monthly email. The weekly and monthly options work great when you have a mix of short and long posts, so your email subscribers can read them together in order.

    Email options

    We think Micro.blog’s email newsletters are a great option for potential readers who are not using RSS. Everyone uses email. You can keep email subscribers in the loop without pulling attention away from your blog. All your content still lives in one place and not fragmented across multiple services.

    When you enable email newsletters, Micro.blog also adds a special email address that will be the “from” address for any emails sent for your blog. Your subscribers can reply to your email and Micro.blog will forward the text to you, without having to make your real email address public.

    To try out email newsletters, click on Plans to make sure you’re on Micro.blog Premium. This $10 plan also includes podcast hosting, video, and bookmark archiving. You’ll see a new Newsletter link in the sidebar on the web, where you can enable email subscriptions, manage subscribers, and edit email drafts before they’re sent to your readers.

    I’ve also posted a video to YouTube showing some more of how it works. Let us know what you think!

    → 12:36 PM, Dec 6
  • Drafts and scheduling posts

    This week we improved a few things in Micro.blog for managing drafts and scheduling blog posts to publish at a future date. If you have any drafts or scheduled posts, you’ll see a new set of buttons in the Posts screen on the web to filter your posts:

    Filter buttons screenshot

    You can save a post as a draft in the iOS or macOS apps, on the web (click the “…” button), or from apps like Ulysses, iA Writer, and MarsEdit. Some apps can automatically schedule a post just by picking a date in the future. You can now also take any draft post in Micro.blog on the web and schedule it from the editing screen:

    Scheduling screenshot

    As always, Micro.blog is first about quick, easy posting. If you don’t need drafts or scheduling, the UI should stay out of your way. I know how cluttered some other blog systems can get, and we want to keep Micro.blog as streamlined as possible even though it does have advanced features under the hood.

    → 12:49 PM, Dec 3
  • Should’ve done this years ago, but finally realized that part of my problem with the modern macOS Finder is just how cluttered it is. Now I keep the sidebar hidden and remove most of the toolbar items. Better.

    Finder window
    → 8:54 AM, Dec 2
  • Reminded by @amit that we haven’t done enough for managing draft blog posts, so now there’s a simple toggle on the Posts screen on the web for showing just drafts.

    Drafts button
    → 8:36 AM, Dec 1
  • Elgin Christmas Tree Farm. Super crowded this year. Everyone’s ready to get back to holiday traditions. 🎄

    → 12:50 PM, Nov 26
  • Train to Los Angeles

    Last week I took an Amtrak train out to Los Angeles. I decided not to blog about the trip until I was back home, so that I could mostly unplug and focus on editing my book Indie Microblogging. Now that I’m back, I’m going to share a quick recap and some photos.

    I used Swarm along the way to capture check-ins at train stations, restaurants, and other landmarks. Those are published with map thumbnails over at manton.coffee. I’d like to do more with this site, filling in check-in history and eventually moving it away from Swarm.

    It’s unusual for me to be away from home so long. In recent years for conferences I’ve been flying out for only a few days and then back. The solo train ride was like stepping back in time. A much slower pace, no wi-fi, and inconsistent cell coverage.

    I arrived in LA very early, just before 5am. Opted to pay a little extra 💰 to check in to my hotel early, had breakfast at a nearby coffee shop, then rented a car. Driving around LA in traffic is its own story, which I talked about on Core Intuition 489.

    The trip centered around catching a Spurs game with Jon at Staples Center as we attempt to visit all the NBA arenas. Choosing the train instead of flying ensured the trip was a break from the everyday routine, giving me time to focus on writing. It was also great to explore the city, checking out coffee shops, the library downtown (I had just read The Library Book about the LA library fire), tacos in Santa Monica, the view from Griffith Observatory, a quick drive-by of Disney Animation, Angels Flight Railway, and lunch in Koreatown.

    Sunrise near Del Rio Train bed Morning coffee Canyon out the train window West Texas near Alpine Somewhere in New Mexico Amtrak Union Station LA from Griffith Observatory LA central library Walt Disney Animation Spurs vs. Clippers Me and Jon Angels Flight Railway' Back in Austin

    I got used to the little quirks about train travel. Eating in the dining car. Settling into my sleeper car roomette. Watching the landscape roll by, changing so slowly it almost didn’t seem to change at all for hours. Then I’d look up from work and New Mexico had faded into west Texas and I was nearly home. Feeling very lucky that I was able to do a trip like this.

    → 8:14 AM, Nov 24
  • On a train somewhere in Arizona, editing a podcast about being on a train. Going to collect the trip photos into a longer blog post when I’m back in Austin. 🚂

    → 11:05 AM, Nov 18
  • The morning did not go as planned but it’s all good now. ☕️

    → 11:13 AM, Nov 10
  • Hot off the press, just got the test printing of my book 30 Days. Very happy with it. Just need to tweak a couple things like margins inside. The print edition of Indie Microblogging will match, with the same size and layout. 📚

    → 4:56 PM, Nov 9
  • Exploring San Antonio on the walk back from the Alamodome. This was an old school, started in 1858. Later served as headquarters for the Hemisfair and where NAFTA was signed.

    → 1:51 PM, Nov 8
  • Bands of America at the Alamodome.

    → 6:49 PM, Nov 5
  • Updated the home page of Micro.blog on the web to show whether it is still publishing the latest post to your blog. Usually should only take a few seconds, but this makes it easier to tell what it’s doing. Apps can also access this status in the /posts/check API.

    Progress screenshot
    → 9:15 AM, Nov 5
  • A new app for books: Epilogue

    Last week I sent out a survey to ask how people are tracking books they are reading or blogging about. The response was encourage enough that I got to work building a new app for books. It’s called Epilogue.

    As I discussed on Core Intuition, we already have a few iOS-only apps, but Micro.blog is before anything else a web-based platform. Vincent is working on an official Android app, and whatever we do next should be available on multiple platforms. So I decided to try something new with Epilogue, designing the UI with HTML to share it across both iOS and Android.

    I’m pretty happy with the result. There are a few quirks in the UI — things we can probably smooth over in future versions or if necessary replace with fully-native screens. But I was able to build the whole thing quickly by iterating in Safari on my Mac.

    Here are a few screenshots:

    Books list Book detail Searching

    Epilogue is now available as a public beta on TestFlight. It will be available on Google Play soon-ish. I have it working, even if Android is still mostly uncharted territory for me. I also feel like I need to get some public feedback before going too much farther down this road.

    It’s open source. GitHub says the language breakdown is:

    Languages

    What’s next? This first beta is for people who are already using Micro.blog. It’s for quickly adding a book or blogging about it. The search is new, powered by Google Books. We’ll wrap up 1.0 soon and then consider where to go with the app in future versions.

    With a dedicated app, we could add more features than would fit into Micro.blog on the web, but I also don’t want to get too sidetracked. The goal is a lightweight app that can complement other book services, making it easier to blog about books.

    → 11:12 AM, Nov 2
  • Finally went to the new Dutch Bros in Round Rock. Loved stopping at these while driving back from Oregon years ago.

    → 10:31 PM, Oct 29
  • It was great to get away to San Antonio over the weekend. Kind of felt like no one told the city there’s a pandemic. Here’s a shot from the Spurs game… Lucky to see Giannis up close for the first time.

    → 7:28 AM, Oct 25
  • Travis Park in San Antonio from the St. Anthony.

    → 8:55 AM, Oct 24
  • Ollie sticking his head out the window to bark. Makes me smile so I can’t even really be mad about the broken screen.

    → 1:53 PM, Oct 21
  • My favorite space to work outside when I’m downtown. Coffee at Lazarus Brewing. Mosquitos seemed to have finally left me alone too. ☕️

    → 9:46 AM, Oct 21
  • Todays prompt for the Micro.blog photo challenge: sports! Tuned in to the first Spurs game of the season. 🏀

    → 8:02 PM, Oct 20
  • Tough week visiting my uncle in the hospital. But even surrounded by sickness there is some symmetry and beauty just out the window. And inside, I’m inspired by the remarkable work of so many nurses. Heroes.

    → 5:59 PM, Oct 8
  • Out walking Ollie this morning. Today’s prompt is “street” for the photo challenge.

    → 10:44 AM, Oct 6
  • Life ain’t nothing but a good groove. Coffee outside at the square in Denton. ☕️

    → 2:20 PM, Oct 3
  • Day 2 of the October photo challenge. Dark.

    → 10:25 PM, Oct 2
  • Last mural was the first

    This is supposedly the first mural still standing in Austin, Creation painted on the University Baptist Church in 1950. Seems a fitting way to wrap up this series of 30 murals. The artist, Seymour Fogel, also studied under Diego Rivera.

    Creation

    A few of the murals I had hoped to visit have since been painted over. Murals are inherently fleeting. Even the best murals are always at risk of graffiti or new construction. Artists know this, but they put their mark on the city anyway, a gift for us to admire and capture in photos before everything changes.

    → 7:35 AM, Sep 30
  • In Texas today on a range of issues, change takes a step back before moving forward, but we’ll get there. “So I think the side that wants to take the choice away from women and give it to the state, they’re fighting a losing battle. Time is on the side of change.” — Ginsburg

    RBG
    → 8:50 AM, Sep 29
  • Threadgill’s had a long history in Austin, and we have good memories of eating there and seeing live music. Both Threadgill’s restaurant locations are now closed, but the mural on Riverside remains.

    → 8:22 AM, Sep 28
  • On the side of the East Austin Hotel on 6th, by Jason Eatherly. Inspired by the book Be Here Now by Ram Dass. Winding down the mural series, only a few days left, and still discovering more murals than I could possibly include.

    → 7:36 AM, Sep 27
  • 30 days book?

    This might seem like a distraction or procrastination technique, but bear with me here. @patrickrhone’s talk at Micro Camp must’ve been sitting in the back of my mind because I realized I should collect my 30 day series — coffee shops, libraries, parks, and murals — into a book. I’m using it as a trial run for the print layout for Indie Microblogging, experimenting with the size, fonts, footnotes, etc.

    30 days screenshot

    After I finish the final week of murals, I’ll send a copy off to IngramSpark for printing. I’m actively editing Indie Microblogging and feel good about wrapping it up this year. If everything turns out well with 30 Days, maybe I’ll include the book as a bonus for Kickstarter backers at higher tiers too. We’ll see.

    → 10:17 AM, Sep 26
  • There’s a long stretch of great murals on both sides of North Lamar under the bridge for 3rd street and the train. I took a bunch of photos and it was hard to pick just one to feature. This segment is by Luis Angulo, and there’s a web page here with more about the project.

    → 9:43 AM, Sep 26
  • I debated including this because it’s words, more spontaneous graffiti than mural. But it’s well-loved in Austin and has a history perfect for SoCo. Musician Amy Cook wrote it for her partner and owner of Jo’s Coffee. It’s grown into something more, like a love letter to anyone.

    → 8:28 PM, Sep 25
  • This used to be an exotic pets store on Burnet Road. Years ago when my son loved snakes we had a great time visiting. The store is gone now but the beautiful mural remains.

    → 9:21 AM, Sep 24
  • Another popular mural in Austin. As the state flower, surprised the bluebonnet doesn’t make an appearance in more murals.

    → 8:12 AM, Sep 23
  • Part of the discovery process of finding murals is learning more about local artists like Federico Archuleta. I knew next to nothing about the mural scene in Austin before starting out. Each painting is an opportunity to get lost down a rabbit hole of web searches.

    → 9:34 AM, Sep 22
  • Bumble mural at 6th and San Jacinto. I’ve found that some of the best commissioned murals are “on brand” but also just great paintings on their own, incorporating bits of Austin themes.

    → 8:01 AM, Sep 21
  • Can’t resist a mural that has Scrooge McDuck in it.

    → 10:02 AM, Sep 20
  • Click. Mural on 53rd.

    → 7:06 PM, Sep 19
  • Legendary mural on the drag. Walking around here takes me back to being a student. So familiar despite how much has changed.

    → 10:46 AM, Sep 18
  • Day 17, another mural on east 7th. Til Death Do Us Part, by Federico Archuleta.

    → 9:51 AM, Sep 17
  • I still consider this part of Austin, but technically a little farther out at Milburn Park. Cedar Park had an open call for muralists to paint this wall a couple of years ago. Nice way to incorporate the door into the design.

    → 7:38 PM, Sep 16
  • A small part of a mural that stretches along the Planet K on 183. I drive by this often and glad to see it last so long.

    → 12:24 PM, Sep 15
  • Nearing the halfway point for murals. Day 14, on the side of Kammok on east 7th.

    → 6:23 PM, Sep 14
  • Not totally sure what this mural is about but I like it. On Brazos next to The Driskill.

    → 9:48 AM, Sep 13
  • Huge mural celebrating the 19th amendment at Congress and Cesar Chavez.

    → 1:12 PM, Sep 12
  • So happy. This model train is now ours… Just needs a little love and wiring to bring it back to life. N Scale.

    → 3:10 PM, Sep 11
  • Carver Branch Library. When I stopped by today, an artist was updating the mural with fresh paint.

    → 12:08 PM, Sep 11
  • Kobe and Gianna Bryant, outside P Terry’s on 183.

    → 11:46 AM, Sep 10
  • Victory Grill on 11th, originally opened at the end of World War II with dining, blues, and jazz as African American veterans returned to a segregated Austin.

    → 12:52 PM, Sep 9
  • Kellie’s on Burnet. Sweet mural for day 8.

    → 3:41 PM, Sep 8
  • Another day, another mural. East 6th on the side of Whisler’s, by Federico Archuleta.

    → 7:37 PM, Sep 7
  • Starting the morning with coffee and breakfast tacos at Lazarus Brewing. Great space with lots of outside seating too. ☕️

    → 8:20 AM, Sep 7
  • Back on the UT campus for day 6 of mural photoblogging.

    → 9:47 AM, Sep 6
  • For the 5th day, one of many small murals on the Goodwill building at Lamar and 10th.

    → 12:16 PM, Sep 5
  • Day 4 of murals. South Congress is too crowded. I grew up not that far from here and kind of miss when it was just a normal street and not a tourist destination.

    → 12:36 PM, Sep 4
  • This used to be a Tower Records, and before that a theater. It must be one of the oldest remaining murals in Austin. Sadly, the mural that was across the street — painted by the extraordinary artist Doug Jaques who I used to take life drawing lessons from — is gone.

    → 9:42 AM, Sep 3
  • For day 2 of visiting 30 murals in 30 days, I’m in south Austin. Picked up coffee at Mañana first but it was too crowded to stay to work. ☕️

    → 11:03 AM, Sep 2
  • I’m starting a new project in my 30 days series. Murals! Each day, I’ll visit a mural and take a photo. For the first one, this wonderful and silly and somewhat famous (in Austin) mural. 🧈

    → 10:55 AM, Sep 1
  • Butterfly joining me at the coffee shop. Working outside for a bit after an appointment nearby. There’s a new Summer Moon in Steiner Ranch. ☕️

    → 9:43 AM, Aug 25
  • Got my Micro Camp sticker! They turned out great. Thanks @Burk! 🏕

    → 4:43 PM, Aug 24
  • Dinner outside at Chuy’s. Keep kids off the trees. 🌮

    → 6:29 PM, Aug 21
  • LEGO Porsche 911.

    → 3:18 PM, Aug 21
  • Lunch today at the reopened Waterloo Park.

    → 2:22 PM, Aug 20
  • Biked up to the coffee shop to work. Can’t find my lock so just set it outside the window where it’s easy to see.

    → 10:03 AM, Aug 17
  • Alanis Morissette.

    → 10:37 PM, Aug 12
  • Walked around Mueller this morning. Working at Halcyon for a little while. ☕️

    → 9:38 AM, Aug 12
  • Over the weekend, @cheesemaker and I were tinkering with adding location check-in support to Sunlit. Because it’s open source, you can follow along with the commits in this branch on GitHub if you want. Not totally functional yet.

    → 9:07 AM, Aug 11
  • Free iced coffee and snack while I wait at the Honda dealer to have our car checked out. Battery died unexpectedly this morning and seemed glitchy.

    → 8:39 AM, Aug 11
  • Micro Camp will have stickers! Thanks so much to @Burk for coordinating the design and printing. Can’t wait to put one on my laptop. When you register for Micro Camp, there’s an “Offers” section to sign up to get a sticker too.

    → 9:47 AM, Aug 10
  • With liberty and justice for all. Looking out from Upstairs at Caroline. 🍸

    → 8:38 PM, Aug 4
  • Ghibli keychains.

    → 9:19 AM, Aug 4
  • A few nights ago downtown, walking across Congress Avenue.

    → 10:34 AM, Jul 30
  • I’ve been wanting an electric bike for years but the nice ones are way out of my budget. Finally had enough of the hills in our neighborhood making me never want to ride, so picked up this less expensive bike from Walmart and love it. Game changer. 🚲

    → 1:58 PM, Jul 28
  • Micro.blog servers for 2021

    To pair with my post about downtime, I thought I’d share our current Linode servers. Some people ask us about this kind of thing, and I know I love reading about how other platforms are set up.

    Linode servers screenshot

    My server naming theme for Micro.blog is the Disneyland Railroad. Servers are named after locomotives, people who inspired them, or theme parks. Fort Wilderness in Orlando, which used to have a train back in the 1970s, is the server that failed last night and is still offline.

    The only server that doesn’t get a name is Discourse, because I don’t really enjoy hosting it and hope to shuffle it off somewhere else eventually. We also use Linode’s load balancers, object storage, and Amazon S3.

    Thanks to everyone who has a Micro.blog paid subscription. Your support allows us to add new servers when we run into problems and make everything more stable and fast in the future.

    → 10:06 AM, Jul 20
  • Houndstooth Coffee at The Domain. ☕️

    → 8:44 AM, Jul 18
  • Time to read Rhythm of War. The longer I put off reading it, the more daunting it started to seem. Also got the e-book at the library for whenever 1100 pages isn’t convenient to have with me. 📚

    → 7:05 PM, Jul 17
  • This should be the last beta of Micro.blog 2.1 for macOS. You can download it here. It features a new Discover emoji pop-up! Finally.

    → 8:00 AM, Jul 14
  • Another photo from exploring downtown last night. We did something we never do: a guided tour in our own city! A walk through the 1880s Austin murders, highly recommended for true crime fans or anyone wanting to know some weird Austin history.

    The capitol
    → 12:59 PM, Jul 11
  • Moonlight tower.

    → 9:03 PM, Jul 10
  • University of Texas at San Antonio.

    → 6:12 PM, Jul 8
  • University of Texas at Dallas.

    → 2:28 PM, Jul 5
  • Clouds out the car window on I-35.

    → 9:53 AM, Jul 5
  • This has been the morning routine this week. Picking up coffees at Ebenezers for our last day in DC. ☕️

    → 8:07 AM, Jun 26
  • The mansion at Mount Vernon, just before the fireworks.

    → 8:39 PM, Jun 25
  • Freight train over the Potomac River, from the metro.

    → 4:57 PM, Jun 25
  • Union Station in DC.

    → 6:16 PM, Jun 24
  • Scootering around the Washington Monument. 🇺🇸

    → 1:29 PM, Jun 24
  • We got to see the pandas at the National Zoo.

    → 4:03 PM, Jun 23
  • After a mixed up trip getting here — cancelled flights, driving to Dallas, last-minute hotel, and flying into a different airport — it was great to take some time to explore around DC.

    → 8:21 PM, Jun 22
  • Waiting for the Amtrak to Union Station.

    → 12:45 PM, Jun 22
  • Rainy landing in Baltimore. Visiting Washington DC for the first time.

    → 12:03 PM, Jun 22
  • Vacancy in Madisonville, Texas.

    → 7:04 PM, Jun 21
  • Another photo from over the weekend in Mississippi. Abandoned train tracks going off into the weeds.

    → 11:42 AM, Jun 14
  • Heading back home today. Another pass over the Atchafalaya Basin.

    → 11:04 AM, Jun 13
  • Another road trip day. Stopped for coffee in Baton Rouge. ☕️

    → 11:40 AM, Jun 12
  • Afternoon road trip today, stopped in Fredericksburg on the way back.

    → 3:54 PM, Jun 6
  • Dragon’s Lair at Cidercade. The animation is just how I remembered it but it’s even more fun on free play. 🕹

    → 11:00 PM, Jun 5
  • Project Hail Mary arrived this week. Currently reading Crooked Kingdom to wrap up the Shadow and Bone books, then we’ll see what looks good next in the book queue. 📚

    Books on table
    → 11:11 AM, Jun 3
  • Raining on the highway in Houston.

    → 2:00 PM, May 21
  • Adding a couple more filters to my blog to automatically assign categories. I think this is one of the more clever features we’ve come up with. Powerful but mostly hidden so it never distracts from writing a new post. It’s under Categories → Edit Filters.

    Micro.blog screenshot
    → 7:53 AM, May 21
  • Looking in our fridge this morning, wonder if we’re secretly running a coffee shop out of our house. We might have enough milk.

    → 7:39 AM, May 13
  • Walking on the trail this weekend I was surprised that the tracks for the old Zilker Zephyr have already been ripped up. At least this old sign is still there.

    → 5:40 PM, May 9
  • Voted at the library today. Long line for just propositions on the ballot. They let everyone wait inside because of the rain. Voted against the homeless camping ban but have no idea how the results will turn out.

    → 2:01 PM, May 1
  • To balance my post earlier that sounded negative about the iPad… Excited that my first new iPad in years arrived today. Green iPad Air.

    → 6:59 PM, Apr 26
  • Recent photo of light hitting the clouds while we were out walking.

    → 10:58 AM, Apr 19
  • Reading break outside in between deploying server fixes.

    → 4:57 PM, Mar 28
  • Great weekend in Dallas. Coffee before heading back to Austin.

    → 9:49 AM, Mar 21
  • Dallas Zoo.

    → 7:26 PM, Mar 20
  • Walking around the Denton Square.

    → 9:36 PM, Mar 19
  • I haven’t had a chance to explore the new Gowalla yet, but I was excited to get the t-shirt and stickers.

    → 1:36 PM, Mar 12
  • Spurs sherbet! Perfect dessert while watching tonight’s game. 🏀

    → 9:23 PM, Mar 4
  • The snow this morning is incredible. We’re okay for now, but many people in Texas without power. ❄️

    → 10:49 AM, Feb 15
  • Very cold this morning for Austin. Ice forming on one of our trees after the morning rain.

    → 11:48 AM, Feb 11
  • Layers.

    → 11:20 PM, Feb 4
  • Catching up on the February photo challenge… Another one to add to all the happy dogs and cats out there who have taken the best spot in the house. Comfort.

    → 12:59 PM, Feb 4
  • Morning beverage. Cold brew and oat milk. ☕️

    → 9:39 AM, Feb 2
  • I’ve been trying to spend a few minutes each day on the piano. Close up of sheet music for Defying Gravity from Wicked.

    → 2:31 PM, Feb 1
  • Snowing in Austin. Don’t even know the last time it has snowed this much here. It just keeps falling. ❄️

    → 1:23 PM, Jan 10
  • Took the drone out for its first flight today and 15 minutes later it was stuck in this tree. A bit too windy out. Eventually got it down with the help of a neighbor’s ladder.

    → 4:41 PM, Jan 9
  • Red Bud Isle from over the holidays, with Ollie getting some time to splash around.

    → 10:11 AM, Jan 6
  • Just before the new year, I updated my iPhone home screen for the first time in a while. New apps: Calm and Audible.

    → 9:52 AM, Jan 4
  • Took a wrong turn that ended up in a nice scenic detour while on the road today. Sam Houston Library and Research Center.

    → 4:20 PM, Dec 29
  • Before the cold weather this week we decided to pick all the oranges. The tree produced about 50 total counting the ones I picked early. Now looking for marmalade recipes.

    → 9:56 AM, Dec 2
  • I’ve been taking more time away from the computer to reset and read lately. Finished reading Dune this week for the first time. An extraordinary book.

    → 11:12 AM, Nov 20
  • The lost year of COVID-19

    Election Day is today. I hope that it will be a turning point for the country, so it seems like a good time to also look back.

    I try to write every day, whether it’s here on this blog or in my journal using Day One. Posts about family or personal stories usually stay private, because there are plenty of other topics to write about here. Today I want to collect together a few things that have happened this year, events that I might jot down in my journal but which haven’t made it into the blog.

    Back in March, when the kids were home for spring break and the seriousness of the coronavirus was just starting to become real, we wrote down some rules on giant sticky notes and stuck them on the fridge. Like the rest of the country, we were trying to figure out what to do, and it helped get everyone mostly on the same page.

    Sticky notes.

    There was still a lot of confusion about what was safe. Texas was about to go into lockdown. The NBA was about to postpone games. SXSW was about to be cancelled. It felt like everything was just on the verge of changing. I thought if we could only stay safe for a few weeks, we’d make sure that our family didn’t get sick when hospitals would be overrun.

    We made masks. I didn’t do much of the sewing, but our home-made masks turned out great. It was fun to do something a little creative, especially early on.

    Making masks.

    We ordered more masks later, including my new go-to mask with a Mickey Mouse pattern. We fell into a routine of ordering groceries online. I rarely went inside stores. I wore my mask whenever I was picking up take-out dinner or running other errands. I washed my hands all the time. The few weeks of quarantine had turned into months of isolation.

    Later in June we went to the beach for a couple days, to get away. I was worried, because the Houston and Galveston area were getting hit hard by COVID, but we were barely 30 feet from anyone else. It felt great to be near the water, eat outside on the deck with a cool breeze, and escape the normal stress of the quarantine. We had a house on Airbnb to ourselves, cooked most of our meals there, and I picked up pizza one night in town.

    Walking to the beach.

    A few days later we were up in Dallas. That weekend I wasn’t feeling great. I figured it was a cold or allergies. No fever, no shortness of breath. Because I had been with family, out of caution I decided to get tested for COVID-19. I talked to a nurse for advice and also called a nearby drive-thru clinic that did testing.

    While waiting in line to get tested, I convinced myself that I had overreacted. I was wasting everyone’s time, while people with much more serious symptoms needed help. But I got tested anyway, felt better the next day, and went on with my work week, releasing a major upgrade to Micro.blog to support plug-ins that week.

    A doctor called me with the results about 4 days after I had gotten tested. It was positive.

    My symptoms were extremely mild. I’m still not sure the test wasn’t a fluke. I had planned to follow up with an antibody test to confirm it, but I never did. Even so, going through that process of getting tested had highlighted for me what Texas and other states were going through back in June and July, and now again as winter looms.

    This year has been long, and disappointing, but there was hope. We flattened the curve. We were well on our way to putting the coronavirus behind us and looking toward school restarting. But we opened too quickly without the right guidance. We lost control of the virus. We were almost there, and we blew it.

    Fast forward several months when I’m writing this. We flattened the curve a little, again, only to see the progress slip away. The setbacks have been frustrating, watching so many people flout the guidelines. 2020 could have gone much differently — much better — but there were good moments too, with family and work, watching the Micro.blog community grow.

    We can’t get 2020 back. There’s a lot to catch up on. Let’s make 2021 count.

    → 8:07 AM, Nov 3
  • One more day.

    → 11:58 AM, Nov 2
  • Picked a couple of our oranges that are starting to turn orange. It’s a little bit early but the first one was still delicious.

    → 10:38 AM, Oct 22
  • A couple more photos from our trip earlier this week, at the Airbnb and the view on the Canyon Lake dam.

    → 11:26 AM, Oct 15
  • As the 24-hour photo challenge was getting underway, we were driving back from a couple days at Canyon Lake, a mix of vacation-ing and working. Stopped at Summer Moon in Buda, then picked up Chick-fil-a back in Austin around 1pm with the kayaks still on the roof.

    → 4:57 PM, Oct 13
  • Earlier today, stopped for coffee while on the road.

    → 4:15 PM, Oct 13
  • Bosque River from Cameron Park in Waco.

    → 2:39 PM, Sep 27
  • Micro.blog 2.0 will launch next week

    We are getting ready to roll out a major update to Micro.blog. The web version and all the native apps are being updated at the same time. The new version will launch Tuesday, September 29th.

    What’s new? To start with, the web version has been redesigned with a new sidebar, bringing common areas of your microblog like managing posts and uploads to the top-level of Micro.blog so they’re easier to access.

    Screenshot of web version with sidebar

    In the iOS and macOS apps, we’ve added new Pages and Uploads section, so you can create or edit standalone pages, and upload podcasts or other files to your blog. There are new icons in the sidebar and the layout in many screens has been improved.

    Screenshot of iPhone app with menu Screenshot of iPhone app with pages screen Screenshot of iPhone app with uploads screen

    On the Mac, creating a new post has been moved to its own window. This makes it easier to see the timeline while you are typing a new post or reply. You can also drag photos from the Uploads section into a new post.

    Screenshot of macOS version with separate window

    We are expanding what the current $10/month plan can do, renaming it Micro.blog Premium. In addition to hosting podcasts and video, Micro.blog Premium will archive the contents of bookmarked web pages, with a special reader interface for highlighting text. You can quickly create a new blog post from highlights in Micro.blog.

    Screenshot of web version with highlights

    I’ll be talking more about the new bookmarks and highlights as we get closer to launch. I’m excited to bring something totally new to Micro.blog, but in a way that stays true to Micro.blog’s mission of making it easier to blog.

    And there are many other bug fixes and minor improvements, such as (finally!) editing replies. I can’t wait for everyone to check it out next week.

    → 11:08 AM, Sep 21
  • Day trip to San Antonio. Puffy tacos for a picnic at Brackenridge Park, then walking through the Japanese Tea Garden.

    → 6:04 PM, Sep 19
  • Development on Micro.blog 2.0 for iOS is almost wrapped up. Here’s a sneak peek at the redesigned menu screen. The whole app looks better in addition to the new features.

    Menu screenshot with new icons

    → 10:23 AM, Sep 15
  • We started building the Apollo 11 lunar lander.

    → 6:01 PM, Sep 6
  • Countdown to Sunlit 3.0: Tumblr blogs

    Sunlit 3.0 will ship tomorrow. For the last post in this blog post series to highlight Sunlit features, I want to mention a convenient way to follow Tumblr photoblogs.

    Micro.blog is based on blogs and IndieWeb standards so that it can integrate well with the rest of the web, not be walled off like a silo. One aspect of this is that you can follow many blogs in Micro.blog even if the author of the blog hasn’t registered on Micro.blog yet, similar to how you can subscribe to blogs in a feed reader like NetNewsWire or Feedbin.

    For Sunlit, there’s special support for searching for Tumblr blogs so that they are easy to follow directly from within Sunlit. Use the search under the Discover tab to enter the domain name to follow, as shown in this series of screenshots:

    Search screenshot   Tumblr result   Tumblr profile

    There is expanded support for following other blogs and even Mastodon users in Micro.blog itself. You can always use Micro.blog to find a blog to follow, then go back to Sunlit and those posts will appear in the Sunlit timeline.

    Tomorrow we’ll update the App Store for the Sunlit 3.0 release. I hope you like it!

    → 10:44 AM, Aug 31
  • Countdown to Sunlit 3.0: discovery

    Sunlit 3.0 will ship in 3 days, on Tuesday. Today I want to highlight another new feature: the redesigned Discover browsing interface.

    Both Sunlit and Micro.blog use Discover to help you find people to follow. Because Sunlit is all about photos, Sunlit takes the usual Discover sections from Micro.blog, but shows only the photos from each section instead of all post types.

    For example, tapping on 📚 at the top of Discover will show microblog posts that have used the books emoji along with a photo, which will often be a book cover or other photo of the book. Tapping on 🧶 will usually show people’s knitting or crochet projects. Tapping on ☕️ will show coffee-related photos. Tapping on 🍞 will show baking.

    Discover knitting screenshot   Discover coffee screenshot   Discover bread screenshot

    It’s a great way to discover people to follow even if they haven’t posted a recent photo that you might see in the main 📷 photos section.

    Check back tomorrow for another blog post in this series as we look forward to the Sunlit 3.0 launch. And thanks to everyone who tested the Sunlit beta!

    → 2:36 PM, Aug 29
  • Countdown to Sunlit 3.0: new post editor

    Sunlit 3.0 will ship in 4 days, on Tuesday. Today I wanted to highlight one of the new features in 3.0. We’ve redesigned the new post screen to be faster and more flexible than the previous version. It’s great for posting a quick single photo, but it can scale up to full blog posts with multiple sections of text and photos.

    Here’s a screenshot for part of a blog post I wrote last year about a trip to Toronto. Sunlit lets me structure the blog post in sections that can each have one or more photos. It then uploads the photos to my blog along with the HTML layout for the post.

    Sunlit screenshot

    I’ll continue this blog post series about Sunlit 3.0 with a new post tomorrow.

    → 4:58 PM, Aug 28
  • Grabbed coffee and sat outside on a recent trip to Dallas, the vines relentlessly growing over the gazebo at Oak Lawn Park.

    → 10:01 AM, Aug 26
  • We just sent another Sunlit 3.0 beta to TestFlight folks. Here are a few screenshots. There’s a TestFlight sign-up link on the web site.

    Timeline Conversation Discover Profile

    → 1:34 PM, Aug 24
  • I missed day 2 (“floating”) of the photo challenge, but finally took my new inflatable stand-up paddle board out on the water earlier this evening.

    → 9:10 PM, Aug 15
  • We were playing with Rubik’s Cube this weekend. Here’s my book from the 1980s… Black and white for the inside pages so not the best resource to learn from in 2020.

    → 6:10 PM, Aug 9
  • From the hammock, looking up.

    → 5:17 PM, Aug 1
  • Book search experiment

    One of the minor hassles that has held me back from blogging about books I’m reading is finding the ISBN and cover art. To improve this workflow, I’m testing out a new book search feature on Micro.blog.

    Type in the title of a book, and Micro.blog will search Open Library. It is not as complete as Amazon or Goodreads, so I hope to expand this in the future with more data sources. You can add author or ISBN to the search too.

    Book search screenshot

    Micro.blog will also show thumbnail images for any book covers that are found for the various editions. You can click on one of the book covers to select it, leading to this page:

    Book details screenshot

    From there, use the Micro.blog or indiebookclub buttons to start a new microblog post with the title, author, and ISBN filled in:

    New post screenshot
    → 10:13 AM, Jul 29
  • We’ve had our orange tree for years but it has never produced fruit until this year, and now it has dozens of oranges. Can’t wait.

    → 1:35 PM, Jul 21
  • Sneak peek at Sunlit 3.0

    Our app Sunlit has an interesting history. Jonathan Hays and I came up with the original concept for the app way back in 2012. The app changed form a couple times, first building off of App.net, and then adapted for blogging. Along the way, it accumulated a lot of baggage — old code and old designs that made it difficult to keep improving the app.

    Today I’d like to give a sneak peek at what’s next for Sunlit: version 3.0, a complete rewrite, sharing essentially no code with previous versions. Jon has been working on this for a while, leading development while I focus most of my time on Micro.blog itself. We are taking what we’ve learned and trying to build an app that can appeal to people looking for an Instagram alternative, as well as people who want more control over publishing blog posts with multiple photos.

    Here are a couple screenshots:

    Sunlit 3.0 screenshots

    The app will also be completely open source. It can publish to Micro.blog, WordPress, or via Micropub to IndieWeb blogs. It’s written in Swift. There’s no release date yet, but there will be a public beta, and we hope to take the time to get it right.

    → 10:03 AM, Jul 13
  • Introducing plug-ins for Micro.blog

    I often hear from people who like the built-in designs on Micro.blog-hosted blogs, but they want to customize just one little thing about the default HTML. No problem! Because the designs are built with Hugo, you’ve been able to create a custom theme to override any template file or add new functionality to your blog. But that flexibility comes with a learning curve: it requires knowledge of HTML, CSS, and sometimes even JavaScript.

    Today I’m launching a plug-ins system for Micro.blog that formalizes a lot of the power of Micro.blog themes, but wrapped in a package that is easier to develop and install. Instead of creating a custom theme for your blog and editing the templates yourself, you might be able to find a plug-in that will add the feature. Unlike custom themes, there can also be multiple plug-ins installed for a single blog.

    Here are a few of the things plug-ins can do:

    • Provide a brand new design. Plug-ins are actually just special Hugo themes, so anything a Hugo theme can do, a plug-in can provide. Now web developers can create custom blog designs that are easy to install.
    • Override one or more template files in a theme. For example, changing the header or footer, or adding new CSS or JavaScript includes.
    • Add new Hugo parameters that are available in the plug-in or another custom theme. Micro.blog can even show a settings screen so that users can edit parameter values easily.

    There is a new plugin.json file that a plug-in can provide to tell Micro.blog what parameters should be configurable for the plug-in. This file also includes the plug-in metadata and any extra CSS or JavaScript references.

    Here’s what a plugin.json file would look like for a plug-in I wrote to provide some more control over Micro.blog’s default Photos page. Because the plug-in defines some parameters, those are available in a settings UI inside Micro.blog automatically:

    Screenshot of settings

    Plug-ins are available under a new “Plug-ins” tab in your blog settings. Click “Find Plug-ins” to see a list of registered plug-ins.

    Screenshot of plug-ins tab

    Since this is brand new, it only includes a few plug-ins that I wrote. Web developers who want to contribute a new plug-in to the directory can email me: help@micro.blog. There’s a help page here with more details about developing plug-ins.

    And if you have ideas for a plug-in, let me know that too. In the past, when I’ve heard a feature request that requires a custom theme, I’d have to consider either adding that as a built-in Micro.blog feature — which might complicate the UI for everyone, even if few people wanted the feature — or I’d explain how to create a custom theme to solve it. Now, I can implement some of those requests as plug-ins.

    There’s a lot more which I’ll be documenting. Having said that, Micro.blog plug-ins can’t do everything. As we learn what people want, I’d like to work with plug-in developers to iterate on this system, as well as clean up some of the built-in themes so that it’s easier to override certain behavior in a blog. Enjoy!

    → 1:39 PM, Jul 7
  • I’m running Big Sur full time. Here’s an early build of the next update to Micro.blog for macOS. It’s not going to ship for a while, so I might make betas available later.

    Screenshot of M.b on Big Sur.
    → 1:56 PM, Jul 1
  • Planning to launch something new for Micro.blog next week. But first, got away for a couple days to the beach. Plenty of space, felt like the most fresh air we’ve had in months. Now back and catching up on email.

    Beach on Galveston Island.
    → 1:09 PM, Jul 1
  • My new Gluon shirt arrived. If you’re new to Micro.blog, check out Gluon for iOS and Android, or buy a shirt to help support a third-party Micro.blog developer.

    → 11:14 AM, Jun 11
  • New muting improvements

    We’ve updated Micro.blog’s muting today to work more consistently everywhere, with a new option to hide replies that mention the username you are muting. Now when you mute a username you’ll see an additional checkbox to enable this option:

    Muting screenshot

    Posts that would normally appear in any of the Discover screens or search are now hidden. Replies in the timeline and conversations are also hidden.

    The muting interface is on the web under Account → Edit Muted Users. I’ve also updated the API to support muting.

    → 9:31 AM, Jun 5
  • New theme: Archie

    I added a new built-in design to Micro.blog today: Archie, based on the Hugo theme of the same name. It has been lightly modified to work well in Micro.blog, and my changes are on GitHub.

    What I liked about this theme is that it was different than most of the built-in designs, and it has a custom dark mode interface:

    Archie screenshot

    The link colors can be changed using a custom theme by editing the top of the main.css or dark.css templates.

    → 9:07 AM, May 27
  • Book recommendations challenge this week on Micro.blog! Check out the books section of Discover. And nice timing, I haven’t started reading it yet but just today Dan Moren’s latest arrived in the mail. 📚

    → 8:22 PM, May 19
  • Redesigned theme editor for Micro.blog

    I’ve redesigned the theme text editor in Micro.blog, adding a preview pane and other improvements. It now features a split view with the template on the left and your web site on the right.

    Micro.blog theme editor

    When you update a template, Micro.blog publishes your change and then reloads your web site. Micro.blog knows when the publish has finished, so you no longer need to keep reloading, waiting for the change to show up.

    This works best with a test blog, which you can create from Posts → Design → Edit Custom Themes. You can use it with your main blog too, but test blogs are usually faster to update. If your theme is being used by multiple blogs, Micro.blog will always show the test blog in the split view.

    I’ve also updated all the built-in designs to include the theme modified time in any CSS references on your blog. This helps web browsers reload your design right away, while still caching the CSS until you edit your theme again. There’s a new Hugo variable for this: .Site.Params.theme_seconds

    If you’ve ever worked on a custom theme, I think you’ll find this interface drastically better than the old workflow. It is much easier to iterate on a design. Enjoy!

    → 10:51 AM, May 19
  • iA Writer hashtags

    Here’s a quick tip about iA Writer’s new support for Micro.blog. If you use hashtags in iA Writer to organize your documents, you can configure your hosted microblog to automatically assign Micro.blog categories based on those tags.

    When you publish to Micro.blog, the tags from iA Writer will be included in the blog post content. Create filters in Micro.blog to automatically assign categories based on those tags. Filters are run whenever a new blog post is created.

    Here’s what a post might look like in iA Writer, using the hashtag #travel:

    iA Writer screenshot

    In Micro.blog, click Posts → Categories → Edit Filters to create a new filter. For the text, enter #travel, because we know it will appear somewhere in the text content. Then pick a category to assign for any matching posts:

    Filter screenshot

    Note that the hashtag will still appear in your blog post, although you can edit it out later if you want to.

    → 4:41 PM, May 13
  • iA Writer adds Micro.blog publishing

    Exciting news today: the latest version of iA Writer for both iOS and macOS can publish to Micro.blog-hosted blogs. It uses the Micropub API, which is Micro.blog’s native API for posting.

    To get started in iA Writer on iOS, go back to the first screen in the app and tap the settings icon → Accounts → Add Account → Micropub. You’ll be prompted to approve iA Writer in Micro.blog. If you’re not signed in yet in mobile Safari, you can sign in first and then try again:

    iA Writer setup

    In a text document, tap the share icon → Publish → New Draft on Micro.blog:

    iA Writer publish

    When you publish a post, it’s saved on Micro.blog as a draft, and iA Writer opens a preview of the draft on Micro.blog. From there, you can tap to publish it.

    Thanks to the iA Writer team for making this happen! And because it’s built on IndieWeb standards, it’s not just tied to Micro.blog. I’d love to see similar support in other popular text editors.

    → 9:15 AM, May 13
  • Red salsa for this week’s color-themed photo challenge on Micro.blog.

    → 3:47 PM, May 11
  • Last day of the Micro.blog “quotes” challenge. I recently started looking through this book — Mickey Mouse: From Walt to the World — which I picked up a year ago at the Walt Disney Family Museum. 💬

    → 3:51 PM, May 10
  • Announcing Micro.blog for teams

    Today we’re launching a new feature on Micro.blog: support for multi-user blogs, so your whole team can write posts on a shared blog. We think it’s going to be great for small companies, families, and schools, with everything from shared photo blogs to podcasts.

    When you upgrade a blog to the teams subscription, a new “People” tab will appear in Micro.blog. Here you can give existing Micro.blog accounts access to post to the blog, or you can invite new people. Team members can publish new posts, edit existing posts, upload files, manage categories, and more.

    For example, for our Micro Monday podcast, previously Jean and I had to share a Micro.blog account to make changes to the podcast. Now it’s a team podcast where either of us can post with our individual Micro.blog accounts:

    Micro.blog team members

    When someone is added to a team blog, that blog shows up as an additional blog on the web or in the native iOS and macOS apps. A single Micro.blog account can have access to any number of blogs and podcasts.

    The teams plan is a $20/month subscription with unlimited users. It also includes podcasting and video hosting. If you invite someone who doesn’t already have a Micro.blog account, Micro.blog will give them immediate access to the team blog without prompting them to create their own microblog or sign up for a paid subscription.

    To upgrade a blog, click on “Plans” and choose “Upgrade to Teams”. If you have any questions, let me know at help@micro.blog.

    → 2:14 PM, May 6
  • Love this new DuckTales print by Stephanie Ramirez. Framed it today to go with Firewatch, if I can find room for both together on my office wall.

    → 1:53 PM, May 5
  • Rolled out some server improvements today, including a new “…” button for quickly switching between multiple blogs when managing posts, pages, and categories. It also shows your own domain name in more places.

    Dots button
    → 12:42 PM, May 3
  • Markdown in MarsEdit

    Here’s a simple tip for using MarsEdit with Micro.blog. By default, formatting options in MarsEdit such as Bold and Italic map to HTML tags: <strong> and <em>. You can customize them to use Markdown instead.

    Click on Format → Customize to bring up MarsEdit’s Formatting Macros window. Delete the existing Bold and Italic commands and click the “+” button to create a new one. For Bold, add “**” for the opening and closing markup and set the keyboard shortcut ⌘B. For Italic, use “_” and ⌘I.

    MarsEdit screenshot

    Not everything in Markdown can be added to MarsEdit this way, but it’s nice to have a couple of the basics. You can also set the Preview Text Filter in the preferences window to Markdown.

    → 1:07 PM, Apr 22
  • Wildflowers.

    → 2:55 PM, Apr 20
  • API history detour for Micro.blog + MarsEdit 4.4

    Micro.blog supports primarily 2 APIs for posting to hosted blogs:

    • Micropub, the IndieWeb API used in the official Micro.blog apps.
    • MetaWeblog, the XML-RPC API used in MarsEdit for macOS.

    XML-RPC used to be the standard for blog posting, widely supported in all blogging platforms. It is still used in WordPress today, and I’ve supported it in Micro.blog from the beginning. I’ve always wanted Micro.blog to be compatible with as many apps as possible, especially MarsEdit.

    To understand XML-RPC, we have to go way back in blogging history, to 2001 and the original Blogger API by Evan Williams. Micro.blog’s support for XML-RPC still closely matches what the API looked like nearly 20 years ago.

    As is obvious from the name, requests and responses in XML-RPC are sent as XML. Common data types such as integers, strings, and structs are encoded with rules outlined in the XML-RPC specification. To create a new post in the original Blogger API with the words “Hello world”, the request to the method blogger.newPost might look like this:

    <?xml version="1.0"?>
    <methodCall>
      <methodName>blogger.newPost</methodName>
      <params>
        <param>
          <value><int>app ID</int></value>
        </param>
        <param>
          <value><int>blog ID</int></value>
        </param>
        <param>
          <value><string>manton</string></value>
        </param>
        <param>
          <value><string>mypassword</string></value>
        </param>
        <param>
          <value><string>Hello world.</string></value>
        </param>
        <param>
          <value><boolean>1</boolean></value>
        </param>
      </params>
    </methodCall>
    

    Subsequent blogging platforms extended the Blogger API with their own features. Instead of blogger.newPost, Movable Type had mt.newPost with similar parameters, adding a title field. WordPress had wordpress.newPost.

    To try to unify future improvements under a vendor-neutral standard, Dave Winer proposed the MetaWeblog API. MetaWeblog switched to passing content as structs, which could more easily be extended with additional fields, and added an image upload API, metaWeblog.newMediaObject. Dave patterned the field names after RSS:

    The MetaWeblog API uses an XML-RPC struct to represent a weblog post. Rather than invent a new vocabulary for the metadata of a weblog post, we use the vocabulary for an item in RSS 2.0. So you can refer to a post’s title, link and description; or its author, comments, enclosure, guid, etc using the already-familiar names given to those elements in RSS 2.0.

    Dave wasn’t the only one who hoped to bring consistency between feed formats and a blogging API. A couple years later, AtomPub was created based on Atom feeds.

    Ben Trott of Six Apart, makers of Movable Type, blogged at the time about the benefits to basing an API on the Atom feed format, which back then was called Echo:

    Benefits to developers: using the same data model and serialization for syndication, archiving, and editing simplifies the development of tools to work with (produce and consume) these formats, for obvious reasons: code written to produce an item in an Echo feed, for example, can also be used for producing data sent in an API request or packaged up for archiving.

    AtomPub was adopted in Blogger but is not supported in any other modern blogging platforms. Earlier this year, MarsEdit developer Daniel Jalkut announced that he would also be phasing out support for posting to Blogger.

    Between the early 2000s when there was so much activity around blogging standards, and the growth of the IndieWeb and W3C-recommended standard Micropub API in 2017, there was a notable lack of innovation in blogging. Everyone was pulled away to social networks. Platform-specific APIs became the norm. It is because of this lull that XML-RPC survived so long without a modern replacement.

    So that brings us to today. Micro.blog has always worked with MarsEdit, but because it’s based on a standard that was frozen, MarsEdit could not support all of Micro.blog’s features. And while Micropub is clearly the future, there is more we could do now without requiring MarsEdit to be adapted for Micropub.

    I’ve been working with Daniel to identity what is missing from MetaWeblog and rolling that into a new Micro.blog-specific flavor of XML-RPC. This is essentially what Movable Type and WordPress had done years ago. I had avoided it until now because Micro.blog should default to supporting standards wherever possible before inventing something new.

    We talked through this on Core Intuition 416. Now that there’s an alpha of MarsEdit 4.4 available, I’ve documented the new API parameters here. It is based on MetaWeblog, but cleaned up with more consistent field names and support for new features such as creating and editing pages on your blog, server drafts, and downloading all posts.

    Micro.blog now shows up in MarsEdit as one of the supported blog systems, along with Tumblr and WordPress:

    MarsEdit systems

    I’ve been using the new MarsEdit for the last few days, and it really is a big improvement for Micro.blog. Keep an eye out for the final release.

    → 11:44 AM, Apr 20
  • Alamo Drafthouse can’t show movies, so they launched Alamo Curbside for meal kits with fun bonus items. We got a lasagna package that also included a puzzle, popcorn, toilet paper, and a random mystery DVD selection: The Look of Silence. 🍿

    → 2:30 PM, Apr 19
  • Easier Micro.blog podcast cover art

    Podcasting with Micro.blog requires no configuration. Just upload an MP3 with your blog post and Micro.blog handles the rest: creating a podcast feed, using your profile photo as the cover art, and setting other defaults.

    If you want full control over the podcast feed, it’s just a Hugo template. You can edit it with a custom Micro.blog theme to add anything you want. Because of this flexibility, I’ve been recommending that anyone starting a podcast on Micro.blog who doesn’t want to create a separate account (which would have its own profile photo) to tweak the podcast feed to override the default cover art.

    Now it’s much easier. There’s a new feature on Micro.blog under Posts → Design that lets you change the cover art:

    Podcast settings

    Click the existing cover art to select a new image from your uploads:

    Podcast uploads

    Happy microcasting!

    → 11:22 AM, Apr 6
  • Micro.blog 1.8 for iOS with post editing

    Version 1.8 of the Micro.blog iOS app is available. From the release notes:

    • Added “Posts” menu for editing your recent posts. Designed for quick updates and typo fixes for Micro.blog-hosted blogs. Can also be used to publish drafts or delete posts.
    • Switched to system font and tweaked colors and layout through the app.
    • Fixed a few issues including missing push notification text.

    Here are a couple screenshots of editing recent posts, similar to what the macOS version has had for a while:

    iOS screenshot

    You can download the update on the App Store.

    → 9:18 AM, Mar 30
  • Seeing this made me smile while out walking in the neighborhood this week. These kids have the right idea.

    → 5:31 PM, Mar 21
  • Feels like we’ve been mostly holed up the last week. Got outside for a great walk downtown today.

    → 4:19 PM, Mar 8
  • Excluding posts from the timeline

    I’ve heard from a few folks recently who would like a better way to control on a per-post basis what appears on their blog and what appears in the Micro.blog timeline. The idea is that they are effectively writing for multiple audiences, and while they might want all posts on their blog, not everything needs to appear in the Micro.blog timeline where it’s more likely to spark a conversation.

    One of the main goals with Micro.blog is to make blogging easier, so we very deliberately try to keep the posting screen uncluttered. Even basic fields like the title of a blog post don’t appear until they are needed. I’m not in a hurry to add more options, because more options can lead to confusion, making Micro.blog harder to use and more likely that someone will give up before posting.

    However, there is a lot of power underneath Micro.blog, just one step removed from the default interface. We can leverage categories to build this feature of picking which posts should appear in the timeline.

    The timeline itself is not magic. It is built from RSS and JSON feeds that tell Micro.blog where your posts are. Usually there is only one feed configured under Account → “Edit Feeds & Cross-posting”, and that feed includes all your posts. To limit what appears in the timeline, we can remove that feed and replace it with a feed that includes a more limited set of posts.

    Micro.blog-hosted blogs already have RSS feeds for each category. Today, I improved the feeds to match the default RSS feed, so that they include the full text (and any photos) instead of a truncated version of the post.

    You can create a category named something like “Micro.blog” or “Timeline” that will contain posts that you’d like to appear in the Micro.blog timeline. Categories are managed on the web under Posts → Categories. Then, remove the default feed from Account → “Edit Feeds & Cross-posting” and add the RSS feed for that new category. If the category is called “Timeline”, the URL for the RSS would look like this:

    https://your-username.micro.blog/categories/timeline/feed.xml

    Now when you’re posting, assign the new post to that category and it will appear on Micro.blog:

    Timeline checkbox

    Your followers will see that post and can reply. All other posts will still appear on your Micro.blog-hosted blog on the web, and other readers can follow those posts in a feed reader.

    → 2:11 PM, Mar 7
  • Refresh button for feeds

    While we have greatly improved the performance of publishing new posts to your microblog and refreshing feeds, there are still occasional hiccups where posts don’t appear in the timeline as fast they should. Today I’m adding an obvious feature: a refresh button!

    Refresh button screenshot

    This screenshot is from the Account → “Edit Feeds & Cross-posting” screen. The refresh button simply tries to download your feed again as soon as possible, instead of waiting in the backlog of potentially thousands of other feeds Micro.blog is checking.

    You should very rarely have to click this. Micro.blog is always checking your feeds for new posts. But if your posts aren’t appearing in the timeline right away after they show up on your microblog, this button will help speed up the process if anything is stuck because of errors.

    Behind the scenes, the refresh button is just sending POST /ping with your feed URL. This is automatic for Micro.blog-hosted sites and can be automated from external hosting as well.

    → 11:04 AM, Feb 27
  • Replies on your blog with Conversation.js

    During the project day at IndieWebCamp Austin last weekend, I built a new feature for Micro.blog that I’m calling Conversation.js. It’s a JavaScript include that lets you take a conversation on Micro.blog and drop it into your blog.

    Like a lot of Micro.blog features, it works either as a simple feature you can enable with a click, or as a more advanced API that can be customized however you’d like. If all you want to do is enable the feature, just click on Posts → Design and look for this checkbox:

    Conversation checkbox

    Behind the scenes, this checkbox is adding a new Hugo parameter .Params.include_conversation that can be used in a custom theme. All the built-in Micro.blog designs have been updated to check for this parameter and then add the following line of JavaScript:

    <script type="text/javascript" src="https://micro.blog/conversation.js?url={{ .Permalink }}"></script>
    

    This JavaScript include gathers the replies to the current blog post and adds them to your web page. The HTML elements all have class names so you can style the replies to match your site.

    See this page on my blog for how the replies look on one of my blog posts.

    If you need even more control, you can request the conversation as JSON from apps or scripts by adding format=jsonfeed to the URL. Or you can add format=jf2 to produce output that matches Webmention.io, so it’s easier to repurpose tools that already work with Webmention.io.

    Speaking of Webmention, this is not just about taking Micro.blog-only replies and putting them on your blog. Because all Micro.blog-hosted blogs support Webmention, and Micro.blog can accept mentions even from blogs that have not yet registered on Micro.blog, with Conversation.js it now becomes much more useful for other blogs to send you replies. Those replies can appear on your blog, with Micro.blog mostly acting as glue so that both blogs can talk to each other.

    I’ve been wanting to do something like this for a while. It didn’t take long at IndieWebCamp Austin when I finally sat down to code it, but I think it opens up a lot of options for Micro.blog in the future, including acting as an IndieWeb-friendly replacement for Disqus and other commenting systems.

    → 9:46 AM, Feb 25
  • End of the MetroRail line while they rip up the road around the station at the convention center.

    → 10:45 PM, Feb 23
  • Downtown can sometimes seem like a bit of a spectacle: new construction, partiers enjoying Austin, scooters everywhere. But there are still a few quiet, abandoned corners not quite rebuilt, like this place on the way to dinner.

    → 11:59 PM, Feb 22
  • Sounds like progress is being made to get the Zilker Zephyr running again. It has been closed for nearly a year. Snapped this photo of the unused tracks last weekend while we were walking on the trail.

    → 11:52 PM, Feb 21
  • Thinking of “scale” earlier tonight while I was driving, the sky lit up in color. And then minutes later when I had parked the car it was over. Just caught the very end of the sunset for this shot.

    → 10:58 PM, Feb 20
  • Somewhere up there in the sky… space. I was so busy today I almost skipped the photo challenge, but noticed this photo I shot quickly a few nights ago from the Congress Avenue bridge.

    → 11:59 PM, Feb 19
  • Scattered seats in the Apple Store, opposing any kind of symmetry or order.

    → 8:57 PM, Feb 18
  • More coffee for the photo challenge. Cool drink outside Bakery Lorraine while we waited for our Apple Store appointment to see if the dead Apple TV was fixable. Spoiler: it wasn’t.

    → 4:16 PM, Feb 17
  • Micro Meetup this Friday

    IndieWebCamp Austin is this weekend! Jean MacDonald will be in town for the event, so we’re also going to have a Micro.blog meetup on Friday evening. Anyone interested in Micro.blog is welcome to join us whether you’re attending IndieWebCamp or not.

    Easy Tiger on 6th Street, 5-7pm. Jean and I will be there a little early to get a table, probably outside if the weather’s nice. We’ll have Micro.blog stickers.

    Easy Tiger

    Hope to see you at the meetup! And you can also still register for IndieWebCamp Austin.

    → 10:48 AM, Feb 17
  • Nice spot to rest while walking the dog today.

    → 2:01 PM, Feb 16
  • For today’s photo challenge: balance. My glasses balancing on the “nosey” holder at my desk. I got this as a present a few years ago and still use it every day.

    → 11:03 PM, Feb 15
  • I usually order an iced coffee, but need a little warmth on a cold morning. Coffee at Red Horn.

    → 8:50 AM, Feb 14
  • “Rise up! I will fight for this land, but there’s only one man who can give us a command so we can rise up.”

    → 9:47 PM, Feb 13
  • I don’t have any particular attachment to Sticker Mule, and in fact once tried to switch to another sticker company, but they make it really easy to re-order stickers. New batch just arrived for IndieWebCamp Austin!

    → 11:04 PM, Feb 12
  • Gluon for iOS and Android

    Gluon is the first cross-platform mobile app for Micro.blog. It supports multiple Micro.blog accounts and features like local drafts, muting, and themes. Developer Vincent Ritter has documented the development process on his blog through several iterations of the app.

    Gluon screenshot

    Congrats Vincent! You can download Gluon on the App Store here.

    → 4:19 PM, Feb 11
  • My go-to smoothie lately: one frozen banana, frozen blueberries, a little plain yogurt, peanut butter, sometimes kale, and almond milk. Apparently everything we buy is HEB-branded now.

    → 2:08 PM, Feb 11
  • IndieWebCamp ad experiment

    We’ll never have ads on Micro.blog. It’s really important to me that it’s user-supported and the timeline only includes posts you want to see. But if ads are already on a platform like Twitter, why not use them? I’ve experimented a couple times with Twitter ads. This week I decided to run a very small campaign to help get the word out about IndieWebCamp Austin.

    I’m not sure it’s very effective, but I find the results interesting. Here’s a screenshot of the stats after the ad ran over the weekend:

    IndieWebCamp can be difficult to explain succinctly. Micro.blog can be too, for that matter. But I’ve found the IndieWeb events I’ve attended extremely valuable, both to be inspired by what people are working on and to have a little time to make Micro.blog even more IndieWeb-friendly. Hope to see y’all there!

    → 11:23 AM, Feb 11
  • I added the placeholder for the 30-day photo challenge pin. You can view your pins in Micro.blog by clicking Account → “View All” in the top header.

    30-day pin screenshot
    → 10:30 PM, Feb 10
  • The sign outside Cenote on a rainy afternoon. Coffee and work on resuming the Micro Monday newsletter.

    → 12:58 PM, Feb 10
  • Enjoying the Oscars. I like that they do best animated feature early, but then there’s always a bit of a lull until some of the later categories.

    → 8:00 PM, Feb 9
  • Today’s photo challenge prompt: contrast. Finally got some AirPods. They’re great, but still kind of miss when one pair of headphones could work reliably on all devices.

    → 11:59 PM, Feb 8
  • Follow-up on RSS in Apple News

    When Daniel Jalkut posted about Apple’s email to keep his blog active in Apple News, I commented that Apple no longer even allows RSS for new blogs. I got this mixed up, though, confusing the options for publishers with what feeds users can add to the app themselves. Nick Heer followed up to clarify:

    Nevertheless, it seems like it’s still possible — according to that News Publisher site — to create a new channel based on RSS. Existing RSS-based channels also appear to be functional still; this one is, at least. However, it is no longer possible to subscribe to an RSS feed as a user with Apple News.

    I’ve now confirmed this. Today I tested using Apple’s News Publisher with a new Apple ID, and it does let you add RSS sources. However, it really discourages it. The default is Apple News format, and when you switch to RSS you get this prompt:

    Are you sure screenshot

    As soon as you start using Apple News format instead of RSS, you can’t go back to RSS. It’s hard to tell if this was a technical limitation with how Apple News manages different feeds on the backend, or a decision to move Apple News away from RSS. Probably a little of both.

    → 11:17 AM, Feb 8
  • A sign above. We’ve been watching them expand this HEB with grocery pick-up for months and it almost looks ready.

    → 6:10 PM, Feb 7
  • It snowed last night. Still a little left on some of the plants outside.

    → 9:49 AM, Feb 6
  • This could’ve been for “reflect” or today’s prompt “hide”. Our new sticker Baby Yoda hiding on the back window of the car.

    → 10:12 PM, Feb 5
  • “Nobody goes there anymore. It’s too crowded.” Feel lucky I found a nice spot at Summer Moon this morning.

    → 9:04 AM, Feb 4
  • Trees reflecting in my car window. Today’s prompt for the photo challenge makes me think of the Mirror Project from the early 2000s.

    → 9:42 AM, Feb 3
  • Day 2 of the photo challenge. A few months ago we impulse bought this bucket list book of 1000 places because of the great photos to inspire future travel. Beautiful sights like this shot of the Milky Way from Arizona.

    → 10:03 PM, Feb 2
  • Mimi Uploader beta

    Sam Grover has been working on a new iOS app for Micro.blog called Mimi Uploader that is all about batch uploading photos to your blog. I love it because it takes a specific need and provides a really polished workflow just for that. After the upload finishes, you can copy Markdown or HTML to reference all the photos for easy pasting into another app or Micro.blog on the web.

    It’s now available as a public beta. There’s a link to the TestFlight beta on Sam’s microblog.

    Mimi selection Mimi uploading

    → 11:17 AM, Feb 2
  • First day in the 30-day photo challenge. I like how you can see the capitol building in the distance from the pedestrian bridge, despite the new buildings crowding out the skyline. It’s almost like there was a planned open space.

    → 1:09 PM, Feb 1
  • Replies hosted at your own blog

    When I was first developing Micro.blog, I made a choice that quick replies in the timeline should be stored separately from regular blog posts. I thought that most people wouldn’t want replies mixed in with their blog posts at their own domain name. I also liked that replies were simple, usually short and without images, because it makes the timeline much more readable.

    This has admittedly poked a hole in one of the most important goals of Micro.blog: owning your own content by having it at your own domain name. If someone wanted more control over their replies, they would need to use an external blog like WordPress, even though Micro.blog had great support for Webmention and cross-site replies.

    I always thought this limitation would be temporary. As I’ve been finishing up my book Indie Microblogging, this trade-off with replies from the early days of Micro.blog has become untenable for me. Storing replies outside of your Micro.blog-hosted blog, even if you can export them or move to another IndieWeb-friendly platform, is too silo-like for the mission of Micro.blog.

    Today I’m rolling out the first of a series of improvements to replies. You can now optionally have your replies on your own blog, with reply permalink URLs at your own domain name.

    Here’s a screenshot of the option on the Account screen. The popup menu will include any blog that’s hosted on Micro.blog, so you could even create a separate microblog just for replies:

    Replies option

    Replies get a new reply post type in Hugo, which is used under-the-hood for your microblog. This means they won’t show up in your default feeds or home page, although you can create a custom theme to change that.

    Micro.blog adds a few Hugo parameters that can be used for reply HTML templates:

    • .Params.reply_to_url: The URL for the post you are replying to.
    • .Params.reply_to_hostname: Just the hostname part of the reply-to URL.
    • .Params.reply_to_username: The username for the Micro.blog user you’re replying to.
    • .Params.reply_to_avatar: The URL for the Micro.blog user’s profile photo.

    I’ve added a new template in the Marfa theme to use these:

    Blog reply

    There’s also a new page at yourblog.com/replies with the most recent replies. If you enable pagination under your blog’s settings, that page will expand to show all your replies.

    It’s still early for this feature, and for now I’ve made some of these customizations only in the Marfa theme. Consider this new plumbing that you can take advantage of in your custom themes, with more improvements to follow later so this works as consistently as possible across all the built-in designs. But it is a major step to strengthen the IndieWeb principles in Micro.blog.

    → 11:02 AM, Jan 27
  • I put this print from Nan Lawson on the wall in my office as a Frozen-inspired reminder not to get overwhelmed by the big stuff. Just do the next right thing.

    → 12:01 PM, Jan 13
  • Found a bird nest while taking down the Christmas lights on the house.

    → 6:48 PM, Jan 11
  • My daughter took apart one of her old typewriters last week, trying to fix it. No luck, but I love the way it looks inside.

    → 12:43 PM, Jan 10
  • We picked up Secret Hitler over the holidays and loved playing it. Great for 5-10 players.

    → 8:19 AM, Jan 3
  • Happy Holidays! Baby Yoda fitting in nicely with the other Christmas decorations.

    → 8:17 PM, Dec 26
  • Our little holiday scene in the front yard. Turns out an upside-down tomato cage makes a good Christmas tree frame.

    → 9:23 PM, Dec 10
  • Microblogvember pin

    I’ve finished adding the special pin for anyone who participated in the Microblogvember challenge. Jean MacDonald also has an emoji recap of all the challenge prompt words.

    November pin

    There’s a link at the top of your Account page in Micro.blog, or click here to view your pins. If you don’t see the pin yet, it should appear whenever you post to your microblog next, which tells Micro.blog to check for new pins again.

    Because some people started late or posted twice in one day, the “algorithm” for calculating the pin isn’t very strict. If you were blogging regularly in November and used 30 of the prompt words from the challenge, you’ll get the pin. This was a lot of fun and I hope we can do more challenges like this in the new year.

    Now is also the perfect time to unlock the “Happy Holidays” pin by posting to your microblog with something about the winter holidays. It’ll match on a bunch of keywords including Christmas, Hanukkah, Santa, snow, reindeer, and a few others. Enjoy! ❄️

    → 4:24 PM, Dec 8
  • Misty morning at the Christmas tree farm in Elgin.

    → 3:10 PM, Nov 29
  • Baby Yoda yarn! @traci bought a crochet pattern online. 🧶

    → 10:15 AM, Nov 28
  • Morning hike at Pace Bend over the weekend. 🏕

    → 9:37 AM, Nov 25
  • Beautiful outside today at Mueller.

    → 2:10 PM, Nov 19
  • Working on the book. When it goes live on the web, it will be published as a Micro.blog-hosted site with a little JavaScript for auth. The new Lanyon theme’s sidebar works great for the table of contents. The draft is 50 short (micro!) chapters in 6 parts.

    Book contents screenshot
    → 10:47 AM, Nov 19
  • Blazers in Houston with @cheesemaker.

    → 9:09 PM, Nov 18
  • Barton Creek earlier today, right before the temperature dropped.

    → 4:25 PM, Nov 11
  • Dear coffee.

    → 10:42 AM, Nov 7
  • Micro.blog filters with post length

    There’s a powerful filter mechanism inside Micro.blog for automatically assigning categories based on criteria in the post. For example, if the post includes an img tag, assign it to a Photos category. Or if the post includes the 📚 emoji, assign it to a Books category. I blogged about this in September.

    Today I’ve expanded this feature to also allow matching on whether the post is a short microblog post or whether it’s a longer post with a title. Like other parts of Micro.blog, it uses the title to determine how to categorize the post. Posts without titles are always considered short microblog posts.

    To create new filters, go to Posts → Categories → Edit Filters.

    Filter screenshot

    You can use this in combination with matching the title or text in a post, or leave those fields blank when creating a filter to match all posts. This makes it easy to move all full-length posts into a category, which can also have its own RSS feed.

    → 9:29 AM, Nov 6
  • Lanyon theme on Micro.blog

    There’s a new built-in theme available on Micro.blog called Lanyon, based on the open source Hugo theme of the same name. It’s a clean, readable design with a slide-out menu for page links.

    Lanyon theme screenshot

    I’ve been working on getting several new themes ready for Micro.blog. Some Hugo themes work with only a couple tweaks, and some take more time. My fork of Lanyon with Micro.blog-specific changes is on GitHub.

    → 9:57 AM, Nov 5
  • Icro for Mac

    Two new versions of the third-party Micro.blog app Icro have been released. The iOS version now supports push notifications, and a new version is available for macOS for the first time.

    Icro for Mac screenshot

    Because the official Mac app is distributed as a direct download, this is actually the first Micro.blog app available in the Mac App Store. It was ported to macOS using Catalyst, so it requires Catalina, which I just upgraded to. It’s great to have another microblogging option on the Mac!

    → 7:44 AM, Nov 5
  • Marking the halfway point on our walk today, took this photo of downtown Austin from the pedestrian bridge. Day 2 prompt for Microblogvember.

    → 4:26 PM, Nov 2
  • Ginger, 2008 - 2019.

    Ginger
    → 7:00 PM, Oct 30
  • Register your domain name on Micro.blog

    Since the very beginning of Micro.blog we’ve encouraged you to use your own domain name with your microblog. It’s the best way to control your content and an important principle of the IndieWeb. Now it’s even easier.

    If you don’t have a domain name yet — or need a new one! — Micro.blog can handle registration for you. We are using the Name.com API to purchase and configure the domain name for you. Payment is handled on your existing Micro.blog subscription and everything is automatic. No messing with DNS records.

    Here’s a screenshot of finding a domain name, which is linked under the domain name section on Posts → Design:

    Micro.blog screenshot

    I’m very excited about this feature. We’ll be expanding it based on feedback but it is already quite powerful, even including email forwarding. And of course, you can always register a domain name elsewhere on the web and point it to Micro.blog.

    → 11:23 AM, Oct 29
  • Swarm check-ins and Micro.blog

    Following my experiment with importing Foursquare data, I’ve officially updated Micro.blog to support storing location information. The Micropub API now accepts checkin and location properties for sending venue name, URL, latitude, and longitude to Micro.blog. This works with the JSON format in OwnYourSwarm, which connects Foursquare/Swarm to your microblog.

    Micro.blog on the web and the native apps do not send any location information. Right now this is purely an opt-in feature for third-party apps like OwnYourSwarm and custom solutions using the API. We consider location information very private and will never enable it automatically.

    When a post has location information, you can see the coordinates in the posts list on your account:

    Location screenshot

    The default Micro.blog themes do not currently do anything with this information. You can create a custom theme to access the coordinates as custom parameters, like this:

    {{ if .Params.location_latitude }}
      <img src="https://example-mapping-service.com/?center={{ .Params.location_latitude }},{{ .Params.location_longitude}}" />
    {{ end }}

    The 4 available parameters are location_name, location_url, location_latitude, and location_longitude. The venue name is automatically prepended to post content so that no theme changes are necessary. I’d like to explore offering maps as a built-in feature in the future. Enjoy!

    → 9:03 AM, Oct 28
  • Toronto photos

    Years ago my wife and I were in Vegas and had a chance to see Elton John… and missed it. This year, when I realized he was playing in Toronto on the night of our 20th anniversary, I bought tickets as a surprise birthday gift and we planned a short trip around the concert.

    We arrived in the late afternoon earlier this week, took the airport train to Union Station and the subway to our hotel, then went down to Polson Pier to catch the sunset. We had dinner and explored the Distillery District before checking out Jurassic Park for the Raptors game — too late, they had already closed it off — and settling for beers at the sports bar next door to watch the end of the game.

    The next day we did a bike tour of the city. On the way to meet the guide, we wandered down a street to look at the trees and a woman said hi as she walked by. Realizing we were tourists, she stopped and told us that she had been friends with Jane Jacobs, who lived just a block away. There’s a sign outside her old house.

    The bike tour was a great way to see a bunch of Toronto. Murals, CN Tower, trains at Roundhouse Park, sculptures at Ireland Park, the university, and several neighborhoods. We stopped for hot chocolate and then back on our own visited a couple libraries including the Sherlock Holmes room at the Toronto Reference Library.

    Dinner in Little India and then the streetcar back for the concert. We loved it. Even with just a couple days we really got a lot out of visiting the city. Looking forward to coming back one day.

    → 1:58 PM, Oct 26
  • Clouds lit up tonight just after sunset.

    → 8:53 PM, Oct 20
  • Layers of highways near Fort Worth.

    → 2:06 PM, Oct 14
  • Mural outside Twisted Root in Waco.

    → 2:43 PM, Oct 13
  • We forgot to take a group shot at the IndieWeb Meetup in Austin last week, but just noticed as I was flipping through photos that I had this one of my iced coffee and stickers. Next meetup is Nov 6th.

    → 2:04 PM, Oct 8
  • Someone’s lost key in an empty parking lot.

    → 2:58 PM, Oct 7
  • Happy Hour at NXNW. 🍺

    → 6:37 PM, Sep 30
  • Filter posts into categories

    As more Micro.blog bloggers use categories to organize their posts, I want to keep making categories more useful while retaining the simplicity of microblogging by default. Today we’ve added an option on the web (under the new “…” button when starting a new post) to choose categories right as the post is being created, as well as a new interface that can filter blog posts into categories based on the text in those posts.

    For a while we’ve had a feature to automatically filter photo posts into a category. If you create a category called Photos or Photography, Micro.blog gives you this simple checkbox on the categories screen:

    Photos checkbox

    This is powered by filters that look for a match in the title or text of a post and then set a category for you automatically. These filters can now be managed from a new “Edit Filters” button on the categories screen on the web:

    Filters list

    By default, filters are applied to new posts only. To also apply the filter to all posts, there’s a new “Run Filter” button. For blogs with thousands of posts, make sure to give Micro.blog a little time to update all your posts and publish them to your blog.

    → 12:35 PM, Sep 24
  • Sending email for Sign in with Apple

    When we released Micro.blog 1.7 for iOS last week with Sign in with Apple support, Micro.blog could not actually send email to Apple’s private relay server. This is an issue that has popped up on the Apple developer forums and likely affects many developers. I was so excited for Sign in with Apple that I thought it was worth shipping anyway, crossing my fingers that we could resolve it shortly after iOS 13 was out.

    Apple’s private email relay server is almost completely undocumented. In this blog post I’ll describe how I got it working.

    The key issue is that the “return path” of your emails must be using a subdomain that can be verified by Apple. This blog post from SendGrid describes the solution in detail. I was happy to discover that I could customize this in the settings in Mandrill as well under Settings → Sending Defaults:

    Return path screenshot

    Here are the steps I took:

    • Create a new subdomain. I decided to use mail.micro.blog. Set the TTL to just 1 minute, because you will need to change the DNS record multiple times during this process.
    • Initially the subdomain should be a CNAME to your email provider. Mine was set to mandrill.com.
    • Make sure you have SPF records for this new subdomain. Mandrill will walk you through this when you add a new subdomain under Settings → Domains → Tracking & Return Path Domains.
    • Start registering the new subdomain in Apple’s developer portal. Apple will check the SPF records at this point. After you click Register, download the verification file.
    • Create a new web site somewhere for your subdomain and update your DNS record to now point to that web host instead of Mandrill. The web site must support the latest encryption settings for HTTPS or it will mysteriously fail verification from Apple.
    • I put the subdomain on GitHub Pages so I didn’t need to spin up a new server somewhere for it. If you use GitHub Pages, make sure to create .nojekyll file so that the .well-known folder that Apple needs isn’t skipped.
    • Upload the apple-developer-domain-association.txt file from Apple to the new subdomain web site. Wait a few extra minutes to make sure the DNS has changed before clicking Verify at Apple.
    • Also verify your root domain name and add the from email address you will be using to send email. Here’s what my settings look like when everything is working:
    Apple screenshot

    And finally:

    • Change the DNS record for your new subdomain to point it back to mandrill.com.
    • If any previous emails had already bounced, remove those from Mandrill’s blacklist under Settings → Rejection Lists so they will try to send again in the future.

    As I type all of this out, I still can’t believe it’s so complicated. Apple should both document this and remove as much friction as possible, for example by allowing domain names to be verified by DNS records alone and providing much more detailed error messages when things go wrong.

    → 1:35 PM, Sep 23
  • Sign in with Apple in Micro.blog

    We added Sign in with Apple to the next version of Micro.blog for iOS 13. It can be used to sign in to an existing Micro.blog account, or to create a brand new Micro.blog account right from iOS. It is the fastest way to start blogging.

    Because Micro.blog doesn’t have passwords, in previous versions we had to send you an email to confirm signing in. With Sign in with Apple, we can skip this email verification and quickly sign you in with Touch ID or Face ID.

    If you have an existing Micro.blog account and use Sign in with Apple with the same email address, you’ll be signed in to your current account. If you pick an email address that doesn’t match the email address used in Micro.blog, or if you choose Apple’s private email relay, Micro.blog will create a new account and start a hosted blog trial for you.

    A few things to be aware of:

    • You can have multiple email addresses associated with your Apple ID. When signing in, make sure to pick the one that is used by Micro.blog.
    • If you accidentally create a new Micro.blog account, you’ll want to delete it so that you can sign in to your real account.
    • Micro.blog cannot currently send email through Apple’s private relay service. I hope this will be resolved soon.

    This update to Micro.blog ships on Thursday with iOS 13. If you’re already running iOS 13, you can try this update early by joining the TestFlight beta.

    → 10:27 AM, Sep 17
  • Picked up our car today. Loved everything about ordering online and the car vending machine experience.

    → 1:32 PM, Sep 7
  • Mural outside Brick Oven after lunch. 🍕

    → 12:58 PM, Sep 6
  • Micro.blog test blogs

    Blogs hosted on Micro.blog provide a lot of flexibility with custom CSS, themes, and Hugo templates. But if you are making major changes to the design of your blog, you may not want to do that live and risk breaking anything for your site visitors.

    I often test out changes on a 2nd fake blog I created on Micro.blog. It’s like an extra sandbox that I can play in to edit templates without touching my real blog, and it’s useful enough that I want everyone else to be able to do the same thing.

    Micro.blog now lets you create a free test blog for your account with a URL like username-test.micro.blog. There’s a button to create the test blog under Posts → Design → Edit Custom Themes. It will appear as a free 2nd blog on your account, and you can post to it, upload files, or try out custom themes.

    Test button screenshot

    Because custom themes on Micro.blog can be shared across multiple blogs, when you’re happy with any changes you’ve made in your new theme, you can assign the theme to your main blog and all those changes will be applied to both sites. I’ve also added a “duplicate” option that makes a new copy of the theme so you can edit templates in the duplicate theme on your test blog.

    → 9:27 AM, Sep 4
  • Mastodon remote follow

    I’ve updated Micro.blog today to help Mastodon users follow people on Micro.blog. It used to be that if you clicked from Mastodon to a Micro.blog user, you just ended up their blog home page. Now it redirects to a special version of the Micro.blog profile screen which includes a follow form.

    Remote follow screenshot

    This is very similar to Mastodon’s default remote follow form, or Aaron Parecki’s profile page. For more about how to use your own blog’s domain name as your Mastodon-compatible username, see this Micro.blog help page about ActivityPub.

    → 10:32 AM, Sep 3
  • The wall outside Fabled Bookshop in Waco.

    → 6:56 PM, Sep 1
  • Waco Mammoth National Monument.

    → 4:47 PM, Sep 1
  • Tumblr cross-posting

    I’ve decided to add Tumblr as a cross-posting service in Micro.blog. This means Micro.blog can take your blog posts and automatically copy them to a Tumblr blog.

    I usually avoid adding blog hosting services to Micro.blog’s available cross-posting destinations. After all, if it’s a good blog host that I could recommend as your primary blog, why not just post everything there instead of using Micro.blog’s own blog hosting? But the more I’ve used Tumblr in the last couple of weeks, the more I think about Tumblr as a community first and a blog host second.

    To add a Tumblr blog in Micro.blog, on the web click Account → “Edit Feeds & Cross-posting” → “Add Tumblr”.

    Micro.blog screenshot

    In related news, I’ve removed the upload file size limit when importing a Tumblr blog archive to use Micro.blog hosting. If you have a Tumblr, Medium, or WordPress blog that you’d like to migrate to Micro.blog, click Posts → Import.

    → 9:47 AM, Aug 23
  • It only took buying 4 packs of LEGO minifigures to get Mickey from Steamboat Willie.

    → 4:38 PM, Aug 20
  • Dark mode preview for iOS 13

    In all the Mac and iOS software I’ve worked on over the years, I don’t think I’ve ever had a new release ready as soon as Apple shipped their major updates to macOS or iOS. The timing just never works out, so I update a couple of weeks or months later. For iOS 13, I’m finally ahead of the game.

    I just updated the beta of Micro.blog for iOS with a couple fixes, especially for dark mode on iOS 13. There’s more to do, but I feel really good about being able to have this ready.

    Micro.blog dark mode

    If you’re running the beta of iOS 13, you can sign up for the Micro.blog beta here. Thanks for testing!

    → 12:54 PM, Aug 16
  • Tumblr integration with Micro.blog

    I’m excited to see where Automattic takes Tumblr, but even today there are already several Tumblr-related features built in to Micro.blog. Here are a few ways that Micro.blog can integrate with Tumblr.

    Follow Tumblr users on Micro.blog: Micro.blog tries to play nicely with the rest of the web, so you aren’t limited to just following Micro.blog users. To follow someone’s Tumblr blog, on Micro.blog click Discover, then click the search icon, and enter their Tumblr domain name:

    Tumblr follow

    Click on the Tumblr user to preview their posts and follow them. Now when they post to their blog, those posts from Tumblr will appear in the Micro.blog timeline. Short posts, photo posts, and art from Tumblr look great in Micro.blog.

    Add your Tumblr feed to Micro.blog: If you actively post to Tumblr and also have a Micro.blog account, you can add your Tumblr RSS feed to Micro.blog so that when someone follows you on Micro.blog, they see posts from both your main microblog and your Tumblr blog.

    Click Account → Edit Feeds & Cross-posting, then paste in your Tumblr RSS feed:

    Tumblr feed

    Import your Tumblr blog to Micro.blog: Maybe you no longer maintain your Tumblr blog and want to move your old posts over to Micro.blog. First, export your posts from the Tumblr dashboard. That will give you a .zip file you can import into Micro.blog under Posts → Import.

    → 1:20 PM, Aug 15
  • Photo challenge for yesterday, day 7: relief. Making it all the way through IKEA without buying everything.

    → 9:11 PM, Aug 12
  • Podcast download stats

    Micro.blog is not a popularity contest. We don’t have follower counts or public likes because we think those numbers have overshadowed more important aspects of blogging, like the quality of writing and engagement within the community. But we do hear from podcasters using Micro.blog who hope to one day have sponsors for their podcast, and so they do need to know approximately how many listeners they have.

    Today we’ve added a setting to enable basic MP3 download counts if you’re hosting your podcast on Micro.blog. It is off by default. It’s likely that most podcasts — especially podcasts that are just getting started — do not have many listeners, and that’s fine! If you don’t plan to have sponsors for your podcast, you can ignore this setting.

    It takes time to build an audience. Don’t get discouraged. There’s value in telling your story whether it reaches 5 people or 500. I love recording my microcast Timetable because it helps me think through things I’m working on and share that process with anyone who is interested in Micro.blog.

    There aren’t any fancy graphs for this feature. Just a download number for each episode under Posts on the web, next to the “Edit” and “Delete” buttons. You can enable it with a checkbox from Posts → Design. Micro.blog is not tracking the downloads until you enable it, and it doesn’t count you viewing your own podcast, so initially there won’t be anything to see until your podcast feed is refreshed and your MP3s are downloaded again.

    Micro.blog stats screenshot

    With this setting enabled, Micro.blog modifies your podcast feed to use different MP3 download URLs. It may take some time before the new URLs make it to all your listeners.

    Micro.blog’s download tracking does not closely follow the IAB guidelines yet. It is intended as a rough estimate. I’ll be working toward IAB compliance in the future.

    Happy podcasting! Let me know if you have any feedback.

    → 12:09 PM, Aug 12
  • Catching up on @macgenie’s photo challenge. I was working at Whole Foods for day 5, and I love the optimism halfway up the stairs. Determination to keep going. No matter which way you’re headed, you’re almost there.

    → 4:10 PM, Aug 11
  • Great photo challenge from @macgenie. First day is “patience”. As in: don’t speed in the neighborhood. You’re not going to get there any faster.

    → 7:13 PM, Aug 5
  • Even though I‘ve always lived in Austin, I often feel like a tourist whenever I’m downtown. My photo library is full of pictures of the capitol and old buildings.

    → 9:42 AM, Aug 5
  • Old train depot in Elgin.

    → 4:12 PM, Jul 28
  • This is one of the most unique Airbnbs I’ve stayed at. Also beautiful inside. Near Round Top, Texas.

    → 5:48 PM, Jul 27
  • New photos page for Micro.blog-hosted blogs

    I love photo blogs. Last year, Jonathan LaCour wrote Microgram to allow anyone on Micro.blog to paste in a little JavaScript on their blog to show a grid of photo thumbnails. This has been a really popular add-on for Micro.blog — thanks Jonathan! — but we knew we’d eventually need this as a built-in feature.

    Today I’ve added a new page for photos so that new blogs hosted on Micro.blog get something that works out of the box without JavaScript. We’re starting with a simple grid of photo thumbnails similar to Microgram, each linking to the microblog post, and I’d like to expand it with more options in the future.

    Photos grid screenshot

    It uses CSS Grid Layout, so you can also customize a bunch of things without changing the template. For example, to change it to 5 equally-spaced columns, click Posts → Design → Edit CSS and paste in:

    .photos-grid-container {
      	grid-template-columns: 20% 20% 20% 20% 20% !important;
    }
    

    This new photos page is created automatically for any new blogs on Micro.blog going forward. If you already have a page called “Photos” and want to switch to using the new page, you can delete the page you created manually. Micro.blog will then show a “New Photos Page” button to create one of these new pages for you. (You can also rename or re-order the page.)

    Photos button screenshot
    → 8:10 AM, Jul 26
  • Podcast categories updated on Micro.blog

    Apple this week rolled out an updated list of categories for their podcast directory. Some old categories were removed and new categories added. It’s a better fit for what the podcasting world looks like now.

    If you have a podcast hosted on Micro.blog, I’ve updated Micro.blog today with the new categories. On the web, click Posts → Design to see the new list. (Your current category will continue to be used until you update your podcast settings.)

    Categories screenshot

    Thinking about starting a podcast? Micro.blog podcasting is $10/month and also includes a full blog and video hosting.

    → 9:11 AM, Jul 25
  • Copy HTML for photos

    Micro.blog makes it really easy to post some text and a photo to your blog, but sometimes you want a longer post that includes multiple photos. Because Micro.blog puts all the photos at the end of your post by default, I’ve noticed some people looking for an easier way to draft longer posts.

    I’ve added a new “Copy HTML” button next to photos on the Uploads screen in Micro.blog. Using this button, you can first upload multiple photos, then copy and paste the right HTML reference into your blog post draft wherever you want. Happy photo-blogging!

    Screenshot of uploads
    → 3:20 PM, Jul 21
  • Detoured because of traffic, crossing the tracks on the back roads outside of San Antonio.

    → 5:35 PM, Jul 20
  • Looking up.

    → 4:21 PM, Jul 19
  • Land and sky stretching out from the north Mopac and 45 toll road. I hope this stays undeveloped for as long as possible.

    → 7:28 PM, Jul 13
  • The next update to Micro.blog for iOS will support Dark Mode on iOS 13. There are still several things to fix, but here’s a sneak peek screenshot of one of the first builds.

    → 1:14 PM, Jul 11
  • I’ve always liked the 36 Hours travel series in The New York Times, so as we’ve been used-book shopping recently, I’ve started picking up the collections. They’re from 2013 but still really nice. 📚

    → 1:54 PM, Jul 10
  • 15th street as the sun was setting.

    → 10:30 PM, Jul 9
  • Started the morning with a long walk, listening to podcasts and trying to put together all the pieces of today’s schedule in my head.

    → 8:31 AM, Jul 8
  • Cloudy at sunrise this morning, but still great view of the lake from Mount Bonnell.

    → 12:24 PM, Jun 23
  • Hot today in Austin. Downtown, walking past the Capitol before lunch.

    → 12:06 PM, Jun 21
  • Failed donut shops

    On road trips lately, I’ve been fascinated by out-of-business donut shops. If it’s late in the afternoon, sometimes a donut shop is just closed for the day. But it seems like many are closed for good, the old fryers and cooling racks gathering dust.

    Why is this? My guess is that the startup costs for opening a donut shop are less expensive than many types of restaurants. There’s nothing special about a donut shop except that it’s fairly easy to get started, but no guarantee of success, especially in a small town. Most businesses fail.

    → 12:19 PM, Jun 18
  • WWDC 2019 wrap-up

    Finally getting around to posting this. The last couple of weeks since WWDC have been busy. But as I usually do, I still want to capture a little of the week in San Jose. (Looking back on my old posts about WWDC from the 2000s is a great reminder of what the earlier conferences were like, and I wish I had more of those posts.)

    Arriving Saturday evening in San Jose, I rented a car and checked into my Airbnb. This is the first time I’ve tried Airbnb for WWDC. Hotel prices are out of control and I thought it would be a good way to see a different part of the city. Daniel and I caught up over dinner.

    Sunday morning I drove up to San Francisco. I’ve made it a tradition to visit the Walt Disney Family Museum every year, and moving the conference to San Jose hasn’t deterred that. I stopped at Blue Bottle Coffee in San Mateo on the way.

    The special exhibit at the museum was Mickey Mouse drawings. It was an incredible collection. Afterward I had a bite to eat at the Presidio Picnic. Fog covered the Golden Gate Bridge.

    Golden Gate Bridge Golden Gate Bridge Golden Gate Bridge

    I picked up Jon Hays from SFO on the way back, and we stopped at the new visitor center for Apple’s spaceship campus, then got coffee and lunch down the road at Chromatic Coffee. Also detoured slightly for a quick look at Winchester Mystery House. (Skipped the $39 tour. Ouch.)

    Golden Gate Bridge Golden Gate Bridge

    I didn’t need the rental car anymore, so we dropped it back at the airport and took an Uber downtown, planning to go to sfMacIndie and watch game 2 of the NBA finals. That’s when the evening went completely off the rails. We were cruising down the highway and someone rear-ended our Uber so hard it felt like the car was standing still. Everyone was shaken up but okay.

    The keynote was packed with new stuff. I knew this was going to be a big year, but I was expecting most of the news to be around Marzipan (Catalyst). That ended up being a small part of the morning. I watched the keynote from AltConf and worked on highlighting WWDC-related posts in our new Discover section for the conference.

    I was feeling a little out of it most of the morning. As the day progressed and I saw friends or met new folks, I started to feel better. Brent Simmons held a NetNewsWire meetup in the afternoon.

    Tuesday at lunch was our Micro.blog WWDC meetup. This is the 3rd year in a row we’ve held the meetup. It was great catching up with everyone. If you made it to the meetup, thank you! I sent an email to everyone who had RSVP-ed.

    That night was The Talk Show Live with John Gruber and his guests Craig Federighi and Greg Joswiak. Great show.

    A side note about electric scooters. There was a bike lane all the way back to my Airbnb, so I tried to use scooters whenever possible. I had never seriously ridden one before. When they work, they're great, cutting a Lyft ride from $7 to $2.)

    But I also had several scooter frustrations. Scooters that wouldn't unlock. Scooters that would stall, presumably because the GPS wasn't working well. Scooters that would just go slow for no reason. I got lost once because I didn't stop often enough to check a map, going way off course while the Bird clock ticked away.

    My conclusion: scooters are fine when you're going about a mile and there's a bike lane. Less than that, you should walk. More than that, you should Lyft. Daniel and I talked about WWDC and scooters on Core Intuition 376.

    Wednesday morning I stopped for coffee on 2nd street for a little work before walking over to AltConf. My flight was in a few hours so I had just enough time for one session: Leah Culver’s talk on making the podcast app Breaker as crash-free as possible. (Leah also co-founded Pownce back in 2006. I’m hoping to interview her for my book, Indie Microblogging.)

    This was a bit of a strange year for me. While I’m sorry I missed some people and some events, I think it was good that I was back home early. I’m not going to make any other conferences this year. If you’re looking for places to go, I highly recommend IndieWeb Summit in Portland later this month, and Release Notes in Mexico in the fall.

    Apple’s new stuff didn’t disappoint. I’m most excited for Catalyst and Sign In With Apple, which I blogged about here. These are both very practical solutions to real problems. The new iPadOS improvements are also welcome, and I’m looking forward to experimenting with SwiftUI. Overall, a great WWDC.

    → 7:43 AM, Jun 18
  • Spent the weekend in Tyler, Texas. This is the Cotton Belt Depot. Built in 1905 and now used partly as a train museum.

    → 3:25 PM, Jun 16
  • Worked from the coffee shop this afternoon, then found this deer in our front yard as I was arriving back home. Hello.

    → 4:54 PM, Jun 14
  • Micro.blog at WWDC

    It was a good week at WWDC. Micro.blog helped sponsor last night’s LIVE near WWDC concert, and we held our 3rd annual meetup on Tuesday afternoon. I just sent the following email to everyone who RSVP-ed to the meetup.

    Thanks to everyone who was at our WWDC meetup! If you couldn’t make it, or I missed talking to you in person, you can always send me an email if you have any questions or feedback.

    Throughout the week at WWDC, I was asked how Micro.blog is going. New people join the platform every day, thanks to word of mouth, blog posts, and even mainstream stories like the article in The New Yorker. I’m an optimist. I believe if more people blog and use open tools, the web will be better, and platforms like Micro.blog will thrive.

    But it doesn’t happen by accident. Facebook and Twitter are massive platforms. Our team at Micro.blog is tiny. Every time you tell someone about Micro.blog it makes a difference. Every paid subscription gets us a little further.

    I hope everyone has enjoyed their time in San Jose! Your support of Micro.blog means a lot.

    → 8:24 PM, Jun 6
  • Flying over downtown Austin and the UT campus on the way back from WWDC.

    → 8:19 PM, Jun 5
  • Micro.blog meetup details for WWDC 2019

    The 3rd annual WWDC Micro.blog meetup will be today at 12pm outside Grace Deli & Cafe. If you’re attending WWDC this week, grab a to-go box lunch and meet us there, or you can get a sandwich or wrap first from the cafe. Jean, Jon, and I will be there until 2pm.

    It’s less than a block from the convention center: 303 Almaden Blvd. View the location in Google Maps or Apple Maps.

    Grace Deli

    We’ll have some more Micro.blog stickers and we’ll also be giving away a VIP ticket to the LIVE near WWDC benefit concert for App Camp for Girls. We’d love to talk to anyone who is currently using Micro.blog or interested in learning more about indie microblogging.

    Hope to see you there! Thanks for all your support.

    → 11:44 AM, Jun 4
  • For the 30th and final day in a row of visiting parks: Zilker. Brought a picnic to have above Lou Neff Point, looking out over Barton Creek and across the lake to downtown Austin.

    → 1:26 PM, May 31
  • For the second-to-last day of 30, I picked Mayfield Park. Known for its peacocks, and right next to Laguna Gloria and not far from Mount Bonnell, Mayfield has some trails that lead down to the lake or creek.

    → 10:46 AM, May 30
  • Earlier this afternoon, looking over the field to Elisabet Ney Museum across the street from Shipe Park. Loved spending a little time visiting the museum as well.

    → 9:27 PM, May 29
  • I was nearby in Round Rock, so stopped at Shirley McDonald Park. There’s a pond with ducks. Some people were fishing.

    → 3:45 PM, May 28
  • Saved one of my favorites for the last week of parks. The trail at St. Edward’s Park off Old Spicewood Springs.

    → 6:47 PM, May 27
  • Bridge connecting Blunn Creek Greenbelt with Little Stacy Park. I grew up near here and spent many lazy days as a kid exploring by the creek.

    → 3:05 PM, May 26
  • Pease Park along Shoal Creek, with an interesting new sculpture by Patrick Dougherty.

    mp-photo-alt[]=

    → 9:37 PM, May 25
  • Last week of parks

    At the beginning of the month, I started a new blog post series: visiting a city park each day for 30 days. I’m now 23 days in, wrapping up the final week before I leave for WWDC in San Jose. For some parks, we’ve brought a picnic lunch, and for others I’ve sat with my iPad and worked on blog posts or the upcoming book. A few days there wasn’t time for anything but a short walk around and photo.

    Unlike my previous 30-day series for libraries and coffee shops back in 2016, I’ve been consistent about taking a photo every day, which I’ve collected together as thumbnails on the main page:

    Parks grid

    Watching that grid of photos grow from a single photo to dozens is a daily reminder of how progress works on anything. It’s slow, but there’s confidence in seeing a project go from possible to inevitable.

    This is really what blogging is all about. It’s not just the individual posts that matter. It’s also the collection, built over time with a system designed to encourage regular posting. I love that at the end of this 30-day series I’ll have a web page with photos of parks all over Austin, and bits of text that capture a small part of what each park was like.

    → 10:52 AM, May 25
  • Abandoned tracks cut through the side of Metz Park.

    → 1:38 PM, May 24
  • Jessica Hollis Park at the top of Lake Austin next to Mansfield Dam. Warm day. No one here except a couple kayakers.

    → 3:46 PM, May 23
  • Great hiking trail through the trees along the creek at Great Hills Park.

    → 4:09 PM, May 22
  • Springwoods Park. Short trail in a loop around the park. Also has a Little Free Library.

    → 8:30 PM, May 21
  • Field of wildflowers at Brushy Creek Lake Park.

    → 1:03 PM, May 20
  • Tanglewood Park earlier this evening, posting now after watching the final episode of Game of Thrones.

    → 9:10 PM, May 19
  • The branches of a huge oak tree over our picnic today at Harper Park, catching up on feedback about The New Yorker article.

    → 6:42 PM, May 18
  • Bartholomew Park.

    → 4:30 PM, May 17
  • Beautiful afternoon in the shade at Rattan Creek Park.

    → 3:26 PM, May 16
  • Following other blogs on Micro.blog

    After launching support for Mastodon on Micro.blog, I blogged about how Micro.blog is evolving to support 3 types of usernames: normal Micro.blog users, Mastodon users, and IndieWeb-friendly domain names. This last type of username is where I think we can bring more social network-like interactions to the full web.

    Here’s an example. In a post on Micro.blog, you can @-mention someone’s blog by including @domain.com in the post, using their domain name. If that blogger’s site supports Webmention, Micro.blog will send your mention to their blog, where it could be included as a comment.

    I’ve been testing a new feature for this type of username in Micro.blog. You can now follow blogs in the Micro.blog timeline, even if the blogger hasn’t yet registered on Micro.blog. On the web, click Discover, then click the search icon, and enter their domain name. Micro.blog will auto-discover their JSON or RSS feed, letting you follow their blog just as you would follow any Micro.blog user.

    Search field

    This feature is designed for blogs with a custom domain name. It assumes one blog, one user, one domain name, so it doesn’t work to follow specific feed URLs yet. You’ll still want a traditional RSS reader for sites that have multiple feeds.

    I’ll continue to improve this based on feedback, and start adding it to the native apps. Micro.blog is already one of the most open platforms of its kind, and I think this has a lot of potential to take it a step further.

    → 1:21 PM, May 16
  • Downtown today for lunch and errands. This is Edward Rendon Sr. Park just east of I-35.

    → 2:32 PM, May 15
  • El Salido Park.

    → 6:37 PM, May 14
  • Worked at the downtown library today, then walked over to Shoal Beach at Town Lake Park.

    → 7:06 PM, May 13
  • Driving back to Austin, we stopped for a picnic at Stude Park in Houston.

    → 2:53 PM, May 12
  • For day 10 trying to visit 30 parks in a row without missing a day, the weather did not cooperate. Rain and flash flooding this afternoon in Lafayette. Caught a late shot of the pond at Girard Park.

    → 9:04 PM, May 11
  • Another road trip day. This is the suspension bridge in Waco earlier today, from Indian Spring Park. Built in 1870.

    → 7:19 PM, May 10
  • Trailhead Park not far off 620. Plenty of space, tables, and a 3-mile hiking trail. I sat and edited chapter drafts on my iPad. Might be back one day to check out the trail.

    → 3:15 PM, May 9
  • Pouring rain today. Quick road trip, stopped for a burger at Hat Creek in Georgetown, right above Blue Hole Park. San Gabriel River rising up over part of the sidewalk.

    → 12:17 PM, May 8
  • Mueller Lake Park for day 6 of visiting parks for 30 days in a row. Plenty of benches and tables. Bonus: Halcyon is across the street to cool down with an iced coffee.

    → 1:23 PM, May 7
  • Sculptures by Jim Thomas at Chisholm Trail Crossing. Unfortunately no picnic tables, but I sat near the sculptures and did some writing. Small park that stretches down to Brushy Creek.

    → 12:06 PM, May 6
  • New home page for Micro.blog

    We’ve launched a redesigned home page for new users on Micro.blog today. The old design was a little too sparse and didn’t do a very good job of explaining what Micro.blog is. The challenge is that Micro.blog is really 2 things — a blog hosting platform and a social network for microblogs — so the new design reflects that with a 2-column layout.

    New home screenshot

    To give an example of what posts on Micro.blog look like, we include recent posts from the Discover section directly on the home page. There are also profile photos of the team members at the bottom so that new users have a better idea of who is behind the platform.

    → 7:36 AM, May 6
  • Nice day at Emma Long Park on Lake Austin.

    → 3:11 PM, May 5
  • Today I worked from Beverly Sheffield Northwest Park. Got a bunch of editing done on my iPad, for day 3 of visiting parks.

    → 3:48 PM, May 4
  • Day 2 of city parks: Rosewood Park. It has been raining most of the morning, but it let up enough for a picnic lunch.

    → 12:31 PM, May 3
  • Working from city parks

    In 2016, I tried working from a new coffee shop every day for 30 days, then later followed that with 30 days working from libraries. Each day I would post a microblog post and sometimes a photo. You can find links to all these posts on my 30 days page.

    When it was all done, I wrote:

    After wrapping up libraries, I thought I’d make it a trilogy of 30-day endeavors, with a final 30 days of working from city parks. This was a suggestion from Daniel Hedrick, who had worked from parks before, tethering to his iPhone since there’s usually no wi-fi. I loved the idea right away because it fit so well with the goal of getting out of the house and discovering something new in my own city. I even spent a couple hours earlier in the month researching parks and planning out whether I could do it.

    But I quickly realized that I was burned out on commuting all over town, so I tabled the idea. Fast-forward a few years. This week, I’ve been struggling to stay productive as my attention is pulled in a few directions with tasks for Micro.blog.

    I’ve also been working more on my book Indie Microblogging, which I can write from anywhere on my Mac or iPad. I think restarting the “30 days” idea will force me to carve out some uninterrupted time to write, and get me out of a bit of a rut from working at home. It will also be a great use of Micro.blog.

    For day 1 of 30, I went to Walnut Creek Metropolitan Park in Austin. It’s a large park with hiking and biking trails. I actually did more walking than writing, but it’s a start. As with coffee shops and libraries, I’ll collect links to all the posts on a new page here.

    → 3:10 PM, May 2
  • Busy week ahead. Trying to start Monday right with an iced coffee and breakfast taco at Illuminate Coffee.

    → 8:34 AM, Apr 29
  • Sunlit with video playback

    Sunlit 2.5.1 is now available in the App Store. This update fixes an issue with videos not appearing in the timeline after the major new version we released yesterday to add video upload to the app and Micro.blog hosting.

    Here are a couple screenshots of the update with the video preview and new full-screen player:

    Sunlit screenshots
    → 12:44 PM, Apr 6
  • I-10 over the Atchafalaya Basin.

    → 3:49 PM, Apr 3
  • Stopped for a coffee and tiny bit of coding catch-up in Houston, at Throughgood Coffee.

    → 11:47 AM, Apr 3
  • Tonight’s rally for Beto in Austin.

    → 11:24 PM, Mar 30
  • Checked out the WeWork on Barton Springs today. Beautiful space and great view.

    → 12:39 PM, Mar 29
  • There are still bluebonnets everywhere in Austin.

    → 2:59 PM, Mar 26
  • Stacked Waters at the Blanton. Nice to visit the museum again last week over spring break.

    → 10:24 AM, Mar 25
  • Sunset out the passenger-side window on the drive back from Dallas a couple of days ago. Usually tough to get a shot from the highway: buildings, power lines, etc.

    → 10:11 AM, Mar 19
  • Sunlit 2.4 screenshots

    We are getting close to releasing the next version of Sunlit. The app has gone through a bunch of iterations over the years while we searched for the right features and design. This version is my favorite. We’ve simplified posting so that it’s easier and more consistent with Micro.blog, improved profile screens, and fixed even more bugs.

    Sunlit screenshots

    If you’re looking for an alternate to Facebook-owned Instagram that priorities community and content ownership, I hope you check out Sunlit when it’s ready.

    → 1:10 PM, Mar 18
  • Sunlit 2.4 beta

    We just sent a Sunlit beta to testers. This new version of our photo-blogging app includes an updated UI, easier posting, and fixes a number of issues. It also simplifies and removes several features, such as the filter and photo editing interface. (We may bring some features back later, but it was important to get back to basics and improve the core user experience.)

    If you’d like to try it, you can join the TestFlight beta here.

    Sunlit 2.4 timeline
    → 2:09 PM, Mar 13
  • Automatically save to Internet Archive

    There was a session at IndieWebCamp Austin about broken links and archiving web sites. As part of the discussion, Tantek mentioned how he saves all his blog posts and tweets to the Internet Archive as part of his posting workflow. I’ve just added a setting like that to Micro.blog under Posts → Design:

    Checkbox screenshot

    This is off by default for now, but if you enable it, any new posts will be saved to the Internet Archive automatically. It waits about 5 minutes before saving them just in case you have any last-minute edits.

    I still want to do more with archiving. As amazing as the Internet Archive is, I don’t think we should count on it to have a complete archive of the web. But this is a simple feature you can enable in your blog if it’s hosted on Micro.blog, and we can expand it based on feedback. (For example, maybe archiving pages you link to as well.)

    → 1:27 PM, Feb 28
  • First time at Capital Factory? Look for these doors tomorrow inside the building lobby. You can still register for IndieWebCamp here. $5 or free when you blog about the event!

    → 1:04 PM, Feb 22
  • Started the day with JuiceLand. Love these silly prints on the wall.

    → 11:28 AM, Feb 20
  • Got to see a few things in Fort Worth with family over the weekend. Great to have some time to explore instead of just driving through.

    → 9:02 PM, Feb 19
  • Sent an update to Kickstarter backers earlier this week about sending out M.b stickers. It has been fun to pick stamps. This photo when @macgenie and I were preparing envelopes last week shows a couple of the international stamps.

    → 2:11 PM, Feb 7
  • Updated iOS app with categories

    We released version 1.5 of the Micro.blog app for iOS today. In addition to a couple bug fixes, it lets you pick a category for new posts. You can create categories on the web under Posts → Categories for blogs hosted on Micro.blog.

    Tap the gear icon when composing a new post to view your categories:

    Screenshot of categories on iOS
    → 1:04 PM, Feb 5
  • Custom templates, categories, new theme, and more

    We are launching several major new features for blog hosting on Micro.blog today. Any one of these features alone is a big change, and together I hope they will serve as a great foundation for years to come. The goal was to make blog hosting faster and more flexible for new features.

    Custom templates: All the themes have been rewritten with extensibility in mind. As some of you may know, Micro.blog-hosted blogs were originally built on Jekyll. They now use Hugo. There’s an interface in Micro.blog for editing any of the built-in templates, or adding new ones for your own HTML or CSS. Click Posts → Design → Edit Themes.

    Editing screenshot

    Categories: You can create a new category for your blog under Posts → Categories, and those categories will appear when editing a post or when creating a longer post with a title. We hide the category options be default when you are composing a short post, but in the new macOS app you can show the categories by choosing View → Categories. A list of your categories will appear at the top of Archive on your blog for readers to browse.

    Checkboxes screenshot

    Auto-filter photos into a category: If you create a category like “Photos” or “Photography”, Micro.blog will offer to automatically assign this category when posting a new photo. Behind the scenes this is based on a new filtering system that will enable more features for other types of content in the future.

    Categories screenshot

    API for categories: I’ve added categories support to both the MetaWeblog XML-RPC API and the Micropub API. This means that categories work great with MarsEdit. Categories are also included in your default JSON Feed in the “tags” field.

    MarsEdit screenshot

    Sharing themes: When creating a new custom theme, you can choose to clone it from an existing GitHub repository. This will allow someone to create a completely custom theme and share it with other members of the community. There’s a “Blank” design if you are starting from scratch with your own templates.

    New theme: I used the open source theme Arabica when testing these new features, and it’s now an option under Posts → Design. It’s a clean, simple design ported from Ghost.

    Open source changes: All our themes for Micro.blog are available on GitHub. I have decided to keep the forked Jekyll repositories and completely replace the files with the Hugo version. I have mixed feelings about this, since the themes have diverged so much that they are no longer useful to the original authors, but I felt this was the best way to give credit to them for the designs, in addition to our credits page on Micro.blog.

    Moving special pages: Micro.blog has some special pages like “About” and “Archive”. You can now re-order or even delete these under Posts → Pages. Combined with custom themes, this gives much more flexibility in customizing the navigation for your site.

    We’ll be writing more about these new features in blog posts and the help site. If you notice any problems, please let me know. Thank you!

    → 4:34 PM, Jan 30
  • We’ve been playing Catan this weekend. I love the design and how balanced the game feels. Nice way to spend some time as the holiday break winds down for the kids.

    → 12:50 PM, Jan 6
  • Walked by this abandoned toy store the other night. I guess they keep the lights on long after the place is empty and the letters removed.

    → 2:42 PM, Dec 31
  • Baylor at the Texas Bowl in Houston.

    → 8:49 PM, Dec 27
  • Zilker tree. Another fun year at the Trail of Lights. 🎄

    → 12:20 AM, Dec 24
  • 12 days of microblogging: linkblogging

    For the 7th post in our 12 days of microblogging series, I want to talk about linkblogging. Micro.blog users have a variety of approaches to posting links on their blog. Some people read an interesting article and type in a summary of it, pasting in the URL to the full article, and some people prefer quoting a portion of the text directly in their microblog post.

    I blogged a couple of years ago in detail about the technical approaches to links in RSS and how linkblogging has evolved, using examples from Dave Winer and John Gruber:

    Instead of just including a URL, authors use a quote from the linked material as the foundation for the post. The majority of Daring Fireball posts adopt this format. While John Gruber is known for his full essays, those longer posts are infrequent today. He keeps his site active by linking to other interesting essays and tacking on his own brief opinion.

    Posts on Micro.blog are formatted with Markdown. If you’re reading a web page on iOS, you can share it to the Micro.blog app to automatically fill in the basic structure of a post, leaving the cursor at the beginning of the post to add your own thoughts.

    In the screenshots above, I’m sharing from Safari on iOS. Micro.blog adds a Markdown link back to the original post with the web page title. Or if there’s text selected, Micro.blog includes that text as a quote.

    Note that Micro.blog will truncate posts in the timeline when they are over 280 characters. For a longer quote, it’s best to give you microblog post a title, turning it into a full blog post.

    Previous posts in this blog post series covered photo blogs, microcasting, travel blogs, custom designs, artwork on blogs, and more. Check out the full list on our help page.

    → 7:44 PM, Dec 9
  • 12 days of microblogging: custom design

    It’s day 4 of our 12 days of microblogging series. Today we want to highlight how Micro.blog supports blog themes and what people can do to give their blog a unique design.

    There are 3 ways to customize your microblog:

    Pick from one of the default 7 themes. These themes are based on existing designs using the Jekyll blogging framework, but modified to work consistently with Micro.blog. We’ve open-sourced all our changes to these themes on GitHub.

    Screenshot of default themes

    Edit the custom CSS for your blog. I’ve been really impressed with what creative Micro.blog users have come up with. You can use CSS to change colors, fonts, hide elements, and more. Here are a few examples from Kitt Hodsden, Michael Barrett, and Khaled Abou Alfa.

    Screenshot of user designs

    Add a custom footer. The footer HTML is a good place to put extra information or JavaScript.

    If you have any questions about using CSS, ask in the #design channel on Slack. And if you have any tips, write about it on your blog so that others can learn from it. I’m currently working on a major upgrade to the themes on Micro.blog that I can’t wait to share more about.

    Previously in the 12 days of microblogging series, I wrote about microcasting, photos, and using your own blog as a home base.

    → 10:19 AM, Dec 6
  • 12 days of microblogging: social media home base

    For the 3rd post in our 12 days of microblogging series, we want to highlight how Micro.blog can serve as your social media “home base”. By centralizing your writing, photos, and other web pages at your own domain name, you can control your content but still share it out to other social networks.

    Micro.blog has cross-posting for Twitter, Medium, LinkedIn, Facebook, and Mastodon. This feature is available for free if you host your site on Micro.blog, or $2/month if your blog is hosted elsewhere. It includes automatic posting to all 5 of those social networks and any new platforms we may add later.

    Here’s how I personally use this feature. I never post directly to Twitter. I publish short posts on my own blog, and Micro.blog automatically sends them to Twitter and other networks. Occasionally I’ll sign in to Twitter and check if I have any @-mentions that need replying to. This way I can avoid the distraction of the Twitter timeline and focus on adding content where it’s most important to me: my own site.

    With Mastodon, you have another option beyond cross-posting. Because Micro.blog supports the ActivityPub API, Mastodon users can follow your Micro.blog-hosted blog and you can follow and reply to Mastodon users directly in Micro.blog. I posted more last month about how this works and why it uses your own domain name:

    Sometimes in the Mastodon world your identity can get fragmented across multiple instances. You might start on mastodon.social but then move to another instance, effectively breaking the link between your readers and your posts each time you move, with no way to migrate posts between instances. By supporting Mastodon and ActivityPub in Micro.blog, you can consolidate your identity and posts back to your own blog at your own domain name.

    Your blog is also a great place to centralize your photos, while still integrating with Instagram and these other social networks. Instagram doesn’t allow automatically posting from your blog to their service, but you can use OwnYourGram or our Mac app to copy Instagram photos to your blog, and from your blog to everywhere else. More links in yesterday’s post.

    For details on how cross-posting works — and the extra rules Micro.blog uses to make sure that your posts look good on other networks — see this help page. Happy cross-posting!

    → 11:43 AM, Dec 5
  • 12 days of microblogging: photos

    Yesterday we started the 12 days of microblogging blog post series to mark the 1-year anniversary of the public launch of Micro.blog. I posted about making it easier for people to share their stories in audio form with microcasting. Today I want to highlight photoblogging.

    Sharing photos is an important part of Micro.blog. I put a custom photo picker and filters in the original Micro.blog iOS app to encourage everyone to post photos to their blog, so that you end up with a great collection of your best photos at your own domain name. Because photos are square by default, they look great in the Micro.blog timeline, and with cross-posting Micro.blog can attach photos to your tweets or send posts to other social networks.

    We also have a companion iOS app just for photos called Sunlit. It has an Instagram-like timeline for browsing photos from your Micro.blog timeline, with the focus around blogs that I wrote about in my preview post as we were relaunching Sunlit 2.0:

    To play nicely with microblogs, we introduced a new post type in the app for single photos. For longer posts, you can still collect multiple photos together, add text, and post them as a story directly to your blog.

    Some people on Micro.blog focus almost exclusively on posting photos, like Robert Brook. Some people have even created separate blogs just for their photos at their own domain name hosted on Micro.blog, like burk.photos. There’s a special section of Discover that features photos from more Micro.blog users.

    A couple of weeks ago, Jonathan LaCour on Micro.blog submitted a feature request for a photos JSON Feed. He used this feed to build Microgram, a snippet of HTML that you can paste into your blog to provide a grid of photo thumbnails. You can see my photos page at manton.org using Microgram in this screenshot:

    Screenshot of photos grid

    One of the most common questions we get is how to migrate photos from Instagram to Micro.blog. I think we have 2 really good options for this:

    • Micro.blog for macOS has a built-in Instagram importer. It will take the archive you get from Instagram and allow you to batch import your Instagram photos to Micro.blog, preserving the original dates and text from Instagram.
    • OwnYourGram is a web-based app that connects to your Instagram account to automatically copy new Instagram posts to your own blog. Because it’s based on IndieWeb standards, it can also post directly to Micro.blog-hosted sites.

    I hope you enjoy posting and browsing photos on Micro.blog! Tomorrow I’ll have the next post in the 12 days of microblogging series.

    → 3:40 PM, Dec 4
  • Great morning getting a Christmas tree while my daughters are in town. This section of the farm in Elgin wasn’t quite ready.

    → 5:07 PM, Nov 23
  • Rose City Book Pub from a couple nights ago in Portland with @macgenie and @cheesemaker. More coffee shops and pubs should have a large collection of books. 🍺

    → 10:01 AM, Nov 7
  • Thinking of Texas even as I’m a few states away today. Great crowd in Austin for Beto yesterday. Everywhere you go there are Beto signs, like this mural we saw in San Antonio last week. It is going to be close. Do everything you can.

    Beto mural
    → 10:29 AM, Nov 5
  • Search in Micro.blog

    Micro.blog doesn’t have hashtags, trending topics, or retweets because I think the focus on those features in other social networks has led to people being exposed to harassment, hateful posts, and even fake news. For Micro.blog, it’s more difficult to accidentally stumble on a random post unless it’s part of a conversation you’re in or from a section that is actively curated.

    This was an important design decision and we’re not walking away from it, but the downside is that it is more difficult to find older posts without a global search. As the first step in improving this, today we’re rolling out a new search screen. You can now search for users and across any post that has been featured in the Discover section.

    Screenshot of search icon

    Click on Discover from the web version of Micro.blog. I’ll continue to improve this throughout the rest of the year, expanding it to more posts, including in the native apps. Looking forward to hearing your feedback!

    → 9:47 AM, Oct 31
  • Heroes Stadium in San Antonio before the marching band takes the field.

    → 12:16 PM, Oct 27
  • Beto has been doing quick stops near polling locations this week for early voting. I picked up a coffee nearby and walked over to hear him, with a nice crowd not deterred by the rain. Inspiring.

    → 3:20 PM, Oct 24
  • Lunch at Lucy’s Fried Chicken, looking out at a very full Lake Travis. So much rain in Texas in the last week, surprised it’s not raining today.

    → 1:03 PM, Oct 20
  • As some folks noticed late last night, I updated the Discover section on Micro.blog to have a better popup menu for choosing topics. It’s not the full list yet, but includes a bunch of the common ones.

    Discover screenshot
    → 1:04 PM, Oct 12
  • Rolled out some additional improvements to today’s Micro.blog page navigation feature, including editing the page URL. Look for the small “Edit” button when editing an existing page.

    → 9:18 PM, Sep 14
  • Last week's Homebrew Website Club

    We rebooted the Homebrew Website Club meetup in Austin this summer after a break, and last week we met again at Mozart’s Coffee to talk about the IndieWeb. It was raining when I arrived at the coffee shop. Despite the weather we found some tables on the bottom deck and had a good turnout.

    Homebrew Website Club

    The meeting was informal. After introductions, we talked about the state of social media and silos, with some detours into Mastodon, Micro.blog, and the value of having your own site. The discussion inspired me to finish writing a post about the way out of this mess we’ve found ourselves in with massive social networks.

    We’re going to keep the meetup at Mozart’s for now. The next meetup will be October 3rd, 6:30pm. I think it will start to become a little more structured: introductions, demos, discussion, and time for writing or working on projects. Thanks to everyone who made it!

    → 5:18 PM, Sep 9
  • Managing uploads in Micro.blog

    Today we added a new screen to the web interface for hosted blogs on Micro.blog. Click “Posts” and then choose the “Uploads” tab to view your uploaded photos and microcast episodes. You can also upload new photos here to later include in a blog post.

    Micro.blog uploads

    Expect this part of Micro.blog to continue to improve. If you have any feedback, let us know. Thanks for your support!

    → 1:45 PM, Sep 5
  • Starting a new photo blog

    Of everything you put into social networks, photos are one of the easiest and most rewarding parts to reclaim for your own site. Because we shipped Sunlit 2.2 this week, I want to share a guide for starting a new photo blog that you will actually consistently post to.

    The first step isn’t technical. It’s a commitment to posting regularly on your own blog instead of first reaching for Instagram or Snapchat. A commitment to posting to a place you control, to a place you can look back to years from now as an archive of your best photos at your own domain name, regardless of what social networks come and go over the years.

    If you already have a hosted blog on Micro.blog or WordPress, you can use that. If you want to start with a new space just for photos, use Micro.blog and click Plans → New Microblog. In the Micro.blog settings, you can map a custom domain to your new photo blog such as photos.yourdomain.com.

    Instagram will let you download an archive of all your Instagram photos. If you use macOS, install Micro.blog for Mac. Choose File → “Import from Instagram”. Select the media.json file in the archive you received from Instagram, and Micro.blog will let you select some or all of your photos to import, preserving the dates and captions on your new photo blog. See this help page for more details on importing from Instagram.

    Instagram import

    To post a new photo, use the official Micro.blog iOS app or our new companion app Sunlit. There are also great third-party apps such as Icro for iPhone and MarsEdit for macOS.

    When you post a photo with some text but no title, that photo will show up directly in the Micro.blog timeline.

    Micro.blog screenshots

    Another option is to connect OwnYourGram with Micro.blog. OwnYourGram can watch your Instagram account for new photos, then copy them automatically to Micro.blog. Before setting up OwnYouGram, make sure to add your Instagram username in Micro.blog under Account → “Edit Apps”.

    For an overview video of the new version of Sunlit, see my post from yesterday. Happy photo blogging!

    → 9:42 AM, Sep 5
  • Quick trip up to Waco for the first Baylor game. Love the view walking to the stadium. 🏈

    → 7:04 PM, Sep 1
  • Took the train downtown this afternoon. Nice to take it on an off-day when not much is going on in Austin, so it’s easy to get a table to work.

    → 4:55 PM, Aug 14
  • Standup paddling near Longhorn Dam earlier today, just a little before it was too hot outside to do anything.

    → 6:20 PM, Jul 21
  • Suspension bridge over the Brazos River, from a quick trip up to Waco earlier this week.

    → 8:03 AM, Jul 19
  • Stack of books sculpture and the fountain at UNT.

    → 9:35 AM, Jul 11
  • County Line BBQ to wrap up the day. Hope y’all had a nice July 4th. 🇺🇸

    → 8:31 PM, Jul 4
  • I’ve made cold-brew coffee with a French press but I’m lazy so usually just buy the Chameleon concentrate at the store. Discovered they also make these convenient pods for about half the price.

    → 10:26 AM, Jul 2
  • IndieBookClub

    As I mentioned in my IndieWeb Summit wrap-up, I added support for IndieBookClub while in Portland. IndieBookClub is a little like Goodreads, but built on standards like Microformats and Micropub so that you can post what you’re reading to your own blog.

    Now that I’m back in Austin, I’ve tweaked the behavior to be smarter about recognizing the ISBN that IndieBookClub sends to Micro.blog. Posts from IndieBookClub also get the 📚 emoji added automatically so that they show up in the books Discover section on Micro.blog. Here’s a screenshot of what posts look like on your Micro.blog-hosted site:

    Screenshot of IndieBookClub post

    If the ISBN is specified, Micro.blog will redirect the link to Amazon, although we may change that in the future. And it’s just a regular blog post, so you can always edit it using Markdown in Micro.blog.

    → 1:06 PM, Jun 30
  • IndieWeb Summit 2018 wrap-up

    Last week I was in Portland for IndieWeb Summit. This was only my second IndieWeb conference (the first was IndieWebCamp in Austin). I had a great time in Portland and got even more than I expected out of IndieWeb Summit.

    The first day was short keynotes and sessions led by attendees on a range of topics. Jean and I talked about our experience and goals with Micro.blog in reaching even more mainstream users. I went to sessions on Microformats, timeline algorithms, code libraries for common IndieWeb building blocks, and Microsub. Some of this carried over to the beginning of the next day, including Aaron Parecki leading a discussion about IndieAuth.

    We held a Micro.blog meetup at Von Ebert Brewing after the first day wrapped up. Thanks everyone for joining us!

    Most of the second day was a hack day to work on our own projects, and at the end of the day everyone could present what they had worked on. I was so impressed with what people had come up with, whether that was improvements to their own site or prototypes for new tools.

    It turned out that having this dedicated time was exactly what I needed to turn Micro.blog into an IndieAuth provider. This means that Micro.blog no longer needs to delegate to Twitter or GitHub for authorization when someone is using an IndieWeb posting tool like OwnYourGram or Quill. Users can instead authorize directly with their Micro.blog account. I also added support for the summary fallback parameter in Micropub, which makes Micro.blog compatible with IndieBookClub.

    In the morning before I left Portland, I interviewed Tantek and Aaron for my upcoming book Indie Microblogging. We had a great conversation on the founding of IndieWebCamp, the accomplishments and changes in the community, and where everything is going from here.

    Coava Coffee Portland bridge

    Portland was great. For this trip I opted for an Airbnb close to the IndieWeb Summit venue. It was also just a block from Coava Coffee, where I spent a couple mornings catching up on work. I hope to be back in Portland for IndieWeb Summit next year.

    → 12:34 PM, Jun 30
  • From the loop around Lake Charles, Louisiana on the drive home.

    → 2:24 PM, Jun 24
  • Road trip today. Crossing over some train tracks out in the country.

    → 4:11 PM, Jun 22
  • On campus this morning. Texas Memorial Museum poking up through the trees.

    → 1:20 PM, Jun 16
  • Back online after taking some time off to camp at Colorado Bend State Park last night. Great hike down to the waterfall this morning.

    → 2:17 PM, Jun 13
  • Glen Keane drawings at the Walt Disney Family Museum.

    → 3:24 PM, Jun 3
  • Cold brew and a breakfast bagel at Voltaire Coffee House.

    → 9:29 AM, Jun 3
  • Santa Clara Valley Brewing in San Jose.

    → 8:32 PM, Jun 2
  • Icro 1.0

    Last month I gave a talk about microblogging at Peers Conference in Austin. In it I covered Twitter’s changing attitude toward developers, from the early days when everyone wanted to build a Twitter app — as John Gruber wrote in 2009, Twitter apps were a playground for new UIs — to when Twitter started actively discouraging traditional third-party Twitter clients.

    For Micro.blog, I always want to encourage third-party apps. We support existing blogging apps like MarsEdit, and we have an API for more Micro.blog-focused apps to be built. I’m excited to say that a big one just shipped in the App Store: Icro.

    Icro is well-designed, fast, and takes a different approach to some features compared to the official Micro.blog app. In a few ways, it’s better than the app I built. This is exactly what I hoped for. We wanted an official app so that there’s a default to get started, but there should be other great options for Micro.blog users to choose from.

    Here are a few screenshots from Icro:

    Icro screenshots

    Thanks to developer Martin Hartl for building Icro and being part of the Micro.blog community. You can download it for free from the App Store here.

    → 7:11 AM, May 9
  • Nice walk this afternoon. Starting to feel like summer in Austin.

    → 3:32 PM, May 5
  • On the train again this morning, heading downtown for Peers Conference.

    → 7:08 AM, Apr 26
  • Took the train downtown today and walked by the lake before breakfast. Micro.blog planning with @macgenie.

    → 1:12 PM, Apr 25
  • Building the piano. Nintendo Labo is brilliant.

    → 9:38 PM, Apr 21
  • Start here.

    → 2:26 PM, Apr 19
  • The bluebonnets have been nice in Austin this year. From someone’s yard while out biking.

    → 5:57 PM, Apr 12
  • Wavelength for Micro.blog

    We have something really big to announce today. Micro.blog now supports hosting short-form podcasts, also known as microcasts, with a companion iPhone app called Wavelength for recording, editing, and publishing episodes.

    Wavelength screenshots

    Before the Kickstarter campaign last year, I started my Timetable microcast to talk about the things I was working on, with a focus on planning what would become Micro.blog. Creating a short podcast is really fun. It’s much easier to record and edit than the longer podcasts we’re all used to. But it’s still not easy enough, and even after nearly 100 episodes of Timetable my workflow was cobbled together with too many apps: Ferrite, Logic, Auphonic, WordPress, a shell script, and sometimes Transmit.

    Micro.blog is about making short-form content you own as simple to post as a tweet because we believe blogging should be easier. Podcasting should be easier too.

    We’re rolling out a new hosted plan on Micro.blog to accommodate microcasts. When you upload an audio file to your site — either from the web, Wavelength, or a third-party app — Micro.blog will automatically create a podcast feed for your microblog. Listeners can subscribe directly, or you can add the feed to the Apple Podcast Directory and it will show up in popular apps like Overcast and Castro. Everything can be served from your own domain name, just like a normal microblog. We’ve been using this infrastructure for all the episodes of our weekly Micro Monday microcast.

    New hosted microblogs with microcasting support will be $10/month. Microcast audio files will be limited to 20 MB. Existing microblogs hosted on Micro.blog can be upgraded to support microcasting for an additional $5/month.

    Everyone has a story to tell. Whether that’s through short microblog posts, longer essays, photo blogs, conversations with friends, or now through podcasts, I hope that the Micro.blog platform and suite of apps can help. If you haven’t checked out Micro.blog lately or are learning about it for the first time, now is a great time to join the community. Thanks!

    → 12:01 PM, Apr 12
  • G League finals, game 1. Derrick White hitting a 3 for the Austin Spurs. 🏀

    → 6:35 PM, Apr 8
  • Cold but beautiful walk around the lake this afternoon.

    → 6:32 PM, Apr 7
  • Under the Mopac bridge, from our walk with the dogs a few days ago.

    → 3:47 PM, Apr 4
  • Dyeing eggs. Tried with brown eggs this year so we got some interesting colors. 🐰

    → 9:55 AM, Apr 1
  • Coffee and work at Apanas this morning, then checked out the new Amazon Books store. Bigger than I expected and very nice.

    → 2:49 PM, Mar 29
  • IndieWeb generation 4 and hosted domains

    Naturally because of the goals of Micro.blog, I see a lot of discussion about “owning your content”. It’s an important part of the mission for Micro.blog to take control back from closed, ad-supported social networks and instead embrace posting on our own blogs again.

    But what does it mean to own our content? Do we have to install WordPress or some home-grown blogging system for it to be considered true content ownership, where we have the source code and direct SFTP access to the server? No. If that’s our definition, then content ownership will be permanently reserved for programmers and technical folks who have hours to spend on server configuration.

    IndieWebCamp has a generations chart to illustrate the path from early adopters to mainstream users. Eli Mellen highlighted it in a recent post about the need to bridge the gap between the technical aspects of IndieWeb tools and more approachable platforms. With Micro.blog specifically, the goal is “generation 4”, and I think we’re on track to get there.

    I want blogging to be as easy as tweeting. Anything short of that isn’t good enough for Micro.blog. You’ll notice when you use Twitter that they never ask you to SFTP into twitter.com to configure your account. They don’t ask you to install anything.

    More powerful software that you can endlessly customize will always have its place. It’s good to have a range of options, including open source to tinker with. That’s often where some of the best ideas start. But too often I see people get lost in the weeds of plugins and themes, lured in by the myth that you have to self-host with WordPress to be part of the IndieWeb.

    Owning your content isn’t about portable software. It’s about portable URLs and data. It’s about domain names.

    When you write and post photos at your own domain name, your content can outlive any one blogging platform. This month marked the 16th anniversary of blogging at manton.org, and in that time I’ve switched blogging platforms and hosting providers a few times. The posts and URLs can all be preserved through those changes because it’s my own domain name.

    I was disappointed when Medium announced they were discontinuing support for custom domain names. I’m linking to the Internet Archive copy because Medium’s help page about this is no longer available. If “no custom domains” is still their policy, it’s a setback for the open web, and dooms Medium to the same dead-end as twitter.com/username URLs.

    If you can’t use your own domain name, you can’t own it. Your content will be forever stuck at those silo URLs, beholden to the whims of the algorithmic timeline and shifting priorities of the executive team.

    For hosted blogs on Micro.blog, we encourage everyone to map a custom domain to their content, and we throw in free SSL and preserve redirects for old posts on imported WordPress content. There’s more we can do.

    I’m working on the next version of the macOS app for Micro.blog now, which features multiple accounts and even multiple blogs under the same account. Here’s a screenshot of the settings screen:

    Mac screenshot

    The goal with Micro.blog is not to be a stop-gap hosting provider, with truly “serious” users eventually moving on to something else (although we make that easy). We want Micro.blog hosting to be the best platform for owning your content and participating in the Micro.blog and IndieWeb communities.

    → 8:24 AM, Mar 23
  • Driving back from Waco.

    → 3:32 PM, Mar 18
  • Baylor trying to make it through the NIT second round. Great game so far.

    → 11:42 AM, Mar 18
  • Latest home screen. Not many changes recently… Sunlit is new and replaces Instagram. Micro.blog and Ulysses in the dock and used often. Top and bottom rows blank.

    → 12:23 PM, Mar 16
  • Mavs had a good 2nd quarter but it wasn’t enough against the Rockets. Still great to see Dirk play.

    → 7:02 PM, Mar 11
  • Sunlit 2.0.1

    We released an update to Sunlit today. Lots of little bug fixes and improvements. (The App Store has been slow this week, but it should show up in your Updates tab soon if it’s not already there.)

    I also updated the Micro.blog timeline to add tiny photo thumbnails for Sunlit stories that have a title. Here’s a screenshot:

    Micro.blog timeline screenshot

    Because Micro.blog is focused on microblogging, short posts without a title still show directly in the timeline, but longer posts with many photos and a title just link back to your web site. Adding this little preview gives a hint for what is behind those links.

    → 5:17 PM, Mar 9
  • Abandoned tracks downtown near the new library, as we walked back from Juan Pelota earlier this afternoon. ☕️

    → 11:33 PM, Feb 18
  • Lately we’ve had a few cold days, with just enough mist and rain to notice, but not enough to really feel wet. This was from last night before a softball game.

    → 10:22 PM, Feb 14
  • Beautiful building. The Armstrong Browning Library at Baylor.

    → 12:44 PM, Jan 20
  • I got an ink stamp made for my return address when sending out Micro.blog stickers. Just think it looks cool.

    → 4:10 PM, Jan 17
  • More college visits! Just finished a tour at A&M this afternoon.

    → 4:15 PM, Jan 8
  • Ollie checking out the Snoopy Christmas decorations during a walk.

    → 5:38 PM, Jan 7
  • New stickers.

    → 3:19 PM, Dec 29
  • Looking out the new central library windows.

    → 4:27 PM, Dec 27
  • Happy Holidays from Micro.blog

    Thanks everyone for your support of Micro.blog this year! We’ve come a long way since I launched the Kickstarter campaign for Indie Microblogging back on January 2nd. We really appreciate all the feedback and new users who are embracing Micro.blog.

    Yesterday we added another “secret pin” to Micro.blog for the holidays. You can unlock it by posting to your own blog and mentioning Christmas, Hanukkah, or one of a bunch of different winter themes and celebrations for this time of year. (It also works for posts from last week, so you may already have unlocked the pin.)

    We love adding pins because it encourages people to blog more, and we hope to do more in 2018. This is also a great time of year to earn the Daily Blogger, Photo Challenge, or Night Owl pins!

    Wishing you and your family and friends the best this week. Thanks again for being part of the Micro.blog community.

    → 10:42 PM, Dec 24
  • Last night of the Trail of Lights at Zilker.

    → 9:58 PM, Dec 23
  • Major update to Micro.blog today

    Micro.blog is now available to anyone. There’s a limit of 100 new sign-ups each day, so that we can better respond to feedback as the community grows. Thanks so much to the thousands of Kickstarter backers and new users who have helped us improve the platform this year.

    We’re also rolling out the following improvements across the web, iOS, and Mac versions of Micro.blog:

    Mac icon
    • New app icons on iOS and Mac! We love this redesign by Brad Ellis. Micro.blog now feels much more at home on macOS.
    • Added photo upload to the web version of Micro.blog.
    • Added a "Show More" button to load more posts in the timeline on iOS and Mac.
    • Fixed Discover section in iOS and Mac to allow selecting posts.
    • Improved iOS sharing from Safari to include the page title in addition to URL and selected text.
    • Experiment with following domain name user accounts. The first is @nytimes.com, letting you see headlines from The New York Times home page in your timeline. (This is not affiliated with the New York Times. It's possible because Micro.blog works with RSS feeds.)

    Plus a bunch of minor improvements and bug fixes. You can download the latest versions of Micro.blog from the iOS App Store or directly for your Mac.

    → 1:41 PM, Dec 19
  • Quick shot of the train while I wait for it to zip by at the crossing.

    → 2:33 PM, Dec 13
  • IndieWebCamp Austin wrap-up

    Over the weekend we hosted the first IndieWebCamp in Austin. I’m really happy with the way the event came together. I learned a lot in helping plan it, made a few mistakes that we can improve next time, but overall came away as inspired as ever to keep improving Micro.blog so that it’s a standout platform of the IndieWeb movement.

    There’s nothing like meeting in person with other members of the community. I know this from attending Apple developer conferences, but the weekend in Austin only underscored that I should be more active in the larger web community as well.

    IndieWebCamp group photo

    The first day of IndieWebCamp started with introductions, a chance for attendees to demo their web sites, an overview of IndieWeb building blocks by Aaron Parecki, and then brainstorming what topics the afternoon sessions should cover. After lunch, we held sessions on WordPress, static sites, Micropub posts, Webmentions, payment APIs, audio, decentralized aggregation, and post kinds.

    The second day was a hack day, with a chance to work on our own web sites. This was a very valuable day for me — being able to bounce ideas or questions off other attendees. I chose to make an improvement to Micro.blog’s Micropub API endpoint to accept “bookmark-of” POSTs, mapping them to favorites. This evolved into opening up Micro.blog to allow favoriting any URL, even if the post doesn’t exist in any feed that Micro.blog knows about yet.

    At the end of the day I was happy enough with the feature that I deployed my code and database changes. I demoed it using Indigenous for iPhone and Micro.blog for Mac, favoriting an indiewebcat.com post on the web and watching it show up in the app under the post’s domain name. Micro.blog got better support for Microformats with this change, pulling the author info, post text, and photo when you favorite a post via Micropub.

    Mac screenshot

    For the last few years I’ve attended WWDC and Release Notes each year, and I’d usually give a talk at CocoaConf. This year I added WordCamp and IndieWebCamp, and gave a talk about indie microblogging at Refresh Austin. I hope that it works out to attend another IndieWebCamp or IndieWebSummit in 2018.

    Special thanks again to Tom Brown for helping out with planning IndieWebCamp Austin, EFF-Austin for hosting their holiday party after our event, and our sponsors DreamHost, Polycot Associates, and SuperBorrowNet. We should do this again next year.

    → 11:39 AM, Dec 12
  • Session planning at IndieWebCamp Austin.

    → 2:54 PM, Dec 9
  • Cool stickers from DreamHost to give out at IndieWebCamp tomorrow.

    → 9:19 AM, Dec 8
  • Beautiful cold night in Austin. Snow falling in the yard around our Christmas tree.

    → 8:02 PM, Dec 7
  • MarsEdit 4 and microblogs

    Daniel Jalkut shipped MarsEdit 4 today. This version includes many improvements, from brand new icons to support for WordPress “Post Formats” which are convenient for microblog posts.

    Micro.blog-hosted blogs also have full support for posting from MarsEdit 4. You can post short microblog posts, or you can add a title, upload photos, and write longer posts. Blogs on Micro.blog are really fast, have custom domain names, and support importing from WordPress.

    MarsEdit screenshot

    Congrats Daniel! I’m sure we’ll be talking about this milestone on Core Intuition.

    → 12:03 PM, Dec 5
  • iPhone X home screen

    I rarely change my home screen, but I updated it after having more time with the iPhone X. Seeing Shawn Blanc’s home screen reminded me that I should post an updated screenshot of my own screen.

    Screenshot

    The notable icons are Micro.blog and Ulysses in the dock, where I do most of my writing and blog post drafts. I also stopped using Instagram since there are so many great photos being posted to Micro.blog, so I have Halide there instead. Great app for quickly adjusting the exposure before taking a photo.

    New for the X, I’ve added an empty row to the top of the screen using David Smith’s blank icon tip. Much easier to reach all the icons with one hand.

    → 11:01 AM, Dec 4
  • Got some stickers for IndieWebCamp. It’s next weekend! You can learn more about the event or register here.

    → 11:43 AM, Dec 3
  • Spent the morning at Baylor. Now at the game before driving back to Austin.

    → 2:32 PM, Dec 2
  • Abandoned water park along I-10 in Louisiana.

    → 4:20 PM, Nov 23
  • Mainstream use cases for a microblog

    Doug Lane is writing a series of blog posts about what real-world use cases for Micro.blog could help attract more mainstream users to the platform. It starts with this:

    One of the biggest challenges that Micro.blog faces with its upcoming public launch is how to make the jump beyond its early adopter base of blog enthusiasts to “regular people”. It’s tempting to daydream about everyone from teenagers to grandmothers abandoning their social media silos en masse and simultaneously raising “Indie Blogger” flags, but that’s probably not realistic.

    He then follows up with a few ideas. I think this approach is exactly right: carve out several niches that are perfect for Micro.blog and focus on those in marketing, providing as much value as possible for those users, then expand to more mainstream users from there.

    Squarespace actually does a great job at this. The first thing you see when you click sign up — before being prompted to create an account — is to choose a template for your web site. At the very top of the list: a wedding blog and a product catalog.

    Squarespace screenshot

    Photoblogging and linkblogging are still some of the most common ways people use Micro.blog. From a business perspective, I also like it for product news. Earlier this year I posted some ideas for how to use a microblog.

    → 10:21 AM, Nov 22
  • Final day of the photo challenge: shadow. This has been a great week for photos on Micro.blog. Thanks everyone!

    → 7:08 PM, Nov 17
  • Kickstarter update on photos, Mac app

    I sent an update to Kickstarter backers today. I wanted to point people to the new Mac app for Micro.blog, and also show off some of the great photos that Micro.blog users have been uploading this week as part of the photo challenge. Here’s the email.

    Hello Kickstarter backers! Today we’re wrapping up the 7-day photo challenge on Micro.blog. The challenge was a suggestion from the community: @douglane posted to his microblog with themes to inspire more people to take and post photos.

    I’ve loved seeing all the new photos. Here are just a handful of the many photos that have been posted over the last week.

    Micro.blog photos

    We also recently released version 1.0 of the Micro.blog app for macOS Sierra and High Sierra. This is the best Micro.blog user experience yet, with a timeline, posting to your blog, photo upload, and a new Discover section for finding posts and users to follow.

    You can download the Mac app here.

    Micro.blog screenshot

    I’m also continuing work on the Indie Microblogging book. I’ll be sharing more about the book as soon as I can. Thanks for your support!

    → 2:53 PM, Nov 17
  • Can a salad bag from the grocery store be considered “seasonal”? Not sure, but it’s gonna have to do for today’s Micro.blog photo challenge. Day 6!

    → 11:54 PM, Nov 16
  • Almost missed the 5th day of the Micro.blog photo challenge. For “liquid”, a shot of the fish tank.

    → 10:19 PM, Nov 15
  • Loving the iPhone X camera. My contribution to today’s Micro.blog photo challenge: up close.

    → 6:50 PM, Nov 14
  • Day 3 of the photo challenge: on the move. From south Austin today after getting some coffee and work in at Caffe Medici.

    → 7:19 PM, Nov 13
  • For day 2 of the photo challenge, my go-to for coffee at home: Chameleon cold-brew, ice, water, and a splash of milk.

    → 2:40 PM, Nov 12
  • First day of the Micro.blog photo challenge. Today’s prompt: squares.

    → 6:21 PM, Nov 11
  • Micro.blog special pins

    For the initial rollout of Micro.blog, we had a bunch of pins you can unlock, to encourage people to blog more. For example, pins that get unlocked after a certain number of blog posts, or when you upload a photo. We also added a couple of new time-based pins for special events, like mentioning “iPhone X” during the Apple event last month.

    Today I added a Halloween pin. You can see some of the pins for my account in this screenshot:

    pins

    I also talked about this on today’s Timetable. Happy blogging! 🎃

    → 1:20 PM, Oct 31
  • Worked downtown a little this morning before catching a train to the airport.

    → 11:03 AM, Oct 19
  • Everyone at Release Notes gets a Twitter username on their badge except me. Love it.

    → 8:33 AM, Oct 17
  • Quick walk through Millennium Park before heading to the hotel.

    → 11:31 AM, Oct 16
  • Checked out Denton after the tour at University of North Texas yesterday. Nice coffee shop and used bookstore in the square too.

    → 12:11 PM, Oct 10
  • At UT San Antonio for WordCamp. Really nice space for a conference.

    → 9:58 AM, Oct 1
  • Rudy Gay shooting from the line at the Spurs open scrimmage. Excited for the season to start.

    → 10:50 AM, Sep 30
  • Micro.blog post editing

    Micro.blog users have wanted the ability to edit microblog posts for a while. We planned to add it, but first I thought we needed an edit history and probably a window of time during which edits are allowed, to prevent people from abusing edits by changing the meaning of a post in an earlier conversation.

    While I still want those things, I realized that they were just excuses to put off implementing the feature. And with full pages and longer posts, editing was increasingly a big omission.

    This week I rolled out a complete overhaul to the posts interface under your Micro.blog account. The layout is better, it’s more prominently linked in the UI, there’s an easy way to switch between posts and pages, and you can finally edit posts.

    Micro.blog screenshot

    There are a couple quirks of the UI still to improve. For example, if you’d like post edits to be reflected in the timeline, you should click the Remove link in the timeline so that Micro.blog pulls the latest version from your microblog. I’ll be working on polishing those areas over the coming weeks. But already it is much better. Enjoy!

    → 8:00 AM, Sep 22
  • Love the clouds and the lake today, the view from Mozart’s Coffee.

    → 3:26 PM, Sep 21
  • Overgrown abandoned golf course bridge.

    → 11:05 AM, Sep 18
  • Touring Southwestern University this morning.

    → 10:46 AM, Sep 9
  • Ink &amp; Paint

    I pre-ordered the book Ink & Paint a few months ago to add to my collection of books on animation. I love these untold stories, and the women working at Disney in the early days of the studio were notoriously uncredited.

    It arrived today and now I see that it’s a massive achievement. Large format, 380 pages, full of old photos and details about the artists.

    book photo

    Mickey Mouse coffee mug for scale. Really looking forward to reading this.

    → 4:32 PM, Sep 5
  • Our neighbor’s tree fell into our yard from the wind last night. Hope everyone’s staying safe as more rain dumps on Texas.

    → 1:56 PM, Aug 27
  • Micro.blog custom pages

    As I mentioned in this morning’s post about Medium, it’s important that Micro.blog-hosted sites can have their own domain name. Some people use their microblog to supplement an existing web site. Others use Micro.blog itself for hosting their full web site, because the focus on short posts makes the site easy to update.

    Today we’re introducing a new feature for hosted microblogs: custom web pages. These can be used for expanded “about” pages, contact information, lists of current projects, essays, or whatever you want to write about on your web site. Micro.blog pages use Markdown and are automatically included in the navigation for your site.

    Here’s a screenshot of an example page being edited:

    Pages screenshot

    If you have a Micro.blog-hosted site, check out the pages list under Account → “Edit Domains & Design”. Enjoy!

    → 1:22 PM, Aug 25
  • Inspired by Breath of the Wild, we’ve been picking up all the old Zelda games again. Latest is Ocarina of Time on the N64.

    → 3:59 PM, Aug 23
  • Back in Texas, more college tours. This is Texas State in San Marcos.

    → 10:01 AM, Aug 15
  • Wizard of Oz at the Zilker Hillside Theater. Glad to have caught the final show last night.

    → 4:19 PM, Aug 13
  • Fake news on Apple News

    I don’t use Apple News very often. I much prefer reading blogs in Reeder and Micro.blog, with a daily check on the other news sites I pay for. But last night I noticed a headline in the iOS today screen and tapped over to a few stories in Apple News.

    Scrolling down in the “For You” tab about politics I was surprised by a couple news stories about a plan by Democrats to “silence non-liberal media” (People’s Pundit Daily), and another on the Trump-Russia “collusion fantasy” (The Daily Caller). These were right-wing opinion pieces sprinkled with conspiracy theories, yet placed next to reputable news organizations like The New York Times, CBS News, and Politico.

    Apple News screenshot

    I thought Apple News was highly curated and better than this. Personal essays are fine in Apple News, because that’s part of blogging, but they shouldn’t be suggested to a mainstream audience looking for real news.

    → 10:49 AM, Aug 9
  • The first sign for Austin on our drive back from Santa Fe, as the setting sun lit up the clouds.

    → 4:14 PM, Aug 7
  • Wind farm somewhere between Lubbock and Abilene. Thousands of wind turbines in Texas.

    → 7:34 AM, Aug 6
  • From our visit to UCLA last week.

    → 10:05 PM, Aug 5
  • Catching up on some road trip photos. Goats in the morning fog at Berkeley.

    → 11:56 AM, Aug 4
  • Suzzallo Library at UW.

    → 5:43 PM, Jul 26
  • Morning in Silverdale, Washington.

    → 8:09 AM, Jul 26
  • Rediscovering all the events written into my old calendar.

    → 12:12 PM, Jul 12
  • Pomegranates.

    → 7:09 AM, Jul 9
  • From this morning’s hike with the dogs at St. Edwards Park.

    → 1:50 PM, Jul 8
  • Preview of Sunlit 2.0

    A few years ago, Jon Hays and I built an app for photos called Sunlit, powered by the App.net API. We evolved it to work with other services, like Flickr and Instagram, but as App.net faded away we could never justify the investment to rewrite significant parts of the app to bring it forward and keep it relevant. It also wasn’t clear what the app should do if we were to modernize it. So we let the app sit in the App Store, kind of neglected, and even discussed removing it from sale.

    As I rolled out Micro.blog to Kickstarter backers, Jon dusted off the Sunlit project and experimented with something that should’ve been obvious to us earlier: Sunlit should post to blogs. And more than that, it should work well with microblogs and IndieWeb standards. It should become a great app for photoblogging. The new version of Sunlit can post photos to Micro.blog, WordPress, or any site that supports the Micropub API.

    To play nicely with microblogs, we introduced a new post type in the app for single photos. For longer posts, you can still collect multiple photos together, add text, and post them as a story directly to your blog. There’s also a brand new editing interface with filters and advanced adjustments:

    screenshots

    Jon has put a bunch of work into this while I focus on Micro.blog. Sunlit 2.0 is already feature complete and in beta testing now. We expect to ship it sometime this summer.

    → 7:41 AM, Jun 27
  • Micro.blog iOS going universal

    As I expected would happen, using iOS 11 on my iPad Pro after WWDC has inspired me to revisit the universal version of Micro.blog for iOS. Here’s a screenshot of my current build:

    Micro.blog iPad

    I plan to include this in 1.0. I’m in the process of moving the app from TestFlight to its final home in the App Store. As we prepare for the public launch, this’ll make it much easier for everyone to download it, and it shouldn’t be limited or scaled up on the iPad.

    → 12:26 PM, Jun 21
  • Another day, another Texas road trip.

    → 11:24 AM, Jun 17
  • The Brazos River.

    → 7:01 PM, Jun 15
  • Pat Neff Hall at Baylor University. Really nice tour of the campus.

    → 3:47 PM, Jun 15
  • Summer day road trip up to visit Baylor. Stopped at Magnolia Market.

    → 12:38 PM, Jun 15
  • A little chilly out at the Presidio Picnic. Had some food truck tacos with a great view.

    → 2:00 PM, Jun 4
  • Up early. Took a quiet walk through the plaza and then to Philz.

    → 8:08 AM, Jun 4
  • Flying in to San Jose.

    → 3:40 PM, Jun 3
  • More flowers after a rainy weekend.

    → 11:22 AM, May 29
  • Micro.blog photos

    This week we added a selection of photos to the Discover page on Micro.blog, and today I uploaded a new TestFlight beta with the same feature inside the app. It’s another way to find users to follow, or just see what the Micro.blog community is up to.

    Here’s what the iPhone screen looks like:

    iPhone screenshot

    I think photoblogging is a really important part of indie microblogging. When I share photos online, I want them to be at my own web site in addition to cross-posted to Twitter and other social networks. Photos always capture something — a moment with family or friends, visiting a new place, or just the everyday routine as it changes — and I want Micro.blog to provide a great user experience for photos, from filters to hosting.

    → 4:54 PM, May 24
  • Good game, but we need our injured players back. On the bright side, we can now be the only team to come back down 0-3.

    → 9:53 PM, May 20
  • From just before sunset, out walking the dogs. Looking forward to a full week as Monday winds down.

    → 8:13 PM, May 15
  • Kayaking on Lady Bird Lake. Happy Mother’s Day!

    → 2:30 PM, May 14
  • Early dinner at Kerbey. We mostly have the place to ourselves.

    → 4:50 PM, May 8
  • Lunch outside at Manuel’s.

    → 1:44 PM, May 6
  • Half an hour until game 2. Monday night’s game was… not good. But at least I got this Spurs t-shirt.

    → 7:15 PM, May 3
  • Playoffs round 2 in San Antonio. Spurs need a much better second half. Just 1 game of 7.

    → 8:59 PM, May 1
  • Last night of softball for the season.

    → 7:19 PM, Apr 21
  • Picking out a t-shirt to wear for today’s 1st seed vs. 8th seed matchup. Gotta be the Blazers.

    → 1:04 PM, Apr 16
  • @testing More basketball on TV today

    → 11:08 AM, Apr 16
  • Feels like Saturday. Picking up some smoothies from JuiceLand.

    → 1:57 PM, Apr 14
  • Burrito and JuiceLand outside

    Burrito and JuiceLand outside
    → 4:01 PM, Mar 30
  • Unfinished backyard basketball

    Unfinished backyard basketball
    → 3:26 PM, Mar 30
  • Somewhere over California

    Somewhere over California

    From last week’s flight through Los Angeles and up to Portland.

    → 5:50 PM, Mar 4
  • Last week&#039;s Sting concert

    Last week's Sting concert
    → 7:28 PM, Feb 24
  • Exploring downtown this morning

    Exploring downtown this morning
    → 1:43 PM, Feb 12
  • Yesterday&#039;s hike with the dogs

    Yesterday's hike with the dogs

    At St. Edward’s Park.

    → 3:04 PM, Jan 2
  • Kickstarter video work-in-progress

    Tomorrow I’m launching a Kickstarter campaign for Micro.blog and a short book about blogging called Indie Microblogging. I’ve had fun working on the video for this project, trying to tell the story of why independent publishing matters.

    Of course the video has me talking at the camera, but it also incorporates some animation and screencasts. Here are 4 stills from the video:

    Video thumbnails

    I can’t wait to share the full thing. I’d love your support when it launches.

    → 12:52 PM, Jan 1
  • Microblog auto-link differences

    One reason I like microblogging on my own web site is that I can control the links and simple formatting. I’ve noticed lately that Twitter can’t consistently auto-link even certain domain names, for example.

    This difference is illustrated well in a post I made this morning, which included timetable.fm and micro.blog. Twitter auto-linked the .blog but not the .fm. The cross-post to App.net auto-linked the .fm but not the .blog.

    Here are the 3 versions:

    Link differences screenshot

    In the final screenshot — the original from my own site, from which the others were pushed out automatically — you can see how I’ve specifically linked the domain and phrases I wanted to. It’s a minor thing, but it just looks better when the author has a little control over the formatting. (And while I don’t use it here, my own short posts can contain text in bold or italics via Markdown, too.)

    → 11:14 AM, Dec 26
  • Trail of Lights 50+ years

    Trail of Lights 50+ years
    → 10:54 PM, Dec 20
  • Thank you Tim Duncan

    Thank you Tim Duncan
    → 12:21 AM, Dec 19
  • Blue lights for the outside tree

    Blue lights for the outside tree
    → 6:43 PM, Dec 14
  • Next year&#039;s Christmas trees

    Next year's Christmas trees

    At the Elgin Christmas tree farm.

    → 7:20 PM, Dec 10
  • Campus tour last week

    Campus tour last week

    University of Texas at Austin.

    → 5:34 PM, Dec 5
  • Talkshow.im archives

    Shutting down a web site correctly isn’t easy. When Talkshow announced they were closing, I was surprised. Six months is a limited time to launch, get traction, and then wind down. But I was glad that they’d let any show be exported as an archive.

    The archives aren’t available for very long. If you hosted a show on Talkshow, you have until December 1st to download it.

    I downloaded a couple to see how Talkshow handled it. Just in case no one else grabs them, I’m copying them here: Pop Life episode 5 with Anil Dash and guest John Gruber, and the Six Colors live coverage for Apple’s September 7th event. I had Instapaper-ed both of these to read later anyway.

    The archive itself is a simple .zip file with HTML, CSS, and user profile images. In the Finder it looks like this:

    Talkshow.im Finder screenshot

    This self-contained structure makes it very easy to re-share somewhere else. Credit to Talkshow for keeping this simple. But it also strikes me as so easy to keep hosting as static files, I wonder why Talkshow doesn’t keep the archives available indefinitely, which would preserve any existing links to these shows from the web.

    → 12:00 PM, Nov 26
  • Walking around TCU

    Walking around TCU

    Frog Fountain.

    → 10:41 PM, Nov 23
  • Election Day

    Election Day
    → 12:00 PM, Nov 8
  • Pink clouds

    Pink clouds
    → 6:36 PM, Nov 6
  • Rainy morning at the book festival

    Rainy morning at the book festival

    From the Texas State Capitol.

    → 6:09 PM, Nov 5
  • Hotel Emma library

    Hotel Emma library

    At the Pearl.

    → 11:00 AM, Oct 30
  • Landa Library

    Landa Library

    From the weekend in San Antonio.

    → 2:00 PM, Oct 29
  • Table of cubes

    Table of cubes
    → 11:00 AM, Oct 22
  • Walking along Lake Creek Trail

    Walking along Lake Creek Trail
    → 2:18 PM, Oct 15
  • Oaks from the front porch

    Oaks from the front porch
    → 11:47 AM, Oct 10
  • Nice day for lunch outside

    Nice day for lunch outside
    → 1:42 PM, Oct 7
  • Weekend on the lake

    Weekend on the lake

    Lake Livingston.

    → 11:00 AM, Aug 8
  • Kayaking before sunset

    Kayaking before sunset
    → 10:52 PM, Jul 10
  • Spring pool while camping in west Texas

    Spring pool while camping in west Texas

    At Balmorhea State Park.

    → 1:48 PM, Jul 3
  • Lake Travis sailboat

    Lake Travis sailboat

    From dinner at Lucy’s Fried Chicken on the Lake.

    → 11:34 AM, Jun 25
  • Finals, game 5

    Finals, game 5
    → 7:00 PM, Jun 13
  • Saint Mary Cathedral

    Saint Mary Cathedral

    Spending the day in downtown Austin for a Rubik’s Cube competition.

    → 1:53 PM, May 28
  • Listening to Timetable

    Because episodes of Timetable are short (usually just 5 minutes) and because they aren’t published on a consistent schedule (sometimes once a week, sometimes 3 times a week), I’ve wondered if it may be difficult for some people to fit the podcast into their routine of listening to longer, hour-long podcasts. If you only listen to podcasts while in the car, for example, a 5-minute show isn’t going to fill your commute.

    Luckily there are easy solutions to this. The first is: they are so short, just listen whenever you want, while you’re at your desk or walking somewhere or having lunch. Another option: gather up a few episodes and listen altogether, as if it’s 3 parts of a 15-minute podcast.

    If you’re an Overcast user, you can create a playlist that will play multiple Timetable episodes in sequence without requiring any tapping in the app to queue up the next one. Here are some screenshots showing one way to set this up after subscribing to Timetable in Overcast.

    First, tap the new playlist button in Overcast. Then tap Add Podcasts and select Timetable.

    Overcast screenshots

    The playlist should automatically show any unplayed episodes. Finally, tap the Playback button while an episode is playing and make sure to highlight Play Next for the When Episode Ends option. This will make sure that you have continuous playback from one episode to the next.

    Overcast screenshots

    I’ve recorded 23 episodes of Timetable so far, equal to about 2 hours of audio. While consistency is the most important thing for my other podcasts, Core Intuition and Technical Foul, for Timetable I’ve liked the flexibility to experiment with different styles and show formats. Enjoy!

    → 8:39 AM, May 24
  • Over 50 kinds of root beer

    Over 50 kinds of root beer
    → 2:48 PM, May 14
  • Podcasting lock-in and the lesson from Penn Station

    When my family was visiting New York City a couple of years ago, we took a train out of Pennsylvania Station on the way up to Montreal for the second half of our vacation. It was raining a little as we walked from the hotel, but I thought we’d still have no trouble finding the station. After a few minutes we gave up and had to ask someone where the entrance was.

    We couldn’t find it because it looked like every other street corner in Manhattan. But it wasn’t always like that. It used to look like this:

    Pennsylvania Station in the 1910s

    In the 1960s, facing declining train usage and financial problems, the Pennsylvania Railroad sold the rights to everything above ground and the incredible station pictured above was demolished. It was only afterwards, when it actually happened, that everyone fully realized what they had lost. Determined to not let other beautiful architectural landmarks get destroyed, the city passed a law to restrict similar demolition. Grand Central Terminal was preserved because of the lesson learned from letting Pennsylvania Station go.

    I was thinking about this story — failing to do the right thing, but applying that knowledge to the next thing — while re-reading Marco’s excellent post on the future of podcasting. In it, he lays out the technical details for how podcasting works today, and makes the case for leaving it alone. I especially like this part, on his determination to keep Overcast a sort of pure MP3 client:

    By the way, while I often get pitched on garbage podcast-listening-behavioral-data integrations, I’m never adding such tracking to Overcast. Never. The biggest reason I made a free, mass-market podcast app was so I could take stands like this.

    I should have realized it earlier, but I don’t think I really connected all of Marco’s goals with Overcast until Daniel Jalkut and I had him on Core Intuition episode 200. We talked about many of these same themes as Marco was finishing up Overcast 2.0.

    There’s also a great discussion on Upgrade about this. It starts about halfway through.

    In a response to Marco on MacStories, Federico Viticci writes about the parallel trend in the web industry toward centralized services like Facebook and Medium that allow “content professionals” to monetize their writing. In doing so, those writers give up many of the benefits of the open web:

    But the great thing about the free and decentralized web is that the aforementioned web platforms are optional and they're alternatives to an existing open field where independent makers can do whatever they want. I can own my content, offer my RSS feed to anyone, and resist the temptation of slowing down my website with 10 different JavaScript plugins to monitor what my users do. No one is forcing me to agree to the terms of a platform.

    While the open web still exists, we really dropped the ball protecting and strengthening it. Fewer people’s first choice for publishing is to start a web site hosted at their own domain. Like the destruction of Pennsylvania Station, sometimes you only know in hindsight that you’ve made a mistake. We were so caught up in Twitter and Facebook that we let the open web crumble. I’m not giving up — I think we can get people excited about blogging and owning their own content again — but it would have been easier if we had realized what we lost earlier.

    Reading posts like Marco’s and Federico’s, and listening to Jason and Myke on Upgrade, I’m convinced that podcasting will remain open because we know better now. As a community we can learn from the mistakes with the web and the threats of closed platforms, making sure that podcasting is preserved as a simple technology that no one controls.

    → 8:40 AM, May 12
  • Hiking back from Bull Creek

    Hiking back from Bull Creek
    → 7:37 PM, Apr 26
  • Spurs vs. Grizzlies, game 1

    Spurs vs. Grizzlies, game 1
    → 9:00 PM, Apr 17
  • Lion outside Windsor Park Branch

    Lion outside Windsor Park Branch
    → 7:26 PM, Apr 16
  • Leander Public Library

    Leander Public Library
    → 7:04 PM, Apr 13
  • Bee Cave Public Library

    Bee Cave Public Library
    → 7:35 PM, Apr 12
  • Doll house Little Free Library

    Doll house Little Free Library

    For the 3rd Sunday in a row, I’ve taken a break from visiting a normal library and instead found a Little Free Library to exchange a book at. They’re all very unique, often made by hand. This one was made from a doll house, which opens both from the bottom front and roof for two floors of books.

    → 8:20 PM, Apr 10
  • Pond view at Lake Travis Community Library

    Pond view at Lake Travis Community Library
    → 3:42 PM, Apr 9
  • Sculpture outside Ruiz Branch

    Sculpture outside Ruiz Branch
    → 6:24 PM, Apr 4
  • Books rule

    Books rule
    → 7:22 PM, Apr 3
  • Working from Laura Bush Community Library

    Working from Laura Bush Community Library
    → 10:20 AM, Mar 29
  • Take a book, return a book

    Take a book, return a book
    → 3:19 PM, Mar 27
  • Westbank Community Library

    Westbank Community Library
    → 2:30 PM, Mar 25
  • Charging my car at the library

    Charging my car at the library

    At the Howson Branch.

    → 2:07 PM, Mar 24
  • Wells Branch Community Library

    Wells Branch Community Library
    → 3:40 PM, Mar 23
  • Reading Peter Pan

    Reading Peter Pan

    Outside the Cedar Park Public Library.

    → 3:45 PM, Mar 19
  • Lady Bird Lake during SXSW

    Lady Bird Lake during SXSW
    → 1:23 PM, Mar 15
  • Comics and prints for the kids from Staple! Expo

    Comics and prints for the kids from Staple! Expo
    → 2:46 PM, Mar 7
  • The evolution of linkblogging

    In my posts about defining what makes a microblog post and guidelines for RSS, I talked a little about links but didn’t explore linkblogging. While many blog authors post primarily long essays, shorter link blogs are a common approach for bloggers who want to post new content several times a day.

    Essentially two types of link blogs have evolved since the early days of blogging. The most traditional link blog can be seen in Dave Winer’s posts (click on the Links tab). These are links with a very short commentary. Many tweets are like this. In a way, this format is the purest form of microblogging.

    The second type of link blog starts to fall outside the limits of microblogging. Instead of just including a URL, authors use a quote from the linked material as the foundation for the post. The majority of Daring Fireball posts adopt this format. While John Gruber is known for his full essays, those longer posts are infrequent today. He keeps his site active by linking to other interesting essays and tacking on his own brief opinion.

    Daring Fireball has become so successful that Gruber’s approach to linkblogging has been copied by many other sites. MacStories, Six Colors, One Foot Tsunami, John Moltz’s Very Nice Web Site, and Marco Arment’s blog are just a handful that follow this pattern. All of these sites post the occasional essay, but most blog posts link away to an external site in the RSS item, not back to their own site.

    At a technical level, this difference can best be seen in the RSS feed’s <link> and <guid> elements. These elements will contain URLs that either link back to the main site, or link away to an external site.

    Here is where this evolving approach to link blogs starts to break down. Let’s take an example from Six Colors, one of my favorite sites. (I recommend subscribing. The members-only secret podcast with Jason and Dan Moren is really fun, and the email magazine is great too.)

    In a link post about Hulu’s pricing, Jason Snell actually writes 4 paragraphs of commentary (plus a footnote). This is more like an essay than a short link post that points to the external site.

    Another example is when MacStories linked to Twitter’s launch of Moments. A few paragraphs of quoted text, 5 paragraphs of MacStories commentary. The commentary is as important or even more important to read than whatever Federico is linking to.

    Sometimes we read sites like MacStories, Six Colors, or Daring Fireball more for the commentary than for what is being linked to. But when using an RSS reader, there is too much confusion about where an item’s link goes when clicked if the site’s feed isn’t consistent about linking everything back to its own site.

    And in fact Jason Snell acknowledges this problem by offering two separate RSS feeds: the default one, with a mix of links back to Six Colors for essays and pointed elsewhere for link posts; and another feed with everything linking back to Six Colors, where the commentary lives. He also attempts to minimize confusion on his own site by giving each type of post its own icon in the site design.

    The less clear-cut the distinction between essays and link posts, the more confusion we introduce to readers. In some ways, this mixed approach really only works for Daring Fireball, because his feature essays are so long, and so obviously different in format to the rest of the link posts.

    Good conventions for blogging have been at a standstill for years. While part of the appeal of indie blogging is there’s no one “right” way to do it, and authors can have a strong voice and design that isn’t controlled by a platform vendor, we must accept that Twitter has taken off because it has a great user experience compared to blogs. It’s effortless to tweet and the timeline is consistent. For blogging to improve and thrive, it should have just as straightforward a user experience as social networks wherever possible.

    Luckily, RSS already has everything we need for clients to visually distinguish between link posts and regular ones. If the <link> element points to a domain other than the one for the site, it’s probably a link post. If the <link> and site domain match, it’s a full post.

    I’ve adopted this in my new microblogging platform by exposing the domain in the UI itself, at the end of the title or microblog post whenever it’s a link post. If it’s a full post, the link isn’t added. And for either type of post, the timestamp links back to whatever was in the <link>.

    Here’s a screenshot from one of Dave’s posts. Note that the link was not in the RSS text. It was added by my app automatically:

    linkblog example

    This has been a long post, but it boils down to two simple recommendations:

    • If you’re a blog author and you’re adding any significant commentary, the RSS feed should point back to your site.
    • If you’re an RSS client developer, the difference between link posts and full posts should be exposed in the UI.

    I believe that adopting these will bring more consistency to blogging. Users won’t need to hover over links, or guess what will happen on a click or tap. It’s a small change that will make reading blogs a little better.

    → 11:54 AM, Mar 3
  • Walking around the UT Tower

    Walking around the UT Tower
    → 12:00 PM, Feb 22
  • Ginger in the backyard

    Ginger in the backyard
    → 12:00 PM, Feb 13
  • Microphone and microcast details

    A few weeks ago I started a new short-form podcast called Timetable. Each episode is 3-5 minutes. It has been really fun to record the show because I can try new things without investing too much time.

    One goal from the very beginning was to record from iOS so that I could easily record outside the house. I wanted not just the flexibility to be away from my computer, but a stereo microphone that could capture some of the surrounding environment, to give it a more informal feel. (I’m actually cheating in some cases and using multiple tracks, to make editing easier, but I think the effect works. All the episodes have been exported to mono so far, though.)

    I ordered this cheap iPhone microphone for testing — only $10 when I ordered it! — and figured after some experiments with my iPhone 4S, I would invest in something new. I liked it enough that I’m still using the mic with my 5S via a Lightning cable adapter. I’m also using a foam pop filter that I already had from a previous old mic.

    Microphone

    This may be the single best value in a tech gadget I’ve ever purchased. Total cost for producing the podcast:

    • Microphone: $10
    • Ferrite: $20
    • Workflow: $3 (for MP3 conversion)
    • Domain name: $120 (.fm domains are expensive)

    I certainly didn’t invent the idea of a “microcast”. There are other good short podcasts, such as Bite Size Tech. But I’m happy to see even more people trying out the idea. Michael even started a new podcast called Driftwood to chronicle the development of his Jekyll template for microcasts.

    Ferrite also continues to impress. It’s a very high quality iOS app and is competitive with Mac multi-track audio editors. For a good introduction, check out Jason Snell’s review.

    → 9:36 AM, Feb 2
  • Panic 2015 updates

    There’s a lot of great stuff in Panic’s 2015 report, but I’m especially struck with how well they executed on updates. This is something that successful companies get right, and which I still struggle with: continuing to make each app just a little better, with bug fixes throughout the year, instead of getting completely sidetracked with new projects. Cabel writes:

    “Not only did we release great things, but I feel we demonstrated dramatic dedication to our apps — we released the most high-quality, bug-free updates in our history.”

    The product update grid that accompanies the report really underscores this:

    Panic versions

    Congratulations, Panic. I’ve been using the new Coda for iOS on my iPad Pro and it’s excellent.

    → 9:27 AM, Jan 27
  • Inline links in microblog posts

    When I was first trying to figure out how my microblog posts should look, I was thinking more like tweets and less like HTML. Eventually I settled on HTML for publishing and display, with Markdown for writing.

    Here’s what a microblog post looks like in the timeline for my new web app:

    screenshot

    You can compare that to how it looks when cross-posted to Twitter. It’s not exactly a fair comparison since the tweet was truncated, but it’s still incredible to me how much better these posts look if you allow inline links and some more characters.

    → 2:00 PM, Jan 26
  • ESPN sidebar microblog

    I like what ESPN is doing in the sidebar on their NBA scores page. It’s a timeline of both tweets and short ESPN posts, integrated together with a clean design that fits the rest of the site.

    This timeline is a great use of microblogging. The short posts aren’t limited to tweet-length — they’re often around 200 characters instead — so they can feel complete and informative while still being concise. I’ve suggested 280 characters as a guideline for microblogs, and having the extra characters to work with really makes a nice difference.

    I took an example screenshot from ESPN and included it to the right of this post. The first two posts are these special ESPN microblog posts, and the third is a tweet. I don’t know what CMS-like system is driving this, but you can imagine using WordPress post formats, custom fields, or categories to achieve something similar.

    → 10:00 PM, Dec 7
  • Last night&#039;s Spurs game

    Last night's Spurs game
    → 7:00 PM, Dec 6
  • Riverwalk at the King William district

    Riverwalk at the King William district
    → 5:00 PM, Dec 6
  • Oak Alley Plantation

    Oak Alley Plantation
    → 9:00 AM, Nov 25
  • St. Charles Line streetcar

    St. Charles Line streetcar
    → 8:00 PM, Nov 24
  • Audubon Zoo

    Audubon Zoo
    → 1:00 PM, Nov 23
  • Lantana

    Lantana
    → 4:00 PM, Nov 1
  • Indianapolis Union Station

    Indianapolis Union Station
    → 12:00 PM, Oct 25
  • Myke Hurley at Release Notes

    Myke Hurley at Release Notes
    → 12:00 AM, Oct 22
  • Looking for a train in Scott

    Looking for a train in Scott
    → 10:00 AM, Sep 6
  • Doubt, with screenshots

    My good friend and Core Intuition co-host Daniel Jalkut isn’t convinced. After we recorded last week’s podcast, we talked privately about the direction I’m headed in. He’s seen the projects I have in development, but he thinks working on Mac apps is a safer bet than web services. And he works on a blogging app, so if I can’t convince him that the goals I have around microblogging-related tools can be a real business, how am I going to convince the rest of the world?

    Earlier this year I gave a talk at CocoaConf about tips I’ve learned to be productive while juggling multiple projects. But as I worked on the talk, it turned out to be about something else. It was about Walt Disney moving from Kansas City to Hollywood. It was about crazy side projects that no one else believed in. It was about Texas Hold ‘Em poker and risking everything for an idea.

    The new microblogging app and service I’ve been working on, off and on for the last year, is the most ambitious project I’ve ever attempted. It is difficult to explain and market, it might only resonate with a niche audience, and it is going to increase my hosting costs. So part of me knows that Daniel is right — that the smart business decision is to put it on hold and focus on my Mac apps, which will probably have more predictable revenue.

    And yet, this project is also the most meaningful. In the words of Peter Thiel, it could take independent microblogging from zero to one. A new push forward for weblogs, maybe the first in a while. Therefore, I must do it, and I must accept some risk in the process.

    Lately I’ve been working on the iPhone version. When you look at these screenshots, it might be tempting to compare it to Twitter. Don’t. Instead, think about how the plumbing fits together: RSS, microblogs, and the open web.

    screenshot

    I can’t wait to officially announce and ship this. If you’d like to get an email when the beta is ready, sign up on the announcement list.

    → 9:13 AM, Aug 31
  • Starting over

    “Am I always starting over
    In a brand new story?
    Am I always back at one
    After all I’ve done?”
    — Always Starting Over, from the broadway show If/Then

    Daniel said on the latest Core Intuition that it’s important to celebrate major work milestones, like shipping a new app or quitting a job. I didn’t think I’d be celebrating right away, but as it turned out, my wife met me for lunch on Friday and we had a beer to mark the occasion. She snapped this photo:

    Some things just work out. I couldn’t have picked a better t-shirt to wear if I had planned it.

    When 5pm came around I made a final comment on Confluence, replied to a couple emails, and then signed out of HipChat. But I didn’t have time for much reflection. My son and I were busy packing up to head to a campout with Boy Scouts. Then as soon as we arrived back the next day, I turned around again to take my daughter to see Idina Menzel.

    The concert was incredible, somehow including both Wicked’s “Defying Gratify” and Radiohead’s “Creep” — and yes, of course Frozen — to make a show with both the occasional explicit lyric and little kids pulled up from the audience to sing. It was only while driving home from the concert that I had a moment to think what I need to do next. Idina’s lines from If/Then at the beginning of this post kept coming back to me.

    I’ve worked a long time on a few things, and they were pretty good, but now it’s time to start over. I turn 40 in a few months. It’s time to figure out what the next 10 years of my life should be about.

    → 9:41 AM, Aug 3
  • NeXTEVNT and Song of the Sea

    WWDC 2015 now feels like it took place in the distant past, not a month ago. For the last few years I’ve attended the NeXT-themed fundraiser for the Cartoon Art Museum, and this year there’s video from the event. Check it out for a view into the museum and some of the talks.

    It’s always a highlight of the week for me to visit both the Cartoon Art Museum and the Walt Disney Family Museum. This year Cartoon Art had pre-production drawings and paintings from the hand-drawn film Song of the Sea, one of my favorite films of the year. Really beautiful stuff.

    → 12:26 PM, Jul 29
  • Sneak peek screenshot

    Here’s a screenshot of the new microblogging project I’m working on. It’s almost ready for more beta testers. If you’re a fan of RSS and the open web, sign up for the announce list.

    Snippets screenshot
    → 11:34 PM, Jul 13
  • WWDC 2015, basketball, and cartoons

    Throughout the week I posted about WWDC to my microblog, but I thought I’d write a longer post with the week’s narrative. It’s useful to have these to refer to in the future when all the WWDCs blur together and I’ve forgotten which event was which. Where it adds any details I’ll link to a few of the shorter posts.

    So let’s go back to Sunday morning a week ago when I arrived in San Francisco, ticketless but ready to learn and meet up with friends. What a great day. First burritos and coffee in the Mission, then to Oakland for the NBA finals, game 2. I had signed up on the Golden State Warriors mailing list a couple weeks earlier to get in on the pre-sale tickets. Excepting the nearby San Antonio Spurs, I’m almost never going to just coincidentally be in the same city as an NBA finals game. I couldn’t let that chance slip by.

    Golden State Warriors

    And it was an amazing game. Outwardly I was rooting for the Warriors — high fives to fans when the team came back to force overtime, wearing my new yellow shirt they gave everyone at the game. But inwardly I was also marveling at LeBron’s dominance and happy to see the series tied up. I want to see this thing go to 7 games.

    Monday was the keynote and later the Cartoon Art Museum / NeXT fundraiser, with beautiful art on the wall from one of my favorite films this year, Song of the Sea. Tuesday I tried to catch up on some code at Sightglass Coffee, watch sessions at WeWork, and installed the iOS 9 beta on my retina iPad Mini. In the evening on this day and others there were parties, though I only attended a few.

    The Talk Show

    The Talk Show live with guest Phil Schiller was a great surprise. I’m so happy for John and his success. Developers who have only known Daring Fireball after it was already fairly popular may need this important reminder: John Gruber started a dozen years ago with a blog that no one read, just like the rest of us, and this week he conducted the best interview of a senior Apple executive I’ve ever seen. If you think it’s enough to just throw random quips to Twitter, it’s not enough. Blogging is still the best way to build an audience. (Don’t miss Marco’s post about the event and what it means for the new Apple.)

    I have very little to complain to Apple about this year. Maybe the keynote was a little long, but the topics they hit and the new user features and APIs were exactly right. I’ve got Mac OS X 10.11 El Capitan installed and will require it for my next Mac app.

    Golden State Bridge

    Toward the middle of the week I wasn’t feeling particularly great — not sick, but not really upbeat enough to get excited about new APIs. I escaped the city for the afternoon on Wednesday, visiting the Walt Disney Family Museum and then walking down to Crissy Field toward the Golden Gate Bridge. I stretched my arms out wide to catch the wind and felt refreshed in a way that the stagnant weather back in Austin this time of year can’t hope to provide. I remember this tweet from 2012 and it’s always true again, year after year.

    Thursday morning I caught a session at AltConf before heading to the airport. Flights were delayed out of SFO because of fog, so it was 3 hours waiting in San Francisco, and another 3 hours waiting in Phoenix after a missed connection. But it’s all good. WWDC was a little weird for me — not because of anything Apple did, just because I was a little wistful, and distracted by email and non-WWDC happenings too.

    Nevertheless I’m inspired by the week. The success of both AltConf and now Layers, not to mention all the other smaller events and keynote watch parties, point to a very strong WWDC for years to come.

    → 8:25 AM, Jun 15
  • Austin rain

    I think it has finally stopped raining in Austin. Starting to look like summer again:

    10 days

    Contrast with this video we took on our street last week. We get our fair share of thunderstorms, but I had never seen anything quite like the rain we got last month.

    → 8:36 AM, Jun 2
  • Updated Tweet Marker extension

    I updated the Tweet Marker Safari extension to version 1.2 today. This version fixes the extension to accommodate recent design changes on twitter.com. Existing Tweet Marker paid subscribers can grab the new extension here.

    Here’s a screenshot of the “Set Marker” link that the extension adds to twitter.com. Then when you launch a compatible iOS or Mac Twitter app, it will scroll the timeline to that position.

    If you’d like to support Tweet Marker or use the Safari extension, you can subscribe for $1/month.

    → 11:06 AM, Dec 15
  • Twitter ads

    I was talking to friends this week about app advertising, and it inspired me to try Twitter ads. Otherwise known as “promoted tweets”, these ads are actual tweets that show up in search results and timelines, even if the user isn’t following your account. Tweet Library 2.5 seemed like the perfect time to try this.

    I set a max of $5 a day and included several related Twitter accounts to help the ads find a more narrow audience of people who might want to buy Tweet Library. Here are the results after 24 hours:

    Promoted tweets dashboard

    Unfortunately I don’t have an easy way to track this all the way to actual App Store sales. Assuming a 5% conversion on App Store visits, I likely lost a little money. The extra 1800 impressions is nice though, to raise awareness about the app. I’m going to let it run for a week.

    → 8:39 AM, Apr 25
  • Tint color misuse

    It has been nearly a year since the first iOS 7 beta, and something about tint color still bugs me. In fact it bothered me enough at the time of the early betas that a filed a bug on it with Apple, something I very rarely do. The problem isn’t so much in the concept of tint color, which I like; having a consistent color for buttons and links, especially now that buttons are so understated, makes a lot of sense. The problem is the implementation in apps that use tint color anytime they want to highlight something, whether it is tappable or not.

    Here’s an example in Apple’s calendar app. It uses a red tint color for buttons, but it also highlights the current day with a round circle using the tint color. It looks tappable, but it’s not.

    Calendar

    And here’s an even worse example, from the App Store app. “Categories” in this screenshot is a button, but “Paid” directly underneath it — same blue, same font and style — is just highlighted to show that you are viewing paid apps. It’s actually “Top Grossing” that is the button.

    App Store

    These kind of usability mistakes turn the great potential of tint color into a disadvantage. It’s like underlined text on the web that can’t be clicked. Apps should use tint color to improve usability, not to become even more difficult to use than if everyone rolled their own button styles.

    Here’s what Apple’s iOS 7 UI Transition Guide says:

    “In iOS 7, tint color is a property of UIView. iOS 7 apps often use a tint to define a key color that indicates interactivity and selection state for UI elements throughout the app.”

    But that’s not specific enough. The app screenshots above are following this rule, and it still looks wrong. Bold text or a gray background for highlights are much more effective to show selection state than tint color. I would completely avoid tint color for selection state except for controls that have 3 or more segments, such as a tab bar, and even then sparingly. Highlighting a 1- or 2-segment control with tint color is always going to be confusing, because the selected segment looks like it can be tapped.

    With this in mind, fixing the App Store app is a simple change:

    App Store

    (You could make the “Top Grossing” button blue or not. I don’t think it’s necessary in this case.)

    The best iOS 7 apps I’ve seen follow the spirit of Apple’s guidelines, but they know when to push beyond Apple’s built-in apps and when to pull back and do less. Tint color seems like an obvious case of where we should be more consistent and strict than Apple intended.

    → 2:52 PM, Apr 17
  • Sunlit 1.1

    Today we shipped version 1.1 of Sunlit, our app for collecting photos and text together to make and publish stories. Some of the bigger changes include:

    • Instagram and Flickr import. You can now add any of your own Instagram or Flickr photos into a story. With Flickr, you can even browse from your Flickr sets.

    • Improved Dropbox support. The first version of Sunlit assumed most of your photos on Dropbox were in the Camera Uploads or Photos folder. For 1.1, we’ve added a full Dropbox browser so you can pick any folder you want.

    • Multi-user text syncing. Now anyone subscribed to a story can add both photos and text descriptions, and the text will sync to all users. This is a really powerful feature for collaborating on stories. We think it puts Sunlit in a class above any other app like this.

    • Confirm deleted photos. What happens if you let other people add photos to your story, but they accidentally delete one of your photos? Sunlit now tracks this and shows a special confirmation alert so that you can either allow the photo to be deleted or keep it.

    There are other fixes and improvements too, which you can see in the release notes. Here are a few screenshots of the new Dropbox and Flickr screens: Sunlit v1.1

    Sunlit is available in the App store as a free download. If you like it, pay just $4.99 to unlock the full app, and leave a review in the App Store to help others discover the app. Thanks!

    → 3:00 PM, Feb 14
  • Sunlit maps

    Map

    iOS already ships with a mapping framework from Apple that all apps can use, so why did we ignore it in Sunlit and use Mapbox instead? Two main reasons:

    Custom map colors. I was interested in creating beautiful new maps that would give Sunlit a unique design. Maps in every other iOS app look exactly the same. Sunlit is automatically more distinctive just by choosing something different, and we barely scratched the surface of the customization that is possible on Mapbox.

    Direct web API. Mapbox gives you access to your maps not just in a native iOS map view, but also over the web. For the story backgrounds in Sunlit, we grab rendered maps directly with an HTTP call. This is a lot simpler and faster than having to build an interactive map view and snapshot it.

    It also helped that I’ve been following the cool stuff Mapbox has been doing ever since Justin Miller joined their team a few years ago. I could tell this was a company that wanted to push the technology of maps forward. Apple needs to spend all their time building a viable alternative to Google Maps — driving directions, business locations, better search. But I don’t care about any of those things in my app. For Sunlit I want to use a framework from people who clearly love maps, and I think that’s Mapbox.

    → 9:04 PM, Jan 21
  • Why we built Sunlit

    Montreal

    You have that feeling when hanging out with friends — everyone snapping pictures of their surroundings, of people, events, food, anything — that photo sharing should be better. That years later, you should be able to go back to that time, to see the best photos collected together from several people. And not just photos, but maps of where you were, and text to describe its significance.

    One afternoon before Çingleton in 2012, this subject came up as Jonathan Hays and I were taking photos around Montreal. It seemed remarkable and disappointing to us that there was no easy way to put those photos together. And I liked the idea of buildling a new app around photos, with the same themes of curation and preserving past events that are so important to my other Riverfold products.

    So we let the idea sit in the back of our minds, and later we wrote a little code as time allowed. At the App.net hackathon before WWDC 2013 we dove into the project in earnest, figuring out how it would sync, then over the summer took some more time to think through the user experience.

    Sharing a single photo has been done a hundred times on iOS. Instagram was an important app to nail the timeline UI, and Favd is currently my favorite way to post and browse new photos (it’s really great). But hardly anyone has even attempted to tackle photo curation, group sharing, and publishing, let alone gotten it right. Sunlit 1.0 is our first pass at this and we couldn’t be more excited about trying to solve a new problem with photos.

    They say you should spend money on experiences — on memories, not things. Sunlit helps you put those memories together, share them as a group, and rediscover them when it matters. The first version will ship tomorrow. I hope you like it.

    → 5:24 PM, Jan 15
  • Your name

    Found via Shawn Blanc, CJ Chilvers writes about the reputation of photographers:

    I look at their blogs and the consideration given to advertisers over readers. I look at their Twitter feeds that have become broadcasts, rather than conversations. I look at their Instagram feeds and see a stream of consciousness, instead of considered examples of the work that makes them proud.

    It reminds me of one of my favorite parts of Christina Warren’s talk at this year’s Çingleton, where she told the story of turning down work she wouldn’t be proud of, even though she was still struggling as a professional writer. That your reputation will outlast your current job or project:

    If I give up my name — which I’m starting to build and people are starting to respect — by doing stuff like this, what does that mean? I can’t ever live this down. All I have is my name.

    Christina Warren at Cingleton 3

    Daniel Jalkut and I talked more about the general themes of Çingleton a couple months ago, on Core Intuition episode 110.

    → 1:56 PM, Dec 15
  • Three ADN clients for iPhone

    Lots of new people are joining App.net. If you’re one of them, welcome! In this post I’m going to briefly review 3 of the most popular iPhone clients: Netbot, Felix, and Riposte. You can’t really go wrong with any of these three apps. And if you’re looking for a Mac client, my current favorite is Kiwi.

    Netbot

    Netbot is nearly identical to Tweetbot. It shares most of the same source and all of the same UI design. That common heritage is great because it’s familiar to fans of Tweetbot, and it allowed Tapbots to launch onto App.net in a big way, leapfrogging all other clients that were under development at that time.

    But the familiar design is a double-edged sword. Not just because the App.net API will evolve and diverge from the Twitter API, but because if you switch between both Tweetbot and Netbot often, you may need to be careful that you remember which app you’re posting from. This was a problem for me since I no longer post to Twitter, and the last thing I wanted to do was accidentally leave a new post there after a 5-month absence.

    All the usual features you’d expect are present in Netbot: timeline, mentions, private messages, multiple accounts, and sync with Stream Marker. It even has an iPad version, which you may want to pick up even if you chose a different primary app on the iPhone.

    Netbot also has one big feature that most App.net clients don’t have: post search. This is not part of the core App.net API. Tapbots rolled their own search server so that they could offer this feature inside the app.

    Sidenote plug: if you want search for all the posts from anyone you’re following, and your own posts, consider my web app Watermark. You can subscribe on the web or in the iPhone version.

    Felix

    Felix is possibly the most mature and actively maintained of the App.net-exclusive apps. You can tell from his App.net posts that the developer is passionate about App.net and determined to keep making his app better.

    The current version supports all the basic features as well as push notifications, narrow inline image previews that take the full width of the screen, iCloud sync for drafts, starred conversations, and a brand new feature in version 1.5: collapsing posts you don’t want to see, similar to Twitterrific 5’s muffling. The only omission is that it does not yet support multiple accounts.

    Felix is also unique in that it is the only one of these 3 apps that is not free. The other apps are counting on the Developer Incentive Program to send them a check each month instead of relying on traditional sales. Felix is a good value at $5, though, and the price shouldn’t stop you from trying it out, especially as it is a very small amount compared to the paid App.net subscription itself.

    There are a number of gestures in Felix. One interesting shortcut — which may also be familiar to users of Twitterrific 5 — is swipe right to quickly start a reply. I personally found that this breaks the illusion of gestures as direct manipulation, though. Since swiping to the left pulls forward the conversation, doing the reverse swipe should go back to the timeline. (Update: There’s actually a setting in Felix to switch this behavior.)

    Felix also added a clever trick in its post composition window. You can swipe the text view to move the selection cursor one character over, or use two fingers to swipe across an entire word at a time. This saves a lot of time tapping-and-holding and fiddling with the magnifying glass. Felix is packed with little details and shortcuts like this.

    Riposte

    Riposte is beautifully done, with a clear design and a simple left/right gesture system to navigate through anything in the app. By default, there is no toolbar or tabs; everything is full-screen. Following Netbot’s lead, the developers of Riposte have decided to make their app free, and they have written up some thoughts on why.

    Multiple accounts are handled well and it’s easy to switch between them. Like Felix and Netbot, push notifications are supported. Riposte uses large square inline images. It’s got a great interactions view that shows users who have recently followed you or starred your posts.

    Riposte mirrors Felix’s compose text view gestures, and Riposte was the first to introduce 2-finger swipes in that text view. I love that both apps now support these gestures about equally, and hope to see many more apps steal this feature soon.

    Since it doesn’t have tabs, switching between timeline, mentions, global stream, and other views is done through a slide-out panel, popularized in early apps like Facebook, Path, and Sparrow, and now very common everywhere, including my own Twitter app Tweet Library. It’s a swipe and a tap instead of the single tap of Netbot or Felix, but it is space-efficient and fits the flow of gestures in Riposte.

    While Riposte holds its own against the competition, I think it will be chosen most not for its features but for its design. The striking full-screen look and consistent, discoverable gestures make this app feel great. It also has probably the most readable conversation view of any app I’ve used, where the focused post appears immediately and then is surrounded with the full conversation using smaller text. That design is even maintained in HTML email when sending a conversation from the app.

    → 12:32 PM, Mar 25
  • Start small

    xkcd

    Every once in a while, I’ll think about this xkcd comic strip. It’s a reminder to me that great things can start small, unambitious. I never would’ve guessed that a web comic artist starting so plainly would later produce a single strip that’s so incredible.

    Maybe we should all find our app’s version of stick figures, good jokes, and consistency. Then work long enough and hard enough and suddenly a couple years later, it feels within reach to build something amazing, something beautiful. Something big.

    → 9:27 PM, Mar 24
  • Where to archive your tweets

    It’s great to see more people get access to their full archive of tweets from Twitter. In addition to just having a copy of your own tweets, it can be useful to go back and browse them by date, or search for something specific. I’d suggest putting the HTML version online as-is (mine’s here), and also checking out other apps that add a variety of different features on top of the basic archive.

    Both of my apps — Tweet Library for iOS and Watermark for the web — can now import the .zip file you receive from Twitter. This file contains your full archive of tweets and retweets. Both apps can load the file directly from Dropbox, making it as simple as possible to get the tweets imported. And both apps are smart about only importing tweets that haven’t been stored yet, so you don’t have to worry about duplicates.

    To import into Tweet Library, first download the archive from your settings page on twitter.com. Inside Tweet Library click on the blue arrow icon next to “Archives” and walk through the steps to authorize your account with Dropbox. Then copy the .zip file from Twitter to Dropbox → Apps → Tweet Library. It will show up in Tweet Library and can be selected.

    Tweet Library import flow

    Tweet Library is good if you want easy access to your tweets on the iPhone or iPad. You can search your tweets, create filters for them, and add tweets to special collections to share with others. It also doubles as a full Twitter client, with a timeline, posting, Instapaper support, and plenty more. Check it out in the iOS App Store.

    To import into Watermark, also download the archive from Twitter and put it on Dropbox. You can put it anywhere, either in Apps → Watermark if you’ve already authorized Watermark to use Dropbox (for export), or in Documents or anywhere else. Then sign in to Watermark and click Account → “Upload all your tweets” to select the file.

    Watermark is good if you want to expand your archive beyond just your own tweets. It indexes tweets from everyone you are following, creating a huge searchable archive over time. My own account in Watermark now has about 400,000 tweets indexed. Sign up or learn more at watermark.io.

    → 4:22 PM, Jan 21
  • Tweet Marker new subscriber plan

    The original goal for Tweet Marker Plus was to help cover the hosting costs for Tweet Marker. It succeeded for a little while, but it also ended up evolving into a larger independent service: Watermark, with much higher hosting costs for archiving and search, and a bunch of new features like App.net support, Dropbox sync, saved collections, and more. I’m really excited about the future of Watermark.

    I also hear from Tweet Marker users who don’t need Watermark. They still want to support Tweet Marker, though, to make sure it continues running and that it’s as fast as possible.

    So today I’m introducing a separate, inexpensive subscription option for Tweet Marker. Just $1/month! You can subscribe from the new Tweet Marker home page. And as a bonus you’ll get the first official Safari extension for Tweet Marker, shown in this screenshot:

    Tweet Marker extension
    → 8:24 AM, Dec 17
  • Posting from Watermark

    Watermark now has App.net posting, replying, and an improved UI for tweeting. You could always tweet from Watermark, but it used Twitter’s “web intents” system, which opens a new browser window. The new interface is integrated directly into the Watermark sidebar, and it works with both App.net and Twitter.

    Here’s what it looks like when it’s visible:

    Watermark new post
    → 5:39 PM, Nov 30
  • Watermark quick copy and more

    Watermark had some downtime early last week. While I was able to bring back the server faster and hopefully more robust than ever, I also wanted to quickly act to improve the service in visible ways. So I wrapped up a few features for Watermark over the Thanksgiving break, including two specific new features for Twitter and App.net.

    For Twitter: Copying tweets to custom collections was cumbersome before, involving lots of clicks if you are copying multiple tweets in a row. Now there’s a faster way. After you copy a tweet to a collection, Watermark remembers that recent collection for a couple minutes and offers a “quick copy” link directly next to the tweet.

    TM quick copy

    For App.net: You can now repost or star a post directly from the Watermark interface. I’ll continue to fill out Watermark with more features like this, whether you’re living in Watermark as your default client, or just searching your archive and want access to more functionality.

    ADN starred

    Search and performance should also be better across the board.

    → 5:11 PM, Nov 26
  • Tweet Library price follow-up

    Last month I tried an experiment, lowering the price of Tweet Library for the first time in 2 years. It wasn’t selling well and I wanted to do something to determine if I was just stubbornly pricing it too high or if there was a deeper issue with the quality or marketing of the app. So let’s follow up on whether this was a success or not.

    Here’s the graph of revenue for a 2-month period: one month before the price cut and one month after. There was also a new version released about a week after the price cut, but it didn’t appear to have a significant impact on sales.

    Tweet Library price cut

    Downloads were up 175%. Profit was up 40%. My gut feeling is that I should have dropped the price to $7.99 instead of $4.99, but I’m wary of changing anything again right now. We’ll see what next month looks like.

    → 5:06 PM, Nov 14
  • Stream Marker

    Watermark now supports App.net’s Stream Marker. You can click a post in Watermark to set its marker, the current marker will be retrieved when refreshing posts from the server, and the “Scroll to marker” link scrolls to the marker or loads more posts trying to find it.

    Here’s what a marked post looks like:

    Watermark screenshot

    I don’t know if any other clients support Stream Marker yet, but I expect many will in their next updates. I thought it was appropriate that I should be one of the first to support it.

    I launched Tweet Marker in June of 2011. It wasn’t exactly a new idea — Echofon had a private sync before, and developers had long been asking Twitter for an official timeline position sync API — but Tweet Marker was the first to support sync between different apps. And it was the first to bring this idea to many more users, to make it a must-have feature that customers asked for.

    In a way, I think of Stream Marker as a next-generation Tweet Marker, even though it’s not mine. The API and name are different, but it feels familiar, like an evolution from what we learned from Twitter apps. It’s a no-brainer to support it in Watermark.

    → 8:15 PM, Nov 13
  • Two more for Watermark: pictures and stars

    Following just a week after the Dropbox support in Watermark, I’ve added two new smaller features that improve the user experience. The first is that photos hosted by Twitter are now included as inline thumbnails next to a tweet, as shown here:

    Watermark inline picture

    The second improvement is a much faster Favorites view, which also now includes the new “stars” feature from App.net. Watermark doesn’t yet download all your existing stars (that will be rolled out to more users soon), but when it does encounter a star in your App.net timeline, that starred post will be included it this view right alongside Twitter favorites.

    → 7:22 PM, Sep 18
  • Journals

    Steve Corona on keeping a journal:

    “And for the past 1091 days, I’ve been journaling every single day — that’s about 3 years or 12% of my entire life. My only regret? I wish I started sooner.”

    When I was younger, I had tried off and on to keep a sketchbook or journal, but it never quite stuck. Like blogging, or writing, or drawing, or anything you aren’t paid to do, it takes setting a routine. There’s always something more important to do.

    journals Then in 1998, I started a journal again with a renewed commitment. I filled a book from that day up until I got married. Then another book through when my daughters were born. Another for the first 10 years of their life, and my son’s. The travel, the big life moments, the election, the work. It’s not everything — sometimes the entries are every day and sometimes months go by with nothing — but it’s the stuff that matters, and the snapshots in time of little everyday things too.

    I would be devastated to lose these books. Open the pages and it rolls back the years like a time machine, to a previous life full of small details that are priceless today. I’m writing the books half for my terrible fading memory, and half for my children, who will only care what these years have been like when it’s too late to ask me.

    So I’ve recently started transcribing the handwritten entries into digital form. One page at a time, into Day One, then exported as plain text. It’s a long and tedious process, but multiple copies are the only sure way to make something last.

    → 11:58 AM, Jul 27
  • Favorites in Tweet Marker Plus

    favorites sidebar I’ve written about saved filters in Tweet Marker Plus, and now I’m happy to announce the latest new feature: favorites. Tweet Marker Plus now grabs your favorites from Twitter so that they’re included in the searchable archive. The UI is better too, so you can tell at a glance what tweets have been favorited, and a new sidebar link can show just your recent favorites.

    A few days ago was the 3-month anniversary of Tweet Marker Plus’s launch. This is a significant milestone for me because all the early subscriptions were only billed once every 3 months. For most subscribers, this week is the first time recurring billing will have kicked in. (New subscribers are on monthly billing, which is a lot simpler for customers to understand and for me to predict.)

    I also rolled out some other fixes tonight, and improved performance for how background tasks run. Enjoy.

    → 10:24 PM, Jul 16
  • Hosting costs and config

    A few things have changed since I last talked about hosting. Tweet Marker passed 200,000 total users to the API. There are more apps and more platforms. And of course Plus launched with new requirements for database and search indexing of tweets.

    Here’s a graph showing monthly hosting costs for the last year, stopping just short of $600/month for April:

    Tweet Marker hosting chart

    The first dip was when I moved away from Heroku’s dedicated PostgreSQL database, to Redis on EC2. The more recent increase is when I updated capacity for Tweet Marker Plus.

    Tweet Marker currently runs on both Heroku and Amazon EC2. On Heroku, there are 6 dynos: 5 web dynos with 3 Unicorn processes each, and 1 background worker. I also run hourly scheduled tasks that add a small number of extra dyno-hours, and sometimes I’ll fire up additional temporary workers.

    For Amazon, I run with 3 medium server instances: 1 for Redis master, 1 for Redis slave, and 1 for search with MySQL and Sphinx. The search server is partitioned across multiple EBS volumes, each one mounted as a separate MySQL database and Sphinx index. It is possible for me to move a database or search index shard to a different EC2 instance if I need to, as well as move customers between shards.

    The volumes look like this in Amazon’s admin UI:

    Tweet Marker volumes

    I picked 20 GB shards because it seemed like about the point where the database would be too big to be fast, given the modest hardware. It’s enough to hold several months of tweets for all the users in a shard. I estimate how many users should be in each shard, and when it reaches that number I roll new accounts to the next shard, and so on.

    Backup dumps for the Redis database and MySQL get sent to S3 every hour and every day, where I keep the last 24 hourly backups and the last 31 daily backups. I also do occasional EBS snapshots.

    I don’t currently need a MySQL slave for backups. If I lose a drive, when I restore the last hourly backup, Tweet Marker Plus will automatically add any missing tweets lost during the downtime to bring things back to a current state.

    Overall I’m happy with this setup. It’s as simple as I could design it. Hosting is not cheap, but I think I can run for the rest of the year with very few changes and mostly fixed costs. I also plan to switch to reserved instance pricing at Amazon, which should be a significant discount.

    If you’ve made it this far, you probably care enough about servers and Twitter that you should consider signing up for Tweet Marker Plus yourself. Check out the details here.

    → 6:47 AM, May 3
  • Saved tweet filters

    When I created “Tweet Marker Plus”:tweetmarker.net/plus, I thought I was creating a new way to search Twitter. Limit the search to just people you follow and you can store more tweets, and more relevant ones. But as I’ve been adding new features to it, I’m realizing that Tweet Marker Plus is really a new kind of Twitter client — a client that has search and filters at its core.

    Here’s what the sidebar looks like in my Tweet Marker Plus account:

    saved filters

    Seems simple enough. But quickly switching between saved filters is very powerful. Because Tweet Marker is routinely fetching new tweets in the background, even when you haven’t opened your web browser in days or weeks, there are no gaps in the timeline. When I use a filter, it’s showing me everything that any of the people I follow have said since I first started using Tweet Marker Plus.

    I’m excited about this. I’ll keep adding features and growing the storage, to make Tweet Marker Plus the best value $2/month could possibly get you.

    → 8:04 PM, Apr 12
  • Carousel

    Don Draper, from the season 1 finale of Mad Men (YouTube, skip if you plan to watch the whole series):

    Don Draper

    This device isn't a spaceship; it's a time machine. It goes backwards, forwards. It takes us to a place where we ache to go again. It's not called the wheel; it's called the carousel. It lets us travel the way a child travels — around and around, and back home again, to a place where we know we were loved.

    When I first saw this a couple years ago I thought of Steve Jobs, the master pitchman in our industry. The delivery is different, more personal here, but it was stunning as part of the full episode. Who doesn’t want to build products that resonate so well, that go from nice utilities or productivity apps to something our customers fall in love with?

    First you build a product that changes things, that is truly useful. Something ambitious. Then find a way to sell it that connects, and underscore why it matters.

    I don’t really know how to do this yet. But I do know that part of it is telling stories. Why did I create Tweet Library? To tell stories, to remember events that matter before they’re lost in the fleeting stream of old tweets. It’s the kind of nostalgia at the heart of the Mad Men clip.

    I like this post from Kyle Neath of GitHub, that it’s about ideas, not products (via Duncan Davidson):

    People want to be part of ideas. Being part of a company who builds a successful product is cool... but being part of an idea is a lot more attractive. If you can build a business where both your employees and your customers think they're part of an idea, you've created something special.

    If you can extract the core idea from a great product, everything that comes next can be matched to the idea, so the product has a clear path for new features. Building a story around it — something that sticks, and having the resources to tell that story properly — takes a lot of work. I’m inspired when I see others do it well, and it’s an art I hope to make time for.

    → 2:37 PM, Jun 15
  • Moscone West

    → 6:34 PM, Jun 8
  • Flowers after the rain

    → 11:49 AM, May 31
  • The McKinney Homestead

    → 6:42 AM, May 30
  • SXSW conflict

    I’m still working on a longer post about SXSW 2011 — yes, a month late — but until that’s ready, here’s a drawing I made after the conference.

    SXSW drawing

    → 7:58 PM, Apr 10
  • → 3:13 PM, Oct 31
  • Morning work at Sodade

    → 6:33 AM, Oct 14
  • Bookshelf Touch

    Bookshelf screenshot Although I had worked a little on iOS apps before, updating an existing app for the iPad and tinkering with unfinished apps, the first 1.0 for iOS that I played a significant role in just shipped last week: a “mobile version of Bookshelf”:itunes.apple.com/us/app/vi… for VitalSource. The iPhone version has been in development off and on for a while, but I took over the project fairly late in development, with a coding frenzy through the summer as we switched file formats and scrambled to finish in time for fall students.

    Today the app broke into the App Store’s top 25 for free Education apps.

    It’s designed for existing VitalSource customers, supporting both our file formats (for XML-based reflowable content or PDF-like fixed layout), with synced highlights, figure search, and offline access. At its core the app is 3 parts: a large C++ codebase, brand new Objective-C UI code, and a bunch of clever WebKit and JavaScript work. In many ways it’s a more difficult project than my other iPad app (still in development), but some great coders contributed to different parts of the architecture, before and after I joined the project.

    Nearly 10 years ago, when I was hired at VitalSource to build the Mac version of our e-book reader, we delivered textbooks on DVD-ROMs and our technology was years ahead of everyone else. Today, and especially post-iPad, the market is a lot different, with some beautiful competition like “Inkling”:itunes.apple.com/us/app/in… Bookshelf for iPhone wasn’t first to the App Store, but it inherits an existing user base, strong platform, and large book inventory. I like VitalSource’s chances.

    → 10:38 PM, Sep 21
  • Was Macworld worth it?

    As I “wrote in January”:www.manton.org/2010/01/m… I decided to go to Macworld to show off Clipstart and Wii Transfer, and to experience the conference again and hang out with friends. I ended up doing less of the latter, because I lost my voice and was feeling terrible for a couple days, but nevertheless the trip was great and I’m very glad I went. Worth it.

    Here’s my summary of the show, what it took for me to be there and what I got out of it for “Riverfold”:www.riverfold.com/. This is supposed to be in the spirit of “Rogue Amoeba’s excellent series on Macworld”:www.rogueamoeba.com/utm/2007/… but more from a super-tiny company perspective, and just where my experience differs.

    I do want to quickly mention costs, since that’s the primary consideration when planning these things. I took advantage of the Indie Developer Spotlight shared kiosk to keep investment low. In fact, I wouldn’t have gone otherwise. I kept the whole trip to about $2700, with a rough breakdown like:

    $1250 - space on the show floor

    $900 - hotel for 4 nights

    $250 - flights to and from San Francisco

    $100 - printed “2000 flyers”:www.flickr.com/photos/ma…

    $200 - other misc costs, cabs, and food

    I could have saved some money in there on the hotel, but in general I think I did pretty well. For a lot indies it’s probably not that much different than a WWDC trip.

    flyers_ollie.png I worked 8 hours each day on my feet at Moscone North, in my little booth space in the very corner of the expo. I was lucky for two things: Guy English was awesome and covered for me a couple times so I could take a real break; and the restrooms and water fountain were so close I could slip away when traffic was slow and be back without missing much.

    The less expensive booth option was supposed to be for a table shared between 3 developers, with presumably a dozen or more small companies filling the area. But unlike the iPhone pavilion in the center of the tradeshow, which was packed with exhibitors, hardly any Mac developers took advantage of this offer. It was just me and one other company.

    This was disappointing at first, since a less dense area doesn’t convey the same excitement and means less foot traffic. But there were other aspects of the deal that turned out better than expected, such as included wired internet even though none was originally promised. Compared to a traditional booth, it was a bargain.

    Before leaving Austin for San Francisco I jotted down a few notes on how I could measure success, since I didn’t want to pin whether it was worth it just to direct sales.

    See friends and meet new people. Check, but there were a lot of people that I ran into very briefly and didn’t get to really talk to. See aforementioned lost voice.

    Get ideas from customers. Check, got plenty of great ideas. I loved talking to random Mac people, not limited to just the ones who bother to send email.

    Figure out how to sell the product. There’s nothing like explaining your application over and over again all day to refine your pitch. I feel like I have a much better handle on this, but there’s still work to do, and web sites to update.

    Actually sell some copies. I used a coupon code to track sales. During the conference my sales were flat, but in the weeks since I’ve had the best sales days of Clipstart ever.

    Get exposure in the press. Check, was interviewed by Ryan Ritchey for “The Digital Lifestyle”:thedigitallifestyle.tv/home/2010… Merlin Mann for “MacBreak Video”:www.pixelcorps.tv/macbreak3… and talked with other members of the press on the show floor. I should have done more but lacked the energy.

    Win best of show award. Nope, but wasn’t expecting it. I think it’s a shame that only one Mac application won, but on the flip side it’s great that it was “Inklet”:tenonedesign.com/inklet.ph… Really cool app.

    Everyone’s expectations coming into the event were low — the previous exhibitors who backed out, the attendees who wrote Macworld off, and the press who questioned the show’s relevance. But clearly Macworld 2010 was a success. The second day of the expo I was late to the show floor, arriving just a few minutes before they opened the hall. There was a huge mass of people waiting to get in.

    There will be a Macworld 2011. I’m really excited to see how it works to move the whole expo and conference to Moscone West. I’m not sure if I’ll be there yet, since as demonstrated this year I can’t plan nearly that far in advance. Throwing all of this together 2 weeks before the show only worked because of everyone who made things a little easier during the week.

    Thanks to Jason Snell, Merlin Mann, Adam Lisagor, and everyone else who stopped by and waited patiently through my demos; also Guy English, Paul Kafasis, David Barnard, John Fox, John Chaffee, the RogueSheep guys, my booth buddies from “Hello Chair”:hellochair.com/appsaurus… and the other indie developers I’m forgetting; and especially Albert McMurry, Dan Moren, and John Gruber for telling people about Clipstart. It succeeds only because of word of mouth.

    In closing… Maybe it’s because James Cameron is still in the news, but I’ve always loved this line from the character Rose in Titanic: “It doesn’t make any sense. That’s why I trust it.”

    That’s mostly how I felt about exhibiting at Macworld. Even though it was “cheap” by tradeshow standards, for me it was real money and a risk. I booked my flight the day I realized that the only reason not to go was because I could fail.

    → 2:02 PM, Mar 11
  • 5 by 5

    telluride.png

    I first met Dan Benjamin in 2005, at an off-site meeting for VitalSource in Telluride, Colorado. I don’t remember much of what we talked about over the course of those few days, but what I do remember, as the team was riding in the back of a jeep heading up the mountains, is that he kept talking about radio and podcasting.

    In the five years since then he’s started a couple successful podcasts, and now he’s launched something bigger: a podcast network called 5 by 5 with a strong lineup of new shows.

    "I started planning. I didn't want to do it part time or half way — I wanted to do this for real, meaning full-time. I wanted to create an Internet-based broadcast network, a place where I could create and host shows for myself and with my friends."

    I love seeing someone’s passion, only loosely related to how they earn a living, go from something in the back of their head to a full core business. Good luck, Dan. It’s off to a great start.

    → 12:29 PM, Feb 27
  • Indie Relief

    It was “just last week”:www.coreint.org/2010/01/e… that we mentioned “Today 2.0”:www.secondgearsoftware.com/today/ from Second Gear on the Core Intuition podcast, and now Justin Williams at Second Gear is making news again by organizing Mac developers to donate to charity in the wake of the Haiti earthquake.

    I’m happy to announce that Riverfold is participating. Since my wife and I already gave to the Red Cross, I decided to donate my sales to “Save the Children”:www.savethechildren.net/, an international organization working in Haiti now. It’s amazing how many Mac and iPhone developers have come together for Indie Relief, and great that we are able to do something that reaches more charities and has a bigger impact than if we were all just making individual contributions.

    So if you’ve been on the fence about whether you need Wii Transfer or Clipstart, “buy a copy today”:www.riverfold.com/. Thanks!

    → 12:52 AM, Jan 20
  • Apple promotions survey

    I was chatting with some developers the other night about giving away software to Apple employees. If you’re not familiar with the practice, it’s fairly common to give free or discounted licenses to Apple employees as a gesture of goodwill to the people responsible for making our platform, and in the hope that they will spread the word to friends and customers in the Apple Stores. (If you’re a developer and want to set this up, “check out Dan Wood’s overview”:www.karelia.com/mac_indie…)

    I’ve given away over 1000 licenses for “Wii Transfer”:www.riverfold.com/software/… and “Clipstart”:www.riverfold.com/software/… to Apple employees since I started doing it a few months ago. I didn’t expect this number to be so high, but I guess it makes sense. Apple folks are getting a link from their internal site directly to my special registration page, and many of them probably request a serial number just in case they need it later.

    The question I have isn’t whether it’s worth it; it only took a few hours to set up, and even if it just makes a handful of Apple employees happy then that’s a success. But I was curious about the greater impact of giving away my software. Is the $0 investment in a pile of other free licenses enough to engage someone to, for example, take the time to set up Clipstart and move a collection of videos into it, let alone recommend it to others? (See also: “Worthless apps”:www.manton.org/2009/12/w…)

    To find out more, I sent a special newsletter to all the @apple.com addresses in my registration database, asking if they used the software, how they liked it, and whether they’d recommend it to others or not. And I included in “the short survey”:riverfold.wufoo.com/forms/riv… a place for general feedback, and a choice about upcoming features.

    Some developers I talked with were concerned about a potential backlash. Although I send a newsletter to my customers once or twice a year, it’s debatable whether some of the people I was including had implicitly signed up by purchasing (with a 100% discount!) or whether I had crossed a line. The last thing I want to do is upset any of my customers, and I provide the same level of support to everyone whether they’ve paid full price, received a free license, or just tried the demo.

    In the end I decided it was harmless. The email was short, plain text, and had an obvious one-click unsubscribe link. One of the things I like about using “Campaign Monitor”:www.campaignmonitor.com is that once someone unsubscribes, any new mailings are automatically scrubbed against the unsubscribers list. Even if I accidentally add the customer again in the future they won’t receive an email. So far, 2.2% of recipients have unsubscribed.

    As for the survey results, here are a few graphs. Not many people filled out the survey (like unsubscribes, just a couple percent, though they’re still trickling in after 2 days), but the other feedback I received in the comments and feature questions was very helpful. 100% of users said they had mentioned the product to someone else.

    Survey charts

    Would I do this again? No, not such a narrowly-focused newsletter as this. The quick survey served its purpose, but I am always nervous about wearing out my welcome. I plan to add an explicit newsletter opt-in checkbox to my free license page, and I should do a better job of differentiating free licenses and paying customers in the future. I’ll send another general newsletter out to all customers (and opt-ins from contests) when I have something major to announce later in the year.

    → 9:17 AM, Jan 6
  • Clipstart duplicates

    Clipstart 1.0 tried to be smart about not importing videos that were already in your library, but it stopped short of actually giving you much control over whether to import duplicates or ignore them. I also felt like the window showing duplicates could be improved to provide more information about each file. At a glance you should be able to tell if Clipstart is doing the right thing.

    So I put a lot of effort into this for the soon-to-be-released Clipstart 1.2.4, and the result is this window:

    Duplicates dialog

    It generates a few frames of the timeline for each video (both old and new file side by side), which turns out to be an excellent way to confirm that they are indeed the same file, and also shows the original filename even after Clipstart (or the user) has renamed it. Now I can scan through the window in about 2 seconds and I’m done. Contrast with iPhoto which prompts after each video is imported, instead of at the end of the batch, and if you blindly trust it by checking “Apply to all duplicates” then you have no feedback on whether you made the right choice.

    The new duplicates window works with both volume-based cameras like the Flip and SD cards, as well as USB devices such as the iPhone 3GS and iPod Nano. I hope to ship version 1.2.4 soon, and there’s a “beta in the forums”:www.riverfold.com/forums/to…

    Update: As pointed out by a customer, Ignore and Keep are actually pretty confusing verbs here. I’ve changed it to “Skip Duplicates” and “Import Duplicates” for the final release.

    → 2:17 PM, Dec 22
  • LEGO minifigures

    My son is seriously into LEGO Star Wars right now. He’ll spend hours every day building ships, and it’s the most incredible thing watching how good he’s gotten at it over the last couple of months. For his birthday we ordered him the X-wing set, which is “all kinds of awesome”:www.flickr.com/photos/ma…

    One of my favorite posts to this blog was partially about LEGOs. “In 2006 I wrote”:www.manton.org/2006/01/l…

    "If the toy is made to do a few specific amazing things, with a bunch of bullet points and exclamation marks on the side of the box, be weary of it. For example, modern LEGOs come in all sorts of pre-molded shapes. If you buy the pirate set, it will be great fun for the first few days until you realize that it can only be a pirate ship. But if you buy a bucket of LEGOs (yes, they still sell these), you can build a pirate ship one day and a barn the next."

    There’s a lot more to the post, and I still believe what I wrote. But it turns out that LEGO Star Wars sets are surprisingly well designed. There are very few custom pieces, and almost all the sets (we must have about 10) share the same shapes, just with different colors and for different purposes. I’m a big fan now.

    lego_minifigures.jpg

    Tonight we sat in bed together and looked at LEGO catalogs. I’m in those awesome years where being a dad is just like being a kid again, and this post is to capture a little part of that moment, before it’s gone.

    → 9:56 PM, Sep 5
  • Wii Transfer survey

    Yesterday I sent out a newsletter to all my “Wii Transfer”:www.riverfold.com/software/… customers. You can see the “text of the newsletter here”:www.riverfold.com/newslette… I wasn’t sure how effective this would be, but I immediately got a bunch of responses to the survey, and hopefully more interest in Clipstart too.

    I decided against doing any specific tracking for number of views and links clicked, but there was an obvious spike in traffic for a couple hours as people clicked on the links in the email.

    The survey results are about what I expected. Most people are buying Wii Transfer to watch movies and listen to music on their TV. I’ll use this feedback to simplify the user interface around these features, and prune back a feature set that had grown a little too fast for its own good.

    Here’s a chart of the results so far:

    Survey chart

    I used “Campaign Monitor”:www.campaignmonitor.com for sending the newsletter, and as usual I’m very pleased with how simple they make this. I did a full customer export from my registration database and Campaign Monitor merged it with the existing list from my newsletter last year, weeding out duplicates and removing anyone who had already unsubscribed.

    → 10:01 AM, Jul 30
  • MobileMe UI

    I’m extremely impressed by this UI from MobileMe. All web-based, of course.

    MobileMe upload

    Excellent progress feedback, great attention to detail… But then they nearly ruin it with “item(s)”.

    → 1:27 PM, Jul 10
  • Tab click-through areas

    It’s often true that the further away you get from an event, like the release day for the Safari 4 beta, the closer you get to a fair analysis. Initial Twitter reaction was gut level and some not even based on anything but screen shots. “My own post”:www.manton.org/2009/02/d… was admittedly slightly half baked, but I think it stands up fine.

    Now we are seeing some more thoughtful analysis, including from “Dan Frakes of Macworld”:www.macworld.com/article/1… and “Lukas Mathis”:ignorethecode.net/blog/2009… and of course the thorough “John Gruber of Daring Fireball”:daringfireball.net/2009/03/s…

    I wanted to revisit one thing with click-through. If you eliminate the mouse rollovers and click-through for inactive tabs, you end up with surprisingly few places to accidentally click. Here are two screenshots illustrating the difference between Safari 4 and BBEdit.

    Safari 4 tab example

    It’s true that the file icon needs a hold-and-drag, so it’s harder to click, and the hide toolbar button is off to the side and less dangerous than closing a tab. Nevertheless, viewed by pixels alone there isn’t a significant difference between the safely clickable area of these two window title bars if Apple makes this small change.

    Update: If I left too much to the imagination, here are examples of the real Safari 4 clickable areas, not the way I wish it would be above.

    title_bars2_small.png

    And the extreme example with even more tabs:

    Safari 4 tab extreme

    The important point is that if you disable click-through for inactive tabs, the safe area does not change even with dozens of tabs, and in my opinion it is only marginally worse than other standard Mac applications, as shown in the first two screenshots. The current Safari 4 behavior, on the other hand, continues to degrade until the window title bar is nearly useless.

    → 8:28 AM, Mar 10
  • Work at sunrise

    I don’t have an expensive camera and I don’t know that much about photography, but you’ll just have to trust me that the sky looked amazing this morning. Especially a few minutes before this picture was taken.

    Sunrise

    We should have another 80-degree day today before it gets cold again. As much as I complain that it doesn’t snow in Austin — that wouldn’t it be great if the kids could live a real winter at least every couple of years, the kind they read about in books and newspaper comics — I have to admit that it’s pretty nice to be outside with a t-shirt in the middle of winter.

    Funny thing about mornings. I could sleep until noon every day if kids and work didn’t prevent me, but I seem to be most productive early anyway. Stepping into my home office still dreary eyed and without breakfast, catching up on tweets and email from Europeans and other night owls, then settling into source code or design or testing with some amount of quiet before the rest of the world sends another batch of distractions my way.

    Forget the realities of slipping release schedules and buggy software. Morning is that special time when everything still seems possible.

    → 8:12 AM, Jan 23
  • Leonardo tips

    Leonardo calendar Every year my New Year’s resolutions look about the same: draw more, journal more. (Blogging more is never one of my resolutions, but I’m nevertheless off to a good start this year with a goal of about one new post a day.)

    This year I knew I needed some inspiration to keep drawing more. I ordered a calendar of drawings from the in-progress short film Leonardo and pinned it to the wall above my desk. My idea was pretty simple: every day I will see this calendar, and I will mark off the days that I actually draw.

    The calendar is still blank. Guess I’ve failed, so far.

    In better news, animator Jim Capobianco is nearing completion of the film. He’s been posting some excellent tips on his blog about what he’s learned during production. I saw a rough cut of his film at the 2D Expo. Even in storyboard form you could tell it would be great. I blogged briefly about the trip to California for the expo and WWDC back in 2004.

    His day job is at Pixar, where he’s been responsible for other hand-drawn efforts such as Your Friend the Rat (on the Ratatouille DVD) and the WALL-E closing credits.

    → 10:42 AM, Jan 12
  • Tagging survey

    Last month “I asked on Twitter”:twitter.com/manton/st… for opinions on comma-delimited vs. space-delimited tagging. I didn’t get very many responses, but what I did get was pretty interesting.

    Consensus: most people like commas and everyone likes Flickr. (The second takeaway here is that the service or app is more important, since Flickr uses spaces and everyone seems to cope just fine, even that 66% who prefer commas.)

    Tag survey chart

    You can see the “full report stats on Wufoo”:riverfold.wufoo.com/reports/t…

    → 11:01 AM, Jan 10
  • Follow-up on family packs

    In October I “blogged about”:www.manton.org/2008/10/f… and then launched a “family pack” purchase option for Wii Transfer. $39 for 5 licenses vs. $19 for 1.

    The results are in, and they are unspectacular.

    2.6% of orders were family pack purchases. At an extra $20 per order, that essentially comes out to the equivalent of one extra sale for every 40.

    To all my customers who were honest enough to choose the more expensive option, thank you. I don’t think most people need the flexibility of running 5 copies of Wii Transfer simultaneously, but I’m glad that it’s helpful for a few of you out there.

    Now that I’ve written this down and crunched the numbers, it calls to mind something that “Joel Spolsky”:www.joelonsoftware.com said in an interview. All the coupons or referral fees or discount prices or other gimmicks they tried are ultimately just a diversion from the best way to increase sales: make the software better.

    I’ll leave you with this chart for 2008 sales. August was shiny-new-version month.

    Sales 2008
    → 10:04 PM, Jan 7
  • Small icons

    I mentioned on “Core Intuition”:www.coreint.org episode 11 that I’ve been having fun making small icons for my new app. Here are a few partial screenshots:

    clipstart_icons.png

    Some of these are just pixel-by-pixel drawings, with slight gradients in places. For other parts of the user interface I used vectors in Photoshop, which gives a nice anti-aliased look that is important for some types of shapes, but for really small icons and widgets it’s pretty satisfying to just poke at things “fat bits”:www.google.com/search style.

    “Gus Mueller”:gusmueller.com/blog/ pointed out that I should be using PDFs or drawing them in code to be ready for resolution independence. He’s right of course. Maybe Apple will announce a device at Macworld that will make that task seem more practical.

    → 8:02 AM, Dec 11
  • Passion and Paul Potts

    The other night I was digging around in other people’s old blog posts, catching up on things I never read but should, and I found this gem on “Seth Godin’s blog”:sethgodin.typepad.com/.

    paul_potts.jpg

    “Watch it on YouTube”:http://www.youtube.com/watch?v=1k08yxu57NA and then come back here.

    Maybe the video and show is old news to everyone else, but I was stunned. A seemingly unremarkable man, by his own admission lacking confidence, the judges and audience clearly expecting the worst, expecting humiliation.

    And then he is transformed. He nails it.

    I consider myself reasonably competent, but not great, at what I do. My weakness is that I have my hands in too many unrelated projects to ever master one thing. The areas I am most passionate about receive a cruel pittance of attention. Not so with Paul Potts.

    It’s inspiring to see someone who is just freakin' good, rising above expectation out of a bland job to surprise and overwhelm everyone around him.

    Oh, and the nice thing about discovering this video late? I can fast-forward to the finish. “Here’s the winning performance”:www.youtube.com/watch with some additional backstory.

    → 3:49 PM, Oct 4
  • Wii Transfer 2.6 and August

    As I mention on the next “Core Intuition”:www.coreint.org/, which I’m currently finishing editing and should be out tomorrow, “Wii Transfer 2.6”:www.riverfold.com/software/… was very well received. I put out a 2.6.1 tonight to address Mii problems for some customers, and with new encoding settings that improve movie streaming quality significantly.

    The following chart shows the spike in sales for August along with every month of 2008 and 2007. This isn’t revenue but total units sold for the month.

    sales_26.png

    While I don’t expect nearly this level for September, I am nevertheless interested in how far it will drop. Maybe I’ll post an updated chart at the end of the year.

    For the extra curious, the jumps in September and October of last year were when I released version 2.5 and when I did the MacZOT promotion. December was MacSanta, and somewhere in the middle of there I did the Nintendo Wii giveaway.

    → 8:59 PM, Sep 2
  • FLV metadata performance

    One of worst-kept secrets of “Wii Transfer”:www.riverfold.com/software/… is that the movie playback is not as good as what you might see on an Apple TV, Xbox 360, or PS3. I do my best to improve the quality with every release, but let’s face it: while the Wii is perfectly capable of playing fullscreen video, it stumbles when put to that task inside the Opera web browser through Flash.

    In the upcoming version 2.6, I’ve added the ability to skip directly to any part of a playing movie by clicking on the timeline with the Wii remote. It was frustrating not to be able to do that in previous versions and made it difficult to watch or fast-forward through long movies.

    The way many Flash movie players handle skipping is by inserting metadata into the FLV file that contains a map between seconds in the timeline and file positions for the keyframes, and that’s the way Wii Transfer works as well. Unfortunately this requires rewriting the entire FLV file when post-processing movies. (“Ian Baird”:blog.skorpiostech.com suggested a future optimization would be to store the metadata separately and redo the player to send seconds instead of file offsets to the server.) I was initially using the open source flvtool2.rb to achieve this, but it was extremely slow, so I rewrote it in Objective-C. (Not a port. The Objective-C version was written from scratch and is significantly shorter than the Ruby version in terms of lines of code. It does a little bit less, but it’s optimized for exactly what Wii Transfer needs.)

    This chart shows the performance improvements when processing a couple large movie files. Measured in seconds, so shorter bars are better.

    FLV chart

    The other good thing that came out of all this work is that I can now look at a FLV file in a hex editor and not be totally confused. “Hex Fiend”:ridiculousfish.com/hexfiend/ was one of the best ways to debug what my code was doing when it failed.

    → 11:57 PM, Aug 10
  • MacLife write-up and Wii Transfer beta

    MacLife Wii Transfer has a full-page mini-tutorial in the May edition of “MacLife magazine”:www.maclife.com/, as part of a section on connecting your Mac to video game consoles. I finally “picked up a copy”:twitter.com/manton/st… last night. It was certainly a nice surprise and seems to have brought a small increase in sales.

    I’ve also been wrapping up the next version of Wii Transfer, which hopefully smoothes over most of the rough spots in the current release. After sending beta copies to a few customers, I’m opening up a “new forums section”:www.riverfold.com/forums/ as an experiment in getting early builds out without a more formal public beta. (It’s not linked from the main site yet, but will be soon.) Every developer handles betas in a different way, but I like the balance Jesse at “Hog Bay Software”:www.hogbaysoftware.com has achieved between his released software page and the early builds and developer notes in the forums section, for those customers willing to dig a little bit below the surface.

    → 11:29 PM, Apr 19
  • MacSanta 2007 in time for Christmas

    Wii Transfer’s featured day for “MacSanta”:www.macsantadeals.com starts at midnight tonight, but I’ve already rolled out the coupon code. Because I’m still using simple PayPal “Buy Now” buttons, I hacked together a little custom coupon field just for MacSanta (based on a simple JavaScript trick posted to the MacSB list). I tried to come up with a clear interface even though there isn’t a traditional online store, because it just doesn’t make sense to spend time on a full store for only one product. (Plus, look at that cute MacSanta logo! Aww.)

    Here’s a screenshot “from the web site”:www.riverfold.com/software/… after you’ve redeemed a code:

    MacSanta coupon

    On Friday the discount drops to a respectable 10% off for the rest of the month. Happy holidays!

    → 5:23 PM, Dec 19
  • Wrapping up the Wii Giveaway

    Sending away second Wii After sitting on a shelf in my office for 2 months, unopened and unloved, I finally shipped off the Nintendo Wii today to the lucky winner. I was initially worried because he didn’t respond until well into the second day after I notified him, but he was pretty excited (“You’ve made my holiday”) and I’m glad it could ship out before Christmas. The picture here is in the car before I went into the UPS store to fill the box with peanuts.

    The promotion took a surprising amount of effort, but it was fun and definitely worthwhile. There were a total of 2447 unique submissions (1925 for the email form, and 522 from Twitter). Of those, over 1/3 agreed to sign up for my annual Riverfold Software newsletter. I consider that alone a success, although until I look at the stats more closely it’s not clear what percentage of potential-customers are actually using Macs. My Wii Twitter account also doubled to about 300 followers.

    Although sales were initially flat, both TUAW and Ars Technica ran nice stories on the promotion. I also wrote a press release with the idea of hitting some of the bigger gaming sites for the second week of the contest. In the end I decided not to, because I wanted to focus on Mac users, and because frankly there were plenty of submissions and I was burned out on the process.

    The contest easily paid for itself, but the extra sales really weren’t that significant. I have a database that tracks referrers through to the actual purchase, so I noticed an increase of only about 10-20 copies out of the 100 sales for the month so far. Part of that is no doubt the catch-22 of giving away hardware that is required for your software product, but I know that long-term there will be a benefit to the wider exposure.

    Mistakes? I should have made the whole promotion last just a day or two, and hyped it before launching instead. I also should have required that Twitter users follow Wii before entering, which would have boosted those followers and also greatly simplified tracking submissions (replies were spread over 3 RSS feeds and 33 iChat log transcripts). Relatively minor complaints, though, overall.

    To everyone who provided feedback on the idea, thanks. Maybe next year I’ll implement some of the more interesting promotion ideas I heard.

    → 11:41 PM, Dec 18
  • Scully, 1997 - 2007

    Scully
    → 9:01 PM, Nov 11
  • Foreign sales market

    From time to time on the “MacSB list”:tech.groups.yahoo.com/group/mac… people ask about the value of localization and what percentage of sales come from foreign customers. Since day 1 of “Wii Transfer”:www.riverfold.com I’ve always been surprised at how many sales are from Europe. At times it felt as if over half of sales were outside the United States, so I finally ran the numbers to know for sure.

    My homegrown customer database doesn’t actually include the physical address, so I grabbed the last 500 sales from PayPal and wrote a quick script to group the countries. Here’s the chart:

    Wii Transfer countries chart

    The United States represents just over half. If you add up the other English-speaking countries, it hits 70%. Still, this is a purely English-only piece of software. I’ve resisted the push to localize until I feel the codebase is better prepared for it, and the UI more stable.

    At “VitalSource”:www.vitalsource.com last year I wrote a custom Rails web app to manage localization resources for both the Mac and Windows products and deal with the outsource translators, and the takeaway from that experience was definitely to go slowly. It’s easy to end up with a foreign language version that makes compromises and is potentially less useful to customers than the English version. Depending on the size of the product, localization could take weeks or months, time that might be better spent adding features.

    Back to the real stats. Why are the foreign numbers so high? I think the weak dollar combined with an already relatively inexpensive price makes Wii Transfer even more of an impulse buy in Europe.

    → 8:28 AM, Aug 3
  • iPhone - it's from the future

    That’s the way I described the iPhone to anyone I showed it off to over the weekend. The thing is amazing. Easily the most advanced and beautiful UI that we have ever seen on a portable device.

    I waited outside the Apple Store most of Friday to get an iPhone, and it contrasted very favorable with my experience camping out for the Wii. The 6pm sale time decision was a smart one. It turns out waiting in line all day wasn’t necessary, but for anyone who had to have one on day 1 it was the safest choice, and it makes for a fun community. I ran into a bunch of people I knew and met new folks as well. Enjoyed catching up with Donna Kidwell and had a chance to chat at length with Jeremy Derr of Barton Springs Software.

    Damon YouTubed the line in the early afternoon and by 6pm the line was roughly 250 people. We were in the low 40s and were in and out of the Apple Store in 15 minutes. They ran a great launch. Also a nice assortment of free water, tea, pizza, and coffee from both Apple and surrounding businesses. Here’s a shot of me from Damon’s Flickr stream.

    iPhone line

    Here are my posts to Twitter throughout the day, which also show part of the story:

    6:34am: Good morning iPhone Day! Weather forecast in Austin for today: 40% chance of showers and storms.

    10:15am: It’s only 10am but already realized I need to go to Plan B. Bribe friends already in line to use their 2nd iPhone purchase.

    11:09am: Change of plans. Heading to the Apple Store now to join in the line-waiting fun. Will it be too late?"

    12:26pm: I expected rain, but that seems unlikely. It’s hot like a real Austin summer here in the iPhone line.

    2:32pm: Hanging out in The Line with Jeremy of Barton Springs Software and @damon. Apple Store is closed. Had some lunch and a Starbucks soy latte.

    4:03pm: 2 hours left. We can redeem our free Starbucks coffee coupons now. Excited! (About the iPhone. Not the coffee.)

    6:30pm: Got my iPhone.

    7:35pm: Activation will have to wait. Ratatouille.

    8:18pm: Movies all sold out. Pre-activation dinner at Kerby Lane instead.

    9:53pm: Activation took less than a minute. Also, no plan choice. Just $20 added on to what I already pay, I guess.

    Other reviews around the web:

    Matt Haughey: “So in conclusion, the iPhone is nice from start to finish, but Safari is really the thing that turns it from a phone into a mini-laptop. Once I get more used to two-thumb typing, the last limitations that keep it from feeling like a real computer will be gone.”

    Scott Stevenson: “I usually don’t get too into pop culture events, but this is different. The Mac is going mainstream in a big way.”

    Ryan Irelan: “I probably tried out the emergency call slider three dozen times. I wonder if anyone actually called 911 because their phone wasn’t activating quickly enough.”

    Steven Frank: “Best phone ever. And given the rest of the industry’s generally pervasive cluelessness about pretty much everything, I don’t expect it to be surpassed by anything until the iPhone 2.”

    John Gruber: “Overall day one impression: the iPhone is 95 percent amazing, 5 percent maddening. I’m just blown away by how nice it is - very thoughtful UI design and outstanding engineering.”

    → 10:58 AM, Jul 2
  • WWDC 2007 in one post

    Moof Along with most of our house, my office is packed up and ready to move this week. The photo to the right is of one of the handful of items in a box labeled “Manton’s desk,” or, if someone else had her way, “Random junk Manton saves to remember the past but which should really be in the trash can.”

    It’s unopened Moof beer from WWDC 1996, my first WWDC. At 20 I was too young to drink, but I probably would have saved it anyway. That was back when Apple gave you cool stuff and not just another cheap laptop bag.

    This year’s WWDC will probably go down as one of my favorites. The keynote was a bit dull, but it was offset by the reality that Leopard is a mature and usable system. I have been running all my primary apps off of it since last week, including Mail.app, NetNewsWire 3.0, and Xcode.

    I couldn’t place the feeling at the time, but now I realize that last week’s sessions were, in a way, relaxing. There was no sense of urgency. Most of the sessions I attended were practical, full of hands-on advice for preparing for Leopard and many applicable to Tiger development as well. I got a lot out of the week, and when I decided to skip out on Friday it didn’t feel like the world would come crashing down because of it.

    James Morrison Other highlights of WWDC 2007 were away from the sessions: walking Chinatown with Willie on Sunday in search of the illusive bakery item; hitting the SF Mac Indie party that night and hanging out with fellow developers afterwards; Buzz Andersen’s party Monday, catching up with Lane and the host; the Dan Benjamin annual breakfast; Apple Design Awards on Tuesday, which had a record number of wins for apps I’ve actually used; accidentally walking into a James Morrison concert at the Apple Store (left photo); being interviewed by Scott McNulty of TUAW, though I secretly hope they will decide not to air it; enjoying great Italian with the VitalSource team on Wednesday before catching the tail end of CocoaHeads; plus the Apple Bash and more drinks and discussion Thursday night.

    Like at SXSW earlier this year, Twitter proves both cool and useful. I was lucky enough to meet many of the people on my Twitter friends list for the first time last week.

    Of course it wasn’t all fun and games. I sifted through more legitimate Bookshelf bug reports than usual; I was exhausted pretty much every day; and there were a couple developers I had hoped to seek out that I just never made the time to.

    All in all, though, a good week and now I’m ready to get back to coding.

    → 6:50 AM, Jun 18
  • First 75 days of Wii Transfer

    In the tradition of other independent Mac developers such as “Mike Zornek”:clickablebliss.com/blog/2007… “Daniel Jalkut”:www.red-sweater.com/blog/191/… and “Gus Mueller”:www.gusmueller.com/blog/arch… I’m going to share some sales information from the first 75 days of Wii Transfer.

    The following chart shows daily sales (in units sold) for each day. I’ve also highlighted important milestones so you can see what affect they had on sales, such as shipping 2.0 (which brought many links) and increasing the price (from $9 to $14, which brought my first 2.0 day of no sales at all). Finally, there are a few spots where I show the average number of visitors.

    Sales chart

    (As an aside, I created this chart in Keynote. I love software that is simple and flexible enough to be used for purposes outside its original developer’s intentions. I wrote “more on this subject back in early 2006”:www.manton.org/2006/01/l…)

    It’s difficult to tell, but the numbers on the right side are on average a little bit higher than the left. Not by much though. Sales just trickle in again right now (a few a day).

    So what does it all mean? Here is the basic take-away: Sales are much better than I thought they would be, but not nearly enough to live off of. That’s okay, because I happen to love “my day job”:www.vitalsource.com (also writing Mac software). However, I can definitely see how it would be possible to do this full time, with some real marketing and a collection of several additional applications. I have done zero marketing for Wii Transfer except listing it on MacUpdate, VersionTracker, and Apple’s download site (where it was featured in the video section).

    As you can see, there was a big spike in sales when 2.0 was released. This is a direct result of links from Mac sites like The Unofficial Apple Weblog and Daring Fireball, and gaming sites like Jostiq and others. When traffic goes up, sales go up. This opened my eyes because it really is all about getting your app in front of other users. “As I blogged about previously”:www.manton.org/2007/01/w… I think I also missed some sales opportunities during this period because 2.0 was not very stable.

    Other interesting stats: The conversion rate is between 2% and 5%. For every 100 downloads, a few people decide to purchase it. I think many active users probably end up paying for it. Instead of a trial demo period, some features are just crippled, and it isn’t very usable day-to-day without unlocking the full feature set (for example, with music sharing to the Wii, you can only play one song at a time – no iTunes playlists or shuffle).

    There are at least a few pirates too. I’m not too worried about them because “you can’t stop pirating”:wilshipley.com/blog/2007… and most people are honest. One customer was even nice enough to tell me about a pirated serial number he found.

    To everyone who purchased Wii Transfer, thanks! When I built 1.0, I wasn’t sure if I would work on it again. Now, several versions later at 2.2, I have a clear roadmap of features (and bugs!) to keep me busy.

    → 9:40 PM, Feb 27
  • Nintendo Wii purchase

    If you’ve talked to me recently about video games or read my post about trying for a Wii pre-order, you know I have become obsessed with getting a Nintendo Wii at launch. The high scores that the new Zelda was receiving last week pretty much sealed the deal for me: I had to have one.

    Thursday and Friday if I was out doing errands and passed a store I would inquire about their launch plans. It wasn’t looking good, with mixed messages from employees about how many units they would be receiving. Saturday afternoon I stopped by Wal-mart at around 2pm and already there were 22 people in line for the midnight launch of only 29 systems for that store. They urged me to stay, but I couldn’t. I had a whole day planned already, and it didn’t include video games.

    Saturday evening I made a list of a half dozen possible stores and called each one. It was clear right away that if I wanted a Wii on the launch weekend, there was only one choice.

    Wii line at Target   Wii sunrise   Wii ticket

    I arrived at Target at about 9:30pm Saturday evening with a chair, blanket, Nintendo DS, and book. They would open ten and a half hours later at 8am the next day, but tickets would be passed at around 7am. Early line campers who had arrived at 3pm in the afternoon had a sign-in list to ensure there was no confusion. I was number 33 out of 60 confirmed Wii systems. By midnight, all the consoles were accounted for, and everyone who arrived afterwards was turned away.

    I had a great time talking with other line waiters. It was an interesting mix of people, from John next to me who worked at Apple here in Austin, to a set of young gamers who pulled up with a truck and unloaded two couches, a rug, and a coffee table.

    Around 4 in the morning I realized how unprepared I was. It was in the 40s that night and my blanket was completely insufficient. If I ever do something crazy like this again, I’m packing several blankets, a sleeping bag, and pillows. By 6am I considered the few hours of uncomfortable sleep I got a success and took a jog around the parking lot to get my blood flowing and stop from shivering.

    The sun rose and tickets were passed out. The excitement of the night before was back as a Target manager confirmed that they would indeed have a full 60 copies of Zelda, and almost as many for other games. Not everyone is going to get a Wii the first week, but from where I’m standing Nintendo has done a great job of shipping out as many systems as possible and making sure the games and controllers are there to go along with it.

    I’ll post again next week about my impressions on Wii Sports and Zelda, but so far I am not disappointed. I make no apologies for being a Nintendo fan, but the Wii is neither over-hyped nor a gimmick, and I think the system will live up to its original codename.

    Happy Thanksgiving!

    → 10:11 AM, Nov 23
  • Midterm elections matter

    I voted today. Here’s the scene for my precinct today. Not too crowded, but a steady flow of people.

    Voting

    Yesterday Traci and I called voters as part of “MoveOn.org’s Call for Change”:www.moveon.org/. I’m always nervous about calling complete strangers. I did this for the first time for Howard Dean’s campaign and it’s easy to get disillusioned with answering machines and hang-ups. But almost everyone we talked to was planning to vote today, and I think there’s definitely a sense that this election matters. Sometimes a simple reminder is the difference between voting or skipping it, so if you only reach a handful of people it can make the difference in a close race if thousands of other people are doing the same.

    I’ll be up late tonight watching the returns. Polls close early in some places and may get crowded, so don’t wait any longer if you haven’t voted yet. For location info call 1-866-MY-VOTE-1.

    → 3:06 PM, Nov 7
  • Hair High at Alamo

    Plympton sketch Bill Plympton was in town tonight for the Texas premiere of Hair High at Alamo Drafthouse downtown. I’ve been lucky enough to see each of his films in the theater, and this is definitely his best yet. It has actually been finished for a while. I posted about it back in 2002 when he started production. Before the showing I asked him about making an appearance at STAPLE! this coming March but it doesn’t look like his schedule will allow it. He’s one of about 4 animators I hoped to approach about showing their films at STAPLE!, in addition to some great local talent we’ll have speaking and showing their work.

    → 10:14 PM, Nov 5
  • Wii pre-orders

    Two weeks ago I casually showed up to EB Games 5 minutes before they opened, hoping to luck out with a “Nintendo Wii”:us.wii.com pre-order. Unfortunately the last slot was taken by someone who was there over two hours earlier, and at least a couple dozen people (including me) were turned away before the store even opened.

    I’m determined to get one of these consoles, and there’s something interesting about trying to get one at launch. Every day new reviews flow in to gaming blogs. I don’t see myself as a hardcore gamer, but the Wii looks like an innovative system with several fun games available at launch or shortly after.

    So I called Toys R Us last night to inquire about pre-orders opening up today at 10am. He said they had 10 Wii and only 3 PS3s. Furthermore, mall security wouldn’t let anyone on the property until 4am. This would seem to limit the opportunity for all-night campers, so I was pretty hopeful as I left for the store shortly after 4am this morning.

    Yes, you read that right. I have become so obsessed with this that I was willing to spend 6 hours in line. Luckily, the weather is beautiful this weekend. I packed a book, iPod, and sketchpad into my bag and left feeling pretty good, that at the least I would have some time alone to read or write or listen to music.

    Wii line from phone There were already at least 20 people there when I arrived. Several in line were hoping to reserve both Wii and PS3. One made the comment that they would be selling the PS3 on Ebay, but keep the Wii for themselves. There was even someone waiting for the new Elmo doll, which made the whole scene even more bizarre.

    Apparently some of the folks had been there well before 4am, probably closer to midnight or earlier. The details are sketchy, but the story I heard involves a bewildered security officer, two police cars, threat of jail time, and a mad dash at 4am to the front door. By the time I got there, the last Wii pre-order slots were being decided by a foot race across the parking lot. Seriously. Meanwhile, a second line at the exit door was setup in a futile effort by those too stubborn to admit defeat.

    I finished the banana I had brought for breakfast, played a little multiplayer Nintendo DS, and left before 5am with a “good luck” and a wave to those crazy enough to get there before me. I guess I’ll try again at Best Buy or Target next month. Rumor points to “as much as 120 units available”:gonintendo.com at some stores.

    → 2:17 PM, Oct 29
  • Carcasonne

    I picked up the board game “Carcasonne”:www.amazon.com/gp/produc… a few weeks ago and have been enjoying it. It’s great to see some innovation in board games again, and it’s a relaxing change of pace from video games. Target and the other big box stores are still mostly packed with remakes of classic board games, which are fine, but if you seek out the more speciality shops there’s a range of good stuff available. I bought my copy at “Dragon’s Lair”:www.dlair.net/, a local Austin comics and games shop that I’ve been frequenting for about 15 years, but I’ve seen it featured prominently at other quality toy stores.

    I originally sought out Carcasonne for play between adults, but I’ve found the game also works great for kids even younger than the 8 years recommended on the box. Just follow a few rule simplifications. First, no farmers. Next, as recommended by someone in an Amazon review, use the word “traveler” instead of thief. And finally, just score a single point for any completed castle, road, or cloister. Part of the charm of the game is in constructing the map anyway, so these simplified rules make for fast and enjoyable games for younger children.

    Gameplay photo
    → 10:29 AM, Oct 10
  • FlipBook

    Last year I started some extra work to help bring DigiCel FlipBook to the Mac. FlipBook is software for traditional, hand-drawn animators, and it is actually somewhat unique in the industry. Whereas Flash and Toon Boom are vector-based, FlipBook started life as pencil test software for paper-based workflows. It supports scanning with peg hole auto-registration, camera capture, or drawing with a Wacom tablet.

    Customers had been asking for a Mac version for a while, but the initial port from Windows to the Mac was not quite ready. It was missing QuickTime support for import, export, and video capture, and the Win32 compatibility layer was somewhat of a roadblock to a polished Mac product.

    I entered the project and ended up re-architecting the application to have a more Mac-like appearance. Instead of using the Win32 library, I wrote a lightweight MFC implementation entirely in Cocoa. MFC is Microsoft’s C++ framework, still widely used even with .NET and C# pushed for new applications. This approach allowed the application to be driven almost purely from Win32 and MFC, but it uses NIBs for all windows and controls because the compatibility framework sits at a much higher level. In several places the Windows code peeks through, but it provides enough flexibility that more and more of the application could be upgraded to a modern Mac look and feel while still sharing a common Windows codebase.

    The idea is that by working at the MFC level instead of Win32, you can get by with implementing only a very small subset of the full Microsoft frameworks. If the app only uses a few basic control types, for example, you only need to wrap those onto their Cocoa counterparts and can ignore everything else. (Otherwise you end up rewriting all of Win32 just to load and run the unmodified MFC sources.) Even with that simplification, though, the truth is that I seriously underestimated how much work this would be.

    The stack for this ends up looking something like this:

    FlipBook diagram

    It has been an interesting project, both for the technical challenges and because animation is near to my heart. I plan to use the software in my own personal film projects. Here’s a screenshot of the latest version.

    → 11:35 PM, Aug 2
  • Muybridge panoramas

    In 1997 I walked into Half Priced Books to browse and left with a copy of Eadweard Muybridge and the Photographic Panorama of San Francisco, 1850-1880 for $5. I had been familiar with Muybridge through his series of photographs of humans and animals in motion, which have been a classic reference for animators for nearly a century.

    Now, I’m coming back to his San Francisco photos as I prepare a podcast about that city. I am very excited about this one, and hope to have it finished soon after I return from WWDC. The video games podcast was a lot of fun, but it had some problems that I hope to correct this time around.

    I’ve tweaked this weblog design again, adding one of Muybridge’s panoramas to the header and experimenting with some different fonts and colors. I’ll switch the image out from time to time.

    Book cover
    → 8:14 PM, Jul 29
  • Weblog design update

    I just rolled out some design tweaks and “realignment”:alistapart.com/articles/… to this site. The original design (if you could call it that) was whipped together several years ago and hasn’t really changed much since then. It even used HTML tables, a fact I was oddly proud of. The new site uses hack-free CSS, although there is a layout bug for some content sizes.

    I also added a podcast feed link to all pages, links to my Flickr, 43 Things, and Del.icio.us accounts, and each individual post archive page also now includes excerpts from other posts in that category. You can see this in action by visiting “this post from 2 years ago”:www.manton.org/2004/07/c… I’ve been clicking through my old archives tonight, and that one stood out because WWDC is fast approaching again.

    Here are two before and after thumbnails of the same post. Not too exciting, but it’s nice to make even these small improvements. Next up are some planned design-y things for the header.

    Before After

    Enjoy!

    → 12:20 AM, Jul 29
  • Ingram

    I don’t blog much about “VitalSource”:www.vitalsource.com in this space, but I should. When I joined the company, it was to return to designing and building Mac software, with the potential for working on something meaningful (education tools) as a refreshing bonus.

    Over 5 years later, we have built up a great team and a mature set of products. Yesterday VitalSource announced it is being “acquired by Ingram Digital Ventures”:www.vitalsource.comindex/news-app/story.35, which should be a good complement to the work we are doing. Ingram is the largest book wholesaler in the country, but I don’t think that fact really hit me until three days ago.

    We were downtown with some time to kill before a performance. We stopped at the Farmers Market for some fresh peaches, flowers, and breakfast tacos. When we detoured to see if the library was open, I noticed these boxes outside and snapped a mobile phone picture.

    Ingram boxes
    → 9:23 AM, Jul 18
  • New fence

    Last month I tore down the rotting privacy fence in our backyard and built a new low spaced-picket fence. In addition to just being ugly to look at and nearly collapsed in a few places, the old fence was tall and prevented us from enjoying the space behind our house: essentially a private park owned by a local church but also accessible to the neighborhood.

    new fence It took me a week of part-time work and numerous Home Depot trips to build the new fence, which is about 60 feet across. I was able to salvage the strongest of the existing posts, cutting them off to match the new fence height. The ones that were rotten I removed and replaced by laying several new posts in concrete. I measured and cut each post so that the top of the fence line was level even though the ground slopped up slightly on one side of the yard.

    I’m very happy with the way it turned out. It opened the yard up even more than I was hoping for, and the better gate makes it easy to take a walk in the back. Another side effect I had not expected was encountering new people who routinely take their dogs for walks. Having a shorter fence is similar to parking your car in the driveway instead of your garage: you’ll see your neighbors more if you do.

    Anyway, a very rewarding experience. After so much crafting code and pushing pixels, it’s nice to build something real and see the results. The “image on Flickr”:www.flickr.com/photos/ma… is one I took a few evenings ago and shows about half the full fence length.

    → 2:13 PM, May 29
  • Red crayon

    I was wired when I got back at midnight last Thursday from the late Mission Impossible 3 show with “Damon”:www.damonclinkscales.com/. A storm had passed over while we were in the theater. Tree branches were down in the neighborhood, and rain continued.

    I sat at the dining room table with a sheet of typing paper and a fat red kids crayon and did some characters. It’s hard to draw small with something so big. These were at least twice the diameter of your standard crayon. I shrunk the result slightly and included a few below because I liked some of the line, despite the otherwise clunkiness.

    Fun with a fat red crayon
    → 8:08 PM, May 7
  • Education is broken

    I snapped this photo of a banner last week. It sums up quite nicely one of the big problems in American public education.

    Kindergarten Prep
    → 12:56 PM, Apr 17
  • Happy Easter, and TextDrive to DreamHost

    Silly bunny Easter is a time of rebirth and starting over. So today I’m flipping over two new things.

    The first, to fulfill a new year’s resolution that died before February. I rearranged my office and drawing desk yesterday to make everything more accessible, and I was doodling last night when this silly little bunny sketch came out. I have a few more drawings and pieces of animation in various states of completion that I’d like to post too, but I’m not going to let the backlog of “finishing” anything stop me from posting now on a weekly basis. Really.

    Secondly, I made a long-overdue server change this weekend. About a year ago I gave up self-hosting on an old Linux box and moved this site and email to TextDrive. I had high hopes. It was run by smart people with good ideas, and it was officially endorsed by the Ruby on Rails project.

    Unfortunately the server I was hosted on (Bidwell) was down much too frequently. I couldn’t help comparing it to the near-flawless uptime I had running my own box on a static DSL address. Lots of little problems and broken promises added to the overall frustration. And running underneath the whole mess was an undercurrent of unprofessionalism. I gave them a year to sort it out and it never got better.

    Which is too bad, because there was a lot of potential there. I still wish them good luck, and especially to the Joyent team as well.

    Today my site is live on DreamHost. I’ve had mostly good experiences using DreamHost to manage the STAPLE! web site in the last two years. Here’s hoping I won’t have to switch again anytime soon.

    (Want to try DreamHost? Use coupon code MANTON40 to get $40 off.)

    → 8:21 PM, Apr 16
  • Austin on Rails

    Rails meeting photo About 20 people met at the Frog Design building downtown a few months ago for the first Austin Ruby on Rails user group meeting, and by the third meeting that number had doubled. Founders Damon, Robert Rasmussen, and Rob Jones have done a great job getting the group off the ground and lining up interesting topics.

    Last night was our fourth meeting. Bruce Tate gave a talk on his experience ramping up a Rails team and comparisons to the Java world. As a new experiment on the agenda, afterwards some of us stuck around to hack together a member directory for the web site. I didn’t actively participate in the coding efforts, but I had a good time meeting new people. As usual, it was all followed by drinks at Hickory Street Bar & Grill, where topics of discussion ranged from refactoring to Perl to C++ windowing toolkits to AppleGuide. You know there’s some real substance to Rails when it brings together such a diverse group.

    Also just announced: the Rails Happy Hour at SXSW. Should be fun.

    Bruce Tate photo
    Bruce Tate answers questions after his presentation
    → 9:45 PM, Feb 22
  • Smart software bloat

    Everyone complains about software bloat. And it’s easy to see why — applications are bigger and slower than they’ve ever been, and users think the dozen features they will never use are to blame.

    On the Mac we are lucky to have a large number of great, small, focused tools that solve a few problems well. The best of these become successful, but what then? You have to keep adding features. How do you control the software so that it becomes even more useful without feeling too packed?

    One way is to differenciate between visible and hidden bloat. For example, Microsoft products used to have a tendency to take every major bullet point on the side of the box and make a toolbar icon for it. Even if the user only uses 5% of those features, they have easy access to far too many of them, and they needlessly have access to them all at once.

    Keynote slider Instead, adding features in context allows the application to grow without feeling too busy, and without distracting the user from the core set of features they are familiar with. The new user interface is discovered by using a new feature, and otherwise remains out of sight.

    This point was really emphasized for me while using Keynote 3 the other day. I love the contextual floating slider when editing a shape (see image). They could have put this slider in the inspector window, but it is so infrequently used it would have remained disabled most of the time, and cluttered those panes with little benefit.

    → 4:09 PM, Feb 21
  • To-do lists and embracing the network

    There is something about Ta-da List that works really well. Simple things like hitting return to save one to-do item and start a new one, tidying up of completed lists, and automatic ordering of recent lists. And above all else, speed. It is without question the fastest web app I use. Because the application is so focused, even full page reloads are faster in Ta-da than AJAX requests in some other web apps.

    These are seemingly simple things, but they add up to an app that rivals any native (Mac or Windows) to-do list software. It makes me wonder how great a native app could be if someone put the same thought into user interface and simple workflow that Ta-da has. The advantage so-called Web 2.0 apps have over native apps is that they are inherently client/server based, but a native application could embrace the network in the same way and (maybe) provide a superior user experience. I’ve yet to see any apps that do this effectively, but it will have to happen if the desktop hopes to stay relevant for anything except tasks that benefit from large local storage (e.g. Photoshop and Final Cut Pro).

    I use Ta-da List for everything now. Here’s a sample of recent lists:

    NaNoWriMoCapital 10kstaple_tada_small.gif
    → 10:15 AM, Dec 17
  • My podcast process, take one

    Ryan described his hardware setup for podcasting a while back. With at least a few dozen podcasts under his belt, he’s got his system down.

    I wanted to write a little about the process I used to create the Trains podcast. Not because I think it will be particularly helpful to newcomers, but just because I think it’s interesting. (Actually, I’m just now getting around to posting this. Months have past since I wrote it, and now Ryan spends his time writing about why none of this matters, and he’s right: tools should be accessible to non-technical beginners.)

    I started by borrowing a good mic from a friend. Eventually he will want it back, but luckily for me he’s a great musician and has a bunch of microphones that he uses regularly. It’s from audio-technica.

    I had a few choices for recording audio. I own a Griffin iMic, but decided not to record directly into the computer this time, so it went unused. Some of the recordings I planned to do would be away from a computer, so I needed something mobile.

    A great choice for this might have been a Rio, or a MiniDisc. I was a MiniDisc fan back during the first-generation of the devices, but sold it years ago. And I’m a happy iPod owner, so buying yet another MP3 player didn’t make sense. My concern is that the moment I do that, Apple will release a software update to uncripple the voice recording in the iPod.

    For the train conductor recording near the beginning of the podcast, I used a Griffin iTalk connected to an iPod. This is all the electronics I took with me on the train to Chicago. I ended up recording a lot with it, without an external mic at all, but not much of the audio was really usable.

    The opening train sounds I recorded just a short distance from my house. I biked down to the crossing with my nice microphone and recorded directly into a digital video camera, on to MiniDV tape. This turned out to work so well that I recorded all my voice this way.

    Since it was DV, I used iMovie to import clips of all the voice work. I could have exported to AIFF from there (and did try to), but because I was sampling lots of other material, I decided to be consistent and use Audio Hijack to grab the audio directly as it played from iMovie. I also used Audio Hijack to rip from a RealAudio source, iTunes music, and from DVD Player.

    Once I had all the AIFF files, I simply dragged them onto the timeline in GarageBand to create new tracks. I had planned to use Audacity, but it turns out GarageBand does everything I needed. I was raised on SoundEdit Pro, and the clunkiness of Audacity by comparison is hard to deal with. Controlling the fade in and out of audio for different clips was super easy in Garage Band.

    garageband.gif

    And then I exported to iTunes, converted to MP3, and posted to the site. Power to the people!

    → 12:11 AM, Dec 8
  • 50,136 words

    Winner As I posted about a few weeks ago, I decided to write a novel this month (National Novel Writing Month, or NaNoWriMo). I posted some of my progress on 43 Things, and I’m going to repost those entries here.

    Actually using 43 Things more fully, I am even more impressed. They have done an amazing job of allowing communities to form around goals. The site looks simple on the surface but there is depth to it. There is something about random encouragement from total strangers that works.

    Another useful resource was the NaNoWriMo forums. I never posted there but people were always quick to help others and offer advice. They also organized many local gatherings at coffee shops or bookstores, so I went one night and met a couple other Austin writers. NaNoWriMo works not just because of the intense deadline, but because of the shared goal as thousands of people are doing the same thing. That’s why 43 Things was such a good fit.

    Here are the entries.

    12,002 words (Nov 9th):

    I’m still behind, but I feel good about my progress because I started a few days late. The last chapter I just finished was one of the first to really work, which seems to be a good sign that I’ve found some kind of rhythm to get through the next few weeks. Either that or the plot is building up to something too soon and I’m about to run out of ideas. :-)

    25,043 words (Nov 20th):

    I only just now crossed the halfway point. I thought I was on my way to catching up, but there were several days last week where I didn’t write at all.

    I’m still determined to finish, but it’s going to take some serious writing over the Thanksgiving weekend.

    34,797 words (Nov 28th):

    I didn’t write enough over Thanksgiving. I left the PowerBook at home and filled up spiral notebooks instead. Even without an accurate word count I knew I had fallen short of my goal. Last night I typed it all up until my wrists burned.

    I will finish but it is going to take a lot: 5000 words a day for the next three days. Until now my top daily word count has been about 3000, and the average somewhat less than that.

    Congratulations to everyone else who passed 50,000 over the weekend!

    44,054 words (Nov 29th):

    Looks like I will finish. I made a big push last night and wrote about 6000 words. Less tonight, but I still think I am on track to finish tomorrow. The story should wrap up right at 50,000.

    50,136 words (Nov 30th):

    Yay! I finished.

    I spontaneously started this endeavor a few days into the month and I’m still a little amazed that I stuck with it. It’s a great feeling though, especially as I was nearing the end and the plot was wrapping up. Sure, the story has some problems, and it could have benefited from some research. But actually I’m quite happy with the overall flow of the story and some of the characters. There are some good scenes in there that I’m proud of.

    → 9:43 AM, Dec 1
  • Wallace and Gromit

    Art blogs screenshot What a great film. To prepare I dusted off my old Laserdisc with the three original Wallace and Gromit short films, but the feature equals and surpasses those films in every way. Thoroughly enjoyable.

    Aardman Animations fans should also seek out Creating 3d Animation, a combination behind-the-scenes and how-to book out a few years ago with great stuff on model construction and movement. In the age of computer animation it takes some passion to break the mold and work hand-drawn, but even more rare is the artist who wants to follow in Nick Park’s footsteps. It’s great to see the art-form of stop-motion come alive again to hopefully inspire a new set of filmmakers.

    Speaking of old school, just today I saw that Hans Bacher has a weblog. I’ll never forget seeing his art from the Mulan book years ago. The man is a master at composition and effortless landscapes.

    And like a lot of animators new to blogging, he uses Blogger. If you look at my NetNewsWire subscriptions (right), you’ll see an interesting trend of Blogger and LiveJournal icons. I’m not sure what that means, if anything.

    → 1:52 PM, Oct 12
  • Hurricane Rita

    Blue sky clouds They warned of 70mph winds, massive flooding, and loss of power, but in the last days before landfall Hurricane Rita shifted north and Austin didn’t receive even a drop of rain. The organizers of Austin City Limits Music Festival were so proud of themselves for waiting to cancel the weekend concert series, but the evacuees were less pleased — stuck in Austin at shelters because the hotels were booked for an ACL in limbo.

    Meanwhile, people panic and grocery store shelves are almost out of canned food and bottled water. The less than 3-hour trip from Houston becomes a long full day of gas shortages and frustrated evacuees.

    Cars are not an efficient way to transport large numbers of people, but the rail and public transportation infrastructure in this oil state is pathetic. Nightline’s Ted Koppel asked the obvious question to someone from Homeland Security, but they acted as if they didn’t even understand there was a problem. If you can’t get out of a major city with a week’s notice, how can you get out in a real emergency?

    → 3:34 PM, Oct 5
  • Respect to Dave

    Frontier box Dave Winer turned 50 today. I first met Dave over 9 years ago, back when the free release of Frontier ruled web application development and automation on the Mac. I ran the frontier-talk mailing list for a time, was active in that community, and built a bunch of great stuff on top of his work. A lot has changed since then, both on my platform of choice and in the tasks that Dave has tackled. While I haven’t kept in touch with him, I am usually quick to defend his record. If you ever find yourself upset with Dave, take a deep breath and then disagree in a way that shows some respect for what he’s been able to accomplish.

    → 8:16 PM, May 2
  • NetNewsWire unread count

    Or: How I learned to stop worrying and ignore the blogosphere guilt trip.

    nnw_dock.jpg
    → 11:11 AM, Apr 14
  • The Great Scott

    Magic diagram I’m not sure I ever wanted to “grow up” to be a magician, but I was pretty fascinated with it as a kid, and more serious about it than most. I knew the disappearing quarter tricks, had the special card decks, the fancy scarfs and foam balls. Once I went to a magic auction and won a box that could make anything the size of a baby rabbit appear or disappear. And, always, there were the trips to North Austin to a small converted shed in the backyard of a house where The Great Scott sold his magic books and items for eager kids and professional magicians alike.

    He visited my elementary school once. My mom still has the photo of him pouring milk in my ear and pumping it out of the other. Among the right circles, I’d say he was pretty well known. It doesn’t surprise me that he and his wife have a web site.

    Fred Donaldson (aka The Great Scott) passed away last week, age 79. That same week, I attended a course by Edward Tufte, who dedicates a chapter of the cloud book to magic (the included image is from it). A day after that, my kids saw another magician perform at the library, and a new generation of magicians was born.

    → 8:21 PM, Feb 2
  • Delicious coding

    Delicious Library Apparently I wasn’t the only person to purchase Delicious Library in the first week of release. They’ve had $250,000 in sales so far. For an app that no one really needs, this is pretty incredible.

    And no office space overhead. At O’Reilly’s Mac conference Wil Shipley emphasized a similar point, to cut costs down by selling directly to the customer instead of a boxed product in stores. See Niall Kennedy’s blog post for a link to the MP3.

    Wil also likes Cocoa Bindings. From an Apple interview about Cocoa Bindings, he said:

    “It makes it really easy for programmers to present data in a way that’s very clear and intuitive to the user. It makes every app look and feel like an iApp.”

    I haven’t bought into Bindings yet. I commented on Michael Tsai’s blog about it last month. The funny thing is, the little details in Delicious Library that are so impressive required some significant programming, and shaving a few dozen lines of code that handles sorting in a table view seems to pale in comparison. For example, look at the gradient in this screenshot, and how it works correctly for contiguous or non-contiguous rows. You don’t get that kind of stuff for free.

    → 8:44 PM, Jan 18
  • New year gaming

    Traci couldn’t find the GameCube games she was looking for (mostly Pikmin), so for Christmas she bought me a Game Boy Advance SP. This was a very unexpected surprise. I hadn’t really used a Game Boy since the original one I owned was stolen/lost a dozen years ago.

    To cut right to it, I returned my GameCube system to the store and am now the happy owner of a handful of GBA games, with more on the way (a new Zelda comes out next week).

    I’ve also played a fair amount of Halo (1) lately, and did a lot of game research over the holidays, trying to catch up on what the game market looks like today. It all put something in perspective for me: I like 2d games. The lure of Halo 2 and Grand Theft Auto is strong, but I won’t buy an Xbox or PS2 just to play those games.

    Advance Wars The GBA has a number of things going for it:

    • Portability. It's a lot easier to flip open the GBA and play for 10 minutes wherever I am than dedicate time to sit in front of the television.
    • Inexpensive games. I bought Advance Wars 2 (see image) for $10 at Best Buy, but $25-30 is common for most new titles.
    • RPGs. It turns out RPGs work well on a portable system, and the GBA has a few good ones.
    • Good-enough graphics. While there are first-person shooters and 3d racing games, the system is much better at pre-rendered sprites, multiple backgrounds for depth, and that sort of thing.
    • Battery. 10-15 hours or more on a charge.
    • Hacking. An active developer community, mostly hobbyists. I wrote a test “game” over the holidays.

    But, you ask, what about the Nintendo DS? Isn’t the GBA obsolete?

    I hope not. The DS is an innovative system, but it’s not a new Game Boy. It’s too expensive, too big, and too different. Nintendo wants to position the DS as a higher-end portable to go head-to-head with the Playstation Portable, but new GBA games will still be released over the next year or two. We are also seeing new GBA add-on gadgets, such as the wireless adapter and upcoming movie player. Some people speculate that a real Game Boy to replace the SP may come out in 2006.

    Joystiq has some good points about the DS and PSP:

    “The fact is, Nintendo just needed a product to head off Sony’s entry into the portable market. They knew Sony’s attack was inevitable and they planned well for it. They know that, as long as the DS competes with the PSP, the GBA can continue to be the money-maker it is. The high-end DS and PSP can disappear for all Nintendo cares. They’ll still have their little gem.”

    The Xbox and PS2 seem to dominate the press, so it surprised me that the GBA was the best-selling game system in North America in 2004, with good holiday sales despite the Nintendo DS introduction.

    Here’s what Retrogaming has to say:

    “However, now with the advent of the Nintendo DS, I’m a bit worried that nobody will continue making quality 2D games for the precious system for very long. Even Nintendo themselves have already put Advance Wars 3 out on the DS. I understand they want some good launch titles for the system to fend off the PSP, but I’m still worried.”

    The biggest risk to the GBA is that developers will focus their effort on DS-only games. But for now, I want to play some fun games again, and the GBA accomplishes that quite nicely.

    → 12:02 AM, Jan 6
  • The Incredibles DVD

    The Incredibles script Last week I received The Incredibles DVD screener in the mail through my membership in ASIFA-Hollywood, and Saturday a bound copy of the screenplay arrived. I’ll keep the screenplay on my shelf next to the rest of the Pixar books, but I ended up giving the DVD away as a present. I just thought of how excited I would be if someone gave one to me, even opened, and I’ve probably watched it enough already this week.

    Okay, I haven’t watched it enough. In fact I’ve only begun to study the film in detail. There’s some great acting in there and it helps to watch in slow-motion. As an animator, how cool would it be to hit pause in a movie theater, then rewind and flip through frames of a great scene? Having the DVD for something that just came out in the theater sort of feels like that.

    → 10:52 AM, Dec 13
  • The Incredibles

    The Incredibles I saw The Incredibles last night. I’m sure I had a big smile across my face from beginning to end. What a great film. If anything could get me to stop thinking about politics, this was it.

    There have been some interviews with Brad Bird and the other Pixar folks recently. The Luxo blog does a good job of linking to them.

    → 3:59 PM, Nov 6
  • After almost winning

    red state See that little blue county in the expanse of red in the image on the right? That’s where I live.

    Back in January, I said: “It’s about bringing more people into the process. But to do that right, we need a candidate who can speak passionately to the issues and inspire voters.” Kerry ran a good campaign, but I can’t help thinking that something was missing in both the man and the message.

    Kos is calling on Dean to replace McAuliffe as head of the DNC. It’s time for the Democratic party to get back on the offensive. The last two years have been about building the groundwork for future wins — the internet infrastructure, the radio, the organization. It’s not there yet but it will be in 2006. All that’s left is to pick quality opposition candidates and to absolutely stop letting Republican’s frame every issue on their own terms.

    One of the things that really bugs me is when Republican candidates run unopposed. This year, thanks to redistricting, our congressional district went from being all of Austin to a tiny strip of rural counties stretching from my neighborhood to Houston. The district was designed for a Republican win, and the Democratic party didn’t bother to challenge it until Lorenzo Sadun signed up as a write-in candidate.

    There was no chance to win as a write-in, but he received 12% of the vote! 11000 people took the time to spell his name correctly because they wanted to send a message. And in the Houston suburbs, Richard Morrison came within 10 points of beating Tom DeLay, the closest contest DeLay has ever faced.

    The truth is, we almost won. We almost unseated a war-time president who had 90% approval ratings after 9/11. We almost beat a party that used fear (terrorism and gay marriage) to get people into the voting booth.

    We almost won, and all the hard work of the last 18 months will pay off big in two short years.

    → 2:49 PM, Nov 5
  • Election day

    ivoted.gif The daylight savings time switch has helped me get up earlier, so I easily made it to my voting location by 7am this morning. There was already a line of people (perhaps 50) stretching outside. It was cold, from the front that came in yesterday, but it didn’t seem to bother anyone too much. No one gave up and left during the 45 minutes I was there.

    I’m optimistic.

    → 9:10 AM, Nov 2
  • Ghost in the Shell, Shark Tale, and a pumpkin

    Pumpkin Today is International Animation Day. My membership in ASIFA-Hollywood provides few perks since I live a couple states away from the Los Angeles area. They still send me announcements for LA screenings and lectures, though, as if to taunt me.

    A few weeks ago I saw Ghost in the Shell 2 and Shark Tale. I was expecting to be really impressed with Ghost in the Shell, but instead was somehow numbed by the visuals and confused by the story. I think it was a good film, but I’m not entirely sure. Certainly some of the scenes were excellent, but overall the story didn’t hold together for me. I had to work too hard to take it all in.

    I hadn’t planned on seeing Shark Tale until DVD, if then. Everything about this film looked bad, and I fully expected it to bomb. It ended up doing very well at the box office a few weeks in a row, and I found myself laughing at all the right points. I put it in the same category as Shrek; a fun film but not a great or lasting one.

    Have a happy halloween weekend.

    → 10:49 PM, Oct 28
  • Timing notes

    timing post-it I sometimes work on my animated film late at night, when the family is long asleep and I’ve worked enough in the day that I can’t stand the sight of a keyboard or mouse. Unfortunately in those times, I also can’t seem to draw anything worth saving, or muster the effort to start a new scene. Rather than stare at a stack of blank punched paper, I look at thumbnail drawings, think a little bit, and then come away with something like this image.

    It has been said many times before, that animation is all about timing. Look no further than Flash web cartoons. More than half are crudely drawn and so limited as to make the Flintstones look like full animation. But when they work, it’s because the creator had some knack for timing, and pulled some small acting miracle out of the spacing, replaying and tweaking it again and again on the Flash timeline.

    Traditional animators, by comparison, have it a little tougher. Some investment must be placed in the hand drawings before taking the stack of 50 or more sheets to pencil test under a video camera. So we scribble in the margins, plan it out, and hope for the best.

    → 11:52 PM, Aug 9
  • Backyard Fireworks

    The private park behind our house is owned by a local church, and they aren’t afraid to spend money on fireworks every year. Last week was probably the best show yet. We brought some chairs out to the sidewalk to get a good view over our trees. Our neighbors were doing hotdogs and marshmallows in their front yard and also provided sparklers. Fun times.

    I took some cheap video with my digital camera. Some frames from it are below. It was so close overhead that the paper remnants from the fireworks were falling in the street and in the yard.

     
     
     
    → 2:56 PM, Jul 13
  • California Adventure

    Yesterday I finally arrived back in Austin after 8 days in California. Last weekend started off with a trip to Los Angeles, where I met up with my old friend Justin and attended “2D Expo”, a conference sponsored by ASIFA-Hollywood for traditional animators. The conference was great, and I left feeling pretty energized. There is an opportunity right now for traditional animation to leave its Disney roots and break new ground. I met some great people and had fun talking about the industry and what comes next. Hope to be back to the LA area one of these days.

    On Sunday morning, Justin picked me up from Burbank and we drove north on highway 1, which hugs the coastline all the way to San Francisco. We stopped at a few random scenic points, a nice restaurant overlooking the water, and at Big Sur. A healthy couple mile walk through Chinatown and dinner at Fisherman’s Wharf rounded out the evening.

    Highway 1

    Monday through Friday was Apple’s World Wide Developer Conference. At work we sent 5 people, so we had pretty good coverage of all the interesting sessions. As usual the keynote was not to be missed. I’ve yet to see a Steve Jobs' demo that wasn’t effective. The first time I saw him was the Macworld Expo after he came back to Apple (but before he took over), and he even managed to make a NeXTSTEP demo look impressive. Contrary to what many people believed at the introduction to Mac OS X, Apple’s new OS is not just NeXT-based; it’s about a third NeXT, a third classic Mac OS, and a third something entirely new. That last third really shines in Tiger.

    → 10:24 PM, Jul 4
  • Kite Festival

    Kite The weather was perfect today for the Zilker Kite Festival. It’s really incredible to see hundreds of kites flying overhead as you walk around. Homemade kites, children’s kites, giant kites, colorful kites. Kites shaped like cats, boats, dragons, snakes.

    We arrived late in the afternoon, so we missed most of the contest portion of the event except for the “largest kite” category. If you ever thought flying a kite was easy, try one which requires more than one people holding the rope, with their heels dug into the ground just to keep from being lifted into the air.

    Happy flying!


    → 1:00 AM, Mar 8
  • Snow

    It snowed a week ago, and I’m just now getting the pictures off my camera. Real snow, the first I can remember here in at least 15 years. I was up Friday until 2am as the snow began to fall, so beautiful in the night. By the next afternoon most had already melted, but here’s a picture out our back yard that morning.

    Snow
    → 4:13 PM, Feb 24
  • Dean's comeback

    I have no idea what will happen in New Hampshire tomorrow. The media slammed Dean all last week, but it’s clear if you pay attention to the polls and the turnout for Dean’s events that the winds are shifting again. People are coming back to Dean. If he had another week I’d say he’d come away with the win in New Hampshire, and the momentum to have a strong showing in the next batch of states. With just one day left… who knows.

    I thought a lot about how I should deal with politics on this weblog. Many bloggers who I respect have chosen to keep their opinions to themselves. I was going to do the same, and the few political posts I’ve made to this blog over the last year I’ve kept non-partisan.

    But the last week I have been completely obsessed with the post-Iowa coverage, and I can’t see myself continuing to think and write about this election without being clear in who I support.

    Howard Dean is the real deal. The other candidates are above average, but Dean is the most honest, has great accomplishments to show as governor of Vermont, and is the strongest candidate to face Bush. When Dean speaks it really resonates with people, gives them hope for this county. Despite the loss in Iowa, his grassroots campaign is impressive, with average contributions less than $100, and hundreds of volunteers traveling from other states to help the campaign. I still believe that the way he can win in November is by exciting new voters and getting Democrats and Independents (and Republicans?) to turn out in record numbers.

    I subscribe to the other main candidates' weblogs as well. Dave Winer criticized the Dean weblog for not going far enough, but the other weblogs are much worse. They are updated infrequently and usually lack any personal touch. John Edwards doesn’t even provide summaries in his RSS feed. But the topper is this headline from Kerry’s weblog yesterday morning, where they misspell “bloggers”. Oops.

    Kerry's bloogers

    Sure, that’s a silly criticism. It was clearly just a typo, and actually the Kerry weblog has improved considerably over the last week. But it’s funny because it plays into an assumption that Dean is the only campaign that really gets the technology of this election. Which, from my experience, is true.

    Online activism will be huge this year. The power of MoveOn.org and the Dean Meetup is in providing a channel for ordinary Americans to effect an election instead of sitting at home grumbling that “there’s nothing I can do.” It’s about bringing more people into the process. But to do that right, we need a candidate who can speak passionately to the issues and inspire voters. That’s Dean.

    → 12:13 PM, Jan 26
  • Christmas lights

    House lights

    I’ve come to enjoy the yearly tradition of putting up Christmas lights: balancing on a wobbly ladder, hanging over the side of the roof, and searching for that elusive burned-out mini-bulb. This year we put our lights up in record time, before the sun set on the eve of December 1st. Ah, the holidays.

    (Not a great photo above. I was trying to capture the lights on the bird feeder.)

    → 11:54 AM, Dec 7
  • Me as an animator

    Most people who know me know that I’m a big fan of animation. There’s a great potential in animation to create stories and characters that move the audience in ways that are impossible in live-action. Many considered it the art form of the 20th century, but in the aftermath of Saturday morning cartoons and outsourcing to cheap labour in Asia, it is rare that audiences get a glimpse of what animation can do.

    In addition to being a fan, I’m also something of an animator by night, working on a short traditionally animated film. I’ve been working on it for about a year, a few hours a week, in the evenings when time permits. (Often, it hasn’t.)

    Lately I’ve found myself talking about this more frequently, so it seems the right time to expand the coverage of this weblog to include some of the things I’m working on. Mainly as a chronicle that I can come back and read later.

    Here’s a little sketch I made last night while doing thumbnails (a quick way to explore the key poses for a scene before animating). As I get further along with the film I will post some storyboards, production stills, and pencil tests.

    Wheee!
    → 5:05 PM, Oct 2
  • Fragments

    Enrico's cat

    I just received my copy of Fragments in the mail. It’s a great collection of sketches and paintings by Pixar story artists Ronnie Del Carmen and Enrico Casarosa. (Pixar, for those not paying attention, is the new Disney – where artists control the process, and good storytelling still means something.)

    There’s a shift occurring in the animation and comic world, a change that favors independent artists. Fragments is self-published. So are Michel Gagne’s popular books. The RustBoy book should be out by the end of the month, and all indications point to great sales that will help fund the film. Countless comic artists are publishing sketchbooks, or moving their comics online. The other piece of the puzzle is the technology: producing an independent short film at home has never been more possible, if you’re willing to put in the work to see it through to completion.

    Why does this matter? It enables artists to create what they want, if the audience is there. And it provides a personal touch that big companies can’t match, such as this little cat sketch from the Fragments mailing package.

    → 1:37 PM, Sep 12
  • Austin Sketch Group

    Ismael A new sketch group officially started up yesterday, led by local artist John Rubio. The first meeting was at Opal Divines. We passed around sketchbooks and discussed art, comics, animation, and how the digital world has effected independent artists. Some people brought laptops, some brought prints. Most everyone sketched.

    Looking Rick gave out copies of his comic book, Budget Strips; Justin had his Flash short films on his PowerBook; Ismael showed some framed prints inspired by doodles; and John and Jasun both had great sketchbooks. About a dozen people showed up, an incredible mix of talented artists. I’ve been trying to get in the habit of keeping a sketchbook and drawing more regularly, so it was a big inspiration.

    → 8:34 PM, Aug 18
  • What would Dumbledore do?

    I finished the fifth Harry Potter book last weekend. It was easily the best so far, and as usual a lot of fun to read.

    Snitch tattoo Here are two pictures from the bookstore party last month. I picked up my copy at midnight with hundreds of other fans. I half expected a lot of crazies to show up, but it was all normal folks. Just people of all ages exciting about reading. A few dressed up. One woman let me take a picture of her Golden Snitch tattoo.

    I guess I should go back to reading adult books now. Yawn.

    Bookstore party
    → 4:56 PM, Jul 16
  • Fireworks

    I meant to blog every day from WWDC, but the network was just too flaky, and all my free time was spent coding. I wrote up a few things and will post them over the next week.

    Starry Night I hoped to feel rested, but I was drained after the conference was over. Slept on the plane back, and a big nap the next day trying to adjust. The church that owns the land behind our house put on an incredible fireworks show Sunday night. It lasted a good 30 minutes, and rivaled any city-sponsored fireworks I’ve seen. It was even bigger than the same event two years ago. We had just moved into our new house the previous day, and we sat on the back deck with a drink, staring at the sky above our house. It was a great welcome to the neighborhood.

    → 9:47 AM, Jul 2
  • Al Hirschfeld

    genie A follow-up to yesterday’s post. Many people contribute to a film, and not all of them are given direct screen credit. Last month, legendary illustrator Al Hirschfeld passed away. His lines graced the pages of books, magazines, and newspapers including the New York Times, and proved an influence to many future artists. Disney’s Eric Goldberg brought Hirschfeld-esque lines to Aladdin’s Genie and the “Rhapsody in Blue” sequence of Fantasia 2000.

    Amid Amidi of Animation Blast writes:

    "In honor of Al Hirschfeld's passing last week, here's a reprint of the full-page ad that Disney took out in VARIETY. The ad features a drawing of the Genie from ALADDIN. Lead animator Eric Goldberg had used Hirschfeld's flowing calligraphic line style as inspiration for the character's design."

    Thank you Disney. Despite massive layoffs, horrible cheapquels, and a general disregard for their past culture, it’s nice to know that someone there still gets it.

    → 2:08 PM, Feb 19
  • Snow in Austin

    It snowed when I was about 5 years old and when I was maybe 10, so I assumed it would snow every 5 years. When you’re young, it’s easy to jump to conclusions and see patterns that don’t exist. Of course it hasn’t snowed since then.

    But after a few days of teasing weather reports forecasting snow and ice, I woke up at 4am and stepped out on the back deck to see snow covering the ground. I raised my hands and could feel it falling, lightly. For someone who has lived in central Texas their whole life, this is a big deal.

    It all melted within a few hours, but not before I made a miniature snowman with my kids.

    → 2:31 PM, Feb 8
  • Understanding Comics

    For Christmas I received a copy of Scott McCloud’s Understanding Comics. I was familiar with his work only from his web comics (the I Can’t Stop Thinking series is particularly good), but never read his books. Turns out, it’s excellent. Probably best enjoyed if you’ve read comics, but I think there’s some good stuff in there for everyone.

    6 Steps as an appleMcCloud’s “6 steps” (Idea/Purpose, Form, Idiom, Structure, Craft, and Surface) can be applied to many pursuits outside comics. To master the artform you need to progress through each of those steps, but often a comics fan decides he wants to “be a comic book artist.” He starts copying the surface qualities of the work (“look, I can draw Superman”), but rarely does he delve into it enough to go back to the other foundation steps: having a unique idea or purpose for the work, and understanding the form and structure of the medium enough to produce something great.

    Building software is not all that unlike creating a traditional work of art. (Odd that I’m including comics in “traditional” art, but there you go.) Crafting the user interface, thinking through the design, layering one piece on top of another. And above all, keeping in mind the problem being solved. It can be creative work, if you approach it that way.

    Maybe that is one of the reasons why Cocoa is so successful. By putting the emphasis on up-front user interface design while simplifying some of the coding with a mature object-oriented framework, it opens up application design and implementation to more people. In a sense, allowing people to jump directly to Scott McCloud’s step number 6 (“Surface”, in this case Aqua goodness), and then work their way backwards as they mature as software developers – if they choose to.

    What a difference two years made to Brent Simmons:

    Oct 2000: "So much of my work is UI work. The command line is a vacation."
    Oct 2002: "I love UI programming."

    Joel likes Tintin comics.

    → 8:16 PM, Jan 30
  • Parenthesis s

    It wasn’t long after I started programming that I developed a pet peeve with other programmers who don’t feel the user is worth the time to put an extra “if” statement into their code. Here’s an example: “There were 5 result(s) for your search.” Obviously it’s a trivial matter to check if there was indeed just 1 result or some other number of results, and leave the “s” off or not. The “(s)” annoys the hell out of me, and I think it is distracting for most users as well.

    Tonight I saw something that tops even that. The web folks over at Tripod Blogs display this bit of brilliance under a blog entry:

    no comments

    In other words, they took the time to put “no” instead of “0”, but left the “(s)” anyway.

    → 12:34 AM, Jan 30
  • Final Safari UI comments

    Safari puts the classic SSL “lock” icon in the window title bar. Here’s a screenshot:

    Safari lock icon

    Turns out this is easy to do in Jaguar with Carbon’s HIView system. Since the entire structure of the window (not just the content area) is a view, you can position items anywhere, including the title bar. Apple has published some example code showing how.

    Another nice UI feature in Safari is the enhanced drag preview when dragging links:

    Safari drag preview

    Matthew Thomas continues to update his thoughts on Safari’s interface and what the new browser means for Mozilla.

    John Gruber provides some even longer thoughts on Safari:

    "That's not to say that there isn't some utility in breaking the traditional one-window-per-web-page metaphor, but I don't think tabs are the optimal solution. My guess is that Safari's engineers have something much better in mind, and simply didn't have time to implement it yet."

    Okay, I’m done with the Safari-related blogging. Tomorrow: something different.

    → 8:56 AM, Jan 15
  • Apple&#039;s UI playground

    Steven Johnson for Slate, “Is the Computer Desktop an Antique?"

    "Now that Microsoft has largely caught up to the Mac in terms of basic file manipulation tools -- thanks to Windows XP's elegant user interface -- the iApps have become a key differentiator for Apple. They are also an implicit acknowledgement that the desktop metaphor has its limits. Apple is moving toward a Swiss-army-knife approach to user interfaces: You need different tools to keep track of different kinds of files."

    While Apple has moved to many small, focused apps to get the job done, they have also attempted to build a new suite of interface components so that each app is easy to use right out of the box.

    One such nifty widget they have invented is the rounded search box. Most of the iApps use it, and so does the Finder. It’s got a little “x” that clears the search text, and rounded edges so the search box is easy to find. (“Which of these text fields do I type to search? Oh yeah – the round one.")

    Splasm Software’s Checkbook is the first app I’ve seen to copy Apple’s search box. Unfortunately they didn’t get it quite right. (Psst: The “x” is supposed to be inside the box.)

    Checkbook search box
    → 9:16 AM, Dec 19
  • There and back again

    footprint

    Out all last week, vacationing around the Gulf coast. It was good to unplug for a week and forget about the email, the blogs, and the constant hum of a noisy FireWire drive. I think we went three whole days without hearing the word “sniper”.

    → 12:14 PM, Oct 28
  • After ignoring Mozilla for

    gesture After ignoring Mozilla for 6 months, I took the latest version out for a spin a few nights ago to try Pie Menus. Although Mouse Gestures worked okay for me, I couldn’t get Pie Menus to work (maybe it doesn’t work on the Mac?). I can’t decide whether I like Mouse Gestures yet. Back and forward can be useful, but the gesture displayed on the left (go to home page) is just silly.

    → 8:55 AM, Aug 28
  • Hey Apple, can we use

    Hey Apple, can we use those fancy colored checkboxes from iCal in our apps, too?

    iCal
    → 9:57 PM, Jul 22
  • Anyone care to guess what

    Anyone care to guess what the difference between the OK and Cancel buttons is?

    Confusing memory warning dialog
    → 10:39 AM, Mar 28
  • Every so often a web

    Every so often a web site will add something small that makes all the difference. Today the example of this for me was the Sample Code section of the Apple Developer site. A new popup menu allows quick viewing of source files before downloading the full archive. This change took minimal effort for Apple to implement, but it will save developers from having to download lots of small archives (cluttering up their desktop) just to find the piece of sample code they were looking for.

    Apple sample code screen shot
    → 5:38 PM, Mar 22
  • RSS
  • JSON Feed
  • Surprise me!
  • Tweets