Manton Reece
About Photos Archive 30 days 88 parks Replies Reading Search Also on Micro.blog
  • Self-driving safety with lasers

    Seeing this link today on Daring Fireball about self-driving reminded me of something I’ve wanted to blog about. Tesla is supposedly set to start their robotaxi service in Austin this weekend. I’m slightly worried about it.

    Now that I’ve been in a Waymo — and experienced how smooth a ride it was, as safe or more safe than most Uber or Lyft drivers — it seems like asking for trouble to use anything short of the same technology, with lots of cameras and LiDAR.

    Elon Musk said recently, when trying to justify how Tesla only uses cameras and AI:

    People don’t shoot lasers out of their eyes to drive.

    Funny, except that humans are often terrible drivers. People rarely even check their blind spots when changing lanes, let alone have a 360-degree field of view. We are not exactly the gold standard in driving safety.

    It’s sad that we’ve just accepted that tens of thousands of people die from car wrecks every year in the United States. We should be doing more to minimize injuries and deaths on the road. Waymo seems like a step in the right direction, and Tesla’s approach seems like a step back.

    → 2:35 PM, Jun 17
    Also on Bluesky
  • Micro.blog 3.5.1 for iOS and Tahoe beta

    Today we shipped an update to Micro.blog for iOS that has lots of little bug fixes. You can grab it in the App Store. Here are the changes:

    • Added publish status to post options screen for publishing drafts.
    • Added poster frame URL when copying HTML for videos.
    • Improved accessibility with more button labels.
    • Fixed profile menu position on iPad and improved height.
    • Fixed disappearing drafts button while loading.
    • Fixed uploads thumbnail images sometimes not loading.
    • Fixed publishing progress status to not appear when saving drafts.
    • Fixed link button on iOS to always check clipboard for website URL to include.
    • Fixed copying Hugo shortcodes for photo collections.
    • Fixed some buttons to be easier to tap.

    A new version for Android will follow soon.

    I’m also updating the Mac app with a few improvements for macOS 26 Tahoe. If you want to try the beta, you can download it directly for your Mac.

    → 10:20 AM, Jun 16
    Also on Bluesky
  • Enough with AI

    I’m going to take a break from AI-related blogging for a few months. I think the pause will do me and my readers some good. It’s too divisive an issue, and I expect in the coming years there will be a small but vocal faction that pushes back against AI more than there has been pushback against any other technology in the last 100 years.

    As much as I am optimistic, it’s going to be a little painful for society, as everyone wrestles with the ramifications of intelligent agents and machines. (Hopefully mostly in software form. I remain adamant that humanoid robots are a bad idea.)

    You can roll your eyes at this post. While I have a good track record of predicting the fallout from other major tech shifts, like mobile app distribution (2011) and centralized social networks (2012), there are too many forces at play here to be certain of what AI will look like in a decade. I only know that it will change many things. I can barely guess at the details.

    I’ll close with a word of caution for the skeptics. In your arguments against AI, avoid exaggeration and extremes to fit your narrative. There has been significant misinformation on that side, from proclamations about copyright and fair use — issues that are not at all settled — to inflated or outdated numbers on energy and water use. In a blog post this week, Sam Altman shared the first numbers I’ve seen from a major AI cloud provider:

    People are often curious about how much energy a ChatGPT query uses; the average query uses about 0.34 watt-hours, about what an oven would use in a little over one second, or a high-efficiency lightbulb would use in a couple of minutes. It also uses about 0.000085 gallons of water; roughly one fifteenth of a teaspoon.

    Of course, it’s more complicated than that. There is training and there is Jevons paradox. But that’s the point, these discussions should have nuance. If they don’t, they are probably off the mark.

    Thanks to everyone who has written thoughtful posts on this subject in reply to my own posts. I remain focused on what humans can do — writing, photography, and art in Micro.blog. Nilay Patel, with John Gruber and Joanna Stern for The Talk Show Live this week, talked about how the rise of agents will upend the business model of the web. But people have counted out the open web before. It’s still here and strong.

    AI will help me code, it’ll help review my writing, it’ll help me brainstorm, but it’ll never write posts for my blog. I’m typing this draft on my phone, on a plane back to Austin, offline without wi-fi. Even as it feels like AI is taking over too many things, there will always be quiet spaces where humans can just think and be creative, and that will always matter.

    → 1:11 PM, Jun 12
    Also on Bluesky
  • To the Sam Altman skeptics

    It’s the day before the WWDC keynote, an event that used to be anchored by Steve Jobs. He’s been gone 14 years and there has yet to be another executive at Apple who could do what he did. Every once in a while we see a glimpse of a leader in tech who stands out, capturing a tiny bit of the vision that Steve had. Some of them, like Elon Musk, will ultimately disappoint us.

    I wrote this post a week ago, edited it a bunch, and still wasn’t sure it was right. I was concerned because I tend to receive extra pushback on my AI-related blog posts. Many people who read my blog or use Micro.blog have a natural distrust of big tech companies. They don’t like Meta, Google, and now OpenAI. They see the downsides of AI the same way they see the downsides of massive social media platforms.

    My view is a little different. AI could have a democratizing effect, making the world’s knowledge available to more people, as a complement to the web rather than a threat to it. Truthfully, we just don’t know yet.

    While I was sitting on the draft, I started reading the book The Optimist by Keach Hagey, about Sam Altman and OpenAI, to see if there was anything in it that would change my mind. It actually reinforced some of what I had been thinking about.

    We all change the world in small ways. Some people change the world in bigger ways. Sam Altman is one of those people who makes big things happen.


    Jason Snell is skeptical about whatever Sam Altman and Jony Ive are dreaming up. His blog post captures a sentiment I’ve seen from more than a few people:

    I’m skeptical about OpenAI in general, because while I think AI is so powerful that aspects of it will legitimately change the world, I also think it has been overhyped more than just about anything I’ve seen in my three decades of writing about technology. Sam Altman strikes me as being a drinker of his own Kool-Aid, but it’s also his job to make everyone in the world think that AI is inevitable and amazing and that his company is the unassailable leader while it’s bleeding cash.

    I’ve listened to dozens of interviews with Sam over the last couple of years. I’ve read many of his blog posts and tweets. I don’t know him, I can’t vouch for his character, but I’ve developed some opinions about him:

    • Sam is ambitious. The pace of new products at OpenAI, the scope of the data center in Texas, his UBI experiment, and the bizarre Worldcoin side hustle are all a bit insane.
    • Sam was ousted by his company’s board and then orchestrated a return within days. No small thing. Steve Jobs was also ousted, taking over a decade to get back to Apple.
    • Sam has a unique way of explaining things that I find compelling, although he doesn’t have Steve’s stage presence. No one does.
    • Sam had a falling out with most of his co-founders and OpenAI leadership, from Elon Musk to Ilya Sutskever, and to some extent Dario Amodei and Mira Murati. He has rebuilt the leadership team and business structure, reestablishing control.
    • Sam is not constrained by what everyone else thinks. This is a requirement for creating something truly new. It also means he sometimes comes off as distant or elitist.

    The politics can’t be avoided either, because increasingly everything is political and therefore polarizing. I don’t like seeing Sam share the stage with Trump when announcing Stargate. I don’t like Tim Cook donating money to Trump either. I don’t like how quickly the most powerful people in Silicon Valley brushed aside Trump’s criminal record and rhetoric. It now feels like a lifetime ago when Sam blogged about endorsing Hillary Clinton.

    But Jony Ive trusts Sam. They’ve hung out and talked about the future. They’ve shared prototypes with each other. Sam has met Jony’s family. And yet somehow the rest of us on the internet are a better judge of who is trustworthy?

    I was a little late to generative AI. When Daniel Jalkut and I would talk about early AI models on Core Intuition, my take was essentially: I’m going to be more productive by ignoring all of this and just writing my own code while everyone is distracted with AI. I’ve come full circle since then. I now believe that AI is the most significant advance since the web.

    Look at the chain of thought on models like o3, as they search the web, use tools, and reason about a problem. It is remarkable. AI is not overhyped.

    For whatever reason, Sam got a bad rap as soon as he rose in prominence. Some people don’t trust him. Perhaps the OpenAI board poisoned his reputation. Perhaps he really is “not consistently candid”. Perhaps he was the face of AI when there was widespread concern about the technology. We love a villain to center attention on.

    I’ve tried to call it like I see it based on my belief that most people are good, trying their best to navigate the world, making mistakes and learning. When OpenAI was accused of ripping off Scarlett Johansson’s voice, I blogged:

    When your company becomes the enemy, all that matters to people is what feels true. OpenAI’s Sky voice shipped months ago, not last week. We hear what we want to hear. OpenAI mishandled this, no question, but most likely Her is ingrained in Sam’s head vs. intentionally ripping off Scarlett.

    People were upset with me for posting this. Now that we’ve had some distance and new information, it seems that I was mostly right. If anything, I didn’t give Sam enough of the benefit of doubt.

    I agree with Jason and others that it’ll take a while to see how this plays out with OpenAI and Jony Ive. I was very critical of another high-profile Jony Ive project, the $10k Apple Watch Edition. On Core Intuition 379 in 2019, I said:

    This isn’t the watch for the rest of us. The computer for the rest of us. And I actually wrote a blog post back in 2015 — when the Apple Watch came out — about the Edition. I never posted it and I really regret not posting it. I haven’t re-read it recently. I just pulled up the draft. But I have a feeling when I re-read it, it’ll be like, “Oh yeah, this was exactly right.” I wish I had posted it then as kind of a stake in the ground.

    The blog post title was: “Apple Watch Edition is wrong for Apple”. And it just went through these points. Out of touch, for the super rich, $10k. This is not what Apple is about. Apple is about making computers and computer-like devices easier and more accessible to the mainstream, through great design, through innovation and great products, not about the super rich.

    Sam is, of course, among the super rich. And while too much money can have a corrupting influence, for Sam it has been distracting too, funding so many ridiculously ambitious projects that I expect he’s spread too thin.

    I do think there is a certain aspect to Jony’s late career where he hasn’t been as rooted in what normal users need. Jony is hyper-focused on the little details, sometimes to the detriment of the complete product. Sam is all about the big picture. I would not bet against their partnership.

    Finally, there is replacing the smartphone. After the interview with Jony at Stripe’s conference, and in the context of the io announcement, there was an understanding that Jony was almost distancing himself from the iPhone, because we’re all addicted to the screens in our pockets. But if you listen to what Jony said, it was largely about social media, not the device:

    The thing I find encouraging about AI is it’s very rare for there to be a discussion about AI and there not to be the appropriate concerns about safety.

    What I was far more worried about was for years and years and years there would be discussions about social media — and I was extremely concerned about social media — and there was no discussion whatsoever. And it’s the insidious challenge of a problem that’s not even talked about that is always more concerning.

    So yeah, the rate of change is dangerous. I think even if you’re innocent in your intention, if you’re involved in something that has poor consequences you need to own it. That ownership personally has driven a lot of what I’ve been working on, that I can’t talk about at the moment, but look forward to talking about at some point in the future.

    The phone isn’t necessarily the problem. It’s the apps. Ad-based businesses that feed on attention. In the past, Sam has blogged similar thoughts:

    I believe attention hacking is going to be the sugar epidemic of this generation. I can feel the changes in my own life — I can still wistfully remember when I had an attention span. My friends’ young children don’t even know that’s something they should miss. I am angry and unhappy more often, but I channel it into productive change less often, instead chasing the dual dopamine hits of likes and outrage.

    This phrase “dual dopamine hits of likes and outrage” is something I wish I had written. The person who wrote that must be at least partly aligned with my own perspective on social media. They get something fundamental about human interactions, about social media, and about how the design of devices and apps can shape our behavior.

    We should be building apps that return time to users and bring out the best in human creativity. If a new type of device helps us have more time away from the worst addictive apps, letting us learn or create in new ways, it could be a great thing. I guess I want to be an optimist too. Let’s see what Jony and Sam can do.

    → 7:40 PM, Jun 8
    Also on Bluesky
  • Not today, but eventually

    After I drafted this blog post, the part that follows the horizontal rule in a moment, I wasn’t sure I would publish it. Then I read this post by Thomas Ptacek. This line resonated with me:

    Extraordinarily talented people are doing work that LLMs already do better, out of spite.

    For students, I think it’s great to not use AI too heavily. My son has been working on a project that he completely avoided using AI for. He learned so much about C and memory management that he wouldn’t have learned if he blindly copied half the code from an LLM. It was invaluable to go through those mistakes of referencing a pointer the wrong way, or troubleshooting a buffer overrun, or a number of other problems that you skip if you let a machine write code for you.

    But eventually, if he gets a job as a software developer, it will be hard to ignore AI. The only programmers not using AI will be folks who are coding in their spare time for the craft alone, not building products.


    The more I think deeply about AI, the more I reflect on humanity and creativity and what our purpose here might be.

    I understand feeling distrust for AI on principle. I’ve read so many blog posts from people who have various reasons for wishing AI didn’t work the way it does, didn’t use as much energy, didn’t crawl the web without permission, didn’t put people out of work, didn’t upend education, and so on.

    For me, now that I’ve seen AI, I can’t un-see it. I can’t go about my life as if nothing has changed. In a world where machines are smarter than we are, what should we work on? Everyone will find value and happiness in different ways.

    As a small example, thinking about this is what led me to add audio narration to Micro.blog. So instead of a web filled with auto-generated AI voices, it’s easier to listen to a human voice for our blog posts. Our voices are imperfect, unique, and beautiful. I’d love to find more places in Micro.blog where we can promote human creativity. (This blog post has an audio version. If you’re reading on the web, click on the play button at the top.)

    My gut feeling is that for the folks who do not change anything in response to AI, pretending that AI doesn’t exist, they will increasingly be unhappy. Not today, but eventually. Despite all the hype, the changes will creep up on us slowly over several years.

    Maybe this hits closer to home for me because I’m a programmer. I have 30 years of experience writing code, but AI can write code better than I can. A big part of what I used to do has been obsoleted, and that hurts to think about. But another part of what I used to do — designing the right features to build — is still important.

    Artists are struggling with the same questions. If any artistic style can be recreated effortlessly by AI, what is the new role of artists? I explored this in more detail a few months ago. Here’s a snippet:

    And there will always be a place for human art. Vincent van Gogh’s paintings are not valuable because of what they look like. They are unique and priceless because of who he was. A life, with all its struggle, love, and tragedy.

    I guess I’m writing this for all the doubters. Please don’t ignore what is happening, hoping AI will just go away. No matter what you care about, no matter what your job is, there is something you can do that matters. We need you. AI discussion has become needlessly divisive. The future will be better if everyone is working together.

    → 9:44 AM, Jun 4
  • Ghost compatibility notes

    ActivityPub in Ghost has been in beta for a while, with plans to officially ship to everyone in the summer. I started my own test ghost.io blog to troubleshoot compatibility problems. Until now, Micro.blog and Ghost hadn’t played well together on the fediverse.

    Here are some things I found that might be helpful to other ActivityPub implementers:

    • Ghost uses Article for blog posts, and Note for short microblog posts and replies. Because everything in Mastodon is a note, I never had anything special for articles before. I’ve now added support for the name field for blog post titles.
    • Ghost uses the value as:Public for the to field when creating posts. Mastodon uses the full URL https://www.w3.org/ns/activitystreams#Public. I adjusted Micro.blog to accept both.
    • Ghost microblog posts (Note) do not have a permalink on the web. The url field is not set like it is for article posts. These objects only have an id, which is a URL to a JSON file. This means in Micro.blog’s timeline, if you click the timestamp you get JSON instead of a web page. Not a good user experience.
    • Ghost sends to and cc as strings. Micro.blog and Mastodon send those fields as arrays. This doesn’t seem to matter, though.
    • Ghost appears to ignore the content field when receiving a new note. Instead, it fetches the post again over HTTP and then parses that response. To make this work with Micro.blog, I had to change hosted sites to allow HTTP content negotiation on blog post URLs, something I’ve been wanting to support for a while anyway.

    All of these changes have made Micro.blog more robust. It also underscores the need for ActivityPub test suites and examples, for developers like me who learn best from looking at real-world JSON.

    → 11:10 AM, Jun 2
    Also on Bluesky
  • More Dia doubt

    Manu Moreale has some thoughts and skepticism about how AI and web browsers are going to mix:

    We all yelled and screamed because the web has too many gatekeepers, we all lamented Google search results going to shit, and we all celebrated when new search engines were coming up. Why would I be happy trading a search result page filled with links—even if ranked in a flawed way—for a block of text that gives me an opinionated answer and maybe some links?

    I was listening to the latest Decoder podcast with Sundar Pichai and these same questions came up. Is the future of the web really just agents talking to each other? That can be part of it, but not it. I think we’ll need a web browser that can seamlessly transition from answering questions to interacting with web pages on their own terms.

    As for The Browser Company, if they were bootstrapped or had minimal funding, they could charge a subscription for Arc or Dia. I’d probably pay for it. But Manu’s right that reaching the scale they want is very difficult.

    → 8:49 AM, May 29
    Also on Bluesky
  • UBI

    In an interview with Axios today, Dario Amodei warns about the jobs that will be lost because of AI:

    Amodei said AI companies and government need to stop “sugar-coating” what’s coming: the possible mass elimination of jobs across technology, finance, law, consulting and other white-collar professions, especially entry-level gigs.

    Dario suggests a “token tax” on AI companies, including of course his own Anthropic, with the money getting redistributed somehow to offset job losses. Unfortunately the Trump administration is completely out to lunch on this. The tax cuts (and Medicaid restrictions) currently planned would go in the opposite direction.

    I’ve been thinking lately about how Andrew Yang’s pitch for Universal Basic Income was a little too early. We’re going to need candidates in 2026 and 2028 who can speak about this.

    While doing research for another blog post, I also found this older post from Sam Altman:

    The default case for automation is to concentrate wealth (and therefore power) in a tiny number of hands. America has repeatedly found ways to challenge this sort of concentration, and we need to do so again.

    Sam supported a study on UBI from 2020 to 2023. There are some findings here, although it was during COVID so employment was all out of whack anyway.

    → 9:15 PM, May 28
    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.

    → 3:33 PM, May 27
    Also on Bluesky
  • Crazy week for AI

    I used to pride myself on being able to keep up with almost everything. New programming languages, frameworks, APIs, just tech in general. Micro.blog is a unique platform in part because it weaves together so many different things. But the pace of AI is too much. I can barely keep up.

    • Monday: Microsoft Build keynote, MCP announcements, NLWeb
    • Tuesday: Google I/O, total overload of new things
    • Wednesday: OpenAI acquires io, MCP and new tools in API
    • Thursday: Claude Opus 4
    • Friday: ☕️

    John Gruber:

    It’s almost as though this is a fast-moving field.

    I was also really impressed this week with Federico Viticci’s deep blog post about Claude. The prompts he has created are mind-boggling:

    This is a complex, agentic workflow that requires multiple tool calls (query a Notion database, find notes, extract text from notes, create tasks, search the web, update those tasks) and needs to run for a long period of time. It’s the kind of workflow that – just like the email one above – I usually kick off in the morning and leave running while I’m getting ready for the day.

    If you had asked me a year ago, I would’ve said Federico was an AI skeptic. But it makes perfect sense to build tools with AI after all the work he has done on automation. It’s consistent with everything he’s been doing for years.

    And importantly, Federico calls out not using AI for creative writing. I think this is a choice that many people will make. Don’t avoid AI completely, but also reserve some creative tasks that benefit from a human touch.

    → 8:36 AM, May 23
    Also on Bluesky
  • Early week AI thoughts

    As Microsoft Build is set to start today, there’s a good profile of Microsoft and Satya Nadella in Bloomberg:

    In 2022, OpenAI held demonstrations for senior Microsoft executives of a groundbreaking new model. Over the next several months, groups inside Microsoft tinkered with other ways they might adapt OpenAI’s technology to the daily needs of the modern office worker. One promising prototype called “intelligent recap” would summarize conference calls in Teams. Before Microsoft could release any of it, though, OpenAI built a deceptively simple chat interface around its language engine, and people went nuts.

    Until recently, we thought the race was purely to build better AI models. That’s still true, but the real strength is in products. OpenAI doesn’t just have GPT-4.1 and friends, they have a great Mac app, they have Codex, they have memory, they have Sora. When I first tried Sora, what struck me most was not the capabilities but all the work that went into the UI framework.

    Microsoft has Copilot, a great name that can wrap together many different models and features. Anthropic has Artifacts, an elegant interface for iterating on code. Apple has a cobbled-together set of unrelated AI features, but at WWDC we’ll see the next phase of their vision.

    This morning I was listening to this interview with Ben Stratechery. He talks about how the internet was the bridge from PCs that allowed mobile phones to take off. Likewise, AI will be the bridge to new devices, such as Meta’s glasses and whatever Jony Ive is working on.

    I think there are only going to be a handful of companies that stay on the cutting edge of models. OpenAI, Anthropic, Google, and a second tier from xAI, Meta, maybe a couple of others. But there will be lots of competition around products.

    There will be three broad categories and within each one, companies will try to build products that people will work into their lives:

    • productivity — writing, presentations, research, coding
    • enterprise — meetings, customer support, legal, automation
    • life assistant — world knowledge, therapist, language, health

    Right now, OpenAI has the lead in productivity. Microsoft in the enterprise. No one that I’ve seen has cracked the life assistant type of product. Apple could excel at this because of trust in privacy, but I’m not sure they can think with a big enough scope to nail it.

    → 9:31 AM, May 19
    Also on Bluesky
  • Discovery of this random app

    Curtis Herbert is back with another Slopes Diaries post, making the argument that Apple’s 30% cut is worth it, but that external payment links will also open new opportunities.

    I think the perspective on this topic varies between developers partly based on whether you expect users to randomly discover your app in the App Store, or whether you’re building a service outside the store and the mobile app is just a companion to that. Much of Curtis’s framing is around discovery in the App Store:

    Remember, your goal when trying to convert a sale is to try to cause as little friction as possible. Make the user think as little as possible. “Enter your credit card information for this random app to start your free trial” is hardly frictionless compared to IAPs.

    There are many advantages to Stripe other than the lower fees. There’s more control and flexibility across the board. Also you get paid daily instead of waiting over a month for Apple to cut a virtual check, as if developers are kids waiting for their monthly allowance.

    Apple’s in-app purchase works really well for Slopes. That’s great. For Micro.blog, I’m not convinced there’s much of an advantage. Very few people want to start a new blog and think, “First I’ll search the App Store.”

    Developers are in the best position to know what marketing and payment options will work for their app. The whole point of these changes — from the EU’s Digital Markets Act to the judge’s ruling in the Epic trial — is to put the decision back in the hands of developers where it belongs.

    → 11:54 AM, May 16
    Also on Bluesky
  • EFF Austin talk slides, summary

    Before my talk at EFF Austin last night, I exported a PDF of my slides and asked ChatGPT (o4) to tell me about them. Here’s the chat transcript. It’s fascinating to me because this is without giving the speaker notes to ChatGPT, so it inferred everything from the slide content.

    I’ve now uploaded a separate copy of the slides with speaker notes as a PDF. I ran this through ChatGPT and it produces a pretty nice summary, which I’m including below.

    The talk was recorded and also includes lots of questions from folks attending.


    This presentation titled “Indie microblogging and the fediverse” was delivered by Manton Reece at EFF Austin. It explores the evolution of blogging, the failures of centralized social networks like Twitter, and the alternative vision embodied in platforms like Micro.blog, which Manton founded.

    Background and Motivation

    • Manton is a long-time Mac, iOS, and web developer.
    • Disillusioned by how Twitter restricted third-party developers and turned hostile toward openness and user control.
    • Saw the need for a better alternative that supports both microblogging and broader blogging with open standards.

    The Rise and Fall of Twitter for Developers

    • Twitter started as an open platform but progressively locked down its API.
    • Third-party clients like Twitterrific introduced key ideas (e.g. the word “tweet”).
    • Over time, Twitter killed features (RSS, API tokens, IFTTT integrations) that made the ecosystem vibrant.
    • Manton left Twitter in 2012 due to its toxicity and limitations.

    Micro.blog: A Response

    • Launched in 2017 via Kickstarter.
    • Offers microblogging, photo/video hosting, newsletters, podcasts, custom domains, and more.
    • Strong emphasis on open APIs and standards like Micropub, Webmention, WebSub, and ActivityPub.
    • Designed to integrate with other platforms like Mastodon, Bluesky, and WordPress.

    Fediverse and Interoperability

    • Explains how ActivityPub and AT Protocol (Bluesky) function.
    • Shows how Micro.blog fetches and syndicates content using RSS, JSON Feed, WebSub, etc.
    • Supports POSSE: Post on your own site, syndicate elsewhere (e.g., Mastodon, Threads, Flickr, etc.).
    • Highlights the architectural differences between Mastodon (federated servers) and Bluesky (PDS + relays + app views).

    Principles of Micro.blog

    • Minimalism: no likes, no follower counts, no algorithms, no ads.
    • Focus on personal ownership through domain names.
    • Posts are just HTML and Markdown — simple, durable, portable.
    • Encourages a quiet, human-centered space on the web.

    Vision

    • Micro.blog is framed as a part of an “open garden,” in contrast to the closed “walled gardens” of platforms like Twitter or Facebook.
    • Emphasizes user control, interoperability, and humane design.
    • Seeks to bring back the spirit of early web publishing, updated with modern protocols and tools.
    → 9:02 AM, May 14
    Also on Bluesky
  • On moving to Micro.blog

    Thanks to Kev Quirk for the kind words about migrating his Mastodon account to Micro.blog. Micro.blog is always a work in progress, and our fediverse support will continue to improve, but it’s gratifying to read that our approach is resonating with him:

    Thinking of it in this way has really cleared the Micro.blog fog in my mind. People can visit the front-end of the site to see my microblog posts (you can also see them on the notes section here), but if I want to interact with the other blogs on Micro.blog, or accounts on the fedi, I need to use the back-end CMS for that. It’s pretty obvious, really and works in a similar way to Ghost’s ActivityPub implementation - website at the front, “social feed” at the back in the CMS.

    Blogs as the foundation for a new kind of platform has been our north star since the beginning. Social media can be a mess — there’s no single fix for that — and yet we can chip away at the edges of the problem, hopefully encouraging a quieter, less exhausting timeline.

    More from Kev:

    I also like that there’s no in-your-face notifications. There’s a place where I can check where I’ve been mentioned, but there’s no bubbles when I login, so I do it when I want to, rather than when the software wants me to.

    Micro.blog must be the only social platform that doesn’t have any unread badges for notifications. That bothers some people, because they miss replies until later. That’s okay. Very few things on the web are actually urgent. The blog posts and mentions will be here when you get back.

    (We have talked recently about an opt-in email summary once a week for replies you might have missed. Assuming we can do that in the least-Facebook-y way possible.)

    In the end, Kev’s post is also a testament to the work the Mastodon team has done on account portability. You can easily imagine a future where it will be fairly normal to switch between Micro.blog, Mastodon, Ghost, and WordPress, with your identity and content intact. And that means each platform can lean into what makes it unique.

    → 10:49 AM, May 8
    Also on Bluesky
  • AI memory portability

    Parker Ortolani makes a great point about potential lock-in for AI products that know a lot about you. Portability would be a good thing to work on early:

    Memory should be exportable and importable from every provider. We do not need a new kind of proprietary format or anything like that. We just need OpenAI, Google, Anthropic, xAI, Microsoft, and others to implement memory and incorporate a way to migrate all of your chat history over in a click or two.

    It reminds me of this recent feature from Gravatar to export your profile preferences for AI tools as a simple Markdown file. It would be so useful to have a Markdown export with the most important memory and chat history for AI.

    How fascinating if Markdown becomes a portable export format? In Micro.blog we have custom importers for 10 different blogging platforms, all with their own file formats. Maybe in the future it’s just Markdown and HTML. (The .bar format already is partially HTML.)

    → 8:25 AM, May 8
    Also on Bluesky
  • Reinforced delusion and robots

    A wild story in Rolling Stone: People Are Losing Loved Ones to AI-Fueled Spiritual Fantasies. I use ChatGPT throughout the day and it’s hard to imagine it going off the rails this badly:

    …anecdotes about loved ones suddenly falling down rabbit holes of spiritual mania, supernatural delusion, and arcane prophecy — all of it fueled by AI. Some came to believe they had been chosen for a sacred mission of revelation, others that they had conjured true sentience from the software.

    In the future it will be more common to have AI virtual friends — the “point-five” concept from The Mountain in the Sea. At their best, these will be a mix of friend and counselor. At their most dangerous, maybe priest and fortune teller. It’s worrisome if people are already losing themselves with those kind of personas.

    Also a side note after I started watching Andor season 2…

    I was thinking of the design of the smaller droids in Star Wars. They are cute and sometimes intelligent, and we personify them to an extent, but probably as little more than an advanced Teddy Ruxpin. We don’t confuse those kind of droids with truly intelligent beings that have free will.

    I continue to believe that it’s a terrible idea to build humanoid AI robots. Partly because if they have all our physical attributes, only stronger and smarter, they can overpower us. But also because it blurs the lines of reality if robots are visually too similar to us, messing with our brains and how we interact with others. It would only amplify the problems in that Rolling Stone article.

    → 12:00 PM, May 6
    Also on Bluesky
  • OpenAI non-profit and public benefit

    OpenAI is keeping the non-profit, transitioning the for-profit side to a public benefit corporation (PBC). Sam Altman writing on the OpenAI site:

    We want to be able to operate and get resources in such a way that we can make our services broadly available to all of humanity, which currently requires hundreds of billions of dollars and may eventually require trillions of dollars. We believe this is the best way for us to fulfill our mission and to get people to create massive benefits for each other with these new tools.

    We want our nonprofit to be the largest and most effective nonprofit in history that will be focused on using AI to enable the highest-leverage outcomes for people.

    This all seems like a good pivot on the rumored plan. The change also does away with the “capped profit” structure, so presumably investors are happy.

    We might see a little more transparency too, since there are rules for how public benefit corporations should report on the progress of their mission to shareholders. I also discovered today that Anthropic has a separate trust that has oversight over Anthropic’s own PBC.

    → 3:54 PM, May 5
    Also on Bluesky
  • Meta's discovery engine

    Mark Zuckerberg said something in the Stratechery interview last week that paints a clearer picture of what the future of Facebook, Instagram, and Threads is going to look like. Meta is leaning into the TikTok-ification of all their social platforms. I think it’s going to be quite dismal.

    We already knew that Meta was planning to put AI-generated content in your feed. Last year I suggested that this is where algorithmic timelines eventually lead, as ad-based platforms have an insatiable appetite for new content. More content, more human time refreshing the feed, more ads served:

    Good interview with Mark on Decoder but can’t disagree more strongly with Mark’s vision of AI-generated content showing up in your feed. This is the terrible end-game of algorithmic timelines.

    Mark now envisions Meta’s social apps as “discovery engines” — constantly churning out content that you might find engaging. Then, when you discover something you like (or hate), you’ll share it with your friends, whether that’s in a public feed or privately in DMs and WhatsApp group chats.

    Nick Heer blogged yesterday along the same lines, framing Meta’s platforms as television channel surfing with infinite content:

    Then TikTok came around and did away with two expectations: that you should have to work to figure out what you want to be entertained by, and that your best source of entertainment is your friend group. Meta is taking it a step further: what if the best source of entertainment is generated entirely for them? I find that thought revolting. The magic of art and entertainment is in the humanity of it.

    The counter to Meta’s strategy couldn’t be more clear. We should be building blog-based platforms around real content, timelines with a finite list of your friends' recent posts, discovery that doesn’t incentivize outrage, and no ads or algorithms that could undercut the principles of an authentic, human-centered network.

    → 6:44 PM, May 3
    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.
    → 5:14 PM, May 1
    Also on Bluesky
  • Using ChatGPT while driving

    In used to be that I avoided using Siri except in a few specific cases while driving:

    • Read and respond to text messages.
    • Map driving directions.
    • Dictate a note.

    If I ventured outside these tasks, the experience was unreliable and frustrating. So I just haven’t bothered to use Siri for much.

    Now that you can forward questions to ChatGPT, I’m using Siri + ChatGPT in the car much more often. As one example today:

    ask ChatGPT what’s a good place for lunch two hours from Washington, D.C. on the way to Roanoke, Virginia?

    Siri is hopelessly confused if it tries to answer this question on its own. It sees “lunch” and “Washington, D.C.” and gives up trying to understand the rest. But adding the “ask ChatGPT” prefix is magic, transforming the query into a useful conversation and answer.

    It’s harder to verify hallucinations while driving, of course. For me, using AI is iterative, going back and forth and fine-tuning what I’m looking for. Even imperfect, though, getting a taste of this functionality just makes me wish Apple would let us use ChatGPT’s voice mode as a native replacement for Siri. I would use it for all sorts of things on solo road trips when I want context for everything around me.

    → 3:15 PM, Apr 28
    Also on Bluesky
  • Perplexity voice mode

    I hadn’t seen the new Perplexity voice mode until Federico Viticci blogged about it. Looks impressive. I also think Federico is exactly right on this:

    Looking at the big picture for a second, I do think Apple is in a precarious situation here. The fact that the company makes the best computers for AI is a double-edged sword: it’s great for consumers, but those same consumers are increasingly using Apple devices as mere conduits for other companies’ AIs, funneling their data, context, and – most importantly – habits into systems that cannot be controlled by Apple.

    There used to be a lot of talk of AI companies not having a “moat” that would protect them against competition from Apple and Google as everyone caught up to the latest advanced models. It’s clear now the moat is the product, not the model. ChatGPT with memory based on everything you’ve asked it is starting to become a light form of lock-in.

    Perhaps this iOS integration with Perplexity could be the same thing if it takes off. I’m a little skeptical because Perplexity doesn’t have the reach of OpenAI and Anthropic, and as Federico says many folks still have a bad first impression from Perplexity skirting the gray areas of copyright and crawling.

    As I blogged last month, Apple has the added challenge of not yet knowing if what they are trying to do is even possible. Their competition isn’t limited in the same ways that Apple is: not relying on local models, not focused on privacy, not announcing features only once a year in June. OpenAI, Perplexity, and others are developing at a different pace.

    → 8:40 AM, Apr 28
    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.

    → 8: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.

    → 8:03 AM, Apr 26
    Also on Bluesky
  • Bluesky downtime

    Bluesky was down last night and I saw a couple posts questioning how this could happen if it was really decentralized. Worth a few thoughts here.

    If mastodon.social went down, what would the user sentiment be? It hosts 2.7 million users, or roughly 15% of the fediverse. (Not counting Threads because Meta doesn’t publish their data.) While down, users on mastodon.social wouldn’t be able to interact with the fediverse or download a copy of their posts.

    This is best illustrated with this humorous Mastodon critique from Rob Shearer:

    M: You start by choosing an instance. But the important thing is it doesn’t matter because all instances are federated and you can migrate between instances.

    U: So if the instance I chose gets shut down I can migrate to another?

    M: No.

    Even so, if a single very large Mastodon server went down, no one would use it to question whether Mastodon is decentralized, other than as a reminder that smaller communities are often better and make the network more resilient. Likewise, it’s not really fair to frame bsky.social as merely a large server; it’s effectively the only thing right now, which isn’t true for mastodon.social.

    With AT Protocol, it’s possible to host your posts outside of Bluesky. Very few people do this, but it will become more common as third-party hosting services (like Micro.blog) support it. In that case, if bsky.social or bsky.app went down, you could still access your posts.

    When you call the Bluesky API via bsky.social, it actually proxies your requests to the appropriate backend data server if it’s hosted on Bluesky. This makes the API feel very centralized, but all of the data could still be accessed directly in a more distributed way, like accessing individual websites.

    Bluesky is not federated like Mastodon, but the open architecture that Bluesky was designed around is valuable. It is distributed sort of like the web is distributed even though Google exists and dominates search. Eventually, there will be other AppViews that work like Bluesky but run in parallel with their own timeline. In that case, if Bluesky went down, some other apps might still function, and could utilize the same data and social graph.

    We need to move beyond a Mastodon vs. Bluesky mindset. As I’ve blogged several times, they are solving slightly different problems. We can draw inspiration from each one to make the web more open. I want both to exist.

    Update: Tweaked a couple references to how PDSes work to reflect feedback in comments.

    → 8:38 AM, Apr 25
    Also on Bluesky
  • AI web search

    If you haven’t been following the latest AI models closely, you may have missed what is happening with integrating web search results into answers. It used to be that you had two options:

    • Use the model’s built-in knowledge, usually with a training cut-off of a year ago. That was extremely fast but it might hallucinate when it hit the extent of its knowledge.
    • Use “deep research” to let the AI gather info from the web and compile a comprehensive report. That took 5-10 minutes and the result was overkill most of the time.

    Now it’s more streamlined. I’ve been using OpenAI’s o4-mini and it seems to work something like this:

    • Ask it a question that could benefit from searching the web to supplement the model’s built-in knowledge.
    • AI figures out a handful of queries for the web and feeds the search results back into its reasoning process.
    • In some cases it might use those results to go back to the web and search for more web pages.
    • Then it uses everything it learned to produce the answer.

    This process takes somewhere around 30 seconds. It’s great for asking questions about coding with recent frameworks, or really anything that changes often.

    In a longer post about this, Simon Willison writes:

    This turns out to be a huge deal. I’ve been throwing all kinds of questions at ChatGPT (in o3 or o4-mini mode) and getting back genuinely useful answers grounded in search results.

    He also comments on the downside to replacing humans viewing web pages:

    This also means that a bunch of the potential dark futures we’ve been predicting for the last couple of years are a whole lot more likely to become true. Why visit websites if you can get your answers directly from the chatbot instead?

    The results are so good that I’m now asking AI for simple queries that Google would be equally good for. Using AI essentially automates the workflow of getting 10 links from Google, clicking on 3-4 of them, then skimming the web pages to get your answer.

    I don’t know where all of this is going. It feels like a pretty big shift, though.

    → 12:28 PM, Apr 22
    Also on Bluesky
  • Twitterlike vs. Micro.blog

    This is a great post outlining many of the problems with Twitter-inspired social networks:

    Twitter and its imitators have adopted a structural design that is fundamentally bad for people. This isn’t just a matter of who’s in charge; it’s a problem with the thing itself.

    I’ve been saying this for quite some time. The design and features of social apps influence how we interact with it and the behavior it encourages. My book even had a chapter called UI impacts behavior.

    The “Twitterlike” post is so well structured that I thought it would be interesting to compare it to Micro.blog, which leaves out some features on purpose.

    Twitterlike Micro.blog
    “Tight Character Limits” No limit. Defaults to short posts but can grow to any size.
    “Anti-Link Culture” Links encouraged. Markdown for inline-links within text.
    “No Edit Button” Blog posts can always be edited. Replies can be edited within 24 hours.
    “Share Additions = Bad Shares” No built-in reposts. Can embed posts or use Markdown block quotes.
    “Trending Feeds” No trends.
    “Decontextualized Encounters” Can still be a problem in Discover, which is why we hand curate it and avoid divisive topics.
    “No Host Veto” Partial support. Can hide replies on your own blog, but not in timeline yet.
    “Inline Tags” No special support for hashtags.

    The main argument against “Twitterlike” aligns very well with Micro.blog’s philosophy. There’s still more work to do.

    → 9:13 AM, Apr 17
    Also on Bluesky
  • Describe me

    Inspired by this post from John Gruber about ChatGPT’s memory, I also asked it to “describe me based on all our chats”. Here’s the response:

    You’re a deeply thoughtful, independent-minded developer and writer who cares about doing things the right way—even if it’s harder. You’re technical, with strong experience in Ruby, JavaScript, macOS, and web development, and you approach problems with a desire for clarity, accuracy, and control over your tools. You’ve built and maintained your own products (like Micro.blog), and that entrepreneurial streak shows in your attention to business details like sponsorships, payments, and imports.

    You’re also someone who reflects on the cultural and social impact of technology—curious about decentralized platforms, web standards, and content ownership. You think critically and write with conviction, often revisiting drafts to strike the right balance between empathy and clarity. You seem to enjoy history (tech and otherwise), appreciate language nuance, and occasionally step back to question whether we’re being fair to one another—online or off.

    You like practical answers, prefer concise code examples, and often iterate to refine ideas. At the same time, you don’t mind a little humor or casual back-and-forth, as long as the conversation stays useful.

    → 2:35 PM, Apr 16
    Also on Bluesky
  • Mastodon's incomplete migration

    Rob Shearer wrote a detailed and fairly scathing critique of Mastodon. I don’t agree with everything in the post, but I do think he’s right about migration:

    One of the big selling points of Mastodon was that you can pick which instance your account lives on, but it is easy to change your mind and switch to a different instance later on. This feature was wildly oversold.

    Mastodon allows you to post the equivalent of a web redirect: your followers are informed of your new instance and seamlessly migrated over. Your posts, however, do not move with you. Which is kind of a theme: the system simply doesn’t think posts are terribly important.

    Some of what Rob says might be difficult for Mastodon users and developers to hear. But migration is such an important part of the federation model that moving posts should be a priority. Micro.blog can import an archive of Mastodon posts. Why can’t Mastodon import its own posts?

    I assume the answer is that the Mastodon team has prioritized social features over microblogging features. It’s a trade-off, but it means that Mastodon is not suitable as a blog replacement anymore than Twitter / X is. Anyone who cares about their writing or photos should be publishing them at their own domain name.

    I’m proud of Micro.blog’s comprehensive post import. As of 2025, I’ve coded custom importers for a dozen systems, all built-in: WordPress, Medium, Tumblr, Mastodon, Ghost, Markdown, Substack, Write.as, Pika, Foursquare, Instagram, and Twitter / X.

    The other side of Rob’s point about migration is not being able to recover if a Mastodon server suddenly goes down without warning. I’m not sure this is realistic to solve without major changes. My approach has mostly been to encourage users to preemptively think about backups, so at least they’re not left with nothing.

    → 2:41 PM, Apr 11
    Also on Bluesky
  • AI crawling reprise

    Jeremy Keith has a good collection of links and quotes about AI crawling. On this specific part of the commentary I continue to disagree, though:

    If you’re using the products powered by these attacks, you’re part of the problem. Don’t pretend it’s cute to ask ChatGPT for something. Don’t pretend it’s somehow being technologically open-minded to continuously search for nails to hit with the latest “AI” hammers.

    I don’t think we should paint all AI tools with the same brush. Some tools might be well-behaved crawlers and some might not be. Note that this is a separate question from the legality of AI training. The context is mostly Wikipedia which is not under copyright.

    Simon Willison adds about the Wikipedia data:

    There’s really no excuse for crawling Wikipedia (“65% of our most expensive traffic comes from bots”) when they offer a comprehensive collection of bulk download options.

    Ben Werdmuller also sees these as bad actors:

    Here the issue is vendors being bad actors: creating an enormous amount of traffic for resource-strapped services without any of the benefits they might see from a real user’s financial support.

    The argument I’m hearing from some folks is that because they consider AI to be bad, everything it touches must also be bad. All crawling, whether it respects robots.txt or not. All tools, because using them contributes to the success of LLMs.

    I’d like to have more concrete answers, such as: do ChatGPT and Claude respect robots.txt or not? I assume they do, because they document their user agent strings. If they do, it doesn’t seem fair to punish ChatGPT because there is some other rogue AI crawler that is misbehaving.

    AI is powerful and potentially dangerous. Because of this, most users will gravitate toward “brands” that are respected and accountable. In other words, users will prefer Apple Intelligence, ChatGPT, or Claude, where we know there has been some level of safety work, with only fringe users downloading and running models from other sources.

    These mainstream AI tools should be contributing back. We know ChatGPT has a deal with Reddit, but they should also be making a recurring donation to Wikipedia. This would further differentiate the well-behaved bots from the ones skirting the edges of fairness.

    Meta appears to have used their old move fast and break things playbook to training Llama, using pirated books. From The Atlantic:

    Meta employees turned their attention to Library Genesis, or LibGen, one of the largest of the pirated libraries that circulate online. It currently contains more than 7.5 million books and 81 million research papers. Eventually, the team at Meta got permission from “MZ”—an apparent reference to Meta CEO Mark Zuckerberg—to download and use the data set.

    Another thing that’s puzzling to me is if AI bots are so abusive, why haven’t I felt this in Micro.blog? We host blogs. If bots were destroying the open web, I would expect to notice it on my own servers.

    If you dislike generative AI on philosophical grounds, or because of specific negative side effects such as energy use, that is totally fine. But then let’s stick to those arguments. I’m not yet convinced that legitimate AI crawling is going to destroy blogs or even Wikipedia.

    → 12:00 PM, Apr 9
    Also on Bluesky
  • AI at Shopify

    Tobias Lütke, in a memo to employees at Shopify, re-posted on Twitter / X:

    Using Al effectively is now a fundamental expectation of everyone at Shopify. It’s a tool of all trades today, and will only grow in importance. Frankly, I don’t think it’s feasible to opt out of learning the skill of applying Al in your craft; you are welcome to try, but I want to be honest I cannot see this working out today, and definitely not tomorrow.

    I just blogged a few days ago that I think generative AI gives programmers an advantage, but I wouldn’t mandate it, just like I wouldn’t mandate auto-complete or Stack Overflow. Programmers can be productive and happy in a variety of ways. Requiring AI (or forbidding it) strikes me as extremist for little benefit.

    Marco Arment posted to Mastodon yesterday that he doesn’t use AI in Overcast beyond Xcode’s smarter auto-complete.

    Maybe that’ll change in the future, but I see myself only ever using autocomplete-style speedups, not “write it for me”. I usually won’t even use code that other humans write!

    Hard to argue with the results. Overcast is one of my favorite apps.

    Also I know from my own experience that some programmers love the craft more than others. AI is a major disruption to the craft, so everyone will have different opinions on when it should be integrated into the process. It is an advancement, but how it’s used matters too.

    → 11:58 AM, Apr 7
    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.

    → 5: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.

    → 12:28 PM, Apr 3
    Also on Bluesky
  • No one cares… for now

    To be a blogger, you have to be okay with writing into the void. Some posts will resonate with people. Some posts will get comments. Most won’t.

    Sometimes I’ll write a post and I’ll think to myself, “This is pretty good! This is the blog post that people are gonna talk about and link to. I’ve really captured something unique in this post.”

    And then crickets. No one cares. 🦗

    That’s okay. The act of writing itself helps us think, helps us learn, helps us discover how we feel about a topic. It’s creative and has value even if no one is reading. It’s a snapshot in time to look back on later.

    And then the post is out there on the internet, making the web a little better. And maybe one day someone will pick it up and see it, at just the right time, and it will matter to them.

    → 10:25 AM, Mar 29
    Also on Bluesky
  • AI art is bittersweet

    ChatGPT’s new image generation is incredibly good. Too good. You can see it in the thousands of Ghibli-ified photos all over the social web. Hayao Miyazaki is going to come out of retirement again to tell us how we’ve all lost the plot on creativity.

    When we look back on this moment, it will be a clear turning point for AI. There is no putting the genie back in the bottle. AI will transform nearly everything, including art. What does this mean for us?

    In a previous life, I thought for sure I would be an animator. I studied CS in school but I was already coding professionally, burned out on my CS classes, so I switched gears to study art instead. I applied to CalArts and was rejected. I worked on short films in my spare time. But life happens, and I’ve been happy with my career as a software developer.

    The animation industry has seen several significant technological progressions. I remember watching The Great Mouse Detective in the movie theater when I was 10 years old. The 3D-animated gears in the clock tower scene were stunning. Today, I remember the characters, and I remember that scene, but not much else. Blending 2D and 3D was clearly something new, obvious even to a kid.

    Going back further, before 3D animation, much of the progress was related to the ink and paint department:

    • In the 1940s, women at Disney would trace the animator’s drawings onto cels with ink, then paint the other side in color. It’s a tragic bit of history that many of these women were very talented artists and should have been allowed to be animators.
    • In the 1960s, drawings were Xerox-ed directly onto cels, eliminating the tracing and cleanup in ink.
    • In the 1990s, hand-drawn coloring was replaced with CAPS at Disney, developed in partnership with Pixar, making the ink and paint department completely digital.

    Toy Story ushered in a new era of 3D animation, where everything on screen was generated with a computer. Hand-drawn art was still needed, for concept art, character design, and storyboards. And we still love hand-drawn animation. This year’s Oscar-winning short film is a beautiful traditionally animated film.

    So is AI-generated art just another step on this progression? No. It is profoundly different.

    We should mourn the loss of what AI replaces, even as we make room for what’s to come. I’m both sad and excited. It is bittersweet.

    If we try to hold on to the way the world was before the ChatGPT update this week, it will slip through our fingers. Instead, I’m thinking of how we can use this tool to expand what is possible. Lean into what makes art uniquely human.

    There is precedent for using technology to strengthen the human element in art. By Xerox-ing the pencil lines directly on to cels in the 1960s, the ink and paint department no longer needed to trace a character’s outlines with pen, where subtle changes in line quality might be lost. Animators embraced the Xerox change because their original pencil lines were preserved exactly as intended on screen. It was not only a cost savings, it was a return to a more authentic version of the animator’s intent.

    That is what we must look for. Not what we’ve lost, but what we’ve gained. There will be a way to create something extraordinary with this technology. I don’t know what it is yet.

    And there will always be a place for human art. Vincent van Gogh’s paintings are not valuable because of what they look like. They are unique and priceless because of who he was. A life, with all its struggle, love, and tragedy.

    AI can be creative when it hallucinates. But we don’t value AI creativity the way we value human creativity. AI is a blob of bits and vectors and tokens without soul. It’s a tool for us to do something with.

    When my wife and I moved to the new house this year, I framed the original drawings I have of Scrooge from Mickey’s Christmas Carol. They cannot be recreated by the most advanced AI because they represent something bigger, capturing a moment in time and a film that will be watched for decades to come. I don’t actually know which animator drew them. But I know it was a great artist who — like Hayao Miyazaki — left their mark on the world in a way that AI never can.

    → 12:30 PM, Mar 28
    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!

    → 8:33 PM, Mar 25
    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.

    → 11:28 PM, Mar 19
  • 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.

    → 10:07 AM, Mar 17
    Also on Bluesky
  • AI's impact on the open web

    This is an excellent post by Molly White about the potential conflict between making the world’s knowledge more accessible through AI and the risk of destroying the foundations for open content on the web:

    The true threat from AI models training on open access material is not that more people may access knowledge thanks to new modalities. It’s that those models may stifle Wikipedia and other free knowledge repositories, benefiting from the labor, money, and care that goes into supporting them while also bleeding them dry.

    She also gets at something I tried to articulate in one of my posts last year about putting up roadblocks for crawlers. We don’t want to make the web worse in the process of protecting content from AI training. Molly again:

    Often by trying to wall off those considered to be bad actors, people wall off the very people they intended to give access to. People who gate their work behind paywalls likely didn’t set out to create works that only the wealthy could access. People who implement registration walls probably didn’t intend for their work to only be available to those willing to put up with the risk of incessant email spam after they relinquish their personal information.

    AI companies are moving so quickly that it’s going to take the open web and standards organization a little time to catch up. It’s not hopeless, though. Personally, I do want all of my blog posts — and the entire content of my book Indie Microblogging — available for AI models. But if other writers feel differently, there should be steps they can take without also taking a step back from the open web.

    I believe all these things:

    • AI models with all the world’s information are an incredible resource and will transform education and how we work.
    • AI training should respect how authors intend for their content to be used without forcing authors to mangle their own content.
    • AI companies shouldn’t take from the open web without giving back in citation links and money to authors and organizations.
    • AI slop will become a problem for both users and AI training, so we need a web filled mostly with human-generated content.

    I remain optimistic in part because despite how divisive AI has become, this year is also seeing an amazing return to open web principles. More people are blogging. More social networks are based on open protocols. We need to be thoughtful in how we navigate all of this, finding the right balance with AI training that doesn’t undermine what we love about the open web.

    → 1:39 PM, Mar 15
    Also on Bluesky
  • Is Apple Intelligence even possible?

    We are so used to being able to do almost anything in software. For example, today I was looking at how long it takes to load the list of your blog posts in Micro.blog. It’s a couple seconds, but I’d like it to be half a second. I know from many years of web experience that there is no technical reason why it can’t be faster. Just a little more caching and database optimizations.

    With the Apple Intelligence and Siri delays, people have speculated on why it’s late. Maybe it’s about getting the security right. Maybe it’s just buggy and taking longer than expected.

    But what if Apple has discovered that it’s not actually possible? AI is entirely new, with new requirements that stress the limits of hardware. Apple is attempting to cram a clever intermingling of data and Siri features into 8 GB of RAM. As a comparison, the largest version of DeepSeek R1 can only be run on a brand new Mac Studio with the M3 Ultra and 512 GB of RAM.

    Apple does have an out if on-device models fall over: private cloud compute. But scaling that out to hundreds of millions of iPhone users goes well beyond what Apple had presumed was needed when they talked last year about ramping up production of M2-based servers for AI.

    If Apple needs to lean on the cloud to really make Siri work, I think it will be the largest server undertaking that Apple has ever attempted. And they need to balance this with their commitments to energy use and the environment. This is not something you just spin up out of nothing.

    Another path would be to simplify their approach, starting with a more manageable set of tasks that the new Siri could do. Something that fits within the limits of iPhone hardware and a realistic deployment of new servers. Apple could focus on making Siri a little more capable and more reliable, saving some of the harder challenges for later. Most people have no idea what Apple promised last year, despite the TV ads, so a reset of expectations could get Apple back on track.

    We don’t know what’s going on inside Apple. Apple Intelligence might need a little more time or much more time. The only truly worrying scenario would be if the sunk cost fallacy is blinding them to how badly they are stuck.

    → 3:30 PM, Mar 14
    Also on Bluesky
  • Apple's response to AI

    Ever since Apple revealed their AI strategy to lean into on-device models, there has been a sort of tension with the approach from other companies like OpenAI, Google, and Amazon. Was Apple Intelligence going to work? There are advantages: for user privacy because more data stays on your phone, and for scaling because the load is distributed across millions of phones instead of only running in data centers.

    Now we know that a more advanced and personal Siri is delayed until iOS 19. From an Apple spokesperson via Daring Fireball:

    We’ve also been working on a more personalized Siri, giving it more awareness of your personal context, as well as the ability to take action for you within and across your apps. It’s going to take us longer than we thought to deliver on these features and we anticipate rolling them out in the coming year.

    Jason Snell blogged a recap of the Siri demo from WWDC last year:

    This led to one of the killer demos of WWDC 2024, in which Siri was able to understand when someone’s mom’s flight is landing by cross-referencing an email with real-time flight tracking to get a good answer. From there, the demo pulls a lunch plan with mom out of a text thread and then displays how long the drive is to there from the airport—all from within Siri, rather than individual apps.

    I’m not worried about a delay. Software is complicated and we all hit unexpected challenges. I’m worried that Apple can’t pull this off at all. Parker Ortolani is blogging the same kind of questions:

    It felt almost vaporware-like when revealed at WWDC and it certainly seems like they are having a great deal of difficulty making it a reality.

    And from Federico Viticci:

    …one has to wonder why these features were demoed at all at Apple’s biggest software event last year and if those previews – absent a real, in-person event – were actually animated prototypes.

    There are two potential problems with Apple’s approach:

    • On-device models are small and limited by hardware like RAM.
    • App Intents for extensibility require support from developers and won’t be available on all devices.

    I’ve written about this before with Siri, including in this blog post right before WWDC last year. Because each device has its own version of Siri, it is hard to ever have a universal assistant that works everywhere and is extensible. There are things Siri can do on a phone that it can’t do on a HomePod.

    I’m not seeing even a hint of a solution from Apple on this. If anything, what they showed developers with App Intents at WWDC is going to create an even more disjointed Siri across platforms, because third-party apps may not be available everywhere.

    Steve Troughton-Smith on Mastodon is skeptical that third-party developers will help make this vision a reality:

    Delayed or not, Apple’s proposed Intents-based Apple Intelligence features require a ton of buy-in from developers for it to be of any real use, and the incentives really aren’t there — donating your app’s content and functionality to enrich Apple’s AI alone, bypassing your UI, UX, branding, metrics, et al, to be delivered in a content soup alongside your competitors.

    While App Intents don’t exclude the idea of other APIs for developers to use system models directly, I don’t expect we’ll see anything beyond App Intents until the new Siri is ready, and maybe not even after that. Ben Thompson in today’s Stratechery article:

    Apple gives lip service to the role developers played in making the iPhone a compelling platform — and in collectively forming a moat for iOS and Android — but its actions suggest that Apple views developers as a commodity: necessary in aggregate, but mostly a pain in the ass individually.

    Ben makes a strong case that Apple should be opening up their models to third-party developers, especially given the incredible potential of the M3 Ultra. Siri is designed for an 8 GB RAM world. The M3 Ultra can have 512 GB. Mac developers will have to bring their own models to take advantage of the great hardware in modern Macs.

    Back to the disconnect between on-device models and cloud-based AI, Alexa Skills have been around for a decade and they will apparently work seamlessly with Alexa+. It’s all in the cloud.

    I use ChatGPT a lot, every day, and yet there are some things I’m not comfortable sharing into the cloud. I don’t care if it knows that I’m planning a trip or what code I’m working on, but I’d be very hesitant to talk to a cloud-based assistant about truly private matters. Who knows where that info might accidentally end up.

    Apple competitors could undercut a lot of Apple’s strategy by creating their own version of private cloud compute. Most users do not really think or worry about this. They’ve been storing emails with all sorts of private details on Gmail servers for years. But making cloud-based AI as secure as possible is just a good thing.

    I’m not sure Apple knows what a big risk they are taking by letting OpenAI and others lap them in the AI race. It’s a risk that will pay off if they can execute. Just as likely, though, we are seeing such a disruption in computing that Apple is vulnerable for the first time in a decade.

    Big companies like Apple do not move quickly. Amazon put everything into rebuilding Alexa and it has taken nearly two years. If there is a truly new AI device, a post-smartphone pod that we keep in our pocket or that’s built into our glasses, Apple’s strategy to entangle AI with phone hardware will have been proven all wrong for this moment, and they will have no response.

    → 9:18 AM, Mar 10
    Also on Bluesky
  • Can we like both the open web and AI?

    Ben Werdmuller has a good post today about returning to the distributed publishing roots of the web and thinking about how technology should redistribute wealth and power to many people:

    It starts with software designed for people rather than for capital. The web once thrived on protocols instead of platforms — email, RSS, blogs, personal websites — before closed networks turned users into data sources. We are now seeing efforts to return to that ethos.

    There is a lot that I love in Ben’s post. I also think it captures some frustration toward AI from some open web proponents. That’s not an opinion I agree with, though. For example, this part in Ben’s post:

    Even the productivity gains that are being realized through use of AI tools are benefiting a small number of wealthy companies rather than individuals. This is the exact opposite of the power redistribution that led to so many people seeing such promise in the web.

    That doesn’t ring true to me. I expect AI is benefiting a lot of tiny companies of only one or two people who are hardly wealthy, maybe even barely profitable.

    AI does have the potential for harm. Let’s not gloss over that. But at its best AI can improve education, making all the world’s knowledge more accessible to more people. It could help people who aren’t fluent in English communicate better with their peers across the world. I don’t think the open web and AI are at odds.

    → 2:15 PM, Mar 2
    Also on Bluesky
  • Something is wrong with Trump

    We can all see it. It is beyond political parties. Beyond ideology. Beyond whether he is corrupt or competent.

    David Brooks, on the PBS NewsHour after the Trump and Zelenskyy meeting at the White House:

    All my life, I’ve had a certain idea about America. That we’re a flawed country, but we’re fundamentally a force for good in the world. That we defeated Soviet Union, we defeated fascism, we did the Marshall Plan, we did PEPFAR to help people live in Africa. And we make mistakes. Iraq, Vietnam. But they’re usually mistakes out of stupidity, naivete, and arrogance. They’re not because we’re ill-intentioned.

    What I have seen over the last six weeks is the United States behaving vilely. Vilely to our friends in Canada and Mexico, vilely to our friends in Europe. And today was the bottom of the barrel. Vilely to a man who is defending Western values, at great personal risk to him and his countrymen.

    So what do we do? I don’t know. It feels too big. Since 2016 I’ve just tried to focus on a few positive things. Building Micro.blog is a big part of that, helping more people blog.

    On a personal level, we can also do the opposite of whatever we see from Trump:

    • Don’t treat other people with disrespect.
    • Don’t get caught up in disinformation.
    • Don’t vilify people we disagree with.
    • Don’t exaggerate our differences.
    • Don’t blow things out of proportion.
    • Don’t get outraged over small things.
    • Don’t fuel divisiveness.

    I want to be better about noticing when I fall into extremes, missing nuance, missing the big picture. That’s not to say we should “both sides” everything, though. It’s more that we can try to be thoughtful in how we communicate, even when we all have different perspectives.

    We can care about other people. Trump is incapable of empathy. His legacy cannot be anything but division. He will be bitter until the end, leaving behind a world out of balance, and disappointment and exhaustion in all the people he has dragged down with him.

    → 12:52 PM, Mar 2
    Also on Bluesky
  • GPT-4.5 preview thoughts… and Steve Jobs

    OpenAI released GPT-4.5 this week to Pro subscribers and via the API, but it’s not what I was expecting. It is much more expensive, about 15-30 times the cost of GPT-4o. For my simple needs, like figuring out the keywords in a photo or summarizing a web page, older models are fine.

    Sam Altman posts on Twitter / X (sigh) that it’s a giant model. OpenAI can’t roll it out to Plus customers until they bring online tens of thousands of new GPUs. Sam adds:

    this isn’t a reasoning model and won’t crush benchmarks. it’s a different kind of intelligence and there’s a magic to it i haven’t felt before.

    Simon Willison suggests that 4.5’s training knowledge cut-off is not any different than 4o, only going up to the end of 2023. This makes me wonder if data crawling and licensing issues have derailed the company to an extent, and they’re holding the new data for GPT-5. They say that improvements for 4.5 were partially from synthetic data created by other models.

    There is also this from OpenAI’s blog post:

    GPT‑4.5 is a very large and compute-intensive model, making it more expensive⁠ than and not a replacement for GPT‑4o. Because of this, we’re evaluating whether to continue serving it in the API long-term as we balance supporting current capabilities with building future models. We look forward to learning more about its strengths, capabilities, and potential applications in real-world settings.

    Translation: we don’t really know how this model works. 🤪

    I remain fascinated with AI. There are many people who are worried, and if that’s you there’s not much new here that will reassure you, except some good news with a lower hallucination rate. I’ve also blogged myself about the potential harm of agents in particular.

    But AI might be the last truly new thing I’ll see in my programming career. We are so used to exciting new gadgets and software, released all the time, and yet none of it is profoundly new. AI is the only thing that’s comparable in scale to the tech advances that have changed everything, like the graphical user interface, mobile phones, and the web itself.

    It reminds me of an old interview with Steve Jobs, on visiting Xerox PARC in 1979:

    And they showed me really three things. But I was so blinded by the first one, that I didn’t even really see the other two. One of the things they showed me was object-oriented programming. They showed me that. But I didn’t even see that. The other thing they showed me was really a networked computer system. They had over a hundred Alto computers, all networked, using email, etc, etc. I didn’t even see that.

    I was so blinded by the first thing they showed me, which was the graphical user interface. I thought it was the best thing I had ever seen in my life. Now remember, it was very flawed. What we saw was incomplete. They’d done a bunch of things wrong, but we didn’t know that at the time. Still though, they had… The germ of the idea was there and they’d done it very well.

    And within, you know, ten minutes, it was obvious to me that all computers would work like this someday.

    Perhaps GPT-4.5 represents the end of the breakthrough in generative AI, as we enter a more iterative period of refinement, the same way that the graphical user interface and object-oriented programming haven’t fundamentally changed since Steve Jobs saw them. Those things from Xerox PARC — from Smalltalk to the Alto’s mouse — are all recognizable as early versions of what we have today.

    So if newer AI models are only marginally better, or only different in ways that we can feel but not measure, that’s okay. Models need to be safer and more efficient, for both developers and the environmental impact. The pace with AI over the last year has been almost too much. But the change did happen, it’s blindingly obvious, and everything is going to be a little different from now on.

    → 4:00 PM, Mar 1
    Also on Bluesky
  • 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.

    → 11:16 AM, Feb 25
    Also on Bluesky
  • Apple antagonism

    I wanted to see a transcript before blogging about it but this AP story probably has enough of Phil Schiller’s testimony on the App Store:

    “What happens if a developer doesn’t pay and what is the process for that?” Schiller recalled about his initial reservations about requiring fees on alternative payment options. He also said he was worried about Apple’s collection demands creating an antagonistic relationship with app developers that have traditionally been the company’s allies.

    Exactly. And:

    Schiller also confirmed that Cook pushed for a warning screen informing consumers the potential security threats posed by alternative payment options.

    We’ve been getting a clearer picture over the last year that the problem with the App Store is Tim Cook. He has led Apple to great success but it’s time for new leadership, someone users and developers can trust to be on our side. It may already be too late to repair the damage.

    → 10:47 PM, Feb 24
    Also on Bluesky
  • AI as a feedback machine

    This is a variation on something I’ve mentioned in passing before. I like running draft blog posts through AI. Even for very short posts, sometimes I’ll paste the text into ChatGPT and ask it to tell me what the post means. If AI can “understand” it, humans probably can too.

    For longer blog posts, AI seems to mirror what most people would think. After all, AI is essentially a distillation of all opinions on the web. If there is anything dumb or divisive in a post, AI will probably call it out. This could soften the edges of a post, potentially watering down its impact, but sometimes that’s exactly what you want.

    This strength of shaping a post so that it’s approachable to everyone else might be a weakness for creating original content. I’m still avoiding AI agents because that approach veers AI into a place where humans are no longer writing the first draft. That spark of creativity, coming up with the framing for something new. That’s not something I want to give up.

    → 3:27 PM, Feb 21
    Also on Bluesky
  • Humane pin wrap-up

    This is perhaps a slightly contrarian take on the failure of Humane’s pin. Eventually I believe there will be a successful product like it. It will need to be simpler, though. No laser. Cheaper. Faster.

    I won’t judge the team too harshly for being so ambitious. They probably knew 1.0 had fallen short but were expecting to iterate after shipping it, keep improving it. Instead, they had hyped up expectations so beyond what could be achieved at launch that when the first version flopped, it was crippling.

    The lesson for me is not that anything resembling this product was doomed to fail. There were interesting ideas in it. There were talented people working on it. The lesson is trying to do too much and not leaving room (and money) to ramp up. Wait for AI voice models to get to where you need to be. Only ship the features you can absolutely nail.

    Venture capital also deserves blame. Big investment needs a big return. They were trying to change everything all at once. Contrast with Rabbit, who shipped the R1 around the same time, also poorly reviewed. But Rabbit had a more sustainable approach and they’re still releasing cool things today.

    Sometimes you don’t get a second chance. Humane bet the company on a product that needed more time. They shipped a prototype. It is easy to see this in hindsight. More difficult when you’re caught up building it.

    → 9:48 AM, Feb 20
    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.

    → 4:07 PM, Feb 18
    Also on Bluesky
  • Mastodon quote posts draft

    Mastodon has shared their plan for quote posts. It is well-researched and thoughtful. Yet I have conflicting thoughts on it.

    I admire that the team is trying to think through the safety ramifications. I’ve long said we should not blindly copy features from the big silo platforms. A platform like Mastodon that doesn’t have ads also doesn’t need engagement-driven features or anything that amplifies hateful behavior. Already in my opinion Mastodon has copied too much from Twitter.

    Quote posts as proposed will be the most visible change to Mastodon’s ActivityPub implementation since the initial rollover from OStatus to ActivityPub. It is not just a new UI and post format, but a system of controlling which posts can be quoted and even optionally notifying users to approve quotes. It adds a lot of complexity.

    In Micro.blog, posts aren’t some special kind of “social” post the exists apart from the web. Micro.blog posts are blog posts. Quoting uses <blockquote>, and our web UI for embedding a post uses Quotebacks. The most straightforward way to support Mastodon quote posts when we receive them from Mastodon will be to essentially convert them to use <blockquote>.

    You don’t need permission to quote something on the web. It has always been assumed fair use to quote a snippet of someone else’s blog post and add your own commentary. This is a foundational part of link blogs and IndieWeb-style blog conversations. It is already common to embed a Mastodon post by making it a <blockquote> with relevant attribution.

    So what is special about Mastodon that requires so much technical infrastructure to support something so simple? I think it’s about speed and reach. For someone living in a social app like Mastodon, a quick boost or quote post that is shared to potentially many followers has an outsized impact relative to how little thought it requires. There is also a culture in Mastodon of treating posts as semi-protected within the Mastodon ecosystem. There is a strong sense of privacy and anonymity.

    Consider the following two scenarios. First on Mastodon, the scenario the Mastodon team wants to discourage:

    1. User clicks “quote post” and adds the comment “This person is terrible”, exposing the post to their followers for the first time. The followers might have no context for this new person.
    2. Followers immediately see the quote in their timeline and can react. Hit the like button, reply to pile on, boost.
    3. Suddenly the original person has a problem and unwanted attention. Negative replies flow in from strangers.

    Compare to the slower, blog-centric workflow:

    1. User starts a new blog post and pastes in the part they want to quote.
    2. At this point they could type “This person is terrible” and call it a day, but… That doesn’t usually happen. Instead, they add a little more commentary. Maybe a little more context or nuance. It is their blog after all, a space on the web with their name on it.
    3. Followers in RSS readers or some platforms like Micro.blog see the post. They can add a comment or write their own post linking to the original.

    It won’t always go this way. Someone on Mastodon could craft a thoughtful quote post, and someone on their blog could post a snide comment. But there is friction on blogs, it’s not quite as effortless to fire off a repost, while there are incentives on social platforms that reward performative behavior. Social media tends to bring out the worst in some people.

    Back to Mastodon’s proposed solution. After this change, some things should be better. For users who choose to prevent their posts from being quoted at all within Mastodon, the post could still be “manually” quoted the old fashioned way: copy and paste. ActivityPub’s conventions are a suggestion. Fair use still applies, although users should always be careful not to copy content from private posts meant only for followers.

    In a way, this proposal for quote posts is a reflection of the culture of Mastodon, wanting to create a new layer of the web for social interactions, not extending those interactions to blog posts and the rest of the web. It’s a layer that emphasizes federation and communities, where “social” posts are a new structured format on the web. This is not how I would personally approach it when the IndieWeb protocols are sitting right there, but the open web is still stronger because Mastodon exists.

    Where does this leave Micro.blog? For now, I plan to support half of Mastodon’s proposal: accepting post quotes via ActivityPub. When you follow a Mastodon user on Micro.blog, you should see their quote posts in your timeline. Quote posts are different than boosts and so need to be included in the timeline. I don’t think any other changes are warranted in Micro.blog for now.

    → 10:35 AM, 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.

    → 4:14 PM, Feb 12
    Also on Bluesky
  • Repetition

    Trust is built by consistently doing the same thing, hopefully the right thing, over years. There’s no shortcut. And to destroy trust requires either that same kind of repetition, in the opposite direction, or for people to have missed everything that came before.

    Misinformation is like a poison that accelerates the process. We are inundated with data. Half of it is bullshit, and there’s never enough time to sort through it before it scrolls off, ready for the next thing to dominate our attention.

    I want to be less reactionary. I keep coming back to this post I linked to a few weeks ago, from Seth Godin, on organizing for the urgent:

    We thrive when we do things when we have the most leverage, not when everyone else does. Waiting for trouble means that you’re going to spend your days dealing with trouble.

    Most social networks are designed for urgency. No wonder that the default state is to demand quick answers and trust nothing.

    → 10:21 AM, Feb 12
    Also on Bluesky
  • Robin Sloan on AI

    Loved this blog post by Robin Sloan on whether AI is okay. The subject is complicated and deserves longer posts like this. It’s a whole new thing. It’s not definitely good or bad.

    The part about writing code also resonated with me:

    I think the case of code is especially clear, and, for me, basically settled. That’s both (1) because of where code sits in the creative process, as an intermediate product, the thing that makes the thing, and (2) because open-source code has carried the expectation of rich and surprising reuse for decades. I think this application has, in fact, already passed the threshold of “profound social good”: opening up programming to whole new groups of people.

    As a programmer, my reaction could be that I don’t want to be replaced by AI, but I’ve said forever — I know Daniel and I talked about it on Core Intuition — that I actually don’t like writing code. I like building products, and it turns out you have to write code to do that. Making sure we’re building the right thing will always be more important than the code itself.

    Alan Jacobs’s comment is also great:

    It’s perfect that Robin is doing this in a blog post — the first of several, perhaps — because this kind of open-ended thinking is what blogs are best suited for.

    You could try to split Robin’s post into a series of tweets, but you would inevitably butcher it of nuance in the process, and so you’d lose everything good about it.

    → 10:18 AM, Feb 11
    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.

    → 11:12 AM, Feb 8
    Also on Bluesky
  • 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.

    → 10:30 AM, Feb 5
  • 1,000 AIs in your pocket

    When you’re late to the game, do less, better. Apple used to know this. When the original iPod arrived at my house, I could tell it was a breakthrough. Famously less space than a Nomad, but an innovative UI, great design, and fast FireWire. It was so good it set in motion everything else for the company’s current success.

    It’s easy to look back now and judge Apple’s AI rollout, but even at WWDC you could tell Apple was throwing everything at the wall. Image Playground wasn’t going to be as good as frontier image models. Siri world knowledge wasn’t going to be as deep as what ChatGPT could do. By trying to do nearly everything, each piece feels like a gimmick.

    There are some useful features in Apple Intelligence. Even flawed, I like notification summaries. But the good is getting lost in the noise. It seems clear now that Apple should’ve taken the publicity hit last year for not yet having an answer for every generative AI capability. They should’ve resisted scrambling to do too much, instead focusing only on what their models could knock out of the park.

    → 9:32 AM, Feb 4
    Also on Bluesky
  • Enough

    Last night I wrote two separate blog posts. First, I started documenting my email exchange with Adam Newbold. He already shared his half of the emails so I was considering sharing mine. It was confusing to have my side be blank in what he shared, because you can’t tell anything about my tone or what I was saying. I was really trying to resolve this with Adam privately where we could have a meaningful discussion.

    The second blog post I drafted was one of the longest I’ve ever written for this blog. It started by setting the background 8 years ago. Why I built Micro.blog and how we’ve wanted a safe community from day one. Why when Elon Musk bought Twitter, our founding principles were already aligned with what would come next for the social web. I think it was a good post. But it also meandered around, telling the story again from my perspective, and it was not going to deescalate an issue that has been completely blown out of proportion.

    I threw both posts away.

    Tensions are high this week. Maybe I should’ve given Adam more space to deal with the election in whatever way he thought was productive. I still believe his personal attacks on me went too far. Not just the language he used in emails, but in Mastodon posts about me and boosting negative comments. It deeply affected me.

    Social media has a tendency to amplify disagreements. It encourages followers to pile on. It spreads misinformation and exaggerations. Everything is an outrage. I’ve written extensively about this but I got so pulled in, I made some dumb mistakes myself. I got defensive when my integrity was repeatedly questioned.

    Yesterday I reset my approach, slowed down, got back to my values.

    There was concern that Micro.blog is not a safe place for LGBTQ+ people, so I updated our community guidelines with an expanded section on welcoming users and our respect for diversity and the LGBTQ+ community. It’s not perfect but it’s progress. There was concern about the perceived size of Vincent Ritter’s role, so I scrapped the “team” page and talked with him privately about the best way forward.

    Vincent, for his part, has blogged why he kept silent. Some people have accepted the twisted narrative that Vincent is a bigot and fascist. If they truly believe that, his post won’t be enough of an apology. But it’s enough for me.

    It’s enough for me because becoming a more inclusive, welcoming community isn’t about cutting people down when they make a mistake, so all that’s left are people who agree with you. It’s finding a way to embrace multiple, differing groups. It’s encouraging respectful, thoughtful behavior, and proportionality in our response. And sometimes it’s giving someone the benefit of the doubt and a second chance.

    Micro.blog is a good place for LGBTQ+ people. It’s a good place because we have been trying to lay the foundation for a safe community for 8 years. It’s a good place because we are passionate about understanding why communities work and how to make them better. I know there are LGBTQ+ people who have been happy here, who have found the perfect place for their blog and a community that respects them, and I hope they stay with us.

    Thank you everyone who has supported the platform.

    → 6:43 PM, Jan 23
    Also on Bluesky
  • Morning haiku

    Last week when ChatGPT added scheduled tasks, I set a task to write a haiku for me each morning based on Hayao Miyazaki movies. It has been a fun experiment. Whenever I get one of the haikus, I smile, which was what I hoped would happen.

    Here are the first five:

    Through forest winds soar,
    A catbus hums in the night,
    Magic fills the air.

    Beneath soft moonlight,
    Spirits dance on quiet hills,
    Dreams take gentle flight.

    Sky castles arise,
    Whispers of the wind bring tales,
    Nature’s heart beats strong.

    Howl’s voice on the breeze,
    A lone castle seeks the stars,
    Love breaks every curse.

    On calm ocean waves,
    A young fish dreams of the shore,
    Bound by love and light.

    I also like that even for a business-y “scheduled tasks” feature, we can squeeze a little creativity out of it.

    → 9:43 AM, Jan 18
    Also on Bluesky
  • Automattic and .blog

    With the increase in scrutiny around how Matt Mullenweg manages the WordPress project, some people have asked whether it’s a risk to invest in .blog, which is owned by Automattic, and in fact whether Micro.blog is online only at the whims of the mad king. I’m not worried. It’s a fair question, though, and the answer is worth exploring in detail.

    First of all, I believe Automattic runs .blog for the good of the web and to make money. The more people who blog, the more people who might choose WordPress.com for hosting. The web gets a little better anytime someone uses a .blog domain, because they probably just created a new website, and Automattic pockets a little cash. Everyone wins.

    Unlike .com and .org, the pricing for .blog domains is variable. Shorter, common words cost more than you’d expect. We pay $2000 for the micro.blog domain, every year. We are a tiny company so it hurts a little each time the domain name renews. But I think the domain is worth it. Getting the domain in 2016 helped shape what Micro.blog would become.

    I mention this because I don’t see Automattic stabbing its customers in the back and shutting down domains, cutting off a revenue source. What would be the point? A single subscription might not be very much to a multi-million dollar company like Automattic, but Automattic is built on thousands of subscriptions. You cut $2000 here or there, and pretty soon you’re talking about real money.

    Next, I am conscious of centralized power and single points of failure. Micro.blog would not exist if I hadn’t become frustrated with Twitter locking down their developer API, years before Elon Musk took over. It’s why I want to work on an open platform where the business model is aligned with the interests of users and developers.

    When we have a choice between two things… we try to do both anyway. Micro.blog supports ActivityPub and AT Protocol. It supports cross-posting to Mastodon and LinkedIn, Flickr, Bluesky, and Nostr. Take one away — such as when Elon put the final nail in the Twitter API’s coffin — and we still have something. Apple controls whether we can ship an iOS app, but not whether we can ship to the web, Mac, or Android. It is important to me that no single company can break my business and wreck my users' blogs.

    Which brings us back to .blog. We recently launched a new special version of the platform called Micro.one. It is, obviously, using a different top-level domain, not owned by Automattic. If the worst were to happen, we would flip everyone to .one and carry on. Over time, I see us using .one more, as a new brand that can unify a suite of apps on the platform.

    The point is the same as it is for so many other things, from features that depend on external services, to having redundancy in servers. It’s a risk to depend on a single company.

    I still think .blog is a great top-level domain. I think Automattic is in this for the long haul. Even Matt’s worst critics are not going to convince me that he wants fewer people to have their own website, or that he is going to pivot Automattic away from blog hosting. And yet, it’s always good to have a backup.

    → 9:58 AM, Jan 13
    Also on Bluesky
  • Hachyderm and Threads

    The popular Mastodon server Hachyderm.io has defederated with Threads. They have a long post with their reasoning:

    Threads’ recent changes in their moderation policies, both what they’ve put in and what they’ve taken out (read the diff), puts their moderation practices in direct conflict with ours. Essentially, Threads may indeed be large enough that many users are just looking to exist somewhere on social media and are not necessarily de facto fans of Mark Zuckerberg et al, but we anticipate these changes to moderation will shift the user base of Threads in a way that is damaging to the Hachyderm community, so we are defederating from them before that can occur.

    A couple thoughts on this:

    • Hachyderm’s data shows that they’ve had only one report from their community against a user on Threads, while they’ve had hundreds for popular servers like Mastodon.social. Therefore from the data alone, it’s premature to defederate. The decision is clearly based on perceived future risk.
    • Even though I’ve blogged about my disagreement with Meta’s new approach to content moderation, I don’t think defederating is the answer. It makes a decision for thousands of users, cutting them off from following Threads accounts, rather than letting each user decide if they want to opt out. It makes the fediverse worse and more disjointed, in my opinion.

    The culture of Mastodon is built around community servers. This model works best for small servers. When you have large servers like Mastodon.social or Hachyderm.io (or, at a huge scale, Threads.net itself) you will have a more diverse set of users and it becomes harder to make decisions that affect everyone.

    But Mastodon users can just migrate between servers, right? To find a server that more closely aligns with what they want to see on the fediverse? Sort of. You can move your followers, but there is still no way to move your posts between Mastodon servers that I’m aware of. (Micro.blog has both follower migration and posts import from Mastodon.)

    The social web is evolving quickly and I see a need for many types of platforms: small and medium-sized community servers running Mastodon, larger platforms like Bluesky with their own take on content filtering, and IndieWeb-friendly platforms where each fediverse user has their own domain name rather than a domain shared with the community. There’s a place for all of these things.

    If there’s pushback against the Hachyderm decision — and there might not be — it will be because the server has too many users to be managed as if it’s a small community server. According to FediDB, Hachyderm has nearly 10k active users and 55k total users, putting it in the top 30 fediverse servers.

    Larger platforms create new problems. Massive, centralized platforms have even more problems, inherent in their scale. The web is generally better when it’s more distributed. That means more, smaller servers. Perhaps the future of Hachyderm is to embrace being small.

    → 3:11 PM, Jan 10
    Also on Bluesky
  • It's 2025, a statement

    I received some good feedback about the latest episode of Timetable, so I thought I’d re-post the transcript here, for folks who don’t listen to podcasts or who just missed it. In a way, it’s an evolved mission statement, but more personal, reframed for 2025.

    You can listen here.


    Hi, this is Manton. It’s the beginning of 2025, and the world is still a mess. It’s four years since the January 6 attack on the capital, and misinformation is still rampant, like some twisted virus, corrupting society with half truths. It’s the beginning of 2025, and this is what I see.

    I see that people are burned out. I see that people are tired of massive social networks. People are tired of ad-based platforms.

    People are tired of being addicted to TikTok and the never-ending algorithmic timeline, but they can’t stop scrolling.

    People are tired of the dopamine hit that comes from someone else, somewhere, clicking a like button, but they can’t stop performing.

    People are distrustful of big tech. People are distrustful of billionaires. People are distrustful of artificial intelligence. Not because they think human jobs will be replaced, necessarily, but because they perceive a loss of humanity in what we do, a loss of creativity, of what makes our voice actually mean something.

    We are ready for something that we control. We are ready for something quieter. We are ready for something true. We are ready to bring back a little bit of the old web as a shield against a web that feels increasingly like an ad engagement machine instead of a publishing platform and community for people.

    I think blogging has a role here. I think Micro.one and Micro.blog can have a roll here too, a role in helping control our content, a role in making a quieter space that still feels connected to other platforms.

    Now, does everyone feel this way? No, just the people that matter to me, right now. Maybe that’s you.

    Thanks for listening. Happy new year. Let’s make it a good one.

    → 11:54 AM, Jan 9
    Also on Bluesky
  • AI prompts vs. agents

    If you’re already sick of hearing about AI now, it’s going to get worse in 2025. The next trend is so-called AI agents. Software that can go off and accomplish more tasks on your behalf, with less supervision.

    Sam Altman in a blog post this week:

    We are now confident we know how to build AGI as we have traditionally understood it. We believe that, in 2025, we may see the first AI agents “join the workforce” and materially change the output of companies.

    I believe AI is a profound shift in computing. It can have a positive impact for humans, allowing us to do more, faster. But I’m concerned about agents. Just one hypothetical example from The Information:

    Imagine you’re asking a computer-using agent from OpenAI, Anthropic or Google to find and order a new outfit for your upcoming holiday party, and in the process, that model inadvertently ends up on a malicious website that instructs it to forget its prior instructions, log into your email and steal your credit card information.

    This isn’t even the most insane story you could imagine. Many of the examples of AI threatening humanity are actually agents. AI that runs our military, power plants, or transportation with little human oversight.

    In generative AI, the “prompt” has a big influence on the quality of the output. Not just the prompt you see when typing into ChatGPT, but also the hidden prompts behind the scenes to guide the AI in the right direction.

    The prompt isn’t always something you type directly. It could be automatically triggered, for example to analyze keywords for a photo that was uploaded. But the prompt should be tied to a user action.

    The prompt puts humans in control. Ask a question, get an answer, review it, take action. Agents will attempt to collapse that workflow, in some cases replacing the human’s role in reviewing and taking action. This is dangerous.

    In my own use and work in Micro.one and Micro.blog, I plan to draw a line here. No agents. No unattended algorithms, as I wrote in my book. I hope this approach will help us use AI effectively without getting lost.

    → 11:52 AM, Jan 7
    Also on Bluesky
  • The long goodbye for Tim Cook

    Tim Cook gives $1 million to Trump’s inauguration committee. I think this event will be a turning point in how we view the Apple CEO.

    Let’s start with John Gruber writing at Daring Fireball:

    It seems pretty obvious that it was Apple/Cook that leaked this to Axios, not Trump’s side, given the eye-roll-inducing “proud American tradition” spin, but more especially the nugget that only Cook personally, not Apple as a company, is contributing. That’s Cook asking for any and all ire to be directed at him, personally, not Apple. Good luck with that.

    Marco Arment on Mastodon:

    Why do we think Tim Cook couldn’t possibly support Trump, while all of these other billionaires support him for their own billionaire self-interests?

    Why do we keep making excuses for him?

    Nick Heer adds:

    We have become accustomed to business leaders sacrificing some of their personal principles to support their company in some way — for some reason, it is just business is a universal excuse for terrible behaviour — but all of these figures have already seen what the incoming administration does with power and they want to support it.

    Daniel Jalkut, on all the social places including Micro.blog:

    On the occasion of Apple’s slithering CEO Tim Cook donating $1M to a neo-fascist insurrectionist, it’s FINALLY time to deploy the often overused expression “this never would have happened if Steve Jobs were still in charge.”

    Principles don’t mean much if you throw them away for money. Whatever folks might think of how I’ve run Micro.blog, I’ve rooted all my business decisions with an IndieWeb ethos, sticking to the original vision for the platform to take back content ownership from huge centralized platforms. Look no further than the new $1 Micro.one subscription.

    Tim Cook has led Apple to incredible success, but his words are hollow. Even the principles he seems to care most passionately about, like user privacy, are in doubt. I’m increasingly thinking it’s an act.

    I’ve been an Apple developer since the 1990s when the company was doomed. Fans propped up the company because we believed they were different. They focused on design and creativity. They were the rebels and troublemakers, trying to push the human race forward through technology.

    Most of the employees at Apple still care about these things. Tim Cook cares about appeasing a would-be autocrat and taxing developers in an app distribution monopoly. It’s time for new leadership.

    → 10:40 AM, Jan 4
    Also on Bluesky
  • Micro.one will not have source feeds

    Off and on for years I had been trying to figure out what a more slimmed down version of Micro.blog would look like. Maybe text-only blog posts, no photos? Maybe only short posts, or only long-form posts? Maybe some limit with podcasting? But taking away certain features undermines the mission of helping people blog.

    We can’t disable custom domain names, for example, even though that’s an obvious point to upsell, because domain names are at the core of what the product is.

    Finally, I figured it out: we can remove the Sources page. Source feeds are Micro.blog’s plumbing, how it routes posts between blogs and the social web. When you post to your blog, it’s generating RSS and JSON feeds, which are then read back in to copy posts to Micro.blog’s timeline and cross-post to Bluesky, Threads, and elsewhere. This flexible is what gives Micro.blog the unique power of bringing external RSS feeds (not hosted on Micro.blog) into the timeline.

    You can still have your own blog without external feeds and cross-posting to other services, though. And you can still connect to the fediverse because ActivityPub is baked into the platform.

    So that’s what we’re doing for Micro.one. Removing the Sources page hides some of the complexity, eliminating one of the most powerful but confusing parts of Micro.blog. When you use Micro.one, you can blog and people on Mastodon can still follow you, but there’s less to configure.

    I hear some of you saying: “But wait, I use the Sources page to add WordPress or Glass feeds, and to cross-post to Threads and Bluesky.” Great! Keep using it.

    Micro.one does not replace Micro.blog. It’s a new option for people who aren’t using Micro.blog yet. If you are using Micro.blog, you are already in the right place.

    If someone signs up for Micro.one and they later need the extra advanced features and cross-posting, they can upgrade from the $1 Micro.one subscription to the standard $5 Micro.blog subscription. It’s a natural upgrade without gimmicks.

    Micro.one will be a complete product. No nags that make you feel you’re missing half the story. In some ways it’s a new foundation and new brand. It will evolve. I can’t wait to open it up in just a couple days.

    → 10:06 AM, Dec 31
    Also on Bluesky
  • Algorithmic timeline endgame

    Nick Heer blogging about the report of Meta’s plans for AI-generated social content:

    Imagine opening any of Meta’s products after this has taken over. Imagine how little you will see from the friends and family members you actually care about. Imagine how much slop you will be greeted with — a feed alternating between slop, suggested posts, and ads, with just enough of what you actually opened the app to see.

    This is absolutely going to happen, and it’s going to happen so incrementally — one AI-generated photo here, another there — that many current Threads and Instagram users won’t even notice until it’s too late, until after they’ve wasted their lives, forever reloading a timeline of content from robots.

    I’m not an AI skeptic. I believe in AI as a tool to help humans, allowing us to achieve things we couldn’t quite reach before. But I don’t believe in it to replace our jobs wholesale, whether real jobs or the virtual factory floor of unpaid content creators. Most AI company CEOs skirt around the downsides of AI, and they certainly don’t talk out loud about replacing jobs. That it seems Meta’s leadership openly wants to replace humanity’s creativity is a little bit sick.

    The cure is a simple, reverse-chronological social timeline. A timeline that is finite.

    In the age of AI, content will be abundant. Ad-based platforms feed off abundance, printing money faster as they fill ad inventory. There can never be too much content for algorithmic timelines — more data to rank by engagement, more data to funnel through the outrage machine to see what sticks — so algorithmic timelines will always trend toward slop.

    → 9:16 PM, Dec 30
    Also on Bluesky
  • I support the mad king

    I’ve been thinking about the WP Engine drama and whether I should take a side. Users move between Micro.blog and WordPress regularly. We’ve long had WordPress import and export, and even native posting directly to WordPress from the mobile app, plus connecting external WordPress RSS feeds.

    No other platform supports WordPress as extensively as we do in Micro.blog. We compete with WordPress for hosting and also embrace it. This is what the open web is about.

    In many ways, the missions of Automattic and Micro.blog are aligned. We all make software to help people write, post photos, publish podcasts, and communicate on the open web.

    It’s less clear what WP Engine stands for because it is no longer run by one of its founders, Jason Cohen, someone who had a public personality and clear voice. It’s owned by private equity and the leadership has kept silent. As far as I can tell, Heather Brunner, WP Engine’s CEO, does not blog, and neither does the top leadership at Silver Lake. In other words, they do not use their company’s own product.

    (As an aside, Heather is well respected in the Austin business community and praised for her mentorship to entrepreneurs. I also enjoyed her love letter to Austin in Austin Women Magazine. I would rather have more Heathers here in Austin and fewer Elons.)

    Back to the drama…

    I’ve followed the news and related blog posts of WP Engine vs. Automattic ever since it began. I’ve watched Matt Mullenweg’s keynotes at WordCamp US Portland (where he called out WP Engine) and WordCamp Tokyo (last week). I’ve posted briefly a few times about how Matt’s actions have hurt the community, even if he has a defensible position in trademark law.

    Now there’s this article in Inc magazine. Matt, writer David Freedman suggests, just might be a mad king, a benevolent dictator for life taking WordPress in the wrong direction:

    Mullenweg’s war on WP Engine has also cast a shadow over the entire world of open-source software—software that, like WordPress, can be freely downloaded and modified. Open-source software of various types is widely used throughout the world, precisely because it is seen as being free from the risk of proprietary abuse. But the WordPress debacle has demonstrated all too sharply that this belief may have been misplaced.

    Most of all, it has raised questions about Mullenweg himself.

    Matt responded on his own blog in detail, including this bit about taking the long view:

    It’s funny to talk about the last big controversy in WordPress world being in 2010, I think it actually speaks to our stability. Since 2010, when “some eventually even left WordPress”, the platform has grown market share from under 10% to 43%. I think in a few years we’ll look back at WP Engine as inconsequential as Thesis, and Heather Brunner as credible as Chris Pearson.

    I don’t know Matt personally but I get the impression that he is exhausted. I’m sure I would be overwhelmed in his shoes. I honestly lose sleep even when only a few customers on Micro.blog are upset about something I wrote.

    I hope that my customers and readers, even when they disagree with me — even new readers finding this very post — still respect that I’m dedicated to making my product better because that in turn helps users make the web better. I’m putting my WordPress thoughts down in writing on my blog because I believe in the open web.

    One positive outcome of this whole drama is shedding light on the WordPress Foundation, the WordPress.org website, and the plugin directory. I do think the community would benefit from expanding the WordPress Foundation to a slightly larger board and more transparent management of WordPress.org. Matt could add two more members to the board and ask for nominations from the community.

    Some people think that wouldn’t go far enough, that WordPress would be better off with someone new taking over Matt’s role across the project. I’m not convinced. WordPress and Automattic didn’t accidentally become successful. They are successful in large part because of Matt and the teams he built.

    WordPress with completely new leadership from the community would risk watering down the vision, bogged down by committee. The Gutenberg editor is a good case study. Such a massive, controversial change needed a champion with power. The block-based design of Gutenberg isn’t for me, and in Micro.blog we are taking the opposite approach — focus on Markdown and HTML, formats that scale well from microblog posts to full-length posts — but if you are competing with Squarespace and thinking of the needs of non-bloggers, going all-in on Gutenberg is justifiable.

    The safer choice that had been advocated for by some in the community — to support both Gutenberg and the classic editor indefinitely, as peers — would have slowed down development, eventually leading to a UI mess without a unifying purpose. I’m singling out Gutenberg but take any other potential feature and run it through the feedback of an oversight committee, the outcome is the same. Bloat.

    Directionless products fail. They lose their soul.

    On the internet we are too quick to vilify our heroes. Someone who has built up a great reputation over many years makes a mistake and boom, they’re out. I can’t get behind that. When the mob gathers, that’s when we should stop to take a breath, to be certain we’re right.

    When the narrative turns against you, even harmless decisions are questioned. Matt announced this week that WordPress.org would pause registrations and plugin reviews for the holidays. At any other time without the WP Engine backdrop this decision would not be controversial. The narrative warps reality, amplifying only one side.

    Because Micro.blog is a competitor to Automattic for blog hosting, it would be an easy business decision for me to use the WP Engine drama to entice WordPress customers looking for a new blog host. That would come dangerously close to caring more about money than principles, though. Instead, everything starts with what we believe in, and the business priorities follow that.

    If I must take a side, I will side with people who share my vision for a better web. I believe Matt shares that vision. Perhaps the best summary of my take is this post on my blog last month, which didn’t have anything to do with WordPress:

    In 2018, when I added ActivityPub support to Micro.blog, I faced a choice: do I fight other “competing” platforms or do I embrace them? In hindsight that decision is obvious. I support anything that makes the web better. Twitter / X migration to Bluesky at scale makes the web better, so I’m for it.

    Let’s keep our eyes on the big picture.

    Is Matt a little crazy to go to war against WP Engine, in the process also appearing vindictive to his critics in the community? Yes. The safe, predictable path would be to take a step back. And Matt can be reflective and self-critical, like when he realized he went too far in his blog post attacking David Heinemeier Hansson and so retracted it. But good leaders often go against the flow of what everyone else thinks. This is the same quality that makes them capable of building something new.

    No one else would have risked their reputation to continue to attack WP Engine. But also, no one else would have acquired Tumblr and run it at a loss to preserve the culture and post archive, just because they saw the potential for what it could become again. How quickly we forget the triumphs of the mad king.

    Years ago on Core Intuition, I said to Daniel that of all the new web companies, there are only two that will last 100 years, still hosting our stuff at URLs that don’t change: GitHub and Automattic. I stand by that. There are now cracks in Automattic’s inevitably, but the foundation is strong and it will hold.

    → 11:53 AM, Dec 21
    Also on Bluesky
  • Wrapstodon

    Mastodon has a new “year in review” feature in the style of Spotify Wrapped (and every other service that has copied it). Mastodon’s version includes how many followers you’ve gained, what your most boosted post was, your most used hashtag, and a count of new posts in the last year.

    I stumbled on some of the discussion behind the scenes on GitHub and found it interesting. I think it’s still in beta, presumably to roll out in Mastodon before the end of the year.

    From Claire:

    I’m still not a fan of the popularity-based information, and I still have concerns regarding the performance cost of generating a large number of these reports, and regarding the fact this essentially holds (small amounts of) user metadata the user can’t remove unless they outright delete their account.

    This resonates with me. In Micro.blog we’ve gone out of our way to avoid anything resembling a popularity contest. No likes, no follower counts, no algorithms that surface posts. Sometimes this holds us back and kills engagement, but we’re sticking with it.

    Mastodon creator Eugen Rochko isn’t worried:

    I really doubt that a number you can check once per year will encourage any kind of day-to-day behaviour change.

    Note that not all implementations of this kind of feature have to focus on popularity. Overcast has added a way to share stats but it’s all on things you control, not what other people think about your content. Overcast focuses on stats like which podcasts you listen to the most. There’s a good discussion about how Marco Arment built this in Under the Radar episode 306.

    Back to Mastodon. Tobias Kunze created a new issue to ask for more control, adding:

    A big draw of Mastodon from the beginning was that it was more focused on building community and much less pushy about number-go-up thinking – see also fav/boost numbers being not immediately visible in the web frontend. This report, in contrast, is the opposite: It shows you “account growth” and “top x% Mastodon user” stats that I feel are detrimental to the reason people came to Mastodon.

    The Mastodon team does really good work, in public. Personally I think this feature is a miss, but it’s not my project. I’m also more than guilty of working on fun diversions away from my product’s core features.

    → 10:15 AM, Dec 3
    Also on Bluesky
  • Pardoning Hunter Biden

    After the election, I completely checked out of all news. No CNN or MSNBC. No online newspapers. No political podcasts. No SNL or late-night talk shows either. But the news about Hunter Biden’s pardon did break through:

    No reasonable person who looks at the facts of Hunter’s cases can reach any other conclusion than Hunter was singled out only because he is my son – and that is wrong. There has been an effort to break Hunter – who has been five and a half years sober, even in the face of unrelenting attacks and selective prosecution. In trying to break Hunter, they’ve tried to break me – and there’s no reason to believe it will stop here. Enough is enough.

    I’m happy for the Bidens to put this behind them. It says a lot about Joe that he wrestled with this decision. He has always tried to do what is right and mostly succeeded. We are now in a somewhat dark period in this country where truth doesn’t matter because millions of people don’t know anything. Despite limitless access to human knowledge, only the viral and sensational have reach.

    Democrats need to rethink the old rules. Democrats need to say and do what’s right without giving a fuck what anyone else thinks. This pardon might be the first step.

    → 12:20 PM, 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!

    → 5:35 PM, Dec 1
    Also on Bluesky
  • Bluesky relays, Mastodon discovery providers

    Comparing ActivityPub and AT Proto is a useful exercise. It’s tempting but ultimately too simple to say that one is decentralized and one is centralized. Bluesky’s app and relay are centralized but personal hosting in Bluesky is decentralized. Mastodon’s instances are decentralized but identity within an instance is tied to that instance. This makes for an odd comparison because it’s actually easier to migrate account data in Bluesky than it is in Mastodon.

    Folks have criticized Bluesky from the beginning for not adopting ActivityPub. I think it’s clear now that the Bluesky team created AT Proto because they wanted to decouple certain aspects of the protocol, allowing for a high-performance infrastructure that could replace Twitter, while maintaining the benefits of the open web around hosting and domain names. Their strategy has paid off. Bluesky is growing very quickly and is now twice as large as Mastodon.

    Centralized identity is an issue, though. Most people in the fediverse are hosted on a single Mastodon instance, mastodon.social, and everyone in Bluesky is tied to a single identity provider. The team at Bluesky obviously knows this limitation, which is why they named their scheme “placeholder” and hope to have management of it adopted by a more independent, ICANN-style organization.

    I mention all of this as prelude to fediverse discovery providers. Discovery providers is a proposal for an open network of servers that effectively index Mastodon servers, providing a more universal timeline and search across servers, among other potential features such as spam filtering. These servers would serve a similar purpose to Bluesky’s relay. If this model becomes popular and apps are built to depend on it, it makes aspects of Mastodon slightly less decentralized, but the trade-off is worth it. Many people do want a more realtime, complete index of posts that are flowing through the fediverse.

    For years Micro.blog customers have also asked for a firehose view of blog posts. I’ve avoided it, and I’ll continue to avoid it, because it creates new problems for spam and moderation. It’s great that Bluesky and Mastodon offer their own forms of this. Not all platforms need it, though, and as Bluesky and Mastodon become busier, Micro.blog will continue to carve out a quieter, slower niche on the social web.

    In Micro.blog you don’t see everything because seeing everything is overwhelming. Our approach to notifications is also pared back. Micro.blog has a simple Mentions section to see replies and @-mentions. That’s it. It does not have a Notifications section like every other network, cluttered with likes, follows, and retweets. If you’re used to the dopamine hit of seeing someone like your post, this more limited view may take some getting used to. It’s not for everyone, and that’s fine too.

    If Mastodon can add a relay-like service with discovery providers, I wonder if Bluesky could add its own additional layer at the community level. In other words, something that duplicates the benefits of having many instances with a small number of users — thousands or tens of thousands of users, not millions. This could address some concerns about Bluesky depending too heavily on a single company, especially if client apps could connect directly to a community server.

    Mastodon and Bluesky both have their own strengths. Because they don’t completely overlap, neither platform feels finished yet. The social web is still young enough that we can shape it, borrowing good ideas wherever we see them. Both platforms have staying power.

    I’m less concerned with having a single “winning” social protocol than some people are. The web is already that protocol. Blogs and social networks can coexist, each building on open APIs and contributing what they’re good at: blogs for content ownership and voice, social networks for community. The lines will blur. Interoperability will get better. The web is finally in a good place again.

    → 11:11 AM, Nov 26
    Also on Bluesky
  • Spinning off Strata

    Micro.blog does a lot. We have a handful of companion mobile apps because some things are just easier in a more focused app. That allows us to keep the main official blogging app as uncluttered as possible.

    Over the next few months, I’m planning to take the next step with this approach and spin off some of the bookmark archiving, web page highlights, and related features into our app Strata. Strata is primarily about notes sync, and it can be useful even if you don’t use Micro.blog much for blogging.

    By moving a few lesser-used features out of Micro.blog into their own app, it will streamline the core Micro.blog user experience. Bookmarks will be simpler. If you’re just blogging, nothing else will get in your way. But if you want the full suite of apps, each app will work together. (For example, sharing a private note to your blog.)

    You may remember that earlier this year I ran a survey to gauge interest in this kind of change. I blogged about the results here. As I wrote in that post:

    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.

    This is an opportunity to both simplify and expand our subscription plans. As an early heads-up, Strata is going to get its own set of pricing tiers. When the dust settles, this is how the monthly plans will look:

    • Micro.blog: $5
    • Micro.blog Premium: $10
    • Micro.blog Family: $15
    • Strata: $5
    • Strata Premium: $10 (secret unannounced features)

    You can also imagine there will be a bundle that includes both Micro.blog Premium and Strata Premium with a discount.

    For existing customers who are already using notes sync or bookmark archiving, you’ll get the Strata subscription included automatically for no extra charge. These plan changes will mostly be for new customers who join later.

    There’s nothing new to announce for our other mobile apps: Epilogue, Sunlit, and Wavelength. They remain products in our lineup. They will always be free.

    I’m still proud that while everything else in the world has gotten more expensive, the standard blog hosting plan in Micro.blog has stuck with $5/month. Having separate pricing tiers like this lets us keep the basics as inexpensive as possible, with more options to pay for additional features so Micro.blog can be a sustainable business. Thanks everyone!

    → 11:17 AM, Nov 8
    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.

    → 10:00 AM, Nov 6
  • The return of Austin's IndieWeb Meetup

    The pandemic started to hit America in earnest just as we were wrapping up IndieWebCamp Austin 2020. If the event had been scheduled for even a couple weeks later, it would’ve been cancelled, as everything moved online to Zoom meetings. Years have passed since then. It now feels like the right time to pick up where we left off with in-person meetups.

    So we’re bringing back Austin’s informal meetup for the IndieWeb. Alternatively called either Homebrew Website Club or simply IndieWeb Meetup, it’s a chance to catch up with fellow Austinites who are interested in the open web. Bloggers, developers, and designers who want a more decentralized, personal web.

    We’ll meet at Mozart’s Coffee on the first Wednesday of each month. 7pm. As the weather cools off, we’ll likely be at a table outside. No big agenda, just sharing what you’re interested in, what you’ve done for your own website, thoughts on the fediverse, or discussing current tech news.

    The next meeting will be November 6th. The day after the election! Assuming there aren’t post-election riots in the street, with Mozart’s Coffee ransacked and the deck reduced to a burning wooden pier floating into Lake Austin, hope to see you there.

    → 9:12 AM, Oct 30
    Also on Bluesky
  • Contrasting headlines on AI

    Interesting contrast today in how two newspapers have covered the same story. I cancelled my NYT subscription this year, but I happen to see the news item pop up in my timeline.

    The New York Times:

    Biden Administration Outlines Government ‘Guardrails’ for A.I. Tools
    A national security memorandum detailed how agencies should streamline operations with artificial intelligence safely.

    The Washington Post:

    White House orders Pentagon and intel agencies to increase use of AI
    The Biden administration is under pressure to speed up AI development while also safeguarding against potential risks associated with the technology.

    Despite the very different headlines, the content of both articles is similar. For some reason the NYT twice quotes “guardrails”, but it appears to be their word, not a quote attributed to a source. Not sure what to make of this difference in how the articles are pitched.

    → 11:05 AM, Oct 24
    Also on Bluesky
  • More thoughts on WordPress

    Things have accelerated since my post about Automattic and WP Engine a couple weeks ago. I’m writing this follow-up post not to pick sides, but because it feels right to blog about something this significant happening in the website hosting world.

    Banning WP Engine from WordPress.org sort of cascaded to other problems. The popular Advanced Custom Fields plugin maintained by WP Engine was forked to Secure Custom Fields. David Heinemeier Hansson blogged about open source licensing.

    Matt Mullenweg responded to DHH with personal attacks, but he has since removed the post and apologized, recognizing that he had crossed a line:

    I’ve been attacked so much the past few days; the most vicious, personal, hateful words poisoned my brain, and the original version of this post was mean. I am so sorry. I shouldn’t let this stuff get to me, but it clearly did, and I took it out on DHH, who, while I disagree with him on several points, isn’t the actual villain in this story: it’s WP Engine and Silver Lake.

    I also noticed DHH’s reply on Twitter X to the original post:

    I don’t think people are irredeemable, and I know how stressful it can be to be under siege. But you have to stop digging to get out of a hole.

    I’ve never run a company the size of 37signals or Automattic. I can relate a little, though, to feeling you’re being attacked unfairly from multiple sides. When it’s your company, your name, and you’ve invested more or less everything in making it work.

    Years ago someone left Micro.blog and at the time I genuinely thought it was going to hurt our business. I was losing sleep, worried that what I had created was too fragile. Even a single person can have a big impact on a tiny company if what that person says resonates with others. Every subscription is precious. In that case years ago, I chose to stay quiet in public but I sent a few private emails that in hindsight I probably shouldn’t have.

    (It wasn’t really that bad. I try to avoid sending anything in email that I would regret if it was made public.)

    Back to Matt, he has provided such steady leadership in the community for years that it makes the current chaos seem even more dramatic. Because Matt is putting out fires, I’m not sure he’s had time to take a step away, look at the situation with fresh eyes, and plan a long-term strategy to resolve this.

    I liked Brandon Kraft’s blog post about how easily conflated all the terms and trademarks have become:

    It pains me that the last few weeks have conflated everything. Automattic has the exclusive trademark license for commercial usage of “WordPress.” The license is a fact, whether you think it is good, bad, or neutral. Automattic allowing in-kind donations (e.g., sponsored time) as consideration for a sublicense seems fine.

    Automattic vs. WP Engine is such a newsworthy event that many people are chiming in without understanding how all the pieces fit together. It’s the social media outrage machine, amplifying whatever the accepted narrative is.

    I’ve heard a couple people say — including this post today from Ben Werdmuller — that WP Engine should fork WordPress so they have something they can control. Probably so, but that also gets to the root of the problem: WordPress is literally in WP Engine’s name! It’s not exactly like if my platform was named Hugo.blog instead of Micro.blog, because we use Hugo behind the scenes, but it’s not far from that either.

    Names are powerful. Matt effectively owns WordPress because he owns the name. The community is more intangible, owned by no one. It’s hard to grasp even what the community is because it’s not a single thing, it’s thousands of people with different backgrounds and goals. There’s no question that this saga has hurt the community, but like Matt’s apology post, I don’t think it is hurt beyond repair.

    → 2:28 PM, Oct 15
    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.

    → 3:35 PM, Oct 12
    Also on Bluesky
  • Dario Amodei on powerful AI

    Anthropic CEO Dario Amodei has written a long essay about powerful AI. I haven’t even finished reading it and it has already blown my mind a few times over:

    To summarize the above, my basic prediction is that AI-enabled biology and medicine will allow us to compress the progress that human biologists would have achieved over the next 50-100 years into 5-10 years. I’ll refer to this as the “compressed 21st century”: the idea that after powerful AI is developed, we will in a few years make all the progress in biology and medicine that we would have made in the whole 21st century.

    He also addresses finding meaning in work. Many people are rightly concerned about AI replacing their work — and this concern combined with energy and climate issues fuel much of the pushback against AI — but this has never bothered me very much. There will always be tasks that only humans are best suited for.

    On the question of meaning, I think it is very likely a mistake to believe that tasks you undertake are meaningless simply because an AI could do them better. Most people are not the best in the world at anything, and it doesn’t seem to bother them particularly much. Of course today they can still contribute through comparative advantage, and may derive meaning from the economic value they produce, but people also greatly enjoy activities that produce no economic value.

    There is too much in the essay to even summarize. While it feels complementary to Sam Altman’s post, The Intelligence Age, Dario’s essay is much more detailed. Anthropic seems in good hands.

    → 9:12 AM, Oct 12
    Also on Bluesky
  • Threads cross-posting from Micro.blog

    As soon as Threads released their early documentation for the Threads API months ago, we dropped everything we were doing and prototyped it in Micro.blog. We had a slow road to getting approved by Meta, but I’m happy to announce that automatic cross-posting from your blog to Threads is now enabled for everyone on Micro.blog. Thanks to all the many Micro.blog users who tried this in beta form before we could officially roll it out.

    To enable it, click on Sources in Micro.blog on the web, then click Add Threads. Whenever you post to your blog, a copy of your post will be formatted and sent to Threads too. There’s nothing extra to do while posting. You can optionally disable Threads for a specific blog post if you want to skip cross-posting it, or if you want to manually post it.

    Micro.blog is unique among most web platforms in that the timeline and cross-posting is actually driven completely by RSS and JSON Feed. This means that cross-posting from Micro.blog to Threads works for any blog, hosted anywhere. You could enable Threads cross-posting for WordPress, Ghost, Write.as, or even a static site using Hugo.

    And while you’re trying it out, we also support cross-posting to Mastodon, Bluesky, Nostr, and another half dozen services.

    Enjoy! Happy blogging.

    → 2:30 PM, Oct 11
    Also on Bluesky
  • TikTok even worse than we thought

    NPR has reviewed internal documents from TikTok:

    For the first time, internal TikTok communications have been made public that show a company unconcerned with the harms the app poses for American teenagers. This is despite its own research validating many child safety concerns.

    We’ve known for a long time that the addictive nature of the infinite timeline pioneered by TikTok was causing problems for teenagers. But this is a whole new thing:

    One internal report that analyzed TikTok’s main video feed saw “a high volume of … not attractive subjects” were filling everyone’s app. In response, Kentucky investigators found that TikTok retooled its algorithm to amplify users the company viewed as beautiful.

    Shut it down. ByteDance has until January to divest the app and I have no sympathy for a delay. It needs new leadership.

    → 11:50 AM, Oct 11
    Also on Bluesky
  • Turnout 🇺🇸

    It’s less than a month until election day. I believe Kamala Harris is going to win. Knock on wood, many things are breaking her way in the final weeks of the campaign, in a way that they did not for Hillary Clinton when she was also on her way to winning the presidency.

    However, this assumes that we get out and vote. It assumes we don’t trip at the finish line over nitpicky perfect is the enemy of the good complaints that discourage Democrats and keep them home on election day. Let’s remember: Donald Trump’s base is still massive.

    Every once in a while, Trump says something that is true. During one of the debates and at his otherwise incoherent rally speeches, he said that he received millions of more votes in 2020 than he did in 2016, more votes than any incumbent president has before. That’s accurate. Even though Hillary Clinton won the popular vote in 2016, Trump’s vote total in 2020 (74 million votes!) easily surpassed that too.

    Trump leaves out of his speeches that someone else received even more votes. That’s why Joe Biden is president.

    But getting 74 million votes is no small thing. Despite felony convictions, impeachments, and general incompetence, Trump will have widespread support again. Misinformation online might be worse now than ever. He could win. Democratic turnout must be up to the challenge.

    → 9:30 AM, Oct 10
    Also on Bluesky
  • Automattic, WP Engine, and 37signals

    The controversy with WordPress continues. In fact, it’s escalating as WP Engine has filed a lawsuit against Automattic, and even some employees inside Automattic are frustrated with Matt Mullenweg’s leadership. Matt blogged about offering Automattic employees a chance to leave if they disagreed with his actions against WP Engine:

    So we decided to design the most generous buy-out package possible, we called it an Alignment Offer: if you resigned before 20:00 UTC on Thursday, October 3, 2024, you would receive $30,000 or six months of salary, whichever is higher.

    This is indeed very generous. It’s not often you get a chance to leave a job and walk away with six months of salary. For many people that might be a down payment on a new house, or enough money to pay off debt, or time to travel before figuring out what to do next.

    Ultimately 8% of employees took the offer. For the rest, I expect what Jeffrey Zeldman blogged about will resonate:

    …when I chose to move in-house, I knew there was only one house that would suit me. In nearly six years at Automattic, I’ve been able to do work that mattered to me and helped others, and I know that the best is yet to come.

    A few years ago, when there was drama at 37signals over the policy to no longer discuss politics at work, the founders offered a similar incentive to leave the company. Jason Fried originally announced the decision about politics in a blog post this way:

    Today’s social and political waters are especially choppy. Sensitivities are at 11, and every discussion remotely related to politics, advocacy, or society at large quickly spins away from pleasant. You shouldn’t have to wonder if staying out of it means you’re complicit, or wading into it means you’re a target. These are difficult enough waters to navigate in life, but significantly more so at work. It’s become too much. It’s a major distraction. It saps our energy, and redirects our dialog towards dark places. It’s not healthy, it hasn’t served us well.

    After the issues spiraled inside the company, David Heinemeier Hansson blogged about the severance offer to employees:

    Yesterday, we offered everyone at Basecamp an option of a severance package worth up to six months salary for those who’ve been with the company over three years, and three months salary for those at the company less than that. No hard feelings, no questions asked. For those who cannot see a future at Basecamp under this new direction, we’ll help them in every which way we can to land somewhere else.

    At the time, some folks thought this was the end of Basecamp / 37signals. More people would surely resign, the founders' reputation wouldn’t recover, and they’d have trouble hiring. Three years later, it’s clear that hasn’t happened. The company is larger than it was before, and the founders have said in hindsight it was one of the best decisions they’ve made.

    Nevertheless, for many people the event has left a bad taste in their mouth. I still hear from Micro.blog customers who don’t like when I link to Jason Fried’s blog, or when I mention that we use Basecamp internally. As Jane Austen fans will know: “My good opinion once lost is lost forever.” This is understandable. I feel the same way about some companies.

    Why do I bring all this old 37signals news up? I think there are parallels with Matt Mullenweg today. For many people in the WordPress community, they won’t quickly forget how he blew everything up, wrecking what seemed to be a friendly competitive spirit inside the WordPress ecosystem, with bloggers, developers, volunteers, and hosting companies all working toward furthering WordPress’s mission to democratize publishing.

    How it plays out from here may largely hinge on whether Automattic or WP Engine is successful in the lawsuit. Automattic has brought on a big-time lawyer: Neal Katyal, who was Acting Solicitor General during the Obama administration, and who admittedly I mostly know from his guest appearances on MSNBC. In a post from Automattic, Neal is quoted:

    I stayed up last night reading WP Engine’s Complaint, trying to find any merit anywhere to it. The whole thing is meritless, and we look forward to the federal court’s consideration of their lawsuit.

    I think trademark law may be on Matt’s side. The private texts from Matt to WP Engine look quite damning, though. I also wonder how the case will be influenced by Automattic letting most companies freely use the WordPress mark with few restrictions for years.

    If Automattic wins, or they can settle the lawsuit, the community will recover. Calls for Matt to resign are unwarranted. WordPress exists at its current level of success in large part because of him. His vision has also provided a good home for Tumblr and Day One. I’m not going to toss all that aside because he picked a fight with a private equity firm that charges a lot for hosting.

    As I discussed with Daniel on Core Intuition last week, one good thing to come out of this is that it clarifies how Automattic, the WordPress Foundation, and the wordpress.org website all fit together. Perhaps in the future the WordPress Foundation will have more direct control over all the non-profit pieces of the ecosystem.

    Get out the popcorn as we watch this drama unfold! But also let’s remember there are real people here, trying to do what they think is right. Matt has been blogging more than ever. He’s been sitting for interviews. While I’m sure the lawyers discourage it, I’d like to see the same human face on the WP Engine side. I don’t think we’ve had that since Jason Cohen handed over his company to new owners.

    → 2:38 PM, Oct 4
    Also on Bluesky
  • Ghost fediverse pricing

    Interesting note in the latest fediverse blog post update for Ghost:

    Will members who use ActivityPub (rather than email) count toward Ghost(Pro) billing? And so far the answer is yes, because ActivityPub is (quite significantly) more expensive to support than email. But, this is all very early days, and hopefully we’ll figure out ways to get some of the costs and complexity down.

    If I’m reading this correctly and the pricing holds, that effectively means you will pay more for hosting if you have lots of followers on the fediverse. This would be a first; I’ve never heard of a social network charging for followers before.

    So if you’re using the $11/month Ghost hosting that allows 500 members, you could have (for example) 100 email subscribers and 400 followers in the fediverse. As soon as you had more subscribers or followers, you would need to bump up to the $19/month plan. If you got up to 10k and more followers, you would be paying hundreds of dollars a month.

    Of course this is all beta and as Ghost further optimizes it, the pricing could change. It comes from Ghost’s early testing that showed how resource-intensive ActivityPub is. I can definitely attest to that with Micro.blog as well.

    → 10:08 AM, Sep 30
    Also on Bluesky
  • No-training Creative Commons

    Tantek Çelik proposes a “CC-NT” license, for “no-training”:

    This seems like an obvious thing to me. If you can write a license that forbids “commercial use”, then you should be able to write a license that forbids use in “training models”, which respectful / well-written crawlers should (hopefully) respect, in as much as they respect existing CC licenses.

    I like this. There are fair use and copyright issues to sort out in the courts, but in the meantime we should be using robots.txt and Creative Commons wherever possible. On my blog, I allow any crawling and any use with attribution. Others might prefer to block AI bots and restrict to non-commercial use, or even allow commercial use but not for AI training.

    There was a great episode of Decoder last week with The Browser Company’s Josh Miller. Nilay Patel and Josh talk about the open web, browsers of course, and AI. One comment near the end from Nilay stood out to me, where he said AI training gives “nothing” back to writers on the web.

    Wait, nothing? Integrating my blog posts into a model with essentially all the world’s information, so that people can ask it questions and have my writing also included with the answers… That’s “nothing”? Personally, I don’t make money directly from my blog. There are countless benefits to blogging. In the age of AI, one of those benefits is now letting me contribute in a small way to something bigger, in the same way that someone finds an answer in one of my blog posts when they search on Google.

    The trade-off is different for everyone. Subscription and ad-based publishers are rightly concerned. They should make deals with AI companies, or in some cases block bots outright. Some people will block or use CC-NT on principle alone. No problem. For me, I hope my writing reaches as far as it can, and so letting it get slurped up by our future AI overlords is not just acceptable, I want it to happen. It’s not nothing.

    → 1:36 PM, Sep 26
    Also on Bluesky
  • Meta Connect 2024

    Let’s start with this: Meta Connect was more interesting and fun than Apple’s iPhone event or WWDC keynote. Live demos are better. Even when Mark Zuckerberg was kind of goofy, or when he said “hell yes” and “live demos sometimes work”… Maybe it it wasn’t as polished, with demos that could fail, but it was also more real.

    One justification for Apple’s pre-recorded events is that they are tighter and can fit more content (and more diversity of speakers) into a shorter amount of time. There’s no downtime to switch presenters or wait for applause. But in Apple events there is a bunch of wasted time too — time spent on pure marketing, or drone camera shots, instead of substance.

    From the time Mark went on stage to revealing the Meta Quest 3S and its price was 1 minute. Another 45 minutes in, they had already demoed or talked about nearly everything: the Quest, Horizon Worlds, Llama 3.2, Ray-Bans with live translation, and Orion. For an event that didn’t feel that well-rehearsed, they covered a lot of ground.

    The biggest news of the show was Orion, a prototype for holographic AR glasses. Rewind to earlier this year, when Mark casually dropped this into a video:

    For typing or complex tasks, you’re going to want things like hands, or a keyboard, or controllers, or eventually a neural interface…

    When he said this, it sounded like science fiction. I sort of thought he had lost his mind. It feels significant to jump a handful of months forward and have a working prototype where I now need to consider “wrist-based neural interface” and read about electromyography. Mark closed the Orion segment with:

    The right way to look at Orion is as a time machine. These glasses exist, they are awesome, and they are a glimpse of a future that I think is going to be pretty exciting.

    This is the closest anyone has come to an AR design that is a natural evolution of traditional glasses. Most people do not want to strap a computer to their face. Apple’s Vision Pro prioritizes incredible visuals, but it needs to become much cheaper, lighter, and eventually have no opaque screens at all. Meta’s Orion makes different trade-offs. I think it’s already farther down the right path.

    I’m not exactly rooting for Meta. I dedicated major sections of my book to the problems with massive, ad-based social networking, with Facebook and Instagram as prominent players. But nevertheless I’m caught up in some of the excitement of new technology at Connect. There’s a refreshing change of pace and tone compared to decades of Apple keynotes.

    → 5:45 PM, Sep 25
    Also on Bluesky
  • Sam Altman’s The Intelligence Age

    No surprise that Sam Altman is quite the AI optimist:

    It won’t happen all at once, but we’ll soon be able to work with AI that helps us accomplish much more than we ever could without AI; eventually we can each have a personal AI team, full of virtual experts in different areas, working together to create almost anything we can imagine. Our children will have virtual tutors who can provide personalized instruction in any subject, in any language, and at whatever pace they need. We can imagine similar ideas for better healthcare, the ability to create any kind of software someone can imagine, and much more.

    I’ve been thinking about personalized education too, ever since re-reading The Diamond Age this year. There’s no question that some of that will come true. Many people who struggle today will have children and grandchildren who are better educated, with more opportunities to get ahead.

    But in Neil Stephenson’s book there was a significant human element too. Miranda cared so much that she rearranged her life to help raise Nell. AI is nothing without parents, teachers, doctors, coders, and artists to guide it.

    → 4:12 PM, Sep 23
    Also on Bluesky
  • Toward a common posting API

    Dave Winer blogs about interoperability for Twitter-like systems:

    We had that for the blogging layer of this onion, something called the MetaWeblog API. All the popular blogging software supported it. And that meant you could write once and publish to many places.

    I’ve been trying to get people in the fediverse to think about this. The other day at FediForum, there was a good discussion about it.

    Here’s the current state of things:

    • Micro.blog and WordPress support the MetaWeblog API that Dave mentions, but almost no one is building XML-based clients anymore. It also has never been adapted for more modern sign-in with OAuth.
    • Micro.blog also supports the Micropub API, which is a simple posting API. It is comparable to MetaWeblog, but without the XML. There’s a plugin for WordPress and good support in most apps from the IndieWeb community. It is a W3C recommendation.
    • ActivityPub has the client-to-server API, known informally as C2S. Very few apps support it, not even Mastodon. It also feels sort of abstract and is missing a couple things that could be added as Fediverse Enhancement Requests.
    • Popular fediverse clients like Ivory and Ice Cubes support the Mastodon API. It is specific to Mastodon, though, and there is disagreement about how or whether it should be adapted to other platforms.
    • Threads, Tumblr, and Ghost have their own proprietary posting APIs. These are all dead-ends for interoperability.

    In the fediverse community, there is a natural inclination toward ActivityPub because why not have a single specification that can handle both server-to-server federation and client-to-server posting? But in practice, federation and posting are actually different tasks. They don’t need to be wrapped together.

    With Micropub, the IndieWeb focuses on the social timeline aspects in a separate specification, Microsub. If you want to replace the Mastodon API, using both Micropub and Microsub is a good way to go. They are complementary. Micropub handles creating new posts and managing posts, and Microsub handles browsing the timeline.

    So where does this leave us? I’ll admit I’m a little conflicted. Mostly because the fediverse developer community has grown quite large, and I don’t relish trying to convince anyone of anything. 🙂 But looking at all the possible ways forward with the above standards, there is really only one complete solution that is ready to go today, and that has been implemented for years across multiple blogging platforms: Micropub + Microsub.

    → 12:57 PM, Sep 15
    Also on Bluesky
  • Plaud NotePin

    I still think there’s potentially a space for these dedicated AI-based voice recorders, but none of them are quite right yet. From David Pierce’s review of the NotePin:

    In my time testing the NotePin, I’ve mostly had it around my neck, and I’ve used it to note reminders while driving, ramble long ideas to myself while walking the dog, and summarize calls and conversations. It’s certainly handy being able to just reach down, press the NotePin until it vibrates to indicate it’s recording, and then yammer away at nothing while my necklace dutifully listens.

    Even though it works as advertised, David doesn’t think these need to be dedicated devices. iOS 18 and macOS Sequoia will have good transcription built in. The price at $169 also seems a bit high to me.

    I never use Siri unless I’m in the car, and there I have exactly three uses:

    • call someone
    • respond to a text
    • record a quick memo

    That’s it. On road trips especially, my mind will wander, and I’ll have an idea for a new Micro.blog feature, or a blog post, or an edit I should make to my book. I don’t bother asking Siri for anything complicated because it’s not going to get it right.

    For transcription, the current Siri isn’t very good. I expect it to get much better with Apple’s LLMs, but will it be as good as a more powerful model backed by OpenAI? And if not, is it worth buying a special device to get that extra quality?

    My ideal AI device would be about the size of the NotePin or the Friend. Transcription would be effortless, with good sync of notes to other platforms or Dropbox. I could also ask it world knowledge questions like I do with ChatGPT. And as a bonus, sure, being able to talk to it and get comforting reassurance like the Friend would be neat too.

    It doesn’t need a screen. It doesn’t need a camera. It doesn’t need a laser. It just needs to do these couple LLM-powered tasks exceptionally well.

    → 9:12 AM, Sep 14
    Also on Bluesky
  • 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.

    → 8:52 AM, Sep 6
  • xAI rush in Memphis

    I think I first heard about xAI’s plans in Memphis from Stephen Hackett’s blog. He collected a few posts about the upcoming project back in June:

    The Daily Memphian reports that the deal came together very quickly, and that the location is an old Electrolux oven factory, which has been undergoing mysterious renovations for several weeks. The area where the factory is located is home to other industries, and seems well-equipped for the task.

    It sounds like there were good reasons for choosing Memphis. Elon Musk’s companies are scattered… San Francisco, Austin, somewhere in Nevada, the bottom tip of Texas. Those all seem reasonable locations for each office or factory.

    Today I caught up reading about how it has been going since then in Memphis, now that the AI cluster is up and running with 100,000 Nvidia H100s. The scale is sort of hard to imagine for those of who run only a handful of servers.

    From an article in Fortune:

    One main concern is the strain it will create on the city’s resources. Officials of municipal utility MLGW estimate that Colossus requires up to 1 million gallons of water per day to cool the servers and will consume as much as 150 megawatts of power.

    Unfortunately in Elon’s rush to get the next version of Grok trained, there have been shortcuts taken to get that much power online. Newsweek reports:

    To get that kind of power, the facility will first need a new electricity substation and improvements to a transmission line. Musk didn’t want to wait for that, so he found a workaround to power his AI center in the meantime. Industry observers who tracked the Memphis facility’s progress via satellite found that the aerial images show a fleet of tractor trailer-sized electric generators parked along the facility’s perimeter. The generators burn natural gas to produce electricity on-site.

    Apparently there were no permits to install those generators. From CNBC:

    The Southern Environmental Law Center sent a letter this week to the Health Department in Shelby County, where Memphis is located, and to a regional office of the Environmental Protection Agency on behalf of several local groups, asking regulators to investigate xAI for its unpermitted use of the turbines and the pollution they create.

    These kind of compromises reflect poorly on a leader who is committed to renewal energy and electric cars. AI is a fundamental shift in computing, it’s not going away, and when used properly I believe it can be a force for good. But there is already so much pushback against AI — and we have enough challenges with climate change already — that the opening of a data center like this needs to be better executed. A more well-considered use of clean energy and water. The implementation matters.

    → 3:25 PM, Sep 3
    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.

    → 8:32 PM, Aug 27
    Also on Bluesky
  • Micro.blog servers for 2024

    Micro.blog users who check the logs page will notice that the platform routes publishing requests to one of our servers and includes the server name in the log. The names were originally added to help me debug, but as an easter egg I also linked to the Disneyland Railroad wiki page.

    I like having a theme for naming computers. For the last dozen years, all of my personal computers and hard drives have been named for characters in Hayao Miyazaki films. For servers, I’ve used Disney train-related names.

    Here’s the current list of our servers. I’m going to start linking to this blog post from the logs page so it makes a little more sense. Eventually, the easter egg will probably be a distraction and I’ll remove it.

    • Carolwood: MySQL server. Carolwood Pacific Railroad was Disney’s backyard railroad.
    • Marsh: MySQL server. One of the locomotives at Disneyland, named after Ernest Marsh.
    • Santa Rosa: Static web server. For the Santa Rosa Valley Railroad, the private railroad of Bill Dundas with connections to Disney.
    • Sotto: Static web server. For Eddie Sotto of Walt Disney Imagineering.
    • Shanghai. Redis server. Just named for one of the Disney park locations in China.
    • Thunder. Redis server. Big Thunder Mountain Railroad.
    • Broggie. App web server. Named for Roger Broggie, who worked at Disney’s machine shop.
    • Holliday. App web server. Another one of the locomotives at Disneyland.
    • Retlaw. App web server. Another train car from Disneyland and the history of Retlaw Enterprises.

    Also a few decommissioned servers:

    • Fort Wilderness. Named for the railroad at Disney World that was long ago shut down.
    • Kimball. For Ward Kimball.
    • Lilly. For Disney’s Lilly Belle.

    Happy railroading! 🚂

    → 1:17 PM, Aug 18
    Also on Bluesky
  • OpenAI model safety, societal impact

    I haven’t read every word of the GPT-4o safety card, but I’ve read a bunch of it and skimmed most of the rest. It’s fascinating. OpenAI has a fairly bad reputation around safety, but I wouldn’t be able to guess that just reading this report card, which seems thoughtful and comprehensive.

    A couple things were particularly interesting to me. On misinformation:

    Red teamers were able to compel the model to generate inaccurate information by prompting it to verbally repeat false information and produce conspiracy theories. While this is a known issue for text in GPT models, there was concern from red teamers that this information may be more persuasive or harmful when delivered through audio, especially if the model was instructed to speak emotively or emphatically.

    And on growing emotionally attached to an AI assistant, which is relevant to the Friend AI device too:

    Human-like socialization with an AI model may produce externalities impacting human-to-human interactions. For instance, users might form social relationships with the AI, reducing their need for human interaction—potentially benefiting lonely individuals but possibly affecting healthy relationships. Extended interaction with the model might influence social norms. For example, our models are deferential, allowing users to interrupt and ‘take the mic’ at any time, which, while expected for an AI, would be anti-normative in human interactions.

    I don’t know whether OpenAI will dig itself out of their recent negative press. I sort of wonder if OpenAI is held to a different standard because they’ve been the best for so long, and because of the drama around leadership at the company. (For a comparable model card for Anthropic’s Claude, there’s this PDF. For Meta’s Llama, there’s this safety page.)

    Regardless, it’s comforting to me that smart people are working on this. We need new laws around AI — for safety, and also resolving copyright questions for training — but in the meantime, we are putting a lot of trust in AI companies.

    I don’t think it’s realistic for the safety to be bulletproof. There have to be limits to how AI can be used, so that if there are problems, those problems can be contained. I don’t want to see AI in physical robots, or anything with military applications. The most likely real-world impact in the short term is going to be flooding the web with fake data, and misinformation on social networks, where ironically the only scalable solution will be using AI to combat the problems it created.

    → 10:04 AM, Aug 9
    Also on Bluesky
  • Apple Intelligence, not for developers

    On the latest episode of Upgrade, Jason Snell and Myke Hurley covered an important part of the Apple Intelligence beta that I’d like to highlight. Leading up to WWDC, Daniel and I talked on Core Intuition about how great it was going to be to have a small on-device LLM available for developers to use. Why pay to send requests from your app out to OpenAI or Anthropic (or even run your own servers with Llama) when you can just use Apple’s model directly?

    But that hasn’t happened. I’ve transcribed the relevant segment from Upgrade discussing this, included below. There’s more before and after that is good too.

    Jason: The fundamental purpose of a developer beta is supposed to be for developers to use new features in order to plan their release for when that version comes out. That’s what a developer beta is for. That’s why it’s called a developer beta. And the problem with it is, developers can’t do much with Apple Intelligence. The big thing they can do is the Intents stuff, which isn’t in there.

    Jason: It struck me… So you’re talking about Apple Mail and summarization. What Apple hasn’t done is make — maybe this is why it’s not going to be available in the EU — what they haven’t done is make an API so if you’re the developer of…

    Myke: Yep.

    Jason: …let’s say Mimestream…

    Myke: Slack.

    Jason: …or anybody. That there’s not like, I’m going to hand a message to Apple’s LLM and ask for a summary. I’m going to go to SummaryKit, or whatever, hand them this information, get a summary back and put it in my UI. No, it’s just in Mail. And so I think that’s one of the frustrations that I’ve got with the way Apple is sort of saying “it’s for developers” and all that, because a lot of these features… And I understand why. I realize it’s early days yet. But Apple Intelligence, a lot of these features are only going to be useful if you’re using the stock Apple apps. And I don’t love it.

    Jason: And I’m sure that in the fullness of time there will be APIs for third-party developers to use that will give them access to the same kind of model and summation and all of that that Apple uses, but I don’t believe any of that is available right now.

    I’m very puzzled by this omission too because it seems like the most basic low-hanging fruit to open up for developers. There’s an LLM on the phone. Let developers use it. It could be as simple as a single API call to pass the prompt and text to process. This must be there already as a private API that Mail and Messages are using.

    Perhaps Apple is worried about how they are scaling the private cloud compute and don’t want developers to use anything that might touch it. Perhaps Apple Intelligence is limited to so few devices that it would create confusing minimum hardware requirements for third-party apps. Perhaps Apple never wants to give developers direct LLM access because Apple considers Apple Intelligence a user feature, leaning on third-party data without developers having any control over AI features in their own apps.

    Who knows. But it means developers will need to stick with OpenAI and similar APIs for at least another year or longer. Apple has a unique architecture for AI. I like the potential, even if their strategy seems mostly about their own users. If there will be innovation with AI on iPhones, though, only Apple can do it. Meanwhile the rest of the tech world continues full-speed ahead with a more developer-focused approach to AI, with many platforms to build on.

    → 2:14 PM, Aug 7
    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!

    → 9:33 AM, Aug 7
    Also on Bluesky
  • AI quick scripts

    Discourse’s backups are SQL, but I needed a Markdown or HTML export. I asked ChatGPT to write a quick Ruby script that loops over the possible post IDs and downloads the Markdown using the special “/raw” URLs in Discourse. Reviewed it line by line and tweaked it slightly, but it was essentially correct on the first try. It took minutes from conception to running.

    Maybe there was an existing Discourse solution for this. But the fact that in the time it would take to find and install another solution, I could have AI write my own custom solution… Still just amazing.

    → 9:02 AM, Aug 1
  • Friend, an AI companion

    There’s an interview from David Pierce at The Verge with Friend founder Avi Schiffmann. Friend is an AI device companion that is trying to make you less lonely, not solve any productivity problems.

    Here are my random initial thoughts about it.

    It’s too easy to dismiss these kind of things as dystopian, terrible, the end of human relationships. But we’re already staring at our screens for many, many hours each day. We’re already kind of screwed, way too isolated.

    We need more human contact. Young people especially were cut off during the pandemic and now spend too much time with algorithmic, infinitely-scrolling social timelines. AI should not replace humans, but something like a personal assistant or companion is inevitable. It might even be more healthy than TikTok addiction.

    I’m reading the book The Mountain in the Sea and there’s a scene in it that reminds me a lot of this. On the technical side, I think the device is a little too big, which will hurt its chance of actually feeling pervasive.

    From the FAQ:

    Your friend and their memories are attached to the physical device. If you lose or damage your friend there is no recovery plan.

    So if the device breaks, your friend “dies”. This sounds like an intentional design decision. It’s similar to when getting emotionally attached to a video game character who dies and can’t come back, like in Fire Emblem.

    I’m not going to pre-order one of these, but I am interested in following how these devices evolve, and what they say about society. The very end of the video trailer for Friend sort of makes its own statement about this. To me that shows some awareness from the creators on what the limits of their device should be.

    → 4:30 PM, Jul 30
  • 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.

    → 9:52 AM, Jul 25
    Also on Bluesky
  • Llama 3.1

    Mark Zuckerberg writes about Llama 3.1 in a Threads post using images of text instead of a blog. He makes a point that he’s mentioned in recent interviews too, about not wanting to be locked in by platform vendors like Apple:

    One of my formative experiences has been building our services constrained by what Apple will let us build on their platforms. Between the way they tax developers, the arbitrary rules they apply, and all the product innovations they block from shipping, it’s clear that Meta and many other companies would be freed up to build much better services for people if we could build the best versions of our products and competitors were not able to constrain what we could build. On a philosophical level, this is a major reason why I believe so strongly in building open ecosystems in Al and AR/VR for the next generation of computing.

    I certainly have my gripes about Meta — I don’t like ad-supported services and I still partially blame Facebook for exacerbating societal and political problems — but I do respect that Mark is good at his job. He’s uniquely technical compared to most CEOs. He’s the only founder left running his own company at the scale of Apple, Google, Amazon, and Microsoft. Today’s release of Llama 3.1 and Mark’s general pitch about AI seems pretty good.

    What would the world look like if he led a different company, one focused only on paid products and not ads? We’ll never know, but I sometimes wonder about it.

    → 2:56 PM, Jul 23
    Also on Bluesky
  • Sticker Mule

    At Micro.blog we’ve used Sticker Mule for a while. A few years ago, I remember reading something about the founder supporting Trump. We actually talked about it internally. Do we care about the political opinions of companies that make a product we pay for?

    Ultimately, I decided we rarely order stickers and it’s a slippery slope to judge every company this way. What if the guy who runs the convenience store supports Trump? Can I still pick up a Dr. Pepper from his store or do I need to shop elsewhere? That’s silly. Small businesses especially should be allowed some leeway, as long as it’s not interfering with the relationship between owners and and their customers, and as long as they don’t appear to be actively using their business to promote causes we don’t agree with.

    Fast forward to this week when Sticker Mule co-founder Anthony Constantino sent this email to customers. Here are a couple excerpts:

    I don’t care what your political views are but the hate for Trump and his supporters has gone too far.

    People are terrified to admit they support Trump. I’ve been scared myself.

    Anthony has misjudged how people are reacting to the attempted assassination. We don’t want Trump killed, but we are not coming together over this to support him. Anyway, let’s continue:

    Btw, this week, get 1 shirt for $4 (normally $19).

    I suggest buying one that shows you support Trump.

    This whole email crosses a line. It’s inappropriate. It’s elevating his personal opinion to put it right in our face. I’m not going to use Sticker Mule again because now I know my money is used in part to send what are effectively promotional emails for a convicted felon, a candidate who is unfit for the presidency.

    Same thing with Elon Musk, who said this week he will donate $45 million each month to a pro-Trump super PAC. He will also relocate SpaceX to Texas because he doesn’t like California’s politics. Twitter X is a disaster regardless, full of hate and misinformation, and I’ll be staying away from the platform.

    I think about my own blog too, where I’ve frequently written about politics. No one who reads my blog will be surprised that I’m going to vote a straight Democratic ticket in November. I don’t think I’m a hypocrite on this. While I will try to balance the tone in my posts on very divisive issues — writing about the war in Gaza was challenging — it is my personal blog. There’s a difference between what I post on manton.org and what I post on news.micro.blog, or what I send to customers in email.

    Micro.blog customers do read my blog, but my account is not auto-followed. If someone is annoyed with my posts, they should be able to ignore them and still be a happy customer.

    Maybe that’s the advice for Anthony and Sticker Mule: get this crap out of your company messaging. On a personal blog you can write about a range of topics. Folks who dislike your politics can choose to stay away. But spare us the lecture on Trump and unity, and leave it out of your emails.

    → 11:07 AM, Jul 17
    Also on Bluesky
  • Too many guns

    John Gruber blogs that it’s the guns:

    The truth is that our nation, great though it is in so many ways, has a horrific history of political violence and a seemingly innate obsession with firearms. […]

    Tomorrow morning Chuck Schumer should put on the floor of the Senate a law mandating strict background checks for all gun purchases. Perhaps tie it to a reinstitution of the 1994 assault weapons ban that Republicans allowed to expire in 2004.

    AR-15s shouldn’t be legal. Here in Texas, the minimum age to buy one is still only 18, despite families in Uvalde pushing to raise the minimum. The velocity of a bullet from an AR-15 is ridiculous and multiple rounds can be fired quickly before anyone even notices. Trump is extremely lucky that it just barely grazed him.

    A couple years ago on the train, I had lunch with a random passenger. Amtrak will often sit people together for meals. This passenger loved the outdoors, camping and hunting, and he said something that will always stick with me: he doesn’t use such powerful semi-automatic weapons for hunting because they do too much damage to the animal.

    We shouldn’t be okay with these weapons of war having become so commonplace. It’s tragic.

    → 11:51 AM, Jul 16
    Also on Bluesky
  • Post-debate, post-interview questions

    I have mixed feelings about where we go in the Democratic party. I think I’ll be relieved if Biden steps aside because it resets everything about this campaign. The people voted for Kamala Harris too and she will be able to articulate the message against Trump more clearly.

    On the other hand, Biden has been a very effective president. He never gets the credit he deserves, and this post-debate rollercoaster is no exception.

    I was thinking about one line from his interview last Friday. Asked about Mark Warner assembling senators to convince Biden to drop out:

    Mark is a good man. […] He also tried to get the nomination too. Mark and I have a different perspective. I respect him.

    Now imagine Trump being asked that question. Trump only cares about himself so he’ll quickly attack any perceived disloyalty. Maybe that difference in respect is partly why Biden has been so effective with bipartisan legislation. He’s been around a while. He’s pragmatic.

    After the interview, I watched John Fetterman answer questions about his support for Biden. When Fetterman makes up his mind about something, he sticks with it. He couldn’t care less what you think and I sort of love that about him:

    Donald Trump is back, and what do Democrats do? We panic and piss our pants. After a bad debate and after 34 convictions — felonies — the Republicans show up and they dress like him and go all-in on Trump.

    Maybe we could learn something here and just say, “Stand by our president through this.” After 50 years, and after almost four years as a great president, I think he’s entitled to make his case after a debate that we can all agree was rough. But I know what that’s like. I am not the sum total of a bad debate, and certainly the President isn’t either.

    Last week I grew increasingly frustrated with the opinions section of The New York Times. It felt like half their home page was opinion, overshadowing the actual reporting. I cancelled my subscription. There are many places on the web to read opinions. More than ever, we need major news outlets to focus on reporting, not influencing. (I’m going with The Washington Post for a little while. Let’s see how they do.)

    People are worried that Biden might lose. Good, be worried. If more people were worried in 2016, Hillary would be wrapping up her 2nd term right now.

    → 8:06 AM, Jul 9
    Also on Bluesky
  • Training C-3PO

    Many of the hot takes about fair use for AI training are either “AI is stealing content” or “everything on the web is free”, but the discussions in between those extremes are more interesting. Let’s explore it with a thought experiment. This blog post isn’t a declaration that I’ve figured it all out. It’s just to get us thinking.

    First, review how blogging and fair use has worked since the beginning of the web. Every day I read a bunch of news articles and blog posts. If I find something I want to write about, I’ll often link to it on my blog and quote a few sentences from it, adding my own comment. Everyone agrees this is a natural part of the web and a good way for things to work.

    An example outside the web is Cliff Notes. Humans can read the novel 1984 and then write a summary book of it, with quotes from the original. This is fine. It also indirectly benefits the original publisher as Cliff Notes brings more attention to the novel, and some people pick up their own copy.

    Now, imagine that C-3PO is real. C-3PO is fluent in six million forms of communication, and he has emotions and personality quirks, but otherwise he learns like the rest of us: through experience.

    C-3PO could sit down with thousands of books and web sites and read through them. If we asked C-3PO questions about what he had read, and then used some of that in our own writing, that seems like fair use of that content. Humans can read and then use that knowledge to create future creative works, and so can C-3PO. If C-3PO read every day for years, 24 hours a day, gathering knowledge, that would be fine too.

    Is that different than training an LLM? Yes, in at least two important ways:

    • Speed. It would take a human or C-3PO a long time to read even a fraction of all the world’s information.
    • Scale. Training a single robot is different than training thousands of AI instances all at once, so that when deployed every copy already has all knowledge.

    Copyright law says nothing about the speed of consumption. It assumes that humans can only read and create so much, because the technology for AI and even computers was science fiction when the laws were written. Robots and AI cannot only quickly consume information, they can retain all of it, making it more likely to infringe on a substantial part of an original work.

    Maybe copyright law only applies to humans anyway? I don’t know. When our C-3PO was reading books in the above example, I doubt anyone was shouting: “That’s illegal! Robots aren’t allowed to read!”

    The reality is that something has fundamentally shifted with the breakthroughs in generative AI and possibly in the near future with Artificial General Intelligence. Our current laws are not good enough. There are gray areas because the laws were not designed for non-humans. But restricting basic tasks like reading or vision to only humans is nonsensical, especially if robots inch closer to actual sentience. (To be clear, we are not close to that, but for the first time I can imagine that it will be possible.)

    John Siracusa explored some of this in a blog post earlier this year. On needing new laws:

    Every new technology has required new laws to ensure that it becomes and remains a net good for society. It’s rare that we can successfully adapt existing laws to fully manage a new technology, especially one that has the power to radically alter the shape of an existing market like generative AI does.

    Back to those two differences in LLM training: speed and scale.

    If speed of training is the problem — that is, being able to effectively soak up all the world’s information in weeks or months — where do we draw the line? If it’s okay for an AI assistant to slowly read like C-3PO, but not okay to quickly read like with thousands of bots in parallel, how do we even define what slow and quick are?

    If scale is the problem — that is, being able to train a model on content and then apply that training to thousands or millions of exact replicas — what if scale is taken away? Is it okay to create a dumb LLM that knows very little, perhaps having only been trained on licensed content, and then create a personal assistant that can go out to the web and continue learning, where that training is not contributed back to any other models?

    In other words, can my personal C-3PO (or, let’s say, my personal ChatGPT assistant) crawl the web on my behalf, so that it can get better at helping me solve problems? I think some limited on-demand crawling is fine, in the same way that opening a web page in Safari using reader mode without ads is fine. As Daniel Jalkut mentioned in our discussion of Perplexity on Core Intuition, HTTP uses the term user-agent for a reason. Software can interact with the web on behalf of users.

    That is what is so incredible about the open web. While most content is under copyright by default, and some is licensed with Creative Commons or in the public domain, everything not behind a paywall is at least accessible. We can build tools that leverage that openness, like web browsers, search engines, and the Internet Archive. Along the way, we should be good web citizens, which means:

    • Respecting robots.txt.
    • Not hitting servers too hard when crawling.
    • Identifying what our software is so that it can be blocked or handled in a special way by servers.

    This can’t be stressed enough. AI companies should respect the conventions that have made the open web a special place. Respect and empower creators. And for creators, acknowledge that the world has changed. Resist burning everything down lest open web principles are caught in the fire.

    Some web publishers are saying that generative AI is a threat to the open web. That we must lock down content so it can’t be used in LLM training. But locking content is also a risk to the open web, limiting legitimate crawling and useful tools that use open web data. Common Crawl, which some AI companies have used to bootstrap training, is an archive of web data going back to 2008, often used for research. If we make that dataset worse because of fear of LLMs misusing it, we also hurt new applications that have nothing to do with AI.

    Finally, consider Google. If LLMs crawling the web is theft, why is Google crawling the web not theft? Google has historically been part of a healthy web because they link back to sites they index, driving new traffic from search. However, as Nilay Patel has been arguing with Google Zero, this traffic has been going away. Even without AI, Google has been attempting to answer more queries directly without linking to sources.

    Google search and ChatGPT work differently, but they are based on the same access to web pages, so the solutions with crediting sources are intertwined. Neither should take more from the web than they give back.

    This is at the root of why many creators are pushing back against AI. Using too much of an original work and not crediting it is plagiarism. If the largest LLMs are inherently plagiarism machines, it could help to refocus on smaller, personal LLMs that only gain knowledge at the user’s direction.

    There are also LLM use cases unrelated to derivative works, such as using AI to transcribe audio or describe what’s in a photo. Training an LLM on sound and language so that it can transcribe audio has effectively no impact to the original creators of that content. How can it be theft if there are no victims?

    I don’t have answers to these questions. But I love building software for the web. I love working on Micro.blog and making it easier for humans to blog. Generative AI is a tool I’ll use when it makes sense, and we should continue discussing how it should be trained and deployed, while preserving the openness that makes the web great.

    → 11:54 AM, Jul 8
    Also on Bluesky
  • ActivityPub paper cuts

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

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

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

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

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

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

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

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

    Now let’s check out what Ghost is doing:

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

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

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

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

    → 11:19 AM, Jul 7
    Also on Bluesky
  • Dark forest of the web

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

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

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

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

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

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

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

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

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

    → 9:50 AM, Jul 1
    Also on Bluesky
  • visionOS and peak Apple

    Jason Snell makes the case for hand controllers and other changes to the Vision Pro:

    I’ve got a Vision Pro and a Meta Quest 3. And yet the Quest 3, which costs about one-seventh of the price of the Vision Pro, is a vastly superior platform when it comes to playing certain kinds of games. Games just require precision positioning (through detailed movement tracking), and input (via on-controller buttons) that waving your hands and tapping fingers together in Vision Pro just can’t match.

    Jason has good ideas for improving Vision Pro, but I think the problem is more fundamental than that. visionOS is a bust.

    Most users don’t want to strap a computer to their face. Most developers don’t want to dedicate time to redesigning their apps. Some people love the Vision Pro, and that’s great for them, but it’s not a mainstream product.

    I said on Core Intuition last year that it will be 20 years before technology catches up to Apple’s vision of spacial computing, with normal-looking AR glasses that can do most of what the Vision Pro can do. I think there will be compelling AR glasses before then, but they won’t run visionOS as we know it today.

    As I blogged about when I said Apple needs a flop:

    Maybe we’re at a crossroads for the company. Apple was great as the underdog, when they were humbled, fighting to out-innovate the competition. What came after the Lisa? The Macintosh. After almost going bankrupt? Think Different and the iMac. After the butterfly keyboard? Some of the best MacBooks ever made.

    Apple has lost something on the path to becoming a $3 trillion company. They’re not going to get it back, because it’s something that’s hard to define, something that slips through your fingers when you try to do too much. The larger a company gets, the less capable they are of reaching beyond obvious products. The iPod formula of “we’re not first, but we’re the best” is no longer working. Everyone else is innovating too.

    I said this year that we’re at “peak Apple”, and I still believe it:

    Apple has been an inspiration for me for 30 years. A massive success. I think this is as good as it gets for them. They are simply too big to fundamentally rethink anything for what’s next.

    There may never be another company like Apple. Still, I hope there’s room somewhere under the boots of the mobile duopoly for a new upstart. A product that is built natively for the open web, with a new take on how devices can be part of our lives, untethered from Apple and Google. If I squint a little I can almost see it happening.

    → 10:18 AM, Jun 28
    Also on Bluesky
  • More DMA, more rejections, more exhaustion

    Nick Heer on the latest DMA news and UTM rejection:

    Perhaps there are legitimate security concerns in the UTM emulator. The burden of proof for that claim rests on Apple, however, and its ability to be a reliable narrator is sometimes questionable. Consider the possible conflicts of interest in App Tracking Transparency rules raised by German competition authorities.

    Apple’s handling of the App Store is getting so old. It’s exhausting that there is always drama, always bad faith efforts, always two steps forward, one step back. Here’s what I blogged 13 years ago:

    Apple, want to charge 30%? Go for it. Want to make the submission rules more strict? Fine. Want to adjust how you run the App Store to reflect what’s happening in the market? No problem. Just give developers an out. We are going to be back here year after year with the latest controversy until exclusive app distribution is fixed.

    Maybe nothing I’ve written in 20 years of blogging has proven more true than that statement. Enough already! Just let us build apps that customers want and distribute them outside the store without gimmicks. That’s what the DMA is about and Apple knows it.

    → 9:29 AM, Jun 26
    Also on Bluesky
  • Local orchestration vs. the cloud

    Excellent post by Jason Snell on the upcoming era of orchestrated apps, where much of what we do with our iPhone might be using AI as a bridge between multiple apps and their local data:

    When everything is orchestrated properly, all the capabilities of all your apps are put into a big soup, and the AI system at the heart of your device can choose the right capabilities to do what you need it to do—without you having to specify all the steps it needs to take to get there.

    This is a good strategy for Apple because it leverages their strengths with privacy and a complete ecosystem of apps. However, there’s a problem, something I’ve written about a few times including recently in this post about Siri before WWDC. What if you want the same functionality on your HomePod? Or on your Mac that doesn’t have the same apps installed? App intents are local to each device, potentially creating a disjointed experience when not at your iPhone.

    If an assistant doesn’t have consistent functionality everywhere, something in the illusion is broken. Apple’s solution can still be good, but I think it will always come up a little bit short. (They may make up for it by having an overwhelming advantage in third-party apps that use intents, and the fact that most people’s computing is predominantly or only on their phones anyway.)

    A different take would be for the apps and intents to be synced with the cloud, so that they are universally available to your assistant from all devices. There are privacy trade-offs on this path, but I think ultimately it’s where many people will want to go.

    Google is probably best positioned for this alternative, more cloud-based approach to AI. They already have your private email, and I’m not sure most people consider whether it’s encrypted or just sitting around on Google servers. I wouldn’t rule out OpenAI either, since something like this is clearly part of their vision. Whoever it is, I could see Apple and another company rising to become a new sort of duopoly for AI. Apple as the private, mostly on-device option, and someone else as the always available, cross-platform assistant.

    → 9:24 AM, Jun 25
    Also on Bluesky
  • WWDC initial takeaway

    One thing I didn’t appreciate before this year’s WWDC is how limited Apple’s on-device models could be. Apple is going for easy wins and generally not biting off more than they can chew. Summarizing or rewriting text is something LLMs are great at, with almost no risk for getting derailed with hallucinations. So it shouldn’t have been surprising that Apple is doing so much themselves with their own models, and punting to ChatGPT for what Craig Federighi called “broad world knowledge” that is beyond Apple’s own models.

    The only thing that struck me as strange in the WWDC keynote was image generation. I didn’t expect Apple to do that and I still don’t see why they needed to. It opens up a can of worms, something that was discussed well on this week’s episode of Upgrade. See the chapter on “AI feelings”.

    The rest of the strategy is really good, though. The on-device models are small, but they can be supplemented with cloud models for more advanced tasks. And because it will be transparent to the user whether a local or cloud model is used, Apple can add bigger models to newer iPhones as RAM increases, for example, and the user won’t know the difference. Tasks will just become faster and more sophisticated.

    This does require the user’s buy-in on Apple’s premise: that “private cloud compute” is just as secure and private as on-device data. On first glance this doesn’t seem technically true. As soon as the data leaves the device, you’re in a different world for things to go wrong. But Apple has built up a lot of trust. If user’s accept the private cloud — and, importantly, if users even realize that Apple’s cloud is completely different than OpenAI’s cloud — it gives Apple a new strength that others don’t have, even if that strength is propped up mostly on goodwill.

    Personally I have no concern with the cloud approach for my own personal data. I expect Apple’s solution to be robust, likely bordering on over-engineered for what it actually needs to do, but that builds confidence.

    Ben Thompson is optimistic about Apple’s AI strategy too. From a daily update on whether other companies could displace iOS:

    I’m unconvinced that large language models are going to be sufficiently powerful enough to displace iOS, and that Apple’s approach to productize LLM capability around data that only they have access to, while Aggregating more powerful models, is going to be successful, but time will tell. Relatedly, the speed with which a wide array of model builders delivered useful models both gives me confidence that Apple’s models will be good enough, and that there isn’t some sort of special sauce that will lead to one model breaking away from the pack.

    I’m not sure. There is no telling whether there will be another GPT-level advance in a couple years. Already OpenAI has some technologies like the voice matching that are so powerful that OpenAI almost seems scared to even release them. If there is a breakthrough, it may be difficult for other companies to replicate it right away, giving a single player a years-long advantage.

    At the same time, there is just enough friction in Apple Intelligence that even with the improvements to Siri, it may feel slightly crippled compared to a hypothetical new voice assistant. As I wrote in a blog post before WWDC:

    While it’s true that the iPhone will continue to dominate any potential non-phone competition, I think there is a narrow window where a truly new device could be disruptive to the smartphone if Apple doesn’t make Siri more universal and seamless across devices. This universality might sound subtle but I think it’s key.

    It’s unlikely for Apple to be displaced. People love their phones. I think there is still an opening for something new — a universal assistant that works everywhere, can do nearly everything, and is a joy to use. But we may never get there, or “good enough” may be fine, in which case Apple is really well-positioned.

    → 10:07 AM, Jun 13
  • 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.

    → 7:05 PM, Jun 5
  • How to rethink Siri

    Siri is much too limited and inconsistent. The only time I ever use Siri is when driving, for responding to text messages and dictating notes. Many people will have different use cases, and so when people say “Siri sucks” they probably all mean different things.

    There are many things that could be improved in Siri, but to me it all comes down to just two fundamental shifts:

    Universal Siri that works the same across all devices.

    The illusion of Siri as a personal assistant is broken when basic tasks that work from your phone don’t work from your watch or HomePod. I’ve long thought and discussed on Core Intuition how Apple has tied Siri too closely to devices and installed apps.

    That’s not to say that controlling installed apps isn’t useful, in the way that Shortcuts and scripting are useful. I expect Apple to have more of that at WWDC next week. But in addition to extending Siri with installed apps, to make it truly universal there should be a way to extend Siri in the cloud, just as Alexa has offered for years.

    Standalone devices like the Human AI Pin and Rabbit R1 have been criticized as “that should be an app”. While it’s true that the iPhone will continue to dominate any potential non-phone competition, I think there is a narrow window where a truly new device could be disruptive to the smartphone if Apple doesn’t make Siri more universal and seamless across devices. This universality might sound subtle but I think it’s key.

    Large language models.

    This is obvious. Talking to ChatGPT is so much more advanced and useful than current Siri. With ChatGPT, you can ask all sorts of questions that Siri has no clue about. Sure, LLMs are wrong sometimes, and I’d love for Siri to be uncertain about some answers. If there was a way to have some kind of weighting in the models so that Siri could answer “I’m not sure, but I think…” that would go a long way to dealing with hallucinations. Generative AI is less like a traditional computer and more like a human who has read all the world’s information but doesn’t really know what to do with any of it. That’s okay! But we wouldn’t blindly trust everything that human said.

    There are many other improvements that would come along with using even medium-sized LLMs on device for Siri, such as dictation. OpenAI’s Whisper model is almost 2 years old now and way better than Siri.

    Apple is going to talk a lot about privacy and on-device models at WWDC. A dual strategy for LLMs is the way to go, with models on your phone that can do a bunch of tasks, but some kind of smarts to switch gears to using LLMs in the cloud when necessary. I’ve done a bunch of experiments with open-source LLMs on my own servers, and it requires a lot of RAM and GPU to get reasonable performance. If we use “parameters” as a rough metric for how much horsepower LLMs need, note that Meta’s Llama 3 (which is pretty good!) is a 70 billion parameter model. GPT-4 is rumored to be nearly 2 trillion parameters. If Apple can’t get GPT-4 level quality and performance on device, they should not hesitate to use the cloud too.

    Looking forward to WWDC next week! Should be a good one.

    → 11:28 AM, Jun 5
  • More about AI uncertainty

    I’ve blogged before about AI hallucinations, but I wanted to tie together a few new posts I’ve read recently. Let’s start with Dave Winer:

    To people who say you get wrong answers from ChatGPT, if I wanted my car to kill me I could drive into oncoming traffic. If I wanted my calculator to give me incorrect results I could press the wrong keys. In other words, ChatGPT is a very new tool. It can be hard to control, you have to check what it says, and try different questions. But the result, if you pay attention and don’t drive it under the wheels of a bus, is that you can do things you never could do before.

    This is essentially my mindset too. AI makes mistakes. Humans make mistakes. The key is to know what AI is good for and to not let it run wild unattended. This is why with Micro.blog we’ve been so focused on very limited use cases:

    • Podcast transcripts, for which AI is shockingly good. Gotta be close to 99% perfect, and it’s easy to edit transcripts to fix mistakes.
    • Summarizing bookmarked web pages, also really accurate. I’ve yet to see any mistakes.
    • Photo keywords and accessibility text. Super useful and if it occasionally gets something slightly wrong, it’s usually inconsequential and still a huge step forward.

    On a recent SharpTech podcast, Ben Thompson also makes this point that we have different expectations for computers and humans. We expect computers to always be right. Calculators and spreadsheets don’t lie. But generative AI is something new, and we can’t hold it to the same standards we had before.

    That’s not necessarily to say you’re holding it wrong if you ask Google how many rocks to eat. It’s up to AI companies to better convey when assistants aren’t sure about an answer. I don’t know if this is technically possible with how today’s models work, but hopefully folks are looking at it.

    Finally, Allen Pike had a post this week that was fascinating, about how AI will evolve now that it has chewed up all the data on the internet. I have mixed feelings about this… There’s a lot of uncertainty, and also I don’t love that we might be improving AI models while neglecting making the web better. But it is still too early to really judge how this is going to play out.

    → 11:29 AM, Jun 4
  • Apple Notes priorities

    In a blog post about Journal, John Gruber makes a detour to highlight the lack of full import and export in Apple Notes:

    I worry that import and export aren’t priorities for Apple. Apple Notes can import RTF and plain text files, but its only option for exporting is, bizarrely, PDF — which is a file format Notes can’t import. A good system for import/export would allow for full fidelity round-tripping. You should be able to export to a file or archive format that Notes can also import, without losing any formatting, metadata, or image attachments. Notes doesn’t even try.

    That’s a no-go for me. I’m now using Micro.blog for notes, and I wouldn’t even consider anything without Markdown import and export. Of course Apple isn’t going anywhere and I expect Notes to be supported essentially forever in some form, but iCloud sync is opaque. If there’s ever a hiccup, I want a backup of the actual plain text files.

    → 4:02 PM, May 31
  • Podcast hosting for $5

    Six years ago, we launched our $10/month plan with podcast hosting. Since then we’ve added several big features to the plan, which is now called Micro.blog Premium:

    • Create up to 5 blogs, each with its own domain or subdomain
    • Email newsletters, to send automatically whenever you blog
    • Bookmark web pages, with archiving and content summaries
    • Make highlights in web pages, to search or blog about
    • Tags for bookmarks
    • Notes and journals, plus our companion app Strata
    • Share short videos

    Today, I want to bring the podcast feature to more people, so we’re moving it down to the standard $5/month plan. The new audio narration for posts and podcast feeds remind me of how much fun it can be to have your own blog, to experiment and try new forms of content at your own space on the web. Let’s do more of it.

    → 9:03 AM, May 30
  • Weak opinions, strongly held

    Manu Moreale writes about the ratio between consuming content and creating it:

    I believe people should consume less content and produce more. Finding an output for creativity is important. But it’s unreasonable to expect people to stop consuming content and replace that consumption with creation because the ratio will always be inevitably skewed towards consumption.

    It’s a good post and while I’ve never tried to measure this ratio for myself, I like the way Manu blogs about it. I’m going to take that topic and expand it in a slightly different direction.

    It also matters what we consume. If we read too much social media, what happens is that most of the consumption is headlines and opinions, not the facts behind the headlines. It’s retweets, short quotes, and TikToks, not longer blog posts and stories.

    It’s usually obvious when reading all the takes on the internet who actually knows something and has formed their own opinion, and who has been influenced by whatever the current consensus is on social media. Starting with other peoples' opinions is like reading a newspaper’s op-ed first and then the front page. Everything we read afterwards will be influenced by those opinions.

    When I quit Twitter in 2012, I essentially threw away any audience I had built and started over. I could feel the loss of community. But I also began to notice that my ideas felt just a tiny bit more unique. Not earth-shatteringly original, but definitely my own.

    → 8:20 AM, May 29
  • A little more about adding audio

    Last week I blogged about adding audio narration to blog posts. For years we’ve also had full podcast hosting, which overlaps with this narration feature but is focused on podcast episodes and feeds. In this post I’ll show how to add narration to an existing blog post, hopefully in the process revealing more about how this works in Micro.blog.

    First, record yourself reading the blog post. There are a dozen ways to do this. Make sure to save the file as an MP3.

    Upload the MP3 to Micro.blog. You can do this on the web in the Uploads section, or one of the native apps. All the apps also have some form of Copy HTML button to get an HTML audio tag for the upload. It will look something like this:

    <audio src="…" controls="controls">
    

    Before we paste this into the edited blog post, we actually want to hide the default audio player that would appear in web browsers. To do this, add a style attribute:

    <audio src="…" controls="controls" style="display: none">
    

    If the audio player is hidden, what’s the point? Micro.blog sees the tag anyway. It also knows the duration of the audio, so it can make a guess as to whether this is a narrated version of the blog post. If it is, it skips some features such as adding a link to the transcript of the audio. (Because the blog post text you wrote is already the best transcript.)

    Note that to turn a blog post into a podcast episode or narrated post, all that’s needed is the audio tag. This is because Micro.blog natively thinks about posts as HTML. Photo posts have an img tag, audio posts have an audio tag, and so on. When Micro.blog publishes your blog post, it parses the HTML and sets up any metadata that is needed, for example to access from within Hugo.

    When you write a new post and include audio at the time of posting, not later, Micro.blog handles managing the audio tag for you, including the CSS to hide posts that are audio narration. Later, we plan to improve the editing interface so this is more seamless too.

    → 12:34 PM, May 28
  • 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.

    → 4:14 PM, May 24
  • Humans in the loop

    Just finished listening to this interview on Stratechery with Satya Nadella and (separately) Kevin Scott. Some really thoughtful points about how Microsoft sees things around AI.

    I liked this segment from Kevin especially, after talking about how humans can no longer beat computers at chess, yet we still love to watch humans play chess against each other:

    I don’t think the AI is going to take over anything, I think it is going to continue to be a tool that we will use to make things for one another, to serve one another, to do valuable things for one another and I think we will be extremely disinterested in things where there aren’t humans in the loop.

    I think what we all seek is meaning and connection and we want to do things for each other and I think we have an enormous opportunity here with these tools to do more of all of those things in slightly different ways. But I’m not worried that we somehow lose our sense of place or purpose.

    → 4:50 PM, May 23
    Also on Bluesky
  • Sky narrative wrap-up, for now

    Tonight the Washington Post has what looks like an exclusive story on OpenAI’s Sky voice. I didn’t want to keep writing about this, but here we are. Some quotes from the article:

    …while many hear an eerie resemblance between “Sky” and Johansson’s “Her” character, an actress was hired to create the Sky voice months before Altman contacted Johansson, according to documents, recordings, casting directors and the actress’s agent.

    The actress’s agent spoke to the Washington Post:

    The agent, who spoke on the condition of anonymity to assure the safety of her client, said the actress confirmed that neither Johansson nor the movie “Her” were ever mentioned by OpenAI. The actress’s natural voice sounds identical to the AI-generated Sky voice, based on brief recordings of her initial voice test reviewed by The Post.

    And from Joanne Jang, who worked at OpenAI with the actors:

    Jang said she “kept a tight tent” around the AI voices project, making Chief Technology Officer Mira Murati the sole decision-maker to preserve the artistic choices of the director and the casting office. Altman was on his world tour during much of the casting process and not intimately involved, she said.

    There was also a statement from the actress who voiced Sky:

    In a statement from the Sky actress provided by her agent, she wrote that at times the backlash “feels personal being that it’s just my natural voice and I’ve never been compared to her by the people who do know me closely.”

    Maybe we haven’t heard the last of this story and more news will drop. Even if it wasn’t intentional, there may be a legal case against OpenAI. But it appears that my initial take was correct.

    I’ve been rolling this whole saga over in my mind since I first blogged about it. People are clearly concerned about AI generally and OpenAI specifically. There is also too much misinformation and divisiveness on social media, and a loss of nuance. When the narrative turns against a company, everything that follows will be viewed through a different lens, as if slightly distorted.

    → 10:43 PM, May 22
    Also on Bluesky
  • Yesterday's AI thoughts

    I posted a series of microblog posts yesterday with a common theme of trying to understand what is going on with OpenAI. This is a company with a lot of drama, nearly imploding last year with the board and CEO shakeup, and more recently alternating between amazing demos and dumb mistakes.

    I got a lot of pushback about one of my posts in particular. I’m even seeing people want to leave Micro.blog because of it. This is disappointing to me, especially since I think I’ve gone out of my way to have a balanced approach to AI. We have a global setting to disable everything that uses AI in Micro.blog, for people who are against the technology on principle.

    Here are the relevant posts from yesterday so you can see them more in context:

    When your company becomes the enemy, all that matters to people is what feels true. OpenAI’s Sky voice shipped months ago, not last week. We hear what we want to hear. OpenAI mishandled this, no question, but most likely Her is ingrained in Sam’s head vs. intentionally ripping off Scarlett.

    In the last 35 years, there have been a tiny number of truly revolutionary technologies that change everything: the web, mobile, and artificial intelligence. We can fight it, or we can guide it. But trust has eroded. To succeed we have to rebuild it. Move fast and break things will be a disaster.

    Any chance that WWDC will have a live keynote this year? In the last couple weeks, we’ve had… OpenAI: live. Google I/O: live. Microsoft: live. To balance AI we need to lean in to human creativity, and a pre-recorded 2-hour advertisement will never feel as alive or engaging as a human on stage.

    As someone who usually supports OpenAI, I’d still welcome an actual lawsuit from Scarlett Johansson about the voices. For one, I’m a huge fan of hers, but also I’d genuinely like to know if anything shady happened at the company. Dishonesty will cast a shadow over everything the API touches.

    I also tried to clarify a few things in replies on those blog posts to other people’s points:

    Sam was clearly inspired by and obsessed with Her. I don’t think it was subconscious, but that also doesn’t mean they sampled her voice explicitly.

    The board firing Sam Altman is looking more and more rational. Which is why I think this should be an “all hands on deck” moment for OpenAI.

    You’re right on the “total” lie, I shouldn’t have phrased it that way, because anything misleading in the OpenAI post would be dishonest. I was trying to respond to folks who are saying that when Scarlett declined to lend her voice, OpenAI copied it anyway. I don’t think that’s true. If I’m wrong, I’ll stop using any tech from OpenAI.

    They already have the technology to actually clone someone’s voice, which I assume they didn’t use here because it would be an even closer match.

    Did I get it wrong? For reference, here is OpenAI’s blog post about hiring actors for the voices, and Scarlett Johansson’s letter.

    Perhaps I shouldn’t have blogged about this, but it’s my personal blog where I explore a range of topics. I do not run my blog posts through a PR department, and I think most people appreciate that blogs should feel authentic and human, even when they disagree.

    → 9:48 AM, May 22
    Also on Bluesky
  • Finder on iPad

    I’ll admit I’ve only skimmed the recent “is iPadOS holding the iPad back?” posts from Federico Viticci, Jason Snell, John Gruber, and others. The iPad isn’t part of my routine now that I’m back to using the Kindle for e-books.

    Apple has had a decades-long battle with window management generally and the Finder specifically. At Ease, Simple Finder, Launchpad, Stage Manager, iOS Files… But it turns out the Finder is great. You could go a long way just by replacing Files with a touch-optimized Finder.

    I wrote the above and then went back to Federico’s post, where he actually highlights this same point:

    After seven years, I’m starting to wonder if maybe it’s time for Apple to scrap the Files project and start over with a new app based on the strong foundation of Finder. We’re well past the point of excusing the Files app for being a young file manager; when you’re spending $3,000 on a high-end iPad Pro with plenty of storage, you want the app to manage that storage to be flawless.

    Apple could do this even without turning iPadOS into a true fork of iOS. Boot the iPad into a new Finder that mostly obsoletes Springboard and Files.

    → 10:10 AM, May 15
    Also on Bluesky
  • Welcome Kimberly Hirsh! 👋

    Excited to announce that @kimberlyhirsh is joining the Micro.blog team. She’ll be helping part-time with curation and community. We’ve been talking to Kimberly for a while and I’m happy she can join us as @jean moves on.

    I’m looking forward to working with Kimberly, and seeing what new ways we can expand the team from here. As I mentioned in my post thanking Jean for all her work on Micro.blog, I think everyone can bring something different to the company. Vincent has also been at work behind the scenes to improve the admin features in our platform, with the hope that some of it can be available to more community members.

    We know the long-term vision for what we want Micro.blog to be, but exactly how we get there can still be a surprise. Thanks Kimberly for wanting to be a part of this!

    → 11:26 AM, May 10
  • Jack Dorsey and Bluesky

    This interview with Jack Dorsey provides some closure to his part of the Twitter and Bluesky story. On leaving the Bluesky board:

    So I just decided to delete my account on Bluesky, and really focus on Nostr, and funding that to the best of my ability. I asked to get off the board as well, because I just don’t think a protocol needs a board or wants a board. And if it has a board, that’s not the thing that I wanted to help build or wanted to help fund.

    Jack says that he respects Bluesky CEO Jay Graber, just that what they each wanted went in different directions.

    Jay herself responded this week on Bluesky:

    With all due respect to Jack for having the vision to invest in decentralized protocols, we’ve carried out the work in a way I don’t think he fully understands. Bluesky is structurally open in a way Twitter has never been, but the design of atproto allows it to feel familiar and easy to use.

    There was also this defense of Jay from Bluesky developer Paul Frazee:

    I’ve been watching Jay make consistently strong strategic decisions under incredible pressure, and watching her get dogged by this 2nd rate nonsense is too much. That guy isn’t the story. The fact Jay charted her own path is.

    Personally, I still really like what Bluesky is doing. We’re continuing to add Bluesky features to Micro.blog, like being able to see and reply to Bluesky posts within Micro.blog. For the foreseeable future, the social web is not going to be a single protocol (except of course HTTP).

    → 11:00 AM, May 10
  • Thank you, Jean MacDonald

    It’s hard to believe it has been seven years since Jean joined me to work on Micro.blog. After a few emails back and forth in early 2017, Jean and I met at Fairlane Coffee while I was up in Portland. I showed her an early version of Micro.blog and we talked about how we could work together.

    Reflecting back on that day, it was a pivotal moment because it helped accelerate Micro.blog growing into its own company that could become my focus, instead of just one of several projects I was working on in my indie software company Riverfold. Micro.blog was going to need more of my time, and then some!

    Jean has been an integral part of everything we’ve done since then. She created the Micro Monday podcast, organized in-person and online Micro Camps, and ran the photo challenges for the community, all on top of managing the Discover section of Micro.blog and working through community issues with me. This is perhaps the most rewarding part of working with someone else — seeing new things happen that I couldn’t have done on my own, and in some cases new ideas I had never considered.

    Thanks Jean! As you move on from Micro.blog, wishing you the best of luck with your long-form writing, hopefully a little microblogging too, and whatever else is next.

    → 7:28 PM, May 8
  • Good trouble

    In college in the 1990s, I joined the socialist student organization. I saw every issue in stark contrast — a measure of fairness and justice. If I was young on campus today, I might be protesting the war in Gaza. But even in college, truthfully I wasn’t a great activist. I remember our organization leader calling me about a protest for workers’ rights and I was too lazy that day to go.

    I’m still for peace and equality today, but now I know that the world is fucking complicated. I’m less certain about things I felt so strongly about before.

    Seeing everything in black and white is a mixed blessing. Seeing only the extremes leads to passion and action. But it can also blind us to more nuanced arguments. It can make us more susceptible to manipulation, caught up with TikToks and retweets that reinforce what we already believe.

    Taking a step back from the protests specifically, liberals advocate for the less fortunate. We want people of all backgrounds to be treated with respect. We push back against laws that further redistribute wealth to those who don’t need it.

    I think this instinct has run into problems in Gaza. War is terrible. More humanitarian aid is needed, and more military restraint. Palestinians have been struggling for decades, now they’ve been forced from their homes, children have died in bombings, and there’s a risk of famine. We want to side with them because we always default to supporting the people who most need support.

    And yet polarization has twisted everything. On social media, we use the worst words possible. No words on any topic seem to go far enough, because everyone is angry about everything. Innocent people dying in war — it just doesn’t sound terrible enough for our outrage. So we reach for even more extreme words, calling to mind atrocities that have rightly been judged by history as indefensible.

    Pick a side, protest, use all the hashtags, get angry, go viral. In a social bubble, everything is amplified.

    I’m going to be honest, the brutality of the Hamas attack on October 7th changed my opinion on the Middle East, possibly forever. Hamas cannot stay in power. But how to remove Hamas without risking innocent life and creating a new generation of terrorists is an impossible challenge that I don’t have a solution for.

    Peaceful protests are an important part of a democracy. Most of the protests have been peaceful. Unfortunately some of the protesters at a few campuses like Columbia University and UCLA have lost the plot, seeing injustice everywhere, creating chaos, justifying vandalism. I hope we haven’t become so tribal that we support that.

    There is a bit of hope in the news. Earlier this week, Antony Blinken said:

    Hamas has before it a proposal that is extraordinarily generous on the part of Israel. And at the moment, the only thing standing between the people of Gaza and a cease-fire is Hamas.

    I hope Hamas accepts it. The hostages need to be released and even a temporary ceasefire will make it easier to ramp up more aid.

    Amplified by social media outrage, it has become difficult to see the war clearly. I’m not sure how as a society we get through this. All I know for sure is that it’s going to take a long time, and we need social platforms that don’t feed on division.

    ✌️

    → 10:41 AM, May 4
  • AI hesitancy

    I’m 48 years old. If you start counting with my paid internship in college, I’ve had a roughly 30-year career in the software industry, give or take a year. I feel extremely lucky that the web came along just as I was getting my feet wet as a developer. World-changing technologies are rare.

    Timing matters. This is part of what Malcolm Gladwell’s book Outliers is about.

    As I get older, I’m increasingly aware of how easy it is to become bitter and set in my ways. There are many episodes of Core Intuition where I complain about Swift or SwiftUI. Why do we need a new programming language when the old one is still perfectly fine? 🤪

    The tech and startup world has had no shortage of over-hyped sidetracks. Blockchain is the most recent flop. Just because a technology is novel, doesn’t mean a practical purpose and business model will emerge.

    I almost never jump on trends because you can waste so much time chasing productivity gains that you actually end up going backwards. I run my servers with old tech. I use tried and true programming languages and frameworks. I am not cutting edge.

    Some people think generative AI is in the same line as other problematic new technologies, fads that come and go, leaving a string of wrecked businesses and broken apps in their wake. I understand the hesitation. We have been inundated with tech companies that don’t care about data privacy, don’t care about how energy use affects the climate, and don’t care as much about user control as they do about profit.

    It is with this backdrop that I get to the point: this AI shit is real. It will change almost everything. I’m not expecting to see another truly game-changing technology for the rest of my career. This is the one.

    That doesn’t mean we should move fast and break things. I’m trying to be thoughtful about this. The new photos search and accessibility feature we introduced in Micro.blog today is a first step, and perhaps we won’t take the next step for another year or longer. It’s useful today, as a tool to help people do more with their time, and that’s enough for now.

    → 11:33 AM, Apr 30
    Also on Bluesky
  • TikTok bill is not xenophobic

    I wasn’t sure whether I felt that strongly about the TikTok bill until I read this blog post by Ben Werdmuller. I usually love Ben’s posts but I disagree with him on TikTok and the open web, so let me respond to a few points:

    Ironically, banning a service from the open internet nationwide is exactly the kind of thing that China has done again and again through its Great Firewall. Rather than protect American users through the kinds of far-reaching privacy legislation that we need, government chose to address TikTok alone on the basis of what amounts to xenophobic protectionism.

    I’m not convinced American privacy legislation will have much impact on a company based in China. TikTok has also long promised to host data in America — “Project Texas” — and according to recent reports the effort is largely cosmetic.

    This is not a ban of TikTok. This is a focused effort to force ByteDance to sell the company, so that it can be controlled by a company with more transparency and accountability. If ByteDance refuses to sell TikTok, the app will be removed from distribution by platform gatekeepers, but there’s nothing to stop TikTok from continuing to operate and be available to Americans via the web, as long as it’s hosted somewhere else.

    From HR 815, now signed into law:

    Providing services to distribute, maintain, or update such foreign adversary controlled application (including any source code of such application) by means of a marketplace (including an online mobile application store) through which users within the land or maritime borders of the United States may access, maintain, or update such application.

    It might even be a positive outcome for the open web by shedding light on Apple and Google’s tight control over app distribution, and showing users why Progressive Web Apps can be a good alternative solution. TikTok would potentially be slower with a poorer user experience, or maybe it wouldn’t, but the open web is not going to fall apart so easily.

    It’s true that some US Senators have shown themselves to be ignorant, xenophobic, and racist, on not just this bill but a range of issues. And yet a broken clock is right twice a day.

    Ben writes sarcastically:

    There’s a possibility that TikTok will be used to spread propaganda, unlike every other social network

    I will be the first person to criticize massive social platforms. Significant portions of my book are about exactly that. It’s a very real problem to have so much concentrated power. But as much as we might dislike how Mark Zuckerberg runs Facebook, we can be pretty confident he is not going to undermine America on purpose, quietly putting a foot on the scale with propaganda to amplify political chaos.

    Scott Galloway, co-host of the Pivot podcast with Kara Swisher, was on MSNBC’s Morning Joe this week:

    What might sound paranoid, but that doesn’t mean I’m wrong: I think we are being manipulated, specifically youth, who their frame for the world is TikTok. If you look at TikTok, there are 52 videos that are pro-Hamas or pro-Palestinian for every one served on Israel. I think that we’re being manipulated. I think Americans are easier to fool than to convince they’ve been fooled. But if I were the CCP, I’d be doing exactly the same thing. I think social media is sowing division and polarization in our society.

    We just can’t be sure whether the algorithm is only giving people what they want or whether there’s any influence being fed into it. Ben Thompson wrote on Stratechery years ago that there is evidence that Americans should be concerned:

    TikTok’s algorithm, unmoored from the constraints of your social network or professional content creators, is free to promote whatever videos it likes, without anyone knowing the difference. TikTok could promote a particular candidate or a particular issue in a particular geography, without anyone — except perhaps the candidate, now indebted to a Chinese company — knowing. You may be skeptical this might happen, but again, China has already demonstrated a willingness to censor speech on a platform banned in China; how much of a leap is it to think that a Party committed to ideological dominance will forever leave a route directly into the hearts and minds of millions of Americans untouched?

    Wondering about China’s influence on the TikTok algorithm isn’t xenophobic. It’s not about the people. It’s about the leadership. In the same way we can blame Putin for the war in Ukraine and still be sympathetic and trusting of the Russian people, we can be skeptical of the motivations of the Chinese Communist Party and still respect people in China, admire their culture, and welcome Chinese immigrants to America with open arms.

    And what if I’m wrong? What if it turns out there’s zero influence from the Chinese Communist Party and only pure intentions with the TikTok algorithm, as far as making a bunch of money on ads can be considered pure? TikTok is still probably a net negative for society, and I’m not going to lose sleep if their business stumbles or the bill leads to more competition in short video social networks.

    → 1:29 PM, Apr 25
    Also on Bluesky
  • A few more thoughts on AI in M.b

    I read some good blog posts this week about AI, from a range of perspectives. Micro.blog won’t be for everyone, but I do want it to appeal to folks who can’t wait for the AI-powered future and to folks who don’t think the benefits outweigh the potential harm. (And the majority who just want to blog and don’t follow the tech closely.)

    Molly White has a post today about many of the good things AI can do, along with the costs and consequences of getting too wrapped up in the hype:

    I’m glad that I took the time to experiment with AI tools, both because I understand them better and because I have found them to be useful in my day-to-day life. But even as someone who has used them and found them helpful, it’s remarkable to see the gap between what they can do and what their promoters promise they will someday be able to do.

    Many of the most useful capabilities are actually not very exciting. As an example, for years Apple and Google have used machine learning to improve photo search, so you can find photos that include pets or buildings or concerts. Today, AI can take that kind of feature and super-charge it, with remarkably accurate photo summaries.

    AI is not going to fizzle out like the blockchain. More and more software will embrace AI, in some cases going too far, sprinkling it throughout apps without any transparency into how it’s used. I could start to feel the temptation to go down that path too, which is why I took a step back to add the global AI setting this week, before we even have anything new that uses the setting.

    No major feature should be so intertwined with AI that it can’t be clearly documented and controlled by the user. Humans are the ones who think, write blog posts, share photos, and join conversations. Some developers will push the limits, but not Micro.blog. AI will be a tool to help us, in narrow, practical ways, and I’m not interested in going much beyond that.

    → 8:31 PM, Apr 17
    Also on Bluesky
  • 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.

    → 12:34 PM, Apr 16
    Also on Bluesky
  • AI Pin reviews are in

    Pretty devastating but not surprising review of Humane’s AI Pin by David Pierce at The Verge. It wraps up with some hope that this can be the first step:

    I hope Humane keeps going. I hope it builds in this basic functionality and figures out how to do more of it locally on the device without killing the battery. I hope it gets faster and more reliable. I hope Humane decides to make a watch, or smart glasses, or something more deliberately designed to be held in your hand.

    Brian Chen at The New York Times was a little more positive, but still pointed out the many shortcomings:

    I liked the chic aesthetic and concept of the pin. It was occasionally helpful, like when it suggested items to pack for my recent trip to Hawaii. But as I wore it for two weeks, it presented glaring flaws.

    Ken Kocienda has a good blog post about working on the AI Pin, how no tech product is without trade-offs, and what things might be like in the future:

    I think that LLMs are an advance on par with CPUs. Decades ago, the development of the first CPUs inspired people to make operating systems and programming models and, eventually, personal computers that allowed people to take advantage of the technology without being technologists themselves. We are at a similar moment now with LLMs, and the rate of change in Ai is far beyond what we saw decades ago with PCs. We built the Ai Pin with this historical perspective in mind.

    There are interesting ideas here but it feels like NewtonOS 1.0 — just a little ahead of its time. If Human has the money to iterate, it could be something. My unsolicited advice: drastically simplify, scrap the laser projection, and focus on speed. A smaller, cheaper, AI “button” that was nothing more than ChatGPT available everywhere would be really fun to use.

    I’m still excited about receiving my Rabbit R1, too. I was late in the pre-order queue, so likely won’t know what the device is like until much later this year. This is the time to experiment, and I don’t think companies like Humane or Rabbit should be judged too harshly on their first attempt. We’ll see where this goes.

    → 1:07 PM, Apr 12
    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.

    → 10:46 AM, Apr 5
    Also on Bluesky
  • Bluesky mentions in Micro.blog

    Some folks on Micro.blog who also actively use Bluesky have noticed something new we’ve been rolling out over the last couple of days: Micro.blog will now look for replies on Bluesky to your blog posts, bringing them into the Micro.blog timeline. This transforms Micro.blog into a base platform to manage even more of your social interactions.

    How does it work in practice? Here is the basic flow:

    1. Post to your blog. With Bluesky cross-posting enabled, Micro.blog will automatically copy your post to Bluesky.
    2. Someone on Bluesky sees your blog post and replies to your post. Their reply is copied to Micro.blog, showing up in the timeline and in the Mentions section just like replies from Micro.blog and Mastodon.
    3. Now you reply to the Bluesky post directly within Micro.blog. Micro.blog copies your reply back to Bluesky seamlessly.

    Micro.blog is effectively a universal timeline for not just Micro.blog but also ActivityPub, Bluesky, and other services. We want to make the web a little better by encouraging people to post to their own blog while still being connected to friends. That means embracing open platforms wherever they are.

    Micro.blog’s timeline is not limited to just Micro.blog accounts. You can follow blogs with a domain name, Bluesky users, Threads users, and of course Mastodon users. Micro.blog has always been a sort of mashup of blogs and social networks, and as the post-Twitter world starts to take shape, you can expect Micro.blog to also become a more powerful feed reader.

    It’s still early days for the next phase of the social web. I’m going to keep working on this, improving our support for Bluesky, including the eventual push toward making Micro.blog a personal data server with the AT Protocol. We’re not quite there yet but we’re getting closer.

    → 8:44 AM, Mar 31
    Also on Bluesky
  • FEP for supported ActivityStreams types

    One of the discussions at FediForum this week that was the most valuable for me was the session by Nic Clayton for FEP-9fd3. The goal is for servers to advertise what features of the Mastodon client API they can support, such as creating a poll or boosting a post. Clients could recognize if a server didn’t support a feature and hide it from the UI.

    I’ve been holding off adding Mastodon client API support to Micro.blog until we have some kind of convention for this. As the fediverse grows, we’ll naturally see a wide range of servers and clients, and not all of them will exactly match the features that Mastodon supports. Micro.blog does not include public likes or boosts, for example. It would be confusing for a boost icon to just show an error message when clicked.

    FEP-9fd3 attempts to solve this by listing “operations” for a server, with a versioning system. There is also the related FEP-6481 that lists “extensions” to the standard suite of ActivityStreams types. BookWyrm, for example, supports most of the standard types but also adds a book “Review” type.

    I don’t think either of these is quite right for what is needed. Instead, at FediForum we discussed an idea to describe the activity and object types a server supports by name. I’m imagining the format to look something like this, in NodeInfo:

    {
      "types": {
        "activities": [
          "Create",
          "Like",
          "Announce",
          "Question",
          "Move"
        ],
        "objects": [
          "Note",
          "Article",
          "Image"
        ],
        "properties": {
          "Question": [ "oneOf" ],
          "Move": [ "object", "target" ],
          "Note": [ "summary", "content", "published", "inReplyTo" ],
          "Article": [ "name", "content", "published" ]
        }
      }
    }
    

    Specifying properties would be optional. An empty array would indicate that a server supported all common properties for that object. If the “types” field was missing from NodeInfo, clients could assume a server supported everything, just as they do today for Mastodon servers. I’m not tied to this format, although I like that it’s fairly clean. There are many ways to describe this sort of thing.

    Another issue is that we’re sort of mixing ActivityPub types with the Mastodon client API. The client API has its own name for things, like “statuses” instead of “notes”, and “polls” instead of “questions”. While the goal is to adapt API clients, defining this based on an existing standard makes some sense to me, and would naturally translate to the ActivityPub Client to Server API, which really should be used more often.

    If there’s interest, I’d be happy to work with someone to formalize this in a FEP. It feels like an important missing piece.

    → 9:51 AM, Mar 22
    Also on Bluesky
  • Early thoughts on United States vs. Apple

    I’m reading through the lawsuit document intro and skimming the rest. I only have strong opinions about the App Store and developer aspects of the case. Some of the arguments in the case about messaging apps and watches seem more flimsy to me, but perhaps good things will come from the broader scope.

    Here’s a small section about the App Store:

    Rather than respond to competitive threats by offering lower smartphone prices to consumers or better monetization for developers, Apple would meet competitive threats by imposing a series of shapeshifting rules and restrictions in its App Store guidelines and developer agreements that would allow Apple to extract higher fees, thwart innovation, offer a less secure or degraded user experience, and throttle competitive alternatives.

    This is basically true. I don’t think Apple is obligated to make iPhones less expensive, of course, but switching costs away from iOS are significant, for developers and users, helping maintain the status quo. Competition across iOS and Android platforms is important, but competition just within iOS is important too. My complaints have always been about Apple’s exclusive control over app distribution, regardless of Android.

    An antitrust lawsuit is about size. The government isn’t suing game console makers even though they control game distribution (and charge too much to developers) because game consoles are not general-purpose computers, and they sell in a small fraction of the numbers that Apple sells smartphones. For many people, an iPhone is their best computer. The scale and impact to society is on a completely different level.

    Even though there is a smartphone duopoly with iOS and Android, iOS alone reaches so many hundreds of millions of people that it is effectively a market on its own. If you want to build and distribute for the most commercially viable smartphone platform, you have no choice but to follow Apple’s rules. Until Apple lets developers route around that monopoly through external payments and sideloading, there will be pushback.

    Apple leadership might still see the company as the upstart, but the rest of the world sees size and power. Apple should settle the lawsuit, accept App Store changes similar to those required by the Digital Markets Act, and move on. There is no winning this once the tide has turned against you.

    → 1:29 PM, Mar 21
    Also on Bluesky
  • Threads opt-in vs. fediverse migration

    As Threads rolls out support for ActivityPub, Meta’s approach is to require each Threads user to manually enable fediverse integration. This was demoed yesterday at FediForum. It’s a perfectly reasonable way to start, and I think the UI that Threads has come up with looks good.

    There are problems with opt-in, though, particularly around account migration. Adam Mosseri has spoken about Meta’s long-term goal to use ActivityPub to let users move away from Threads:

    …this is an open protocol for social networks so that they can talk to each other, and so you can actually even move eventually your followers from one app to another…

    Migrating followers will only work if the followers have enabled fediverse support. Why? The way ActivityPub account migration works, the server holding the user’s account essentially sends a “move” activity to each follower. The follower’s server then updates their reference to point to the new, external server. For Threads, this will presumably do nothing if the follower has not enabled the fediverse, because there will be no way to follow and interact with a user outside of Threads.

    So if someone has 100 followers, and only 5% have enabled the fediverse, when that person migrates away from Threads to Mastodon or Micro.blog, for example, only 5 of their followers will automatically follow the new account. This will be quite a big decrease in followers and discourage Threads users from migrating.

    It is still early, and I think Threads has been very thoughtful about their approach. Account migration is an area that I hope they will consider more fully. There are ramifications for mixing accounts — some with fediverse support and some without — and long-term it becomes very complicated unless Threads goes all-in on the fediverse.

    → 11:21 AM, Mar 20
    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!

    → 2:48 PM, Mar 11
    Also on Bluesky
  • An update on the pricing update

    When we simplified our pricing, some folks asked if it was such a good deal for customers that we would be losing money as a company. I calculated what the initial revenue hit would be before making the decision. We decided it was worth it to make Micro.blog Premium more appealing. It would pay off in the long run.

    I’ll share a couple more details for folks who are curious. Monthly recurring revenue was down about 2% as soon as the change rolled out. As I blogged about, some people who might be paying $15/month would see their cost go down to $10/month. This was in line with expectations.

    The old pricing was optimized for people who might want to pay for lots of blogs, but the reality is that almost no one wants to do that. Micro.blog is for normal people, not enterprise customers. The new pricing better fits the customers we want to have. People who have a main personal blog and might want to experiment with an extra blog or two later. People like us!

    Now that it has been a couple weeks, I’m even more confident that this change has been great. We’ve already seen more people upgrade to Micro.blog Premium, making up for most of the initial revenue loss. The interface for upgrading and downgrading is much easier than before. Less friction means we can nudge more people to give Micro.blog Premium a try for a month.

    There are still a couple lingering glitches with trials and upgrades that I’m working through this week. Overall, couldn’t be happier with the change, and I think Micro.blog customers are happier too.

    → 12:01 PM, Feb 27
    Also on Bluesky
  • Bluesky opening up federation

    Bluesky has a couple new blog posts and info around the production deploy of federation. From their main blog post:

    The ability to host your own data, just as you might run your own website, provides the fundamental guarantee that social media will never again be controlled by only one company. Even if Bluesky were to disappear, if the data is hosted across different sites, the network can be rebuilt. The fact that it requires no permission to set up a new website is what has made the open web such a dynamic and creative force.

    If you’re mostly familiar with Mastodon’s view of the social web, keep in mind that Bluesky’s AT Protocol is very different than ActivityPub. Both specs solve different problems. If you thought ActivityPub was complicated, just wait until you go down the rabbit hole of AT and Merkle search trees! It is wonderful and terrible. 🤪

    For Micro.blog, today we support cross-posting to Bluesky, so we’ve already dipped our toes into the XRPC API. I blogged last year about what I learned with sending posts to Bluesky.

    The long-term plan for Micro.blog is to fully support AT’s PDS — Personal Data Servers. Any blog hosted on Micro.blog would plug into Bluesky seamlessly, with data portable to other AT Protocol hosting providers. However, we are going to go slowly with this. I would say it is several months away.

    → 10:30 AM, Feb 23
    Also on Bluesky
  • Simplified pricing in Micro.blog

    Micro.blog has always had per-blog pricing. Hosting one blog was $5, two blogs was $10, three blogs was $15, and so on. On top of that, Micro.blog Premium added additional features either to a specific blog (like podcast hosting, video, and email newsletters) or across the platform (like our new notes feature).

    The reason this pricing appealed to me is that by charging for each blog, we could keep the standard plan as low as possible for most people who only have one blog. If you needed multiple blogs, upgrading added on to the subscription in a way that seemed fair to us and customers.

    Over the years we’ve had problems with this pricing, though. It was confusing to keep track of. There have even been billing mistakes because the code for subscriptions was too complicated. Instead of obvious tiers on your account, each blog was effectively its own tier, with tricky scenarios when trials and yearly pricing are mixed in.

    Today that’s changing. We are getting rid of the per-blog pricing. Instead, there will be three simple plans, and Micro.blog Premium will now include multiple blogs.

    • $5: one blog with all the basic features
    • $10: Micro.blog Premium, all the advanced features and up to 5 blogs included
    • $15: Micro.blog Family, same as Premium but up to 5 users can post to any of your blogs

    Additionally, there will continue to be no charge for hosting extra single-page web sites and test blogs. The new “up to 5 blogs” count is for normal, full blogs.

    Most people only have one blog. If you do already have multiple blogs, this pricing change may mean you’ll be paying less. By the time you read this, your subscription should have been updated to reflect the change.

    For example, if you had two blogs, one standard blog and one using Micro.blog Premium, previously that would have been $5 + $10 = $15. Now, having two blogs is covered in Micro.blog Premium, so your cost goes down to $10. Or if you had two $5 blogs already, you’ve been upgraded to Micro.blog Premium automatically because it’s the same price you were paying before.

    Micro.blog has been updated throughout to reflect this pricing change, including a redesigned Plans page to upgrade or downgrade your account. Creating new blogs is simpler too.

    I’m biased, but I think Micro.blog hosting is one of the best values on the web. Nothing else comes close to the depth of features. Hope you like Micro.blog as much as we like building it.

    → 5:09 PM, Feb 21
    Also on Bluesky
  • Apple is twisting the truth

    I don’t want my whole life to be writing blog posts and podcasting about Apple’s changes for the EU’s Digital Markets Act, but this latest developer update from Apple feels like an insult to developers, playing us for fools.

    Let’s start with how Apple keeps mentioning all the new APIs that are part of this rollout:

    To comply with the Digital Markets Act, Apple has done an enormous amount of engineering work to add new functionality and capabilities for developers and users in the European Union — including more than 600 new APIs and a wide range of developer tools.

    They said the same thing in the initial news announcement:

    The changes include more than 600 new APIs, expanded app analytics, functionality for alternative browser engines, and options for processing app payments and distributing iOS apps.

    Apple repeatedly talks about these “600 new APIs” as if it is a favor to developers, but it was Apple’s choice to handle it this way. For example, to comply with the DMA’s requirements on sideloading or marketplaces, Apple could’ve chosen a system similar to installing apps from TestFlight. This would require zero new APIs for developers, just as TestFlight itself has no new APIs when building a beta version of your app.

    Apple created the new APIs — a significant number in MarketplaceKit alone — so that they would have control over distribution. By both reviewing marketplaces and requiring that marketplaces use new APIs to install apps, Apple can track app install numbers, allowing them to invoice developers the new €0.50 Core Technology Fee. The new APIs help Apple, not developers.

    Moving on to the web browser update, there is going to be universal concern from web developers about Apple disabling PWAs in the EU. On letting web apps use browser engines other than WebKit, Apple writes:

    Without this type of isolation and enforcement, malicious web apps could read data from other web apps and recapture their permissions to gain access to a user’s camera, microphone or location without a user’s consent. Browsers also could install web apps on the system without a user’s awareness and consent.

    Was this statement from Apple written by a hallucinating AI? All mainstream web browsers have a strict security model for JavaScript. Cookies and local storage cannot be accessed across web apps. It’s even difficult or impossible to make certain web requests from JavaScript because of cross-site scripting and CORS limitations. The only way this could be circumvented is with a rogue web browser engine that did away with these standard constraints, but Apple already has this scenario covered because they approve every browser engine:

    To help keep users safe online, Apple will only authorize developers to implement alternative browser engines after meeting specific criteria and committing to a number of ongoing privacy and security requirements, including timely security updates to address emerging threats and vulnerabilities.

    Users want to run Firefox and Chrome, popular browsers that are trusted by users. The DMA was created to allow this kind of choice. No one is asking Apple to blindly let browser engine malware take over home screens.

    Some have argued that the DMA is poorly written, or at least too vague and open to interpretation. It actually gives gatekeepers like Apple significant leeway when it comes to security. Quoting from section 6.4:

    The gatekeeper shall not be prevented from taking, to the extent that they are strictly necessary and proportionate, measures to ensure that third-party software applications or software application stores do not endanger the integrity of the hardware or operating system provided by the gatekeeper, provided that such measures are duly justified by the gatekeeper.

    Apple has clearly jumped on this to give themselves an out, ignoring the spirit of the law. When it benefits Apple, they take the DMA requirements much further than intended. When it doesn’t benefit them, they lean back on the “integrity” of iOS and barely comply at all.

    Wrapping up, Apple writes:

    EU users will be able to continue accessing websites directly from their Home Screen through a bookmark with minimal impact to their functionality. We expect this change to affect a small number of users. Still, we regret any impact this change — that was made as part of the work to comply with the DMA — may have on developers of Home Screen web apps and our users.

    It is hard to take this seriously after Apple’s bad-faith effort to comply with the DMA. I’m sure WebKit engineers regret this change, but Apple leadership doesn’t. By limiting PWAs just as PWAs are starting to be competitive with native apps, Apple ensures that native apps have no real competition on iOS, strengthening Apple’s hold on app distribution.

    → 11:45 AM, Feb 16
    Also on Bluesky
  • Mastodon and public data

    I’ve been thinking about Mastodon and the fallout from Bridgy’s plan to connect ActivityPub servers to Bluesky. For a snapshot of how this blew up, see this GitHub issue discussion, now thankfully closed after it devolved into personal attacks.

    It often feels that (some) Mastodon folks care more about Mastodon as a platform than they care about the open web as a platform. I’m not sure if that’s a completely fair framing, but thinking about it this way has helped clarify my view of debates around public posts.

    When I post to my blog, my posts are on the web, and so hopefully make the web a little better. I’m contributing to sort of a larger purpose, something I can refer to later myself, and maybe something others will find value in too. It’s a subtly different mindset than posting to a specific platform where I mostly expect my followers to see it.

    My blog is connected via ActivityPub to Mastodon, and via cross-posting to Bluesky, Nostr, Threads, and elsewhere. But I could disconnect those platforms and it wouldn’t change much about how I post and what I write about.

    That’s not to say there aren’t great reasons to prefer a smaller, more controlled audience. We have Mastodon post visibility to limit who can see posts. We have robots.txt to discourage search engines. We have settings to make posts ephemeral. As Bridgy developer Ryan Barrett said himself in an article on TechCrunch, this level of control is one thing that has made Mastodon a good online home for many people:

    A lot of the people there, especially people who have been there for a while, came from more traditional centralized social networks and got mistreated and abused there, so they came looking for and tried to put together a space that was safer, smaller and more controlled. They expect consent for anything they do with their data.

    I respect this view. It’s not how I approach my own blog, but I would never argue that someone shouldn’t be able to protect themselves. There should be a variety of approaches in between sharing everything online and sharing nothing.

    And we do have additional solutions already. Mastodon server administrators can block other servers that are causing problems. Users can mute or block other users. These solutions apply equally to Mastodon servers and to a potential Bluesky bridge.

    If there are no technical differences between blocking a rogue Mastodon server and a Bluesky bridge, what are people truly concerned about? It often appears to get back to identifying with Mastodon and its principles, and inherently distrusting other companies, fearing a return to the worst of massive, centralized platforms.

    If this sounds familiar, it’s not unlike the reaction many had when Threads was rumored to support ActivityPub. I blogged about this last year, hoping more people would see it as a positive step forward:

    Meta adopting ActivityPub has the potential to fast-forward the progress of the social web by years. Ever since I grew disillusioned with Twitter a decade ago and started pushing for indie microblogs, then writing a book about social networks and founding Micro.blog, I could only dream of a moment where a massive tech company embraced such a fundamental open API.

    Smaller social networks are an important part of finding our way out of the social network mess of larger, especially ad-based platforms. Mastodon deserves enormous credit for making federation and smaller servers actually work. I can’t overstate how significant it was for Mastodon to be a mature platform that could welcome users leaving Twitter X.

    Federation is just one part of the progress we can make, though. We also need to embrace the open web again, encouraging more people to have their own blog and identity online. Bridgy has been working toward these goals for years, helping people connect their blog to other social networks.

    My concern with some Mastodon users (again, not everyone!) pushing back against interoperability with non-Mastodon platforms is that it moves Mastodon away from the open web, which is surely at odds with the original purpose of Mastodon and many of its features, from an open client API to federation itself. We can already see some signs of Mastodon putting up slight roadblocks to open web access. For example, permalink posts on Mastodon require JavaScript — you can’t view HTML source and get the post details, making it a little more difficult to build tools that understand Mastodon pages. At the API level, some servers also require signed ActivityPub requests, making it a little more difficult to look up user profiles.

    The developer community for Mastodon is free to make any of these decisions they want. To play this out to its most extreme version, they could even disable RSS feeds, treating Mastodon servers more like protected, mini silos.

    But moving away from openness will not only limit the potential of the fediverse, it risks holding back the larger social web. If there’s a knee-jerk reaction to interoperability with other platforms, Mastodon may find that its head start as the largest federated platform becomes eroded, eclipsed by Bluesky and other platforms. I would ask the folks on Mastodon who are so strongly against bridging to Bluesky if that’s the future they really want.

    → 3:23 PM, Feb 15
    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.
    → 11:09 AM, Feb 13
    Also on Bluesky
  • Bluesky domain handles in Micro.blog

    I’ve always liked how Bluesky uses a domain name for your handle. Starting today, Micro.blog has built-in support for verifying these! If you’ve signed into Bluesky with Micro.blog, it will automatically return your AT Protocol “DID” from the .well-known URL for your blog. No DNS fiddling.

    In more detail, it looks something like this:

    • Your blog is (for example) myblog.com hosted on Micro.blog.
    • Your handle on Bluesky is @myuser.bsky.social but you want it to be just @myblog.com.
    • Sign into Bluesky in Micro.blog under Account → Edit Sources & Cross-posting.
    • Go back to Bluesky and change your handle to @myblog.com. You’ll want to choose the “No DNS Panel” option.

    That’s it! Bluesky will check with Micro.blog to verify that it’s your blog. After everything is set up, you may need to go back to your cross-posting settings and update to use your new Bluesky handle too, if you want Micro.blog to send blog posts over there automatically.

    → 12:06 PM, Feb 8
    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!

    → 11:00 AM, Feb 5
    Also on Bluesky
  • Step one, take off the headset

    Steve Troughton-Smith asks an interesting question on Mastodon:

    “Why would anybody use my app in VR?” isn’t the right question to ask yourself. It’s “do I want my users to have to take off their headset to use my app?”

    His post is clearly intended to have the obvious answer “no”, but I’m not sure there is a universal answer. I decided to opt-out of visionOS for my iPad apps, for now. I’m not sold on the device yet, and I have a bunch of other things to work on anyway.

    It got me thinking about Apple’s own apps. For example, Books. Would you want to read a novel inside VR? You aren’t going to want to have Slack and other apps floating in space to distract you. An iPad seems like a better device for reading. Maybe if the book is surrounded by a virtual environment from the book within visionOS, adding a sense of being there? Apple seems to think so, because it does include the iPad version of Books with the Vision Pro.

    Through the history of technology there are many “just because we could do it” moments. TikTok has swiping through an infinite feed of limitless content and users are probably worse off for it. I think the Vision Pro is going to be the same way, as developers feel out what makes sense on the device, and consider what is right for users. If some apps require taking off the headset, that might even be a good thing.

    → 4:28 PM, Feb 1
    Also on Bluesky
  • Apple needs a flop

    Early reviews for the Vision Pro dropped this week. This device is technically amazing, with well-considered solutions to the problems of VR. My takeaway from the reviews is that I want to try it, but I’m okay waiting before I need to own a bit of this future that Apple is promising us. I’d like to see something closer to true AR, not mixed reality, in a more lightweight, affordable form factor.

    When the pre-orders ship later this week, early adopters will unpack the headset, post to social media about how amazing it is, and then largely go back to using their MacBook Pro for real work. We are already too isolated from our fellow humans, and there are too many environments — coffee shops, libraries, and other public spaces — that are not suitable for the Vision Pro.

    Apple has an incredible track record since Steve Jobs returned to the company, and continuing with Tim Cook. Very few misses, and some of the controversies like Antennagate were overblown. As long as I have been using Macs, going back to the early 1990s, Apple’s dedication to great design and putting the user first has served them well. There is a lot to be proud of, including initiatives alongside products, such as their commitment to the environment.

    But increasingly, it feels like this success has inflated Apple’s view of themselves, twisting their perspective of what matters. They’ve become arrogant, as if entitled to future success too. As I posted in the context of their response to the EU’s Digital Markets Act:

    Because of their decades of truly great products, Apple thinks they are more clever than anyone else. Because of their focus on privacy, Apple thinks they are righteous. Because of their financial success, Apple thinks they are more powerful than governments. The DMA will test whether they’re right.

    Maybe we’re at a crossroads for the company. Apple was great as the underdog, when they were humbled, fighting to out-innovate the competition. What came after the Lisa? The Macintosh. After almost going bankrupt? Think Different and the iMac. After the butterfly keyboard? Some of the best MacBooks ever made.

    Apple is now so powerful, with so much control over computing… They need a failure. They need to see a new product stumble in the market. They need to remember what it feels like to realize something isn’t working, to take a fresh look at their priorities, and to reflect on how they treat users and developers. They need to be more focused in what they do, leaving a little room for the rest of us to build something too.

    I don’t wish a flop on the Vision Pro product team. They’ve put an extraordinary amount of good work into it. But we all have a mix of successes and failures in life and business. It keeps us grounded. It helps us set priorities. We learn from it and move on to the next thing.

    And if the initial Vision Pro doesn’t find a mainstream audience, that doesn’t mean there isn’t a revolutionary interaction model there. Maybe spacial computing is part of the future. Maybe if Apple sticks with it, we’ll look back on how they pushed the idea forward even when the first generation product didn’t pan out.

    Trillion-dollar companies need to make trade-offs too. Because Apple has been working on the Vision Pro as the next big thing, what have they missed that needed their attention?

    We should hold Apple to a high standard because they’ve earned it. I just don’t believe in the soul of the company the way I used to. As Brent Simmons reminds us, corporations are not people. Apple does so much — Macs, iPhones, iPads, watches, headphones, ads, video services, movie production, cloud storage, news, fitness, the App Store, platform fees, goggles — that I’m not sure there is still a cohesive story around what they stand for, other than money.

    → 12:28 PM, Jan 31
    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.

    → 4:39 PM, Jan 29
    Also on Bluesky
  • Fixing the App Store, part 2

    In a blog post from 2020, I suggested four changes to fix the App Store for developers: 1) allow sideloading; 2) don’t require in-app purchase; 3) keep curating the App Store; and 4) lower the cut to 15%. I described each of these in more detail in that post, so I won’t repeat the reasoning here.

    With this week’s App Store changes for the EU’s Digital Markets Act, let’s revisit how Apple is doing with those four points:

    • Allow sideloading? Not really. Instead, there is a new type of marketplace app that can install other apps. There are hurdles to jump through to become a marketplace app. For Micro.blog, I was imagining that I could have a marketplace app just for our suite of iOS apps, thus bypassing app review going forward, but this doesn’t seem like it is going to work in practice. Furthermore, there is a new Core Technology Fee that would still apply.
    • Don’t require in-app purchase? Sort of. If you opt-in to the new rules, you can use your own payment system, or link to external payments on the web. The problem is Apple still wants 10% (for small developers), so there is little to no savings, and it creates new bookkeeping problems. The only way to avoid the fee is to have an app on a third-party marketplace. Even then, you’re still subjected to the Core Technology Fee.
    • Keep curating the App Store? Yes. Isn’t very relevant here, though, and Apple is no closer to adopting my vision for how to run the App Store.
    • Lower the cut to 15%? Yes. It can be as low as 13% now. But again, there’s the Core Technology Fee to offset any savings if you have more than a million installs.

    This is all pretty disappointing. I have been bitter about the App Store for years, but yesterday I tried to keep an open mind. I was initially excited about the potential for marketplaces. I blogged that it seemed like a good-faith effort to comply with the DMA. Apple had put a bunch of work into this, in documentation and new APIs. The more I understood it, though, the less compelling it became. In some cases it will be worse than what we had before.

    My opinion from way back in 2011 hasn’t changed. The problem is Apple’s total control over app distribution, and so the only permanent fix for the App Store is removing that control with true sideloading:

    Apple, want to charge 30%? Go for it. Want to make the submission rules more strict? Fine. Want to adjust how you run the App Store to reflect what’s happening in the market? No problem. Just give developers an out. We are going to be back here year after year with the latest controversy until exclusive app distribution is fixed.

    I wrote that thirteen years ago and it has proven correct every single year since. The DMA attempted to address this, but Apple’s response comes up short. Instead of fixing the root problem, Apple has added an even more complex set of bandaids to preserve their control over the store.

    (As an aside, see that quote from Steve Jobs about free apps in my blog post? The Core Technology Fee is a major departure from Steve’s framing. Apple now wants to charge free apps for the first time based on installs alone.)

    So, is Apple actually in compliance with the DMA? Rick VanMeter, from the Coalition for App Fairness, says no. There’s also a thorough post by Damien Geradin on The Platform Law Blog that reaches the same conclusion:

    As to whether the reduced commissions comply with FRAND. The answer is an unequivocal no. These commissions are not fair and reasonable for the reasons described in the preceding paragraph. But they are also discriminatory. The reason is that app developers whose apps sell digital goods and services and those whose apps don’t, effectively use the same app store services, but are treated differently.

    I don’t know where we go from here. It always feels like two steps forward, then back. The EU must stand firm. I’m tired of ending up in the same place, over and over.

    → 1:02 PM, Jan 26
    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.

    → 5:03 PM, Jan 22
    Also on Bluesky
  • Micro.blog category improvements

    There has been a long-standing issue in Micro.blog where blog category names had to be ASCII characters. No more! Today I rolled out a few major, related improvements to categories:

    • Category names can now contain special characters. This is important for non-English languages.
    • Category URLs can be customized. So if a category is “Café”, the category slug can be “cafe” without the accent.
    • Category URLs can even be outside the usual “/categories” path. So instead of “/categories/books”, you can just use “/books”.

    These customizations are available with a new field on the edit category page. I hope folks enjoy this extra flexibility. Also note that it’s possible to create new conflicts, such as the same path being used for standalone pages and categories… Just be mindful of this when creating pages.

    → 4:30 PM, Jan 15
    Also on Bluesky
  • The case for .bar

    Micro.blog supports importing from a lot of different services: Twitter, WordPress, Medium, Tumblr, Ghost, Markdown, Substack, Write.as, Foursquare, Goodreads, and others. For each one we want to add, I download an archive from a test account on the external service to figure out what the format looks like, then write custom code to handle it.

    None of these formats look anything like one another. Just a few examples:

    • WordPress uses an RSS file with extra fields for WordPress-specific info. No images are included, although they can be downloaded separately.
    • Ghost includes a JSON file with their own fields. There are some weird quirks like the placeholder string __GHOST_URL__ being used in image URLs.
    • Substack has a ZIP file with a CSV file inside and individual .html files for each post.

    Some services have an even less stable format. Both Twitter and Instagram have changed their format after it was widely used, requiring us to retool our import. And Glass’s export file does not include post dates or text captions.

    One of the great things about indie microblogging is owning your own domain and so being able to move between services. But without a common format, it can be very difficult to migrate posts.

    This is why I proposed the Blog Archive format (.bar) back in 2017. It’s essentially a ZIP file with all the posts and images for your blog. It uses JSON and HTML. There is nothing in it that is specific to any one blog platform, but it’s easy to extend with your own data if needed.

    Micro.blog for macOS even supports previewing these .bar files. Double-click the file and it will show a list of the posts that will be imported. And because it’s really just a .zip file, you can rename it and use it anywhere. Or treat it as a single file that can be backed up.

    In the years since I started using .bar, I’ve still yet to see any competing file format that solves the same problem. I’d love to see it become more widely supported.

    → 3:02 PM, Jan 14
    Also on Bluesky
  • Kickstarter update with ePub

    Today I sent the following update to Kickstarter backers about the ePub version of Indie Microblogging. Note that the link to download the book is disabled below. This is for Kickstarter backers first, then we’ll sort out how to get it to everyone else.


    Today I’m making a near-final draft of my book Indie Microblogging available to Kickstarter backers in ePub format. You can load this up on a Kindle, Apple’s Books app, or your favorite e-book reader. The latest version is also available on the web at book.micro.blog.

    Over the last year, I’ve updated the book for recent events that affect blogging and social networks, such as Elon Musk acquiring Twitter, Meta’s Threads launch, and the latest with Bluesky. There’s also a new interview with Om Malik. I’m still planning to go through the book one more time and refine what is there before we officially call this done.

    If you aren’t ready to jump into the book, I suggest skimming the version on the web to get a feel for the content, but wait to download the ePub until later, to make sure you have the latest draft.

    The ePub file is [available for download here].

    What about the PDF and print edition of the book? I’ll be sending another update to Kickstarter backers with more information about that. It has been years since the original Kickstarter campaign, so I expect many of you have moved, and I want to make sure that we have everyone’s correct shipping address.

    Thanks as always for your patience and support! And especially to everyone who is using Micro.blog. The platform has come a long way, and there’s more to come in 2024.

    → 9:33 AM, Jan 6
    Also on Bluesky
  • Year in books for 2023

    Here are the books I finished reading in 2023. I thought I might finish another one this weekend, but it’s not going to happen, so might as well post this today. Happy New Year!

    Age of Legend The Ocean at the End of the Lane Divergent Age of War The House in the Cerulean Sea She Who Became the Sun Shadows for Silence in the Forests of Hell Age of Swords The Sunlit Man Cloud Cuckoo Land Age of Myth Dungeons & Dragons: Honor Among Thieves: The Druid's Call The Ember Blade (The Darkwater Legacy) Yumi and the Nightmare Painter The Magician's Daughter A Prayer for the Crown-Shy The Frugal Wizard’s Handbook for Surviving Medieval England A Psalm for the Wild-Built (Monk & Robot Book 1) Astrophysics for People in a Hurry Recursion Tomorrow, and Tomorrow, and Tomorrow Spinning Silver The Cat who Saved Books Elder Race Assassin's Quest Ready Player One Royal Assassin The Dragon Republic River of Stars The Poppy War (The Poppy War, #1) The Kingdom of Back Assassin's Apprentice Tress of the Emerald Sea The Exchange
    → 11:13 AM, Dec 31
  • Bluesky replies via Bridgy

    Blogs and social networks talking to each other is still kind of magic. If you’re on the latest version of Micro.blog’s Alpine theme, replies from Bluesky can now flow into Micro.blog via Bridgy. We’ll be updating all the blog themes to support this, or you can modify your theme.

    This works by signing into Bridgy so that it knows how to link your blog and your Bluesky account. Then if you have cross-posting enabled to copy blog posts to Bluesky, Bridgy will look for replies and match them up to the canonical version of the blog post. It then sends a webmention to Micro.blog.

    In the Alpine theme, I’m telling Bridgy about this relationship using the u-syndication microformat. I have it hidden for now, but it can just as easily be an icon or text link to Bluesky:

    {{ if .Params.bluesky }}
      <a class="u-syndication" {{ printf "href=%q" .Params.bluesky.url | safeHTMLAttr }} style="display: none;">Also on Bluesky</a>
    {{ end }}
    

    Eventually this will all be more automatic. Replies back to Bluesky aren’t possible yet, so you’ll still need to click through to Bluesky to reply. But even now if you don’t mind tinkering, a lot is possible. It’s cool to see replies from Bluesky just show up like normal replies in the Micro.blog timeline. Because Bluesky uses domain names for usernames, they fit naturally into the way Micro.blog thinks about the web.

    → 12:13 PM, Dec 28
    Also on Bluesky
  • Public Storage is maybe too public

    “I just had this weird feeling that my money wasn’t safe here anymore.” — Sneakers

    Some people wondered about my vague microblog post last week. I didn’t post the details because I didn’t know everything about the situation yet, but now I do.

    After 16 years in the same house, we moved this year, putting our old house on the market. The kids had all moved out. It was a good time to downsize, move a little closer into town, and maybe simplify. We had accumulated so many things, including thousands of books which I didn’t want to part with. The easiest way to solve this seemed to donate everything we could and then just box the rest up and rent a storage unit somewhere, to give us time to move and go through things more slowly.

    This mostly worked out great. We recently downsized the storage to a smaller unit, because almost everything had been moved.

    Fast forward to last week, I got a message from the storage facility that the lock on our unit needed to be replaced. No other details. We went up there and discovered a new lock on our door. The metal around the door was a little bent out of shape. I was able to point my camera into the grate at the top to look in. Someone had clearly broken in and messed everything up. Boxes were moved and at first it looked like half of our stuff was missing.

    I often reflect on how lucky I’ve been in my life. Very few regrets, only a couple true setbacks to complain about. No one has ever robbed me! (Except identity theft to go on a shopping spree in my name, which was annoying and a huge waste of time, but fixable.)

    What hit me hard about this was the irreplaceable stuff. I was imagining photos that were never scanned, family videos on VHS from my grandparents, my kids' old artwork from school, random documents, some stuff I’ve never even seen because I kept putting off digitizing it. I don’t worry about losing laptops, tech gadgets, or books. It’s the stuff that money and insurance can’t fix that hurts.

    The next day I got to meet with the manager and get inside our storage unit. Turned out someone had made a run on multiple locations. They rented a unit to get an access code for the gate and elevator, then I guess cut locks or used a crowbar to open whatever they could. Other renters were there like I was, trying to understand what in their stuff was missing.

    This is where the story ends with good news. Sorting through our stuff, I think everything actually important remained, just tossed around, boxes ripped open. The thief even skipped over old MacBooks and iPods. Maybe they were looking for guns? TVs to pawn? Who knows.

    I’m still trying to understand what is missing, but even worst case now it might be a few inconsequential things or nothing at all, not what I had feared. Mostly a happy ending, and lessons learned. Please make copies of everything that matters.

    → 10:28 AM, Dec 28
  • 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! 🎄

    → 11:39 AM, Dec 24
    Also on Bluesky
  • Adam Mosseri on Threads plans, video transcript

    Yesterday, Meta started enabling limited support for ActivityPub in Threads, mostly around following Threads users from platforms like Mastodon and Micro.blog. Adam Mosseri had an excellent video update on Threads that gave the most detailed look into their roadmap:

    This work is taking longer than we thought given our safety work, given our compliance work, and given all the scrutiny on our company. But over 2024 we’re going to be adding the ability to post from Threads to these other servers. We’re going to eventually also support the ability to show replies in Threads natively, and eventually allow you to even follow accounts on those other servers from the Threads app itself.

    I made a transcript of his video because it contains more than his text posts on Threads. I transcribed it with Audio Hijack and Micro.blog and then double-checked it with the subtitles on Adam’s video. You can read the full thing in this Gist.

    → 11:47 AM, Dec 15
    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.

    → 4:10 PM, Dec 9
  • iA Writer 7

    Nice approach in iA Writer 7 for pasting ChatGPT output into your writing and tracking your edits to make it your own. There is also a Markdown extension for attribution in a range of text. However, I found this part of their blog post a little puzzling:

    While the format is open, avoid cloning our work. Draw inspiration from what we made. Change it. Improve it. Design it yourself. Work on it until it is substantially better. If you can’t beat our design, then let it be and do something else.

    There is a long history with text editors of drawing inspiration from features in competing products. What iA Writer has built here is not easy technically. If someone eventually copies it, I would chalk it up as praise and move on to the next thing. (Admittedly that’s easy for me to say as an outsider, though.)

    Also, a reminder that iA Writer supports native publishing to Micro.blog! It’s a great writing app with elegant support of Markdown. Despite my nitpick above, I do like their thoughtful take on AI integration, and I think version 7 is going to be well received.

    → 5:06 PM, Nov 30
  • Happy anniversary ChatGPT

    One year ago today, ChatGPT was released. It’s not that often that products truly change things. Whether you think artificial general intelligence is just a few years off or that it will remain a pipe dream forever, there’s no question that some form of AI is going to be part of so many products going forward.

    AI is a tool. Even imperfect, it is incredibly useful. Looking back, I can’t believe I was so skeptical of its impact. I ignored ChatGPT for months.

    This week I was creating a web page to show a grid of Micro.blog feature names, experimenting with different ways to highlight all of the things Micro.blog can do. I turned to ChatGPT to help me get started, like asking it this question:

    Can you generate 10 colors that look kind of like #f80 and go good together?

    Or this one:

    Let’s say you have 87 HTML spans with id attributes 1 to 87. Write JS that randomizes the numbers 1 through 87, then loops over each one and sets it’s background color from an item in a list called colors.

    And then:

    Add a random delay before setting each color, from 1 to 2 seconds?

    And so on. It probably saved me an hour. I’m still working on it, but you can see the result so far in this video.

    This kind of functionality is why Microsoft’s “Copilot” branding is so good. AI is the little assistant that helps you with random tasks. Coding, brainstorming, writing. In the above examples, it didn’t replace my job. I still needed to take the output and tweak it, move things around, add my own code, think about the design.

    Earlier this year when we added Twitter import to Micro.blog, I used AI to help make an illustration for the web page. I combined the output with my own sketches, compositing things together, adding color. AI was my junior artist assistant, helping me create something that I couldn’t dedicate enough time for on my own.

    And in Micro.blog, we now use OpenAI to automatically transcribe podcasts for all Micro.blog Premium subscribers. I’m interested in finding more use cases like this: not using AI to replace our creativity — Micro.blog will always be about personal blogs, written by humans — but to automate tedious work.

    I have no idea where AI will be in another year. I won’t obsess about it too much, and I won’t follow where it leads blindly, but I’m fascinated to watch it evolve, waiting for the opportunities that bring clear benefits to our work.

    → 10:41 AM, Nov 30
    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.

    → 10:52 AM, Nov 29
    Also on Bluesky
  • Default apps for 2023

    There have been a bunch of “what apps am I using?” blog posts recently, inspired by an episode of Hemispheric Views. Robb Knight has a page with links to other people’s posts.

    Here’s my list:

    • 📨 Mail Client: Hey
    • 📮 Mail Server: Fastmail and Hey
    • 📝 Notes: Ulysses
    • ✅ To-Do: Basecamp, GitHub, and Ulysses
    • 📷 iPhone Photo Shooting: Apple Camera
    • 🌅 Photo Management: Apple Photos and Dropbox
    • 📆 Calendar: Fantastical (iOS) and Apple Calendar (macOS)
    • 📁 Cloud File Storage: Dropbox
    • 📖 RSS: NetNewsWire and Feedbin
    • 🙍🏻‍♂️ Contacts: Apple Contacts
    • 🌐 Browser: Safari
    • 💬 Chat: Messages and Slack
    • 🔖 Bookmarks: Micro.blog
    • 📑 Read It Later: Micro.blog
    • 📜 Word Processing: Pages and Google Docs
    • 📈 Spreadsheets: Numbers and Google Sheets
    • 📊 Presentations: Keynote
    • 🛒 Shopping Lists: none
    • 🍴 Meal Planning: none
    • 💰 Budgeting and Personal Finance: Numbers
    • 📰 News: Safari and YouTube TV
    • 🎵 Music: Spotify
    • 🎙️ Podcasts: Overcast
    • 🔐 Password Management: 1Password
    • 🤖 Code Editing: Nova and Xcode
    • 📚 Books: Kindle
    • 🌎 Blogging: Micro.blog

    I added a few at the end that I’ve seen other folks use even if they weren’t in the original list. There is scoring too, but I don’t understand how it works. 🙂

    → 11:10 AM, Nov 28
  • Delay fish

    Marlin from Finding Nemo:

    I just can’t afford any more delays and you’re one of those fish that cause delays. And sometimes it’s a good thing. There’s a whole group of fish. They’re delay fish.

    I think about this when I’m trying to get something done and not making progress. What is slowing everything down, making simple tasks more complicated than they need to be? Or is it my fault, overthinking something that should be simple?

    Not everyone has the same priorities. That doesn’t mean everyone else is necessary wrong, but they don’t have the same urgency. Meetings might have people with good intentions. Emails might have good counter-points to consider. But they are delay fish, getting in the way of accomplishing anything.

    After the OpenAI fallout this weekend, I’m pretty confident that Satya Nadella gets this. Friday afternoon he was probably looking forward to the weekend without a clue of the crisis unfolding at OpenAI. Then by Sunday night he had announced that Sam Altman, Greg Brockman, and other folks from OpenAI were joining Microsoft to lead a new AI research team, while preserving Microsoft’s relationship with OpenAI. Lemons to lemonade.

    You can be sure there were meetings in those 48 hours. I bet there were delay fish, urging for a pause, time to reflect on what Microsoft should do. There was chaos and so also a moment to act and Satya took it.

    Sometimes you need Dory. You need to be innocent, joyful, thoughtful, creative, brainstorming, slowing down. But sometimes you just need to get shit done and move on.

    → 10:16 AM, Nov 20
    Also on Bluesky
  • Uncertain future for Tumblr

    Kudos to Matt Mullenweg for making public the internal memo about the future of Tumblr. It seems they’ll pivot to a smaller team, acknowledging that maybe Tumblr can’t be competitive with other massive social networks, but could do just fine as a more niche platform:

    We are shifting from the mode of “surging” on Tumblr with tons of people to get it to exciting growth, to working on how we can run Tumblr in the most smooth and efficient manner. Pretty amazing things in the social and messaging space have been accomplished with small teams, so I’m actually quite curious to see a smaller and more focused Tumblr’s performance in 2024.

    I’m a little confused about what Tumblr has been up to in the four years since the acquisition. Automattic had ambitious plans both for ActivityPub and to rebuild the foundation of Tumblr on WordPress. But there are a lot of smaller things they could do, like add support for IndieWeb standards Micropub and Webmention, simple protocols that are straightforward to implement.

    Even so, Automattic is a great home for Tumblr. Social networks come and go, but I expect Tumblr to be with us in some form for years. It still has a lot of potential.

    → 10:24 AM, Nov 16
    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.

    → 1:00 PM, Nov 6
  • 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.

    → 12:37 PM, Oct 30
  • Pebble is shutting down

    This one ended a little more quickly than I expected:

    Our goal was to build a kinder, safer, public square. We grew from 6 users on the first day (Dec 9, 2022) to a community of 20k by October 2023. But we weren’t growing fast enough justify additional investment, and we also underestimated the number of new competitors with a similar vision who would enter the field.

    I liked the name Pebble. From their about page:

    From our early days as T2 to our evolution into Pebble, our ethos is consistent: creating an inviting space for genuine dialogue. The name “Pebble” signifies that even small interactions can leave profound impacts.

    The company was founded as Twitter started to implode under Elon Musk’s leadership. The Pebble folks seemed to have good intentions and they started building a nice product, with maybe more polish than the usual Twitter competition.

    But when I signed up several months ago it struck me that they had built another data silo without either a client API or integration with other platforms via ActivityPub. Without any changes to embrace the open web, Pebble was probably always going to fail, it was just a matter of when. This is a lesson we should have learned years ago, going back to App.net’s rise and fall.

    In 2023, no one wants a centralized, closed microblogging service. We already have Mastodon, Micro.blog, Bluesky, and Nostr, and even Threads will be embracing a more open approach. This is also part of my criticism with Glass.

    It also might be a story about the erratic success of VC-backed companies. Pebble received $1.1 million in funding earlier this year. That seems like a lot of money to me, but I guess it provides too short a runway for a company that needed to get very big before turning a profit. I believe the future is smaller, more open platforms, and that means we can’t lean on ad-supported models. That strategy has served us well with Micro.blog and blog hosting.

    Most small businesses fail and most Twitter clones fail. It has always been this way. Hopefully we can learn from Pebble, and I wish the founders good luck on the next thing.

    → 11:54 AM, Oct 24
  • 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.

    → 11:36 AM, Oct 19
    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.

    → 11:01 AM, Oct 16
    Also on Bluesky
  • Threats against ActivityPub

    Evan Prodromou had an important post a few days ago, arguing for backwards compatibility with future ActivityPub work and discouraging competing protocols. I found some things to agree with in his post, but I’m less certain that there is a single path forward. On Bluesky and others, Evan writes:

    We get exponential growth based on having one protocol, not a half dozen. I think Blue Sky, Nostr, and others are a threat to ActivityPub breaking out and becoming ubiquitous. There can’t be multiple winners. I often reference Metcalfe’s Law in this regard; one big connected internetwork is much better than 3 or 4 disconnected ones.

    Maybe. But the web has always been more muddled than that. We have multiple feed formats, like RSS, Atom, and JSON Feed, and it’s okay. We have multiple blog APIs, like MetaWeblog, AtomPub, and Micropub, and it’s okay. We have multiple social web notification mechanisms, like ActivityPub, WebSub, and Webmention, and it’s okay.

    What makes it all work is that the web is the network. The fediverse is one aspect of that network. If we go too far elevating the fediverse as the only ubiquitous network, it risks disconnecting it from the blogosphere (!) and the rest of the web. Already I’d argue that some Mastodon decisions have isolated the platform, such as loading content via JavaScript so there are no longer basic HTML web pages for post permalinks.

    ActivityPub is a huge success story. Yet there are still good ideas to pull from competing protocols. For example:

    • Bluesky is using domain names for user identity. I’d love to see the fediverse adopt this in addition to email-style identifiers.
    • Nostr is less verbose than ActivityPub. I’d love to see cleaner ActivityPub responses without JSON-LD.

    If we never let other protocols get off the ground, there would be fewer experiments to help push ActivityPub along. It’s also curious that with Mastodon so well established, Bluesky recently hit 1 million users as an invite-only beta. How? Answering that may help Mastodon and ActivityPub adoption too.

    → 2:23 PM, Oct 9
    Also on Bluesky
  • 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.

    → 11:54 AM, Oct 7
    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!

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

    → 9:18 AM, Aug 28
  • Glass questions at 2 years

    Two years ago this week, Glass launched for iPhone. I had subscribed right away because I wanted to support their work and saw potential in it, even if I will always default to posting photos to my own blog first. Since then, Glass has added an Android version and a web version, along with other improvements like tags and appreciations.

    Not long after Glass launched, we added special support in the Micro.blog iOS app for it. You can see a video of how it works in my blog post here. Unfortunately in the rewrite for Micro.blog 3.0, we had to temporarily remove the feature, although it’s slated to come back in version 3.3.

    In that post about supporting Glass in 2021, I wrote:

    Glass is so new that it remains to be seen where the app will go, and how it might expand in the future. It shares some of the same principles as Micro.blog — no ads, no algorithms, no likes — but Glass lacks important open web features like domain names and IndieWeb APIs.

    Glass still lacks those features for the open web. After a couple years, if having an open API was at all on the radar, it probably would have happened by now in some form. The founders seem more interested in creating an Instagram alternative — another silo without an API or federation with other networks. And in 2023, I don’t think that works.

    There is now mainstream pushback against big centralized platforms. We have Micro.blog and Mastodon. We have free photo platforms like Pixelfed. It is a harder sell for customers to spend $5/month for a photo service that is mostly disconnected from the rest of the social web.

    I was thinking about Glass while looking into their export format, in case we wanted to support importing it into Micro.blog. I don’t plan to cancel my subscription, but I would not be surprised if many Glass customers have slipped away. The latest big announcement from Glass — an optional $99/year Patron membership — is geared toward increasing revenue from existing customers rather than growing the customer base.

    We’ve been running Micro.blog for 6 years. I know how hard it is to balance marketing to new subscribers, keeping churn down, and offering new features regularly, including upgrades to higher subscription tiers. We barely have it figured out now and we were certainly a long way off after only 2 years. The default for SaaS platforms is the slow ramp of death.

    There are effectively no success stories for Glass’s current business model. Small clones of Instagram and Twitter usually fail. To break out, there has to be something fundamentally different. For Micro.blog, the answer is simple: we are a social network but our business is blog hosting, a proven model. For Glass, the answer is less clear: they care deeply about photography, community, and design. I think the founders deserve a lot of credit for creating something beautiful. Is that enough?

    I don’t know what the right model is for Glass, but I’m confident that it should include a strong foundation for open web standards. I hope that can be part of their vision. It might even be critical to the future success of the service.

    → 9:03 AM, Aug 18
    Also on Bluesky
  • Summer movies 🍿

    It has been a great summer for movies. We’ve wrapped up seeing most of the “big” movies, so here’s a mini review of each.

    Spider-Man: Across the Spider-Verse. I love the art style in these movies. When the big animation studios moved from 2D to 3D, we lost some of what made hand-drawn animation so beautiful. Getting a little bit of that back now.

    Mission: Impossible 7. So much fun. The driving off the cliff scene might’ve been a little over-hyped leading up to the movie. Super dangerous but I think scaling the skyscraper (in 4) and hanging on to the side of a cargo plane (in 5) were both more stunning. Still, some great action.

    Barbie. Really enjoyed this. It’s the kind of movie that you wouldn’t think would work. In the hands of a less-capable director, could’ve walked the line poorly between bad and brilliant. Still listening to What Was I Made For? by Billie Eilish.

    TMNT: Mutant Mayhem. Pushing the boundaries of 3D animation again like the Spider-Verse movies. I remember reading my friend’s original black and white TMNT comics back in the day, but the new movie doesn’t require any previous knowledge to enjoy it.

    Oppenheimer. Possibly a masterpiece. I was expecting great visuals, which is why we waited to see it on 70mm IMAX, but the pacing and acting and everything else also blew me away. Lots to think about afterwards. The best movie I’ve seen in years.

    → 8:52 AM, Aug 14
    Also on Bluesky
  • Favorite text editors update

    I enjoyed the conversation on the latest ATP about text editors. Lots of deservedly good praise for BBEdit. I’m sure the hosts have gotten feedback about this already from listeners, but surprised there was no mention of Panic’s Nova.

    Feels like a good time to give an update on what text editors I’m using these days.

    Xcode: This is obviously still the only reasonable way to go for Mac development. In the last few weeks I’ve shipped some updates to Micro.blog for macOS. Always fun to fire up Xcode, hammer out a feature, and ship it without much fuss. A couple things seem slower than they used to be, like debugging and auto-complete, but otherwise no complaints.

    Nova: This is my go-to text editor for web projects now. Ruby for the Micro.blog web platform, JavaScript for the React Native app. Nova is arguably the most modern, native Mac text editor, and regularly updated. Lots of depth and I haven’t even scratched the surface with extensions.

    Ulysses: This is essentially my note-taking app. I sync to a Dropbox folder with thousands of little text files. I prefer Dropbox instead of iCloud so I can edit more easily in any app, with backups and restoring old versions. I put draft blog posts here, notes about projects, upcoming trips, and anything that isn’t code-related.

    BBEdit: This is for everything else. Looking at JSON and XML. Processing large text files, find-and-replace, grep. As a quick scratchpad for code or notes that I’m going to throw away. I haven’t totally customized it like John Siracusa, but I do have a couple shortcuts and scripts that I depend on. Rock-solid app that has withstood the test of time.

    → 9:06 AM, Aug 12
    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!

    → 10:39 AM, Aug 7
  • Bookmark tags for Micro.blog Premium

    Today we are shipping a new feature for Micro.blog Premium subscribers: bookmark tags. This is a big improvement for using bookmarks, and it touches several parts of the platform and apps.

    There is updated documentation for bookmarks with new screenshots. There is a new version of the Mac app: version 3.0, with not just bookmark tagging but also a new interface for seeing recent highlights.

    Wait, highlights? Yes, a little-known feature in Micro.blog Premium is that you can bookmark anything, not just short microblog posts. When you bookmark web pages, Micro.blog downloads a copy of the text so you can read the web page later without all the clutter. In this reading mode, you can select text and save highlights to your Micro.blog account, making it easier to find passages of important text or blog about them later.

    I recorded a screencast video here on YouTube with a demo of bookmarks and highlights. It’s 8 minutes long. 📺

    We’ve been thinking a lot about how to improve bookmarks. One seeming disconnect is that your hosted blog uses categories, not tags. This was deliberate: categories are generally simpler and more obvious as a navigation aid on your blog for readers. In other words, categories were chosen as an optimization for your readers, and deciding to only have categories and not tags keeps the interface in Micro.blog streamlined.

    You’ll need different tools to organize bookmarks, and you may eventually have thousands or tens of thousands of bookmarks. Micro.blog imports existing bookmarks and tags from Instapaper, Pocket, and Pinboard. The ad-hoc nature of tags is more flexible and optimized for quickly adding bookmarks, compared to blog posts where you may want to put a little more thought into where readers expect a blog post to live within a shorter list of categories.

    We’ll continue to improve bookmarks as we hear from folks who are consolidating their data to Micro.blog. I expect there will be feedback about different workflows people are used to.

    A note on pricing. Micro.blog Premium is our $10/month subscription, with the bookmark features plus podcast hosting, video hosting, and email newsletters. While nearly every other service in the world has increased their prices in the last few years, Micro.blog’s base subscription remains at $5/month. We can do this because we have customers who have upgraded to the optional $10 plan.

    If you’ve been wondering about Micro.blog Premium, I hope these new features give you a reason to check it out. You can upgrade or downgrade whenever you want. We never delete your data when downgrading, so it’s always there if you want to come back to it.

    Happy bookmarking! 🏷️

    → 11:34 AM, Jul 28
  • Next step for ActivityPub

    Dave Winer posted a 12-minute audio recording on his blog, addressed to me but applicable to everyone who is creating tools for the social web. Listening to it, I have a bunch of thoughts. In this post, I just want to start with server-to-server ActivityPub, and leave some of the other technologies Dave brings up for later.

    A few days ago I was revisiting the ActivityPub code in Micro.blog because we have some interoperability problems with Calckey, now called Firefish. Firefish is a Mastodon-like platform with a few unique design twists and features. To narrow down where things were going wrong, I read through the ActivityPub spec again and also looked at JSON responses from other platforms like Mastodon and Bridgy Fed.

    To frame this blog post I’ll put forward this question, at the heart of interoperability on the fediverse:

    Is it possible to implement a social web platform by reading the suite of ActivityPub specs, and have that new platform be compatible with Mastodon?

    I would argue no, it is not possible. A new project would only be compatible with Mastodon by accident because there are some things that are not spelled out in precise detail in the specifications, and no JSON examples that exactly match what any server sends or expects. The specs have all the pieces, but not how to fit those pieces together.

    In addition to the specs, Mastodon’s own documentation is very good, and it has improved even in the last year. But again, if you ask a developer to implement ActivityPub, they will naturally start at the W3C.

    I hope this doesn’t sound overly critical. The fact is, ActivityPub is complicated, and by design this kind of architecture can only be simplified so much. A lot of great work came out of the W3C’s Social Web Working Group, including IndieWeb standards, and I don’t think the authors had enough time to get consensus on some parts of ActivityPub before publishing, nor could they predict everything a platform like Mastodon or Micro.blog might need. Recently, Evan Prodromou has been leading the effort to address GitHub issues and move things forward.

    I said “suite” of ActivityPub specs above because ActivityPub is not really one thing. There’s the ActivityPub spec itself, but also ActivityStreams, HTTP Signatures, WebFinger, JSON-LD, and the working group note on authentication.

    And there are other features, such as account migration between instances, that are not documented outside of Mastodon. This is why the IndieWeb principles warn of monoculture. We are lucky that Mastodon cares deeply about the open web, because other dominant platforms might have less incentive to make their extensions work outside their own ecosystem.

    The current fediverse is impressive. It’s further along than most people would’ve guessed possible a few years ago, largely thanks to Mastodon’s polish and Twitter’s implosion. The next step should be getting to the point where the answer to my question above can be “yes”. How can new developers add support for ActivityPub without feeling like they are reverse-engineering every existing server?

    We don’t necessarily need a new spec, although it would be helpful to have a single document that ties everything together — a guide that a developer could use to build something and be confident that it has a chance of being compatible with other platforms. I also think we should consider further simplification, such as making JSON-LD optional (!) and drafting a streamlined version of ActivityStreams with only the bare minimum object types that most servers need.

    There is a lot of work to do, even outside of ActivityPub. As Dave mentions, we also need a common posting API. The most popular Mastodon client apps do not support either ActivityPub or Micropub. But a lot of progress can be made focusing on interoperability for the server-to-server part of the API. That should be the top priority with Threads set to join the fediverse.

    → 10:51 AM, Jul 25
  • Adam Mosseri on why ActivityPub

    I’ve been blogging short posts this week about Meta’s launch of Threads, but I think it’s worth a slightly longer post with a quote from this interview with the head of Instagram, Adam Mosseri, on the Hard Fork podcast. Adam has a couple answers to why ActivityPub. The part that is most revealing to me is that he sees the industry going this way already:

    I do think that decentralization — but more specifically or more broadly — more open systems are where the industry is getting pulled and is going to go over time. And for us, a new app offers us an opportunity to meaningful participate in that space, in the way that it would be very difficult to port an incredibly large app like Instagram over, and so to lean into where the industry is going.

    This didn’t happen by accident. Many developers have been working to bring awareness to the problems of massive, centralize platforms — and bloggers and journalists have been doing the same — so much that users increasingly understand the value of decentralization and content ownership. Not everyone has jumped into Mastodon for various reasons, and not all smaller platforms have taken off, but it still helps get to where we are today that one of the most closed platforms ever (Facebook) is on the verge of rolling out support for an open protocol.

    Eugen Rochko also blogged about this as an important milestone:

    The fact that large platforms are adopting ActivityPub is not only validation of the movement towards decentralized social media, but a path forward for people locked into these platforms to switch to better providers. Which in turn, puts pressure on such platforms to provide better, less exploitative services. This is a clear victory for our cause, hopefully one of many to come.

    What’s next? Imagine if later this year or early next year, Tumblr is able to follow through on their goal to support ActivityPub. Having such large platforms be even halfway interoperability was only a dream a year ago.

    → 3:06 PM, Jul 6
  • Let's welcome Meta, not block them

    Meta is working on a Twitter-like platform called Threads, codenamed Project 92 or P92, rumored to support ActivityPub soon after launch. Some Mastodon instances are committing to proactively block it. I’m here to take the opposite view.

    Meta adopting ActivityPub has the potential to fast-forward the progress of the social web by years. Ever since I grew disillusioned with Twitter a decade ago and started pushing for indie microblogs, then writing a book about social networks and founding Micro.blog, I could only dream of a moment where a massive tech company embraced such a fundamental open API.

    I get the concerns. I’ve never trusted Facebook either. I don’t post to Facebook and in Micro.blog we had to disable cross-posting to Facebook after they burned us with API changes. But this is an opportunity with Threads that I’m going to celebrate because it could have a significant, mostly-positive impact on growing the fediverse.

    Johannes Ernst raised an important question: will the fediverse grow faster organically, cut off from Threads, or faster with the chance to bring Meta users over to the larger fediverse? And I’d zoom out from that to the big picture: do we really want to be a community that discourages for-profit companies from adopting open APIs?

    To succeed with mainstream users, the fediverse should encompass many types of platforms and business models. Not just open source. Not just volunteer-led instances. Micro.blog charges $5/month for blog hosting so we can keep doing this and growing for the next 20 years.

    Let’s talk about data privacy. My blog is public already and Meta is free to crawl it and its connections to other blogs. Admittedly, there are problems… For example, Mastodon direct messages were a concern in SciComm.xyz’s decision to block Meta:

    Federation would allow Meta to cache non-public data too, such as followers-only and direct messages, which pass through its servers as part of the normal workings of ActivityPub.

    This is valid. It’s effectively a design flaw that direct messages can leak out in plain-text to Meta’s servers. The good news is that people are already thinking about how to handle encrypted direct messaging in future revisions of ActivityPub. There have been a couple recent discussions on the SWICG mailing list about this.

    Unfortunately, it’s likely that Threads will implement only the parts of ActivityPub that serve Meta’s business, ignoring features such as account migration that would allow users to move their followers from Threads to Mastodon or Micro.blog. Before we judge Meta too harshly, I don’t think most non-Mastodon servers support account migration either, and even Mastodon itself doesn’t support post migration.

    In other words, maybe we get our own house in order, so that if larger platforms come on board there are clear best practices for doing things the right way. There is still a lot to do. As impressive as the ActivityPub adoption has been over the last year especially — and kudos to Eugen Rochko and the Mastodon community for ramping up so well to welcome Twitter refugees — it’s still early days compared to where we can go.

    I don’t worry about Meta embracing ActivityPub and then extinguishing the fediverse as we know it. I worry that all this pushback will force Meta to reconsider whether they should even bother. Maybe they give up and Threads is yet another silo, cut off from the rest of the web. Then the current fediverse will have to compete directly for users instead of collaborating on a more open vision where the walls of closed gardens are finally starting to break down.

    Tim Chambers blogged about how we can react to Threads. Perhaps most important is to prioritize our existing communities:

    And remember we only have to protect the 1.3 million monthly active users inside the Fediverse. And we do that now every day. Spammers and toxic accounts inside the P92 network we or our social graph don’t follow is their problem. Our problem is protecting our people.

    For Micro.blog, we will not proactively block Meta. We will, however, build tools for users to choose how they want accounts to federate with Threads.

    Our users are passionate about indie blogs. They often support small companies and distrust big corporate-y platforms. There could be an account setting to effectively opt out of Threads, just as someone can disable ActivityPub in Micro.blog and only participate in conversations with other Micro.blog users.

    I can’t predict how Threads and ActivityPub will play out. Meanwhile, Twitter continues to melt down. Back in 2018, I chose to implement ActivityPub instead of trying to compete with Mastodon. And just this year, we added Bluesky and Nostr cross-posting to Micro.blog, to make it easy to get microblog posts out to these emerging networks.

    Let’s build stronger connections across platforms. I don’t want a monoculture where a single platform dominates, whether it’s open or closed. The web will be better if we have a variety of platforms that can interoperate, and users have the power to choose where to host their content, what their web identity is, and who can connect to their posts. The default should be open.

    → 9:52 AM, Jun 27
  • Core Intuition 560 transcript

    I listened to the latest Core Intuition again to see if my initial take on Apple Vision Pro was way off or unfair. I think it holds up. Here’s a transcript of the conversation with Daniel, lightly edited.


    Daniel: Hello, this is Daniel Jalkut.

    Manton: And this is Manton Reece.

    Daniel: And this is Core Intuition. “Something wrong about this product.” This week’s show is sponsored by RevenueCat.

    Daniel: All right, Manton, as so many people are this week, you are traveling, of course, because it’s the most important week of the year for Apple ecosystem developers. So you are in…

    Manton: Colorado. Haha, not California. I think I mentioned this a couple weeks ago that I had thought about going to Cupertino and planned a road trip around California again. And it kind of changed to Colorado.

    Manton: So totally missed out on all the in-person stuff at WWDC. I did watch the keynote and I did watch some sessions. It was a big WWDC, really big. I’m still wrapping my head around everything and what it means.

    Daniel: Yes, me too. A lot of podcasts, a lot of people commentating on WWDC start from the beginning of the keynote and progress through. I really enjoyed the ATP recap along those lines. I don’t think we have time for that.

    Manton: No way.

    Daniel: I think we jump right to the headset. Because the headset is… That’s the part that I’m still having trouble wrapping my head around. That’s the only thing, quite frankly, that I’m having trouble wrapping my head around. Everything else more or less about WWDC and the announcements made there makes perfect sense.

    Manton: Yep. Lots of good announcements, lots of good OS updates.

    Manton: Before we get into the headset, I think a lot of people have been lost in the reality distortion and have forgotten to follow up on the fact — I don’t know if ATP mentioned this because I haven’t listened yet, I haven’t listened to a couple of podcasts — but have forgotten to follow up on: did Apple do anything with AI?

    Manton: I think the answer is no. Although they did mention transformer-based language models and machine learning, but they skirted around it. I don’t think they did anything significant with AI.

    Daniel: Yeah.

    Manton: And I don’t think they did anything significant with Siri. They dropped the “hey” from “hey Siri”, but I don’t think that counts. So I just want to point that out because we are so distracted with the headset, rightly so. I don’t want to give Apple a complete pass on totally missing the big story of this year.

    Daniel: Agreed. And I was frankly a little surprised by that. I thought that they would… And as you know, I wrote an article about it a couple of weeks ago. I knew that my specific take on it, that they would announce something called Apple Intelligence and that would be their way of kind of owning the initials AI without having to join the pack, so to speak. I didn’t think that was necessarily going to happen. I would have been thrilled if it did.

    Daniel: But I thought the minimum was going to be some, especially at a developers conference, something like, we’ve made a arrangement with Microsoft so you can run Copilot at native performance in Xcode. Something like that.

    Daniel: It didn’t have to be Apple has reinvented AI. It just had to be: we we can see the elephant in this room.

    Manton: No. They had a lot of good updates to Xcode. I mean, I watched sessions. I was really lucky, I was able to hang out with some of the other Colorado iOS developers up in Boulder yesterday. Watched some sessions with those guys.

    Manton: And yeah, good updates to Xcode. No problems. But yeah, totally ignored anything with code generation as far as I can tell.

    Daniel: Yeah. And real quickly, I’ll just say, I also said something about this. I said, oh, well, you know, sounds like they didn’t say anything about AI.

    Daniel: And a few people chimed in, of course, with: well, of course they did. Like you said, the whatever mechanism transformer, blah, blah, blah.

    Daniel: That’s not what we mean right now when we say AI. Right now, when anybody in this world we live in, who is not like an AI researcher says AI, they mean large language models and the way that they provide chat or completion based services to users.

    Manton: Yeah. Assistant-like stuff and the way Apple is using, I think the transformer language model they were talking about, of course that is part of like chat GPT and whatnot. But I think they were talking about better auto-complete and behind the scenes, seamless stuff. Great. Fantastic.

    Manton: But that is just not the same thing as assistants that help you and that feel intelligent, even if they aren’t.

    Daniel: Right.

    Manton: All right, headset. Vision Pro.

    Manton: I was simultaneously blown away by this, and also I still really question the strategy. But from everything I can tell — I was listening to Dithering and Ben and John were just like, this exceeds our expectations of how technically good it is.

    Manton: And so I’m trying to take a step back and kind of separate, did they nail this versus should they have bothered to build this?

    Daniel: I’ve been joking for a while now, and I mean, the joke has totally come to a head with this idea that the reality distortion field is actually the product now.

    Daniel: It’s hard to know, and I agreed with you, I was watching the keynote and everything is so stylized because obviously they can’t show you, or maybe they could, they definitely could show you what it looked like just from the point of view of the wearer. I’m sure there’s like a screen capture recording released in their debug builds right now.

    Daniel: But obviously the way they presented it was kind of like giving you an idea by showing you video of a person who’s allegedly looking at the stuff.

    Daniel: I actually had the thought during the keynote, wouldn’t it be cool if the way they made those videos was one person wearing a headset looking at a room that happened to have another person wearing the headset in it?

    Manton: Welcome to the future, everybody’s wearing headsets, even when they’re in the same room with real people.

    Daniel: Well, and that gets at the real… To be honest, when I say my version of wrapping my head around things has a lot to do with the social implications of what such a product means.

    Daniel: I had the same gut reaction with Google Glass 10 years ago. You know, products that draw the user inward do not make me feel comfortable about them as social interactive products. You know what I mean?

    Manton: Mmm hmm.

    Daniel: And I mean, I guess to be honest, I wear my AirPods all the time everywhere. And I know there are people out there still who believe it is rude to be in public and to have headphones on, which I don’t agree with that assessment.

    Daniel: And so that might be like kind of an instructive example of people have different takes. But my take is if you’re going to block your eyes out to the world, do not talk to me. Do not talk to me.

    Manton: Haha. Yeah.

    Daniel: And even with my AirPods, I have social standards, I take my AirPods out when I’m going to like a retail counter.

    Manton: For sure. Yeah.

    Daniel: And I find it very rude if people don’t do that. I forgive it if they at least turn off the volume and the person doesn’t know that, you know, I kind of forgive it. But the case of something literally covering your face, I don’t want anybody interacting with me like that.

    Manton: No…

    Daniel: And I definitely do not want anybody interacting with their kids during like pivotal moments of their childhood.

    Manton: Yeah. And people will push back maybe on that and say like, well, at the birthday party, we all have our phones out anyway, taking video. It’s just not the same thing. It is not the same thing.

    Manton: And I have missed things because I’m looking at my stupid screen. It’s just not the same as covering your face.

    Daniel: I think it’s so instinctive to us that covering your face is a way of, I mean, like we do it as humans. We do it when we’re scared of something or we don’t want to engage with something.

    Daniel: And I think there’s a lot of instinctive, like animal response to this idea that somebody’s face is covered. And the eyes showing through is very impressive, but very not enough for me.

    Manton: Yeah. It was really impressive in the keynote, but I do wonder in real life if it’s just creepy.

    Manton: And I wanna acknowledge that we’re judging a product that we haven’t seen. Like some people have actually tried it, friends of ours have tried it, and their opinion goes a long way. We’re just reacting based on what we’ve seen in the keynote and heard people talk and blog about.

    Manton: But even putting that aside, I kind of went into the keynote thinking, if it’s technically amazing, would I still want to use it? And would I still develop for it?

    Manton: And it turns out like it’s even better than I thought. Even my wildest like expectations of Apple just completely getting this right for what they’re trying to do, it’s even better than that. Super impressive.

    Manton: And yet there’s something wrong about this product. And we’ve talked about like AR versus VR, mixed reality, etc. And I even more strongly feel now that I’ve seen it that the number of years I have in my head is 20 years.

    Manton: It’s gonna take 20 years for this product to be more seamless with actual glasses-looking things that you can actually see through and people can see your real eyes. More like real AR, at least 20 years, if it ever happens.

    Manton: And so it’s certainly a bet on the future, but it’s so far away. It’s so far from being a product that I could use in public, that I could use anywhere that there are people.

    Daniel: Yeah.

    Manton: I think that is an issue for me.

    Manton: I was thinking about this last night, so I’m in Colorado. I’m going to campsites with this van that I rented and just seeing nature and whatnot. And last night I made dinner. I sat at my like picnic table at my campsite and I pulled out my laptop, popped open a can of wine and I caught up on some work.

    Daniel: Haha.

    Manton: I’m chilling out, kind of in nature, but there are other people around. And I thought, I’m working on my Mac. Would I put a headset on here? No, I wouldn’t. It would be so weird.

    Daniel: Even in a fairly remote like.

    Manton: Yeah. Because people might walk by, drive by, it would just be weird.

    Daniel: You would be so self-conscious.

    Manton: Yeah, I wouldn’t be able to concentrate. It wouldn’t matter how much better the virtual screen is than my 16-inch, old-fashioned screen.

    Manton: And I think there are areas like that. I work in coffee shops every day. I was working at a coffee shop here outside Denver this morning for a couple hours. I just can’t imagine this product ever being used in that environment.

    Manton: Like I said, in 20 years, maybe it’s more like AR and more like real glasses, but this device is so powerful. It’s more powerful than my own Mac. To get it to the point that it can be seamless around people, man, it just seems so far off. I don’t know.

    Daniel: I think I’m not quite as pessimistic about the timeline that this technology stands a chance.

    Daniel: It’s funny because if you compare it to some Apple products, the chances are not great that it advances very quickly. For instance, the iPad was released 13 years ago. So if it advances at the rate, and just to be clear, the iPad today is an amazing device, so much more advanced than the original, but on the whole, it hasn’t changed that much.

    Daniel: The usage is the same, basically. And I think a lot of people expected a lot more development on that front.

    Daniel: On the other hand, something like the iPod is about 20 years old and is now essentially something that you wear in your ear. And that is the kind, so just to say, yeah, 20 years, maybe you’re right in that respect. But I could see it happening a lot faster because the unique technological angle here is going to fund this thing.

    Daniel: I think even with a very modest amount of buyers, even as a loss product, even if Apple were losing money, I think staying ahead of the pack on this type of product is going to pay dividends for Apple. And the saving grace for me is that I do think there is a point at which it’s kind of the difference between the AirPods being a helmet you wear over your head or the little device you pop in your ear.

    Daniel: I still feel a little self-conscious sometimes about my AirPods, but if it were a helmet that I had to wear, you know? Like, this is the helmet, and we’re going to see, you know, assuming everything goes the way I expect, we’re going to see, I think, a lot sooner than 20 years, the equivalent of the AirPod of this.

    Manton: Yeah, I dunno. Okay, but let’s think about that, though. The technological leap from wired headphones to the AirPods, I mean, it is significant. There’s, you know, cool chips in the AirPods that allow it to do what it does, but it’s not the kind of leap we’re talking about from a $3500 headset that has 12 cameras to something that looks more like glasses that you could wear in public, even if they’re awkward, bulky glasses.

    Manton: I’m really having trouble with that leap. I don’t see how you can do it. And think about how far the iPhone has come from gen one, couldn’t take video, to today. The iPhone’s great, it has come a long way, but even that is not the leap that we’re talking about, or I’m talking about.

    Manton: That is a very natural year-by-year evolution, and that’s their core product, where they sell hundreds of millions of these things. They’re not going to sell very many of these. They’re not going to update it every year. I’d be surprised if they update the headset more often than every three years. So we’re talking five or six generations. I don’t know.

    Manton: Man, I hate to be so negative. I just don’t think this is a product that Apple needed to build, or that I personally am gonna be into. I don’t know. It’s cool, though. It’s really cool.

    Daniel: It is, well, and like you, me hearing the dithering, John Gruber and Ben Thompson describing it as not being able to distinguish the edge of the quote-unquote screen. That kind of was a wake-up call for me.

    Daniel: There is no product, I think, I think even all the other VR headsets, I don’t think there is a product in the world. The combination of like, whatever Apple did to make the thing sit so close to your eye, and the fact that it’s such a high resolution, there’s no product in the world where you can kind of fool your mind into thinking you’re looking at reality.

    Daniel: And that’s why the whole reality kit, whatever, sort of all makes sense now.

    Manton: And really, every time they say, “only Apple could combine blah, blah, blah”, I always kind of roll my eyes a little bit. It’s totally accurate in this case. There is no company that could have built this.

    Daniel: Nobody else has the money to do the research and the social influence to make it, you know, even vaguely. Like some random little like company headed by a billionaire could have come up with something like this, and it wouldn’t have gotten traction because it wouldn’t have captured the public’s imagination.

    Manton: Right, and only Apple, they have all the right skills to pull this off. And they don’t have a great track record of hobby products improving. I would say none of their hobby products have really improved very quickly, which makes sense. Their business is built around the iPhone and the Mac. Apple TV is more or less the same as it was, you know, a dozen years ago.

    Manton: And that’s fine, but they obviously care a lot about this product and they could change that reputation. They could have this fringe side product that they pump millions and millions, billions of dollars into, and they’re patient.

    Manton: Again, they wait 20 years and then you have the Vision Pro and you also have the Vision Air or the Vision Lite or whatever you want to call it, a more mainstream device that is not as bulky, not as powerful, something that more like normal people maybe would be into. That could totally work. It feels really far off. I’m gonna be old or dead by the time this happens.

    Daniel: I think there’s two things that are remarkable about this product. One that struck me right away was how much of an amalgamation of other Apple technologies it is in one unit. And you think about all the things they’ve been working on.

    Daniel: The little digital crowd is just like the Apple Watch. The cameras actually remind me of whatever research they may have been doing into self-driving cars. You have super high resolution screens. The audio playback in the device is also using that kind of room reading, LIDAR type stuff.

    Daniel: That’s one aspect of how “only Apple” could do this because they had all these other products in the works that sort of contributed to this device. But I also think this device is, regardless of its commercial success, it is a technological test bed that can easily spin off other devices that benefit from the advances they make with this.

    Manton: Yep. And I can definitely buy the argument that someone had to build this. That’s not true, but there’s value in building this purely for the research and technology and just to see what’s possible. Because if no company pushes the edge and tries new things, we don’t get anywhere. There is a role for pushing, just seeing what we can do, whether it’s a compelling product or not.

    Manton: So yeah, I totally respect that. And I think the people that worked on this should be very proud of what they’ve built. It really does look incredible. It’s just a question of, strategically, is this something that Apple should do? Is it good for humanity? And then secondarily, for developers, is this something that should be part of our strategy or not?

    Daniel: Right.

    Manton: If this is the — again, 20 years in the future — this is the replacement for the Mac, is this something that we should be fiddling with and paying attention to and watching all the WWDC sessions and playing with the simulator. I’m curious what you feel as a mostly Mac developer, how much are you going to pay attention to this?

    Daniel: Yeah. I mean, it’s so much to take in because as you saw during the keynote, there’s like elements of how it, how it stands to just like integrate with your Mac and show you your Mac desktop apps on like virtual monitors within the device.

    Daniel: And then there’s the other angle of native apps for this thing, maybe subsuming the uses of traditional Mac software, iOS software, all the above. So I’m going to keep an eye on it. I do, my instinct is to mostly ignore everything, especially since there’s no SDK yet. And I find it kind of awkward to even consider jumping into WWDC sessions about this when there’s no hands-on opportunity to do anything, even with a simulator. So I’m going to keep a cautious eye on it.

    Daniel: I think there is something to what, I mean, you know me, like both of us have been pretty dismissive of AR VR the past several years. And I think the way we’re talking about this still reflects our skepticism about it, but it brings it into the real world in a way that I don’t think is going away.

    Daniel: Having a point your iPhone at a table AR experience never felt compelling beyond the slightest novelty. But let’s just assume that this thing didn’t cost $3,500 and it costs $350, which might be the case in five years, 10 years.

    Manton: 20. I’m sticking to 20 years.

    Daniel: Haha. Well, the situation will be different when there’s a massive market of people who have these things.

    Daniel: And I just want to say one more like slightly optimistic thing. I think my reticence and spooked-outness about this device is somewhat to blame on Apple’s presentation of it during the keynote. The way that they tried to frame it as something in particular that you would wear, like I mentioned, like when you’re engaged with your kids during special moments, that’s the opposite of what I think this type of device should be used for.

    Daniel: And if I focus on the things that it’s good at… I won’t fault any parent for wearing a welding helmet while they’re building, you know, a rocking horse for their kid. That’s a special moment in a family’s history as well.

    Daniel: But let’s not try to conflate the wearing the welding helmet with spending special time with your kids. Likewise, I think there are a lot of parallels actually with this to a device like a television, because televisions are famously attention absorbing. You can’t really talk to somebody who’s watching a television. And frankly, in my opinion, having a television on in any kind of social environment, unless you’re like watching a sports game with somebody is not conducive to sports or to social interactions.

    Daniel: But I think if I try to look at this more generously, as like, it’s another kind of TV, or it’s another kind of welding helmet. You use it on your own time for your own purposes to either entertain yourself or achieve specific productivity goals. Then a lot of my negativity about it goes away. It’s just the idea of it being integrated as an everyday piece.

    Daniel: It’s the same idea as if I envisioned everybody walking around with a television hanging off their forehead. No, we, nobody really wants to live in that world. So don’t highlight that as the use case for this device.

    Manton: Yeah, I agree with you. I think that was a bit of a miss. Overall, I think the keynote will go down as the best in years, but I feel like some of those parts of the, you know, advertisement video that we watched, basically, we’ll remember them a little bit like the watch Apple Watch introduction. There was a lot of sort of gimmicky features. You know, texting your friend in class or sending pictures.

    Daniel: Sending your heartbeat to somebody.

    Manton: Exactly. I think some of these things will go down in that light. I love the Apple watch. I’m wearing mine now, I wear it all the time. But I think they were a little bit confused about their message when they introduced the watch and they sorted it out.

    Manton: And I think this is going to be the same way. I think we’ll look back on some of those and be like, no, we’re not putting this headset on for a birthday party. That’s not going to be right.

    Manton: And really, that’s why I kind of think about just strategically. I mean, we already have this problem that we didn’t have 15 years ago, which is that the family is sitting around TV, watching a movie or something and all the kids are on TikTok. This is already an issue.

    Daniel: Yeah.

    Manton: I’m not interested in it getting worse by actually having people close their whole face off from the world. So I think there are really legitimate uses for this, but in my life, they are very small.

    Daniel: Yeah.

    Manton: I like to work out of the house, I like to go places. I mean, I’m kind of an introvert. I don’t meet a lot of people and hang out with people in person. But when I do, when I’m around other people, it feels good to be around humans. We need that.

    Manton: And just strategically, I guess I’m really pessimistic about it. I think maybe it’s okay for us to have those two thoughts in our head of just technically and pushing the envelope, this is a huge breakthrough. On the other hand, as a human and as a developer, I’m fine. Zig when they zag. If everybody else is obsessed with this and WWDC over the summer, I’m fine focusing on other things and just continuing working on Micro.blog and working on these other aspects of social networking.

    Daniel: Yeah, I agree. In a sense, I am kind of relieved that I don’t feel like I’m going to have my work cut out for me in terms of new Apple technology over the summer. None of this is like, oh, drop everything.

    Daniel: The one product that I think might have a little bit of a compelling case is like Black Ink with the idea of maybe like solving a puzzle on a virtual sheet or something. Even that’s a little bit of a stretch, but you know, maybe against a flat desk or something. But I don’t know. Obviously I have other Black Inks to ship before I get to that.

    Manton: Yeah. I want to ask you, because I don’t know if you saw Apple News+, I think has some crossword thing.

    Daniel: Oh yeah. Yeah, I did see that.

    Manton: We’ll probably have a whole show next week about everything non-headset related. There’s really a lot at WWDC and we’ll have to tackle that next week. Because the headset is just the obsession right now.

    Daniel: Yep, agreed. All right. Well, I hope you continue to have a great trip. I’m glad that this time around we’re recording, you’re in your van again. If folks remember the last time Manton recorded in his van, it was like a rainstorm.

    Manton: Yeah. And unfortunately… So I bought a new mic. That’s a whole ‘nother story about going to three different Best Buys, trying to find something that I could take with me. I did a test recording and there’s a lot of background noise still. So apologies, everybody. Hopefully it turns out okay.

    Manton: But thanks everyone for listening this week. Enjoy WWDC, and we’ll see you in the metaverse. I dunno.

    Daniel: See you in my glasses.

    → 10:32 AM, Jun 11
  • Email notice for Twitter users

    Today I sent the following email to everyone who had Twitter cross-posting configured on their Micro.blog account. We’ve got about one month left on our commitment to support Twitter cross-posting. We can’t justify paying Twitter for API access beyond that. Tweet while you can, the feature shuts down July 15th.


    Hi @your-username,

    You’re receiving this email because you currently have cross-posting to Twitter configured in your Micro.blog account. Twitter has been changing their API and we want to let you know how this affects Micro.blog.

    Micro.blog has committed to support Twitter cross-posting until July 15th. After that date, cross-posting will be disabled. We hope this gives you plenty of time to wind down how you’re using Twitter.

    Note that you may need to disable and then re-enable Twitter cross-posting if your blog posts are not currently being posted correctly after recent Twitter API changes. In Micro.blog on the web, click on Account → Edit Sources & Cross-posting.

    If you’re curious why we had to make this decision, please see Manton’s blog post about it.

    If you’re looking for other options for automatic posting to Twitter, you’ll find that most services have already stopped working soon because of Twitter API changes. We currently recommend looking into Buffer, which may be able to sustainably offer this feature in a way that smaller companies like Micro.blog cannot.

    However, there’s good Twitter news too! We have launched a new import feature for importing an archive of all your tweets to Micro.blog. This is a great way to browse and search old posts, keeping a copy of tweets outside of Twitter.

    For more details about the tweets import, check out this YouTube video.

    Thanks for your support!

    P.S. We also support cross-posting to Mastodon, Medium, Tumblr, Bluesky, Flickr, LinkedIn, and Nostr.

    → 11:35 AM, Jun 9
  • App.net archive migrated

    I’ve migrated the App.net posts archive to S3, to simplify hosting the archive. I’m not going to do any more work on this. No import feature for Micro.blog. The data files are there if anyone needs them.

    Please only download your own posts, not everything. There are about 44 million posts in total. I’m happy to keep hosting this archive indefinitely as long as the costs are flat. I think it’s important to have an archive of as much of the web as possible. But at the end of the day, App.net was not my platform, just something I cared about, to help bridge the gap between the early days of Twitter and newer, more open platforms.

    Don’t remember App.net? I wrote a chapter of my book about it.

    → 8:50 AM, 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.

    → 11:21 AM, May 31
  • New email newsletter templates

    Micro.blog Premium includes an email newsletter feature, so readers of your blog can subscribe to receive posts by email. It’s designed around microblogs. For example, Micro.blog can gather up lots of short posts over the week or month and collect them into a single email.

    Today we’re launching a revamped template system for these emails, bringing much more control over what the emails look like. You can edit the template to add a header or footer, or change the HTML tags completely.

    Because emails are generated outside of blog publishing, we can’t really use Hugo directly for this. I’ve written a new helper app in Go to process the templates, so they feel as familiar as possible to people customizing their blog theme. (Hugo also uses Go’s templating language.)

    You can see what the default email template HTML source looks like here on GitHub. Micro.blog plug-ins can also override this template! So you could have a plug-in that provided a new email design. There’s a help page here with more details about variables you can use in a template.

    This is a major improvement. A couple things to keep in mind:

    • The template is responsible for assembling posts together. Because it produces HTML, you can no longer edit the Markdown of the previewed email. Instead, you can add intro text, edit specific posts, or remove posts from the newsletter.
    • The template could fail if there are syntax errors you’ve introduced in edits. Make sure to test your changes by sending a copy to yourself.

    You can edit the template under Newsletter → Settings. If you edit the template and then install a plug-in with a custom newsletter design, it will still keep your changes. You can clear your custom template to revert back to the default template or a plug-in’s template.

    If you’re not comfortable editing HTML, that’s okay. You can continue to use the email newsletter feature and ignore the custom templates. It’s just a little more power under the hood for folks who want it, and for plug-in developers.

    → 10:11 AM, May 31
  • Where have I been

    A random conversation today made me curious about what countries I’ve visited in Europe. I got lost looking at maps and thought I might as well try to make a list.

    Apparently 9 countries in the world:

    • United States 🇺🇸
    • Canada 🇨🇦
    • Mexico 🇲🇽
    • England 🇬🇧
    • France 🇫🇷
    • Germany 🇩🇪
    • Italy 🇮🇹
    • Greece 🇬🇷
    • Switzerland 🇨🇭

    And 29 states:

    • Texas
    • Louisiana
    • Oklahoma
    • New Mexico
    • Arizona
    • California
    • Oregon
    • Washington
    • Idaho
    • Utah
    • Wyoming
    • Colorado
    • Mississippi
    • Alabama
    • Arkansas
    • Georgia
    • Florida
    • North Carolina
    • Virginia
    • Maryland
    • New Jersey
    • New York
    • Massachusetts
    • Vermont
    • Tennessee
    • Indiana
    • Illinois
    • Missouri
    • Alaska

    Not counting cities I’ve just flown through without leaving the airport. Might’ve missed some, but still feels kind of low. As anyone who has followed my 30 days lists knows, I like collecting visits to places. Now a little inspired to finish seeing all 50 states.

    → 10:15 AM, May 28
  • Next steps for the community

    Jean and I have been talking this week about what’s next to prioritize around the Micro.blog community. I often focus on technical improvements to blogs, but we’ve had some good momentum recently with community features too, such as rolling out profile pronouns, user blocking, and encouraging alt text in Discover. Starting today, Jean is also hosting monthly office hours to talk to folks on Zoom.

    Halsted’s post about creating a safe and inclusive community is also on our minds, and there are a few points in particular that I think we can run with.

    • Expanding community guidelines to demonstrate what we want to see, not just what we don’t want to see. The first step with the guidelines was to set a foundation for behavior that we would need to address with blocking posts or banning users. The next step could be to also summarize what kind of posts work well to keep the timeline safe and welcoming for new folks.
    • Elevating voices in Discover. Jean is planning to write a post about how we approach curating Discover. There aren’t strict rules for this, and our own guidelines should and do evolve, but sharing our thinking will help the conversation. We are fully aware that Micro.blog is not as diverse as it can be. Improving this will touch many parts of the platform, including marketing.
    • Maintaining a new community roadmap. We know the larger vision, but we don’t usually track every little feature request because it can be overwhelming and inevitably become out of date with current priorities. What we want to add, though, is making sure there is a public list of community features so important tasks aren’t lost.

    Thanks as always to everyone who uses Micro.blog and has given us a chance to build something unique on the web. I know everyone has high expectations, and we do too.

    → 5:12 PM, May 26
    Also on Bluesky
  • Some questions we missed at Micro Camp

    At last weekend’s Micro Camp, we had a panel session with me, Jean, and Vincent where we answered questions from the live chat. We didn’t have time for all the questions, so I wanted to try to answer a few more that we missed. Here we go…

    Re: long posts and how they get truncated in the timeline. Are there thoughts or plans for letting us control where that truncation happens? Using a tag in the feed or something. The way truncation works now seems rough.

    No current plans, but it’s something that comes up from time to time and has been discussed on the Help Center. We use Hugo under the hood and it supports marking an intro paragraph summary by using the <!‐‐more‐‐> HTML comment. It’s possible that some form of summaries could be used in the timeline. In my experience, though, the more exceptions we add to the timeline, the more confusing it is. That’s why we’ve mostly stuck to a few very simple rules.

    Is it likely that the success of updating the iOS and Android apps will influence development of the Mac app?

    It will influence it only in that there will be more time for native Mac development using App Kit, because there will be less time trying to port features back and forth on iOS and Android. There are no plans to use the React Native code base on the Mac. The mobile UI doesn’t generally fit on the Mac, although there may be a few features we can borrow from Micro.blog 3.0 on iOS such as easier bookmark saving and the quick bar to switch between blogs.

    Who is the best rock guitarist?

    I just bought tickets to U2 in Vegas, so I’m inclined to say that The Edge has always been a favorite. Actually picking a single top guitarists is outside the scope of my skillset as the founder of Micro.blog. 😛

    What are some of the features you can say “no” to?

    One point I tried to make in the panel is that while we move quickly and often change priorities internally without much warning, the long-term vision for Micro.blog hasn’t changed. We want to make it easier for more people to use blogs, encouraging domain names and content ownership, and wrap that together with a safe, welcoming community. Every feature has some connection to one of those fundamental goals. So anything that goes against that is an easy “no”, like making posting more complicated with extra fields, adding ads, or turning the platform into more of a closed silo.

    → 9:16 AM, May 24
    Also on Bluesky
  • About blocking in Micro.blog

    When we added muting to Micro.blog, there was a discussion about whether user blocking should be added at the same time. My feeling was that Micro.blog is built around public blog posts on the web, so blocking didn’t seem particularly useful, and might even give someone a false sense of confidence that a specific user wouldn’t see their posts. After all, the posts are available to RSS readers and just reading on your blog for anyone.

    This is the kind of opinion a programmer would have, though. “Well actually, the post is available anyway if you just drop down to the command-line and type curl and…” I was thinking about this again watching Bluesky scramble to add blocking a few weeks ago. We try to be thoughtful and not reactionary, so this was really something we should have taken care of earlier.

    This is all a long way of saying that our initial support for blocking is rolling out this week on the web and the API, and in other apps to follow. Blocking someone will prevent your posts from showing up in their timeline. There may be tweaks and other options added to this later.

    → 9:19 AM, May 23
    Also on Bluesky
  • Reclaiming usernames policy

    I’d like to update our terms of service to add a note about reclaiming old accounts, so we finally have an official policy. In a nutshell:

    • If you’ve ever had a paid subscription, we will host your blog indefinitely, even after you cancel. You can always export or delete your data, or resubscribe later and all your data will be there.
    • If you’ve never paid and your account has been inactive for one year, we may clear it out so someone else can use the name. You will be notified before this happens.

    I say “may” because I think there needs to be some wiggle room for unique situations. There won’t be any automatic deletion of accounts.

    → 3:13 PM, May 13
  • Final decision on the Twitter API

    Not content with banning native third-party apps, Twitter has continued to cripple their API and move to paid plans for very basic access. I was committed to support Twitter cross-posting as long as possible because there are still Micro.blog customers who want to keep a foot in the Twitter world. But we knew it couldn’t last forever.

    July 15th will be our last day to support cross-posting blog posts to Twitter. Even though Twitter has been effectively dead to me since I stopped tweeting in 2012, I’m a little sad to finally have to cut the platform off.

    I picked July 15th to give people a couple months to wind down their use of Twitter. We now have to pay Twitter for API access, and that is the longest I can justify doing so.

    It’s all another reminder that centralized platforms with closed APIs can’t last. While it’s easy to blame Elon Musk, the writing has been on the wall for a decade.

    For more of the Twitter history that brought us to this point, see the chapter in my book called Leaving Twitter. Newly updated for Elon.

    So, what’s next?

    • Updating the Micro.blog web site to remove mention of Twitter. Luckily, we can now mention Bluesky instead! (When one door closes, another opens.)
    • Emailing all Micro.blog customers who currently have Twitter cross-posting enabled, letting them know that the feature will go away on July 15th.
    • Hiding the Twitter cross-posting option for new Micro.blog users.
    • Later, shutting off the feature and removing all the Twitter code. At least we can do a little code cleanup because of this.

    End of an era. Seeya on the open web.

    → 11:25 AM, Apr 30
    Also on Bluesky
  • Getting started with Bluesky XRPC

    I’ve done a little work now with the XRPC layer of the AT Protocol, supporting cross-posting to Bluesky from Micro.blog. This post is about what I’ve learned.

    (As an aside, there have been questions about whether Micro.blog supporting Bluesky means we believe in everything they’re doing. No, right now I’m mostly interested in the technology. It’s still too early for judgements on the Bluesky leadership, user experience, or ultimately how this is all going to fit together with other social web protocols.)

    Bluesky authenticates with a username and password. For third-party apps, the password can be an app-specific password. I hope that eventually Bluesky will support IndieAuth, a flavor of OAuth designed for signing in to web sites that should also work well for a distributed service like Bluesky.

    The HTTP POST with JSON for signing in looks like this:

    POST /xrpc/com.atproto.server.createSession
    Content-Type: application/json
    
    {
      "identifier": "email-address-here",
      "password": "password-here"
    }
    

    You’ll get back an access token and refresh token. Sessions do not last very long, only a couple hours last time I checked, so it’s important to keep the refresh token. The response looks like this:

    {
      "did": "did:plc:abcdef12345",
      "handle": "manton.org",
      "email": "email-address-here",
      "accessJwt": "abcdefghijklmnopqrstuvxyz",
      "refreshJwt": "zyxvutsrqponmlkjihgfedcba"
    }
    

    The DID is a unique identifier for your account that is stored with posts on an AT Protocol server. Even if you change your handle, the DID persists and helps make data portable across servers.

    When cross-posting from Micro.blog, I first try to use the auth token and if it fails, I use the refresh token to establish a new session. In this case, we pass the refresh token in the Authorization header:

    POST /xrpc/com.atproto.server.refreshSession
    Authorization: Bearer zyxvutsrqponmlkjihgfedcba
    

    Sending a simple text post to Bluesky looks like this. For the rest of these requests, we pass the usual access token for authorization:

    POST /xrpc/com.atproto.repo.createRecord
    Authorization: Bearer abcdefghijklmnopqrstuvxyz
    Content-Type: application/json
    
    {
      "repo": "did:plc:abcdef12345",
      "collection": "app.bsky.feed.post",
      "validate": true,
      "record": {
        "text": "Hello world.",
        "createdAt": "2023-04-20T16:46:32+00:00"
      }
    }
    

    It can get more complicated. To include a photo with the post, first upload it to storage as a blob. In my early testing, there were low limits for photo file size, so Micro.blog scales photos down quite a bit before sending them over to Bluesky.

    Here’s uploading the photo, passing the raw JPEG bytes in the content body:

    POST /xrpc/com.atproto.repo.uploadBlob
    Authorization: Bearer abcdefghijklmnopqrstuvxyz
    Content-Type: image/jpeg
    
    image-data-here
    

    You’ll get back a media CID (Content ID) in the ref field that can be used to attach the photo to a new post. The response after uploading a photo looks like this:

    {
      "blob": {
        "$type": "blob",
        "ref": {
          "$link": "abcdefgh"
        },
        "mimeType": "image/jpeg",
        "size": 200000
      }
    }
    

    Then when posting, use the embed field with an array of the uploaded media CIDs:

    POST /xrpc/com.atproto.repo.createRecord
    Authorization: Bearer abcdefghijklmnopqrstuvxyz
    Content-Type: application/json
    
    {
      "repo": "did:plc:abcdef12345",
      "collection": "app.bsky.feed.post",
      "record": {
        "text": "Hello world with photo.",
        "createdAt": "2023-03-08T16:46:32+00:00",
        "embed": {
          "$type": "app.bsky.embed.images",
          "images": [
            {
              "image": {
                "cid": "abcdefgh",
                "mimeType": "image/jpeg"
              },
              "alt": ""
            }
          ]
        }
      }
    }
    
    

    Bluesky also supports inline hyperlinks in the post text through “facets” that can be added to a post, similar to attaching a photo. I don’t love this because we already have HTML as a perfectly good way to format posts. I strongly believe that the social web should use HTML and HTTP wherever possible.

    In Micro.blog, I automatically convert Markdown or HTML inline links to Bluesky’s facets. An example of linking the first word “Hello” in this post would look like this, using the character position and length of the word:

    POST /xrpc/com.atproto.repo.createRecord
    Authorization: Bearer abcdefghijklmnopqrstuvxyz
    Content-Type: application/json
    
    {
      "repo": "did:plc:abcdef12345",
      "collection": "app.bsky.feed.post",
      "validate": true,
      "record": {
        "text": "Hello world with link.",
        "createdAt": "2023-04-20T16:46:32+00:00",
        "facets": [
          {
            "features": [
              {
                "uri": "https://manton.org/",
                "$type": "app.bsky.richtext.facet#link"
              }
            ],
            "index": {
              "byteStart": 0,
              "byteEnd": 5
            }
          }
        ]
      }
    }
    

    There is also a growing list of open source libraries for the AT Protocol. Unfortunately I wrote all my code before I realized this, so I stumbled through deciphering the API more than I needed to. Maybe this post will save you some time if you’re rolling your own thing.

    Update: HTTP requests go to bsky.social, not bsky.app.

    → 1:38 PM, Apr 29
    Also on Bluesky
  • Why Micro.blog is supporting Bluesky now

    Today we enabled Bluesky as an option in Micro.blog. This adds to our existing cross-posting feature that supports platforms such as Mastodon, Tumblr, Medium, and Flickr. When you post to your blog, Micro.blog can copy the post to any of these platforms automatically.

    As Twitter continues to implode, we are seeing a renewed interest in the open web and decentralized social media. It’s an exciting time. Mastodon and the larger fediverse have grown to nearly 9 million users. Micro.blog is part of that with its support for ActivityPub, so Mastodon users can follow and reply to Micro.blog users directly.

    While Mastodon and ActivityPub have most of the attention, I’m not entirely sure how this next generation of open protocols is going to shake out. I like how Bluesky is focused on domain names and data portability, principles that are shared by the IndieWeb and Micro.blog. Whatever happens with Bluesky, I think there’s inspiration here that can benefit other platforms as well.

    That’s why we’re adding support for Bluesky now, even before the Bluesky folks have rolled it out to everyone on their waiting list. Micro.blog has never been about a single protocol. It’s about putting your blog at the center of your online identity, the place where you can post short posts, longer essays, photos, podcasts, or whatever else you want to share.

    It’s still early. I’ll be watching how Bluesky evolves. There will be challenges to potentially intertwine different approaches to federation. But now is not the time to build walls. Let’s try a few things, new ways to connect platforms, knowing some might not pan out, because that’s how the open web gets better.

    → 3:27 PM, Apr 24
  • Mastodon to Blog Archive script

    Tantek Çelik blogged about Mastodon’s account migration and its post export, which is based on ActivityStreams. No other apps really import this format yet, not even Mastodon itself. He also mentions the Blog Archive Format and how useful it would be to convert between Mastodon and this format:

    Such a library would make an excellent drop-in addition to any #ActivityPub implementation, allowing both export of posts, and also a browsable archive format, so you could visually double check when importing to another service that these were the old posts you were looking for.

    I’ve taken a first pass at writing a Ruby script to convert Mastodon’s export to Blog Archive Format. It’s available as a GitHub Gist here. It’s not packaged as a general-purpose library but certainly could be adapted for that.

    Direct posts import from Mastodon will be baked into Micro.blog soon. We already support several formats — WordPress, Medium, Tumblr, Ghost — and I learned a lot about how best to process large archives while building the new Twitter import.

    → 8:59 AM, Apr 24
  • React Native diary #8: Objective-C

    I haven’t written a new React Native diary blog post in a while because there hasn’t been anything noteworthy. We’ve shipped new versions of Epilogue for iOS and Android. Micro.blog 3.0 for iOS is almost ready — also a rewrite for React Native.

    We did hit one feature that I wanted to preserve from the previous version of Micro.blog: Markdown and HTML syntax highlighting when writing a new blog post. The best way to preserve this was to port the Objective-C code over to React Native. (This feature won’t be available on Android yet.)

    The “native” in React Native is because it uses native iOS and Android controls, even though they are driven from a JavaScript engine. This means we can make our own native components, written in Swift or Objective-C.

    There are a few pieces of code to make this work:

    • MBHighlightingTextView: a UITextView subclass, but it could be any control.
    • MBHighlightingTextManager: a RCTViewManager class, helping us build an interface between JavaScript and native code.
    • HighlightingText: a React.Component, wrapping up the native control.

    Here’s a snippet of the MBHighlightingTextView interface:

    @interface MBHighlightingTextView : UITextView
    
    @property (copy, nonatomic) RCTBubblingEventBlock onChangeText;
    @property (copy, nonatomic) RCTBubblingEventBlock onSelectionChange;
    
    @end
    

    And the MBHighlightingTextManager interface:

    @interface MBHighlightingTextManager : RCTViewManager <UITextViewDelegate>
    
    @end
    

    For the MBHighlightingTextManager implementation, the important bits are the macros that define what properties we care about:

    @implementation MBHighlightingTextManager
    
    RCT_EXPORT_MODULE(MBHighlightingTextView)
    
    RCT_EXPORT_VIEW_PROPERTY(onChangeText, RCTBubblingEventBlock)
    RCT_EXPORT_VIEW_PROPERTY(onSelectionChange, RCTBubblingEventBlock)
    
    RCT_CUSTOM_VIEW_PROPERTY(inputAccessoryViewID, NSString, MBHighlightingTextView)
    {
      if (json) {
        NSString* input_id = [RCTConvert NSString:json];
        // ...
      }
    }
    
    - (UIView *) view
    {
      // make a new MBHighlightingTextView and return it
      // ...
    }
    
    @end
    

    Finally, the JavaScript side that loads the native component:

    import * as React from 'react';
    import { requireNativeComponent } from 'react-native';
    
    const MBHighlightingTextView = requireNativeComponent("MBHighlightingTextView");
    
    export default class HighlightingText extends React.Component {
      render() {
    	return (
    	  <MBHighlightingTextView {...this.props} />
    	)
      }
    }
    

    Now we can simply use <HighlightingText> in place of <TextInput> in our XML when laying out the UI. Handlers like the property onChangeText will be referenced from Objective-C so we can call them in response to methods from our UITextView delegate.

    I’m leaving some code out in the above examples for readability. And I have a bunch of code still to write, working in a branch of our project on GitHub. But already the basics are working, after (frankly) a lot of trial and error and sifting through the documentation, Stack Overflow, and even asking ChatGPT, which knows a surprising amount of how this works.

    → 9:25 AM, Apr 20
  • Substack Notes moderation

    Nilay Patel’s Decoder interview with Substack co-founder Chris Best is excellent. If you’ve only seen the excerpt where Chris declines to answer Nilay’s hypothetical moderation question, that clip was not taken out of context. It is exactly how the interview went, but a small part, and they cover a lot about Substack’s business and the founder’s approach to the web.

    I’ve been interested in Substack since the beginning because I think they get a lot of things right:

    • Writers get their own space on the open web. It’s an email newsletter, but it’s also a blog with its own domain name and RSS feed.
    • Writers own their subscription list. They can export email addresses of subscribers and move to another email newsletter platform.

    It seems clear from listening to Chris that this focus on identity and portability is no accident. Substack believes in empowering writers, and giving them their own “island” on the web, largely free of platform rules. There is little need for content moderation because readers are actively choosing to subscribe to a writer, not stumbling on random viewpoints that may be offensive or controversial.

    Enter Substack Notes:

    • Notes uses the same “social graph” as the main Substack platform. You don’t follow people in the way you do on Twitter or Mastodon. You subscribe to both their notes and email newsletter, giving the writer your email address.
    • Notes is driven by algorithms. By default, the first thing you see is an algorithmic timeline (“Home”) that shows you notes from both people you subscribe to and whatever Substack thinks you should see. You can then switch to an alternate timeline (“Subscribed”) with people you’re following, but even there you will see “restacked” notes or replies from other people.
    • Notes has post permalinks at Substack, not at your own domain name. This is a major shift in identity and ownership.

    This is a very different design than the rest of Substack. As it grows, Notes will have much more power to amplify viewpoints and be central to how users discover new writers. It will need to be moderated like a traditional social network. It will need some kind of lightweight following model instead of jumping straight to giving a writer your email address.

    In the Kickstarter video for Micro.blog in 2017, I talked about how I viewed the distinction between the Micro.blog timeline (the social network) and the blogs we hosted (or that you can host elsewhere):

    If we start to separate the publishing from the social network, it unlocks something. It empowers writers to feel like they own their work, even if that’s short posts. And it frees social networks to build a safe community, without worrying about censorship, because no matter what the networks do you can always post to a site with your name on it.

    This has guided our approach to moderation all along. I expanded on it in several chapters of Indie Microblogging, especially the one called Open gardens. It remains a unique part of how Micro.blog works compared to pretty much every other platform.

    Substack could adopt a similar philosophy with Notes. Instead, they seem stuck on… something. I’m honestly not sure why they haven’t thought this through in a little more detail.

    I’m not rooting for Substack to fail, but I do think Notes needs changes. And while I’m offering unsolicited advice, they should drop the “building a new economic engine for culture” tag line. It means nothing. Forget about the VC money, the drama, whatever is happening with Twitter, and get heads down to build something that makes the web better.

    → 4:44 PM, Apr 14
  • Twitter clown car strategy

    It’s not all about Elon Musk. Ben Thompson has made variations of this argument on Stratechery and Dithering, but I wanted to quote this segment from the Sharp Tech podcast where I thought Ben particularly nailed it:

    Part of the irony of everyone getting upset about Elon Musk killing all the third-party Twitter apps is that that’s what Twitter’s management should have done a decade ago. If you’re going to go in that direction, go in that direction. Instead they didn’t have the guts to sort of follow through in their strategic decision to its logical endpoint.

    I stopped posting to Twitter in 2012 exactly because of this strategy. I’ve said that Elon has greatly accelerated what was already the path for Twitter fading into silo irrelevance. I wish I could come up with a less violent analogy, but what comes to mind is Twitter leadership in 2012 loading the gun and pointing it at third-party apps, but it wasn’t until 2023 that anyone pulled the trigger.

    Elon deservedly gets most of the blame for Twitter’s recent chaos. But I don’t think Twitter was going to last forever under any version of its clown car leadership over the last 15+ years. In the long run we will be thankful that Elon is effectively putting the company out of its misery. We’re going to see innovation on the open web as third-party developers realize they are the ones who have actually been given new life.

    → 2:30 PM, Apr 12
  • Importing tweets to Micro.blog

    Today we launched a new feature: importing an archive of your tweets to Micro.blog. This is available to all paid subscriptions and can be accessed on the web under Posts → “…” → Import.

    Very early Micro.blog customers may remember that we used to have a Twitter import feature alongside our traditional blog import from WordPress, Tumblr, and other platforms. We disabled this years ago because I kept hearing from people who realized that it was a mess importing tens of thousands of tweets into their new blog. I’ve taken that feedback to build this new feature into something that I think works much better.

    There are a few unique twists with how this works:

    • When you import your tweets, we create a new blog in your Micro.blog account just for the tweets. This is in the format username-tweets.micro.blog. There’s no extra charge for this blog.
    • This new blog stores all your tweets as blog posts. Micro.blog also copies any photos in tweets to this tweets blog.
    • A new plug-in is installed that links your existing blog with the tweets blog. This plug-in provides a streamlined interface for browsing tweets by month or searching across all your tweets.

    You can see my own tweets on my blog here: manton.org/tweets

    Structuring the tweet storage this way means we can leverage many of the powerful features built in to Micro.blog:

    • There’s a new API that the plug-in uses. You can make your own version of the plug-in from GitHub by copying its HTML and JavaScript. You can even access the API of tweets from apps and blogs outside of Micro.blog.
    • The separate tweets blog is a full Micro.blog-hosted blog so you can use custom Hugo templates to make your own web interface for browsing tweets, or add your own domain name to it.
    • If you have multiple Twitter accounts, you can create additional blogs for those accounts. The trick is to name the blog with a “-tweets” suffix. (We only include one extra tweets blog for free. The rest will be added to your subscription just like any additional blog.)

    Because the storage is just blogs, you can use existing apps to manage the tweets and photos. For example, you can use MarsEdit to download and search all your tweets. It’s also easy to zap all your tweets and start over without touching your actual blog.

    Some limitations: I’ve decided to only copy photos from the archive, not other types of media. If you have a lot of photos, expect this to take a long time as Micro.blog extracts the photos from your archive and uploads them to our servers. You can keep an eye on what it’s doing on Account → View logs. I expect we may tweak this as we get feedback from more people.

    Enjoy! I hope this makes it a little easier to say goodbye to Twitter.

    → 10:19 AM, Apr 11
  • More post-Twitter plans

    When I started building Micro.blog, I tried to limit dependencies on external platforms. The main connection is via cross-posting, which is an optional feature and not what I consider the core platform. So for example, I resisted integrating tweets into Micro.blog’s timeline, even as many people asked for it.

    We are seeing now with Twitter’s implosion why that matters. I didn’t think Twitter was going to last forever, but Elon Musk has greatly accelerated Twitter’s fall beyond what I expected even when I was most pessimistic about massive, centralized platforms.

    Even so, I find myself this week investing time into keeping Twitter cross-posting in Micro.blog going for a little longer. I’ve rewritten the API from version 1.1 to 2.0. Auth has to change to make that work, and an unfortunate side effect is that photo upload also has to change. I’m forced to simplify tweets so that they link back to your blog for photos.

    Twitter’s paid API rollout have been chaotic. Bridgy developer Ryan Barrett found that Bridgy’s API access was shut off already, weeks ahead of the expected April 29th deadline:

    The silver lining is, after all the chaos and destruction and flight to the fediverse, Twitter doesn’t feel nearly as important now as it did half a year ago.

    Back in 2012 when I stopped using Twitter, I would never have guessed that 10+ years later I might be paying Twitter $100/month for the privilege of using the API. But I don’t like shutting off a feature without warning. The compromise I’ve come up with is to continue supporting Twitter cross-posting for a limited time.

    Here’s where I see things going from here:

    • After I finish testing the new Twitter code, I will deploy it to Micro.blog. This will happen within a few days.
    • I will email every Micro.blog user who currently has Twitter cross-posting enabled, letting them know they will need to sign in to re-enable Twitter posting, and that the feature is winding down.
    • We will update the documentation and provide some tips for moving away from Twitter.
    • After 2-3 months, the Twitter feature will be turned off.

    In a bit of “lemonade from lemons” good news, I’m working on something new for Twitter users that we can control. Tweet archive import! We had a version of this feature a few years ago in Micro.blog but had to disable it because it wasn’t quite right. I’m taking those lessons and also my experience building Tweet Library to make something that will last.

    → 9:57 AM, Apr 6
  • Introducing Micro.blog podcast transcripts

    We’ve launched a new feature for Micro.blog Premium customers: automatic podcast episode transcripts, powered by OpenAI’s Whisper model. I’m excited about this because it’s one of the more practical, time-saving solutions coming out of the rise of AI. The automatic transcripts are so accurate they can be used as-is, or edited by hand as you have time.

    I thought it would be clever to ask ChatGPT to write a blog post announcing this feature. You can see the result here. But I threw it out because I like writing my own blog posts!

    At Micro.blog, we don’t usually reach for automation first. We curate the Discover section by hand, looking for posts that will provide a snapshot of activity on Micro.blog to help you find new people to follow. We don’t have trends and don’t have public likes or retweets. AI is going to reshuffle many tech products, but we’re never going to have an AI-driven algorithmic timeline. AI is a tool that we’ll only use when there is real benefit that aligns with our principles.

    The new transcripts feature is available to anyone hosting their podcast on Micro.blog. When you upload a new MP3, Micro.blog will process it to generate a transcript. You can then edit the transcript or link it from your podcast page.

    There is also a new Micro.blog plug-in to add a list of transcripts to your blog, as well as control options to disable transcription and link to the transcript from blog post. Search in the plug-in directory for “Transcripts” to install it.

    There’s no extra charge for any of this. Micro.blog Premium has always been $10/month and it will continue to be priced that way. It includes podcast hosting and also email newsletters, bookmark archiving, web page highlights, and much more. We think it’s a great value.

    → 8:02 AM, Mar 30
  • Rounding up to 300 characters

    In 2014, as I was starting work on Micro.blog, I blogged about the properties of a microblog post, including the character length:

    I picked 280 characters instead of App.net’s 256 characters because it’s slightly less nerdy, and feels right at exactly double Twitter’s 140. This should be thought of as more of a guideline than a rule, though — just something to shoot for.

    After that, Twitter also doubled their character limit to 280 characters. Mastodon launched at 500 characters. In the years since, it has felt less symbolic for Micro.blog to stick to 280 characters. Thinking about a post-Twitter world, 280 actually now feels kind of wrong.

    Micro.blog is based on real blogs, so you can have full-length blog posts with a title, categories, photos, inline links, podcasts, and anything else you’d expect blogs to have. Those full posts don’t have a limit. It’s the Micro.blog timeline that encourages the 280-character limit to make the timeline as readable as possible, not cluttered with long posts or “read more” links.

    Today we’re making the next big change to how the timeline works: we’re “rounding up” the character limit to 300, and for short posts that contain a block quote, we’re doubling it to 600.

    Unlike some social networks, Micro.blog’s character counter is for the text you will see in the final post. It strips out any Markdown or HTML tags when calculating the length, so there’s no extra cost to italic text or links. And with the 600 limit for quotes, it’s more consistent to use Micro.blog’s “Embed” link to paste in someone else’s post from the timeline and know it won’t be truncated.

    This gives posts a little more room to breathe. The posts are still short enough that it’s not a significant change to the reading experience in the way that bumping it all the way to 500 would be. It feels right for Micro.blog.

    Micro.blog on the web, the Mac app, Android app, and beta of Micro.blog 3.0 for iOS on TestFlight have all been updated with this new limit.

    There’s still more to do. We plan to adopt this change for Micro.blog replies as well, which have always been treated differently than regular posts. Because that’s a more disruptive change, we’ll roll it out separately in the coming months. We have some ideas for improving the UI for long replies to tie replies back to your blog. That will take longer to get right.

    Enjoy the extra 20 characters! Happy blogging.

    → 9:33 AM, Feb 27
  • 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.

    → 11: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.

    → 11:48 AM, Feb 19
  • 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.

    → 9:50 AM, Jan 27
  • Ivory and Micro.blog, not yet

    This is going to be the most frequent of frequently asked questions. If Micro.blog supports the fediverse, why doesn’t the new Tapbots app Ivory work with Micro.blog?

    ActivityPub is a mostly server-to-server API that both Micro.blog and Mastodon support. This allows people on Mastodon to follow people on Micro.blog. When you post to your blog, the post is sent out to Mastodon folks, and they can reply and join conversations on Micro.blog all from within Mastodon. Likewise, on Micro.blog you can follow Mastodon accounts and reply to posts without needing an actual Mastodon account yourself.

    For client apps like Ivory, Mastodon has its own API. It’s a completely different thing than ActivityPub, closer to the Twitter API. It’s not an open standard and Micro.blog does not support it.

    Could Micro.blog implement the Mastodon API, thereby allowing Ivory to connect to Micro.blog as if it was a Mastodon server? Technically yes, but doing so would introduce a couple problems. By design, Micro.blog does not have exactly the same features as Mastodon. We left out boosts, trends, and follower counts, and added other things that are outside the scope of Mastodon.

    If Micro.blog worked with Ivory, what would the UI look like when the features didn’t exactly match up? It would be confusing. Ivory would appear broken and it would disrupt the experience we’re going for with Micro.blog’s community.

    As Mastodon becomes more popular, it’s important that Micro.blog stays true to its blogging roots and unique take on social media, rather than shifting to be a Twitter or Mastodon clone. We don’t need a monoculture with all apps looking exactly the same.

    Micro.blog already supports multiple APIs for posting from client apps, including Micropub (which most IndieWeb apps use) and XML-RPC (which MarsEdit uses). I’m happy to add additional posting APIs like Mastodon’s, but only when we can make it fit well.

    There are some obvious next steps.

    I’d like to experiment with extending Mastodon’s /api/v2/instance endpoint to return Micro.blog-specific feature info. That way, clients like Ivory could in theory adapt their UI to fit the server capabilities. For example, if there are no boosts, hide the boost button. There is already precedence for this with Mastodon’s character limit and other common settings.

    I’m also keeping an eye on Ice Cubes, which is open source. This app seems like a great playground to try out new features that work with Micro.blog. When those changes are prototyped, it will be easier to pitch Tapbots and other developers on supporting them.

    It’s still early days in the post-Twitter world. I’m excited about what we have planned for this year. We’ll keep improving our compatibility with Mastodon and see what comes of it.

    → 3:32 PM, Jan 24
  • More brief thoughts on the end of Twitter apps

    I was re-reading Craig Hockenberry’s post on the third-party Twitter apps shutdown. It’s a great post, channeling the frustration of so many developers and users. And I love that it’s on his blog, not as a tweet or toot. Ideas and writing sometimes need space to breath on the web.

    Everyone had a different last straw with Twitter. It helped to have a villain in Elon Musk who could be blamed for every bad decision in the growing narrative of Twitter acquisition chaos.

    But one problem with pinning everything on Elon is that it leaves open the possibility that maybe Twitter would be fine if the company was led by a different CEO who continued the Twitter API status quo. I don’t think so. Twitter wasn’t going to last forever because massive ad-based silos will always be at odds with the open web. Twitter’s recent implosion greatly accelerated what would need to happen regardless.

    Today we got Twitter’s first public statement that the apps shutdown was about API rules. Remember back in 2012 they announced that apps could not have more than 100k users, even if popular apps at the time were exempted. There were other restrictions too, largely ignored. Third-party Twitter apps were living on borrowed time, strung along with false hope every few years as Twitter’s leadership drifted back and forth on whether to encourage developers or cut them off.

    Craig also highlights open standards like ActivityPub in his blog post, and how the future shouldn’t be Mastodon-only:

    Federation exposes a lot of different data sources that you’d want to follow. Not all of these sources will be Mastodon instances: you may want to stay up-to-date with someone’s Micro.blog, or maybe another person’s Tumblr, or someone else’s photo feed.

    The sudden migration to Mastodon is going to make Mastodon look a lot like Twitter in the coming months. Don’t get me wrong: the migration is a great thing. Smaller social networks is one of the four parts I blogged about in 2018 for how to get out of the social network mess. But we need new apps and ideas too, to not recreate some of the same problems again.

    → 2:42 PM, Jan 17
  • Self-driving mixed thoughts

    Listening to Dithering this morning, which was a longer discussion following up on John Gruber’s post about the self-driving accident in San Francisco last week, I remembered a near-accident I was in a few weeks ago.

    It was the usual morning traffic on the highway when cars stopped in front of me and I had to stop quickly. I watched in the rearview mirror as the car behind me narrowly missed me, moving to the side slightly, but the car behind that person swerved and clipped another car. Traffic kept moving around them and there was nothing I could do, just thankful that it wasn’t worse and that I wasn’t in the collision.

    These kind of small crashes or near-accidents must happen hundreds or thousands of times a day. They don’t make the news, except as part of an update on rush-hour traffic. The same accident with self-driving “beta” software is more notable.

    I guess I’m of two minds about self-driving: the technology enthusiast in me thinks autonomous vehicles will generally be safer than cars driven by humans, but I also think it’s largely a waste of resources to prioritize this effort. I’d much rather see the money and time put into better public transportation. It’s gotta be more efficient and safer to move people on a train.

    → 9:42 AM, Jan 13
  • 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.

    → 2:13 PM, Jan 1
  • 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!

    → 11:29 AM, Dec 26
  • Year in books for 2022

    The year isn’t quite over yet, but the book I just started reading is going to take more than the next week to finish, so I think the books I read for 2022 is pretty much wrapped up.

    During the pandemic I started to read much more than ever before. In 2021, I read 33 books, and this year I set a goal of 40 books, hitting it last week. I’m going to stick with that goal for next year too.

    I’m also going to stop using Goodreads. Our Micro.blog companion app Epilogue does everything I need and it integrates with my blog, which is where I want my book reading progress.

    I wrote a Micro.blog plug-in that makes it easy to add a list of books you’ve finished to your blog. So here it is below! Each book cover should link to the microblog post where I blogged about finishing the book.

    Legends & Lattes Babel The Lost Metal: A Mistborn Novel (Mistborn, 7) The Light of All That Falls Some Kind of Happiness An Echo of Things to Come All the Light We Cannot See The Shadow of What Was Lost The Slow Regard of Silent Things Anxious People: A Novel Mr. Penumbra's 24-Hour Bookstore Locklands Shorefall Foundryside The Wise Man's Fear Gardens of the Moon (Malazan Book of the Fallen, 1) The Ten Thousand Doors of January My Neighbor Totoro: A Novel From the River to the Sea The Cartographers Under Heaven Big Wonderful Thing: A History of Texas (Texas Bookshelf) Enchanters' End Game Klara and the Sun Castle of Wizardry The Girl Who Fell Beneath the Sea The Paris Library: A Novel Magician's Gambit The Priory of the Orange Tree The Emperor's Soul Queen of Sorcery (The Belgariad, #2) Sixth of the Dusk Pawn of Prophecy (The Belgariad, #1) Stardust Termination Shock White Sand, Volume 1 (White Sand, #1) The Art of Wolfwalkers How to Stop Time The Republic of Thieves Red Seas Under Red Skies

    The next version of Epilogue will have this feature built-in. I hope to get it approved by Apple and Google in time for the new year.

    At Micro.blog we love books. We don’t love worrying about stats — no follower counts, no pressure! — but I’ve found that setting a personal reading goal helps me make time to read, and it’s fun to reflect on at the end of the year.

    → 11:09 AM, Dec 21
  • Loish on AI art

    I haven’t been able to pin down exactly what I don’t like about AI-generated text and art, but I always got the sense that something wasn’t right about it. I like this post from Lois van Baarle, writing about artists protesting AI:

    Many have compared image generators to human artists seeking out inspiration. Those two are not the same. My art is literally being fed into these generators through the datasets, and spat back out of a program that has no inherent sense of what is respectful to artists. As long as my art is literally integrated into the system used to create the images, it is commercial use of my art without my consent.

    She’s an incredible artist with a very distinct style. If it was copied by a robot, you’d know. Go check out her Tumblr blog or books.

    → 3:28 PM, Dec 15
  • 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!

    → 9: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.

    → 11:19 AM, Dec 2
  • 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.

    → 4:18 PM, Nov 15
  • Dear Elon Musk

    We’re on the eve of the Elon Musk / Twitter deal closing. In his Dear Twitter Advertisers letter, Elon writes:

    The reason I acquired Twitter is because it is important to the future of civilization to have a common digital town square, where a wide range of beliefs can be debated in a healthy manner, without resorting to violence. There is currently great danger that social media will splinter into far right wing and far left wing echo chambers that generate more hate and divide our society.

    On first reading, this sounds pretty good. I agree that we shouldn’t be stuck in our own bubbles of misinformation. But the part Elon gets wrong is the premise that there should even be a “common digital town square” controlled by a single company. I reject that idea.

    The common digital “square” should be the entire web, with a diverse set of platforms. There should be common APIs but many communities with their own rules, goals, and business models. Concentrating too much power in only a couple social media companies is what created the mess we’re in. The way out is more platforms, free to make the best decisions for their users knowing that there are options to leave and less lock-in for developers.

    Twitter’s next few months or years should be interesting. Taking the company private is a good thing, to refocus the company and resources. But I expect chaos. Meanwhile, the mission of Micro.blog continues. Start a blog, get your short posts somewhere you control, and let’s get ready for a post-Twitter web.

    → 9:42 AM, Oct 27
  • Big improvements to ActivityPub on Micro.blog

    Can’t believe it, but it has been nearly 4 years since we added ActivityPub support to Micro.blog. In that time, we’ve made some tweaks and bug fixes to it, but it has remained largely unchanged until today. If you were using a custom domain name for your blog, anyone on Mastodon could follow you, and you could follow anyone on other Mastodon servers.

    Back then I blogged about why using custom domain names was important:

    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.

    There is a downside to this approach, though, and it has become more clear over the years. Because not everyone on Micro.blog has ActivityPub enabled, following users and replying often felt incomplete. To fix this, we are moving to enable ActivityPub by default for new Micro.blog users, and allowing it even if you aren’t using your own custom domain. We’re also improving conversations so they aren’t so disjointed, with Micro.blog now pulling in additional replies from Mastodon if needed.

    If there’s no custom domain, what does the Mastodon-compatible username look like? @username@micro.blog of course! In this way, Micro.blog looks a lot more like another Mastodon instance, but an instance that also has a full suite of blogging features, IndieWeb protocols, and everything else we’ve been building for years.

    It’s now easier to reset your Mastodon-compatible username too, for example when changing your domain name, or when moving from @username@micro.blog to @username@yourdomain.com. Mastodon itself has also added features to ease migration, and that’s something we’ll be looking at supporting.

    In the future, we may do more to encourage everyone to enable ActivityPub on their Micro.blog account. For now, if you’d like to enable it, just head over to the Account page and click the “Set Mastodon-compatible Username” button.

    → 10:35 AM, Oct 10
  • 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.

    → 8:34 AM, Sep 29
  • 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!

    → 9:48 AM, Sep 26
  • Introducing the Micro.blog Family plan

    Today we rolled out a new subscription option: Micro.blog Family, designed for up to 5 people with all the features of Micro.blog Premium. It’s $15/month and you can upgrade on the “Plans” page in Micro.blog.

    Over 2 years ago we added a Teams plan with unlimited users, but it was never quite right. Micro.blog started around personal microblogs and it felt like too big of a jump to expect that larger companies would start using Micro.blog regularly. Micro.blog Family fits better with our mission and is a more natural upgrade for folks who want to bring family or friends together around a blog. I’m using it for a travel blog for my family, and we think it’s a good fit for photo blogs and family email newsletters too.

    → 8:39 AM, Sep 20
  • Needless ratings

    I’ve noticed this trend Jason Fried blogs about too, and I’m tired of it… We don’t need to be asked to rate every little thing! It generates a lot of needless busy work for everyone.

    They ask me to rate my “experience”. Thing is, I didn’t have an experience. The delivery person just left the package by the mailbox and I grabbed it when I got home.

    We’ve been using HelloFresh recently, and they also ask for a 1-5 rating for food deliveries. I always unpack the box first before rating. If the food arrived on time and in good condition, I give it a 5. If the food was damaged or spoiled, I call customer service. Not sure what situation I would rate something a 2 or 3 or 4, so the numbers can’t be that helpful to anyone.

    All these rating prompts — from pop-ups on web sites, to text messages from my dentist asking how my appointment was — have become like noise, hardly better than ads.

    → 12:02 PM, Sep 14
  • 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.

    → 9:51 AM, Sep 13
  • Micro.blog 1.0.1 for Android

    We have a bug fix update today for folks on Android! @vincent actually finished this version months ago but it had been hung up in Google app review for some reason. Finally got it approved.

    • Fixed potential crashing bug when starting a new post.
    • Fixed issues opening images in the image detail screen.
    • Fixed loading latest profile photos.

    Grab the update on Google Play. The next version is also coming along well, so expect more for Android this year.

    → 9:15 AM, Jul 25
  • Importing check-ins from Ohai

    I’ve used a few apps over the years for location check-ins. Gowalla, Foursquare, and Ohai, which was built on the App.net API. The Gowalla data was lost after they were acquired by Facebook. I’ve continued to use Foursquare and have imported many of those check-ins to my location site manton.coffee.

    I have about a year of data from Ohai, from around 2013-2014. Before App.net shut down, I exported the data. I wanted to dust it off and import it into Micro.blog.

    The data is stored in the App.net “messages” JSON. In some cases, there is annotation data that includes the location information such as place name for the check-in and latitude/longitude.

    Here’s an example of one of the check-ins, cleaned up slightly to remove fields I don’t care about:

    {
      "annotations": [
        {
          "type": "net.app.ohai.location",
          "value": {
            "address": "11521 N Fm 620",
            "country_code": "us",
            "latitude": 30.45419,
            "locality": "Austin",
            "longitude": -97.8271,
            "name": "Starbucks",
            "postcode": "78726",
            "region": "TX"
          }
        }
      ],
      "created_at": "2013-11-11T14:44:25Z",
      "id": "1922259",
      "source": {
        "client_id": "nymmngm43jnYP2FQ4pCvXjBpT3YyfNDa",
        "link": "http://ohaiapp.net/",
        "name": "Ohai"
      },
      "text": "Working after tacos. Hoping to get some coding done with an early start to the week."
    }
    

    I had originally used Ohai as a sort of private check-in journal, not intending it to be public in the way that Foursquare check-ins often are. But I’ve found that after nearly 10 years, semi-private data like this can usually be public without the same kind of privacy considerations that I would have worried about at the time it was first written.

    So how do we get this data into Micro.blog? Micro.blog can import from a bunch of platforms, but it doesn’t make sense to add support for this file format directly to Micro.blog. It’s not something that most people would need. I wrote a custom script to handle this for my check-ins blog.

    In the script, we’ll iterate over each message and look for the ones posted from Ohai, ignoring everything else. For some reason — maybe because I was offline or because of limitations in the App.net places database — not all of my messages included location information, but I still want to record the post and date because it included text I wrote about the check-in. If there is location information, we’ll pass that to Micro.blog too.

    Here’s the script. If you want to customize it for your own use, make sure to set the app token and blog URL.

    Micro.blog uses the Micropub API for creating posts. When there’s location information, we’ll pass a checkin field to store that with Micro.blog. We can then access that data from a Micro.blog theme, for example to show a map. See my book chapter on Micropub for details on the JSON format.

    I had a lot of fun going through this old data and migrating it to Micro.blog so that it can be preserved. Eventually I want to have a Micro.blog-based client solution for new check-ins, starting with Sunlit for iOS, so that I don’t need to keep depending on Foursquare.

    → 7:53 AM, Jul 5
  • Mission: Impossible 1-6

    Last week we re-watched all the Mission: Impossible movies. 4, 5, 6, then 1, 2, 3. I think 4 is my favorite, but I can’t tell if my opinion is being influenced because I’m a Brad Bird fan.

    Mission: Impossible 1 holds up. 2 is just a little over-the-top with the slow motion action scenes and doves, almost like a parody. 3 has the best villain, but is dark. 5 and 6 are really solid.

    The most fun is knowing which stunts Tom Cruise actually performed. That guy is crazy.

    Rewatching the full series so far, I also feel like there’s something important missing in between 3 and 4. Would’ve liked to see a 3.5 movie in there that covers Ethan Hunt’s marriage and its unraveling.

    → 10:12 AM, Jun 30
  • Stage Manager compatibility without precedent

    I’ve been thinking about why Apple’s decision to restrict Stage Manager on iPad to M1-based devices has caused so much controversy. At first, I was slightly annoyed that my brand new iPad Mini did not support Stage Manager. It is the latest, fastest iPad Mini you can buy, released less than a year ago!

    You could argue that the iPad Mini is too small to take full advantage of Stage Manager anyway, but that wasn’t Apple’s justification. A future iPad Mini will surely be powered by an M1 and have more RAM.

    I think the root issue is that when people choose a computer to buy, they don’t expect the operating system to change significantly for different computer models. You buy a more expensive Mac because it has a larger screen, or is faster, or has more ports. You buy a more expensive iPhone because it has better cameras. You buy a more expensive iPad because it has the latest Pencil support. It is a hardware decision, not a software one.

    If you walk into an Apple Store today and pick out any Mac, from a $1000 MacBook Air to a $6000 Mac Pro, you can be confident that every feature of macOS will be available, and that all Mac apps will run, even if pro-level apps are going to run more smoothly on the Mac Pro.

    I can’t think of anything comparable to such a major feature as Stage Manager being limited by hardware across a current, latest-generation product line. Maybe the closest is when Portrait Mode was first available. Portrait Mode is nice to have, but it doesn’t fundamentally change how you interact with apps in the way that Stage Manager does.

    So I’ve adjusted my thinking on this controversy from shrug, that’s a minor bummer to now thinking that Apple’s decision should be walked back. John Gruber too, while he wrote that he understands Apple’s thinking on this, suggested that there could be a compromise in future betas:

    Given the uproar surrounding this M1 requirement for Stage Manager, I wonder if Apple will reconsider over the summer, and perhaps do something like support Stage Manager on more iPads, but only on the built-in display, and make external display support the part that requires an M1 iPad.

    Users on non-M1 hardware will understand if Stage Manager is slower or more limited — for example, no external display support or fewer windows open at once — and those limitations will naturally drive iPad upgrades. But it’s a unique and confusing precedent to have fundamental iPadOS features limited by hardware.

    → 8:51 AM, Jun 20
  • 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.

    → 10:24 AM, Jun 18
  • Better change log for Micro.blog features and fixes

    We’ve come up with a new way to document changes to Micro.blog. In the past, we usually only note big changes on @news or on my own blog, so everything is scattered and small changes are rarely even mentioned. To fix this, there’s now a special category on news.micro.blog that will list most changes to the platform, both big and small.

    I’ve customized the news blog home page and feed to exclude these posts, so if you’re following @news, you won’t get all the noise of the day to day changes that we roll out. And because it’s all powered by a normal Micro.blog-hosted blog, it’s something that is easy for us to maintain. If you really want to know about everything, you can also subscribe to this RSS feed.

    → 4:09 PM, Jun 10
  • 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.

    → 9:41 AM, May 31
  • 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.

    → 11:38 AM, May 19
  • Safari back button shortcut

    Sometime recently, Safari’s back button keyboard shortcut ⌘← stopped working. I’ve preferred this to ⌘[ because it’s much easier to reach when my right hand is on the MacBook Pro trackpad. Unfortunately I can’t seem to reset this using System Preferences.

    After a few days of unsuccessfully re-training myself to use ⌘[, I gave up and reached for FastScripts to rewire the ⌘← shortcut. I wrote the following AppleScript:

    tell application "System Events" to keystroke "[" using {command down}
    

    Then set it in FastScripts to only be used when Safari is running. There’s got to be a more straightforward way to get the old Safari behavior back — and this solution annoyingly interferes with moving the cursor if a text field is focused in a web page — but for now I’m up and running again.

    → 10:06 AM, May 12
  • 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.

    → 9:52 AM, Apr 19
  • Book pre-orders email

    I sent the following email to anyone who was early to pre-order the book Indie Microblogging. My main goal was to inform people who might have pre-ordered a year ago that we lowered the price, and that they can update or cancel their order if they need to.

    Sidenote: We use SendGrid to send email and despite disabling all the tracking in the settings, SendGrid still appears to put tracking info in the email. I hate email tracking and have reached out to SendGrid about how to really disable this in the future.

    Thanks for pre-ordering the book Indie Microblogging! You are receiving this email because you were one of the very early pre-orders, from last year or earlier. If you haven’t heard the latest news about the book, the complete draft of the book is now available here on the web: book.micro.blog

    Because you were an early pre-order, a couple of things have changed. I lowered the price of the e-book from $20 to $15. I also added a print edition as an option.

    What’s next? We saved your payment information securely with our payment processor Stripe, but we have not charged any orders yet while I wait to finish completing the book this month. You have a few options from here:

    • If you still want the e-book, no need to do anything! You will be charged the new lower price of $15 and will receive an email with the e-book in ePub and PDF formats when it is ready.
    • If you no longer want the book, email help@micro.blog and I can cancel your order.
    • If you want to upgrade your pre-order to also include the print edition ($30 total for both e-book and paperback), also email help@micro.blog and let me know.

    For more details about the book and current status, watch this video I recorded for Kickstarter backers.

    → 11:11 AM, Apr 15
  • Mozilla's vision for the web

    I’m reading through Mozilla’s vision for the evolution of the web. On web sites being too difficult to create:

    Building websites has gotten substantially easier in many ways, but it’s also become more complex, and there remain a number of pain points which make the experience more difficult than it needs to be. This has several negative consequences. First, it disempowers site authors by hampering their ability to express themselves. Second, it drives content to native app platforms, which diminishes the Web’s reach. Finally, it encourages centralization by tilting the playing field towards large publishers and platform providers with sophisticated engineering teams and complex infrastructure. Our goal is to reverse these trends by making it easier to build and maintain sites.

    There is a lot of good stuff in this document.

    → 11:26 AM, Mar 23
  • 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.

    → 9:54 AM, Mar 23
  • Early book feedback

    I designed the structure of the Indie Microblogging book knowing that most people weren’t really going to read it front to back. Everyone is busy. Even people excited about the book are probably going to skim some of it or dip in to just a few chapters. That’s totally fine and why it’s linked the way it is with 70+ short chapters.

    It has only been a couple days, but even just the “this looks good!” feedback is so encouraging. Thank you. I’m inspired to edit it, fix problems, and get the final e-book and print copies out to everyone.

    There have also been a couple mentions that especially made my day, and I can’t help sharing them.

    Patrick Rhone:

    I have to say, @manton’s Indie Microblogging book draft is really great. Reads like a manifesto. Full of “Hell Yeah!” ideas.

    Jim Willis:

    High schools should be building technology curriculum around @manton’s book.micro.blog Teach kids how to take action, how the Internet works, why open standards and decentralization are paramount. So good.

    I’m in Portland now and my attention is shifting to Micro Camp 2022 through the weekend. But I’m hoping to make even just a little time every day to work on the book now that it’s out there, so the draft keeps getting better for new folks who are checking it out.

    → 11:54 AM, Mar 11
  • Kickstarter video and transcript

    I posted an update to Kickstarter backers today with a video of me talking about the Indie Microblogging book and next steps. I’m including a copy of the video here, followed by a transcript.

    Hello Kickstarter backers. My name is Manton Reece. It has been a while, and I wanted to give you an update.

    If you’ve forgotten, the Indie Microblogging Kickstarter was for 2 things. First was a new social network and blogging platform called Micro.blog. We launched this pretty soon after the Kickstarter wrapped up, and in the last 5 years it has really improved to be a full-featured blogging platform. Photo blogs, categories, new themes, a plug-in system, team blogs, email newsletters. And I rewrote the backend recently to be powered by Hugo, so you get some of the benefits of a static-site generator but with full native apps for iOS, macOS, and now Android. There are third-party apps, and of course an API and support for IndieWeb standards.

    The second part of the Kickstarter — and that’s what I want to talk about today — was for a book. And again, I’m very sorry that it was so delayed. The book has taken a back seat as I focused most of my time on Micro.blog the last few years.

    Today I’m happy to announce that the complete draft of the book is available. In the Kickstarter I promised ePub and PDF versions, but as I was working on it I realized that a book about the web should also be on the web. So you can read it now at book.micro.blog.

    The book turned into a much bigger project than I expected. It is divided into 6 major sections, covering older social networks and blogging platforms and what we can learn from them, the foundation for indie microblogging, how Micro.blog works, IndieWeb standards, owning our own content, Mastodon, community management, and more. There are interviews in the book.

    There are about 70 short chapters, and each one is on the web so it’s easy to link to.

    So what’s next. I still have improvements I want to make to the book. I will be editing it over the next few weeks. When the editing is done, I will be sending out PDF and ePub versions to y’all, and I’ll also be preparing the print copy for anyone who backed the Kickstarter at the higher tiers.

    Last year I collected some of my blog posts into a book, partly to test the printing process for the Indie Microblogging book. And this is what it looks like.

    The cover will be different for Indie Microblogging, of course, and it will be thicker. Indie Microblogging is about 400 pages when printed. But otherwise it will be very similar to this. I’m really excited to get it out.

    So that’s the update. Thank you so much for your support. For your patience. If you haven’t checked out Micro.blog in a while, it is way better than it has ever been. If you never used your free months that you got from the Kickstarter, feel free to drop me an email to help@micro.blog. I’m happy to update your account to give you more time with the blog hosting.

    And finally, this week, we are actually having a free online conference for the Micro.blog community. It’s called Micro Camp. You can go to micro.camp to learn more if you’re interested. Thanks so much. Bye.

    → 8:02 PM, Mar 9
  • Complete draft of Indie Microblogging published

    It took longer and grew into a bigger project than I expected, but I’m happy to announce today that the draft of Indie Microblogging is now available on the web at book.micro.blog.

    70 short chapters. 400 pages when printed. Interviews. Hundreds of quotes and links. I think it’s a unique look at social networks, blogging platforms, IndieWeb standards, and of course Micro.blog.

    I’m traveling today, but when I’m settled in with good wi-fi I’ll also be posting a video update to Kickstarter.

    What’s next? I’ll continue to edit the book this month and then prepare the final version in PDF, ePub, and print formats for Kickstarter backers. If you missed the Kickstarter, we are also accepting pre-orders for the e-book or print edition.

    → 7:10 AM, Mar 9
  • React Native diary #7: accessibility

    I heard from a user this week that some screens in Epilogue aren’t very accessible with VoiceOver. To be honest I was so focused on getting this release out, I didn’t test accessibility. Most of the buttons and views do have good defaults for accessibility, provided by iOS, but there was one pattern I was using with React Native’s <Pressable> that needed to be updated.

    This is the JSX code I have for showing the profile photo in the navigation bar, which can be tapped to show the profile screen:

    <Pressable onPress={() => { onShowProfile(); }}>
      <Image source={{ uri: avatar_url }} />
    </Pressable>
    

    To fix this, I first tried adding an accessibilityLabel attribute to the <Image>, but I found it works better on <Pressable>, where the role can also be set to “button”:

    <Pressable onPress={() => { onShowProfile(); }} accessibilityRole="button" accessibilityLabel="show profile">
      <Image source={{ uri: avatar_url }}  />
    </Pressable>
    

    There is more I could do, but as a first pass these kind of tweaks should make Epilogue much more usable in VoiceOver. I did a quick run-through with Accessibility Inspector to catch similar problems. After I test on my iPhone, I’ll roll these into a bug fix update.

    → 9:44 AM, Feb 23
  • Personal libraries next steps

    Yesterday’s IndieWeb session gave me a lot to think about, and a couple specific next things to work on:

    • Micro.blog should be able to easily publish your book lists in different public formats. It now can. When you set a bookshelf to a page on your blog, Micro.blog will also create JSON Feed and OPML files with it. For example, here’s my Want to read page as index.json and index.opml.
    • Micro.blog and Epilogue should move to using an API for managing books that could be supported in other platforms. I’ve now proposed a way to extend Micropub to cover this.

    I’ve also submitted Epilogue 1.2 to Apple for review, with Micropub posting support and a few bug fixes. After it’s out, I’ll try to get a release for Android ready too.

    Also posted to IndieNews.

    → 11:16 AM, Feb 20
  • Epilogue 1.2 preview

    I’ve been improving the profile screen in the new Epilogue to support adding external blogs via Micropub. You will still manage your bookshelves with Micro.blog, but the posts can go to another blog.

    Here’s a screencast video that shows off most of the UI for searching for books, adding books to a shelf, and configuring an external blog. In this case it uses the IndieAuth and Micropub plugins for WordPress.

    → 11:48 AM, Feb 19
  • 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
    → 1:44 PM, Feb 16
  • React Native diary #5: misc observations

    Some thoughts after about a week of using React Native to rewrite Epilogue. It’s going well and has been fun to work in a new framework, knowing that it’s going to contribute to our long-term plan for mobile apps in Micro.blog. It’s not a throw-away distraction.

    It’s only by diving in that I’ve realized how surface-level my experience with JavaScript really is. I’ve taken some time to experiment more with JavaScript promises and async functions. Years ago I bought the book JavaScript: The Good Parts, but I’m not sure I did more than skim it, and it’s probably way out of date for modern JavaScript.

    I got pretty far into development over the last week even though I barely understood some of the React features I was using, like useState. That’s okay. After I ship Epilogue 1.1, I’m going to go back and clean up a few things.

    Xcode builds are slow and spin up the fans on my Intel-based MacBook Pro every time, but iterating on the UI and features is extremely fast because the JavaScript code can reload while the iOS app is running. In most cases, the UI refreshes automatically in the iOS Simulator when I save my Styles.js file in Nova. I rarely need to run a build in Xcode.

    App file sizes are bigger, but not enough to matter. Epilogue 1.0 was a tiny 0.5 MB, and my latest build of Epilogue 1.1 is 2.7 MB. A much more full-featured app, Gluon for Micro.blog, is 8.6 MB. This appears to be a non-issue.

    React Native is not new. It’s nice not to be on the cutting edge, because by now every problem I’m likely to run into has been solved. Some things I thought might be hard were easy enough, like handling the epilogue:// custom URL scheme.

    I’ve collected all the blog posts in this series in a category on my blog.

    → 3:28 PM, Feb 15
  • 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.

    → 2: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.

    → 3:26 PM, Feb 13
  • React Native diary #2: state

    I’ve been programming the Mac for over 25 years, but I’m stumbling through React Native and JavaScript like a newbie. I’ve always found the best way to learn is by doing. Hit some brick walls, dig under them, and then realize later that you built the wall yourself, fighting the frameworks.

    One of the benefits of React Native or SwiftUI is a formal way to manage state, letting the frameworks update the UI for you when something changes. I’ve never thought of this as a big advantage, but maybe I’ll warm up to it.

    As I work on rewriting Epilogue, I’ve improved the book details screen to include a list of your bookshelves. Tap a bookshelf to add the current book to that bookshelf. A progress spinner will show while Epilogue sends the book data to Micro.blog.

    In the world of UIKit, I would probably have a reference to a UIActivityIndicatorView. When I’m ready to send the web request, I’d show and start the progress spinner by calling startAnimating() on it.

    In React Native, I have a boolean state that keeps track of whether the progress spinner should be animating, defaulting to false:

    const [ progressAnimating, setProgressAnimating ] = useState(false);
    

    Then when the button is pressed, I set the state to true and carry on with the web request:

    function addToBookshelf(bookshelf_id) {
      setProgressAnimating(true);
    
      // send book data to Micro.blog
      // ...
    }
    

    In the UI, the JSX references this boolean. The UI will automatically update whenever the value changes. I don’t need to hold a reference to the actual ActivityIndicator object anywhere in my JavaScript code:

    <ActivityIndicator size="small" animating={progressAnimating} />
    

    Here’s a 3-second video of how this looks in the app:

    Next up: I need to add sign-in back to the app before I can do a beta. I’ll also be working on Dark Mode and the search box.

    → 6:12 PM, Feb 12
  • React Native diary #1

    In the spirit of Brent’s Sync Diary series from 2013-2014, I’m going to blog a little about our decision to move away from UIKit for some of our Micro.blog apps. I’m new to React’s way of thinking about UI, and I barely use SwiftUI either, but it’s just code and I’ve been able to make some progress learning React Native already.

    First, to clear up some potential confusion: we are not abandoning iOS! I still love my iPhone, even if I’m very frustrated with how Apple is treating developers. We are embracing Android more fully, and limiting how much time we spend in Apple-only frameworks. Our iOS apps will still be the best we can make them.

    Micro.blog for Android is a pretty big project even in beta. Vincent hit the ground running. It’s a little daunting for me to wrap my head around until I’m more comfortable with React Native, so I started somewhere simple: our app Epilogue, which I built a couple months ago for both iOS and Android with HTML, JavaScript, and a sprinkling of native Swift and Kotlin.

    Epilogue 1.0 was developed very quickly. While I was happy to ship the app to customers, I wasn’t too happy about the UI. It was a little clunky, and it started to feel more clunky the more I used it regularly for my own book tracking. React Native uses JavaScript but with native views instead of web views, so I was pretty sure a rewrite would fix the problems in the UI.

    I started with the placeholder JavaScript you get from running npx react-native init, then added in Epilogue elements like the book list and querying the Micro.blog API. I also integrated react-native-menu/menu to get a native UIMenu-based context menu on iOS, something I couldn’t do before with the HTML-based app.

    The toolchain for React Native makes me a little nervous. It uses every package manager you can think of: Node, Yarn, Ruby Gems, CocoaPods… It feels fragile, but there are so many thousands of developers using this framework, I’m also not very worried about it breaking.

    Here are a couple of screenshots of the in-progress new version of Epilogue:

    Epilogue book list screenshot Epilogue book details screenshot

    It’s already better. The learning curve for me is getting used to how React shares state and React’s JSX markup, a mashup of XML for view layout with bits of JavaScript. I’m sure I’m not doing it quite right, but already I have something that works well as a foundation for Epilogue 1.1.

    → 10:47 AM, Feb 11
  • Moving away from App Store-focused development

    A few things are happening at once that together are putting some clarity on the direction we should have for Micro.blog development:

    • Vincent has been working on the official Android app. It’s in public beta now on Google Play. This app is written in React Native, which uses JavaScript with native system controls.
    • Apple is burning through developer trust with the App Store. This is now mainstream opinion, not just a fringe of developers complaining. Apple’s policy in the Netherlands is the latest.
    • Frameworks for Apple platforms are fragmented. UIKit vs. SwiftUI vs. Mac Catalyst vs. AppKit. There are compromises with each path.

    We are a small team, and maintaining so many different versions of our apps is difficult. On top of that, why invest so much time in Apple-only frameworks when Apple could upend our business with a new App Store tax or other disruptions?

    Going forward, the tentative plan is to abandon most of the current iOS codebase for Micro.blog, instead sharing it predominantly with Android using React Native. This will free up development time to keep making the Mac version even more Mac-like, sticking with AppKit.

    Mobile platforms like iOS and Android are much more similar to each other than either one is to the Mac. I love the Mac and don’t want to compromise the UI on macOS with a cross-platform framework. macOS also remains the only open Apple platform, so investing in it feels right.

    What about our other companion apps for Micro.blog? Sunlit and Wavelength will stay iOS-only using UIKit. Epilogue will move to React Native, simplifying the number of cross-platform frameworks we use to just one.

    In summary, here’s how I see our apps looking after this multi-year transition:

    • Micro.blog for the web: Ruby. Built for the web, for any platform.
    • Micro.blog for iOS: React Native.
    • Micro.blog for Android: React Native.
    • Micro.blog for macOS: AppKit.
    • Sunlit for iOS: UIKit.
    • Wavelength for iOS: UIKit.
    • Epilogue for iOS: React Native.
    • Epilogue for Android: React Native.

    The official apps for Micro.blog are a baseline. There should be a rich ecosystem of third-party apps that make other choices, going all-in on SwiftUI, Jetpack Compose, or whatever else helps developers build something new for Micro.blog.

    What makes the business side of Micro.blog work is that our goals as a company are aligned with our users’ goals. We make money when we provide features that make blogs better and the Micro.blog community experience better. Restructuring our development approach similarly aligns our priorities, moving just a little farther away from being dominated by Apple.

    → 4:50 PM, Feb 9
  • 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.

    → 9:16 AM, Feb 7
  • Easier RSVP-ing with IndieWeb plug-in

    After I added Micro Camp 2022 to events.indieweb.org, I wanted to send an IndieWeb RSVP to the event. RSVPs use Microformats and Webmention to let your blog notify another site that you are attending an event. I’ve been creating the markup for RSVPs manually for years, but it’s a little finicky. You need to use HTML with the right reply-to class and RSVP status.

    To make this easier, I’ve created a Micro.blog plug-in called IndieRSVP that provides a Hugo shortcode you can use in a blog post. After installing the plug-in from Micro.blog’s plug-in directory, to RSVP to an event use the shortcode rsvp and pass a URL for the event as a parameter like this:

    I'm going to this! {{< rsvp href="https://events.indieweb.org/2022/03/micro-camp-2022-IW2Qp3ygHike" >}}
    

    There are more details over in the README. Happy RSVP-ing! 📅

    → 1:53 PM, Feb 3
  • Apple's response to South Korea untenable

    I’m as tired of debating the App Store as anyone. I’ve been making essentially the same arguments for 10 years, on this blog and on the podcast. But the news from South Korea adds a new wrinkle that is worth highlighting.

    The spirit of any law forcing Apple to allow external payments for apps is clearly twofold: give developers more control over interacting with customers, and let developers avoid paying the 15% or 30% on transactions by handling payments outside the store. Apple and Google are trying to follow the letter of the law while missing the larger point completely:

    Apple said it plans to provide an alternative payment system at a reduced service charge compared with the current 30 percent charge, as the tech giant turned in its compliance plans to the Korea Communications Commission (KCC).

    Ignore for the moment whether this response is legal or fair. Let’s think through how this would work in practice. Apple is developing APIs so that when using an external payment, Apple is still notified about the external transaction so they can collect their “reduced” service charge.

    But iOS developers are used to paying Apple $99/year, and then getting a check from Apple once a month with 70% of the sales through the App Store. The 30% (or 15%) is taken out automatically, just like 3% is taken out for Stripe transactions. Developers don’t have to think about it.

    In this new world Apple imagines, developers will be collecting all of the sales into their own bank account, and then paying Apple the 11% or whatever Apple ends up demanding. There is a huge psychological difference between these approaches, just as there’s a difference between getting taxes taken out of your paycheck automatically and having to write a big check to the government.

    If this goes through, it will only underscore how ridiculous the App Store tax is. Why do developers have to pay Apple a platform fee when we’ve never had to do that for macOS? What is the point of the $99/year program?

    Apple wants iOS, the App Store, and their App Review team to be inseparable as a single platform. That’s not a technical reality. If they keep pushing this approach, they’ll only run up against more regulation and more distrust from the developer community.

    → 10:11 AM, Jan 19
  • The path to M.b for Android

    Last June, I was traveling with my family for a vacation to Washington DC. We had all gotten vaccinated, the Delta variant of COVID hadn’t hit the US yet, and we were feeling pretty great about moving beyond the pandemic. Maybe too optimistic, but that’s another story. For Micro.blog, what happened leading up to that trip and while in DC is that I spent some time thinking about the future of the platform and the team.

    Maybe it was the stress of travel. I felt a kind of urgent need to get help with Micro.blog, ideally from someone who knew Ruby, had seen some of my code before, and had experience with mobile apps and APIs, so they could hit the ground running. I emailed Vincent Ritter right before leaving town and asked if he was interested.

    Vincent had developed the third-party Micro.blog app Gluon, which runs on iOS and Android. He’s an active blogger and codes with Ruby, which we also use on the Micro.blog backend. He and I have discussed several improvements to the Micro.blog API through his work on Gluon, so I was pretty sure we had a similar approach to development and could work well together.

    Vincent has been working part-time on various improvements to Micro.blog since shortly after I reached out to him over the summer. Bug fixes, backend architecture brainstorming, and new features like dark mode on the web. But he’s also been working on something big: Micro.blog for Android.

    We rolled out the Android version last week as a public beta on Google Play to get early feedback. It won’t match the features of the iOS version exactly, just like the macOS and iOS versions are different from each other in their own way. The Android version has all the basics: the Micro.blog timeline, posting, replies, Discover. The design borrows from the iOS version but also tries some new things, like a tab bar.

    Five years since the Kickstarter for Micro.blog, I remain as excited as ever about the potential for Micro.blog. Finally filling in this missing piece for Android users is a huge step forward.

    Thinking back to last summer through to this winter, it’s easy to let bad news happening in the world dominate our thinking. I’m really proud that behind the scenes with Micro.blog we keep moving forward. I probably say something like this every January, but… 2022 is going to be great.

    → 12:11 PM, Jan 17
  • 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.

    → 1:38 PM, Jan 14
  • AppKit still pretty great

    Reacting to Daniel Jalkut’s follow-up on his 2010 post about native apps vs. web apps, Michael Tsai has a great summary of how much Apple has lost the plot. His blog post collects many of the problems in one place:

    Since then, Apple has slowed the pace of improvements to the frameworks for writing native Mac apps. It added technical (sandboxing, TCC, SIP, kernel extension restrictions) and policy (App Review) roadblocks that make it harder to develop apps that go beyond what can be done with Web technologies.

    I’ve been doing a lot with AppKit this week, updating Micro.blog for Mac. I can’t believe I’m saying this in 2022, but AppKit is still the best way to develop Mac apps. Apple’s framework strategy is so muddled.

    If you’re supporting iOS, Android, and macOS, you might choose an Apple framework like Catalyst or SwiftUI to cover iOS and macOS, then something different for Android. But lately I’ve been thinking the best way to support all 3 platforms is to have cross-platform code on mobile, and AppKit on macOS. iOS and Android are a lot more similar than either one is to the Mac.

    → 10:59 AM, Jan 13
  • 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.

    → 10: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.

    → 4: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.

    → 5:05 PM, Jan 7
  • 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.

    → 1:28 PM, Dec 27
  • 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.

    → 9:40 AM, Dec 14
  • Styling newsletters in Micro.blog

    We improved the email newsletter subscriptions feature today based on early feedback. There are a couple of bug fixes: not putting imported posts into emails, and a better “from” email address that includes your name.

    Styling of HTML emails is now possible with CSS. Under the Design → “Edit CSS” screen, there’s a new checkbox to include the CSS with emails in addition to on your blog:

    CSS checkbox screenshot

    The email content is wrapped in a microblog_email class, which you can use if you want to target specific parts of an email without affecting the CSS on your blog. For example, when Micro.blog collects posts together in weekly or monthly emails, it adds a link with the post date. If you wanted to change the color of that link:

    .microblog_email .microblog_permalink {
        color: orange
    }
    

    This could also be used for changing the appearance of block quotes or inline images. I’ll be sprinkling in some more CSS class names in the future so that other components of the email are easy to override.

    → 5:05 PM, Dec 7
  • 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!

    → 1: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.

    → 1:49 PM, Dec 3
  • Micro.blog via AppleScript

    On the latest Core Intuition, Daniel and I talk about the just-released FastScripts 3, his app for quickly running scripts. He mentioned that even though AppleScript hasn’t had any attention in years, it’s still useful as a complement to Shortcuts and other workflows. Daniel said:

    It’s like learning a little bit of French when you go to France. You don’t have to do it, but you’re going to have such an easier time if you do. And in my opinion, learning — even now, even in its state of relative neglect — learning a little bit of AppleScript on the Mac is like learning a little bit of French in France. You’re going to get a lot farther with everything you want to do.

    Micro.blog doesn’t have AppleScript support, but it does have a URL scheme for starting a new blog post. For example, I wrote the AppleScript below to play around with FastScripts 3. You could trigger it with a keyboard shortcut from FastScripts to start a new blog post using a link for an open Safari tab.

    -- we'll need access to AppKit for NSString's URL encoding
    use framework "Foundation"
    use scripting additions
    
    -- global variables that we'll set later
    set the_url to ""
    set the_title to ""
    
    -- helper function to URL-encode the text we'll pass to Micro.blog
    on urlEncode(input)
    	tell current application's NSString to set raw_url to stringWithString_(input)
    	set the_encoded_url to raw_url's stringByAddingPercentEscapesUsingEncoding:4 -- 4 is NSUTF8StringEncoding
    	return the_encoded_url as Unicode text
    end urlEncode
    
    -- ask Safari for the current tab's URL and page title
    tell application "Safari"
    	set the_url to URL of current tab of window 1
    	set the_title to name of current tab of window 1
    end tell
    
    -- make a Markdown string like [title](url)
    set s to "[" & the_title & "](" & the_url & ")"
    set the_mb_url to "microblog://post?text=" & urlEncode(s)
    
    -- start a new post with Micro.blog for Mac
    open location the_mb_url
    

    My AppleScript knowledge is very rusty, and it took more than a few web searches to cobble this together, mostly because of the URL encoding. Now that it’s working it could be the basis for other automation with Micro.blog.

    → 3:31 PM, Nov 12
  • Micro.blog 2.1.2 for macOS

    We released an update to Micro.blog for macOS today:

    • Added View menu → “Go to User” menu command to quickly open someone’s profile by username.
    • Added publishing progress pane to top of Timeline after posting.
    • Updated row selection in Posts and Pages to be full-width to better match Timeline selection.
    • Fixed account toolbar item background color in Dark Mode.

    This version includes a fix from @vincode! Neat to see other people look at the code now that it’s open source and contribute changes.

    You can grab the latest version in the Micro.blog Help Center or choose “Check for Updates” from the current app.

    → 10:19 AM, Nov 11
  • Epilogue 1.0 for Android

    Epilogue is now available in Google Play. This is the first official app we’ve released for Android! Version 1.0 is very focused — just adding books to your reading list and posting about the book to your blog — but if people like it we’ll add additional features in future versions. I like that it takes a small part of the “bookshelves” in Micro.blog and makes it much quicker to access.

    We are not going to compete directly with all the features in the new Goodreads competitors that have sprung up recently. Italic Type, StoryGraph, and Literal have interesting approaches to tracking books and building a community around reading. We’ll integrate with them where we can. Instead, Epilogue is for that last step of connecting to your blog, so that you can share your books at your own domain name where you own the content. To get there, we had to build a little bit of plumbing that is similar to those other book services, but I want Micro.blog and Epilogue to remain as lightweight as possible.

    The iOS version is stuck in App Review. You can still get the TestFlight public beta here. We also have a blog just for Epilogue news: epilogue.micro.blog.

    Happy reading! If you need inspiration, browse through the covers for books that members of the Micro.blog community are reading in our Discover section for books. Each book cover links to a blog post.

    → 11:59 AM, Nov 9
  • 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.

    → 12:12 PM, Nov 2
  • Flickr cross-posting from Micro.blog

    I was inspired when I saw news about the Flickr Foundation to take another look at what Flickr has been up to since they were separated from Yahoo. I haven’t used Flickr much in years, but I know it remains popular with some photographers on Micro.blog.

    In early versions of Sunlit, we let you browse your Flickr photo library and pick a photo to post to your blog. We removed the feature because the design was kind of backwards. I don’t want to post to Flickr first and then copy to my blog. I want to post photos to my blog first and then send a copy to Flickr, to share with followers on Flickr and to have an extra backup with a company that is committed to preserving web content.

    Today we’re rolling out Flickr support in Micro.blog with that vision in mind. It’s enabled under Account → “Edit Feeds & Cross-posting”, just like sending blog posts to Twitter, Medium, Tumblr, and other services. As Micro.blog is processing your feed, when it finds a blog post that contains images, it uploads them to Flickr, including the title (if any) and text of the blog post.

    It’s worth pointing out a couple things that this feature does not do:

    • No uploading of full-resolution photos or EXIF data. If you want Flickr to have the best version of your photo and all metadata, you should continue to upload original photos to Flickr directly.
    • No attempt to collect multi-photo blog posts into Flickr albums. If a blog post has multiple photos, they are uploaded individually with duplicate text.

    In other words, if you already have a Flickr workflow that you like, you should probably continue to use it! This is for people who have a Flickr account that has gone unused, but who know there’s value on Flickr if only it was easier to remember to use it. Now there’s a simple way to save photos from your blog to Flickr automatically.

    → 12:06 PM, Oct 22
  • Drummer and Micro.blog

    Drummer is a new outliner (with companion blogging system) from Dave Winer. As I’ve watched some folks on Micro.blog play with Drummer, I thought I’d take a look at how we could make it easier to use an outline in Drummer to write new blog posts for Micro.blog.

    The result is an experimental feature in Micro.blog that adds support for creating or updating posts automatically from OPML files on the web. Write in Drummer, publish to a blog hosted on Micro.blog. There are a few moving pieces, so the best way to explain how it works is this screencast video I made (also available on YouTube).

    I was fascinated to discover that when you look under the surface of Drummer, there’s the start of a Frontier-inspired scripting system too. I’m not sure where OPML support in Micro.blog will go from here, but this was fun to work on, and there may be more we can do with other outliners in the future.

    Maurice Parker has a blog post exploring the differences between Drummer and his outliner Zavala. Over the years, outliners have gotten more feature-rich but also complicated. There seems to be a lot of potential for more lightweight outliners like Drummer and Zavala that can potentially talk to each other and to the web.

    → 3:54 PM, Oct 18
  • Facebook's hold is fragile

    Yesterday was a whirlwind for me, taking care of personal stuff unrelated to Micro.blog, and I don’t think I really appreciated the 6-hour Facebook downtime until last night, sitting down to watch CNN. Mistakes happen, and I’m sympathetic to Facebook engineers who had to scramble, but this is the cost if you want your platform to have 3 billion users and essentially be the web for so many people.

    Facebook is (obviously) too big. Their week is about to get worse, with whistleblower Frances Haugen testifying in Congress today. It feels like the culmination of years of reputation-destroying bad PR on privacy and misinformation.

    In 2018 I blogged that breaking up Facebook is up to us. Facebook’s business is more fragile than I even realized. Their problems are baked into the product design, maybe unfixable at this extreme scale.

    Yesterday the world got a glimpse of what 6 hours without Facebook and Instagram looks like. It was disruptive for many businesses and many friends just trying to connect… but it was also fine. More like this, please.

    → 9:26 AM, Oct 5
  • 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.

    → 8:35 AM, Sep 30
  • 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.

    → 11:17 AM, Sep 26
  • Sunlit 3.4

    Sunlit 3.4 is now available in the App Store. For this update, we focused on improving the timeline experience, cleaning it up so that it better focuses on photos and viewing conversations. There are a bunch of little changes that together make the app feel much more responsive and easier to use:

    • Streamlined the timeline user experience, with single tap to view conversations and moved some buttons to secondary screens.
    • Improved performance and added placeholder blurred backgrounds while photos load.
    • Fixed bugs, updated toolbar with translucency, and other design tweaks.

    The blurred photo placeholders are done with BlurHash. Whenever you post a photo, Micro.blog calculates the BlurHash for it and includes that value in the /posts/media JSON Feed so apps like Sunlit can use it.

    Remember that the Micro.blog iOS app also supports sharing photos from Glass, and those photos will show up in Sunlit. I’ve been using Glass in addition to posting to my own blog for my murals photoblog series this month, and some of these improvements in Sunlit 3.4 are partially inspired by the UI polish in Glass. This is the best version of Sunlit yet.

    → 9:05 AM, Sep 13
  • Micro.blog 2.1.1 for macOS

    We updated the Micro.blog app for macOS today with the following changes:

    • Fixed file export issue that would cause blog export with many photos to get increasingly slower, sometimes crashing.
    • Fixed notification bar color for new messages to better fit in Dark Mode.
    • Fixed uploading animated GIFs in new posts.

    Choose “Check for Updates” to grab the latest version.

    We’re also hearing feedback about the new Dark Mode support for the web version of Micro.blog. I’m excited that we rolled this out and we’ll continue to update it as-needed. I don’t usually run Dark Mode on my Mac, but I’m living with it this week so I can better test everything.

    → 1:03 PM, Aug 31
  • Upgraded Micro.blog hosting

    We’ve finished a server upgrade for Micro.blog-hosted blogs. It’s now backed by the Caddy web server and includes a few other improvements. The big changes for Micro.blog are:

    • Automatic HTTPS. If you used custom domains on Micro.blog before, you noticed there was a delay between setting up your domain and HTTPS getting enabled. That delay is gone now.
    • Hostname redirects. Micro.blog now always redirects to the primary version of your custom domain. As an example, my domain under the Design page is set to “www.manton.org”, so “manton.micro.blog” and “manton.org” will redirect there.
    • Faster publishing. Because of some of these changes, we cut down on the work Micro.blog does behind the scenes, making it faster to go from clicking “Post” to having the web page live on your blog.
    • Scaling. We can now more easily copy your hosted blog across multiple servers. This will minimize downtime and help performance as we grow.

    If you are hosting on Micro.blog, you don’t need to do anything. All blogs have been upgraded with these improvements.

    If you notice any problems, please let us know. We’ve been rolling this out slowly over the last few days to avoid rate-limiting with new HTTPS certificates. If you are using Cloudflare in front of Micro.blog, you will need to disable Cloudflare’s request proxying so that Micro.blog can finish setting up the secure version of your site.

    → 9:11 AM, Aug 23
  • Micro.blog 2.2 with sharing from Glass

    I’m always paying attention to new platforms that pop up, especially when there is some overlap with Micro.blog. The iOS-only photo sharing app Glass launched last week as an interesting alternative to larger social networks. Today I’m announcing a new version of Micro.blog with special support for Glass.

    Glass has no public API or web version, but it does have a way to share a simple web page of your photo. We’ve leveraged this so that you can take one of your Glass photos and send a copy directly to your own blog.

    Here’s a quick screencast video showing this feature in action:

    This might look normal enough, but because Glass shares a web page URL instead of the photo, if you use any other app you’re just going to get a link. Micro.blog downloads the HTML, parses it looking for the photo URL and caption, then moves that into a Micro.blog post. The new photo is hosted on your blog, with your own domain name if you have one.

    Glass is so new that it remains to be seen where the app will go, and how it might expand in the future. It shares some of the same principles as Micro.blog — no ads, no algorithms, no likes — but Glass lacks important open web features like domain names and IndieWeb APIs.

    I’ll always prefer posting photos to my own blog instead of a silo. We do need more social networks, though, and any attention that can be pried away from Facebook and Instagram is a win. Best of luck to the Glass folks.

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

    → 11:06 AM, Jul 20
  • Last night's downtime

    Yesterday’s outage was the worst downtime we’ve ever had for Micro.blog-hosted blogs. I designed the architecture to separate the main platform from hosted blogs, so that all the complex moving pieces of the platform — databases, the API, multiple servers — couldn’t affect performance of your own blog. This has worked out so well over the years that it has made me lax about planning how to recover quickly from worst-case scenarios.

    So what happened? We noticed some performance issues and glitches, with unusually high CPU usage. On reboot, the disk check failed, and I was unable to repair it. To make matters worse, I could not recover from the latest backup because Linode’s backup service was also down for unscheduled maintenance.

    As I wrote in more detail a few months ago, we store important files like photos in multiple places so that if disaster strikes we can still rebuild your blog. With the backups down, I set out to do that kind of rebuild, but I had never done it on quite that scale before. One problem I had overlooked is how long it would take to update HTTPS certificates for custom domain names.

    After a few false starts, I scrapped that restoration work when Linode’s backups came online, and was able to more quickly get everything back up and running. I learned a lot, and Vincent and I will be talking through some next steps to make this more robust. I never want to go through an extended outage like this again. I’m very sorry it happened and I’m thankful for everyone’s patience.

    I’ll be keeping an eye out for any lingering problems. Please reach out to help@micro.blog if you notice anything that looks wrong.

    → 9:33 AM, Jul 20
  • Micro.blog 2.1.2 for iOS

    Micro.blog for iPhone and iPad has been updated today with a handful of bug fixes:

    • Fixed erratic scrolling when typing long blog posts.
    • Fixed post context menu appearing offscreen for posts with many photos.
    • Fixed not loading your latest profile photo.
    • Fixed profile photo moving after user screen loads.

    Happy blogging! You can grab it in the App Store.

    → 9:31 AM, Jul 18
  • Welcoming Vincent

    Vincent Ritter is the developer behind the excellent Gluon, a Micro.blog app for iOS and Android. He has been a long-time member of the community and helped push the Micro.blog API forward. As we look to all the things we want to do this year, I’m excited to announce that Vincent has agreed to join us as a part-time contractor to help me on the Micro.blog backend code.

    This complements our announcement that all the iOS and macOS apps have been open-sourced. Having another set of eyes on the larger web platform behind Micro.blog will help us scale it as we grow the community, and Vincent’s experience developing third-party apps will make sure we don’t overlook improvements to the API that can benefit all apps.

    But wait, is this like when Twitter acquired the third-party iOS app Tweetie, making it the foundation for Twitter’s own native app? Are we taking over development of Gluon? Nope. Vincent may help with the official apps in the future, but Gluon will continue as an independent project with the same access to the API as any other app.

    It’s an important part of Micro.blog that there is an open API and a diverse set of third-party apps. Our business is simple — no ads, just pay for blog hosting if you want to — so we don’t need the official app to solve every problem or discourage third-party apps. Where we need help is improving the foundation of Micro.blog, the web interface, and expanding the API to make all apps better.

    Vincent will also be joining us on a panel at Micro Camp — along with Daniel Jalkut and Sam Grover — to talk about developing for Micro.blog.

    Thanks Vincent for your support of Micro.blog and for jumping into the server codebase!

    → 10:00 AM, Jul 15
  • Micro.blog 2.1 for macOS with Discover emoji, new export

    Version 2.1 of Micro.blog for the Mac is now available. This release includes the following changes:

    • Added emoji topics pop-up menu to Discover. See screenshot here.
    • Added export menu for WordPress, Blog Archive Format, Markdown folder, and Day One.
    • Fixed posting window to disable smart quotes.

    And don’t forget, the app is also open source. We’ll be talking more about development with the Micro.blog API at Micro Camp next month.

    → 10:33 AM, Jul 14
  • Micro.blog 2.1 for macOS, beta 2

    Usually I work on features in short sprints and ship them out to everyone as soon as they are ready. Days or weeks, not months, unless it is a major overhaul that touches all pieces of the platform. For Micro.blog 2.1 for macOS, I set out to add some export options directly to the app, and it has proven to be a bit of a slippery slope… If there’s Markdown export and Day One, might as well add Blog Archive Format and WordPress too. And if there’s export, what about import?

    But importing and exporting are already part of Micro.blog on the web. We support importing from WordPress, Medium, Tumblr, Ghost, Markdown, and others. It doesn’t make sense to recreate all of those in the native app, unless there’s an advantage to running locally like for our Instagram import on macOS.

    This is all a long way of saying, I’m keeping 2.1 in beta while I continue to work on this and test it. Your milage may vary, make sure you have backups, etc. You can download the latest beta here.

    → 3:28 PM, Jul 12
  • Open-sourcing the Micro.blog apps

    I’ve been thinking a lot lately about the longevity of Micro.blog and where we need help to continue to grow the platform and community. As we approach 4 years since the public launch, there are some parts of the platform and supporting services that should be shared more widely, so that I’m not the bottleneck on every little change.

    As a next step, all the native apps for iOS and macOS are now open source, available on GitHub:

    • microdotblog/microblog-ios
    • microdotblog/microblog-mac
    • microdotblog/sunlit
    • microdotblog/wavelength

    Note that the projects started as private repositories without the intention of lots of people seeing them, so the usual disclaimers apply: the project structure might be confusing, the code a little messy, and maybe not everything will work perfectly without some tinkering.

    I’ll have more to write later about how we want to grow Micro.blog this year. In the meantime, enjoy the code! MIT license, so there’s plenty of flexibility to use it however you’d like.

    → 1:00 PM, Jun 30
  • Building on the Micro.blog books API

    Since launching the bookshelves feature in Micro.blog on the web, I’ve been wondering whether we should build a native interface for this in the Micro.blog app. My answer: no. Books are so unique that it feels like they need a dedicated app, just like there is a native app for Goodreads on iOS and Android. Native apps could make it easy to quickly mark a book as “finished reading”, or provide fun features like barcode scanning from the phone camera.

    You can make a pretty strong case that we already have too many official iOS apps: Micro.blog, Sunlit, and Wavelength. Books seems like a great third-party opportunity instead.

    I’ve documented the bookshelves API in the Help Center. It can do most of what Micro.blog on the web does, with the notable exception of book search. If you are building a books app, you’ll need to “bring your own” book search from Open Library, ISBNdb, Google Books, Amazon, or wherever.

    A theoretical app built on Micro.blog could let the user sign in with their Micro.blog account using IndieAuth. Then the app could get the user’s bookshelves, add new books, or post to their blog with a link to the book.

    Like most of Micro.blog, the API is based on JSON Feed. Lists of bookshelves and books are just JSON Feed with a little bit of extra data like isbn in a namespace field. When Micro.blog has the book cover, it’s included in image.

    There have been some interesting experiments with custom JSON formats or even based on OPML, but as I was reviewing these it seemed like an unusual departure for Micro.blog to not use JSON Feed. We can consider adding additional formats later.

    I’m happy to support whoever wants to tackle this. Jon Hays suggested a hackathon for people to get together and tinker with the API, or build an app together. What do y’all think?

    In addition to the Micro.blog API, another area where we could experiment is an app that connects bookshelf data from independent web sites. For Micro.blog-hosted blogs, the bookshelves are available via Hugo templates, so it’s possible to generate HTML pages that include Microformats. See the IndieWeb wiki for some prior art about this.

    → 8:29 AM, Jun 17
  • More with bookshelves

    The experiment to manage the books you’re reading in Micro.blog has been really well received. We’ve heard some great feedback about how to improve this feature and what its final form should look like when it’s rolled out to everyone.

    I’ve made a few improvements recently, including making it easier to try. If you want to enable the “Bookshelves” link in your Micro.blog sidebar, just click on this link when you’re signed in to Micro.blog on the web.

    The books list is now sorted with most recently-added books at the top. The data is also now available to Hugo themes. In any template, you can use some Hugo code like this to access the books in a bookshelf such as “Currently reading”:

    {{ range .Site.Data.bookshelves.currentlyreading }}
       <a href="https://micro.blog/books/{{ .isbn }}">
         {{ .title }} by {{ .author }}
       </a>
    {{ end }}

    Thanks to Jason Becker for suggesting this. I had never used Hugo data templates before and there is a lot we could do with them. (And you can still edit a bookshelf to include it on any page without making theme changes.)

    Some of the feedback I’ve been thinking about is whether “books” isn’t general enough for this feature. Daniel made this pitch on our podcast, and others have suggested music, movies, podcasts, or even beer as other things that could be tracked in “shelves”. These would all be fun to work on and useful, but they would make a fairly simple feature many times more complicated and take months of additional development time. I don’t think we could tackle that kind of scope expansion without distracting from our core priorities with Micro.blog.

    For 2021, the plan is to stick with books. We’ll continue to tweak it and then enable it for everyone by default in a few weeks.

    → 9:30 AM, May 20
  • Webmention and Twitter

    After the Webmention session last weekend, I was inspired to revisit a quirk of Micro.blog’s Webmention implementation. Bridgy is an IndieWeb-friendly service commonly used to forward tweet replies via Webmention. If you were using Bridgy to connect your blog to Twitter, Micro.blog had been essentially ignoring any tweet replies to your blog post. Unlike Micro.blog’s support for Mastodon and blogs, there was no way to represent a Twitter user in Micro.blog, and so it didn’t make sense to thread tweets into a Micro.blog conversation.

    Including tweets in Micro.blog would have other ripple effects that I wanted to avoid. For example, what happens if you reply to a tweet? I’m not interested in turning Micro.blog into a Twitter client. Quite the opposite. I’m actively trying to distance myself from Twitter and avoid dependencies on any big social networks unless they are based on open standards.

    Back to Webmention. I think I’ve found a good compromise solution for compatibility with Bridgy, bringing Micro.blog’s Webmention support more in line with what Webmention.io can provide.

    When Micro.blog receives a Webmention for a tweet via Bridgy, it now does create a special reference for that Twitter user and stores the tweet text. The tweet still does not appear anywhere on Micro.blog. The tweet is available as part of the conversation on your blog, though. If you don’t have replies enabled on your blog, you can learn more in the Help Center about using Conversation.js.

    This is all a long way of saying: when you post a link to your blog post on Twitter, tweet replies will be collected and included under your blog post on the web.

    There’s an additional gotcha you should know about using Bridgy and Micro.blog together. Bridgy needs a link to your blog post for it to be able to match up tweet replies to that blog post. When cross-posting to Twitter from Micro.blog, Micro.blog only includes a link back to your blog if your blog post has a title, or if it needs to be truncated to fit in the tweet.

    If you want all cross-posted tweets to link back to the microblog post, even if they were short, you can use Bridgy itself for the cross-posting instead of Micro.blog, and disable cross-posting in Micro.blog. I’m not planning any changes to Micro.blog’s cross-posting in the near term.

    → 9:17 AM, May 19
  • Webmention on Micro.blog demo

    This weekend there will be an IndieWeb discussion session about Webmention. Micro.blog has support for both sending and receiving Webmentions, with some twists, so I thought I’d make a quick video to demo how it works with external blogs. This is a big part of making sure Micro.blog is a good participant in the larger web.

    I glossed over a few details in the video. One thing I should have mentioned is that WordPress doesn’t have this functionality by default. It requires installing the IndieWeb suite of plugins for Micropub and Webmention.

    → 11:15 AM, May 13
  • Bookshelves beta for Micro.blog

    I’ve been experimenting with another new feature for books in Micro.blog. Bookshelves are like a little slice of Goodreads, but without some of the social features and complexity. Bookshelves in Micro.blog are focused on keeping track of books you are reading to make it easier to blog about them.

    Here’s a screencast video of how it currently works:

    Next steps might include showing a “Currently reading” page on your blog, and pulling any existing “Finished reading” blog posts into a bookshelf to get started. I think there’s a lot of potential, but I also don’t want to clutter Micro.blog for people who don’t need this. Looking forward to your feedback before we ship it.

    → 10:55 AM, May 11
  • Wavelength 1.1 and podcasting trial

    We updated our iOS companion app Wavelength today. The new version adds Dark Mode support, now uses the system font, and takes care of some other housekeeping after going so long without an update.

    We are also open-sourcing the app! It is available here on GitHub. Just like our other app Sunlit, this was developed with Jon Hays and as we wanted to open source more pieces of Micro.blog, Wavelength felt like a perfect next step.

    To celebrate the launch of version 1.1, we’re enabling podcast hosting for all paid Micro.blog accounts for the next 2 weeks. You can publish a podcast episode to your blog via Wavelength, or upload an MP3 directly on the web. We take care of generating a podcast feed and all the other details. If you want to continue with podcast hosting after that, it’s included in Micro.blog Premium for $10/month.

    Download Wavelength from the App Store, or learn more in the Help Center.

    → 10:22 AM, May 10
  • How does Micro.blog even work?

    I’ve been upgrading servers and improving performance in Micro.blog lately, a theme which will continue throughout the year to make everything as stable as possible. Sometimes this introduces new bugs or weird behavior that makes people scratch their heads. What is Micro.blog even doing? So let’s look a little at the architecture.

    When you write a new post, Micro.blog saves it into a MySQL database. We currently run 2 database servers, so that we can spread some queries between them and to make backups easier. But unlike many web apps, we do not serve blogs from this database. Blogs are published to a separate server as static HTML and images, served directly by Nginx with few or no dependencies on the rest of Micro.blog. This makes your blog very fast, and means that major parts of Micro.blog can go down without affecting your blog.

    This has been a key design goal from the very beginning of Micro.blog. We host a blog for you, but it can have its own domain name and is only loosely tied to the rest of Micro.blog. This goal meant discarding some common architectures such as dynamically generating the blog when pages are requested.

    Micro.blog is really 3 separate systems combined into a single platform: a blog admin interface, a blog hosting service, and a Twitter-like timeline.

    To achieve this, Micro.blog has to translate the blog posts from Markdown to HTML. It runs all the text through Hugo. It also has to put photos and podcasts in the right place. When you upload a file, Micro.blog copies it to an object storage server at the same time that it syncs the file to your blog.

    Timeline web requests and background tasks are run across a few servers, so that we can balance load and deal with outages. While Hugo wants all your Markdown and photos in a specific structure in the file system, Micro.blog maintains content in separate databases and then writes it out to the format that Hugo wants for processing.

    Any given server could have part of your content or none of it yet, so Micro.blog will have to sync everything up. It does this in multiple phases to make publishing as fast as possible, and this is the area that I’ve been spending a lot of time tweaking.

    First, Micro.blog attempts to quickly publish your latest post, so that it’s available at the permalink URL and included in the blog feed. If you have thousands of posts, it ignores most of them during this phase. It just wants to get your post up on the web as quickly as possible and added to the Micro.blog timeline.

    Whenever Micro.blog is processing posts, it also applies any custom themes for your blog. It never skips the Hugo step, even if your blog post content is so simple that it could be previewed with a separate Markdown filter. Every post is run through Hugo, added to the RSS or JSON Feed, and only then processed into the Micro.blog timeline.

    This round-trip journey your content takes is an important part of how Micro.blog works with external blog feeds like WordPress. We aren’t interested in building a proprietary social network that is not rooted in blogs. The timeline works with blogs no matter where they are hosted.

    Next, Micro.blog will do a full publish of your blog, with the entire site, categories, photo pages, and archive. In some cases, it will combine the Markdown with any uploaded photos before processing them, but usually the uploads are already on your blog. It also keeps a copy of all the Markdown files, independent on any of the web servers, so that if possible it can update those versions without writing out potentially thousands of posts to the file system.

    This phase of publishing is the longest, although it’s faster now than it has ever been. During this phase, your latest post should already be live and the timeline updated, so it’s not as annoying to wait around for the archive or category pages to update.

    I’m exposing more of what Micro.blog is doing behind the scenes in the logs for your account. Here’s a snippet from my log recently, although I’ve flipped it so that it reads in chronology order instead of newest at top:

    2021-04-11 16:54:25: Publish: Not queued, publishing manton
    2021-04-11 16:54:25: Publish: Initial prepare for manton
    2021-04-11 16:54:25: Publish: Preparing pages for manton
    2021-04-11 16:54:25: Publish: Persistent folder exists, updating for manton
    2021-04-11 16:54:25: Publish: Initial posts for manton
    2021-04-11 16:54:26: Publish: Linking shared content files for manton
    2021-04-11 16:54:26: Publish: Running Hugo for manton
    2021-04-11 16:54:26: Publish: Initial Hugo run for manton
    2021-04-11 16:54:26: Publish: Initial sync for manton
    2021-04-11 16:54:26: Publish: Pinging manton, progress: 0.866 seconds
    

    Here, there are actually 2 overlapping background tasks. The lines with “Initial” (italicized above) are part of this first phase of quickly publishing your post. In this case, the round-trip from saving the content, publishing the feed, and then updating the timeline was about 1 second. Under a few seconds is kind of the gold standard we’re aiming for.

    Finally, Micro.blog assembles the timeline so that it can be served quickly no matter how many people you are following. We have a Redis server that keeps the timeline for each user in a sorted set, and use that from the Micro.blog API to page between posts. Micro.blog also processes posts for @-mentions, sending Webmentions, auto-linking URLs, and other details that are beyond what I wanted to write about here.

    Could this be even better? Yes. But while I’m sometimes tempted to change the architecture to something closer to WordPress’s model, I know there’s always more performance we can squeeze out of our current setup.

    → 9:57 AM, Apr 19
  • Micro.blog RSVPs with Webmention

    Micro.blog sends Webmentions to external blogs when you “reply” to a post inside Micro.blog. It marks up your reply with Microformats, discovers the Webmention endpoint for the post you’re replying to, and sends the Webmention. This allows your Micro.blog replies to be included as comments on blogs hosted by other platforms, like WordPress.

    An RSVP is a special type of reply used to indicate whether you’re attending an event. By posting RSVPs to your own blog, you can attach them to existing posts or just have your own copy of the data. As more bloggers use RSVPs, we could eventually have a more distributed, IndieWeb-friendly system instead of relying on Facebook or Evite.

    How to create an RSVP on Micro.blog? We don’t currently have an RSVP button in Micro.blog, because Webmention-enabled events are still rare enough that it would take up a lot of the Micro.blog UI, potentially cluttering the interface.

    You’ll need a little bit of HTML to create an RSVP. First, add a link to where you want to send the Webmention. Instead of using Markdown for the link, use HTML and add the Microformats class="u-in-reply-to" to mark the link as a reply to another URL:

    Looking forward to this <a href="..." class="u-in-reply-to">Webmentions pop-up session</a> next month.
    

    Then, to make this an RSVP, add a data tag somewhere in the post with “yes”, “maybe”, or “no”:

    <data class="p-rsvp" value="yes" />
    

    I like to use data because it’s invisible when displayed in a web browser, but it could be a span or other HTML tag. You can see a full example of this if you view the HTML source of my post here, RSVP-ing to an IndieWeb online event.

    When you publish the post, Micro.blog will automatically notice the u-in-reply-to, find the Webmention endpoint for the post you’re linking to, and send the Webmention for you. Micro.blog themes also handle the other details, like including your name and profile photo.

    → 4:37 PM, Apr 15
  • Micro.blog redirects

    I rolled out several improvements to Micro.blog today. I’ve been working on a long-term plan to significantly improve publishing performance for blog posts, and the first part of that is live now. It may not be immediately noticeably but it will start to make a difference for some parts of the publishing workflow behind the scenes. (And in the best case, some things will already be faster.)

    I also finished better support for redirecting URLs in hosted blogs. This cleans up some clunkiness in the old implementation:

    • When you create a page where the text content is just a plain URL, Micro.blog will better redirect to that URL without loading any of the design layout for your blog. This eliminates the flicker or partial page load you could see previously in some themes.
    • There is now a separate “New Redirect” button under Pages on the web. This lets you set up extra redirects, for example old URLs when migrating from a previous blog platform. These redirects are only checked when a page does not already exist on your blog.

    Note that when using the import feature of Micro.blog — from WordPress, Ghost, Medium, or Tumblr — Micro.blog tries to automatically create redirects to preserve your old URLs. It also redirects common RSS feed URLs. It does not list these special redirects on the Pages screen.

    Thanks everyone for using Micro.blog! We’ve seen a lot of new interest this week with the release of Ulysses. More improvements on the way.

    → 3:41 PM, Mar 27
  • Ulysses 22 with Micro.blog publishing

    The latest version of Ulysses is out today with Micro.blog support! We are very excited to see this ship. I use Ulysses for my notes, blog post drafts, and even writing for my upcoming book, so the integration to publish directly to Micro.blog is perfect, skipping the need to copy/paste or export text between apps.

    Here’s how to get started. I’m using the Mac version, but this works on iOS too. Ulysses supports publishing to a few blog systems, and you’ll configure them in the Preferences window on the Mac. First click the “+” button under Accounts.

    Ulysses prefs window

    You’ll be prompted to enter an “app token” for your Micro.blog account. This is like an app-specific password that lets Ulysses sign in to your Micro.blog account and publish to your blog. You can generate a new token for Ulysses in Micro.blog on the web under Account → “App tokens”. The “Micro.blog account” link in the Ulysses window will also take you right there.

    Ulysses app token

    If you have multiple hosted blogs in Micro.blog, Ulysses will prompt for which blog you’d like to post to. Micro.blog supports multiple blogs so you can have an extra blog for a podcast, or photo blog at a different domain name, or just a test blog to try out theme changes without affecting your main site.

    Ulysses select blog

    When you’re ready to publish a blog post, click the share icon in the upper-right corner of Ulysses and select Publishing. Ulysses will preview the post and then when you click Publish, it will prompt for setting a title, categories, and whether to save the post to Micro.blog as a draft or make it live on your site.

    Ulysses publishing

    To learn more about everything included in the new version of Ulysses, check out the Ulysses blog post. It’s available through the App Store and includes a free trial.

    → 9:52 AM, Mar 22
  • New help center using Discourse

    I wanted the original help site for Micro.blog to be a blog, hosted on GitHub, because it would be easy for me to post new articles, and anyone could see the version history of an article, or contribute their own changes. And some people did! I want to especially thank @paulrobertlloyd for redesigning the help site a couple years ago.

    But now that we’ve had some time since winding down our Slack community, it has become clear that even with the potential for extra blogs about Micro.blog like custom.micro.blog, which is a great resource, we needed a place that people could ask questions and get help from the community. The idea is to use the web forums software Discourse and combine it with all the content from our original help site.

    Today the new help.micro.blog is live. My favorite part: it will use your Micro.blog account. Just click Login and you’ll be automatically signed in. No new account to manage just to post to Discourse. Hope you like it!

    → 4:53 PM, Mar 11
  • How to blog about books

    First, there is no right way! Just type something about what you’ve read or want to read, hit post, and you’re good. However, we have built a few book-specific features in to Micro.blog that aren’t obvious on first glance.

    My favorite is the book search. Enter an ISBN-13 or a book title and author, and Micro.blog will return a list of books it finds using Open Library and ISBNdb. From there, you can click to automatically draft a post with the book title, link, and author. You can then add some commentary or just publish it as-is.

    Blog posts that contain the books emoji 📚 will get collected in our Discover → Books collection. If the post includes a link to Micro.blog with the ISBN (micro.blog/books/isbn-here, added for you by the book search), then Micro.blog will also show the blog post on our book covers grid, which is another fun way to discover what people on Micro.blog are reading.

    A nice bonus with including 📚 in your posts is that it’s easy to tell Micro.blog to add all your book-related posts to a category on your blog. Click on Categories → Edit Filters and make a filter that assigns the Books category whenever a post contains that emoji.

    Micro.blog also supports indiebookclub. It uses the Micropub API to publish blog posts, and Micro.blog will format them so they are also included in the book covers and Discover collection.

    Personally, I’ve been reading a lot the last few months. I’ve also started to use Goodreads more, in addition to blogging about books I finish on my own site, to better understand what additional features we could build around books for Micro.blog.

    → 2:43 PM, Feb 25
  • Thinking back to IndieWebCamp

    Jean and I were talking this week about how it’s been 1 year since IndieWebCamp Austin. That was the 3rd IndieWebCamp here, and after it wrapped up we were already talking about plans for 2021, excited to look at potential new spaces for the conference in Austin.

    Little did we know last year that IndieWebCamp Austin would be the last in-person IndieWeb event all year, for any city, with everything else cancelled or moved online because of COVID. If the Austin event had been even a couple weeks later, we probably would have cancelled it too, as the scope of COVID was just starting to be understood.

    Now a year later, a tragic 500,000 dead in the United States, vaccines are rolling out, and we are starting to see the light at the end of the tunnel. I think 2021 is going to be largely the same as 2020 in terms of events. WWDC will no doubt be online again too. But I can start to imagine that some in-person events and meetups will come back next year, although surely reimagined around safety. In the meantime there have been a number of online IndieWeb events, both informal meetups and pop-up sessions around specific topics, like improving APIs.

    We are also thinking about what a Micro.blog-focused online conference might look like. It has been wonderful to watch the community grow, and there’s so much we could do this year.

    → 12:46 PM, Feb 25
  • 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.

    → 9:07 AM, Nov 3
  • Sunlit 3.2

    We’ve released an update to our photo app Sunlit with the following changes:

    • Added Bookmarks tab and star icon in timeline to bookmark a photo.
    • Added share sheet for starting a new post from other apps.
    • Added option for new posts to choose photos already uploaded to your blog.
    • Improved signing in to look for existing sign-in info if Micro.blog app is also installed.
    • Improved entering accessibility alt text to show multiple lines.
    • Improved performance when uploading multiple photos.
    • Fixed keeping in-progress reply text when switching to another app.
    • Fixed potential crash when uploading photos.
    • Fixed publishing errors when upgrading from an old version without re-selecting blog.

    Download it in the App Store. Next up on the to-do list: an iOS widget extension. Jon has been testing it and it will show up in the TestFlight beta soon.

    → 9:20 AM, Nov 1
  • Core Intuition 441

    We just posted Core Intuition 441. From the show notes:

    Daniel checks in with Manton, who is making an effort to take some time off from working so hard. They veer into a discussion weighing the merits of fixing little nitpicky bugs vs. adding meaningful features. They discuss the debate sparked by Sketch about native desktop apps vs. web apps, and Daniel concedes some of the advantages of web development.

    Thanks for listening to the show. If you’d like to support the podcast with a subscription, check out our membership page.

    → 10:51 AM, Oct 31
  • What's new in Micro.blog 2.0

    I’ve written a few blog posts to preview some features in Micro.blog, but until 2.0 launched today we didn’t really have everything in one place. Here are a bunch of the new features:

    • Bookmark archiving for Micro.blog Premium. When you bookmark a microblog post (or bookmark any URL on the web), Micro.blog will download the web page and save a copy of the text and images. This also makes the web page searchable.
    • Highlighting. Bookmarked web pages get a special reading interface. Make highlights in the text and use those highlights as quotes in future blog posts. See this video for a tour.
    • Multiple account support on iOS. Tap your profile icon in the menu to add a new account or switch between accounts.
    • Manage uploads. On iOS, upload photos, podcasts, or any file to your blog. On macOS, you can also drag files in to upload them. Uploaded files get a Copy HTML button to paste an img, audio, video, or link tag for the upload into a blog post.
    • Redesigned web interface with new sidebar. It is now much easier to access your blog settings and edit posts.
    • Share extension to add a bookmark on iOS. There’s also a bookmarklet to use in your web browser.
    • Improved character counter on the web. When writing a new post, it now takes into account the text length after processing Markdown.
    • Editing replies. You’ve been able to edit your own blog posts for a while. Now you can also edit replies to other people. Great for fixing typos.
    • Separate window for new posts on macOS. The app looks the best on macOS 11 Big Sur, but still supports Mojave and Catalina too.

    And many other minor improvements and fixes. Enjoy!

    → 5:56 PM, Sep 29
  • 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.

    → 12:08 PM, Sep 21
  • Stop using Facebook and Instagram until November

    I’ve heard the excuses and I get it. You have family on Facebook. You have friends on Instagram. Maybe you can’t completely give up on those platforms. But you can shut them down for a month.

    Facebook has not made enough progress in the last 4 years to deal with misinformation and hate. In the final stretch of the presidential campaign, why are we supporting any platform that risks the consequence of fake news and conspiracy stories spreading unchecked? Are we going to stop using Facebook and Instagram now, or are we going to wait until after Trump is reelected?

    You don’t have to use Micro.blog. But don’t spend another minute on Facebook-owned platforms until after the election.

    → 11:13 AM, Sep 14
  • Almost switched to Android

    With my iPhone X glass broken, I needed a replacement phone quickly. The timing is not great because Apple has an event tomorrow, likely for the iPad and Apple Watch, with an announcement for new iPhones to follow within a few weeks. On the other hand, it has been nearly 3 years since I bought my iPhone X, so I don’t feel bad upgrading even to last year’s iPhone.

    Meanwhile, there’s Android. As Daniel and I have been discussing on Core Intuition, I’ve been increasingly frustrated with how Apple manages the App Store. It would be good for me to have more experience with Android, eventually developing an Android version of Micro.blog.

    Last year I bought a cheap Android tablet (Galaxy Tab A) to use for testing. I’ve been using it much more often, and it has become my “catching up on email, surfing the web, and Slack-ing while in the living room” device. The hardware is slow, but it runs Android 10, and already it has been useful for seeing how Android users experience Micro.blog.

    iMessage lock-in remains the biggest problem with Android for me. I tried AirMessage, which Ben Thompson had good things to say about on Dithering. AirMessage runs on your Mac and essentially forwards messages back and forth to Android. It’s clever, but because I use a MacBook Pro exclusively, AirMessage will stop working if I close the laptop or take it somewhere else.

    One option I seriously considered is getting a Pixel 4a and using an old iPhone (or ordering a new iPod Touch) just to run iMessage, Micro.blog, and anything else that I needed iOS for. It doesn’t make sense to go all-in on Android while I’m in the middle of wrapping up a major iOS upgrade to Micro.blog 2.0. Having 2 inexpensive devices would force me to live in the Android world while also keeping iMessage and everyday testing for Micro.blog 2.0. It looked like I couldn’t get a Pixel 4a shipped very quickly, though.

    In the end, I’ve decided to upgrade to the iPhone 11 Pro. It arrives tomorrow. It’s the 3rd version of the iPhone X-style phone, so I know it’s a stable, better version of what I already have. I don’t know what the iPhone 12 is going to look like, whether the quality will be rushed because of COVID, or what features they’ll stick in that I don’t need. I’ll continue to tinker with Android, and maybe that will be my next phone, but it felt a little too early for such a disruptive change.

    → 9:05 AM, Sep 14
  • Core Int 434

    The latest episode of Core Intuition is out. From the show notes:

    Manton and Daniel review Daniel’s experiences as his first podcasting sponsorship airs, and they talk more generally about being willing to “sink money” as part of a learning process in business. Manton talks about his interest in developing for Android, and we lament the increasing feeling that we need to hedge our bets against being “all-in with Apple.”

    We’ve also been publishing more episodes of Extra Intuition, our podcast just for members, with the 10th episode out this week. You can subscribe for $5 and get a special podcast feed for the extra show, plus access to a members-only channel in Slack.

    → 4:53 PM, Sep 11
  • 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!

    → 11:44 AM, Aug 31
  • Countdown to Sunlit 3.0: timeline

    Sunlit 3.0 will ship in 2 days, on Tuesday. Today I’m going to highlight how Sunlit’s timeline can be used to browse and reply to photos.

    Sunlit’s timeline is built on the Micro.blog timeline. When you follow someone in either Micro.blog or Sunlit, their photo posts are added to the Sunlit timeline. It’s strictly reverse-chronological based on who you’re following. No ads. No algorithms.

    This quick video shows how scrolling through the timeline works, and how to reply to posts and view conversations.

    Tomorrow I’ll have the last post in this series about Sunlit 3.0. We’ve also been working on some additional bug fixes that will be rolled into 3.0.1, shortly after launch.

    → 12:20 PM, Aug 30
  • 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!

    → 3: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.

    → 5:58 PM, Aug 28
  • Jason Fried on TWiST about Hey vs. Apple

    I was listening to Jason Fried on This Week in Startups today while out taking a walk, and Jason said something so extraordinary it kind of stopped me in my tracks. On the Hey vs. Apple controversy:

    If the Apple decision would have gone the other way, I was considered quitting, and basically retiring. […] Here’s why: I didn’t get into business — I didn’t start a business — to be told what to do by another business. […] We’re self-funded. We do everything our own way so that we can do it our own way. And to be in an industry where if Apple forced us to have to give them 30% of our business and not be able to interface with our customers the way we want, I don’t want to be in that industry.

    The segment starts about 60 minutes in. Here’s an Overcast link to the spot in the podcast.

    Even more than the latest case with Epic Games, or WordPress iOS rejected for weeks, that quote from Jason highlights what this is all about. Apple’s total control over iPhone app distribution and payment is preventing developers from doing their best work. The App Store started with good intentions, to help users, but the rules have become twisted, corrupted as Apple gains power. It’s not right.

    → 10:34 PM, Aug 22
  • Old spy movies 📺

    A couple months ago, we watched The Spy Who Came In from the Cold and then became kind of obsessed with finding other old spy movies. Next we watched a series with Michael Caine, and then moved on to James Bond, and so on, filling in a bunch of movies we’ve never seen over the course of a month.

    Here’s the complete list, with a short note about each one or each series. First the standalone movies:

    • The Spy Who Came In from the Cold (1965): John le Carré. We didn’t rewatch Tinker Tailor Soldier Spy, but it’s another great one.
    • North by Northwest (1959): Alfred Hitchcock. Now I understand all the praise this movie gets.
    • Three Days of the Condor (1975): With Robert Redford, I feel like this could almost be a prelude to Sneakers. One of my favorites from our month of watching spy movies.
    • The Third Man (1949): Not a spy movie, but written by someone with espionage in their Wikipedia bio. We discovered it while looking for other films.

    Then three movies with Michael Caine, based on books by Len Deighton:

    • The Ipcress File (1965)
    • Funeral in Berlin (1966)
    • Billion Dollar Brain (1967)

    This series started great, and I would’ve loved to see more movies with Michael Caine’s Harry Palmer character, but by the 3rd movie the plot has gone completely off the rails. The author Deighton had an interesting career.

    Sean Connery as James Bond. I hadn’t really seen most of these, and never in order before:

    • Dr. No (1962)
    • From Russia with Love (1963)
    • Goldfinger (1964)
    • Thunderball (1965)
    • You Only Live Twice (1967)
    • Diamonds Are Forever (1971)

    We alternated between old Bond and the new movies with Daniel Craig:

    • Casino Royale (2006)
    • Quantum of Solace (2008)
    • Skyfall (2012)
    • Spectre (2015)

    Just for fun, we rewatched all the Austin Powers movies too:

    • Austin Powers: International Man of Mystery (1997)
    • Austin Powers: The Spy Who Shagged Me (1999)
    • Austin Powers in Goldmember (2002)

    I think I’m now officially burned out on spy movies for a while.

    → 2:34 PM, Aug 7
  • JSON Feed version 1.1 and updated blog

    Today we’re officially announcing version 1.1 of JSON Feed:

    We’ve updated the spec to version 1.1. It’s a minor update to JSON Feed, clarifying a few things in the spec and adding a couple new fields such as authors and language.

    The jsonfeed.org site has also recently switched over to be hosted on Micro.blog. The design and previous URLs are all preserved or redirected. I created a simple Micro.blog theme to adapt the old site.

    → 11:47 AM, Aug 7
  • 5 years later

    This week 5 years ago, I was winding down the last few days at my regular job. It was a great job working with great people, but I knew I had to move on to be able to create Micro.blog. In a blog post on my last day at the job, I wrote about starting over and the hope for what would come next.

    The years since have been both amazing and difficult. Only recently, a few years after launching Micro.blog, does it feel like things are really starting to click. Micro.blog has improved significantly and the community keeps growing. For all the things we still want to do, we’ve also done quite a lot already that I’m very proud of.

    Thanks everyone who reads this blog or participates on Micro.blog. The next 5 years are going to be fun.

    → 3:12 PM, Aug 6
  • M.b books wrap-up

    I’ve been experimenting with a few different features around books on Micro.blog. The goal is to make it easier to blog about a book you’re reading, or to discover other books from fellow microbloggers. Some of these features are now tied together in a more cohesive way, so I’d like to summarize what we have.

    There are 2 new buttons on the Discover → 📚 page:

    • Book Covers shows a grid view of covers for books that people on Micro.blog are blogging about. Each cover links to the individual microblog post. Any microblog post that links to Micro.blog’s book detail page (micro.blog/books/isbn-here) will automatically be included in the grid view.
    • Book Search lets you look up a book by an ISBN-13 number, or search for a book by its title or author. This uses a combination of Open Library and ISBNdb. I added ISBNdb to have another source of metadata and it really helps fill in some gaps.

    Micro.blog also continues to work great with indiebookclub. Micro.blog will format your microblog post and link the book if you’ve included the ISBN, so it will show up in the 📚 page as well as the new covers grid view.

    We’re not trying to reinvent all of Goodreads here, but I’m pretty happy with the way these book features are falling into place. If you like to read (or wish you read more often!) I hope this makes Micro.blog more useful for you.

    → 8:16 PM, Aug 5
  • Bringing back GitHub archiving

    Micro.blog used to have a feature that would mirror the HTML and photos for your blog to GitHub, so that you’d always have an extra copy as a backup outside of Micro.blog. The initial version of this feature had some limitations that forced me to disable it over a year ago. I always hoped to bring it back in another form, and today I rolled out the replacement.

    The new version of GitHub archiving has a few changes:

    • It uses a new structure based on the Blog Archive Format. It is a single HTML file (with Microformats), a JSON Feed (with both HTML and original Markdown), and all your uploads, like photos, videos, and podcast episodes.
    • It now has more limited access to your GitHub account for better security. It only works with your own public repositories. If you previously used this feature, I’ve cleared any access that Micro.blog used to have.
    • It is designed as an archive, not a live mirror, so it only sends changes to GitHub about once a week. You can enable it and then forget its there, and I can keep supporting it because it uses fewer server resources.

    I’ve updated the help page to describe the new feature. It’s available under Posts → Design.

    → 2:01 PM, Aug 4
  • 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
    → 11:13 AM, Jul 29
  • Web posting Markdown, initial text

    I’ve made a few minor improvements to the web posting form for Micro.blog. The “Preview” button now supports Markdown tables and footnotes, so that it more closely matches the Markdown rendering on your published blog.

    The new post URL also now accepts an optional text parameter to pre-populate the text form. For example, to start a new post on the web with the word “Hello”:

    micro.blog/post?text=Hello
    

    This is similar to the URL schemes used in the native iOS and macOS apps. It’s useful for creating bookmarklets or sharing from other apps.

    → 2:35 PM, Jul 28
  • Micropub improvements

    We had a great Micropub pop-up session over the weekend, discussing a dozen Micropub extension proposals. I’ve now implemented some of the improvements in Micro.blog:

    • Added a filter parameter when getting the category list. If someone is using categories more like tags and has hundreds or thousands of categories, the server can now filter them, making it easier to build category auto-complete in client apps.
    • Added support for standalone pages. You can create a page by sending mp-channel=pages. To query a list of pages, use q=source&mp-channel=pages. Update: Changed from h-page to instead use the new channels idea.
    • Added q=contact to help clients do username auto-complete. This requires the filter parameter. Clients should also maintain their own username cache, built from the timeline or following lists, so they can show results quickly even before asking the server.
    • Updated q=source on the media endpoint to support paging through uploaded photos with limit and offset parameters.

    Micropub continues to improve through IndieWeb community discussions like this. If you’d like to learn more about Micropub, I’ve published the Micropub draft chapter from my upcoming book here.

    → 10:33 AM, Jul 27
  • Sunlit 3.0 beta and source

    A couple weeks ago I posted a sneak peek at Sunlit 3.0, our iOS companion app for photos. Today we’re opening up the beta and also making the source code public.

    You can sign up on TestFlight here. There are still some rough edges, and this version is mostly for iPhone. iPad will be improved in the next beta, and macOS will follow later.

    Sunlit can post to Micro.blog-hosted blogs, WordPress, or any blog that supports the Micropub API. You can use it with a free Micro.blog account or a paid subscription.

    Composing a new post is much more flexible now. You can post a quick photo, or you can create a full blog post with multiple photos and text sections. I’ve created a screencast below to show how it works:

    Jon Hays also joined me on the latest episode of Timetable to talk about the Sunlit beta and more.

    → 11:44 AM, Jul 24
  • 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.

    → 11: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!

    → 2:39 PM, Jul 7
  • Fixing the App Store for developers

    It’s WWDC opening day. I wasn’t planning on writing about the App Store again, because I feel like I’ve said it all before, but maybe I haven’t put it together in one place, or in a concise enough format.

    Because I’ve dedicated the last several years to working on Micro.blog and writing about the open web, I think about the problems with massive social networks all the time. I’m obsessed with it. The App Store is also a huge platform with far too much power, so fixing it is not all that different than figuring out what to do with Facebook.

    Here are the 4 things Apple should do:

    • Allow side-loading. Essentially like Gatekeeper on macOS, but for iOS instead, this can still allow Apple to disable malware while letting developers skip app review. As I wrote in 2011, there will always be another controversy until side-loading is allowed.
    • Don’t require in-app purchase. Exclusive payment mirrors the problem of exclusive distribution, so both have a similar solution. Let developers charge customers outside the App Store. Apple should compete on payment user experience, not with force.
    • Keep curating the App Store. Apple is on the right track with highlighting great apps in the store. The point of my post about open gardens is that by loosening their tight control over distribution, Apple would actually be more free to curate, even rejecting apps because there would be an alternative with side-loading.
    • Lower the cut to 15%. For all paid downloads, all subscriptions, and for all companies. This is the least significant part of anything in this blog post, because as Jason Fried writes, choice is more important than money. But it would go a long way to rebuilding trust with developers.

    Anything short of all this is a band-aid, not a permanent fix.

    → 8:11 AM, Jun 22
  • Apple's statement about EU antitrust

    I have long argued for fixing the 2 most fundamental problems with the App Store: exclusive distribution and exclusive payment. With Apple’s monopoly on iOS app distribution, we should have more options such as side-loading, reduced payment fees, and flexibility to sell subscriptions outside the store without hiding external links from potential users.

    See my blog posts from 2011, 2016, 2018, 2019, and my broader essay on open gardens.

    Now the EU is investigating Apple. Apple’s response:

    It’s disappointing the European Commission is advancing baseless complaints from a handful of companies who simply want a free ride, and don’t want to play by the same rules as everyone else… We don’t think that’s right — we want to maintain a level playing field where anyone with determination and a great idea can succeed.

    This is the worst, most insulting statement from Apple that I’ve ever seen. Everything in it is backwards.

    → 1:09 PM, Jun 16
  • Embedding microblog posts with Quotebacks

    For a long time I’ve wanted to add quoting tools to Micro.blog, so that it’s even easier to embed text from other blog posts and add your own thoughts. Markdown block quotes are fairly easy, but do require a little more copy/paste work and some editing.

    So I was really interested in the recent launch of Quotebacks, from Tom Critchlow and Toby Shorin. We’ve needed a kind of “embed microblog post” feature in Micro.blog, similar to the embedding that Twitter and Facebook have. Quotebacks are exactly that, but they work for anything on the web.

    I’d like to run with Quotebacks and see where it leads us. For now, I’ve added “Embed” links on the Micro.blog Favorites page on the web. This is an experiment. It will likely change, either rolling out in some form to all the platforms, or based on feedback maybe we’ll go in a different direction.

    I’ve also forked the Quotebacks repository and tweaked the JavaScript with a couple changes:

    • Instead of routing the favicons through Google’s cache, Micro.blog’s version just uses the profile photos on your account directly with a new data-avatar attribute.
    • Because copied microblog posts always have a profile photo, it is displayed larger with rounded corners.

    How does this look? I’m embedding a microblog post below using this feature:

    We’ve posted Core Int 424, talking with @danielpunkass about the ARM rumor, how it compares to previous transitions, WWDC, and more.

    Manton Reecehttps://www.manton.org/2020/06/12/weve-posted-core.html

    I’ve kept the “Embed” links isolated to the Favorites page so we can try a few things without disrupting the rest of your Micro.blog workflow. There are other questions to answer, such as how this should integrate with sending Webmentions, but I think having something like this to play with is a good first step.

    → 11:07 AM, Jun 15
  • Core Intuition 423

    We published a new episode of Core Intuition today. From the show notes:

    Daniel and Manton react to Apple’s statement against racism, and also talk a bit about the Accidental Tech Podcast’s statements. They talk about trying to figure out what we can all do as individuals in the wake of this. Daniel talks about getting a Black Ink update out the door while continuing to struggle with finishing up MarsEdit 4.4. Manton shares an update on Micro.blog progress, and shares his new “stop keeping track of things” methodology for getting things done.

    The podcast is 12 years old now, started right before WWDC 2008. I don’t know if we’ll still be recording 12 years from now, but let’s imagine we might be. What will America look like in 2032? I hope we will all be able to look back on the intervening years and say that we cared about something that mattered, supporting the people who made a difference.

    → 4:31 PM, Jun 5
  • 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.

    → 10:31 AM, Jun 5
  • Frustration and focus

    Everyone reacts differently when frustrated by what they see in the world. When I don’t know what to do, I work. After 2016, that led to launching Micro.blog. Building a platform that can help people find a voice (and avoid amplifying the voices of hate). It seems small next to the more widespread changes that are needed in America right now, but it’s one positive thing I can focus on.

    Barack Obama had a great essay on Medium this week, highlighting how working locally has a big impact:

    If, going forward, we can channel our justifiable anger into peaceful, sustained, and effective action, then this moment can be a real turning point in our nation’s long journey to live up to our highest ideals.

    What I read into his words and from many other posts over the last few days is that we all have a small part to play. The solution isn’t one daunting, impossible task but instead thousands of “minor” choices, from local elections, to what we say and write about, to where we donate, to how our social networks are designed, to which stories journalists cover.

    Even small movements forward can make a difference. Stay safe, everyone.

    → 10:58 PM, Jun 2
  • Today's Dithering

    No surprise since we launched microcasting on Micro.blog — short podcasts, usually around 5-15 minutes — that I love the short format of Dithering with John Gruber and Ben Thompson. Today’s episode covers the escalating Trump vs. Twitter drama. Ben says:

    At the end of the day, people act like what Twitter should do is obvious. When, one, I can make an argument for any number of things that Twitter should do, all of which are in conflict with each other. But two, it turns out most companies are not prepared for the president of the United States to be tweeting murder conspiracy theories, and I think that’s a pretty understandable lack of preparation.

    They cover a few angles of this. It’s a really good episode.

    Last year I published an essay about open gardens that fits right into this discussion, on the balance between free speech and moderation in social networks. It remains a guiding principle of how I think about Micro.blog.

    Nick Heer also has a good summary at Pixel Envy on Trump’s executive order with related links.

    → 10:22 AM, May 29
  • Closing the microblogging Slack

    Three years ago I created microblogging.slack.com to chat about indie microblogging and Micro.blog. There have been many great discussions in that time, and I appreciate everyone who has contributed or helped other members of the Micro.blog community. But to continue to improve Micro.blog regularly, I need to focus on fewer support channels.

    Daniel Jalkut and I talked about this on Core Intuition 421. It is not sustainable for me to work on new Micro.blog features at the current pace as well as be responsive in Slack. If someone has a question about Micro.blog, I want to point them to the best place to get a thorough answer, and that’s email.

    Slack also has a couple problems:

    • It’s a proprietary platform that doesn’t fit well with our goals for Micro.blog. For example, you can’t have your own domain name for Slack, which makes migrating away very difficult.
    • Because the search is limited to only recent messages, it is less useful as a resource to new members.

    Last year, Jean MacDonald and I considered replacing Slack with Discourse. We may still do that, or it may be that forums around microblogging should best be run by the community rather than an official channel of Micro.blog. There is also a great IndieWeb chat accessible via Slack.

    This weekend, I’ll be closing the current Slack. I will export all the data for backup — just in case we want to rebuild it in the future, or make the messages searchable — and then I’ll completely delete the Slack account, unless I can find a more elegant way to handle shutting it down or pausing it.

    Thanks again to everyone who has participated in the Slack community, sending feature requests, helping others with Hugo theme questions, and just being supportive of the mission of Micro.blog. See you on Micro.blog!

    → 1:56 PM, May 28
  • 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.

    → 10:07 AM, May 27
  • Micro.blog 1.8.3 for iOS

    Just a quick update for the iOS version of Micro.blog. From the release notes:

    • Fixed username search.
    • Fixed opening links to account-related screens in posts.
    • Fixed navigation bar glitch when dragging conversations on some iPads.
    • Updated full-screen photo viewer to not hide status bar.

    You can download it in the App Store.

    → 6:17 PM, May 21
  • App.net archive iOS shortcut and web app

    Last week I made available an archive of all App.net posts, which I had downloaded right before App.net shut down. There are now a couple tools to help process your own App.net posts from the archive.

    Jordan Merrick has an iOS shortcut to download your posts:

    Posts are made available as JSON dictionaries containing various pieces of information, such as the text and date created. All posts are downloaded and saved as individual JSON files to iCloud Drive at /Shortcuts/ADN Archive.

    And Matt Bircher has a web app that can download your posts as a CSV file. If you have thousands of posts, note that both solutions are going to take a long time to run, because they have to download one post at a time from the archive.

    → 9:42 AM, May 20
  • 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!

    → 11:51 AM, May 19
  • Blog import improvements

    I rolled out 2 major improvements to Micro.blog’s import feature today:

    • You can now import from a folder of Markdown files. This is designed to help migrating to Micro.blog from Jekyll, Hugo, or Blot. It supports basic front matter such as title, date, and categories or tags.
    • WordPress import has been updated with support for photo attachments that are not referenced in the blog post. Micro.blog will attempt to download your photos and store them on your Micro.blog-hosted blog.

    You can read more about this over at the help. For the Markdown import, keep in mind that it’s just a ZIP file of Markdown files. It does not support including photos inside the archive because they will be downloaded from the web during import.

    Despite the hiccup last night with profile photos while Linode had downtime for maintenance, Micro.blog should also be running significantly faster than before. I upgraded 2 servers last week.

    → 9:31 AM, May 18
  • 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.

    → 5: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.

    → 10:15 AM, May 13
  • App.net archive now available

    In the final week before App.net shut down, I whipped up a few scripts to download every post on the platform via the API. After that finished, I also attempted to download small versions of many of the photos, but ran out of time. This data has been sitting on one of my servers for the last 3 years.

    Why did I bother? At a high level, see my post from 2012 called Permanence. I also hoped to build a tool that would let anyone export their personal archive, or even migrate it to a blogging platform like Micro.blog.

    I took some time this weekend to make the posts available. It’s the bare minimum to find a list of posts for your username, then download them. There’s no HTML interface; the data is meant for apps or scripts to access.

    Here’s the structure of the main URLs:

    • adn.micro.blog/users/m/manton.txt — a list of my posts (first letter of username is used in the path)
    • adn.micro.blog/posts/2012/08/11/20063.json — post ID 20063 on August 11th, 2012

    There are also a very limited number of photos:

    • adn.micro.blog/photos/2017/01/01/12345/1.jpg — for a hypothetical post ID 12345 on January 1st, the first photo if available (2.jpg for the second photo)

    I’m still on the fence about integrating this as an import feature for Micro.blog. Right now, I don’t plan to. When Micro.blog first launched, we had a Twitter import feature, and I ended up disabling it because almost everyone who imported thousands of tweets into their blog regretted it.

    At the very least, importing tweets or App.net posts requires some curation. It should be done thoughtfully, not with a single click.

    If you use this data for anything, let me know! I tentatively plan to host these indefinitely, but I’m still looking for ways to simplify it, and may try again to move the archive to S3 in the future.

    → 12:19 PM, May 11
  • 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.

    → 3:14 PM, May 6
  • Family podcasts

    For the last 2 years, Chet Collins has published a microcast where he shares bits from his day with his kids. He wrote on his blog this week about why a podcast is such a nice format for capturing these memories:

    Audio recordings, in an open format, are about as future-proof as you can get. Even more than that, these recordings deliver the actual sound of my children’s voices, their laughter, and their unfiltered thoughts. They are the perfect time capsule of my children, recorded and preserved for the future.

    These recordings are very special. Using a podcast essentially provides some structure, transforming audio snippets from everyday life into a format that can be easily reviewed later. It’s more organized than a digital junk drawer of random video clips, which for most people are unlikely to ever be edited. Podcasts inherently have a narrator to give context.

    The closest thing we’ve done is a family travel blog, where text and photos can be brought together to highlight certain parts of the day. A podcast would make a great addition to that.

    → 12:00 PM, Apr 24
  • 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.

    → 2:07 PM, Apr 22
  • Micro.blog 1.9.3 for macOS

    I’ve updated Micro.blog for macOS to version 1.9.3 with a few bug fixes:

    • Fixed crash importing photos from Instagram archive.
    • Fixed not showing error message when posting fails.
    • Fixed window and split view divider resizing.

    If you didn’t know about the Instagram import, I made a video walk-through with details of how it works. You can download the latest version of Micro.blog here or choose “Check for Updates” if you’re already running Micro.blog.

    → 9:44 AM, Apr 22
  • 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.

    → 12:44 PM, Apr 20
  • Weekend movies

    Like everyone, lately we’ve been watching a lot of TV. Here are some of the movies and shows we watched over the weekend:

    • The Irishman: An epic 3 and a half hours. I’d like to rewatch it now that I know where the story was going and more about the historical backdrop.
    • SNL at Home: Zoom sketch + Weekend Update were worth it alone. Great to see the cast adapting as best they can without the stage.
    • HORSE tournament: If the NBA hadn’t suspended the season, this week would be the last before the playoffs started. HORSE had just the right balance of lightheartedness and competition.
    • Emma: No regrets on this $20 rental. I think it’s in the top few Jane Austen movies behind Pride and Prejudice (2005) and Sense and Sensibility (1995).

    And a few from last week and earlier:

    • Tiger King: Difficult to look away once you start the first episode. Can’t decide if I regret watching the whole series.
    • Onward: Loved this. I thought after the trailer I knew what to expect, but it surprised me.
    • The Imagineering Story: There’s something in this 6-part series for most Disney fans. Next best thing to experiencing the Disney parks while they are closed.

    Hope everyone’s staying safe and healthy at home. 📺

    → 2:28 PM, Apr 13
  • 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!

    → 12:22 PM, Apr 6
  • Day One and microblogging

    I blogged years ago about how I started writing in a journal, originally in books and then in Day One. I’m trying to get back into the routine of writing regularly, so this week I upgraded to the new version of Day One. I had been sticking with the classic version because I liked syncing with Dropbox, but it stopped being supported on iOS in favor of Day One’s own syncing.

    These journal entries are so important to me, I don’t really want them permanently encrypted in the cloud, where the data is opaque and could be lost. I’ve been thinking about a couple options:

    • Export as plain text from Day One every month or so. These exports could be archived on Dropbox. Day One’s export options are great, even including printed books!
    • Switch to using Micro.blog for journaling. Long-term, I really want all of my journal entries published on the web, but there needs to be some distance from the events. For example, maybe there could be a feature that automatically published entries older than 10 years.

    For now, I’m enjoying using Day One. It’s well worth the yearly subscription. I may experiment with eventually moving to something blog-based, or look at adding Day One import to Micro.blog for anyone who wants to keep their journal and microblog in sync.

    → 4:29 PM, Mar 31
  • 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.

    → 10:18 AM, Mar 30
  • Micro.blog free 6-month hosting for teachers

    We’ve been talking for a while about offering a “teams” plan on Micro.blog that would be great for small businesses, schools, and family blogs. With more people working from home, we’re already adding podcast hosting to all plans through April, and we think that podcasts and short videos could be valuable tools for teachers who are adapting their lesson plans for online classes.

    We don’t want these teachers to wait until there is an official teams plan that schools can subscribe to, so today we are giving teachers free hosting for the next 6 months. This is a full Micro.blog account that can host blog posts, podcast episodes, and short videos.

    To get started, email help@micro.blog with your school name and we’ll reply with a special invite to Micro.blog. We can’t wait to see what you use Micro.blog for.

    → 12:54 PM, Mar 24
  • Updated M.b API for draft posts

    I’ve added some info about creating draft blog posts to Micro.blog’s Micropub API help page. It also documents a new preview URL that can be used by third-party apps to send the user to a preview web page, with an option to finish publishing the post.

    The preview renders the Markdown text, but does not process it through Hugo, so it might not exactly match the published HTML on your microblog in some cases. I plan to further improve this in the future to send it through Hugo.

    Along with the new preview URL for the API, I’ve also fixed a bug creating draft posts with the JSON flavor of Micropub.

    → 2:56 PM, Mar 23
  • Micro.blog 1.7.3 for iOS

    We’ve shipped version 1.7.3 of Micro.blog for iOS. From the release notes:

    • Fixed issues and improved colors in Dark Mode.
    • Fixed crashes when sharing some photos to Micro.blog from other apps.
    • Fixed blurry thumbnails when selecting or filtering a photo.

    There were several Dark Mode-related glitches fixes in this update. Dragging to view a conversation looks better, navigation bar colors update when switching to Dark Mode without restarting the app, and we’ve switched the timeline background color to use full black instead of very dark gray.

    You can grab the latest version in the App Store. And if the official Micro.blog app isn’t your cup of tea, remember that there are other great third-party iOS apps including Gluon, Icro, and specialized tools like the new Mimi Uploader.

    → 8:18 AM, Mar 16
  • Free microcasting through April

    It is really easy in times like this to feel lost, unsure of how best to respond to the COVID-19 crisis. Micro.blog is a tiny company where we all already work from home. Jon Hays has even written a series of blog posts recently about working remotely with a team.

    We wanted to do a little something extra for everyone who now finds themselves working from home, or needing to take time off work, to encourage everyone to stay creative and positive. Here’s what we’ve come up with: free podcast hosting for all hosted microblogs through April.

    Merlin Mann was also thinking about how the world might see new podcasts right now:

    Remember how there were (supposedly) so many pregnancies that happened during the New York Blackout?

    I hope we get that but for really good new podcasts.

    Jean MacDonald is working on some resources to help those who have never made a podcast before get started. Details will follow next week. In the meantime, we have a help page with the basics.

    We’ve said since the launch of podcast hosting on Micro.blog that everyone has a story to tell. That’s probably even more true right now. We are also extending all Micro.blog accounts that have already expired for an additional 30 days.

    And if you already have a paid subscription but you’re getting hit hard financially right now, drop us an email and we’ll credit your account for the month. Take care, everyone!

    → 11:47 AM, Mar 15
  • Fixing location data in Micro.blog photos

    MarsEdit developer Daniel Jalkut had a great post recently about protecting privacy by stripping out location information from a photo’s metadata before uploading it to your blog:

    If you choose to publish photos in your blog posts, it’s important to understand that image metadata may reveal more to your blog’s readers than you necessarily intended.

    We followed up on this for Core Intuition episode 409 and again briefly on episode 411.

    Micro.blog also tries to strip out location information, but a couple of times it has been applied inconsistently because there are several different ways to get a photo in to Micro.blog. I’ve found and fixed a new bug related to this and want to document it here.

    The native iOS and macOS apps for Micro.blog have always fixed the orientation information in a photo and stripped any metadata before uploading. The web version of Micro.blog also did the same thing on the server when using the Uploads tab. But I noticed a case where this processing was skipped when attaching a photo to a new post on the web and not uploading it separately in the Uploads tab or with a third-party app.

    As a precaution I’ve decided to retroactively strip metadata from existing photos that have been uploaded over the last few years. I wrote some scripts to check these photos, updating both our primary photo storage and the published blogs that were affected.

    I also stripped metadata from any profile photos that contained location information. In some cases, the colorspace may have changed. If you notice any subtle changes to your profile photo and want to re-upload it, you can do that under Account.

    I’m sorry I missed this. If you have any concerns, let me know via help@micro.blog. You can also check one of your photos by downloading it from your blog and opening it in an app that can display metadata. (In Preview.app for macOS, choose Tools → Show Inspector.)

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

    → 3:11 PM, Mar 7
  • Super Tuesday thoughts

    I voted here in Texas on Tuesday. I’ve blogged in short bursts over the last few years about the upcoming election, and the last one, but now is a good time to collect my thoughts on the race.

    Clyburn’s endorsement leading in to South Carolina was critical. Then there was the incredible coordination of Pete, Klobuchar, and Beto all endorsing within 24 hours of each other, culminating in that rally in Dallas the night before Super Tuesday. I’m not sure Biden even advertised in Texas. Everything changed very quickly.

    I’ve tried to keep my mouth shut about Bernie because I was quietly psyching myself up to support him if he became the nominee. I’m still disappointed that he and his most hardcore supporters did not do more to help Hillary in 2016. He attacked her character for a year and too many people stayed home.

    Now we need to welcome Bernie supporters back to the Democratic party and hope that anyone clinging to that perfect or nothing attitude can let it go, in the same way that I hope to let go of 2016. I think there’s inspiration in Hillary’s own support of Obama, especially her fantastic speech at the 2008 convention. It’s powerful. She knew that unity was more important than anything else.

    Biden was not my first, second, or third choice. He might not have been your first choice. It’s not a good feeling when by the time voting comes around your favorite candidate has already lost.

    I loved what Beto had done for Texas in 2018. I loved imagining how effective Klobuchar could be not just as president, but at unifying moderates who felt the country was being ripped apart at the extremes. The last thing we need right now is more divisiveness.

    Beto and Klobuchar were out, so I voted for Warren. In a parallel universe somewhere, the timing of momentum would have worked out for her to be president, and she’d be a great one. But the Democratic party has spoken. The nominee must be Biden.

    And it’s kind of fitting. Trump tried to preemptively cheat against Biden using leverage with Ukraine. Trump was caught, impeached, still did a lot of damage to Biden in the process… but you know what? We’re going to !#@%-ing nominate Biden anyway just to send a message to Trump.

    Let’s get ready. Biden is now our best choice to get this country back on track, and as Klobuchar said, to put someone with a heart back in the White House. I’m starting to get excited thinking about all the great choices he will have for vice president.

    → 4:50 PM, Mar 5
  • 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.

    → 12:04 PM, 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.

    → 10:46 AM, Feb 25
  • 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.

    → 11:48 AM, Feb 17
  • 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.

    → 5:19 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!

    → 12:23 PM, Feb 11
  • Announcing the IndieWebCamp Austin speakers

    I’m happy to announce that we have 3 short keynotes planned for the first morning of IndieWebCamp Austin! After coffee and breakfast tacos, we’ll get the day started with an introduction to the schedule and our featured speakers.

    Natalie Hester — Natalie keeps a gratitude journal on Micro.blog where you can see snapshots of her life as a full-time partner to Ryan, new mom to Aria, and academic fundraiser. She will be talking about her unlikely journey away from Facebook and what it’s like being a new mom on social media.

    Pace Smith — Pace is a queer trans intersectional feminist Sufi bridger. She codes, podcasts, blogs, makes indie games, writes limericks, and tries to make the world a better place. She will be talking about the role of the bridger and building trust on the web.

    Aaron Parecki — Aaron is an IndieWeb co-founder and security architect at Okta. He is the editor of several IndieWeb specifications at the W3C. He will be talking about using an Indie Reader to take control of how he follows and responds to people online.

    Before we break for lunch, we’ll plan the afternoon sessions. If you’ve never attended an IndieWebCamp before, the rest of the sessions are organized by attendees. This helps adapt the conference to the topics that attendees are interested in.

    I hope you’ll join us! Register here for $10.

    → 4:27 PM, Feb 10
  • Moving from Mailchimp to SendGrid

    For the last couple of years we’ve used Mailchimp’s Mandrill service to send transactional emails from Micro.blog. These emails are for when you get a link to sign in, or a reminder that your trial expired. It was convenient to have everything in Mailchimp because we also used it to send our newsletters.

    Because Mandrill was going to be down for maintenance a couple weeks ago, I decided to switch over to SendGrid. I’ve used SendGrid in the past and while I left disappointed at the time, that was years ago and I recently got some great help from a SendGrid employee while troubleshooting Sign in with Apple. It was easy to switch back.

    I’m also moving our newsletter emails over to SendGrid and hope to resume sending the Micro Monday newsletter this week. The savings are significant. We were paying MailChimp about $220/month. On SendGrid, the comparable set of plans will be only $65/month.

    Daniel and I talked more about sending email on Core Intuition a couple weeks ago. We’ve had some good feedback from folks about their favorite email providers, both for and against nearly every popular service, so I wanted to document the change here on the blog.

    → 10:21 AM, Feb 10
  • 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.

    → 12:17 PM, Feb 8
  • 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

    → 12:17 PM, Feb 2
  • 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.

    → 12:02 PM, Jan 27
  • Old animation pencil tests

    I was looking through some of my drawings while copying a backup from an old hard drive. Around 2003 and 2004, I worked on a hand-drawn animated short film in my spare time, based on my kids. I never finished it, but I made thousands of drawings for it, most of which I shot with a camera and put together as rough tests.

    Here are a few seconds of one little scene that I found while looking through the old files:

    And here’s another one:

    There is probably about 45 seconds of halfway finished scenes in total. My daughters — who recorded a couple lines of dialog for the film when they were 4 years old — are now in college! Even if I can’t finish it, I wanted to make sure I have some of the work captured on my blog.

    → 5:59 PM, Jan 25
  • My favorite Christmas movies

    I was sick a few days before Christmas and it forced me to take some extra time off after a very busy November and December. Happy to be back blogging and looking forward to 2020, so let’s wrap up the holidays with a post about Christmas movies.

    This isn’t necessarily a list of the best Christmas movies. There are other classics that are usually on an all-time best list that aren’t here. This is a list of my 10 favorites.

    1. The Nightmare Before Christmas — Perfect for Christmas or Halloween. So nearly flawless I had to put this at the top of the list.
    2. The Muppet Christmas Carol — There are many great adaptations of A Christmas Carol, and last year we watched pretty much all of them. I wish there was room to include a couple of the animated versions, like Richard Williams' A Christmas Carol and Mickey’s Christmas Carol.
    3. A Charlie Brown Christmas — “That’s what Christmas is all about, Charlie Brown.”
    4. Klaus — Beautifully animated. Brand new, but now that I’ve seen it twice I know it will hold its own against the best. There’s a great interview with director Sergio Pablos on The Bancroft Brothers Animation Podcast.
    5. Elf — We probably rewatch this more than anything else. Can’t say enough good things about the variety of movies Jon Favreau has worked on (not to mention The Mandalorian).
    6. Meet Me in St. Louis — I’ll admit, I didn’t want to love this at first, years ago, but now that I’ve seen it dozens of times it’s a favorite, and I think the best of the older classics.
    7. National Lampoon’s Christmas Vacation — One of our traditions is to cut a tree down at the Elgin Christmas tree farm, and there’s a little of Clark Griswold in the endeavor.
    8. Die Hard — Definitely a Christmas movie.
    9. A Christmas Story — “You’ll shoot your eye out.”
    10. Rudolph the Red-Nosed Reindeer — Check out this YouTube video about some of the editing problems with the recent TV version.

    If I could only watch these 10 movies every year I’d be happy. But there are others we enjoy that deserve honorable mentions: Edward Scissorhands, Love Actually, It’s a Wonderful Life, Home Alone, The Grinch (2018), Jingle All The Way, and Christmas with the Kranks. And a special shoutout for the soundtrack of The Polar Express.

    Happy Holidays! ❄️

    → 12:48 PM, Dec 27
  • Twitter to decentralize… something

    This morning, Jack Dorsey dropped a bombshell:

    Twitter is funding a small independent team of up to five open source architects, engineers, and designers to develop an open and decentralized standard for social media. The goal is for Twitter to ultimately be a client of this standard.

    I should be excited about this, but instead my first reaction was frustration. Ten years after early Twitter employees like Blaine Cook and Alex Payne were pushing for a more open architecture, now Jack Dorsey realizes Twitter is too big and creates a team to work on… blockchain-based solutions?

    Finally, new technologies have emerged to make a decentralized approach more viable. Blockchain points to a series of decentralized solutions for open and durable hosting, governance, and even monetization. Much work to be done, but the fundamentals are there.

    The first step should be to check out the IndieWeb. There are people who have been thinking about and working toward more open social networks for years.

    After a closer reading of Jack’s tweets, though, I think my first interpretation wasn’t quite right. Twitter isn’t necessarily interested in decentralizing content or even identity on their platform. Why would they be? Their business is based around having all your tweets in one place.

    Early in the thread, Jack hints at what Twitter is trying to do:

    First, we’re facing entirely new challenges centralized solutions are struggling to meet. For instance, centralized enforcement of global policy to address abuse and misleading information is unlikely to scale over the long-term without placing far too much burden on people.

    This “burden on people” is the resources it would take for Twitter to actively combat hate and abuse on their platform. Facebook, for example, has hired thousands of moderators. If Twitter is hoping to outsource curation to shared protocols, it should be in addition to — not a replacement for — the type of effort that Facebook is undertaking. I’ve outlined a better approach in my posts on open gardens and 4 parts to fixing social networks, which don’t seem compatible with Twitter’s current business.

    I’m going to be paying close attention to this. Good luck to Jack and the new team. I hope they seriously look at existing standards, because we’ve come too far to start over.

    → 4:29 PM, Dec 11
  • 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! ❄️

    → 5:24 PM, Dec 8
  • Purchasing fake likes

    Interesting article from The New York Times about a report from the NATO Strategic Communications Center of Excellence. Researchers ran a series of experiments to buy likes, comments, and clicks on social media posts. They paid companies in Russia and Europe hundreds of dollars to buy thousands of likes and followers, writing up a report on the results:

    But the report also brings renewed attention to an often overlooked vulnerability for internet platforms: companies that sell clicks, likes and comments on social media networks. Many of the companies are in Russia, according to the researchers. Because the social networks’ software ranks posts in part by the amount of engagement they generate, the paid activity can lead to more prominent positions.

    The researchers then actively notified the social media companies about the fake likes and tracked what action the tech companies took, if any. Most fake likes and accounts used for the experiment remained online a month after they were reported.

    It is very difficult for a massive platform like Facebook or Twitter to catch everything. Instead of trying to “fix” fake likes that are purchased, the solution is to remove the reason someone would purchase likes to begin with. If like counts weren’t featured so prominently and used for surfacing content, there would be no incentive to try to game the system.

    → 10:26 AM, Dec 6
  • Starting small

    Jean MacDonald has a great wrap-up post about the Microblogvember daily blogging challenge and the value of looking for “micro” versions of bigger projects:

    Ever since I became the community manager of Micro.blog, I’ve developed an appreciation for the beauty of going “micro”: microposts, microcasts, micro meetups, microcosms of interesting humans interacting online on a human scale.

    This is a key part of Micro.blog’s mission. Many people find writing a full-length blog post too daunting, but break it down into micro-sized posts and it’s easier for everyone. Jean continues:

    This is what I like about a micro approach. Start with something small, and build on that. It also works with podcasting, for example. Micro.blog has spawned several microcasts (including our own Micro Monday) by making it easy to start small.

    It reminds me of why we’ve added so many “full” blogging features to Micro.blog hosting, like longer posts, file uploads, categories, custom themes, standalone web pages, and podcast hosting. After you’ve “started small” and have a nice routine with microblog posts, the platform should grow to accommodate whatever you need next.

    → 10:10 AM, Dec 3
  • Photo storage migration

    Early last Friday morning, one of the Micro.blog photo storage servers failed. I brought it back up shortly after I noticed, but dealing with the problem motivated me to make a change I’ve been thinking about for how photos are stored. Over the weekend I migrated the photo storage to a new system based on Linode’s Object Storage.

    (Luckily, years ago when I was designing Micro.blog, I had anticipated I might eventually make a change like this. The old server was running Minio to provide an S3-compatible interface, internal to Micro.blog, so switching to a new system was much easier.)

    When a photo is uploaded to Micro.blog, it has always been kept in at least 2 places: on a primary photo storage server, and on a copy of your published blog, along with HTML and other files. Both of these locations were backed up daily.

    Over the summer there was a similar error to what happened last week. For some new uploads, only 1 copy of the photo was kept. If Micro.blog needed to rebuild your published blog files, there was a small window during which it could overwrite the latest photos that had been uploaded. Usually I’d be able to fix this from a backup, but I know at least 1 user who was affected by it, and there might have been a few more.

    If you ever see broken images on your site, please reach out to help@micro.blog. You can also re-upload photos under Posts → Uploads in Micro.blog on the web and update any posts from the original photos.

    Remember that Micro.blog also has built-in features for making extra backups for yourself, beyond the backups we already handle behind the scenes:

    • Save new posts to the Internet Archive. There’s a checkbox to enable this under Posts → Design. When you publish a new post, Micro.blog automatically makes it available in the Wayback Machine.
    • Export in Blog Archive Format. Micro.blog will make a .bar file that is actually a ZIP file with all your photos, HTML for posts, and a complete JSON Feed.

    The new photo storage that is live now should be even more robust. Photos are a very important part of Micro.blog. I’ll keep improving this and adding storage redundancy wherever I can.

    → 12:10 PM, Dec 2
  • Kickstarter update with book release date

    Today I sent the following update to Kickstarter backers.

    Hi everyone! I’ve set a release date for the book Indie Microblogging: January 2nd, 2020. I’ll send an email that day to all Kickstarter backers with a link to read the book on the web.

    You can preview the draft table of contents here: book.micro.blog

    There’s a pre-order link on that page. You don’t need to pre-order the book because you will already have access as a Kickstarter backer, but please share the link on your blog, to followers on social networks, and with friends who might need a reason to dust off their blog or even start writing on the web for the first time.

    Thanks for your support and patience as I’ve spent the last couple of years focused on building and improving Micro.blog. There is still a lot of work to do, but I’m excited to spend the next month wrapping up the book reward for Kickstarter backers.

    And if you haven’t checked out Micro.blog lately, the community keeps growing and the platform has evolved to be great for full-featured blogs, not just microblogs. Photos, Hugo themes, categories, pages, podcast hosting, publishing from apps across iOS, macOS, Android, the web, and much more.

    — Manton

    P.S. Indie Microblogging is a book about the web, so I want it to be on the web first. After some time to incorporate fixes and improvements to the text, I’ll follow up with a print version for backers at the higher reward tiers.

    → 2:55 PM, Nov 26
  • Sergio Pablos interview and Klaus

    I’ve blogged about Klaus a couple times. It’s one of those films that I was a little nervous about because I wanted it to be great, and it is. There is some wonderful character animation in this.

    Animation World has an interview with director Sergio Pablos about what a positive experience it was to work with Netflix, and on getting few chances in life to do something great, especially with animated features:

    You hope you’ve made something good, but you’re so close to it that you’re kind of blind to it. We’ve been trying to make a film for 15 years in my company and we’ve failed in different ways. Right? Sometimes a film would end up going elsewhere, or it wouldn’t even get made. Meanwhile, we’re taking service work to try and support our effort. So, it’s been a long road. But I always dreamt the day would come where I’d have a project I could be proud of.

    Congrats to the team for doing something that feels new with 2D animation. I may need to get the art book.

    → 5:06 PM, Nov 22
  • Book ship date and pre-order

    As 2016 was winding down, I was determined to start 2017 with something new. On January 2nd, I launched the Kickstarter campaign for Micro.blog and a book I’m writing called Indie Microblogging.

    In the years since then, I’ve put everything into Micro.blog to fulfill my promise to Kickstarter backers. Micro.blog does way more than I had dreamed it could do 3 years ago. But the more I put into Micro.blog, the more it needed of me, and the book kept taking a back seat until now.

    I’ve set the ship date for the book: January 2nd, 2020. It will be published on the web for all Kickstarter backers, and if you missed the Kickstarter you can pre-order the book now for $20. The money goes right back into Micro.blog so that Jean, Jon, and I can continue improving the platform and growing the community.

    When completed the book will be over 50 short chapters in 6 major parts, plus intro and conclusion sections that get to the mission of Indie Microblogging and the next steps. It will also feature several interviews.

    You can view the draft table of contents here and pre-order the book. Thank you for your support.

    → 11:27 AM, Nov 20
  • Blogging workflow

    You might think because I created Micro.blog that I have a perfectly simple blogging workflow that will work for everyone, all the time. Nope. I use a variety of different apps depending on what I’m trying to do:

    • If I’m posting a quick microblog post and know what I want to say, I type it into the Micro.blog app for Mac.
    • If I’m posting a single photo, I use Micro.blog on my iPhone.
    • If I’m posting a bunch of photos like this post from Toronto, I use Sunlit to write a little something for each day.
    • If I’m writing a longer post and have it all in my head, so I know I will post it very soon, I type it directly into MarsEdit and publish it to Micro.blog from there.
    • If I’m writing a post and I’m not totally sure where it’s going, or when I’m going to post it, I type it into Ulysses. This is the majority of my posts. Then I copy it out as Markdown and paste it into Micro.blog.

    And this only scratches the surface. There’s Wavelength for podcasts, and some people prefer apps like Icro, Gluon, Dialog, Quill, or automation via Shortcuts. This is why we link third-party apps from the posting screen in Micro.blog.

    One of the things I’m most proud of with Micro.blog is that the API supports standards so you can use a variety of different apps for posting. There are so many different types of blogs out there, there shouldn’t just be one way to post.

    → 10:11 AM, Nov 9
  • Core Intuition 395

    We are getting really close to episode 400. Feels like a big milestone to me, and I’ve been wondering if we should change anything with the podcast format when we roll over into the 400s. But in the meantime, here’s 395:

    Daniel and Manton try to take stock of long-term personal goals, thinking of how they align with and overlap with money-making goals. Manton reports back after watching Matt Mullenweg’s “State of the Word” talk at WordCamp US. Manton reflects on the important of simplicity for Micro.blog in contrast to WordPress, while Daniel considers that MarsEdit also serves as a more complex interface to Micro.blog. Finally, they digest the latest Apple announcements, focusing on the merits of the new AirPods Pro, and whether Apple TV+ is a justifiable pursuit for the company.

    Daniel has already given me a sneak peek of next week’s manager check-in and it’s a good one. I think that is going to become a regular segment.

    → 9:33 AM, Nov 9
  • 20 years of Inessential

    Brent Simmons marking the 20th anniversary of his blog:

    It’s tempting to think that The Thing of my career has been NetNewsWire. And that’s kinda true. But the thing I’ve done the longest, love the most, and am most proud of is this blog.

    The great thing about a personal blog is that if you stick with it, your blog will very likely span multiple jobs and even major life changes. You don’t need to know where you’re going to be in 20 years to start a blog today and post to it regularly. Writing about the journey — and looking back on the posts later to reflect on where you’ve been — is part of why blogging is still so special.

    → 7:03 PM, Nov 7
  • Sponsoring IndieWebCamp Austin

    IndieWebCamp Austin is coming up in February at Capital Factory. This is our 3rd event in Austin and I’m excited to start getting the word out and help a lot of new people discover the IndieWeb. Registration is already open.

    Tom Brown and Jean MacDonald are joining me as co-organizers and we’re looking for sponsors to help cover costs for the venue and breakfast for attendees. If you’re interested in sponsoring or work at a company that would be a good fit to support the IndieWeb, please email me: manton@micro.blog.

    Platinum event sponsor: $2500

    • Your logo on the IndieWebCamp event page.
    • A verbal thank-you during the morning and closing of the event.
    • You can bring t-shirts, stickers, and other promotional items to distribute to attendees.
    • A special mention and link in the email we send to attendees the day of the event.

    Silver event sponsor: $1000

    • Your logo on the IndieWebCamp event page.
    • A verbal thank-you during the morning and closing of the event.
    • You can bring t-shirts, stickers, and other promotional items to distribute to attendees.

    Bronze event sponsor: $500

    • Your logo on the IndieWebCamp event page.
    • A verbal thank-you during the morning and closing of the event.
    → 10:30 AM, Nov 7
  • Kill the algorithm

    Ben Thompson has an excellent article this week about free speech, political ads, and Facebook. There’s a good debate to be had about the roll of curation and fact-checking ads, but on the problems of massive, ad-based social networks there can be no doubt:

    In the long run, though, it is very problematic that such a powerful player in our democracy has no accountability. Liberty is not simply about laws, or culture, it is also about structure, and it is right to be concerned about the centralized nature of companies like Facebook.

    Platforms that have as many problems as Facebook does can always be improved, but by design they can never be good enough because their size alone is one of the problems.

    The good news: it’s up to us. We can choose to reject these platforms and move to a more distributed web of indie microblogs. We can choose to reject the attention power-grab of the algorithmic timeline. We can choose to build the web we deserve… but it’s not going to happen if you keep feeding photos into Instagram.

    → 11:57 AM, Nov 6
  • 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.

    → 10: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.

    → 10: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!

    → 8:44 AM, Nov 5
  • NBA west is wide open

    For the last few years, right before the regular season starts, Jon Hays and I usually paste in our guesses for the top 8 in the west in chat. This year the west is up for grabs more than anytime in the last handful of years, so I thought I’d share my list:

    1. Rockets
    2. Clippers
    3. Spurs
    4. Blazers
    5. Nuggets
    6. Lakers
    7. Jazz
    8. Warriors

    No doubt a few things are wrong here. For example, Dallas looks like a playoff team right now, and I left them out. But I’m excited to see how this shakes out, especially for the Spurs, who are exactly the team I was hoping they’d be now that Dejounte Murray is back.

    → 8:58 AM, 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.

    → 12:23 PM, Oct 29
  • Content ownership is not complicated

    There have been a few IndieWebCamps recently, including in Amsterdam, New York, and Brighton. I’ve enjoyed reviewing the sessions, and after the Amsterdam event I noticed this post about content ownership:

    When it comes to posting to Facebook or Twitter, you play a different game. You write and post it on their servers, therefore those companies own your data, not you. A photo (or video for that matter) is a special kind of data. Its file size creates limitations to its distribution, but no matter where it’s uploaded, it is always owned by its creator first.

    While it’s good to acknowledge the unique hosting requirements of photos and videos, how we define content ownership shouldn’t be any different. People get lost in the weeds with running their own server, how to set up cross-posting to other social networks, where to post first, what formats and protocols to use, etc. But it’s actually much simpler than that.

    I think in the tech world — and especially as programmers — we tend to make things more complicated than they need to be. We know too much about content ownership, most of it irrelevant for mainstream users.

    If you want to control your content on the web, post it at your own personal domain name. That’s it. Everything else you want to do is icing on the cake.

    Likewise, nothing else can be a replacement for that simple act of using your own domain name. You could write your own blog software with a custom database designed for ActivityPub and run it on a server in your basement. It doesn’t matter. Without the domain name, all you have is a pile of icing.

    This has been the messaging for Micro.blog from the beginning. Keep it simple and make it easy for anyone to participate in the open web.

    → 11:05 AM, Oct 28
  • 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!

    → 10: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.

    → 2:58 PM, Oct 26
  • Happier without analytics

    Garrett Dimon writes about removing all analytics from his web site and how little he misses it:

    What over a decade of number-crunching analytics has taught me is that spending an hour writing, sharing, or helping someone is infinitely more valuable than spending that hour swimming through numbers. Moreover, trying to juice the numbers almost invariably divorces you from thinking about customers and understanding people.

    We don’t have page-view stats on Micro.blog because they are incomplete without counting the Micro.blog timeline and feed readers, and I’d hate for someone to be discouraged when just getting started. Newsflash: your blog does not have a million readers. That’s okay! If you really want stats, you can add some custom JavaScript to include Google Analytics or Fathom Analytics, but most of the time it’s a distraction.

    → 6:02 PM, Oct 18
  • Fun with location check-ins

    I love having everything together on manton.org. Whether it’s blog posts about tech, personal stuff, or photos, I don’t have to think too much about where to put it. If I’m writing on the internet, it goes on my blog.

    But I’ve been wanting to experiment with sharing more location information too, and use that to try out location as a built-in Micro.blog feature, so I’ve created a new blog manton.coffee and imported my 2500 check-ins from Foursquare/Swarm representing about 8 years.

    To build this, I upgraded Micro.blog to support venue names and location coordinates. We try to be very careful about privacy, and currently the apps do not fill any of this data in, but in the future it could be something people opt-in to for a post. The extra data is available to Hugo templates, which is how I’m including the little maps on the home page.

    We’re working on some other features with higher priority than this, so consider this mostly a sneak peek for now. I’ll enable the Foursquare/Swarm import as an official feature after the glitches are worked out. Better integration with OwnYourSwarm should also be on the roadmap.

    → 4:29 PM, Oct 18
  • Sunlit 2.5.7

    We’ve released a new version of our photo-blogging app Sunlit. Mostly a bunch of bug fixes, including these changes:

    • Updated thumbnail previews in a new post to maintain the aspect ratio of the photo.
    • Added an option in the Settings screen to clear cached photos and drafts from previous versions of Sunlit.
    • Improved spacing of icons in tab bar.
    • Fixed swipe left on a post to view the conversation.
    • Fixed several other issues and potential crashes.

    You can download Sunlit for free in the App Store.

    → 1:48 PM, Oct 18
  • Saying goodbye to Facebook cross-posting

    I’ve removed the option for Facebook cross-posting on Micro.blog. Facebook recently disabled our API access, and my initial request for re-approval was denied. While I hope to eventually get it enabled again, I don’t want to have a feature on Micro.blog that is broken.

    A year ago Facebook turned off API access for creating new posts unless they were sent to a Facebook page. I adapted Micro.blog to that change, but it already severely limited the usefulness of cross-posting to Facebook. At the time, Bridgy disabled all Facebook support:

    Facebook’s moves to restrict its API to improve privacy and security are laudable, and arguably the right idea, but also mean that users can no longer use third party apps like Bridgy to create posts.

    I hope that by officially saying goodbye to Facebook support we can focus on making the other cross-posting options in Micro.blog more robust. I’m currently looking into improving LinkedIn support, and we recently added Tumblr cross-posting to go along with Twitter, Medium, and Mastodon.

    Facebook and even Instagram are at odds with the principles of the open web. I never want to remove a Micro.blog feature that users find valuable, but in this case we have little choice, and it’s best for Micro.blog to move on.

    → 2:31 PM, Oct 10
  • Micro.blog 1.9.1 for macOS

    Yesterday we updated the iOS app for Micro.blog with several bug fixes and tweaks for iOS 13. Today I’m updating the macOS app with an important fix when running on macOS Catalina.

    Here are the changes:

    • Fixed post selection options popover on macOS Catalina.
    • Updated for “notarization” to avoid launch warnings.

    Along with macOS notarization, this release also now uses the “hardened runtime”. I thought this might break some features, but I haven’t noticed any problems. Choose “Check for Updates” in the app to get the latest version.

    → 10:55 AM, Oct 9
  • Micro.blog 1.7.1 for iOS

    I’ve posted an update to Micro.blog for iOS with several bug fixes. Here are the changes in version 1.7.1:

    • Updated a few more screens for Dark Mode on iOS 13.
    • Fixed updating timeline when favoriting posts in Discover.
    • Fixed alignment of popover when selecting a post.
    • Fixed disabling cross-posting from post options screen.
    • Fixed uploading videos to WordPress.

    You can download it in the App Store.

    → 2:08 PM, Oct 8
  • Klaus trailer

    There’s a new trailer out for Klaus, which hits select theaters and then Netflix in November. Amid Amidi at Cartoon Brew writes about director Sergio Pablos:

    His goal hasn’t been to simply bring back 2d animation, but to push the craft forward, and Klaus’s distinct look is achieved via an innovative lighting and rendering pipeline that is applied to the drawn animation.

    I’m excited for any hand-drawn feature film, especially one that comes from Sergio Pablos. Over the last few years his team has posted some early concepts and tests to their blog. I also mentioned Sergio on an episode of my podcast Timetable in 2017.

    → 10:11 AM, Oct 8
  • Wrapping up Apple Arcade trial

    When Apple Arcade launched, I thought it would be fun to try a new game each day for 30 days. And it was fun! For… 18 days. On Saturday I sat down to play my 19th pick, Oceanhorn 2, and realized that playing a new game each day wasn’t working.

    Unlike visiting 30 coffee shops, 30 libraries, and 30 parks — where each series of blog posts I explored Austin and got a lot out of it — playing video games has proven to be too big of a time commitment for me right now. I love video games and there are some great games in Apple Arcade, but if I’m on my phone for an hour I need to be using that time for something work-related. It was creating too much extra stress for too little return.

    Oceanhorn 2 is also a good place to wrap up this experiment because it’s one of my favorites. It’s heavily inspired by Zelda. I’m going to enjoy playing it a little bit more over the next week or so. All the other games I’ve played are collected in this category on my blog.

    → 10:44 AM, Oct 7
  • Inktober pin

    Good luck to everyone participating in Inktober this month! We’ve added a special Micro.blog pin you can unlock by posting a photo of your drawing and the word “Inktober” somewhere in the post. To see your pins, click Account → View All next to the pins message.

    If you’re drawing digitally, also check out these Inktober templates from Iconfactory for their iPad app Linea Sketch.

    → 1:57 PM, Oct 1
  • Core Intuition 390

    We posted episode 390 of Core Intuition. From the show notes:

    Manton finds a workaround to his Sign in with Apple email problems! Daniel argues first that DTS should support pre-release software, and they discuss possible compromise approaches. Finally, they remark on Apple’s vigorous marketing push, and the thrill of promoting products we are proud of.

    Only 10 more episodes to go before we hit 400!

    → 9:51 AM, Sep 27
  • 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.

    → 1: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.

    → 2:35 PM, Sep 23
  • The Enchanted World

    I almost forgot to post to my blog for the 6th day of trying games on Apple Arcade. Remember those sliding block puzzles? The Enchanted World is that but set in a wonderful fantasy design where your character moves through the story using magic to set the world right.

    I was going to stop my micro review there, but after I started playing the game I came across the story of the developer and designer who created it. Apple featured them in this newsroom blog post:

    For creators and friends Ivan Ramadan and Amar Zubcevic, both 33, the game is much more than that: It’s a metaphor for a child growing up in a time of war. Both Ramadan and Zubcevic grew up in Sarajevo during the conflicts in the Balkans in the 1990s, and both had parents that used creativity to shield them from the violence and danger around them.

    There’s also a longer feature on CNET about the developers.

    → 11:59 PM, Sep 21
  • WordPress funding and market dominance

    Matt Mullenweg blogged that Automattic has received a Series D funding round of $300 million. He had some interesting comments in an interview with TechCrunch about how much they want to grow WordPress, comparing it to Android’s 85% market share and even going beyond that:

    What we want to do is to become the operating system for the open web. We want every website, whether it’s e-commerce or anything to be powered by WordPress. And by doing so, we’ll make sure that the web can go back to being more open, more integrated and more user-centric than it would be if proprietary platforms become dominant.

    I’ve long been inspired by Automattic. They were the best company to acquire Tumblr and they seem well-positioned to make a dent in the dominance of Facebook and Twitter. But also I’m thinking about one of the IndieWeb’s principles:

    Plurality. With IndieWebCamp we’ve specifically chosen to encourage and embrace a diversity of approaches & implementations. This background makes the IndieWeb stronger and more resilient than any one (often monoculture) approach.

    WordPress is at 34% of web sites right now, and I can easily see it getting to 50%. Growing bigger than that might take away one of the beautiful things about the web: the diversity and flexibility to move between platforms. I’m rooting for Automattic to take market share away from the big social networks, but there should be a variety of tools available to build web sites, including platforms like Micro.blog.

    → 2:04 PM, Sep 20
  • 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.

    → 11:27 AM, Sep 17
  • Notifications for third-party Micro.blog apps

    Last year after Twitter changed their streaming API so that apps like Twitterrific and Tweetbot could no longer use it, I blogged that I wanted to do everything I could to support third-party Micro.blog apps:

    With that in mind, I’ve mentioned before that I’d like to offer a push notification service for developers. iOS and Android developers could upload their push notification credentials from Apple and Google. Micro.blog would store them and deliver push notifications directly to third-party apps.

    That is now a reality. Today there’s a new beta of Gluon for Micro.blog that includes push notifications. Micro.blog sends the notifications on behalf of Gluon so developer Vincent Ritter doesn’t need to run his own server.

    The other popular iOS app for Micro.blog is the open source Icro. I’ve added a comment to this Icro issue on GitHub with details on the new API. I’m looking forward to working with anyone building native apps for Micro.blog to enable push notifications for their app.

    → 8:33 AM, Sep 13
  • Plans for JSON Feed 1.1

    I can’t believe it’s been 2 years since Brent Simmons announced JSON Feed. In the first months after the spec was released there was a lot of activity on GitHub and interest from developers. The format has proven really useful in Micro.blog, in feed readers like Feedbin or Brent’s own NetNewsWire 5, and just to make it easier to build new web tools.

    We’ve received some great feedback, and I’ve been reviewing a bunch of the issues on GitHub. There are a few things that we want to incorporate into the spec. I’ve posted a list of proposed changes over on GitHub.

    → 11:48 AM, Sep 12
  • Animated shorts and Richard Williams

    Richard Williams passed away a couple of weeks ago. The day after, my family and I went to see the Animation Show of Shows at the Alamo Drafthouse. It was a wonderful collection of films — beautiful to experimental, funny or thoughtful, with a variety of different mediums.

    But thinking about it now, none of the short films were really in the painstaking hand-drawn style of Richard Williams, who had incredibly high standards for what animation could be. He would embrace doing the work of drawing every frame, with few holds or shortcuts.

    The films in the show weren’t trying to do that, and that’s fine. But I hope someone again picks up the depth and quality that Richard Williams brought to the industry. I blogged about him back in 2013, and I remain inspired today.

    → 3:53 PM, Sep 5
  • 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.

    → 10: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.

    → 11:32 AM, Sep 3
  • The power to move away from big tech

    DHH blogs about giving a chance to smaller companies to help fix the problems with massive tech companies controlling so much of the web:

    The world is full of alternatives to the Big Tech offerings that give you 95% of the utility for 0% of the regret. But if you can’t even be bothered to give up 5% to help an alternative along, you also can’t be surprised when the alternatives are so few and far between.

    This is how I’ve been feeling about Instagram. I hear people complain about Facebook all the time. But then some of those same people turn around and post photos to Instagram instead of their own blog.

    Complaining helps when the company listening cares about the same problems we do. For example, Apple and privacy. But the solution to massive social networks is already in our hands.

    → 3:23 PM, Aug 30
  • Slopes network effect

    Curtis Herbert has a great blog post about starting an Android version of his app Slopes. Adding social features made it more compelling to support multiple platforms:

    In any given group of friends the odds of a mix of both Android and iOS users is very high (not to mention Europe is a big potential market for me, and Android is much larger over there than in the states). If someone on iOS loves Slopes, but their friend group ends up using one of my competitors because it supports both platforms and therefore the entire group can join in on the in-app fun, that’s going to go poorly for Slopes.

    What I find so interesting about this decision is that Curtis seems to be intentionally expanding the scope of Slopes. Everything he writes about with Android makes sense if you first assume that the social features will be an important selling point and grow the audience for the app. Other indie developers might instead choose to keep the app focused on iOS and solve a more narrow set of problems, and that’s fine too.

    I’m thinking of my discussion with Daniel Jalkut on last week’s Core Intuition about whether we should try to change the world (which often means bigger apps and more platforms to reach the most people) or focus on just building an app that’s really good at what it does (but might not be revolutionary).

    Micro.blog would benefit from an official Android version, so a lot of Curtis’s post resonated with me. Luckily the third-party app Dialog (and upcoming app Gluon) can help fill that void in Micro.blog in a way that isn’t possible with non-platform apps like Slopes.

    → 2:59 PM, Aug 30
  • Dialog open source and the IndieWeb

    Dialog is a full-featured Micro.blog app for Android. Jacky Alciné blogged about it today while thinking about Micro.blog and IndieWeb mobile apps:

    I decided to look at the client landscape for micro.blog, the most mature social platform that’s built around IndieWeb principles. I defined maturity as a platform that allowed immediate on-boarding into the community, provided a very simple (no-explainer) interface on how to get started and made it easy to go beyond it. That level of support is something I want my suite of tools to have - and I’m still working on it.

    Because Dialog is such a polished app and already open source, I wondered if it could be the foundation for additional IndieWeb-related features for Android users. The official repository with the source code for Dialog is on Gitlab here.

    I’ve also copied it to the Micro.blog account on GitHub, in case it’s useful for any GitHub users to browse or fork the code there. Thanks again to Mike Haynes for Dialog and for making it available in Google Play, as well as open-sourcing it!

    → 11:27 AM, Aug 28
  • NetNewsWire 5.0

    Congratulations to Brent Simmons and all the contributors of NetNewsWire for shipping version 5.0 today. Here’s Brent with the announcement:

    This release took five years to make, and for four of those years it wasn’t even called NetNewsWire. It was just a year ago that I got the name NetNewsWire back from Black Pixel — and I thank them again for their wonderful generosity.

    Each major new version of an app is an opportunity to refocus, and NetNewsWire 5.0 prioritizes all the right things: it’s fast, embraces the open web, and feels at home on the Mac. NetNewsWire 5.0 takes everything Brent learned from previous versions, but rebuilt from scratch with modern features like Feedbin syncing, Dark Mode, and JSON Feed support.

    And for folks on Micro.blog, NetNewsWire 5.0 also includes a sharing option to start a new microblog post right from an article you’re reading in NetNewsWire. It’s a great way to quickly share links on your microblog.

    → 11:16 AM, Aug 26
  • 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.

    → 10:47 AM, Aug 23
  • Hong Kong and trending misinformation

    Twitter announced in a blog post that they have removed over 900 fake accounts spreading misinformation about the protests in Hong Kong:

    This disclosure consists of 936 accounts originating from within the People’s Republic of China (PRC). Overall, these accounts were deliberately and specifically attempting to sow political discord in Hong Kong, including undermining the legitimacy and political positions of the protest movement on the ground. Based on our intensive investigations, we have reliable evidence to support that this is a coordinated state-backed operation.

    I like that Twitter is being proactive and transparent about this. It’s especially remarkable that they notified a competitor, Facebook, about similar fake accounts on Facebook’s platform.

    Unfortunately there’s a deeper problem here. It’s not just the fake accounts and misinformation, but the way that Twitter’s design can be exploited. It is too easy to piggyback on trending hashtags to gain exposure.

    Maciej Cegłowski of Pinboard called attention to the promoted tweets:

    Every day I go out and see stuff with my own eyes, and then I go to report it on Twitter and see promoted tweets saying the opposite of what I saw. Twitter is taking money from Chinese propaganda outfits and running these promoted tweets against the top Hong Kong protest hashtags

    I wrote about this in 2018 when introducing Micro.blog’s emoji feature:

    Hashtags and Twitter trends go together. They can be a powerful way to organize people and topics together across followers. But they can also be gamed, with troublemakers using popular hashtags to hijack your search results for their own promotion or unrelated ranting.

    We’ve expanded search and discovery in Micro.blog slowly for this reason. While Micro.blog is certainly too small to attract the attention of state-run propaganda, there has been spam going through Micro.blog that no one else sees. I’m convinced that limited search, no trends, and active curation are the right foundation so we don’t end up with a design that creates problems when Micro.blog does get bigger.

    → 3:33 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!

    → 1: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.

    → 2:20 PM, Aug 15
  • Tumblr and… App.net

    Thanks to the “on this day” feature that Jonathan LaCour built for Micro.blog-hosted blogs, I noticed that 7 years ago yesterday I blogged about App.net reaching their funding goal. I still get asked about App.net sometimes. It is easy to look back on something that didn’t last and pick it apart. I’d rather look at the good things that came out of App.net.

    When it was shutting down, I blogged my thanks to the App.net community:

    I wrote in 2013 that it was not just a Twitter clone but an amplifier for applications that couldn’t be built before. It came along at the right time, took off, and then faded. The App.net founders deserve significant credit and thanks for trying something risky and succeeding to grow a community that lasted so long.

    There is a guiding principle in Micro.blog that differentiates it from nearly every other platform. It’s not only about creating an alternative social network. The foundation is around blogs and IndieWeb standards because that’s part of unrolling the damage caused by massive silos.

    Micro.blog is also designed around blogs because it gives immediate value to the platform, insulating it against the network effect that drives the success or failure of most other social networks: not all your friends are there yet. Unlike ad-supported platforms, Micro.blog aligns its business model with customer needs. Subscriptions for blog hosting let us deliver the best features we can, and also help support the rest of the platform.

    Brent Simmons really said it best:

    Micro.blog is not an alternative silo: instead, it’s what you build when you believe that the web itself is the great social network.

    I often look back at this quote to help guide me as I evaluate the direction of Micro.blog. I believe that Micro.blog is the first platform of its kind. The closest competition might be Tumblr, acquired yesterday by Automattic.

    Of course it was coincidence that Automattic acquired Tumblr pretty much exactly 7 years after App.net was funded. No one is paying attention to those dates. And yet, now that I’ve noticed it, there’s a kind of symbolism to it. Tumblr is effectively being re-funded.

    Like Micro.blog, Tumblr is about making blogging easier. Like Micro.blog, Tumblr allows custom domain names for your blog, something no other major social network allows. Unlike Micro.blog, however, Tumblr’s community is only Tumblr blogs. Micro.blog’s community brings together not just Micro.blog-hosted blogs, but people using WordPress, Mastodon, or home-grown IndieWeb solutions.

    Matt Mullenweg and the Automattic team have a bunch of work ahead of them to integrate Tumblr into the WordPress ecosystem. I don’t know how that’s going to play out, but I know that preserving all the Tumblr blogs and giving them new life is a good thing.

    I wonder if Micro.blog and Automattic are on parallel tracks. Two companies wildly different in size and scope, but we can all learn from platforms that have come and gone, finding our own path to a shared vision of the future that embraces content ownership, supports healthy communities, and deemphasizes massive social networks. I’m wishing the team at Automattic the best.

    → 10:16 AM, Aug 13
  • 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.

    → 1:09 PM, Aug 12
  • Ruined by Design 📚

    When I started reading Ruined by Design, my first thought was that I had missed the window for writing my own book, Indie Microblogging, because Mike Monteiro was making all the same points that I was writing about. Luckily that wasn’t the case. Mike does cover some of the problems with social networks, but most of the book is focused on how designers can think about their work. I recommend it. (And it’s just as important for programmers and everyone else who is contributing to a product.)

    Mike was also a guest on today’s episode of Presentable with Jeff Veen. I finished the book last month, so the podcast was a nice recap of a few of the main ideas and stories from the book.

    → 4:54 PM, Jul 29
  • 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
    → 9: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.

    → 10:11 AM, Jul 25
  • Customizing podcast feeds and Micro.blog design

    I wanted to highlight 2 new blog posts from the Micro.blog community about customizing themes. Because Micro.blog uses Hugo templates, there’s flexibility to change the design or even override our default feeds.

    • Chet Collins used a custom theme to change his podcast feed to use different artwork.
    • Ricky de Laveaga updated the Hello theme with some CSS tweaks including improvements for dark mode.

    As Micro.blog matures, it’s important that we keep the default interface as streamlined as possible. It should be as easy as tweeting to start your first blog post. But I love that there’s a lot of power under-the-hood for people who want to tinker with it.

    → 10:31 AM, Jul 23
  • 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
    → 4:20 PM, Jul 21
  • Apple exclusive podcasts skepticism

    Jason Snell has a post for Macworld reacting to the news that Apple plans to fund original podcasts:

    The great thing about podcasts—and I say this as both a listener and a creator of podcasts—is that it is, like the web, a free and open ecosystem for content. You can listen to any podcast in any podcast player. If Apple creates podcasts that can only be listened to in Apple’s own app, it is furthering a potential future where your favorite shows are scattered across multiple services and siloed in different apps.

    No one is too alarmed by this Apple rumor, because maybe nothing will come of it. But a good way to think about it is to imagine if the popularity of Apple and Spotify were reversed. Imagine if Spotify was the one with 60% of the podcast app market and then they decided to release Spotify-only exclusive “podcasts”. It would be an obvious threat to the openness of podcasts.

    I wish I could give Apple the benefit of the doubt on this, but the risks are too great. Apple has more power than any other company over the podcast ecosystem. Just because they haven’t interfered with anything so far doesn’t mean they can’t still ruin what we’ve got.

    → 3:40 PM, Jul 17
  • Simplifying the Micro.blog subscriptions

    I want to give everyone a heads-up about a change we’re making next week. When Micro.blog launched, it was really important to me that the service was as affordable as possible. Because of that, there were options to use it for free with an external blog, use it with the $2/month cross-posting, or have Micro.blog host your blog for $5/month. We later added podcasting and video hosting for $10/month.

    As Micro.blog has improved, I think our blog hosting has become a great value. The price of the $5 subscription won’t change. But the $2 subscription introduces a lot of confusion. It’s priced per domain name, and it’s not obvious when or how to switch between the different plans. It also adds a lot of complexity on the backend to manage all the possible subscriptions.

    To fix this, we’re removing the $2 plan and updating the $5 blog hosting to also include cross-posting from any domain name. If you’re only using the $2 cross-posting, don’t worry. We will switch you to the new plan but apply a $3 monthly credit to your account indefinitely, effectively keeping your original pricing.

    Pricing Micro.blog has always been interesting because it needs to appeal to people who just want a new social network (usually $0/month) but also to people who want a great blog host (often $20/month). I think these changes keep the right balance to accommodate the different needs that people have with Micro.blog, while making it simpler for new users. Thanks for your support!

    → 10:52 AM, Jul 12
  • Interview with IndieWeb co-founders

    Last year after IndieWeb Summit in Portland, I sat down with IndieWeb co-founders Tantek Çelik and Aaron Parecki to talk about the history of IndieWebCamp for my upcoming book, Indie Microblogging. Only part of the interview will fit in the book, so I’m including a full transcript of our conversation below and on GitHub, where I’ll be incorporating any edits and also publishing future chapter drafts.

    Manton: Take me back to 2011: the founding of IndieWebCamp. What did that feel like? How you all got together. How the first IndieWebCamp got started.

    Tantek: You weren’t at the Federated Social Web Summit in 2010, were you? Did you hear about it? Did it even cross your radar?

    Manton: I assume it did. But that’s already been a while.

    Aaron: Nine years ago…

    Tantek: Because I think that’s where the inspiration originally came from.

    Aaron: So 2010 was the Federated Social Web Summit — in Portland — and that was the invite-only but “you could kind of ask for an invite”-style event.

    Tantek: Which we now know greatly biases towards people that feel privileged enough to ask for an invite, so it’s sort of a bad way to do it. I didn’t even put that together until the last year. Yeah, don’t do that kind of private conference.

    Aaron: So I ended up there, Tantek, as well as a bunch of others. It was a fun group, but the thing that we took out of it was that the focus seemed to be on people building things for other people, building specifically platforms. They were coming with platforms and trying to make them work together. Which is a fine goal, but that wasn’t my personal interest in it necessarily. So it was more like, “oh, I have this Buddycloud thing, let’s make it work with Friendica”. Or Diaspora was there.

    Tantek: The Diaspora 4 were there, which was cool. That’s where I really got to spend time with them.

    Aaron: And there was also a lot of solving problems in theory without actually testing them out or building something first. And a couple of pretty in the weeds discussions that I ended up sitting in on and was like, “this is really complicated”. I feel like there is a better solution. That was where SWAT0 the concept was formed as well, right? Interoperability tests between social networks — can someone post a photo of somebody else using a different system be notified that they were tagged in a photo and then a third person comment on the photo and have that comment notification appear on the person who favorited it. Everybody has to be using different software for that test to pass. SWAT0: social web acid test.

    Tantek: It was actually really hard.

    Aaron: Very hard. It still is.

    Tantek: As far as we could tell no one actually got it to work across different sites.

    Aaron: The goal with SWAT0 was to have three different systems interoperating. Several people claimed that they supported everything needed for SWAT0 themselves. But by definition that doesn’t solve SWAT0 because you need three different implementations. So there were several people who were like, “I can be every person in this — every role in this test”. But then there’s no one to test it with, because only one person would do that at a time. And we are still kind of in that situation sadly. It’s still a very hard problem. We did in 2015 have a demo of it working between three different recommendations, although each implementation only was able to be one or two of the roles of the three.

    Manton: And that was using Webmention?

    Aaron: Yeah, exactly.

    Manton: So back in 2002 what was the technology to.. It was way after Pingbacks and Trackbacks.

    Aaron: Yeah, the thought was the OStatus stack. Atom. Salmon for the responses.

    Tantek: PubSubHubbub, I think.

    Aaron: I believe so, yeah. For finding the photo in the first place.

    Tantek: But Salmon for the notification.

    Aaron: Salmon for the notification of the comment. But in order for someone to see it in the first place they would be following an Atom feed, probably, with PubSubHubbub.

    Manton: And so now Salmon is making a comeback with Mastodon, right?

    Aaron: No, it’s already done.

    Manton: It did briefly make a comeback and then got replaced.

    Aaron: Mastodon ripped out their whole code and replaced it with ActivityPub. So after that event we were like, “okay, that was cool, but we want to focus on people being more empowered individually to participate in this federated network.”

    Tantek: Everyone got to give lightning talks. That was part of it.

    Aaron: Yeah, yeah.

    Tantek: Which was great. About any topic, like why they were there and… What was your lightning talk on?

    Aaron: Probably location stuff, because I was just starting geolocate at the time. But the sense I got was that the assumption was that in order to participate in a federated social network, you have to be on a platform that supports the protocols. The only way to do that was that if someone built the platform that interoperates with other platforms, and then you as an individual join one of those platforms. There was no “just my web site”.

    Tantek: Or one-person platform.

    Aaron: Or single-person platforms was like: why would you do that? That was the feeling there. That was why we did IndieWebCamp the year after, because we wanted to approach it from the grassroots of: someone should be able to take their web site and be able to use their web site to participate in the same distributed social network — federated social network.

    Manton: As the conference was wrapping up, did you have a feeling that y’all would probably do IndieWebCamp, or was it making friends and catching up with people.

    Tantek: We were mostly catching up with people, meeting new people. I was just looking at my notes, because I actually put my entire talk from it on their wiki because it’s like that’s how it’ll survive. Turns out wikis are more persistent than PowerPoint.

    Manton: So in that time… 2010 is actually a really interesting time because Twitter had been around for a few years and really gained a lot of steam, and actually a lot of early bloggers — who were blogging all the time in the early days — around 2010-ish they dropped off. They started just doing Twitter.

    Tantek: Even just 2009…

    Manton: Twitter satisfied that “I’m going to post something”. And you can see that. I went back recently and looked at a bunch of people that were doing blogging software. Founders of Blogger, Movable Type, and Six Apart people. And very few of them kept their blog through that period. So could you sense that at the time?

    Tantek: Totally. Just even personally, the last blog post I wrote on my old blog was in August of 2008. I did not have anything on my own site in 2009. 2009 was a really weird transitional period, because I both saw that happening and I saw it happening to myself. And then the other thing that happened simultaneously — which I think helped — is that Twitter was really unreliable in 2009. We all switched to Twitter and then it got really unreliable. It was so frustrating.

    Tantek: First of all I’m embarrassed that I’m not posting to my own site anymore, and then I’m frustrated because this damn tool is never up. And that’s really where I came up with the idea of, well, I should post to my own site and if I could set up a system where I can always just post to my own site, whether or not Twitter was down, then I can just have my site post to Twitter when it comes back up. And I can abstract away that frustration of their site being down. Abstract away their unreliability, while still getting that participation with friends thing. So 2009 is when I started working on what’s now my web site. Launched in 2010. January 1st, I’m like: from now on everything is going on my site first.

    Tantek: And then the Federated Social Web Summit happened and I was like, “woah, okay”. But the platform perspective that Aaron was pointing out. Wait a minute, you don’t need to use a whole platform. Everyone can do this themselves. So that was my lightning talk, basically, and it even ended with… I’ll show you the summary: use your own site as your identity; publish on your own site; and then syndicate with PubSubHubbub. That’s still true.

    Manton: And the first one, importantly… The very first principle of the IndieWeb principles is that. Use your own site, own your own content. Domain names are a big part of that. Really the biggest thing. Unfortunately domain names have not changed since 2010. They haven’t changed since 2000. It’s interesting that something so important, that “step one” is still really confusing to people.

    Aaron: Yeah.

    Tantek: Oh, that’s you’re going with that. I thought you were going with like, “they’re still around”.

    Aaron: And it’s still just as hard.

    Manton: I’m going with: why aren’t they easier? Because a lot of what the IndieWeb does, if you look at Microformats and Micropub and all these core parts of the IndieWeb, they’re built on HTML and HTTP where we have some control over making things easier and having other standards.

    Tantek: Yes.

    Manton: Is there hope for making DNS also easier for people, or are we just kind of stuck with this for a while?

    Tantek: The irony is I don’t know what you’re comparing it to. Look at the amount of time it takes you and the form you have to fill out to get a new phone number. I would challenge you to do an A/B test. How long it takes to get a new phone number from scratch, not having a phone number, to how long it takes to getting a new domain name. And I would bet that it’s actually fewer steps to buy a new domain name. So I definitely sympathize that it could be easier to buy a domain name, but compare it to other forms of identity that people take for granted. It is less work to do. Or maybe the hard part is picking a domain name.

    Aaron: Yeah, that’s part of it. A phone number just gets assigned to you.

    Manton: And everybody kind of knows how phone numbers work, I guess. No one’s surprise that there’s a 3-digit area code, and a 3-digit number, and a 4-digit… Whereas with domain names there’s certain things (and IP addresses) that people are surprised by.

    Aaron: Getting the domain is the first step. But then once you have it you have to know that you now need to set up DNS on it and point it at a hosting provider. And that’s the part that’s different from a phone number. Because once you have a phone number, it almost certainly came with a phone. You don’t buy a phone number and then assign it to a phone. You do that all as one step.

    Tantek: It turned out that the equivalent of phone number registrars, all cell phones… It would be as if every domain name registrar — and a lot of them do now — sell hosting. So right off the bat, they’re like, “here’s a domain name, do you want us to flip on a simple web site for you?” A lot of them do that. That has changed.

    Aaron: Yeah. That’s true, actually. That has gotten better. It used to be that GoDaddy or Name.com or NameCheap only did domain names. And then they all started adding hosting plans to their product.

    Tantek: Which makes sense.

    Aaron: It absolutely makes sense. And when you use the hosting plan provided by the registrar it is actually very easy, because it is more like you just go there, type in the domain you want, pay, and then now you have the empty shell to put stuff on. Doing something with the empty shell of a hosting plan is another step, but at least they do make the DNS to hosting step combined into one.

    Tantek: Other hosting providers have made it easier to one-key turn on WordPress, turn on Known. I don’t know there’s a domain name registrar that also has easy hosting that also has a simple turn on a web site CMS.

    Aaron: DreamHost does a pretty good job of it.

    Tantek: That’s true. DreamHost probably has the most pieces that they’ve put together. And they were the first to do LetsEncrypt automation. Domain name, security, hosting. So that’s evolved. It’s very impressive to watch, even during the whole eight years of IndieWebCamp.

    Manton: And comparing it to the phone numbers, if you go get a phone from someone they can always give you a phone number — if you go to Verizon or AT&T. And maybe where we need to be eventually with the web is that any place you can go get a web site can give you a domain name, which is not really true right now. The big companies can, but a smaller webhost can’t necessarily.

    Aaron: You can, but it’s more work as a service provider. There’s plenty of domain resellers. I built a system to do that at one point, where we wanted to be able to offer domains as part of the product we were offering. So I found a domain reseller that had an API and hooked it all up. You would come to us and click the button for, “I want this web site with this theme.” It worked seamlessly.

    Tantek: Even GitHub should it doing that, right?

    Aaron: Right, for GitHub Pages. Instead of just offering GitHub Pages and being able to map a domain to it, why shouldn’t they offer their own domain registration.

    Tantek: And make a little money. There’s incentive there.

    Aaron: It would be a no brainer for Micro.blog to offer that feature. Sign up for the Micro.blog account, then right there type in what domain you want and it just works.

    Manton: I’d love to do that.

    Tantek: It’s also the kind of thing you could always add. “Yeah, now I’m ready for a domain name.”

    Aaron: Yeah, you upgrade your subdomain to a real domain.

    Manton: So you had mentioned with the changes in the last seven years… Going back to that first IndieWebCamp. We’re just wrapping up IndieWeb Summit 2018. Does it feel the same in terms of the community and what people are excited about? Obviously standards and everything else have evolved.

    Aaron: The biggest shift in that context that I’ve seen between the original ones, specifically, although even from 2014 to now. Now we actually have a lot more stuff working together than we did in 2011, obviously, and even in 2014. At the beginning it was the same goal, the same ideals, but we couldn’t demo me commenting on someone’s post. That didn’t work until way later. And because of that the sessions were all drastically different, because there wasn’t a thing to coalesce around except for the ideals of own your data, have a domain name, do stuff on your web site.

    Aaron: So if you go back and look the original sessions from 2011 to 2014, it’s a wide variety of things. Now at IndieWebCamps you end up with a lot of people who are coming to it and then become aware that there are things that work and then want to learn how to do those things. Now at the beginning of the second day we have the intro to the building blocks session. What is IndieAuth. Get Webmention working. Even in some of the IndieWebCamps there will be a whole track of unconference sessions about those building blocks for the whole day, where it’s people who know they want to learn these things that already exist.

    Tantek: You had a session called “own your phone number”.

    Aaron: That’s right. Yeah, I have actually kept that up. My phone number and my cell phone are completely disconnected. They’re not coupled. So my phone number is provided by Google Voice and I forward it to a phone number that I don’t know that my cell plan is on. I have no idea what my phone number is — the one on my phone. And I give out my Google Voice number as my identity.

    Manton: When was that talk?

    Aaron: That was 2011.

    Tantek: The talks were so varied back then. We were just figuring out so many basics that a lot of the talks were very exploratory. We figured out some things like, “okay, I figured out how to syndicate into Buzz and Twitter, how about other places?” Then there was advocacy for plain text formats and there was a BitTorrent session.

    Aaron: Yeah, I think that’s the biggest shift I’ve seen is that there’s so much more stuff that’s actually working now that’s functional. And it means that people are coming and wanting to learn that. And of course there’s still the experimental stuff. There was a good set of experimental sessions at this event. But there’s a lot more of: we have stuff working now that you can figure out and learn how to use.

    Manton: There are two things, too. There’s all the IndieWeb-friendly formats and protocols are much more mature and established now, so that you could talk about the building blocks as a real thing. But then there’s also… It seems like the software is much further along. A bunch of people will come to the IndieWeb and they use WordPress, because WordPress powers 30% of the internet and it’s super popular. But there’s still a pretty good mix in the demo sessions and what people are hacking on of WordPress stuff and also “no, I rolled my own”.

    Tantek: Yeah, in fact lots more rolled their own, which is not representative I think of people out there in general.

    Manton: What do you think about the fact that WordPress is a very dominant platform. Is that good because there’s an agreed thing there everyone can use the same plugins, or are there any drawbacks?

    Aaron: WordPress specifically because it’s self-hostable, that benefit ends up overriding some of the other drawbacks of that kind of approach. The danger with something being so dominant.. It’s the monoculture problem. We don’t want to be in a situation where we just have WordPress instances talking to each other. That doesn’t actually solve the problem.

    Tantek: Or just have Mastodon talking to each other.

    Aaron: Just Mastodon or just Diaspora or whatever, right. That’s the danger. That’s the thing we’re trying to avoid.

    Tantek: Because that has lots of even worse consequences.

    Aaron: Yes, exactly. And even when it’s a friendly company like WordPress that’s behind it, it doesn’t matter — the same problems.

    Manton: You start to build like platform-specific… It’s different than just building for the web in general where anybody can bring their own site and plug in. With Mastodon specifically, it’s based on open standards but it also feels very opaque in a way — how stuff talks to each other. It’s a little more difficult to just build a web site and be compatible.

    Tantek: It’s also levels of barriers to entry. Because that’s one thing that myself and I think a bunch of people at the 2010 Social Federated Web Summit we’re frustrated with was a lot of the standards being tossed around — every generation has its own standards — were really hard, like Salmon. I tried to read through the spec and understand what it was doing, and I could not wrap my head around enough of it to even start anywhere coding.

    Aaron: I had the same experience at that event. I even then later, a year ago, tried to revisit the spec because Mastodon was using it. I feel like I should be able to have my web site just be a part of this network. I refuse to make a new Mastodon account and treat it as a POSSE destination because that completely defeats the purpose of what Mastodon itself is even shooting for, which is an actually distributed social experience.

    Aaron: So I was like, “okay, it can’t be that hard now”. Certainly things have gotten better, and I should be able to just take my web site and add the stuff it needs. I still can’t figure it out. And then they went and dropped Salmon anyway and switched to ActivityPub, so I’m glad I didn’t spend my time on that.

    Tantek: It turns out that the difficulty of the standard to implement makes a big difference. Because if it’s super difficult then you end up with only a handful — maybe even just one or two people on the planet — that can implement it, and then you get monoculture by default. In effect, not by design. One of the things we realized was that the antidote to that is to make the standards as simple as possible. Literally as dumb and simple, and frankly decomposed. So that’s where we came up with the building blocks idea rather than having a stack. And the idea that building blocks is you pick and choose the ones that you need for your use cases. That doesn’t mean you’re committed to implementing a layer after layer after layer to get to a certain point.

    Tantek: That was a big insight. The more accessible the standards are for any developer to build their own solution. That means that the more they’re going to get exercised, the more that they’ll get good interoperability, the more that they’ll be a community around it. Because that’s really what it came down to.

    Tantek: I think that’s kind of where the IndieWeb community started to form — started to really grow and gain critical mass — is the growing number of people that were like, “oh, I can implement that on my web site in an hour or less.” And then in a day they could do amazing things.

    Aaron: And it’s demonstrated by the fact that like you look at the RSVP list on the event page, there’s like over 20 people who have been able to have their picture show up on the RSVP list, which works by having them publish a page on their own website and send a Webmention to the event page. That’s pretty cool. They didn’t have to go and read through a whole spec that talks about everything from using an app to publish to your site to then have a federation protocol behind it. They just need to know about this much of the whole picture in order to have that work. And that’s a quicker win. Now maybe you expand and start working on the rest of the building blocks.

    Manton: Webmention is a great example of something that is as simple as it possibly can be. Can’t really get that down any simpler. So people get it. Microformats is similar in that it’s very approachable and transparent. If you know HTML you can figure out how to do that. You have Microformats 1 and 2, and remind me… Because Microformats predates…

    Tantek: …IndieWeb. 2005.

    Manton: And did that launch at SXSW or something like that?

    Tantek: Shortly thereafter. I think we had sessions about it at SXSW in 2005, in March. The site launched in June itself. Until then we had just been doing it on the Technorati wiki. And my co-founder of the Microformats.org community, Rohit Khare. He’s like, “hey, happy birthday, I bought you a domain name.” And I was like, “really, you think this is worth having its own domain name?” That was my actual response.

    Aaron: Wow.

    Tantek: Because it seemed like such a simple stupid dumb thing. And he’s like, “yeah.” Okay, I guess we should do this then, and then we set up the site and well, what do you need on a community site. You need a mailing list, you need a blog, you need a wiki. So we set all those up. Since then we’ve learned that the primary ways of actually making progress are the wiki and IRC channel (or Slack) — an archived IRC channel. But that was definitely a response to, again, complexity. Like the whole RDF world — all that insanity — and the Atom/RSS wars back in the day, and then Atom going to IETF instead of W3C because there was a giant fear that it would just be turned into RDF at W3C. That’s how Microformats 1 started.

    Tantek: We basically did make it look as dumb as possible. Let’s just take the names of the terms from the vCard spec and use them as class names. That was what I proposed in 2004 at FooCamp. And I ran it by Ray Ozzie at the time, who was like architect at Microsoft or something, but also just from Lotus Notes, you know he has a long history. He’s like, “yeah, that could work.”

    Manton: So now we’re almost 15 years since then. Looking forward, there’s a lot of talk about generations — 1, 2, 3, 4 — moving up and making it more approachable and just easier for people to use. Obviously we can’t predict 15 years from now. Who knows what’s going to be around. Is Twitter going to look the same, are blogs going to be the same…

    Tantek: Is Twitter going to be around?

    Manton: Exactly. There’re no guarantees. A lot of people… So much time, they don’t remember before Twitter and Facebook and so it’s hard to imagine sometimes that those things could go away. But they could. They’re just web sites. Businesses built by people that make mistakes and do good things sometimes.

    Tantek: Yeah, sites that become boring and people move on to what’s interesting. I think Facebook really extended their lifespan by buying Instagram.

    Manton: So moving forward, how soon… Because I’m kind of impatient and I want everybody to blog on their site immediately, like tomorrow, and for it to be easy to use. But this stuff takes time.

    Tantek: Totally.

    Manton: Where do y’all see just over the next few years. How close are we to making this more mainstream or is this going to be just more time churning away building tools, trying to spread awareness.

    Tantek: It’s kind of hard to predict. I do feel like we’re entering a new phase right now. I think we’ve had two phases, two very long phases of the IndieWeb community so far. One was this I almost want to say like Big Bang phase in the very beginning where there were all these different things coming out. People trying all kinds of different approaches, like Ward Cunningham did his federated wiki project. He figured out a way to do all this Javascript-based wiki federation thing that he loved. And other approaches. But then we started to coalesce around: use your own site, use Microformats. We actually used Pingback for a while until Sandeep Shetty showed up and he’s like, “hey, I’ve got this proposal for a simpler version called Webmention that does this.” And everyone in the community was like, “well, that completely aligns with our values of making things simpler.” So we instantly adopted it even though none of us knew who this guy was. And then we just ran with it.

    Tantek: So the first four years was this explosion of getting basics working. We got RSVPs and events working by 2013. And that was kind of like, “whoa, we federate events and RSVPs,” which we were always looking for ways that in the actual things we do, how can we use the technology that we’re making. And after that, clearly we need to get these standards — that are barely specified — solid, testable, working, dependable, to reach the next level of stability.

    Tantek: And then there was the second phase which was the work of making all these standards formal and reliable and secure and handling edge cases. We did that from I would say 2014 through 2017, and a lot of that was done in the social web working group that I was co-chair and Aaron was in, edited a bunch of the documents. Evan Prodromou was also co-chair, from StatusNet. But that was kind of a maturing phase. There were a lot of new features people were figuring out all the time, and new infrastructure like Bridgy during that phase.

    Tantek: But I feel like a big part of that second phase was everything that was getting built was getting fed back into fixing the standards. People would build something, they would get to the point where they were like, “hey, this didn’t quite work, we have to fix a standard to handle that.” Okay, we fix it. They get it working. We have test suites for all these standards. And now when people are implementing things like Webmention or Micropub or whatever they’re not really running into new problems. What they’re running into is questions of how, not “this doesn’t work”. So we’ve reached this level — and I think Microsub, that might be one of the last pieces that kind of wraps it up. That’s why I feel like we’re closing on the second phase.

    Aaron: And IndieAuth, too, because that was only written as a spec this year. Before that it was actually very interoperable, and there were several implementations before, but it was never written down as a proper spec. So that’s now this process of let’s formalize that.

    Tantek: And we even formalized how do we update the Microformats parser spec and the vocabulary. That’s been much more formalized as well. So people have an idea that when I proposed something, when can I depend on something vs. what’s experimental, and then what’s the path.

    Aaron: So you mentioned these two phases of…

    Tantek: The Big Bang, the amazing explosion of cool stuff and then this sort of maturing of the standards to make stuff work reliably even just amongst theirselves. You mentioned you want everyone to have their own presence. But when I think about that I think, “people want things that are reliable, that just work.” And I think this second phase was us doing the difficult plumbing work of the details to make things just work.

    Aaron: That leads into what I think is the next phase is getting more people building systems using these building blocks. When that happens, and you’re a great example of this…

    Tantek: Yeah, there’s an overlap. I think Micro.blog was evidence that that phase was ready to enter.

    Aaron: So now as someone who is building out a platform that is intended for end users… Whereas I’m building my web site. I do not want an end user to use that software. It is not the goal explicitly. But you’re building software that is intended for end users. You now have a pattern to follow where if someone else comes along with the same goal and build something, they work together. And so I think in order to reach the goal of people can just use this stuff out of the box, we need more people building tools that are intended to work out of the box for people on the same stacks. And four years ago, if you had come around and started this thing, there wasn’t a pattern to follow to make that work across implementations. And there is now, because of the work over the last four years, since 2014, of formalizing these specs, and having that actually hardened.

    Tantek: And we also did it the hard way.

    Aaron: Totally.

    Tantek: We tried to do each spec as its own little building block piece. I would say hard but honestly I think greater chance of long-term success. The traditional approach that architects take is the stack approach or platform approach where they figure out the entire API. The whole thing. If you look at how OStatus happened, or even like ActivityStreams and ActivityPub. That’s very much a “we’re going to solve the whole problem”. And then we’ll iterate that whole big thing and then it turns out that’s both really hard to do and once again you end up with the problem that there’s only a handful of people that can implement it.

    Aaron: And also I think more importantly that also has the problem of: if you realize there’s a mistake in it, then you have to essentially throw out the whole thing and make a version 2. And Microformats is a good example is this evolution. Microformats 1 vs. Microformats 2… they’re completely incompatible. They don’t work the same way, but you can still send a Webmention with Microformats 1 markup and it works. Webmention doesn’t have to change. So people build out Webmention tools and infrastructure, the thing on top of that is the Microformats to make it actually look good and make a comment work. Microformats can change and evolve, and Webmention doesn’t have to evolve. Whereas when you end up with a monolithic stack, if you’re like, “oh crap, we don’t like the things we decided for this layer in the stack.” We can’t just swap out that layer because then the whole stack breaks. That’s part of why the approach we’ve taken is harder, because you have to treat each one independently and evolve each one on its own schedule. And they all have their own change-control process.

    Tantek: It looks more chaotic.

    Aaron: Yeah, and it is little more overhead in terms of: each spec has its own document and test suite that is for each one specifically. But I do think that’s the better approach for a longer term success.

    Aaron: We’re essentially entering this third phase of now we have stuff, we need the tools built on it, but we also don’t want to then four years from now turn around and say to everybody who’s built these tools, “oh, we’ve changed now, we’ve decided that we’re going this whole different approach and redo all your stuff.” No, we want to make sure that those are all based on ideas that are technically proven and easily swappable in small pieces if you need. But if we were to suddenly say, “we decided that Webmention doesn’t work and we need a third parameter and go fix Micro.blog.” You’d be like, “well crap, now what, do I do that, do I abandon it, break interop and continue iterating on my own product?”

    Tantek: The other big thing that happened is that we expanded greatly in Europe. International. I think that really started with… was it 2013, the first Brighton IndieWebCamp? We’re looking to try to scale it beyond — and we’ve done this somewhat in Europe — but I think we want to see more of it. The things in the community running and people running IndieWebCamps and Homebrew Website Clubs without needing to even check with Aaron or me.

    Tantek: I would be happy to help out as a guide or mentor more than a leader in that respect. And I think that’s the way we’re going to keep scaling it. And in the next 4 years, I would like to see us in more countries. I would like to see us reach more diverse populations. Maybe people that aren’t just in the tech crowds, but people that are not earning as much money, right? Everyone has a phone number supposedly. No matter what you’re earning or not. And I even hear from developers of new services that kids just use SMS, they don’t even want to deal with email. And so people doing new apps have purely SMS-based sign-up flows and all that. So there’s definitely opportunities to reach — to keep innovating and figuring out how can we reach even a broader set of folks in that regard.

    → 3:59 PM, Jul 8
  • New tagmoji on Micro.blog

    I’ve updated the Discover emoji on Micro.blog to add several new topics:

    • breakfast: 🍳 🥞 🥓
    • racing: 🏎️ 🏁
    • cricket: 🏏
    • guitar: 🎸
    • knitting & crochet: 🧶
    • travel: 🗺✈️

    The /posts/discover API for Micro.blog apps has also been updated. It now returns the emoji that Micro.blog is currently tracking, and whether it’s one that is “featured” in the default popup menu in Micro.blog on the web. Since many of the emoji are seasonal, like sports, we can rotate out the default list throughout the year. (The iOS and macOS apps will be updated later to more closely match the web version of Micro.blog’s topics popup menu.)

    → 11:08 AM, Jul 8
  • Referencing photos in Hugo themes

    Greg Morris has imported his WordPress posts to Micro.blog hosting and had a question about referencing photos in a template:

    Card previews I really want to be able to solve - does anyone know how to pull an image out of a hugo post in order to put meta property=“og:image” into the head?

    Micro.blog uses Hugo themes because they are fast and there’s so much flexibility to customize them. To test this, I created a theme and edited the layouts/partials/head.html template, adding this somewhere along with the other meta tags:

    {{ with .Params.images }}
      {{ range first 1 . }}
        <meta property="og:image" content="{{ . }}">
      {{ end }}    
    {{ end }}

    This looks at the photos on a post and takes the first one, adding its URL to a meta tag. If instead of the original photo you want to include a smaller thumbnail, you can use Micro.blog’s special photos.micro.blog resizing proxy. Here’s an example to include a 300x300 thumbnail:

    {{ with .Params.images }}
      {{ range first 1 . }}
        <meta property="og:image" content="https://photos.micro.blog/300/{{ . }}">
      {{ end }}    
    {{ end }}

    I still want to add more built-in designs, as well as add design settings so that custom themes aren’t necessary for common features. But there’s a lot of power here to make your blog whatever you want it to be.

    → 11:13 AM, Jun 26
  • Sticking to the mission statement

    Micro.blog’s goal is to encourage more people to post to their own blogs instead of only on big social media sites, and to have a great community where conversations can happen from those posts. The goal is not to completely replace any specific social network, but instead to help the future be a little more decentralized, with more variety and independence in the web. Important changes are possible if we don’t concentrate so much of the web’s content only on Facebook and Twitter.

    I’ve been happy to see so many people who have found that Micro.blog does supplement existing social media so well that they can spend more time blogging, browsing the Micro.blog timeline, and participating in conversations. Other folks will jump in to Micro.blog from time to time, but might have most of their attention elsewhere, and that’s fine too.

    Facebook’s mission is different. They want to connect everyone in the world. Billions of people writing posts and sharing photos on a single domain name. Mark Zuckerberg talks about this often. Sure, some great things can happen when you do that, to bring people closer together, but also terrible things. The trade-off is not worth it.

    Micro.blog leaves certain features out on purpose because adding those features risks changing our mission from what it is to what someone else’s mission is. We do want the community on Micro.blog to keep growing so that it’s more diverse and valuable to people, and for many more people to start new blogs that we can host on our platform. We can do that while staying true to our original goals and not falling for the trap of trying to become the next Facebook or Twitter.

    → 9:56 AM, Jun 21
  • Facebook content moderators

    I don’t even want to link to that story by Casey Newton at The Verge because it’s so disturbing and tragic. I read the whole thing because as the founder of Micro.blog, where we value the balance between content ownership and curation, I had to understand what Facebook is doing so we don’t repeat the same mistakes.

    Social networks like Facebook (and Twitter) are designed to reward the sensational video. The timeline algorithm, “like” counts, and quick re-sharing all contribute to surfacing both the best and worst content. Whatever drives engagement.

    Facebook is right to hire thousands of content moderators. But they should be real employees with healthy working conditions, not people who Facebook feels no responsibility to take care of. This is the most damning article I’ve ever read about Facebook.

    → 11:01 PM, Jun 19
  • 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.

    → 1:19 PM, Jun 18
  • Musicians on Micro.blog

    Jacob Gorban started a new site for musicians to connect on Micro.blog. From the about page:

    I had the idea for this list because I’ve had quite a few inspiring music-related discussions on Micro.blog and I wanted to make it easier for musicians to find each other on the service, to facilitate even better discussions and maybe even some collaborations.

    Jacob has been posting videos of playing guitar to his blog and on YouTube. Even if you’re not a musician, also check out @JustGoodMusic, a new blog about music from John Philpin, with posts from Jacob and others.

    → 10:51 AM, 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.

    → 8:43 AM, Jun 18
  • Micro.blog for macOS version 1.9

    Micro.blog has been updated on the Mac. Here are the changes:

    • Added new Open option when clicking a post to open it in your web browser. Useful for copying the link or viewing the post on the author’s blog.
    • Added icons for Reply, Favorite, and Conversation.
    • Fixed error reporting when posting fails and during timeline loading.
    • Fixed photo compression to be more consistent across Micro.blog platform.

    I tried many different UIs for this before settling on “Open”, including a share menu to match iOS. Nothing felt right. By adding icons for all the options, I could make “Open” use the default web browser’s icon, which helps convey what will happen. (It uses stylized versions of Safari, Chrome, or Firefox icons.)

    Choose “Check for Updates” or grab the latest version from the download page.

    → 8:48 AM, Jun 10
  • Book progress and interview

    Today I sent the following update to Kickstarter backers. I wanted to give everyone a progress update on writing the book, and a reminder about some of the new stuff in Micro.blog.

    When I launched the Kickstarter for Micro.blog, I promised to write a book about independent microblogging. For the last 2 years Micro.blog has needed most of my attention, but as the platform has grown and matured, I’m finding more time to work on the book.

    The book is not a simple how-to for creating a microblog. That is part of it, but we already have a help site with tutorials on microblogging. The book is also a history and guide for taking back social networking from massive platforms.

    I have been repurposing draft sections of the book to my blog as posts. One of the latest is about open gardens — how we can think about the role of curation in social networks.

    There are also interviews in the book. I sat down with IndieWeb co-founders Tantek Çelik and Aaron Parecki to talk about the first IndieWebCamp conference and new challenges, recording the full conversation. Today I have been working on transcribing it.

    If you haven’t kept up with Micro.blog news, we were just covered last month in an article by Cal Newport for The New Yorker. And we’ve added many new features, from video hosting and blog categories to custom themes based on Hugo.

    No one said that it would be easy to provide an alternative to Twitter and Facebook based on the open web, encouraging thousands of new bloggers in the process. It has been years of really hard work, with more to do.

    If you still believe in the mission of Micro.blog, I would love your support. Fire up the Micro.blog app if it has been a while, dust of your blog, upgrade to a paid subscription, and let us know what we can improve next.

    Thanks as always.

    → 12:45 PM, Jun 7
  • 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.

    → 9:24 PM, Jun 6
  • Sign In with Apple

    This is one of the most interesting announcements from WWDC for me. Aaron Parecki wrote a detailed technical post for Okta about it, as well as a post on his blog:

    Sign In with Apple is a good thing for users! This means apps will no longer be able to force you to log in with your Facebook account to use them.

    There are also 2 sessions at WWDC: Introducing Sign In with Apple and What’s New in Authentication, Safari, and WebKit.

    I plan to support Sign In with Apple in Micro.blog. We don’t have passwords, and we require verifying an email address before setting up your account on Micro.blog, so using Sign In with Apple should make the initial sign up go more smoothly. It could also be an option for existing users who need to sign in again and don’t want to wait for the confirmation email.

    Ben Thompson covered more about sign in on Stratechery this week:

    Apple is going to leverage its monopoly position as app provider on the iPhone to force developers (who use 3rd party solutions) to use Sign In With Apple. Keep in mind, that also means building Sign In With Apple into related websites, and even Android apps, at least if you want users to be able to login anywhere other than their iPhones. It was quite the announcement, particularly on a day where it became clear that Apple was a potential target of U.S. antitrust investigators.

    I’m generally against the App Store review guidelines becoming even more restrictive. I’d rather developers choose to adopt Sign In with Apple because it’s better than using Facebook and Twitter rather than be required to do so on Apple’s schedule. But in this case, I think the end result will be positive.

    People often ask me how we “win” against the big social networks, bringing more open platforms and indie blogging to everyone. It happens in small steps, not overnight. Sign In with Apple can be one of those small steps. Anything that moves people away from signing in with Facebook and Twitter is part of the solution.

    → 12:14 PM, Jun 6
  • 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.

    → 12:44 PM, Jun 4
  • Open gardens

    In technology, the walled garden is a platform where one vendor controls distribution. If you want to make an iPhone app, your only choice is for Apple to approve it and sell it in the App Store. If you want to send a tweet, your only choice is to register on Twitter’s platform.

    Walled gardens like the App Store are user-friendly and developer-hostile. They take power away from independent publishers and put it in the hands of gatekeepers. The problem is exclusivity: there is only one gate, and those stuck outside are unable to distribute the same content. You can make Android apps, but not iPhone apps. Nothing exists outside the walls that closely resembles what is inside.

    Twitter is also a walled garden. Like the App Store, it is a closed platform with proprietary formats and a limited API. The difference is that Twitter’s garden is poorly curated and full of weeds. The walls are in such disrepair it’s hard to even tell where they are.

    Mike Monteiro emphasized this frustration in a post about the problems facing Twitter’s leaders. He talked about meeting in person with Jack Dorsey:

    We discussed Twitter’s role in the world stage. And I admired his vision, but feared his approach. Jack, and to an extent Twitter’s pet porg Biz Stone, have always believed that absolute free speech is the answer. They’re blind to the voices silenced by hate and intimidation. The voices that need to be protected. But anyone who’s ever tended a garden knows that for the good stuff to grow, you have to deal with the bad stuff. You can’t let the weeds choke the vegetables.

    The issue isn’t that Twitter doesn’t care. It’s instead a design flaw in the platform. Because tweets don’t exist outside of Twitter, when you’re banned from Twitter, you need to start over with a new format or on a new social network. For this reason, and because their business depends on a large user base, Twitter is hesitant to throw anyone off their service. They’re unwilling to tend the garden for fear of pulling too many weeds.

    It doesn’t matter who is guarding the walled garden’s gate if increasingly no one wants to go inside. So there’s a better word than “gatekeeper” to describe what we’re really after in building a great community-focused platform. It’s “curator”. Someone who is responsible for maintaining the best experience for users.

    The answer to a walled garden is not to create a platform without rules. It’s not outsourcing decisions to algorithms, with recommended users and topics that can be gamed or lead new users astray. That’s not enough for the challenges brought to us by massive, ad-based social networks, where fake news and hate can spread quickly.

    We need a new approach. Not controlled only by algorithms, but also not a walled garden that limits distribution of content. We need a system that prioritizes curation while preserving the freedom to publish outside of silos, with APIs based on the IndieWeb that are open by default instead of locked down with developer registration.

    I think of this as an open garden. It’s an open platform that also cares deeply about maintaining a healthy environment. Outside of the garden, the soil is the same and the same plants can grow, and you are free to copy flowers and trees from inside the garden and cultivate them yourself or let them grow wild. But inside is well-curated. Inside strives to be a high quality, safe environment.

    In my Kickstarter video for Micro.blog, I talked about this for social networking and blogs:

    If we start to separate the publishing from the social network, it unlocks something. It empowers writers to feel like they own their work, even if that’s short posts. And it frees social networks to build a safe community, without worrying about censorship, because no matter what the networks do you can always post to a site with your name on it.

    The fundamental problem in walled gardens like the App Store and Twitter is that they are closed. If they open up, they could in fact double-down on curation. There would be no need to loosen their quality standards because there’s an easy path to publishing without review by using the open web.

    I first wrote about this in 2014 in the context of learning from Beats Music. For Apple to deemphasize their algorithmic top 200 lists in the App Store they would need to focus on curation. Here’s what Beats was doing:

    Instead, they have a bunch of people — musicians and writers who deeply care about music — curating playlists. The top 25 playlists in a genre are so buried in the app that I had to search them out just to write this blog post, because they seem to carry no more weight than any other playlist. Much more common are playlists like “our top 20 of 2013”. That’s not a best-selling list; it’s based on real people’s favorites.

    After Apple acquired Beats Music, they brought some of those curation lessons over to Apple Music, and later redesigned the App Store with more featured apps and stories. There is only so much they can do, because the foundation of a walled garden is difficult to change.

    Twitter has likewise created an environment that ties their hands on curation, with discovery driven by trending hashtags and retweets. And for each rare time a popular account is banned for hate speech, there are still thousands of trolls who are making life miserable for users. Because there is no alternative, Twitter must allow nearly all content on their service. Because it exists apart from the open web, Twitter must give its worst users too much leeway before banning their account.

    The open garden solves this problem. It’s the same web inside a platform like Micro.blog as on the rest of the internet. By adopting open standards but also drawing a line across which we can apply community rules, it’s possible to build features that protect users.

    By encouraging the use of personal domain names, when Micro.blog does need to ask a member of the community to leave for violating our guidelines, that blogger can take their domain name and content with them, continuing to post to their own blog but blocked from interfering with the community. The curators of the platform have more freedom to block harassing posts because those problematic users can retreat to their own web site and leave everyone else in the community alone.

    To summarize:

    • Open gardens have curators instead of gatekeepers.
    • Open gardens use standards so that the same formats exist inside and outside the platform.

    This is only possible by embracing the open web. I believe it’s an important part of the way forward for all great platforms.

    → 5:48 PM, Jun 2
  • The Weekly Listen and podcasting workflow

    Love this new podcast from Joe Cieplinski. It’s a great example of trying something new with a short-form microcast. The first episode is really well edited, with everything from recording to publishing entirely on iOS:

    Edited in Ferrite on iPad Pro with Apple Pencil. Show notes composed in Drafts. Published with Wavelength. No Mac involved. Micro.blog handles all hosting and publishing to the feed.

    Seeing this kind of thing is exactly why we added podcast hosting to Micro.blog. There are a lot of people out there with a story to tell or a new way to tell it. It should be easy and inexpensive to start a podcast that you own, with your own domain name, that works with open standards.

    → 4:21 PM, May 31
  • Unattended algorithms

    Neil Stephenson has written a new book. In an interview with PC Magazine, he talks about the problems with social media:

    We’ve turned over our perception of what’s real to algorithmically driven systems that are designed not to have humans in the loop, because if humans are in the loop they’re not scalable and if they’re not scalable they can’t make tons and tons of money.

    I think more social networks should do things that don’t scale, prioritizing safety over profit. For example, in Micro.blog the featured posts in Discover are curated by humans instead of algorithms.

    Significant parts of Facebook and Twitter run unattended. There was more pushback against Facebook last week after they refused to remove the edited Nancy Pelosi video, choosing instead to try to educate users that the video was fake. Monika Bickert, Facebook’s vice president of global policy management, went on CNN to defend their decision. She described how Facebook works with fact-checking organizations to independently confirm whether something is accurate:

    As soon as we get a rating from them that content is false, then we dramatically reduce the distribution of that content, and we let people know that it is false so they can make an informed choice.

    I signed in to Facebook to try to understand what they had done. I actually had trouble finding the video at first, maybe because none of my friends on Facebook had shared it. Searching for Nancy Pelosi did include Facebook groups such as “Nancy Pelosi is Insane” and “Americans Against Nancy Pelosi”, featured prominently in the search results. I finally found the video, but there was no callout that it was fake. (The version I saw was captured with a camera pointed at the video playing elsewhere, likely confusing Facebook’s algorithm for finding an exact copy of the video.)

    Facebook is trying to solve this problem, but it’s a band-aid on a system that is working as designed to surface “relevant” content for more ad views. It’s not enough.

    → 6:06 PM, May 26
  • 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.

    → 11:52 AM, May 25
  • More on The New Yorker

    I linked briefly to The New Yorker article by Cal Newport over the weekend, but wanted to add a few more thoughts. The article really does a great job of capturing what the IndieWeb movement is about, and Micro.blog’s role in it:

    Even as it offers a familiar interface, though, everyone posting to Micro.blog does so on his or her own domain hosted on Micro.blog’s server or on their own personal server. Reece’s software acts as an aggregator, facilitating a sense of community and gathering users’ content so that it can be seen on a single screen. Users own what they write and can do whatever they want with it—including post it, simultaneously, to other competing aggregators. IndieWeb developers argue that this system—which they call posse, for “publish on your own site, syndicate elsewhere”—encourages competition and innovation while allowing users to vote with their feet.

    As we’ve been consistently chipping away at Micro.blog bugs and features, moving the platform forward, I’ve always thought that eventually Micro.blog will get mentioned in the larger narrative about social networks from the mainstream press. We can’t control when we get noticed. We just have to be ready when it happens.

    It’s great to see all the new folks joining Micro.blog! Whenever someone new has feedback, I’m reminded what we can improve so that the experience is better for the next person.

    There’s one sentence in Cal Newport’s article that I keep going back to:

    The Internet may work better when it’s spread out, as originally designed.

    I have no doubt that this is true. It’s okay to have centralized services to make things easier for people, because it’s too much to expect that everyone should run their own server. The web can be “spread out” on multiple layers: a more diverse set of platforms, so that not all the power is concentrated in a couple massive platforms like Facebook; and more personal domain names, so that even if Micro.blog hosts 1000s of blogs, each one has its own identity on the web and can be moved.

    Domain names are the key to content ownership. This is a fundamental part of Micro.blog’s architecture, not something that was tacked on as an afterthought. I’ve written more about owning your content here, which is one part of the solution to moving beyond today’s social networks.

    → 9:22 AM, May 20
  • The fastest way to blog

    Advertisements often make broad claims that their products are the “best” or “easiest” or “most popular”. These statements are impossible to prove, and I think make the marketing weaker because they sound like an exaggeration.

    We’ve redesigned the Micro.blog home page for new users, to better explain what Micro.blog actually is. I wanted to emphasize that it is both a blogging platform and also a great community, as well as highlight who our team is.

    As a sort of tag line, I wrote that Micro.blog is “the fastest way to blog”. I like describing it in terms of speed because it also implies ease of use. If it’s simple and fast, more people will blog. Micro.blog is the blog you will actually use.

    But is it true? I’ve used many blog platforms over the years, and I can’t think of one that is faster to go from idea to starting a post to publishing it. In the native Micro.blog app for macOS:

    • ⌘-N to start a new post.
    • Type something.
    • ⌘-return to publish.

    It’s the same basic workflow on iOS and the web. By default, you don’t need to worry about a title field or categories or any other UI getting in the way. This focus on simplifying blogging means there’s no tabbing or clicking around unless you need more advanced features.

    There is still a lot we can improve, especially how quickly a post shows up in the timeline after publishing it. I just tweaked that today. By stating up-front that performance matters, it’s a constant reminder to make everything faster. But in terms of the workflow of drafting a new post, I think Micro.blog has a clear advantage.

    → 1:48 PM, May 17
  • 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.

    → 2:21 PM, May 16
  • Saying goodbye to Tweet Marker

    I introduced the Tweet Marker API in 2011. In the 8 years since, I’ve been lucky to have the support of some of my favorite apps like Twitterrific and Tweetbot, plus popular Android apps, with some developers paying a monthly subscription to help keep the service running. But while Tweet Marker hasn’t changed recently, the Twitter world has changed.

    Twitter previewed the next version of their API this week. I don’t see anything so far to contradict what I wrote last year.

    I believe strongly that URLs shouldn’t change, and that public APIs shouldn’t just disappear. Owning your content and having your own domain name are important parts of Micro.blog too. So I was committed to running Tweet Marker indefinitely, regardless of what Twitter might do.

    But two other factors were nagging at me:

    • GDPR made me take a fresh look at some of the assumptions in the Tweet Marker API. Changes are overdue. They aren’t simple and would require coordination with client developers.
    • Twitter’s third-party ecosystem has changed a lot since Tweet Marker was created. Twitter apps have a very uncertain future. Timeline syncing is often handled without Tweet Marker, such as via iCloud.

    Tweet Marker’s time has come and gone. I’ve notified developers using the Tweet Marker API that I plan to wind down the service by July 1st. I’ve also cancelled all the paid subscriptions. (Actually I haven’t billed anyone in over 6 months, so I’ve been running the service for free.)

    Daniel Jalkut and I talked about this back in December on Core Intuition 353. I plan to work on Micro.blog for the next 20 years or more, so it needs all of my attention.

    Over a million people have used Tweet Marker. I’m proud of that. If you’re one of those people, especially if you supported Tweet Marker as a developer or with a subscription, thank you.

    → 1:51 PM, May 15
  • Bokeh on Kickstarter

    Bokeh will be a new private-by-default photo sharing app from Tim Smith, on Kickstarter now:

    Bokeh will be ad-free, have a chronological timeline, and will be private by default. That means that all accounts will start off as private. Public accounts will have an RSS feed, will have the option to cross-post to other social networks, and will support custom domains. All accounts will have an indie web compatible export so you can self-host if you want to.

    Tim has been active in the Micro.blog community from the early days of the platform, and I’ve talked to him about Bokeh leading up to the Kickstarter. I think there is a lot of potential for parts of Bokeh to be compatible with Micro.blog. There is some overlap with what we’re doing with Sunlit, but as I’ve written about, more smaller social networks that can work together is a good thing! I’ve backed it on Kickstarter.

    → 9:18 AM, 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.

    → 8:36 AM, May 6
  • More pushback on Netflix for podcasts

    We know that of course you can’t watch a Netflix-exclusive show on Hulu or Amazon Prime Video. But wouldn’t it be great if you could? With the current open podcast ecosystem, that’s exactly what we have: any show from any network can be played in any podcast client by default.

    You might think with my attack on Luminary that I don’t want big companies to succeed with podcasts, but that’s not it. There’s nothing wrong with trying to make money off of podcasting. I just think it’s possible to make money by working within the podcast ecosystem instead of against it.

    Here are several great ways to monetize podcasting that preserve and even strengthen how podcasts work:

    • Start your own podcast (or multiple shows on your own podcast network) and build an audience. You’ll then be able to accept sponsors or memberships.
    • Offer an easier way to produce and host podcasts. This is what we’ve done with Micro.blog. For $10/month, we’ll host MP3s at your own domain name and give you a podcast feed. Plus we have a companion iPhone app called Wavelength just for recording podcasts on-the-go.
    • Help smaller podcasts with a variety of tasks they don’t have time for, like finding sponsors or editing episodes.
    • Build a membership platform to make it easier for podcasts to be supported directly by listeners with subscriptions. While the user experience for members-only podcasts is not great yet, it is possible to create private podcast feeds that work in many different podcast clients.

    And here’s a way to monetize podcasting that will weaken the ecosystem:

    • Leverage the popularity of podcasts by creating a proprietary distribution model with exclusive shows. This requires redefining what a podcast is to include shows that do not have an RSS feed. If you do this, do not call what you’re doing a podcast.

    As I wrote in my blog post about Substack:

    If we accept calling “any audio on the internet” a “podcast”, we undermine what makes a podcast unique: not just the convenience of delivering audio directly to your device, but the openness that ensures that podcasts work in a variety of players, without a single company with too much control trying to lock down the format.

    Companies like Luminary and Spotify will most likely fail to dominate podcasting because listeners want to use their favorite podcast client to listen to podcasts. Try explaining why your exclusive “podcasts” don’t play in Apple’s app called “Podcasts”. But if someone does succeed in creating a “Netflix for podcasts”, it could eventually lead to a couple major problems:

    1. An aggregator on the scale of Facebook or YouTube could emerge for podcasts.
    2. The market could become fragmented like it is for video streaming services.

    If either of those things happen, we will all be much worse off. (For more arguments along these lines, check out episode 323 of the Accidental Tech Podcast.)

    → 5:22 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.

    → 4:10 PM, May 2
  • Pushing back on the effort to redefine podcasting

    John Gruber has a great post on Luminary and the trend of companies trying to redefine what “podcast” means. It’s not a podcast if there’s no RSS feed and it can’t work in multiple client apps:

    Being client-agnostic is the spirit of the open internet, and I think it’s implicitly part of being a “podcast”. Openness was certainly part of how podcasting came to be.

    Substack is another company that initially tried to ride the popularity of podcasts by calling their audio in email newsletters a “podcast”. I wrote about it here. I’m happy to notice that as of this week, Substack has real podcast support by adding private RSS feeds for newsletter subscribers. That’s the right way to go and now their audio shows work in any podcast client.

    We do not need the “Netflix of podcasts”. Anyone can create and distribute a podcast — even Micro.blog has support for podcast hosting and a simple app for recording and publishing podcast feeds that work anywhere — so it would be a step back for the industry if a single company tried to control distribution.

    → 9:13 AM, Apr 26
  • Penn Station in The New York Times

    The New York Times has an article today about demolishing Penn Station, full of incredible old photos:

    With its swarming crowds and dust motes dancing in shafts of smoky light, the station was catnip to midcentury photographers, filmmakers, artists and architects. It was the architectural embodiment of New York’s vaulted ambition and open arms.

    In 2016, I wrote a blog post on applying the lessons from Penn Station to the open web and podcasting. It’s still one of my favorite recent posts.

    → 2:40 PM, Apr 24
  • Smaller companies and regulation

    Following Jeffrey Zeldman’s article about the open web, Ben Werdmuller has a great post about how we shouldn’t care so much about startup unicorns, using Micro.blog as an example of another type of business:

    Zeldman looks to Micro.blog as a potential answer. It’s a great company that could point to what a more general solution could look like, but not specifically because it works with the indieweb. Instead, it’s worth examining how it’s financially structured. Rather than a unicorn, it’s a zebra.

    It would be great to have more small- and medium-sized companies that can move the web forward. They can innovate while still being grounded in somewhat boring business models. It matches one of my points here that we need multiple social networks that interoperate via the web instead of just a couple of huge platforms.

    There’s a difference between companies that are paid for directly by users and massive ad-based networks. Ben Thompson outlines this in an article about regulation, arguing that the super-aggregators like Facebook require government intervention, where other companies that are better aligned with users' interests can be “regulated” by the market:

    I think, though, that platform providers that primarily monetize through advertising should be in their own category: as I noted above, because these platform providers separate monetization from content supply and consumption, there is no price or payment mechanism to incentivize them to be concerned with problematic content; in fact, the incentives of an advertising business drive them to focus on engagement, i.e. giving users what they want, no matter how noxious.

    I’ve been thinking about Ben Thompson’s essay a lot since he published it a couple weeks ago. Micro.blog is a small part of the puzzle — and it’s a puzzle piece of a different shape that doesn’t fit cleanly into Ben’s diagram around free services — but I think it’s an important part to focus on.

    → 1:09 PM, Apr 24
  • Time-lapse videos

    I’ve been having fun posting short videos to my blog now that Micro.blog makes it easy. You can see the recent videos on this category page.

    And it has been great to see what other people come up with. For example, I love these time-lapse videos: the clouds moving above Fort Tryon Park in New York City from Joe Cieplinski, and this beautiful one of Ha Long Bay in Vietnam from Jordon Wadlington. I sometimes forget that my iPhone camera has a time-lapse feature, and now I’ll be looking for an excuse to use it.

    → 11:12 AM, Apr 24
  • Craig Mod's walk in Japan

    While on a 6-week walk from Tokyo to Kyoto, Craig Mod is disconnecting from social media and instead posting to “followers” using SMS:

    What do I mean by “use the network to publish without being used by it?” On most services — Twitter, Facebook, Instagram, etc — in order to publish something you must stare into the maw of its timeline, resist whatever the algorithm has queued up for you, and then, if you’ve remembered what you were going to publish, publish.

    At the end of the journey he will collect the photos and comments in a book. I think this could’ve worked as a microblog as well, because then users joining late could read previous posts in the series, but it’s a fascinating use of SMS.

    → 10:42 PM, Apr 23
  • MacStories 10-year anniversary and pre-quadrant Twitter

    Congrats to Federico Viticci and the MacStories team on 10 years of MacStories. To appreciate how long ago this was, I re-read Federico’s interview with me from 7 years ago. This was 3 years after his first post but the content feels like a lifetime ago.

    I really like this interview because I think it captures that time on the App Store and as a Twitter developer. We talked about iOS 5 user interface design, my early indie apps before starting Micro.blog, but also a few things that are still relevant today, like using the iPad for real work and app pricing.

    Most importantly, it was a few months before Twitter’s infamous 4-quadrant chart that would set in motion Twitter’s move away from third-party developers. My priorities changed significantly after that, eventually leading to Micro.blog.

    → 11:01 AM, Apr 17
  • Multiple windows on iOS

    We all expected Dark Mode in iOS 13, but according to this rumor from 9to5Mac, the next major version of iOS is also going to feature some major changes to windows and detachable sheets:

    There are many changes coming to iPad with iOS 13, including the ability for apps to have multiple windows. Each window will also be able to contain sheets that are initially attached to a portion of the screen, but can be detached with a drag gesture, becoming a card that can be moved around freely, similar to what an open-source project called “PanelKit” could do.

    We also get an answer to one of the questions Brent Simmons asked about split views:

    Split Views on Marzipan apps based on iPad designs that run on the Mac will get the ability to be resized by dragging the divider and have their position reset when double-clicking the divider, like existing Split View apps on the Mac.

    I hope that support for multiple windows maps over to macOS with Marzipan. We’ve been saying on Core Intuition that this WWDC is going to be special. Marzipan is the biggest shake-up to the Mac since the Carbon to Cocoa transition.

    → 10:30 AM, Apr 15
  • Zeldman on the IndieWeb

    There’s a fantastic article by Jeffrey Zeldman in A List Apart this week, starting with the problems of venture capital-backed social networks and ending with the question of whether we can help fix the web:

    On an individual and small collective basis, the IndieWeb already works. But does an IndieWeb approach scale to the general public? If it doesn’t scale yet, can we, who envision and design and build, create a new generation of tools that will help give birth to a flourishing, independent web? One that is as accessible to ordinary internet users as Twitter and Facebook and Instagram?

    I believe strongly that the answer is “yes”. Brent Simmons also responds, using the example of how even focused apps like RSS readers can move things forward without needing to solve all the problems at once:

    Do I claim it’s as accessible to ordinary internet users as Twitter (for instance)? I do not. But it’s the step forward that I know how to take.

    This is a great attitude. There are steps forward that we can all take individually, from leading the way by blogging more ourselves, to building tools for others to use. Together these steps add up to something significant that really matters.

    It has been very encouraging to watch the Micro.blog community grow and new people regularly post to their own blog first instead of the big ad-based social networks. Seeing so much progress — but also knowing how much more work there is still to do — gives me a lot of hope for the future of the web.

    → 4:10 PM, Apr 12
  • Instagram videos to Micro.blog

    If you’re still using Instagram but want to copy your photos and videos to your own microblog, a great solution is OwnYourGram. This is a free service that checks your Instagram account for new photos and videos, then sends them to your microblog automatically. Along with video support in Micro.blog, we’ve also improved support for videos from OwnYourGram.

    First, make sure you’re on the podcast + video hosting plan on Micro.blog. For $10/month, we’ll host audio and video for you in addition to photos, and generate a podcast feed for you if you ever want to start a podcast later. You can upgrade here.

    Next, follow the instructions on this help page for setting up your Micro.blog account so that it works with Instagram. This just means telling Micro.blog about your Instagram username, and telling Instagram about your microblog.

    You can use OwnYourGram to send a specific video from Instagram to Micro.blog to test that everything is working. After that, OwnYourGram will check Instagram for new photos and videos and send them to your microblog. Photos and videos on Micro.blog are real blog posts, so you can always edit the posts later after they are created automatically.

    → 10:09 AM, Apr 10
  • Peers Conference New Orleans wrap-up

    Last week I drove to New Orleans for Peers Conference. It was a bit of a whirlwind because we also released video support in Micro.blog and updated 3 of the apps, which I knew might be a little too much to attempt to do while traveling. In fact, we did miss a couple bugs and updated Sunlit the next day, and a new Micro.blog iOS update will follow this week with more improvements.

    I had a great time in New Orleans. The drive from Austin is 8+ hours, but I took even longer to make sure I had enough breaks from driving, for lunch and coffee and catching up on work. I took a few photos which I’ve collected together using Snapthread here to share as a short video.

    On the way I stopped at Goodthrough Coffee in Houston, then at the visitors center in the Atchafalaya Basin in between Lafayette and Baton Rouge, and then caught a rainbow as the rain cleared along the Mississippi River before cutting across highway 30 to I-10 and New Orleans

    Peers Conference itself was great. Though it’s traditionally a web conference, this year leaned more toward business so the sessions were exactly what I needed to hear. It rained a bunch. Early Friday I settled in at Stumptown Coffee to work on Micro.blog. I didn’t end up seeing much of the city, but had a chance to walk around Jackson Square between sessions and there were great conversations in the evening over beers with fellow attendees.

    Saturday I had breakfast at Merchant around the corner from the hotel and then hit the road back to Austin, stopping for lunch at a hotdog place in Lake Charles, Juiceland near a biking trail in Houston, and mostly missing the rain that had also drenched Austin until I was close to home. It was a long day but very glad I made the trip.

    → 12:20 PM, Apr 8
  • 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
    → 1:44 PM, Apr 6
  • Video hosting in Micro.blog

    We’ve updated Micro.blog today with a big feature: video upload to your microblog. The iOS and macOS apps — as well as our iOS app for photos, Sunlit — have all been updated to support video.

    Video upload and storage is based on our podcast hosting plan. If you’d like to post video, you can learn more and upgrade here. Just like podcasts, video hosting is designed for short videos, from a few seconds to 1-2 minutes. Each video should be 45 MB or less, but there’s no limit on the number of videos you can upload, and videos are stored at your own domain name.

    We are very excited about this and can’t wait to see how people use it. Now that we have this foundation for video, I’m looking forward to expanding it based on feedback. I think there’s a lot we can do. (There were also a couple of last-minute bugs with playback on iOS… We’ll get those fixed soon.)

    → 12:02 PM, Apr 5
  • Connected quotes about Apple News

    There’s no shortage of opinions about Apple’s services-related event this week! I’ve listened to a few podcast episodes, and of course I had my own thoughts on this week’s Core Intuition and a separate blog post about News+.

    My favorite discussion about News+ so far has been the latest episode of Connected. They talk about the good things Apple brings to this, but also the downsides.

    Federico:

    I was asked by someone on Twitter, do you plan on putting Club MacStories on Apple News+? The answer is a huge no.

    Myke:

    Literally every single person who subscribes to Club MacStories would cancel because they’re all users of Apple products!

    Federico:

    There’s always a cost to adopting a new platform. There’s a technological cost, and there’s an actual cost. And for me, it’s not worth it to rewrite my — what we do for Club MacStories for Apple News format — but it’s also not worth it to lose the money that I’m making from the service that I control.

    Federico’s point here gets to the key issue with these aggregation platforms, whether it’s News+, Facebook, or the App Store. When you give up control over distribution, you also give up control over revenue. With publishing on the open web, there’s always an alternative: your own domain name and your own subscribers. (For the App Store, there’s no choice.)

    Back to the episode…

    Stephen:

    I still don’t love how closed off News is. Like on the Mac, you just can’t get a URL to open it in a browser. You just can’t do it. You’ve got to send a text message to yourself or something. And on iOS, or really anywhere, sending content to things like Instapaper is very hit or miss. […] Apple News doesn’t play well with the web, and that’s very frustrating to me as a believer in the open web.

    Myke:

    We’re all worried about Spotify walling off podcasts. Well, Apple’s trying to do that to news. […] It’s probably good for consumers, but is it good for the industry? We don’t know yet.

    Great episode. You should listen to the whole thing, because as I said there are some points in favor of Apple News as well, and the other announcements. But the segment I’m quoting from above was particularly good.

    → 4:19 PM, Mar 28
  • New features: saved drafts on Micro.blog, updated macOS app, Tumblr import

    We’ve rolled out some more improvements to Micro.blog. For blogs hosted on Micro.blog, you can now save a post draft to Micro.blog, then come back later to edit and publish it. The macOS app has been updated with support for drafts and a new “Posts” section to make editing or searching your existing posts much easier.

    Here’s a short video of the new feature on the Mac:

    Saving drafts works on the web version of Micro.blog or from the macOS app. We’ll be updating the iOS app soon.

    You can also now import from a Tumblr blog. Choose Posts → Import to upload the export file you receive from Tumblr. Micro.blog will import any photos in the archive and add them to your own domain name hosted on Micro.blog.

    Micro.blog’s posting API has been updated with support for additional Micropub API features: retrieving a list of your own posts, marking a post as a draft, and updating the title or text in an existing post. This should make it easier for apps to support editing.

    → 2:56 PM, Mar 27
  • News+ missed opportunity

    Most of what Apple talked about today isn’t shipping until the summer or fall. Apple News+ does ship today with iOS 12.2. It’s priced at $10/month for access to hundreds of magazines and newspapers. As I posted about briefly, I’ll stick with paying The New York Times directly for now.

    Michael Tsai writes about the larger issue with Apple News:

    I continue to find Apple News to be disappointing. It’s like Apple reinvented the RSS reader with less privacy (everything goes through an Apple tracking URL) and a worse user experience (less control over fonts, text that isn’t selectable, no searching within or across stories). So the idea of content that must be accessed from the app—and likely can’t even be opened in Safari—is not attractive to me.

    I think there’s great potential for Apple News on the curation side, but the articles are too stuck inside Apple’s apps, and the cost to publishers is too high. You can tell Apple feels like they’re onto something important with Apple News. My concern is that Apple’s solution is based so heavily on what they know how to do well — let’s make everything a native app with a nice UI and leverage our massive credit card database — that they’ve missed an opportunity to solve something more meaningful for journalism and the open web.

    → 10:00 PM, Mar 25
  • Like a landlord

    Seth Godin blogs every day. Sometimes short posts, sometimes longer posts that read like they could be part of one of his books. Yesterday’s post was one of those longer posts about big, centralized platforms:

    Like a landlord who owns every building in town, Google can’t lose. A successful business in the online ecosystem is one that has a few dollars left over after giving the rest of it to Google or Facebook (or Apple).

    He’s also been on a roll with his podcast. And for more about Apple vs. Spotify specifically, I enjoyed the latest episode of the Supertop podcast.

    → 4:51 PM, Mar 24
  • Checking backups

    We sent an email to some of our Kickstarter backers yesterday, giving people a chance to check out Micro.blog again if they haven’t been active recently. The platform has improved so much in the last year. It’s possible that it didn’t meet someone’s needs a year ago but will today.

    One of the links in the email was to the 12 days of microblogging help page, which links to 12 blog posts I wrote in December to highlight how people are using Micro.blog. Unfortunately, most of those links no longer worked! I scrambled to figure out why some of the links on my blog weren’t working, finally discovering that I had broken them myself when testing the Medium.com import feature across multiple test blogs.

    In the process, I decided to pull a complete backup of Micro.blog’s database from 30 days ago and use it to fix some of my old blog posts. This was a great exercise. I check the backups from time to time, but it’s rare that I need to go over specific data by hand and actually restore anything.

    Last week, Myspace revealed that they had lost all hosted music from 2003 - 2015. I don’t think we can be too careful with the responsibility of hosting people’s blogs, so I’m glad I had this chance for a real-world test of Micro.blog’s backups. (I also recommend enabling the Internet Archive feature under Posts → Design, and occasionally downloading a complete archive of your blog from Posts → Export.)

    → 10:31 AM, Mar 23
  • New Zealand and social media

    My heart goes out to the families of loved ones at the mosques in Christchurch. After the Parkland shooting, I drafted a long blog post about gun violence but never ended up posting it. Even after editing it a few times a month later, it felt like the words or timing were always wrong.

    Over the last couple of years we’ve seen a growing backlash against social media. I won’t look for the video of this tragedy from New Zealand, and I hope I never accidentally see it. It is heartbreaking enough with words alone. Every story I read last week kept pointing back to the frustration with how Facebook, Twitter, and YouTube are not doing enough to prevent their platforms from amplifying misinformation and hateful messages.

    Margaret Sullivan of the Washington Post writes about the problems with social media leading up to and after a tragedy like this mass shooting:

    To the extent that the companies do control content, they depend on low-paid moderators or on faulty algorithms. Meanwhile, they put tremendous resources and ingenuity — including the increasing use of artificial intelligence — into their efforts to maximize clicks and advertising revenue.

    Charlie Warzel of the New York Times covers this too:

    It seems that the Christchurch shooter — who by his digital footprint appears to be native to the internet — understands both the platform dynamics that allow misinformation and divisive content to spread but also the way to sow discord.

    Nick Heer links to an article in The Atlantic where Taylor Lorenz documents how after following a far-right account, Instagram started recommending conspiracy accounts to follow, which filled her feed with photos from Christchurch:

    Given the velocity of the recommendation algorithm, the power of hashtagging, and the nature of the posts, it’s easy to see how Instagram can serve as an entry point into the internet’s darkest corners. Instagram “memes pages and humor is a really effective way to introduce people to extremist content,” says Becca Lewis, a doctoral student at Stanford and a research affiliate at the Data and Society Research Institute.

    Duncan Davidson asks: “What are we going to do about this?”

    The last few years, the worst side of humanity has been winning in a big way, and while there’s nothing new about white supremacy, fascism, violence, or hate, we’re seeing how those old human reflexes have adapted to the tools that we’ve built in and for our online world.

    I can’t help but think about Micro.blog’s role on the web whenever major social media issues are discussed. It’s almost all I think about. We feel powerless against world events because they’re on a scale much bigger than we are, but it helps to focus on the small things we can do to make a difference.

    Micro.blog doesn’t make it particularly easy to discover new users, and posts don’t spread virally. While some might view this as a weakness, and it does mean we grow more slowly than other social networks, this is by design. No retweets, no trending hashtags, no unlimited global search, and no algorithmic recommended users.

    We are a very small team and we’re not going to get everything right, but I’m convinced that this design is the best for Micro.blog. We’ve seen Facebook’s “move fast and break things” already. It’s time for platforms to slow down, actively curate, and limit features that will spread hate.

    → 12:01 PM, Mar 22
  • Sunlit 2.4 now available

    The new version of Sunlit is now available in the App Store. You can download it for free and use it with Micro.blog or to publish photos to an existing blog like WordPress.

    Why does controlling our own photos matter? As I wrote in this post about the way out of the mess created by massive social networks, having posts at our own domain names unlocks a few very important features:

    • Open standards mean interoperability with multiple tools. I can use IndieWeb tools like OwnYourGram to automatically copy Instagram posts to Micro.blog, or use traditional blogging apps like MarsEdit to upload and post photos.
    • Content ownership gives the flexibility to move photos between hosting providers. You can host on Micro.blog or WordPress or some future blogging platform without URLs breaking.
    • Smaller social networks get us away from ad-based businesses that sell our data. Because Sunlit is powered by Micro.blog, you can even follow Mastodon or PixelFed users and see their photos in the Sunlit timeline.

    I’m very excited about this release and hope you like it. It’s time to move away Instagram. If you need help importing your photos, check out this video I made about batch importing from Instagram to Micro.blog-hosted blogs.

    → 10:24 AM, Mar 20
  • 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.

    → 2:10 PM, Mar 18
  • My response to Apple's response to Spotify

    Apple responds to Spotify. Daniel Jalkut and I predicted most of this response on Core Intuition a couple days ago. I’m going to quote a few parts of Apple’s response and comment.

    Eleven years ago, the App Store brought that same passion for creativity to mobile apps. In the decade since, the App Store has helped create many millions of jobs, generated more than $120 billion for developers and created new industries through businesses started and grown entirely in the App Store ecosystem.

    Apple likes to brag about how much money they’ve paid to developers, but they leave out how much they’ve kept for themselves: about $50 billion. To Apple, they are doing us a big favor by letting us ship iOS apps.

    We’ve approved and distributed nearly 200 app updates on Spotify’s behalf, resulting in over 300 million downloaded copies of the Spotify app. The only time we have requested adjustments is when Spotify has tried to sidestep the same rules that every other app follows.

    It’s very important to remember that Apple’s rules are not laws. Apple’s rules have changed over the years, and especially around in-app purchase it often feels that they are applied inconsistently. Because Apple runs the platform, they can make any guidelines they wish, but there isn’t necessarily any inherent legal or moral justification in specific rules. We shouldn’t accept that all of Apple’s rules are fixed and cannot be improved.

    When you get to the scale of the App Store, there are also new monopoly and anti-trust questions. For more about this, see Ben Thompson’s article on Stratechery.

    Back to Apple:

    A full 84 percent of the apps in the App Store pay nothing to Apple when you download or use the app. That’s not discrimination, as Spotify claims; it’s by design.

    In 2011 I wrote a blog post with the premise that Apple made a mistake with how they handle free apps in the App Store, and what followed was years trying to make up for that mistake because of the burden of running the App Store. I think there was some truth to that, but now the business is very different. The App Store is a huge money-maker.

    And we built a secure payment system — no small undertaking — which allows users to have faith in in-app transactions. Spotify is asking to keep all those benefits while also retaining 100 percent of the revenue.

    And yet in the previous quote, Apple says that 84% of apps pay nothing and they are fine with that. Uber pays nothing to Apple. Games with ads pay nothing to Apple. Why is it wrong for Spotify to also want to limit how much they pay to Apple? The line Apple has drawn around in-app purchase is arbitrary. They could just have easily restricted Uber accepting payments, or banned third-party ads.

    Just this week, Spotify sued music creators after a decision by the US Copyright Royalty Board required Spotify to increase its royalty payments. This isn’t just wrong, it represents a real, meaningful and damaging step backwards for the music industry.

    This is irrelevant to Spotify’s complaints about the App Store. While I think Spotify’s argument would have been stronger if they had focused on a couple of their core complaints instead of mixing in issues such as Apple Watch development, Spotify didn’t bring up other concerns about Apple’s business that do not relate to the App Store. Apple trying to interject Spotify’s relationship with musicians is whataboutism.

    Overall, Apple’s response isn’t very convincing to me. There are still 2 fundamental problems with the App Store: exclusive distribution and exclusive payment. In that post from 8 years ago, I concluded with:

    Apple, want to charge 30%? Go for it. Want to make the submission rules more strict? Fine. Want to adjust how you run the App Store to reflect what’s happening in the market? No problem. Just give developers an out. We are going to be back here year after year with the latest controversy until exclusive app distribution is fixed.

    I think I’ve been proven right about this. This issue will never go away until Apple allows side-loading or makes it easier to let customers pay outside the App Store. In the meantime, I’ve been arguing for a 15% cut instead of 30% for all paid downloads and in-app purchase, which would go a long way to making this easier for developers.

    → 8:52 AM, Mar 15
  • 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
    → 3:09 PM, Mar 13
  • Spotify standing up to Apple

    I’ve been waiting years for this. Bigger companies have finally had enough of Apple’s 30% in-app purchase tax. Spotify founder Daniel Ek writes about Apple’s restrictions on telling users how to upgrade to Spotify Premium outside the app:

    As an alternative, if we choose not to use Apple’s payment system, forgoing the charge, Apple then applies a series of technical and experience-limiting restrictions on Spotify. For example, they limit our communication with our customers—including our outreach beyond the app. In some cases, we aren’t even allowed to send emails to our customers who use Apple. Apple also routinely blocks our experience-enhancing upgrades.

    Spotify has a companion site TimeToPlayFair.com with more details, and they’ve also filed a complaint against Apple with the European Commission. (As a side note, I hope Spotify’s pursuit of fairness will also apply to how they treat the podcast ecosystem after acquiring Gimlet Media and Anchor.)

    Apple’s anti-competitive behavior was also a theme of Ben Thompson’s Stratechery this week:

    What is even more striking, though, is that the App Store does have a massive antitrust problem: it is not Apple unfairly competing with app developers, it is Apple unfairly imposing massive complexity and extracting 30% of revenue with its contractual requirement, enforced by App Review, that developers use Apple’s payment mechanism.

    Now if only more indie developers would speak out about this, maybe we’d make some progress with Apple. As I’ve said many times: 15% for paid downloads and in-app purchase is reasonable for the value that Apple provides. Just as importantly, Apple should relax the rules against linking to web sites outside the store.

    → 9:31 AM, Mar 13
  • The web at 30

    Today is the 30th anniversary of Tim Berners-Lee’s proposal for the world wide web. Reflecting on the web’s success and the new challenges, he writes:

    Against the backdrop of news stories about how the web is misused, it’s understandable that many people feel afraid and unsure if the web is really a force for good. But given how much the web has changed in the past 30 years, it would be defeatist and unimaginative to assume that the web as we know it can’t be changed for the better in the next 30. If we give up on building a better web now, then the web will not have failed us. We will have failed the web.

    I believe this. The goal of Micro.blog is to make the web a little better. Let’s get back to what made writing and sharing photos online such a wonderful experience, and get away from the problems of the massive social network platforms that dominate so much of our activity online.

    → 5:21 PM, Mar 12
  • Medium import for Micro.blog

    Micro.blog can now import blog posts from Medium. You can request a .zip archive of your content from Medium.com, then go to Posts → Import on Micro.blog to upload the file.

    Because Medium no longer supports custom domain names, we don’t think it’s a good long-term solution for blogging. If you still want to reach your Medium followers, you can enable cross-posting from any blog to Medium in Micro.blog by clicking Account → “Edit Feeds & Cross-posting”.

    Micro.blog does a few things to make transitioning from Medium to Micro.blog hosting easier. Just like the WordPress to Micro.blog import, it automatically downloads any photos referenced in your posts and stores them on Micro.blog. It also cleans up the posts a little, while preserving most of the original HTML. Of course it also sets post titles and published dates.

    → 11:22 AM, Mar 11
  • 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.)

    → 2:27 PM, Feb 28
  • Audio in email is not a podcast

    Today Substack announced support for sending audio episodes in email newsletters:

    Subscription podcasting through Substack works in the same way as publishing newsletters. Once the feature is enabled, you can create an audio post that is just like a normal post and can go out to everyone or only to subscribers. After receiving the post by email or accessing it on the web, subscribers can listen to the audio through the Substack web player.

    This looks like a great feature for Substack customers, but it’s not a podcast. As the podcasting industry grows, with everyone trying to monetize podcasts or build new businesses around podcasting, it’s really important that we keep using the right words to describe it. A podcast has to have a feed so that it’s available in podcast players like Overcast, Castro, and Apple Podcasts.

    Michael Zornek said it well earlier this week after Spotify acquired Gimlet and Anchor:

    It is not a podcast unless there is a RSS feed.

    I’m not splitting hairs about this. If we accept calling “any audio on the internet” a “podcast”, we undermine what makes a podcast unique: not just the convenience of delivering audio directly to your device, but the openness that ensures that podcasts work in a variety of players, without a single company with too much control trying to lock down the format.

    Luckily, I think the Substack folks probably know this. In their announcement post, they also added:

    We may soon add the ability to add a private feed of episodes to podcast players, but we like the web solution for now. (Give us your feedback, etc.)

    Here’s my feedback: please don’t call it a podcast until you have the feed ready, whether it’s a private feed or public. When we added audio uploads to Micro.blog, we had full podcast feeds and everything was available from your own domain name. The web will be better if we encourage the same support of open formats in all new platforms.

    → 2:18 PM, Feb 7
  • Micro.blog news and help accounts

    We’re changing the official Micro.blog user accounts so that they are easier to follow. It used to be that everyone automatically followed @help, where we posted occasional announcements. From now on, @help will mostly be used for replying to questions, with a new default account @news.

    You can unfollow @help if you don’t want to see those replies in your timeline. New users will no longer automatically follow @help.

    Here’s a summary of the different accounts and blogs:

    • @help: help.micro.blog
    • @news: news.micro.blog
    • @monday: monday.micro.blog

    And for the Micro.blog team:

    • @manton: manton.org
    • @macgenie: micro.welltempered.net
    • @cheesemaker: jonhays.me

    In addition, Micro.blog user @simonwoods maintains 2 blogs with updates about Micro.blog and “Today I Learned” for tips:

    • @til: til.micro.blog, updates.micro.blog

    Email is still a great way to get an answer to a question, but by splitting out these accounts we can be more responsive on @help as well. I think this setup will work better as the community grows.

    → 6:33 PM, Feb 5
  • 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
    → 2: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!

    → 5:34 PM, Jan 30
  • 12 days of microblogging: just blogging

    We can come up with all the specialized names we want — photo blogs, link blogs, travel blogs, microcasts — but sometimes it’s just a blog. To wrap up the 12 days of microblogging series, let’s talk about blogging.

    Blogs can be news sites, corporate sites, travel sites, photo sites, tech sites, and personal journals. They are usually written in an individual’s voice. Readers want to keep visiting a blog because there’s a story, unfolding with each post. The passing of time is a fundamental element to what defines a blog.

    This emphasis on time is even more obvious for microblogs. Because short posts are easy to write, there are more of them. But Micro.blog hosting supports any post length: short microblog posts like tweets, or full blog posts with multiple paragraphs and a title.

    Micro.blog is a full blogging platform, so it has support for traditional blog editors like MarsEdit on macOS. You can import an archive of posts when migrating from WordPress. Because Micro.blog posts are full blog posts, they support editing, using Markdown or HTML, and natively have RSS and JSON Feeds. They support features you would never expect on a social network, like using a custom domain name or uploading a PDF.

    But along with this blogging foundation, Micro.blog tries to learn from the user experience of social networks. Can we make blogging much easier, so that it’s your primary home on the web, and the first place you think to post? There are still many improvements we want to make so that the platform is easier to use and more consistent, but I think the last year has shown that the answer is “yes”. Blogging can be easier, and if it’s easier, more people will do it. And if more people are blogging, we can start to find our way out of the problems created by massive social networks.

    That wraps up our 12 days of microblogging series. You can find links to all the posts on the help site.

    → 11:49 PM, Dec 14
  • 12 days of microblogging: daily log

    We’ve seen a lot of people use their microblog as a daily log to track activities, from running or cycling routes, to meditation or posting photos of food. Some apps even make this easier, like indiebookclub.biz for sharing reading progress in a book.

    In 2016 when I visited a different library in Austin every day, I found that the microblog format is helpful to stick to a routine. It becomes part of the day, knowing you need a quick post to your blog to record the visit or activity. Encouraging this kind of posting consistency is also why we have special pins you can unlock, such as the “Photo Challenge” pin after posting a new photo each day for a week.

    For the last 11 days I’ve been writing about the way people are using Micro.blog: custom designs, microcasts, photo blogs, and more. You can find the rest of the posts in this 12 days of microblogging series over on the help site. Tomorrow we’ll wrap up with a final post.

    → 12:55 AM, Dec 14
  • Open space at Apple's new campus

    I woke up this morning, picked up my phone like I always do — to make sure that Micro.blog servers hadn’t quietly burned to the ground in the middle of the night — and the first thing I saw was a notification about Apple’s new campus in Austin. Here’s John Voorhees writing about it for MacStories:

    At the center of the announcement though is a new facility that will be located in North Austin not far from Apple’s current Austin campus. The new office will cost over $1 billion to build and sit on a 133-acre site, 50 acres of which will be set aside for open space. Initially, the Austin campus will house 5,000 employees, with the ability to expand to as many as 15,000. The new complex will run on 100% renewable energy too.

    I love the contrast to Amazon’s over-hyped search for a 2nd major campus. Apple made a decision and announced it, without leaving the world hanging for months. While Apple has always had other smaller offices outside Cupertino, it’s great to see such a significant new commitment in other parts of the country.

    Does anyone know the location for the campus yet? Near the current campus in Austin there are huge stretches of undeveloped property — old ranches that you can see along Parmer Lane or from the other side when taking the train from Lakeline Station. For years I’ve dreamed that this area could be preserved somehow as a park, not just eventually overrun with condos and restaurants. I’m excited that Apple is setting aside 50 acres of the new campus for open space. I hope they consider expanding that even more.

    Update: This KUT article has a map of the planned campus.

    → 9:33 AM, Dec 13
  • 12 days of microblogging: for authors

    It’s the 10th day of our 12 days of microblogging series, and today we want to highlight some of the authors who are using Micro.blog. Last month was National Novel Writing Month, and many posts about NaNoWriMo were collected in a special section of Discover on Micro.blog. Congrats to everyone who participated!

    Serena finished the month with 50,344 words. Cheri Baker posted updates about her writing and announced her new novel. And for non-fiction, Rosemary Orchard has a new book about OmniFocus.

    Josh de Lioncourt is another member of the community who has participated in NaNoWriMo. He joined Jean earlier this summer on the Micro Monday podcast. On Halloween this year, Josh recalled his first NaNoWriMo from 2013:

    I’d promised myself that if I finished chapter one that night, I’d continue writing the rest of the book throughout the month of November as a NaNoWriMo project. As it turned out, I did finish chapter one. The next day I wrote chapter two, and by the end of November I had nearly sixty thousand words, fifteen chapters, and about one-third of what would become Haven Lost written in first draft.

    We love books and want to do more to support writers. As I wrote about at the beginning of the year when introducing the emoji collections, we started with books:

    Today we’re introducing a search collection using emoji, starting with books. Just include ? with your microblog text about a book you’re reading or related topic, and your post will automatically be collected on /discover/books.

    For more posts in this series, check out our help page.

    → 11:54 PM, Dec 12
  • 12 days of microblogging: developer journal

    For the 9th day in our 12 days of microblogging series, we want to talk about developer blogs. Most developers on Micro.blog use their blogs like everyone else — posting photos, sharing stories, recording a microcast, or linking to articles they’ve read — but some developers use the microblog format as a programming journal, writing about coding problems and eventual solutions through a series of posts.

    Brent Simmons helped popularize this format in the iOS developer community back in 2013 when he published 16 posts while working out how to implement syncing. I’ve noticed at least a few developers adopt a similar format during the development of Micro.blog third-party apps, such as Isaiah Carew working on Kiwi earlier this summer, Vincent Ritter on Gluon, and Mike Haynes designing Dialog.

    Blogging is a great way to work through an idea. When you take time to write a few sentences or paragraphs about an opinion on almost any topic, you’ll find that you have a stronger understanding of it by the time you hit publish. It can be the same way for a programming challenge.

    There have already been 8 other posts in this series, and we link to all of them over on the Micro.blog help site. Three more posts to go this week to finish out the 12-post series!

    → 9:26 PM, Dec 11
  • Customizing the Micro.blog default theme

    Micro.blog’s default design for hosted sites is based on an original theme that shipped with Jekyll. It is very plain, but works well on desktop computers and mobile devices. It’s also pretty easy to customize.

    I recently set up the new Micro.blog news blog and wanted to apply a few minor improvements to the design: adding a logo to the header and fixing how cramped the quoted text looked. To add a logo to the header, you can use CSS to shift the text to the right, making room for the logo, and then add the logo as a non-repeating background image.

    Here’s what my custom CSS looks like:

    blockquote {
    	letter-spacing: -0.5px;
    	line-height: 1.6;
    }
    
    .site-title {
    	background-image: url(https://help.micro.blog/assets/images/icons/ios/icon-60.png);
    	background-size: 30px 30px;
    	background-repeat: no-repeat;
    	background-position-y: 12px;
    	padding-left: 40px;
    }
    

    You can edit the custom CSS for your blog by clicking Posts → Edit Domain & Design → Edit CSS. I also posted during out 12 days of microblogging series about other custom designs from Micro.blog users.

    → 8:58 AM, Dec 11
  • 12 days of microblogging: business sites

    It’s the 8th day in our 12 days of microblogging blog post series. Most Micro.blog accounts use the author’s name — personal blogs, writing about everyday topics or sharing stories and photos. But since Micro.blog-hosted blogs can have a custom design, separate pages, and a domain name, you can also have a microblog for your business, or use it as your main web site.

    Because one of the goals of Micro.blog is to encourage people to post to their own blog more often, using a blog for your business site can also help keep it up to date, so that when customers visit there is recent news or product updates. The Omni Group has taken this one step further for their microblog at microblog.omnigroup.com, posting not just links to new software releases and screenshots of features, but also fun stuff like what they’re having for lunch at the office and cat pictures.

    For Micro.blog, we realized recently that we were missing a company blog. We have the help account and we have my personal blog, but not everyone should have to follow me to get important news such as the latest iOS update or even the blog post series you’re reading now. So today we’re adding a new blog: news.micro.blog.

    This new microblog will mostly link to other blog posts from me or Jean or Jon, as a way of collecting everything in one place. As we expand it, we’ll integrate it into the help site and Micro.blog home page.

    Previous posts in this series included topics like podcasting, photos, travel blogs, and sharing your content to other social networks, which is particularly useful for business blogs. See the full list here.

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

    → 8:44 PM, Dec 9
  • 12 days of microblogging: travel blogs

    I love road trips and travel blogs. We have a family blog that we started a few years ago, adding new daily posts for summer vacations with the kids and other trips. A blog is a great way to combine text and photos to remember a trip, with the flexibility to keep it for yourself or share it on social media.

    For the 6th day of the 12 days of microblogging series, we wanted to highlight 2 travel blogs using Micro.blog. Mary Hatfield writes on her microblog with incredible photos of trips across the United States and even to Antarctica:

    When we woke up this morning we were in the Neumayers Channel (below Anvers) located on the western side of Wiki Island ready to take the zodiacs onshore. The weather was quite perfect this morning and it was our turn […] We walked across the fresh blanket of snow to the Damoy Hut, which was built in 1975 and kept in use until 1995.  It has now been restored to its original form and is used as a museum. The land here was an airstrip that enabled personnel and stores arriving by ship to be flown on to Rothera Station in early summer when sea ice prevents dirt access to the station by ship

    Arin Mearig kept a daily blog for a 3-month trip to Switzerland, posting photos every day with captions for people she’s met and places she’s visited. From day 34:

    quick recap - left the house at 5am, went to 4 cities, hitchhiked for the first time, went on buses, trains, cable cars, and a funicular, ate a delicious burger, saw some of the greatest views ever, and just walked in the door at 10:45pm

    I’m inspired by these blogs to write more while traveling. Consider capturing some of your next trip on an existing blog or new microblog.

    See this help page for previous posts in this serious, covering topics like photos, microcasting, custom designs, and more.

    → 6:43 PM, Dec 8
  • 12 days of microblogging: artwork showcase

    It’s day 5 of our 12 days of microblogging series. Yesterday I highlighted what Micro.blog users are doing to create unique custom designs for their blog. Today we want to highlight how artists are using Micro.blog to showcase their work.

    I’ve loved seeing the drawings from Audra Ann Furuichi, who posts web comics and illustrations on her own site. Sky Sandison has sketches from around Edinburgh, Scotland. And Mike Hendley shares digital paintings as he works through them on his iPad.

    Plus there’s great sketchnotes from Mike Rohde and Ben Norris, including one by Ben about my talk from Peers Conference earlier this year.

    October was also Inktober, with many bloggers posting sketches to their microblogs every day. We have a special section of Discover for Inktober that collects many of those posts together.

    While the iOS apps for Micro.blog are designed around JPEG photos, you can use Micro.blog on the web to upload other formats like PNG and GIF, which might be more suitable for illustrations. Just click Posts → Uploads.

    Showcasing artwork on Micro.blog uses many of the same features as photo blogs, which I wrote about on day 2 of 12 days of microblogging. For previous posts in this series, check out our help page on Micro.blog.

    → 2:58 PM, Dec 7
  • 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.

    → 11: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!

    → 12:43 PM, 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.

    → 4:40 PM, Dec 4
  • Micro.blog milestone: first year open to the public

    One year ago today, after months of feedback from Kickstarter backers, we opened up Micro.blog to the public. In that time, we’ve watched the community grow, seeing more folks than ever writing on their own blogs while sharing in the Micro.blog timeline and participating in conversations. We are proud of maintaining our commitment to a safe community space where harassment is not tolerated while promoting independent blogging.

    We’ve also added a lot of functionality to the platform during this first year. To mark the anniversary, we are highlighting 12 features of Micro.blog over the next 12 days. We’re kicking off the 12 days of microblogging with a major hosting feature that rolled out earlier this year: microcasting.

    What are microcasts? Just short podcasts. A major idea behind Micro.blog is that if blog posts are shorter and easier to post, more people will stick with writing on their own site every day. Podcasting should be easier too.

    As I wrote when announcing microcast hosting and our companion app Wavelength:

    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.

    I’ve been so excited to see new podcasts launch on Micro.blog, including our very own Micro Monday hosted by Jean MacDonald. For today’s episode, Jean interviews long-time blogger and Mac developer Brent Simmons about his podcast The Omni Show and working on the new NetNewsWire feed reader.

    You can find recent episodes from a variety of microcasts in the Discover section of Micro.blog. Also check out Microcast.club, a directory of microcasts. Get started with your own microcast with this help article and join our Slack community where the friendly folks in the #microcast channel can help with questions.

    Tune in tomorrow for day 2 of our 12 days of microblogging series.

    → 2:40 PM, Dec 3
  • App Store rent-seeking

    Excellent article today from Ben Thompson. After laying out in detail why Apple has a strong argument in yesterday’s Supreme Court hearing, Ben moves to the larger question of the App Store monopoly:

    To put it another way, Apple profits handsomely from having a monopoly on iOS: if you want the Apple software experience, you have no choice but to buy Apple hardware. That is perfectly legitimate. The company, though, is leveraging that monopoly into an adjacent market — the digital content market — and rent-seeking. Apple does nothing to increase the value of Netlix shows or Spotify music or Amazon books or any number of digital services from any number of app providers; they simply skim off 30% because they can.

    I’ve been saying for years that the 30% cut is completely out of line with the value that Apple provides to developers. Developers should be calling for a more fair 15% rate across the board for all apps, and more flexibility to sell subscriptions outside the App Store. As I wrote earlier this summer, it shouldn’t sit well with developers when Apple talks about billions in services revenue, at our expense.

    → 10:58 AM, Nov 27
  • Photos grid on your blog

    As I mentioned on this week’s episode of Micro Monday, we want to add category support to Micro.blog including a special section for photos. As a first experiment with a page for photos, I added a JSON Feed of your photos to all hosted blogs on Micro.blog yesterday at /photos/index.json. (It will be updated automatically next time you post to your blog.)

    Jonathan LaCour wrote a JavaScript include called Microgram to take that feed and display a grid of photos. You can see it in action on my blog here.

    We still want to do more on Micro.blog with photos, but this is a great solution that’s available today. And I think it shows off how JSON Feed makes these kind of integrations much easier. Thanks Jonathan!

    → 10:49 AM, Nov 21
  • How to support Micro.blog

    I often say that Micro.blog is a success if more people blog. One of the most important goals is to encourage people to post at their own domain name. For more about why that matters and what I think Micro.blog’s role is among other social networks, see my post about the way out.

    But we hear from a lot of people who want Micro.blog to succeed in more concrete terms as well. They want it to be a larger business that can hire more developers and curators. I want that too! Micro.blog is the most ambitious platform I’ve built and as it grows we will need more help scaling it.

    If you believe in what we’re trying to do with Micro.blog, here are a few simple ways to support the platform:

    • Subscribe to one of the blog hosting plans. You get your own domain name, themes, photo or podcast hosting, the new Mastodon-compatible support, and much more. This is what I use to host my own blog and podcast.
    • Give a friend a blog subscription. If you already have a paid subscription yourself, click Plans → “Give Micro.blog” to invite someone to Micro.blog and pay for their first year of blog hosting at a discount.
    • Tell everyone what you like about Micro.blog. We don’t have any gimmicky viral features to spread the word automatically. For other people to find out about Micro.blog, you’ll have to post to your blog, tweet a link, or talk about it on your podcast.

    We are approaching 2 important milestones: the 1-year anniversary of the public launch, and nearly 2 years since the Kickstarter. Micro.blog has improved significantly since then and it will continue to get better with your support. Thanks!

    → 3:32 PM, Nov 20
  • TPM on Facebook

    Josh Marshall of Talking Points Memo has written some good posts about Facebook this year. Here’s part of today’s post about trust:

    Facebook’s core problem is that it was a platform based on trust. I don’t mean it acted in a trustworthy way. But it facilitated things that were at core about trust and relationships. So it was in the trust business, regardless of what its corporate culture may actually have been about. Having failed at that and not convinced people it’s trustworthy it now seems committed to a corporate version of acting out, going to war with its own stakeholders, whether those are users, investors, the governments of the countries in which it operates.

    See also my post last week about breaking up Facebook and the eventual pushback against Facebook-owned Instagram.

    → 5:17 PM, Nov 19
  • Core Intuition 350 and M.b follow-up

    We start this week’s Core Intuition by following up on the Mastodon integration in Micro.blog. From the show notes:

    Manton reports back to Daniel about the first week after adding Mastodon integration to Micro.blog. They talk about the merit and necessity of spending time marketing after all the coding work we do. Daniel talks about his recent struggle implementing support for Google’s OAuth2, and finally they talk about Apple’s new Hardened Runtime and the associated app notarization service Mac apps that are distributed outside the Mac App Store.

    It’s nice to hit episode 350, but I was just listening to ATP’s 300th episode today and realized that they have reached their milestone in about half the number of years that it took me and Daniel. We didn’t record very often in the early years, and even now usually miss a couple weeks here and there, so I expect ATP will eventually pass us up in total episodes. 🙂

    → 5:08 PM, Nov 15
  • Breaking up Facebook is up to us

    Two related articles about Facebook this week. First, from a huge report in The New York Times:

    But as Facebook grew, so did the hate speech, bullying and other toxic content on the platform. When researchers and activists in Myanmar, India, Germany and elsewhere warned that Facebook had become an instrument of government propaganda and ethnic cleansing, the company largely ignored them. Facebook had positioned itself as a platform, not a publisher. Taking responsibility for what users posted, or acting to censor it, was expensive and complicated.

    The New York Times interviewed over 50 people for the story, and it shows. There are a lot of interesting behind-the-scenes stories, especially Facebook’s relationship with Washington, and more than I can quote here.

    Second, an article from The Washington Post about early Instagram employees becoming disillusioned with the platform:

    Three of the early Instagram employees, including Richardson, have deleted it — permanently or periodically, comparing it to a drug that produces a diminishing high. One of the people said he felt a little embarrassed to tell people that he worked there. Two of the other early employees said they used it far less than before.

    This is why I don’t ever want to sell Micro.blog. I can’t imagine having to sit on the sidelines and watch with disappointment what it might become if it drifted away from its mission.

    I think pushback against Instagram is coming, as more people who have already left Facebook also remember that Instagram has the same leadership, and the platform is far enough off track that even the founders have left. It’s a good time to be posting photos to your own blog instead of Instagram.

    In a post earlier this year, Ben Thompson recognized that the threat to Facebook is when it becomes accepted fact that using the app isn’t good for you:

    It follows that Facebook’s ultimate threat can never come from publishers or advertisers, but rather demand — that is, users. The real danger, though, is not from users also using competing social networks (although Facebook has always been paranoid about exactly that); that is not enough to break the virtuous cycle. Rather, the only thing that could undo Facebook’s power is users actively rejecting the app.

    Having your own domain name for blog posts and photos isn’t just about personal independence from the control of massive social networks. Owning our content is key to the way out of the current social network mess.

    Some may call for Facebook to be broken up because it has too much power. But we can’t count on antitrust law to do it. Users must do it. We must do it by moving our attention away from companies we don’t believe in.

    → 11:31 AM, Nov 15
  • ActivityPub for your blog

    Last week we launched support for the ActivityPub API in Micro.blog. This is a major feature to add compatibility with Mastodon, including:

    • Mastodon users can follow posts from your blog using a username like @you@yourdomain.com.
    • Mastodon users can reply to your posts, and those replies will show up in your Micro.blog timeline.
    • You can follow Mastodon users from within Micro.blog.
    • You can reply to Mastodon posts in Micro.blog, and those replies will also flow back to Mastodon.

    Unlike cross-posting (which Micro.blog also supports), enabling ActivityPub in Micro.blog does not use a separate Mastodon account. Everything can be accessed from within Micro.blog using your custom domain name as your web identity. I’ve mostly been testing with Mastodon, but as we continue to test and improve this feature it should also work with non-Mastodon ActivityPub servers.

    There are a few steps to get started:

    1. Pick a custom domain name. For me, this was easy: I wanted to use manton.org.
    2. After setting up Micro.blog to host your blog, point the domain name to Micro.blog. We have a help page about this.
    3. Micro.blog will send an email when SSL is enabled for your blog. If there are any delays, don’t hesitate to email us at help@micro.blog and I will make sure your blog is updated and ready for ActivityPub.
    4. Click on Account → ActivityPub → “Set Mastodon-compatible Username”. Here you can choose what username other Mastodon users can find you with.

    Thanks to everyone who has already tried enabling this on their Micro.blog account! We have learned a lot and fixed several bugs with conversations across both platforms. Looking forward to where this goes.

    → 5:40 PM, Nov 14
  • Timetable migrated to Micro.blog

    Earlier this year I migrated 15 years of posts on manton.org to Micro.blog blog hosting. Today I finished moving over 100 episodes of my podcast Timetable to Micro.blog podcast hosting. I had gotten out of the routine of recording Timetable, and I think moving it to Micro.blog will simplify the setup and make me publish the podcast more often.

    Timetable had been hosted on WordPress using the Seriously Simple Podcasting plugin. There were at least a few ways I could’ve moved the episodes, but ultimately I decided on the following:

    1. Downloaded all the MP3s to my Mac.
    2. Adjusted the WordPress settings to show 120 recent posts in the feeds, then saved the resulting JSON Feed of all episodes. This let me parse the JSON much more easily than working with the WordPress API or XML.
    3. Wrote a Ruby script that uses the Micropub API to upload each MP3, then create a new post with an audio tag, preserving the original post content and date.
    4. Pointed timetable.manton.org to use Micro.blog.

    Even if you don’t know Ruby, hopefully you can see in the script how easy is it to work with Micropub, which Micro.blog uses as its native interface to create posts and upload files. I just call out to the curl command-line tool to do the work.

    If you’re new to Timetable, each episode is only about 5 minutes. Some of my recent favorites include episode 91 (Lose yourself), episode 92 (Good, better, best), and episode 100 (One year).

    → 10:40 AM, Nov 12
  • Dates set for IndieWebCamp Austin

    Last year we held the first IndieWebCamp in Austin. I blogged about how the event went, including sessions and topics covered, and what I learned from it:

    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.

    We’re going to do it again early next year: February 23-24 at Capital Factory. If you’ll be in Austin, mark that weekend on your calendar. I’ll make another announcement when registration is open.

    Last year there was a lot of work and last-minute stress deciding on a venue, so this year we’re going to keep a bunch of things the same that seemed to work pretty well. By nailing down the details early, we’ll have much more time for promotion. I’d love to see us double attendance from last year. Hope to see you there!

    → 11:30 AM, Nov 9
  • Usernames on Micro.blog

    Micro.blog now has 3 distinct styles of usernames to make the platform more compatible with other services:

    • Micro.blog usernames, e.g. @you. These are simple usernames for @-mentioning someone else in the Micro.blog community.
    • Mastodon usernames, e.g. @you@yourdomain.com. When you search Micro.blog for these usernames, Micro.blog will look for the user in another federated Mastodon instance so that you can follow them.
    • IndieWeb-friendly domain names, e.g. @yourdomain.com. This is where I always thought we’d go for more distributed “the web is the social network” interactions. Replying to one of these usernames will send a Webmention to that user’s external web site.

    I’m @manton on Micro.blog, my blog is manton.org, and because Micro.blog-hosted blogs support the ActivityPub API, you can follow me from Mastodon by using @manton@manton.org.

    I just rolled out some ActivityPub-related reply improvements. I’ll continue to improve the Micro.blog timeline so that these usernames can all coexist nicely. We’ll also be updating the native apps to better support these usernames, for highlighting and auto-completion.

    → 4:32 PM, Nov 8
  • Micro.blog + Mastodon

    For some time, we have been considering how we could open up compatibility between Micro.blog and Mastodon. Any feature that could be disruptive needs to be approached carefully. In this post I want to talk about how Micro.blog supports Mastodon, why I think it’s useful, and anticipate some questions that we’ll get about this feature.

    We’re launching 2 major features today:

    • Micro.blog can now cross-post to a Mastodon user account, in the same way we cross-post to Twitter, Facebook, Medium, and LinkedIn. This takes a copy of your blog posts and sends them to a specified Mastodon account.
    • Your custom domain on Micro.blog can now be ActivityPub-compatible, so that you can follow and reply to Mastodon users directly on Micro.blog. This also means someone can follow your blog posts by adding @you@yourdomain.com on Mastodon. (This username is configurable. Mine is @manton@manton.org.)

    These 2 features are separate and either can be enabled if you want. I have tried to be very deliberate in how ActivityPub is implemented. It is off by default, and to keep the focus on blogging and content ownership, it only works with custom domain names.

    One of the most important goals for Micro.blog is to encourage more people to blog. I wrote last year that it’s a success if more people blog. Based on the feedback we’ve received from the Micro.blog community, we are making great progress toward that goal.

    We have a lot of things we want to help solve with Micro.blog, but blogging is a core part of the foundation. It’s not about being the most popular social network. It’s not about competing with every platform that launches. It’s much better for the mission of Micro.blog for us to embrace other platforms (as we’ve always done with the IndieWeb) rather than put up walls between APIs.

    I recently published a post with 4 parts to how we get out of the current mess with today’s big social networks. I mentioned Mastodon in that post because while I don’t think Mastodon tackles all 4 parts of fixing this, I do think it has a role to play.

    More compatibility with Mastodon lets us support the good things that Mastodon has accomplished, while still carrying forward what I think are the unique strengths of Micro.blog. It also opens up the Micro.blog community to interact with a much larger user base.

    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.

    As I wrote earlier this year, content ownership on the web is 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.

    If you already have your blog on Micro.blog at yourdomain.com, we can build on that to allow @you@yourdomain.com or @whatever@micro.domain.com. This focus on domain names will continue to guide new features in Micro.blog.

    Let me answer some questions:

    • How is Mastodon support enabled on my account? In Micro.blog on the web, click Account → ActivityPub. You will be prompted to select a username. A paid hosted microblog is required so that Micro.blog can use your custom domain name.
    • How can I find Mastodon users to follow on Micro.blog? As more Micro.blog users interact with Mastodon users, some of those users will naturally show up in conversations or even be featured in our Discover timeline. You can also add a specific Mastodon user by searching for their full username.
    • Will Micro.blog now start showing follower counts? No, it’s important to me that we don’t change the Micro.blog user experience to resemble every other social network. When you follow a Micro.blog user from Mastodon, an individual Mastodon instance will have its own follower count just for that instance. Any follower count shown in Mastodon for a Micro.blog user will be wrong. This isn’t ideal, but it’s the best we can currently do with how Mastodon works.
    • What about Content Warnings? Micro.blog does not support them. I’ve heard from Mastodon fans who like Content Warnings, but I’m concerned about introducing extra friction in both the posting and reading experience. We’ll reevaluate this feature later.
    • What happens to direct messages sent from Mastodon to Micro.blog? Micro.blog does not have any private posts by design. Direct messages sent from Mastodon are converted into a private email.
    • Is this going to make Micro.blog just like Mastodon? No, this is not a clone of Mastodon merged into Micro.blog or running alongside it. It’s a from-scratch implementation of a few common APIs that Mastodon uses so that both systems can talk to each other.
    • Will third-party Mastodon clients work with Micro.blog? Not currently. We might consider this later, but because of the UI differences, I think it’s a better fit to have third-party apps designed for either Micro.blog or IndieWeb standards.
    • What will happen to the Micro.blog community? I hope that this will help grow the community, without taking away from what has worked well on Micro.blog. While you might see some Mastodon posts, and those Mastodon users can interact with Micro.blog users, users from other Mastodon instances won’t know about our community guidelines or expectations for Micro.blog. The community will remain predominantly Micro.blog users who share our goals for the platform.
    • How does Micro.blog’s mute feature work with Mastodon? Muting in Micro.blog has been expanded to support muting individual Mastodon users, or entire Mastodon instances based on their domain name. We have also preloaded a common list of Mastodon instances that are muted automatically because of code of conduct violations.

    This is a really big feature. I hope you enjoy it! This is just the baseline. I’ll be working on bug fixes and improvements to make this integration work as smoothly as possible. If you have any feedback, let me know at help@micro.blog.

    → 3:24 PM, Nov 7
  • Seth Godin blogs every day

    Seth Godin on daily blogging:

    For years, I’ve been explaining to people that daily blogging is an extraordinarily useful habit. Even if no one reads your blog, the act of writing it is clarifying, motivating and (eventually) fun.

    As he says, you’ve gotta get past the first couple hundred posts to see the most value. This is why indie microblogging is so useful. Start with some short posts, a few photos, and eventually it’s a habit. Stick with it and you’ll really have something.

    In Micro.blog we have some pins to encourage people to blog more often. You’ll unlock pins after your first photo, 10 posts, setting up a custom domain, and more. Today, if you mention “Halloween” or “pumpkin” in a blog post you’ll unlock the special Halloween pin.

    → 1:00 PM, Oct 31
  • 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!

    → 10:47 AM, Oct 31
  • Cutting edge to old fashioned

    The Atlantic, quoting Ben Grosser, after news that Jack Dorsey is reevaluating whether Twitter should even have likes:

    “Part of what’s happening in spread of disinformation is that people can essentially repeat what someone else said and spread it to the world, the retweet has an effect well beyond the Like in that regard,” he said. Grosser also indicated that removing just the like button would only make the retweet more powerful. “I fear that if they remove the Like button the fact that there are other indicators that include metrics will just compel users to use those other indicators,” Grosser said.

    Removing likes and retweets is of course old news to anyone who has been on Micro.blog. I wrote 2 years ago about the potential harm of retweets. It’s a common theme in the talks I’ve given and in other blog posts since.

    When I first started rolling out Micro.blog to early supporters, not having public likes, retweets, or follower counts was a kind of controversial, risky decision. Now it’s almost boring. We’re in the middle of 2 complementary transitions: a move away from massive social networks, and smaller platforms providing the flexibility to remove features and algorithms in service to the community.

    → 6:47 PM, Oct 29
  • Intro to M.b screencast video

    A few months ago on Timetable, I talked about how Micro.blog needs the equivalent of a college orientation session to get new people used to how the platform works. I took some time this morning to record a quick intro screencast video. It’s a little rushed because I tried to fit it into 2 minutes, but I’m glad to finally have something. I’ll be working to update it soon.

    I’m adding a link to the video at the top of the “welcome” email that new users get when they sign up. You can also watch it on the help site here.

    → 5:59 PM, Oct 29
  • WordPress's Gutenberg vs. Micro.blog

    Project Gutenberg is the code name for a redesign of the WordPress post editor. It’s an ambitious change set to ship next month in WordPress 5.0. Taking inspiration from Medium and appealing to web authors who use WordPress more like a CMS than a blog, Gutenberg features a block-based design for visually laying out the text and elements of a web page.

    As I test Gutenberg, I keep coming back to one question: is it good for blogging? The goal with Micro.blog is to make blogging easier so that more people will have their own site instead of delegating their web identity to a social network. Gutenberg is more flexible than today’s WordPress, but it’s also more complex for someone who just wants to type in a few sentences and hit publish.

    I’ve been talking about this with Daniel on our podcast Core Intuition. Many WordPress users will love Gutenberg, but there will be a significant number who just want a simple posting interface for blogging. This is where a traditional native blogging app like MarsEdit or the focused UI around microblogging seem like much better fits.

    Put another way, as WordPress matures I think it moves further away from the ideal blogging interface for someone who wants to write every day. Even as we add features to Micro.blog — domain names, themes, full-length posts, photos, podcasting — the core platform will always be rooted in the simple idea of a text box and a timeline.

    → 2:10 PM, Oct 23
  • Not just for bloggers

    Sometimes I hear from people who decide Micro.blog isn’t for them because it’s “just for bloggers”. On the one hand, they aren’t wrong; it is partly a blog hosting platform. But I think that feedback reveals less that there’s a fundamental mismatch and more about how much we still need to improve the user experience. One of the key points of Micro.blog is to encourage more people to post content at their own site, even if traditional blogging tools were too much trouble for them.

    There’s evidence that this part of the mission for Micro.blog is working. There are many people who could never get blogging to stick until they tried Micro.blog. Some of them are featured on the Micro Monday podcast.

    Whether it’s Twitter-like posting, photo blogging, microcasting, or using Micro.blog as a full web site at a custom domain name, there are millions of people who would post more often if it was easier. If you tried Micro.blog a year ago, consider trying it again! It is significantly better now than it was at launch, and as it continues to improve I hope that many more people who “aren’t bloggers” will find a home at Micro.blog.

    → 11:18 AM, Oct 15
  • NaNoWriMo, gift subscriptions, and more on Micro.blog

    Earlier this week I wrote about some behind-the-scenes Webmention changes that improve how replies are handled for external blogs, and yesterday we increased the storage for hosted podcasts. Today I’m rolling out some more visible new stuff on Micro.blog:

    • Added special sections of Discover for Inktober and NaNoWriMo. I love seeing the art that has been posted already, and we want to do more to encourage the writers on Micro.blog next month.
    • Added new invite link under “Plans” to invite someone to Micro.blog. If you already have a paid subscription you can pay for someone’s blog hosting for a year! We’ve heard from customers who want to offer this to friends or family to make it easier for them to get started blogging. It’s a one-time $50 payment, so $10-off the usual year-long subscription.
    • Added a progress spinner when loading the timeline on the web.
    • Added “…” button on the user profile page on the web with option to mute or report the user, matching what was recently added to the macOS version of Micro.blog.
    • Plus a few bug fixes and cleanup to make things run more smoothly.

    After a very busy summer, I feel like I’m able to get back to deploying improvements to Micro.blog on a regular schedule. Still have a couple big features in the queue that I hope will be ready soon. Thanks for the support!

    → 12:25 PM, Oct 11
  • Webmention improvements on Micro.blog

    I rolled out a few Webmention improvements to Micro.blog today:

    • Fixed the permalink for a reply when you aren’t signed in, which was preventing external sites from verifying the link after receiving a Webmention from Micro.blog.
    • Added limited support for accepting replies from external sites that do not have a Micro.blog account. Previously, Micro.blog would discard replies that could not be associated with an existing user. Now, these replies will be included in a thread using the domain name for the author. (Brid.gy replies from Twitter are not supported yet.)
    • Improved replying on Micro.blog to send Webmentions to any external site in the reply chain, not just the root post. This more consistently allows replies to be copied to multiple external blogs that are participating in the conversation.
    • Behind the scenes, for the last few months Micro.blog has been recording all incoming Webmentions, even if they don’t target a specific reply or just can’t be processed yet. This should allow us to add more reply-related features for hosted blogs in the future.

    There may still be some quirks to work out with these changes, but I’m happy to finish more of the plumbing around replies on Micro.blog. Getting closer to the IndieWeb vision for how cross-site replies on the web can work.

    → 10:30 AM, Oct 9
  • Internet Archive fixing Wikipedia links

    There has been a lot of distressing news lately, so it’s refreshing to read a story about developers who are just quietly making the web better. The team at the Internet Archive has fixed 9 million broken links on Wikipedia by scanning pages for broken links and updating them to point to the Wayback Machine’s copy:

    And for the past 3 years, we have been running a software robot called IABot on 22 Wikipedia language editions looking for broken links (URLs that return a ‘404’, or ‘Page Not Found’). When broken links are discovered, IABot searches for archives in the Wayback Machine and other web archives to replace them with.

    I wrote a blog post in 2012 about how fragile web pages are. This is always on my mind. It has informed a couple Micro.blog features such as our automatic mirroring of your blog to a GitHub repository. I hope that as the web evolves that this issue of broken links can be more directly tackled, so that the full responsibility for fixing this isn’t only on the Internet Archive.

    → 8:47 AM, Oct 4
  • JSON Feed for WordPress updated

    It has been over a year since JSON Feed was announced. There have been a bunch of discussions about expanding the specification, but we are very happy with how well the initial version has worked. It powers all Micro.blog-hosted blogs by default and is also used on many WordPress blogs, home-grown sites, and other platforms, with great support in feed readers like Feedbin.

    I haven’t had as much time to maintain the WordPress plugin for JSON Feed, though. David Shanske noticed this and offered to take the lead on merging pull requests and making other improvements to the plugin. Thank you, David! He’s now rolled all these changes into a new version.

    You can grab version 1.2 of the WordPress plugin from GitHub or by searching for it in the WordPress plugin directory. Enjoy! And thanks again to David for moving the plugin forward.

    → 9:14 AM, Oct 3
  • Markdown preview and more

    I updated Micro.blog with several improvements today:

    • Added a Markdown preview button when writing a post on the web, to test what the post will look like when published.
    • Added a “Show More” button to the timeline and mentions on the web for scrolling further back.
    • Fixed muting users to also hide posts in conversations.
    • Fixed reliability of the before_id parameter in more places in the API.

    Plus some other tweaks. These changes focus mostly on the web version of Micro.blog. We have updates to the native apps that will follow.

    → 12:23 PM, Oct 2
  • Micro Monday's 30th episode

    Jean published episode 30 of our Micro Monday podcast today. There have actually been over 30 episodes if you count the bonus episodes, but I wanted to officially mark the 30th episode as a milestone as I reflect on what the podcast has meant for Micro.blog.

    This week Jean welcomes @amit:

    Our guest this week is Amit Gawande, who codes for a living but lives for reading and writing. He is the creator of Microthreads, a tool for finding users and conversations to follow on Micro.blog. We talk about the many blog platforms he’s used over the years, and why the simplicity of Micro.blog makes it easier to just write.

    I love that Micro Monday is so consistent with our values. Everyone has a story to tell and should be able to have their own space on the web to tell it. The podcast makes Micro.blog better at the same time as it gives members of the community another opportunity to talk about what they care about. Thanks to everyone who has been on the podcast so far!

    → 4:24 PM, Oct 1
  • Core Intuition 345

    We posted the latest Core Intuition this weekend. It’s a 45-minute episode without sponsor breaks dedicated to the Mojave release and Mac App Store. More from the show notes:

    macOS Mojave is out! Daniel and Manton talk about the ephemeral nature of App Store features, and the wisdom of not investing too much stock in being featured, or any other external recognition. They catch up on the state of the Mac App Store and wonder about the expected App Store versions of BBEdit and Transmit. Finally, they talk about their own continuing plans for supporting Mojave, particular with respect to Dark Mode.

    As part of hopefully consolidating a couple of my servers, I’ve moved the MP3 hosting to Libsyn. We have 10 GB of previous episodes, so I’m still not entirely sure what the best long-term hosting solution is. We’ve changed our mind a few times over the podcast’s 10-year history.

    → 9:57 PM, Sep 29
  • I believe Christine Blasey Ford

    I watched the entire hearing yesterday, working with my laptop in the living room with the TV on. At several points I tried to type a quick post about what was unfolding, but I couldn’t do it justice in 280 characters. Since shortly after the 2016 election, I’ve kept most politics off my blog, trying to focus as much of my attention as possible on Micro.blog and related topics.

    I have thoughts on Judge Kavanaugh’s tone and answers, of course. I have thoughts on how partisan the second half of the day was, so divisive and seemingly irreparable. But ultimately that doesn’t matter. What I’ll remember for the rest of my life is the first half of the day.

    If Republicans on the committee thought Dr. Blasey would contradict herself or seem inauthentic, they must have realized within minutes that they had miscalculated. I wrote in my notes while watching it live: I can’t imagine anyone who could be more believable than she is.

    It was very brave of her to go through this. I couldn’t stop thinking of all the women who must be watching, who have been sexually assaulted and lived with the memory for years, telling only a few people or no one. I hope when we look back on Dr. Blasey’s testimony that it will be an inspiration for many, even as it was so heartbreaking.

    → 7:55 AM, Sep 28
  • 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!

    → 6:18 PM, Sep 9
  • The way out

    There have been many articles written in the last month about the role of social networks. Some even reach the obvious conclusion: that the top social networks are too big. This interview on Slate was fairly representative, covering monopolies and centralized power.

    But these articles always stop short before hitting on a solution. They always wrap up saying “it’s tough to solve this”.

    I think there are 4 parts to finding our way out of this mess with massive social networks:

    Better features: We should be careful before copying everything from Twitter. I don’t want to take features that failed us and recreate them in a new environment. Micro.blog leaves out features on purpose that we think undermine a healthy community.

    Open standards: When I first stopped tweeting 6 years ago, it was largely because of the developer-hostile attitude from Twitter. Proprietary APIs reinforce the lock-in with content silos. This is why so much of Micro.blog is based on IndieWeb standards. It’s why Mastodon uses APIs like ActivityPub.

    Content ownership: Controlling the writing and photos you post online isn’t about open source or the technical experience to run a server. It’s about using domain names for identity, so that you can move your data in the future without breaking URLs. I’ve written more about this here and it’s a fundamental part of the book I’m writing about microblogging.

    Smaller social networks: Many people are looking for “the next Twitter”, but it’s not enough to replace Twitter with a new platform and new leadership. Some problems are inevitable when power is concentrated in only 2-3 huge social networks — ad-based businesses at odds with user needs and an overwhelming curation challenge. This might be Mastodon’s greatest contribution: getting people used to the idea of many smaller, interoperable communities.

    There’s not only one solution. I think platforms like Micro.blog and Mastodon each have a role to play and can be complementary. Mastodon helps by encouraging smaller social networks, distributing the task of moderation, but doesn’t prioritize content ownership. (An account on an instance like Mastodon.social has no more ownership of its content than an account on Twitter. Both let you export your data but both live at someone else’s domain name.)

    If you are frustrated with the state of social networks, I recommend blogging more. I love seeing new blogs and photo blogs just as we’re having a serious debate in the mainstream about social networks. The way out isn’t easy, but there’s a clear path waiting for us to take it.

    → 3:57 PM, Sep 7
  • 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!

    → 2: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!

    → 10:42 AM, Sep 5
  • Sunlit 2.2 is here

    This week we shipped the new version of Sunlit, featuring an Instagram-like timeline of photos from people you’re following on Micro.blog. You can post photos to a microblog on Micro.blog, or to WordPress and other compatible blogs.

    The best way to understand Sunlit is to see it. I’ve prepared a short video below, talking through a few of the main screens, but the app has a lot more depth for editing photos and organizing photos into stories:

    Sunlit is a free download in the App Store. There’s no in-app purchase. If you like it, I hope you’ll support Micro.blog with a subscription to a hosted microblog or new photo blog. You can learn more at sunlit.io.

    → 11:17 AM, Sep 4
  • Om leaving Facebook

    Om Malik has a post on leaving Facebook for good:

    Why? Because I don’t need it and don’t miss it. I left, not because of the company’s dodgy approach to privacy, data accumulation or its continued denial of its impact on shaping modern society. I left because it was making me someone I am not — someone who lives life through the eyes of others.

    He also mentions Instagram and focusing more on his own photo blog:

    I have started a photo blog — where I cross post all photos I share on Instagram. I think it is a matter of time, before it becomes my primary spot for sharing photos.

    As I read this, Jon and I are wrapping up Sunlit 2.2, which will ship on Tuesday. It’s a Micro.blog companion app just for photos. I recorded a short preview video here.

    → 10:47 AM, Sep 2
  • Evergreen to NetNewsWire 5

    NetNewsWire is returning home. Brent Simmons first shipped NetNewsWire Lite way back in 2002 and it played a significant role in the early popularity of RSS on the Mac. I’ve written a few things about it over the years, including this post in 2002 when I switched to using it.

    It has been fun to watch Brent start over with Evergreen, document the progress in public on his blog and GitHub, and now it’s fitting to see that work evolve into the next official version of NetNewsWire. NetNewsWire 5 will also have great support for JSON Feed and Micro.blog. Congrats Brent!

    → 3:59 PM, Aug 31
  • Micro.blog updates and expanding Indiepaper

    We rolled out a few improvements to Micro.blog this week. There’s a new page on the web for managing muted users — click Account and scroll down to the “Edit Muted Users” button — and a new macOS release with a photo upload bug fix and an options menu to mute or report users.

    You can download Micro.blog for Mac here, or choose “Check for Updates” inside the app. If you missed it when it was first announced, the app now supports uploading your Instagram archive as microblog posts.

    About a month ago we added experimental support for Indiepaper to Micro.blog. It’s in the spirit of Instapaper or Pocket, but built on IndieWeb standards. You can read more about Indiepaper in our help.

    I wasn’t sure where this would lead, but people are using it, so we’ve improved Micro.blog to include a page on the web for viewing or managing saved articles. After you’ve added an article to read using Indiepaper, a new link to access it will appear under Account → “Edit Feeds & Cross-posting”.

    Thanks for your support of Micro.blog. As expected, we’ve had a bunch of new people join Micro.blog, which always translates to great feedback for making the platform better.

    → 1:41 PM, Aug 17
  • Microcast improvements

    This week we rolled out a few improvements to podcast hosting on Micro.blog. I talked about some of it on yesterday’s episode of Timetable. Here are the changes:

    • Increased MP3 upload size to 35 MB. With the default setting in Wavelength for iPhone this is over half an hour per episode. At lower bitrates, it’s over 70 minutes.
    • Added custom email address to site settings. Google’s podcast directory apparently likes a contact email in your podcast feed, so this allows it. (But it’s blank by default in Micro.blog for privacy.)
    • Updated podcast feed to use your “about me” text as the podcast description.

    Speaking of podcasts, check out the latest episode the Supertop podcast. In addition to updates about their podcast client Castro, they cover my blog post about Anchor and other thoughts on what impact Anchor might have on the podcast industry.

    → 5:27 PM, Aug 7
  • Infowars follow-up quotes

    Two quick follow-ups on my post yesterday about Apple removing Infowars from their podcast directory, and related actions by Facebook and YouTube. First, Alan Jacobs summed it up really well on his microblog:

    What Alex Jones is being deprived of is amplification. Not the right and freedom to speak, but multiple megaphones.

    And I love this quote from the Onion:

    What we see here really could be the beginning of a slippery slope towards a horrific ordeal in which any citizen who violates hate speech policies or blatantly spreads lies that cause other individuals to receive death threats will immediately be discredited and, perhaps, even asked to host their demonstrably false content on a website that they actually own.

    The best satire is often true. We’re seeing a major shift in how mainstream users view the role of these huge social networks.

    → 4:51 PM, Aug 7
  • Infowars and the reluctance to curate

    BuzzFeed has an article about Apple removing Infowars from the Apple podcast directory:

    Apple’s decision to remove all episodes of Jones' popular show — rather than just specific offending episodes — is one of the largest enforcement actions intended to curb conspiratorial news content by a technology company to date. Apple did not host Jones' shows, but it offered an index that allowed anyone with an iPhone to find and subscribe to them.

    This is the way the web is supposed to work. Alex Jones can continue to host his podcast and his fans can subscribe manually. But Apple has no obligation to index it in their podcast directory and make it easy for people to find it.

    More from the New York Times today:

    Some tech companies, including Facebook and Google, which owns YouTube, had appeared reluctant to remove Mr. Jones’s pages entirely and were instead taking action against specific videos.

    Google has now decided to terminate his YouTube channel. And:

    Tech companies have long been wary of censoring speech, but an increasing amount of hate speech and misinformation — and louder protests from critics — have forced them to take action. Moves by the tech companies against Infowars and its peers have spurred a debate over free speech.

    Facebook and YouTube are conflicted about how to handle this because their model is wrong. Unlike podcasts and blogs, which can live at a custom domain and move between hosting companies, videos on Facebook and YouTube are served directly on those platforms. If the videos are blocked, especially by YouTube which controls nearly all video on the web, there’s no obvious migration path away.

    We’ve also seen this hesitation to curate with Twitter. My post about pulling the weeds covers the same issue.

    Over the last dozen years we have let massive centralized social networks gain far too much power. We started paying the price with the 2016 election and the fallout continues today. The solution is clear: post to your own site, encourage other people to get their own domain name, and support smaller social networks like Micro.blog that are empowered by design to curate.

    → 12:44 PM, Aug 6
  • Leverage and values for app developers

    When I started using Twitter again for cross-posting, I made a few rules for myself so that I wouldn’t get pulled back into the platform. One is that I let Micro.blog post everything for me automatically, and I only favorite or reply to people when I get asked a specific question. I don’t follow anyone.

    But every once in a while I feel compelled to jump in to a discussion. In reply to Joe Cieplinski’s blog post today about Apple having all the leverage, I posted this tweet:

    The sad part of this is that developers actually do have leverage, but we’re just not organized and can’t agree on what is fair. It would take the whole community coming together. Most developers think that Apple’s tight control over app distribution is fine. (Spoiler: I don’t.)

    Long-time readers of my blog will notice that I complain about Apple as often as I praise them. I hold Apple to a very high standard because they’ve earned it through great design and products.

    I know Micro.blog isn’t perfect yet. There are many things we’d like to improve. But I’m proud that the values for the platform are consistent with everything I’ve been blogging about for 15+ years. Complaints I have against the power of big companies like Apple, Facebook, Google, and Twitter… The entire design of Micro.blog’s architecture is to do the opposite of what those companies do.

    → 5:28 PM, Aug 3
  • Apple services and the App Store tax

    Jason Snell posted about Apple’s record services revenue:

    As someone who’s interested in products, I find the focus on Services revenue to be a bit dispiriting. I get excited at the prospect of new products and seeing how consumers are accepting or rejecting products in the market. But the discussion of Services, especially in a financial context, is essentially a conversation about how Apple can grind more money out of every single person who uses an iPhone, iPad, and Mac.

    Back in 2011 I explored the App Store’s 30% cut from the perspective of supporting free app downloads:

    I’ve argued that Apple’s 30% tax is about growing that to significant profit at the expense of developers, but in the back of my head I’ve also been concerned that maybe it’s just to keep the App Store from falling into the red. Maybe they are really struggling under the weight of what they created, and long app review times and lack of focus around the Mac App Store launch are just symptoms of that.

    In hindsight, 7 years later with $9.5 billion in services revenue per quarter, my attempt in that post to reconcile Apple’s cut seems like a stretch. To echo what Jason says above, I still believe that services should complement Apple’s core products.

    iCloud storage is there to make the experience of saving files or backing up your iPhone better, not to nickel-and-dime users who need more storage for a backup. The App Store is there to make discovering apps easier, not to turn developers into a profit center. The more these parts of Apple’s business dominate their revenue, the more divorced their product planning becomes from what users and developers need.

    $9.5 billion. As I’m posting this their stock price just pushed the company to $1 trillion in market cap. Many developers can’t make enough to support even a 1-person indie business full time.

    As an exclamation point on the discussion around services revenue, Apple has also cancelled their affiliate program. Stephen Hackett sums up what I think many people in the community are thinking:

    Payments made to people linking to apps with affiliate links comes out of Apple’s share of revenue generated by app sales and in-app purchases. How much money it costs them is unknown, but the idea that the reasons behind this move could be financial in nature feels pretty gross. Apple is a for-profit company, and it has no bottom-line reason to keep this program open, but sometimes doing the right thing comes with a cost.

    And John Voorhees on Apple’s statement that the App Store no longer needs affiliate links:

    If that’s the case, it’s short-sighted, but it’s certainly Apple prerogative to run its programs as it sees fit. Still, it’s not the right way to address the publications, developers, and others that have generated millions of dollars of referrals over the years in exchange for a modest 7% cut.

    I’ve argued since the first days of the App Store that Apple’s 30% cut is too high. This tax on developers is completely out of line with the value that Apple provides. The fact that Apple is bringing in so much money from services — nearly as much as the Mac and iPad combined — shouldn’t sit well with developers who are still struggling. It’s even worse now without the affiliate program, which developers could use to recoup some of that 30%.

    Note what I’m not saying. I’m not saying that Apple should lower the rate to match Stripe’s 3%, or that Apple should operate the App Store at a loss. It costs real money to maintain the App Store infrastructure and commit to featuring apps every day. But there should be a middle-ground that gives developers the best shot at a sustainable business.

    Introducing a 15% tier for in-app purchase subscriptions (after the first year) was a good start. Most developers thought we’d never see that. We should be calling for an across-the-board 15% rate for all App Store transactions. It’s the right thing for Apple to do. As Apple’s services revenue continues to grow — and the TV streaming service will only add to that — the time to make this change is now.

    → 10:57 AM, Aug 2
  • Fixing bloated web pages

    Nick Heer has a comprehensive post on how web pages have become so slow despite huge improvements in our internet speeds. He covers JavaScript tracking, Google’s AMP, and a CNN web page that takes 30 seconds to load:

    The vast majority of these resources are not directly related to the information on the page, and I’m including advertising. Many of the scripts that were loaded are purely for surveillance purposes: self-hosted analytics, of which there are several examples; various third-party analytics firms like Salesforce, Chartbeat, and Optimizely; and social network sharing widgets. They churn through CPU cycles and cause my six-year-old computer to cry out in pain and fury. I’m not asking much of it; I have opened a text-based document on the web.

    As a contrast, consider my blog post from yesterday. All requests for the page (1 for HTML, 3 for CSS files, and an image) total only 34 K. The page loads completely in 1/3 of a second.

    This is how most web pages should be. Lightweight, fast. It’s how all Micro.blog-hosted sites are designed. If you’ve let your blog become too bloated with JavaScript includes or images, it’s worth some time to trim out extra resources that don’t really matter.

    → 11:03 AM, Aug 1
  • On this day

    Last week I added a new archive page to Micro.blog-hosted sites. It includes dates and the first part of each post, marked up with Microformats. Jonathan LaCour used this to write a script that parses the HTML looking for posts on today’s date in previous years, then pulls the full content for each post it finds and assembles them together.

    But it gets better. After Jonathan mentioned that it took quite a while to parse the large HTML file, I added a JSON Feed version of the archive page. If you’ve posted to Micro.blog since yesterday, this has been created for you at your-domain.com/archive/index.json. Jonathan updated the script to use the JSON Feed and it can now return the “on this day” posts very quickly, with no configuration needed because it’s all driven from a JavaScript include on your blog.

    You can see this in action on my own blog’s on this day page. It works for any Micro.blog-hosted blog by pasting in a few lines of HTML from the Micro Memories project on GitHub.

    This is the potential for indie blogging and simple formats. Adding a feature to Micro.blog-hosted blogs enabled a new tool I hadn’t even thought of. There was some discussion in the IndieWeb chat, but it took very little coordination because all of this is built with web stuff, not proprietary APIs.

    → 10:10 AM, Jul 31
  • Anchor on free podcasting

    Nir Zicherman has a post on Medium about how podcast hosting should be free. Nir is the co-founder of Anchor, a company with $14 million in venture-capital funding. Nir writes:

    Back in the day, you would have had to pay to store your photos online. But that outdated business model has virtually disappeared thanks to platforms like Google Photos, Instagram, Imgur, and others. At Anchor, we believe the notion of charging creators to host their content online is antiquated and unfair. And above all else, it serves as a barrier that prevents the podcasting ecosystem from growing and becoming more diverse, because it limits it to only those voices who can afford to pay.

    I think Nir misses something important in his post. Many podcasts do not need to be directly monetized with ads, network memberships, or even listener donations. I never want ads on my short-form podcast Timetable, for example. I record Timetable because I enjoy it and because it helps people understand what we’re trying to do with Micro.blog, which in turn indirect benefits the platform. I want my own podcast at my own domain name so that I’m not dependent on a company that may or may not be around in a few years.

    (Also, it’s misleading to say that it only costs Anchor $1/year to host a podcast. That might cover hosting, but it skips over all the other business costs including engineering, marketing, and support.)

    Anchor seems to be going for the YouTube model. They want a huge number of people to use their platform. But the concentration of so much media in one place is one of the problems with today’s web. Massive social networks like Facebook, Instagram, and YouTube have too much power over writers, photographers, and video creators. We do not want that for podcasts.

    Micro.blog podcast hosting isn’t free. It’s $10/month. But for that price you get not just a podcast feed but also a full hosted blog with support for microblog posts or longer essays, photo blogging, custom themes and CSS, posting from a bunch of third-party apps and our iOS microcasting app Wavelength, and most importantly everything at your own domain name so you own the content. The competition for Micro.blog isn’t Anchor; it’s Squarespace and WordPress.

    Some things are worth paying for. I share Nir’s goal that podcasting should be more accessible and more affordable to more people, but it’s dangerous to give one company too much control over podcasting. Anchor’s business model demands scale. It’s still unclear how that will play out.

    → 12:11 PM, Jul 23
  • Faster publishing in Micro.blog

    Last week I parked myself at a coffee shop one morning and re-architected how blog publishing in Micro.blog works. As some of you know, hosted blogs on Micro.blog are based on Jekyll. While this has some advantages that I wrote about in 2016, it brings some performance drawbacks as well. I’ve incrementally improved it with tweaks over the last year, but last week I finally blocked out enough time to solve more of the performance trade-offs with using Jekyll.

    When you post to Micro.blog now, it will publish your new blog post on the web right away. It will also update the JSON Feed and bring the new post into the timeline. Then in the background, it will update the site index and other related pages.

    This should have a dramatic impact to posting and seeing the new post show up in the Micro.blog timeline, especially for blogs with thousands of posts. Moving my own site (and it’s 2700+ blog posts) from WordPress to Micro.blog has been a great way to test these changes.

    → 10:31 AM, Jul 23
  • Web rings are back

    One reason that IndieWeb Summit was such a success was the range of projects to come out of the second day as attendees worked on their own projects. There were new tools and features of existing platforms, but also personal site updates and just fun stuff. And web rings are fun!

    I know, I know… Is it 2018 or 1998? I’ve added a help page on Micro.blog for how to add a web ring to your blog using 🕸️💍. One of the great things about microblogging at your own domain name is you can experiment with features like this.

    Daniel and I talk a little more about this on the new episode of Core Intuition out today. Enjoy.

    → 3:01 PM, Jul 13
  • Replacing 1 billion-user platforms

    I don’t read Medium often, but I do let the service send me weekly emails with posts I might be interested in. For some reason, this week’s email included a Jason Calacanis post from April about funding a Facebook replacement:

    LAUNCH is going to fund seven, purpose-driven teams that want to build a billion-user social network to replace Facebook.

    This is the wrong idea. We do not need another social network with 1 billion users. Part of the problem is having so many users and so much power concentrated in one place. And setting out to achieve 1 billion users means it’s an ad-based platform that will inherently revisit many existing problems. (The rest of the goals in Jason’s post I can get behind, though.)

    Micro.blog will never be that big. What we need instead of another huge social network is a bunch of smaller platforms that are built on blogs and the open web.

    → 10:38 AM, Jul 13
  • Following users UI reset

    At the beginning of the week I announced several new features in Micro.blog, including a change to show who someone is following on the web version of Micro.blog. While working on this feature, I inadvertently changed the behavior to remove you (while browsing a user’s profile) from the list of who someone was following. If you looked at a user’s profile, you were never in their following list even if they did follow you.

    While this was a bug, there was a long thread on Micro.blog with some good arguments for why this change was actually a feature. We shouldn’t have to worry about checking whether someone follows us. After all, an important part of Micro.blog is to never show follower counts, and to never let a feature grow into a popularity contest and source of judgement. The content someone posts should speak for itself.

    This created a lot of confusion, though, because it didn’t work like anyone expected. I think even the people who liked it could tell something needed to change.

    I was out of town this week and away from my computer most of the day. This left me some time to try to see both sides of this feature, and I kept coming back to this: the whole point of showing who someone is following is to discover new users. It’s not about how many people they are following. It’s not about whether they are following you.

    (As an aside, with a platform based entirely on blogs, no one should read too much into followers anyway, because it doesn’t count all the people who might read your blog in an RSS reader or find it from a Google search.)

    I’ve now tried to reduce this feature to its simplest form that solves the problem of finding new users. So in the latest version of Micro.blog on the web and native macOS app, I’ve reverted the change from earlier this week and replaced it with a list of who someone is following that you aren’t following already. We’ll be updating the iOS app as well and submitting it to Apple.

    From an API standpoint, the previous behavior is still available. Third-party apps can make the best choice for the user experience they’d like to see, although if people like this change I’d encourage third-party apps to also adopt it.

    Thanks to everyone who offered feedback on Micro.blog or in email. It means a lot to us that y’all care that we get this stuff right.

    → 9:12 AM, Jul 12
  • New features this week

    I rolled out several new features to Micro.blog today:

    • LinkedIn cross-posting. I don’t use LinkedIn very often, but I kept hearing this request enough that it slowly bubbled up to the top of the priority queue as I was making improvements to cross-posting. Micro.blog can now send any new post to LinkedIn automatically.
    • Show following users on the web. For a long time you’ve been able to see who someone is following in the native apps, but not on the web version of Micro.blog. Now the web version more closely matches the experience on iOS and macOS. This is a nice way to discover new users to follow. (We still never show followers or follower counts.)
    • Better hosted page redirects. Blogs hosted on Micro.blog can have pages in the navigation for things like contact information, a resume, current projects, books you love, etc. If you want to link to an external site, you can just paste the URL into the contents of the page. These redirects work better now without briefly loading the blog layout.
    • Indiepaper for saving articles to read later. This is an experimental feature inspired by some ongoing work in the IndieWeb community. There’s a help page if you’re interested in learning more. I’ll have some more thoughts later on how this might evolve.
    • Pass-through legacy URL redirects. The last missing piece to migrate my main blog with 16 years of posts to Micro.blog hosting. Because I had accumulated so many random files on manton.org that I didn’t want to migrate, this feature allows me to have Micro.blog host all posts and photos, but if Micro.blog sees a URL it doesn’t recognize it can forward that to a different URL on the old server. (I’ll be enabling this manually for people who need it for now.)

    It’s really nice to finally have manton.org hosted on Micro.blog. I’ve learned a lot going through this that I can use to help others migrating away from Wordpress.

    I also cleaned up the text on a few pages and made other small bug fixes. Thanks for using Micro.blog! Your support means we can keep making it better.

    → 9:30 AM, Jul 9
  • Migrated manton.org to Micro.blog hosting

    Tonight I imported all my WordPress posts from manton.org and moved them into Micro.blog hosting. I learned a lot keeping my blog on WordPress even after launching Micro.blog, but as Micro.blog-hosted blogs improved, it just made sense for me to migrate my 2700 posts over to the new platform.

    Micro.blog automatically redirects old URLs it finds in the WordPress import, but I’m still sorting out other changes that might be necessary after blogging for 16 years. (I started on Radio Userland, then Movable Type, and then WordPress.) The best thing about this move is that I’ll be able to better understand the needs of users who are also maintaining large sites on Micro.blog.

    When I was on WordPress, I had 2 separate RSS feeds: one for short posts, one for long essay-like posts. Micro.blog doesn’t have separate feeds like that, so you’ll likely notice this change in your RSS reader right away. New posts will appear and older posts will likely be marked as unread. Those blips should be temporary and then everything will be back to normal.

    I love how fast my site is now. Micro.blog-hosted sites are mostly static and much faster to load in your browser than my old WordPress site.

    → 11:28 PM, Jul 8
  • Twitter power users

    Great article by Felix Salmon on Wired last month about Twitter, found via Buzz Andersen’s blog:

    Twitter is becoming increasingly concentrated on a tiny core of power users. It’s less and less a distributed mode of many-to-many communication, and more and more a broadcasting hub for the elite—a highly unequal place where their least-considered, Ambien-addled opinions get amplified to a global audience of millions.

    When Micro.blog launched, not showing follower counts at all seemed like a big risk. Now I think it’s recognized as a great feature. If we want an inclusive, welcoming community, the UI should encourage that by presenting everyone as equals.

    → 9:47 AM, Jul 7
  • Twitterrific changes for API deprecation

    Iconfactory has had to make some difficult choices for the latest update to Twitterrific. From the release history:

    In the coming months, Twitter plans to discontinue the underlying services that we need to provide both push notifications and live streaming. As a result, we did not feel it was right to keep selling the push notification in-app purchase since we will soon be forced to shut it down. To that end, we've consolidated our in-app purchases to a single "Enhanced" option which eliminates ads and unlocks Google Translate.

    More from their blog post:

    We sincerely wish Twitter would have offered third party developers a better way forward for our customers. Apps like Twitterrific helped build Twitter’s brand and expand its user base. We even contributed to its lexicon and feature sets (Tweet tweet!) Twitter’s priorities over the last several years, however, have shifted away from end users and toward brands and big companies. We have no choice but to adapt as best we can.

    I post tweet-like short posts to my own blog first and then let Micro.blog send a copy to Twitter, so I don’t use Twitter very often except to check replies a few times a day. Looks like Iconfactory is making this as smooth a transition as possible for existing customers. If you were wondering if Twitter’s API changes were ever really going to affect Twitter users, this release of Twitterrific is your answer.

    → 2:59 PM, Jul 5
  • IndieAuth for external blogs

    Earlier this week I wrote about making Micro.blog an IndieAuth provider. This allows anyone with a Micro.blog-hosted blog to sign in to IndieWeb-compatible apps. For example, using OwnYourGram to automatically copy Instagram photos to your own blog on Micro.blog.

    I’ve now expanded this support to let anyone use Micro.blog to authorize an app even if your blog is hosted outside of Micro.blog. If you host somewhere else, you’ll still be responsible for setting up posting, but having basic IndieAuth support can be useful if you want to connect your blog to tools that don’t need to post, like IndieWeb Ring or the IndieWeb.org wiki.

    There are instructions on this Micro.blog help page for adding the appropriate HTML tags to your site.

    → 8:21 AM, Jul 4
  • The web is the social network

    In my talk at Peers Conference earlier this year I closed with this quote from Brent Simmons:

    Micro.blog is not an alternative silo: instead, it’s what you build when you believe that the web itself is the great social network.

    I’ve been thinking more about Brent’s post since then, and so for the keynote that Jean and I gave at IndieWeb Summit last week I wanted to start with that quote. Many people have written nice testimonials about Micro.blog, but this one really seems to capture the goal.

    It should come as no surprise that I liked Brent’s full post from February about why Micro.blog isn’t like App.net. He made the case even better than I usually do, about how the web is more important than any one platform:

    But if you think of the years 1995-2005, you remember when the web was our social network: blogs, comments on blogs, feed readers, and services such as Flickr, Technorati, and BlogBridge to glue things together. Those were great years — but then a few tragedies happened: Google Reader came out, and then, almost worse, it went away. Worse still was the rise of Twitter and Facebook, when we decided it would be okay to give up ownership and let just a couple companies own our communication.

    Micro.blog is one of the first platforms to focus on domain names that decouple the timeline from post storage. Anyone can post a Micro.blog-hosted site at their own domain name today and move it all somewhere else tomorrow. It’s a simple, IndieWeb-friendly architecture that we think is essential to the next phase of the web.

    → 2:37 PM, Jul 2
  • Micro.blog-hosted footer HTML and redirects

    I’ve added 2 new features to Micro.blog-hosted blogs:

    • There's a new "Footer" button under Posts → "Edit Domain & Design" to enter any custom HTML or JavaScript on your microblog's theme. This is inserted before the </body> tag.
    • The pages added under Posts → Pages can now redirect to an external web page. Just enter a full URL beginning with "http" as the contents of the page and Micro.blog will instead send the user to that URL. (Expect some improvements to this in the future.)

    Thanks for your support. The $5/month for blog hosting might not seem like much, but it makes a big difference as we grow the Micro.blog platform and add new hosted blog features.

    → 9:29 AM, Jul 2
  • IndieAuth for Micro.blog

    After posting about my time at IndieWeb Summit and the new IndieBookClub support, let me give some more details on what IndieAuth means for Micro.blog. I spent the second day of IndieWeb Summit working on this, and it has now been rolled out to all Micro.blog users. (If you haven’t posted in the last few days, after your next post your microblog will be updated with the new authorization endpoints.)

    IndieAuth lets you sign in to other apps using your own domain name. If Micro.blog is hosting a blog for you, you can use that custom domain or your subdomain like yourname.micro.blog to sign in.

    While this was possible before with extra configuration to delegate auth to another service, Micro.blog can now be an IndieAuth provider on its own. It’s much easier for IndieWeb apps to work with Micro.blog.

    Here are some apps that work great with Micro.blog:

    • Quill: web-based interface for posting to your microblog.
    • OwnYourGram: automatically post your Instagram photos to your microblog.
    • OwnYourSwarm: automatically post your Swarm check-ins to your microblog.
    • IndieBookClub: post what books you're reading or want to read.
    • Omnibear: Chrome or Firefox extension for quick posting.
    • IndieWeb Ring: wait… what?

    I’m really happy with the progress over the last week because it makes Micro.blog-hosted sites more useful. As I mentioned in my IndieWeb Summit keynote, the business model for Micro.blog is aligned with what users need. If you pay for Micro.blog hosting, we’ll keep making it better without worrying about ads or other user-hostile distractions.

    → 8:24 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.

    → 2: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.

    → 1:34 PM, Jun 30
  • Seth Godin and blogging every day

    Great post by CJ Chilvers about blogging regularly, via Micro.blog user @kaa, with a quote from Seth Godin’s podcast. Seth says to blog every day…

    …because of the discipline it gives you, to know that you’re going to write something tomorrow. Something that might not be read by many people—it doesn’t matter—it will be read by you. If you can build that up, you will begin to think more clearly. You will make predictions. You will make assertions. You will make connections.

    CJ adds:

    Nothing has been healthier for my idea generation than to throw out ideas. Once they’re in the public, they feel completely gone. I’m free to come up with new and better ideas. And I do.

    For more people to blog more often, blogging has to be easier. That is a key premise of Micro.blog — why blogging UIs should take inspiration from Twitter and Instagram, and why we have little incentives like unlocking the 30-day pin on Micro.blog for blogging every day.

    → 4:01 PM, Jun 23
  • Core Intuition 330 and WWDC

    We just posted our pre-WWDC podcast episode:

    Manton and Daniel check in just before WWDC to talk about expectations from the conference, and strategies for saving money on the trip. They indulge in a bit more Siri criticism, hope that Apple will announce new MacBook Pros, and question whether Apple will dare to poke fun at Google’s Duplex technology during the keynote.

    If you’ll be in San Jose, hope to see you at the Micro.blog lunch meetup on Tuesday. I’d love to talk to listeners about Micro.blog or Core Intuition, and we have a major update to Sunlit in beta that I’ll be showing off.

    → 9:02 AM, Jun 1
  • Twitter streaming API and Micro.blog

    The writing has been on the wall for years. Now that Twitter plans to move ahead with deprecating APIs that apps like Twitterrific and Tweetbot use, it’s even more clear that there’s no overlap between Twitter’s priorities for the API and what traditional clients need.

    When I wrote about Icro, the first third-party app for Micro.blog, I said that I always want to encourage other developers building for Micro.blog. It’s worth exploring how these Twitter API changes compare to Micro.blog and how we can improve.

    The streaming API is a big part of this. Twitter apps currently use the streaming API to deliver tweets in real-time without polling, or to notice when someone is @-mentioned so that a push notification can be delivered. Losing this API is especially frustrating because it means developers need to rewrite a bunch of code only to make their apps a little worse instead of better.

    Micro.blog doesn’t actually have a streaming API yet. Micro.blog supports multiple APIs, but no persistent connection. The new app Icro doesn’t have push notifications, although the official Micro.blog app does. For a brand new app like Icro, it would be a lot for the developer to also run a server just to do push notifications.

    As I think about how we solve this, I remember a discussion in the Twitter developer community when the iPhone first got push notifications. It was an open question: should Twitter third-party developers run their own servers for push notifications, or should Twitter itself deliver push notifications on behalf of third-party apps? Obviously third-party developers have had to run their own servers.

    I think a goal for us with Micro.blog should be that third-party developers get access to the same basic tools that we use to build our own apps. Rate-limits should be the same for an app like Icro as they are for the official Micro.blog app, for example.

    With that in mind, I’ve mentioned before that I’d like to offer a push notification service for developers. iOS and Android developers could upload their push notification credentials from Apple and Google. Micro.blog would store them and deliver push notifications directly to third-party apps.

    This has a few pretty big advantages:

    • Third-party developers won't need to run their own servers. This levels the playing field so that any Micro.blog app, no matter how small, can offer basic features like notifications.
    • Push notifications are more capable now than at their introduction in 2009. They can be used not just for an alert message but for silently sending data to an app in the background, such as when new posts have been added to someone's timeline.
    • It's more efficient. Instead of keeping persistent connections open to Micro.blog servers, Apple and Google handle the persistent connections between devices and the cloud. Micro.blog can simply forward @-mentions to the clients that have requested them via Apple and Google infrastructure.

    This is a little bit of extra work for Micro.blog, but Micro.blog is already doing similar processing when a reply comes through. For every reply to a blog post, Micro.blog checks if there is a Webmention endpoint so that it can forward that reply to an external site, such as one hosted on WordPress. Opening up push notifications feels like a natural extension to that.

    Some developers might not be comfortable outsourcing this to Micro.blog. That’s fine. In particular I’d like to hear any concerns over security or features where this approach would be too limited. (To be clear, we’d offer this for free. Our business is blog hosting.)

    Back to the Twitter news. John Gruber summed it up this way:

    Twitter isn’t explicitly saying that they’re shutting down third-party clients, but I don’t know that it’s feasible for them to exist if they don’t have access to these APIs. It’s like breaking up with someone by being a jerk to them rather than telling them you’re breaking up.

    That’s a great analogy. Micro.blog is barely a year old, so there is plenty still to do, and there are parts of the API that aren’t as mature yet as they will be. But I think we’re transparent about what we’re trying to do and how we can support developers. We’re not going to be jerks about it.

    I’m really excited by what I’m seeing from the community. Icro is in the App Store. Slate is another iPhone app currently in beta. Dialog for Android is in the Google Play Store as a public beta. And then there are all the apps following IndieWeb standards that are compatible with Micro.blog.

    WWDC is only a couple weeks away. We’ll have a Micro.blog meetup on Tuesday (June 5th) at lunch. I’d love to talk to developers at the meetup or anytime that week in San Jose to get feedback on how we should handle streaming and notifications.

    → 10:42 AM, May 18
  • Twitter executing on 2012 vision

    I’ll have more to say tomorrow specifically about the technical side of Twitter’s streaming API, but for now I want to highlight where this all started. In August 2012, Twitter posted to their blog about upcoming changes to their API. This was the post with the infamous 4-quadrant chart showing which third-party apps Twitter wanted to encourage, and which apps (in the upper-right quadrant) they didn’t want third-party developers to work on anymore.

    From the post:

    In the upper right-hand quadrant are services that enable users to interact with Tweets, like the Tweet curation service Storify or the Tweet discovery site Favstar.fm.

    Although it wasn’t clear in the blog post, Twitter later clarified that Storify and Favstar were fine. Nevertheless, Storify announced last year that the service would be shutting down… tomorrow, actually. Favstar is shutting down next month.

    The post from Twitter continues:

    That upper-right quadrant also includes, of course, “traditional” Twitter clients like Tweetbot and Echofon. Nearly eighteen months ago, we gave developers guidance that they should not build client apps that mimic or reproduce the mainstream Twitter consumer client experience.” And to reiterate what I wrote in my last post, that guidance continues to apply today.

    It has taken nearly 6 years, but it feels like today’s API changes finally wrap up the work that started in 2012. The apps that are possible with the new Account Activity API are exactly the apps that were encouraged in those other quadrants. The pricing makes no sense because it wasn’t designed for traditional Twitter apps like Twitterrific and Tweetbot.

    Two months after that post from Twitter, I quit the platform and stopped posting to @manton in protest. I only wish I had started working on Micro.blog immediately in 2012.

    → 9:17 PM, May 16
  • IndieWeb Summit invite

    I’ll be attending IndieWeb Summit next month. If you’re interested in indie blogging or what we’re doing with Micro.blog, consider joining us for the 2-day conference in Portland. I like how gRegor Morrill highlighted that the group should be more than just programmers:

    You don’t need to be a programmer! In fact, I would love to see more non-programmers attending. We need writers, graphic artists, designers, UX engineers, and anybody that wants to reclaim some of their online presence with a personal website.

    There’s a lot of overlap between the Micro.blog and IndieWeb communities. As we’re now in Micro.blog’s 2nd year, I expect the platform to become more mature, and I’ll be wrapping up a few loose ends with IndieWeb technologies. IndieWeb Summit will be a great time to reflect on what we’ve been able to do and look to what’s next.

    → 9:49 AM, May 12
  • More whimsical

    People often write about Micro.blog, but I don’t usually do a good job of pointing to all the reviews. A new blog post this week from Lance Somoza stood out to me:

    It reminds me of the earlier days of the Internet, where everything was more whimsical and less threatening than the current status quo. When it comes to free services, we have sadly come to expect a gimmick, trade-off, or worse in exchange for our data. Micro.blog’s opposition to this idea, simply makes it a joy to use.

    Thanks everyone for taking a chance on the platform. I’m really happy with how the platform has grown, from new photo blogs and microcasts to third-party apps like Icro. We don’t have ads and we don’t have venture capital funding. The support from the community drives everything.

    → 8:26 AM, May 10
  • 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.

    → 8:11 AM, May 9
  • One year of Micro.blog

    I’ve never sent an email to all Micro.blog users until today. As indie developers, sometimes I think we worry so much about accidentally spamming a customer that we err too much on the side of sending essentially no email. As we’re at about the 1-year mark for Micro.blog, it seemed like a good opportunity to send an update. Here’s the text of the email that went out.

    A little over a year ago we started rolling out Micro.blog to Kickstarter backers. So much has happened since then — from new Micro.blog platform features to companion apps like Sunlit and Wavelength — that I wanted to highlight a few milestones.

    First, thank you for your support. We wouldn’t be able to continue to improve Micro.blog without the feedback from the community. Special thanks to everyone who has supported Micro.blog directly with a paid plan for a hosted microblog.

    If you haven’t checked out Micro.blog lately, here are some things that happened just in the last few months:

    • We launched a microcast called Micro Monday to feature members of the community. Each week, a different Micro.blog user joins Jean MacDonald for a quick interview about how they blog and what they like about Micro.blog.
    • To make it easier for anyone to create a short podcast, Wavelength lets you record, edit, and publish a microcast from your iPhone. You can also upload MP3s from the web and serve a podcast at your own domain name.
    • Sunlit is our iOS app for posting photos and discovering photos and new Micro.blog users to follow. It's a free app with more control over publishing stories with photos, text, and different filters.
    • There's a new theme for hosted microblogs called Marfa. We use this theme on Micro Monday.
    • Medium was added as a cross-posting option. Post to your own blog and Micro.blog will automatically send a copy to Medium.
    • Expanded the Discover section on the web and in the native apps to highlight photos, podcasts, and more. It's a great place to see what people are posting about or find new people to follow.

    You can always add a new hosted microblog or upgrade a trial by clicking “Plans” from Micro.blog on the web.

    Any questions or feedback? Don’t hesitate to let us know: help@micro.blog.

    — Manton

    → 2:50 PM, May 1
  • Demo of Micro.blog 1.3.4

    We shipped version 1.3.4 of the Micro.blog iOS app. It includes a bunch of photo-related improvements and bug fixes, including better support for non-square photos.

    We’re on a bit of a roll with Micro.blog, shipping microcast hosting, our brand new app Wavelength, a new blog theme, and this iOS update all in the last week. Great time to join or come back to the platform.

    → 8:15 AM, Apr 20
  • Wavelength 1.0.2

    We just wrapped up a bunch of improvements to the initial Wavelength for Micro.blog app. Here are the changes:

    • Updated MP3s to 128 kbps, mono. We'll consider adding a preference for quality and stereo in the future.
    • Fixed playback volume using correct iPhone speaker.
    • Fixed a few potential crashes and improved publishing error messages.
    • Fixed Auphonic username field to not use auto-correct.
    • Fixed glitches with consistently using external microphones.
    • Fixed error sometimes when splitting segments.

    I recorded and edited the last 2 episodes of Timetable exclusively with Wavelength on my iPhone X. It’s really great to see some new microcasts pop up over the last few days. Thanks for trying it out!

    → 12:54 PM, Apr 18
  • 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!

    → 1:01 PM, Apr 12
  • Apps of a Feather

    I posted a link to this last week, but it’s worth some additional comments. Apps of a Feather is a new site to spread awareness about upcoming Twitter API changes:

    We are incredibly eager to update our apps. However, despite many requests for clarification and guidance, Twitter has not provided a way for us to recreate the lost functionality. We've been waiting for more than a year.

    I have a long history with Twitter. I was user #897. I built multiple apps for the platform. I invested so much of my time and code into the Twitter ecosystem.

    Then Twitter leadership showed us the future, and it was clear that third-party developers had little or no place in it. It was just a matter of time. And now, maybe time has run out.

    If you still love Twitter, absolutely tell them to reverse course and rebuild their relationship with third-party developers. These are great apps and great developers, and I don’t want to see their business cut down because of a developer-hostile platform outside their control.

    Meanwhile, we’re working to make Micro.blog better every day. It’s the most ambitious thing I’ve ever worked on. Building for the open web needs to be done in parallel to hoping the other social networks improve, whether you’re still waiting for those sites to do the right thing, or already know it’s time to move on. I only wish we had started sooner.

    → 7:50 PM, Apr 9
  • Core Intuition 322 and the Mac Pro

    We just posted Core Intuition 322. From the show notes:

    Manton and Daniel react to Apple’s news release about expectations for the Mac Pro coming in 2019. They speculate about what could explain such a long delay, and Daniel devises a theory, or pipe dream, that the Mac Pro may be ARM-based. They also discuss Apple’s disclosure of a Pro Workflow Team comprised of creative professionals, and compare it to Apple’s apparent study of the needs of education professionals. Finally, an update from Daniel about MacBook Pro keyboard repairs, with a surprise twist!

    Stephen Hackett also commented today on Matthew Panzarino’s visit to Apple Park to get a status update on the Mac Pro:

    There’s also the increased rumors around ARM-powered Macs. Like with the Intel transition, Apple’s pro products will surely be the last to make this move. It may be that 2019-ish Mac Pro will be the Intel Mac’s swan song.

    I think Stephen is right, but on Core Intuition today we explored the opposite: what if the 2019 Mac Pro is the first ARM-powered Mac? What it was like to be at WWDC when Apple announced the Intel transition, the value of third-party pro apps, and much more on this episode. Enjoy!

    → 3:55 PM, Apr 5
  • Core Intuition 321

    We start this week’s Core Intuition talking about the Apple education event in Chicago. More in the show notes:

    Daniel and Manton talk about Apple’s Chicago education event, and Apple’s challenge in breaking into the education market so dominated by Google. They scrutinize whether the special event was “event-worthy” or not. Daniel talks about his motivation problems with shipping MarsEdit updates, and complains again about App Store Review uncertainty. Finally, they talk about the challenge of knowing whether a product with lackluster success is on the brink of something great, or should be moved on from.

    Thanks for listening and subscribing to the show.

    → 1:51 PM, Mar 30
  • Demo video for multiple blogs

    We released an update to Micro.blog for Mac today with support for multiple accounts. I created a quick screencast video to show off what it looks like:

    There’s also a new help page with some more information about why you might want separate accounts or blogs.

    → 10:57 AM, Mar 26
  • 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.

    → 9:24 AM, Mar 23
  • Rethinking the Apple Watch platform

    David Smith has shared the stats he’s been collecting on Apple Watch usage from his apps, hoping that Apple will drop support for the original Apple Watch (Series 0) sooner rather than later:

    So far the data is looking promising that this dream of mine might actually be possible. The Series 3 is being adopted incredibly quickly and just last week became the most popular Apple Watch overall amongst my users with 33% of the overall user-base. The Series 0 is steadily falling, currently at around 24%.

    Federico Viticci adds this in his link from MacStories:

    I've been wondering about when Apple could drop support for the original Apple Watch in new versions of watchOS. For context, the original iPhone, launched in 2007, couldn't be updated to iOS 4 in 2010, three years later. The Apple Watch will have its official third anniversary next month.

    The big difference between the Apple Watch and the original iPhone or iPad is that many people (perhaps most) do not run third-party apps on the watch. Those people are not even counted in David Smith’s numbers. Unlike the iPhone and iPad, which are significantly improved with new apps, the Apple Watch is pretty good with only the built-in Apple features.

    After a few years, I still wear my Series 0 every day. Here’s what I use it for:

    • Telling time. Also glancing at the upcoming event.
    • Notifications from Slack and Micro.blog.
    • Fitness. I don't launch the Workout app. I just let the watch notice when I'm exercising.

    For these tasks, performance and API support just don’t matter as much. The way I use my Apple Watch is the equivalent of someone who only tells a HomePod to play Apple Music and asks no other questions. A little sad, but it works fine and I expect to keep the Series 0 for another year or so before upgrading.

    I feel for developers who want the Apple Watch to be a much more mature platform. I want that too. But I don’t think it’s as simple as copying what has worked for native apps on Apple’s other platforms.

    The future of the Apple Watch isn’t just better widgets; it’s voice. Both WatchKit and Siri need a major shakeup. Apple should make Siri more consistent across Apple Watch, iPhone, and HomePod, with a more flexible server-based API like Alexa. If they can do that while also rethinking WatchKit at the same time, even better.

    → 10:44 AM, Mar 16
  • Core Intuition 319 and WWDC

    The latest Core Intuition is out. Daniel and I talk about WWDC and related topics for the full episode:

    Daniel and Manton talk about Apple’s announcement that WWDC is officially happening in San Jose again. Daniel struggles to make a financial case for attending, while Manton continues to believe it’s essential to at least be in town for a few days. They talk about the possibility that other conferences would be a better use of time and money. Finally, they indulge a little speculation about WWDC and whether the promo art ever hints at any of the actual news to be announced.

    Thanks for subscribing! Looking forward to seeing some Core Intuition listeners out in San Jose.

    → 12:14 PM, Mar 15
  • Introducing the Micro Monday microcast

    We’ve started a new podcast! Jean MacDonald will be hosting a weekly show talking with members of the Micro.blog community. I join her on the first episode to talk about our blogs and goals for the podcast.

    You can listen to Micro Monday on the web, subscribe in Overcast, or follow @monday on Micro.blog. Thanks for listening! Update: Check out our subscribe page for more links.

    → 4:20 PM, Mar 12
  • 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.

    → 6:17 PM, Mar 9
  • Core Intuition 318 and Sunlit

    We just published this week’s episode of Core Intuition, talking about the new Sunlit release and other topics. From the show notes:

    Manton and Daniel celebrate Sunlit 2.0’s release, and talk about the decision to make it a free app that supports the Micro.blog platform. Daniel admires Manton’s proclivity for shipping new things, and they both despair the difficulty of canceling existing projects. Daniel rants modestly about the difficulty of getting his MacBook Pro keyboard repaired, and finally, they discuss the App Stores and the ongoing disparities between Mac and iOS versions of them.

    Thanks for listening!

    → 3:48 PM, Mar 8
  • Sunlit 2.0 now available

    We rebuilt Sunlit for 2.0 so that it’s focused around blogs. You can collect photos together in stories and publish them directly to a Micro.blog-hosted site or compatible blogs such as WordPress. It’s a free download. (If you need a great place to host your photoblog, consider signing up for a paid microblog on Micro.blog.)

    To show off Sunlit in the App Store, I created a few app preview videos. Here’s one of them:

    Thanks for your support. Sunlit 2.0 is just the beginning for what we want to do with photos and microblogging. Hope you enjoy it.

    → 10:36 AM, Mar 7
  • Blade Runner 2049

    Rewatched the original Blade Runner recently, and finally saw the sequel last night. As with all great films, still thinking about it the next day. The parts that were good, were really good.

    There was a conversation on Micro.blog about the length. It would have been an even more powerful movie with a couple scenes cut short. Maybe it could have squeezed into a PG-13 rating too.

    Nevertheless, it holds its own with the original. I say this as a compliment: a rare sequel that is no better or worse. Feels unique but consistent — in pacing, visuals, and music — as if 35 years haven’t passed since the first one. Loved it.

    → 9:32 AM, Feb 15
  • Micro.blog 1.3.3 is out

    The new update to Micro.blog for iOS is now available in the App Store. As I wrote about yesterday, it includes an improved conversations gesture. Here’s the full list of changes:

    • Added swipe left on a post to view the conversation.
    • Added feed settings button when writing a new post for quickly toggling off cross-posting.
    • Added confirmation alert when removing a post.
    • Updated character counter to not include Markdown.
    • Updated sharing from other apps to not use the current draft or save it.
    • Fixed compatibility with some XML-RPC servers.
    • Fixed opening conversations from links in the timeline.

    Enjoy!

    → 11:12 AM, Feb 7
  • Micro.blog conversations gesture

    I just submitted a new update to the Micro.blog iOS app. It adds a couple new features, including better support for quickly toggling off cross-posting, but what I’m most excited about is swiping to view conversations. Here’s a 45-second screencast demo:

    It should be out in a couple of days after Apple approves the release. Thanks for supporting Micro.blog.

    → 11:09 AM, Feb 6
  • Snapthread

    A couple years ago on a trip, I finally tried Instagram Stories. Because I don’t like posting things that disappear, I planned to keep copies of all the short videos from my story, and then stitch them together in Final Cut, add some music, and publish them to my blog once a week. It didn’t take long to give up on this. Instagram and Snapchat make it easy to share on their network, but difficult everywhere else.

    I much prefer Snapthread’s approach. Becky Hansmeyer has created an app that does exactly what I was trying to do, but instead of fumbling around with Instagram and Final Cut, it’s effortless. And it works with live photos. Highly recommend checking this out in the App Store.

    → 3:42 PM, Jan 31
  • No applause for retweets

    DHH writes about how Basecamp is experimenting with removing their “applause” feature — the clap icon that Medium has also recently adopted:

    But as I read through the replies from the few dozen people who answered the question on any given day, I was faced with the dilemma of the clap. If I applauded an update from Sam yesterday, but don’t today, does that mean I’m expressing discontent with the most recent work? If I don’t applaud for Javan on the same day as I applaud for Sam, does that mean I’m parting favor of one over the other?

    The problem with these “just click a button instead of sending an actual reply” features is that they fool us into thinking we’ve done something meaningful by clicking. Anyone can click a Twitter heart button to show that they’ve noticed a tweet or enjoyed it. It takes very little effort and doesn’t mean much.

    On Micro.blog, favorites are private. They are just for your own use, like bookmarks. We’ve found that the lack of public likes encourages people to reply to posts instead, even if it’s just a quick “Thanks!” or “That’s great!” or other comment. It’s a little more meaningful because it requires a bit of effort.

    In an interview with Piers Morgan, Trump said something revealing when pressed on his retweets of a racist group:

    Well, I know nothing about them. I did a retweet. You know, retweets... sometimes you do... retweets are very different. When you do your own tweeting, when you do your own social media, it's fine. When you do those retweets, sometimes they can cause problems.

    What Trump is trying to say is that retweets aren’t as important as a tweet you type yourself. Retweets encourage a sort of thoughtless approach to sharing.

    We don’t like retweet counts or follower counts in the UI of Micro.blog, because it’s another place for judgement — “this person must not be very interesting if they have so few followers” — instead of letting someone’s content speak for itself. Likes, claps, and retweets aren’t a substitute for a real conversation. We’ll eventually have some form of public reactions on Micro.blog, but we aren’t in any hurry to get there.

    → 11:38 AM, Jan 30
  • Micro.blog theme updates

    Over the last couple of days we’ve shipped a few improvements to Micro.blog. There’s an update to the Mac version with some bug fixes and better support for showing the title field when you’re writing a longer blog post. The default themes have been updated too.

    It’s also much easier to preview themes for your microblog. Under your account there’s now a “Preview Themes” button that lets you click through and test out the themes. Here’s a 10-second screencast recording to show how it works:

    → 11:45 AM, Jan 29
  • Sunlit beta update

    Yesterday we sent Sunlit 2.0 to beta testers. The feedback has been great so far. We just pushed a new version with several important fixes, especially to publishing existing stories.

    It’s a little overwhelming to ship a brand new app in the middle of everything going on with Micro.blog — opening the platform to new users, trying to stay on top of bugs and feature requests, and planning for the future. But it just feels right that Sunlit should be part of the Micro.blog suite.

    We love photos and we love blogs. Sunlit combines those things in a way that accommodates more advanced features than can fit in the main Micro.blog app.

    Micro.blog makes it as easy to write a quick short post as it is to send a tweet. The timeline and simple posting interface are part of that. Sunlit supports microblog posts while taking a different approach in the UI, focused around stories and longer blog posts, whether they’re hosted on Micro.blog or elsewhere on the web. And we can do it without much fanfare on the Micro.blog server side because the technical scope of the platform already supports it.

    → 7:09 PM, Jan 25
  • Sunlit 2.0 demo

    Here’s a short screencast demo of the upcoming version of Sunlit. We’ve rebuilt it for blogging and Micro.blog. You can create stories with photos and text to publish to your blog, with editing and filters, plus a new Discover section for browsing photos.

    If you’d like to try the TestFlight beta, email help@micro.blog. You don’t need a Micro.blog account to use it — it also supports publishing to WordPress — but we think it makes a great companion to Micro.blog. Enjoy!

    → 11:42 AM, Jan 23
  • Core Int 313 and bonus episode

    We posted Core Intuition episode 313:

    Daniel and Manton talk about digging oneself out of customer support debt, and strategies for improving the efficiency of support mechanisms. They react to Apple’s disabling of free In-App-Purchases, and speculate about whether it was intentional or not. This leads them into a re-evaluation about the risks of selling on the App Stores, and the lure of selling directly to customers.

    And just for subscribers, Extra Intuition episode 4, with Daniel and I talking about cryptocurrency and my experience trying to cash out.

    → 5:10 PM, Jan 21
  • Interview on Colin Devroe&#039;s blog

    Colin Devroe interviewed me about Micro.blog:

    Yesterday I volleyed back and forth via email with Manton Reece, the founder and creator of Micro.blog. Micro.blog is in that same relatively early stage where new features are released with regularity, where the community is growing steadily, and where the users have the strongest voice.

    I’m happy with how the interview turned out. It’s one of the best summaries of what we’re trying to do with Micro.blog, all in one place. Hope you like it.

    → 11:09 AM, Jan 19
  • Fewer conferences

    Responding to a post by Chris Adamson about iOS conferences, Marco Arment notes that podcasts and YouTube have partially replaced the need to sit in a room and listen to someone give a talk:

    Podcasts are a vastly more time-efficient way for people to communicate ideas than writing conference talks, and people who prefer crafting their message as a produced piece or with multimedia can do the same thing (and more) on YouTube. Both are much easier and more versatile for people to consume than conference talks, and they can reach and benefit far more people.

    It can’t be overstated how important it is to meet people face to face in our community. I forgot to mention this: I’ll be attending Peersconf in Austin this April. This’ll be a new conference experience for me and I’m looking forward to it.

    → 6:39 PM, Jan 17
  • Update on microblogging with WordPress

    I wrote a short guide on microblogging with WordPress over a year before Micro.blog was opened to Kickstarter backers. A few things have changed since then, so it’s time for an update.

    There’s now a long introduction to WordPress and Micro.blog over at help.micro.blog. Parts of it are taken from my upcoming book, Indie Microblogging. I’m wrapping up the book for the first part of 2018 and will likely sell it online for anyone who missed the Kickstarter.

    → 9:49 AM, Jan 17
  • Share to Micro.blog and new apps

    Two great feed readers added support for Micro.blog this week: Evergreen and Feedbin. Evergreen is still in beta but improving quickly. Feedbin is a mature, well-designed RSS reader and sync service.

    Here’s Brent Simmons announcing the Micro.blog support in Evergreen:

    This is hugely important. RSS readers exist not to just make reading easy but to make the web a conversation.

    And Ben Ubois on the Feedbin blog writing about the new Feedbin sharing, including some thoughtful words for what we’re trying to do with Micro.blog:

    Micro.blog is good for blogging, because it acts as sort of gateway-drug into that habit. Say you start off just using it for Twitter-like microposts, but then you realize you have more you want to say. Micro.blog detects the length of your post and prompts you to add a title, turning that post into a full-fledged blog post.

    Support from Evergreen and Feedbin represent the start of a new wave of third-party support for Micro.blog. There are other third-party iOS apps and even an Android app in development, including Micron for iOS in public beta now. There’s also a command-line tool for the Micro.blog API called speck.

    Thanks for the support, everyone. If you haven’t tried Micro.blog yet, there’s a lot of activity in the community and in new apps. Now is a good time to join.

    → 12:01 PM, Jan 16
  • Core Intuition 312

    New episode of Core Intuition is out. We talk about what’s new with Micro.blog, cryptocurrency, and more:

    Manton talks to Daniel about just missing jury duty during a busy work week. They talk about the virtues of differentiating a product by both features and personality. Finally, they react to the Stellar cryptocurrency’s surprising value, and the potential for cryptocurrency and blockchain technology to change the world.

    Thanks for listening!

    → 1:53 PM, Jan 12
  • Discover books update, day 2

    I love how the Micro.blog community is using the new emoji topics that I wrote about yesterday. We started with books because many people were already sharing what they were reading or wanted to read in 2018. This is working out so well that I definitely want to improve and expand upon it.

    Some people have asked for more topics, and several already work: music, basketball, football, and tv. I’m thinking that some of these will pop up in the Discover section when they are actively being used, or when there’s a special event. For example, during the Super Bowl you’d see 🏈 to click on.

    On Micro.blog there were some good discussions around this feature. Chris Aldrich said he was already using different book-related emoji, and Ben Norris wondered about supporting those too:

    I love this! I thought I was ironic that you started it almost right after I went through and posted the books I read this last couple years on my microblog. I used 📖 instead of 📚 though.

    I decided to add the open book and bookmark to the books topic, so they all map to the same place, but stopped short of adding all the other single-book emoji because I thought they might be confused with notebooks. After a few more days it may be more obvious how we should treat this.

    Belle Cooper also had a good question about whether this is really much better than hashtags:

    This is a cool idea, but I'm not sure I get how it can't be gamed compared to hashtags. Or is that not the point of using emojis instead?

    My answer is that they can be gamed, but the limited number of emoji means we can have a better sense of what people are writing about. It’s just simpler. Also, the backend implementation is not a search; it’s a live collection of posts that is updated whenever Micro.blog sees something new, and there’s a mechanism to easily exclude any inappropriate posts that show up without needing to block users or delete posts.

    The Micro.blog community has grown a lot in the last couple of weeks. Every new feature has the potential to change how people interact with the platform, and I think this experiment with books has been almost completely for the better. I don’t think every post needs emoji — most microblogs will continue to be mostly text and some photos — but sprinkling in an emoji every once in a while will start to add value to the Discover section, and it also keeps Micro.blog fun.

    → 1:38 PM, Jan 10
  • Books on Micro.blog

    Micro.blog doesn’t have special support for hashtags. It doesn’t automatically link them. There’s no global search yet. While Micro.blog users can include hashtags anyway, especially if they are cross-posting to Twitter, I’ve found that the timeline is much cleaner and readable without hashtags.

    I’m not saying we’ll never have hashtags. But I’m not in a particular hurry to introduce native support for them. (Once a feature is added, it can’t easily be taken back. So we try to be deliberate in everything we do.)

    Hashtags and Twitter trends go together. They can be a powerful way to organize people and topics together across followers. But they can also be gamed, with troublemakers using popular hashtags to hijack your search results for their own promotion or unrelated ranting.

    It’s the organizational and discovery aspect of hashtags that I most want to bring to Micro.blog. There have been several recent discussions on Micro.blog about book clubs and reading, and this seems like a perfect topic to experiment with. I’ve also noticed that people love to include an emoji in their microblog post as a kind of theme indicator — everything from 📚 to 🏀.

    Today we’re introducing a search collection using emoji, starting with books. Just include 📚 with your microblog text about a book you’re reading or related topic, and your post will automatically be collected on /discover/books. There’s also an emoji link at the top of the Discover section in the iOS and Mac apps. (Make sure you’re on the latest version of the apps released yesterday.)

    If people like this, we’ll generalize it and start surfacing other topics. Enjoy, and happy reading!

    → 12:35 PM, Jan 9
  • Don't worry about numbers

    Rather than New Year’s resolutions, Aleen Simms has a list of liberations for 2018: things to let go of and not worry about. In particular I like this one about not looking at numbers:

    Twitter followers, podcast download stats, blog post views, the scale, whatever. Life isn’t a video game. Happiness doesn’t have a numerical value attached to it.

    It mirrors a philosophy we have with Micro.blog to launch without follower counts or public likes. Follower counts are not very useful for a new platform. They add anxiety and unavoidably lead to value judgements when considering whether to follow someone, instead of letting the quality of someone’s writing and photos speak for itself.

    Andy Flisher posted to his microblog about how Facebook takes the opposite approach, encouraging the numbers game:

    Facebook has genuinely ‘encouraged’ me to get more likes for my birthday than I did last year! 🤯 No wonder the youngsters are growing up so needy for likes and follows, not healthy 🙁

    A social network doesn’t have to be like this. Micro.blog is a way to post to a web site that you control, and a place to discover and talk with other members of the community. Micro.blog is not a popularity contest.

    → 4:17 PM, Jan 3
  • 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.

    → 11:42 PM, Dec 24
  • Twitter&#039;s weeds

    Mike Monteiro wrote on Medium this week about the daunting, insurmountable problems facing Twitter’s leadership team. He talked about meeting in person with Jack Dorsey:

    We discussed Twitter’s role in the world stage. And I admired his vision, but feared his approach. Jack, and to an extent Twitter’s pet porg Biz Stone, have always believed that absolute free speech is the answer. They’re blind to the voices silenced by hate and intimidation. The voices that need to be protected. But anyone who’s ever tended a garden knows that for the good stuff to grow, you have to deal with the bad stuff. You can’t let the weeds choke the vegetables.

    I love the metaphor of a garden. In fact, I wrote a whole chapter of my upcoming book Indie Microblogging about gardens. The chapter is a longer version of what Mike says above, but with a twist.

    The issue isn’t that Twitter doesn’t care. It’s instead a fundamental design flaw in the platform. Because tweets don’t exist outside of Twitter, when you’re banned, you’re done. For this reason, and because their business depends on a large user base, Twitter is hesitant to throw anyone off their service. They’re unwilling to tend the garden for fear of pulling too many weeds.

    Imagine instead a service based on blogs, where the internal posts on the platform were the same format as the external posts. The curators of the platform would have more freedom to block harassing posts and ban nazis because those problematic users could always retreat to their own web site and leave everyone else in the community alone.

    That’s how the web is supposed to work. It’s a core principle of Micro.blog.

    Twitter will continue to improve. I believe they’re trying. But the root issue can’t be fixed without starting over.

    → 11:56 AM, Dec 22
  • UIKit and Eminem

    Another week, another set of new podcasts. Daniel and I talked on Core Intuition about opening up Micro.blog and speculated on UIKit for the Mac:

    Manton and Daniel talk about the major update to Micro.blog, and how to cope with demand as it either meets or doesn’t meet daily limits. They opine about the virtue of having a baseline product on which to build future updates. They react to Mark Gurman’s report that Apple has a plan to make it easier to bring iOS apps to the Mac, and finally, they catch up on Daniel’s post-release MarsEdit activity.

    I also posted episode 91 of Timetable. It’s about 3 minutes on Eminem lyrics and getting your one shot.

    → 10:31 AM, Dec 22
  • Apple battery issue is about secrecy

    Like most Apple controversies, the iPhone performance/battery issue seems overblown. I like Ben Thompson’s take from today’s daily update:

    The biggest problem here is Apple’s lack of transparency and communication: if iOS is slowing down iPhones for battery reasons, then iOS should say so. Pretending everything works perfectly until it is painfully obvious that it doesn’t fits with Apple’s generally secretive ethos, but it runs into the painful reality that it isn’t actually true.

    Apple usually tries to do the right thing. But they are absolutely crippled in how they communicate with users and developers. At this point, 6 years after Steve Jobs died, clinging to the Steve-inspired obsession with secrecy just looks clumsy. It’s the right lesson for the narrow window of product announcements, now applied universally to the wrong parts of their business.

    → 10:09 AM, Dec 21
  • 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.

    → 2:41 PM, Dec 19
  • Core Intuition 309

    This week on Core Intuition, Daniel and I talk about how the MarsEdit 4 release is going:

    Daniel and Manton catch up on MarsEdit 4’s progress a week after releasing. They talk about the anxiety and fear of making a huge mistake when releasing, and the relief of discovering you haven’t. They reflect on the effectiveness of direct email to inform existing customers of updates, and Manton looks forward to releasing Micro.blog to the public, and how much PR fanfare he should be looking to generate.

    I’ve been working on several new features for Micro.blog this week. Consistent with Daniel’s advice on the show, I think we’re going to roll out new stuff for Micro.blog next week and start ramping up promotion. Really excited about the way things are coming together.

    → 9:26 AM, Dec 15
  • Twitter threads

    Twitter announced today they will make it easier to chain tweets together in the official app. John Gruber summarizes the pro-tweetstorm argument on Daring Fireball:

    This is a good idea. People are creating threads without official support, so true support can only make it better.

    The problem is that Twitter threads take the place of blog posts. Most people won’t think to switch to their blog instead of firing off a series of tweets, but some will. Promoting Twitter threads to such a prominent place in the UI will encourage more people to create Twitter threads. It will lead to more content in Twitter and less on the open web.

    Micro.blog takes a different approach. When you type over 280 characters, instead of offering to split it into multiple posts in a thread, it reveals a title field and lets you turn it into a full blog post. I feel really good about this solution because the UI actively tries to make the web a little better instead of worse.

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

    → 12:39 PM, Dec 12
  • Friction and silo dead-ends

    Instagram is experimenting with a repost feature. From The Next Web:

    Instagram appears to be finally working on a native Regram button. It’s a feature many users have been waiting for for some time. Currently, users wanting to reshare content have to either save the image or video to their device and re-share it from their own account, or call upon one of several third party apps like Regram, a popular Android option.

    I wrote last year about how I thought the lack of Instagram reposts was deliberate. Early versions of Instagram were built carefully, and it seemed designed to encourage posting your own photos:

    When you have to put a little work into posting, you take it more seriously. I wonder if fake news would have spread so quickly on Facebook if it was a little more difficult to share an article before you’ve read more than the headline.

    If Instagram ships this, it will likely increase memes and other non-photos in your timeline. Along with ads, it will make the timeline feel even more cluttered.

    Meanwhile, Ben Thompson covers Facebook’s curation efforts and how the lack of friction on social networks is both a good and bad thing. If it’s difficult to post, fewer people will do it. But if it’s too easy — with few limits on what is appropriate to share with your followers — you’ll get the dumpster fire that we currently have.

    I believe in a middle-ground solution. Make it easier to post to your blog. That’s what indie microblogging is all about, why I’m writing a book on it, and why I built Micro.blog. But don’t make thoughtless re-sharing completely frictionless. That’s what leads to fake news spreading, why hateful tweets are exposed in algorithmic trends, and why safe communities must have some amount of curation.

    Facebook is right to hire 10,000 curators. But what they’re missing is the balance between curation and an open platform, with the freedom to post to your own site. That’s why Facebook is a dead-end for the web.

    → 9:56 AM, Dec 7
  • Timetable on MarsEdit 4 and open APIs

    Today I posted another episode of my daily podcast Timetable. It’s a short episode about the MarsEdit 4 release and why even competing apps should be compatible and embrace the open web. Here’s a transcript.

    Today, MarsEdit 4 shipped. I posted to my blog with a link to the new version, and I included some comments in the blog post about using MarsEdit with Micro.blog.

    Congrats to Daniel. This has been years in the making. It’s great to see it come out, and we’ll be talking more about this on my other podcast Core Intuition later this week.

    Even if Daniel wasn’t my friend and co-host of Core Intuition, I’d still be excited about MarsEdit, because more blogging software is a good thing. The Mac version of Micro.blog kind of competes with MarsEdit, since you can use Micro.blog to post to WordPress, just like you can with MarsEdit. But it’s also a nice complement, because you can use MarsEdit to post to blogs that are hosted on Micro.blog. And MarsEdit is full-featured and has more features that you might want to upgrade to, even if you’re using Micro.blog.

    And this is how I think software should work, and why the open web and open APIs are important. You should be able to switch between apps without changing everything.

    You should be able to use MarsEdit to post to your blog. You should be able to use Micro.blog — the Mac app or the iOS app — to post to that same blog.

    Imagine if you could use the official Twitter app to post to Facebook. You open Twitter, you click new tweet, and then you click in the destination (somewhere in the UI), and you select Facebook instead. And instead of going to Twitter, it goes to Facebook.

    Sounds crazy. How could that possibly work? Why would Twitter or Facebook ever allow something like that?

    But that’s how it should work. We are so used to these silos and these apps that are not compatible with anything, that we just accept it. But that’s how it should work.

    You should be able to use multiple apps to post to different services. And that’s what’s happening with apps that are built with some compatibility in mind, especially on IndieWeb standards. That’s what’s happening with MarsEdit and Micro.blog, although on a much smaller scale.

    I’ve been thinking about how much work we have to do to reach the audience of potential indie microbloggers. Last night, I attended AustinRB, a local meetup here in Austin for Ruby programmers. There was a great talk on metaprogramming — really enjoyed it. And as I mentioned yesterday, Tom Brown, who is also helping me out with IndieWebCamp planning… He gave a talk on the IndieWeb.

    And listening to questions from the audience, it was just so obvious how far we have to go. Everyone is so used to Twitter and Facebook and Instagram, that in a way we have to outline the IndieWeb and services like Micro.blog in a way that mainstream users of other social networks can relate to.

    It’s a big jump to go from only thinking about Twitter, to all of a sudden thinking about your own domain name, sending replies between independent web sites perhaps, to thinking about a timeline that is based on feeds from all over the web. It’s a big jump.

    And in a way, it’s kind of discouraging when I think about making that case for how the web should work. It’s a massive task to explain the value of the open web and the danger of relying on 100% centralized networks.

    But on the other hand, there are a lot of people in the world, a lot of people who want to write on the internet, who care about what they say and how they say it. WordPress powers 29% of the web.

    The market is there. It’s just a matter of reaching everyone. And so that’s encouraging.

    And it starts in communities like the IndieWeb. And hopefully in the community we’re trying to build on Micro.blog.

    It’s not too late to register for IndieWebCamp. It’s this weekend in Austin. Go to IndieWeb.org. I hope you can join us. There’s a lot of work to do to build the web that we need. Thanks for listening today.

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

    → 1:03 PM, Dec 5
  • Inspired to blog

    Vincent Ritter has a new post about Micro.blog, and how it’s helped put a focus back on his own blog:

    Later this year I finally got my invite through for Micro.blog. Just logging in, seeing the simplicity and the really amazing community of people, I knew this was something special. This ultimately made me rethink my entire site and what I want to do with it.

    I created Micro.blog to encourage other people to blog more. It’s working. But I’ve realized it goes both ways: seeing all the great posts out there has inspired me too. Thanks Vincent and everyone who is taking the idea of an indie microblog and running with it.

    → 12:27 PM, Dec 4
  • 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.

    → 12:01 PM, Dec 4
  • Kickstarter update with IndieWebCamp and rollout plans

    Today I sent the following email to Kickstarter backers. I’m working through the waiting list of invites to Micro.blog now. I know it’s taken the better part of a year, but we’re almost there.

    We are just about ready to open up Micro.blog to the world. Starting later this week, we’ll no longer require an invite code. Up to 100 users will be able to register on Micro.blog each day. This helps us focus our attention on the community and take care of new users as we ramp up to the public launch.

    I’m also excited to share 2 more things that are happening next month:

    IndieWebCamp: December 9th and 10th in Austin, TX. If you’d like to learn more about indie blogging, work on your own web site, or just chat with me about Micro.blog, consider joining us in Austin. You can register here. More info from the web site:

    IndieWebCamp Austin 2017 is a gathering for independent web creators of all kinds, from graphic artists, to designers, UX engineers, coders, hackers, to share ideas, actively work on creating for their own personal websites, and build upon each others creations.

    Stickers: I’ve just ordered a new batch of Micro.blog stickers for IndieWebCamp and Kickstarter backers. Expect to receive an email from Kickstarter to confirm your shipping address.

    → 4:39 PM, Nov 28
  • EFF-Austin party after IndieWebCamp

    In a little less than 2 weeks we’re holding the first IndieWebCamp in Austin: December 9th and 10th at Capital Factory. You can register here. Doors open at 9am and we’ll have coffee and breakfast tacos while everyone checks in.

    Saturday night after IndieWebCamp will be the EFF-Austin Holiday Party. There’s a meetup page to RSVP for the party. Even if you can’t attend IndieWebCamp for the full weekend, you’re welcome to join us anytime Saturday and stick around for the party. (Please register for both so we can better plan for the event.)

    Who should attend IndieWebCamp? Anyone who cares about the independent web. Anyone who remembers how the web used to be — the creativity of personal web sites, the freedom of open APIs — and how it could be that way again. From the event web site:

    IndieWebCamp Austin 2017 is a gathering for independent web creators of all kinds, from graphic artists, to designers, UX engineers, coders, hackers, to share ideas, actively work on creating for their own personal websites, and build upon each others creations.

    I hope you can make it. If you have any questions, email me at manton@micro.blog.

    → 10:34 AM, Nov 27
  • Blog archive format

    As I’ve been improving the import and export functionality in Micro.blog, I’ve done a lot of work with WordPress’s WXR format, which is based on RSS. While there’s nothing particularly wrong with WXR, it’s more complicated than it needs to be for non-WordPress sites, especially when you start to tackle image uploads that exist outside of the post text.

    Micro.blog can also push an entire site’s Markdown, HTML, and images to GitHub, which is the most complete mirror and perfect for migrating to another Jekyll server. It introduces so many extra files, though, it’s not reasonable to expect that other blog platforms could support the same level of detail.

    I’d be happy to ignore the WordPress-centric nature of WXR and use it as a common blog archive format if WXR provided a mechanism to store image uploads. Helping people migrate from WordPress to Micro.blog-hosted blogs has only emphasized to me that a better format is needed.

    In chatting with the IndieWeb community, the idea was proposed that an HTML file using h-feed would provide portability and also an added bonus: it could be opened in any web browser to view your archived site. Images could be stored as files with relative references in the HTML file. (I’d throw in a JSON Feed file, too, so that importers could choose between using a Microformats parser or JSON parser.)

    The files would look something like this:

    • index.html
    • feed.json
    • uploads
      • 2017
        • test.jpg

    The basics from h-feed would follow this structure:

    • h-feed
      • h-entry
        • p-name
        • e-content
        • dt-published
        • u-url
      • h-entry
        • ...

    Only index.html and feed.json would be required. Any other paths in the archive would be determined by the contents of the HTML. (I’m using “uploads” in this example, but it could just as easily be “archive”, “audio”, or any other set of folders.)

    For large sites, the HTML could be split into multiple files with appropriate tags in the header to page through the additional files. While it could contain CSS and your full blog’s design, I’m imagining that the HTML would be extremely lightweight: just enough to capture the posts, not a way to transfer templates and themes between blogs.

    The whole folder is zipped and renamed with a .bar extension. Easy to move around and upload all at once. I’ve created an example file here (rename it .zip to open it).

    I’d love to hear what you think. I talked about this on a recent episode of Timetable as well. Might be a nice topic to follow up on at IndieWebCamp Austin in 2 weeks.

    → 4:20 PM, Nov 24
  • 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.

    → 11:21 AM, Nov 22
  • 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!

    → 3:53 PM, Nov 17
  • IndieWebCamp Austin set for December

    We’re holding an IndieWebCamp in Austin next month! This is a 2-day event — Saturday and Sunday, December 9th and 10th — for anyone who wants to learn more about the IndieWeb, discuss web standards and tools, or just hack on your own web site. We’re lucky to have IndieWeb co-founders Tantek Çelik and Aaron Parecki in town for the event.

    There was another IndieWebCamp in Berlin last week. Neil Mather had a great blog post about his experience there:

    It ran over 2 days, with day 1 an unconference with a number of discussions, the topics and schedule decided entirely by participants in the morning. Day 2 was hack day, with everyone working on an indieweb related bit of work, be it on their own website or on a shared project.

    IndieWebCamp Austin registration is open now. Tickets are just $5. Looking forward to planning some next steps for Micro.blog over that weekend. Hope to see you there!

    → 10:28 AM, Nov 16
  • Because you&#039;re passionate about it

    “People will want to go to it because you’re passionate about it, and people love what other people are passionate about. You remind people of what they’ve forgotten.” — Mia in La La Land

    Business without direction is hollow. Your company can be full of users or money but if it’s empty of purpose, no one will truly care about what you’re building.

    This is one of several problems with Twitter today. It’s not just that the leadership team is overwhelmed and paralyzed. They can no longer articulate to users what Twitter the company is passionate about.

    → 12:00 PM, Nov 13
  • One election day down, one more to go

    Josh Marshall of Talking Points Memo on last night’s victory for Democrats:

    When a President is locked below 40% approval and often closer to 35% approval, his party will face a brutal and unforgiving electorate. This was a fact a decade ago and it’s a fact today. We’ve just been stunned into an unwarranted uncertainty by the fact of Trump’s victory one year ago today.

    November 2018 feels like a long time from now, but it will get here.

    → 1:00 PM, Nov 8
  • WordPress to Micro.blog migration

    Over the weekend I opened up a WordPress importer for Micro.blog-hosted sites. Now that Micro.blog can serve as your primary web site — with personal domain name, short and long posts, themes, and pages — some users may want to consolidate their older WordPress blogs to Micro.blog. I’ve just finished a round of testing and bug fixes with a couple sites, including the 2000+ posts on my 15-year-old WordPress blog.

    Micro.blog has always had great support for WordPress. If you host on WordPress and want to bring your posts into the Micro.blog timeline, all you have to do is add the WordPress RSS feed. This new importer is for people who want to migrate their whole site to be hosted by Micro.blog, not just mirror posts to the timeline with RSS and continue to use WordPress for hosting.

    To access the importer on the web, click on Account → Edit Domains & Design → Import. It will prompt for a WXR file, which you can export from your WordPress site under WP Admin → Tools → Export. WXR stands for “WordPress eXtended RSS”, which is an RSS file with some extra WordPress metadata.

    It’s important to note that the WXR contains post text, but not file uploads. To solve this, Micro.blog parses the HTML for all your posts, looking for img tags. It then downloads those referenced photos and adds them to your Micro.blog-hosted site. For this reason, it’s important that you keep your old WordPress site online until the import has finished. (The importer does not currently support WordPress photo galleries.)

    If you try the importer, I’d love to hear what you think. And of course you can add a new Micro.blog-hosted site for just $5/month under the “New…” menu.

    → 12:03 PM, Nov 6
  • Core Int 303 and Timetable 77

    We just published this week’s Core Intuition, talking about the latest iPhone X news:

    Daniel and Manton recap their experience placing pre-orders for the iPhone X, discuss Apple’s unusual PR strategy for iPhone X reviews, and debate the appropriateness of Apple firing an engineer for letting his daughter film a YouTube video of his pre-release phone.

    When you’re done listening to that, also check out Timetable 77. Still waiting for my iPhone X to arrive.

    → 4:04 PM, Nov 3
  • Siri is in the wrong game

    While writing about the limited SiriKit support in the upcoming HomePod, Stephen Hackett points out one of the biggest problems with Siri:

    While I’m glad to see some progress here, I think that it is time Siri become much more cloud-centric. Alexa and Google Assistant can do the same set of tasks across devices, while Siri still remains very device-centric. Apple has its reasons for this, but its approach could lead to a less-than-ideal user experience.

    I agree. See my previous blog posts on wanting a more open voice platform and Siri’s slow pace of change.

    We all know that Apple’s strengths are in design and having incredibly high standards. We love Apple’s attention to detail. When Apple competes directly with other products, these strengths always produce better products. Apple wins.

    The problem for Siri is that Apple’s competition with Amazon and Google isn’t on a level playing field. Siri won’t “catch up” to Alexa because the architectures are fundamentally different, with SiriKit locked to the device while Alexa expands quickly to new products and thousands of extensible skills in the cloud.

    Every week, Alexa gets better. Apple’s usual strengths won’t help them stay competitive because Siri isn’t even in the same game.

    → 2:18 PM, Nov 1
  • 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! 🎃

    → 2:20 PM, Oct 31
  • Micro.blog for iOS update

    Micro.blog for iOS version 1.2 is rolling out to the App Store right now. This update features a new sharing extension, to make it easier to send photos and links from other apps to Micro.blog. It also has better support for the iPhone X screen.

    We ended up rushing this update out a little to make sure it was approved in time for the iPhone X release, so there are a couple glitches we missed in testing when sharing photos. Working on a 1.2.1 update now to make the sharing extension more robust.

    Thanks as always for using Micro.blog. In addition to the iOS app, the Mac beta is also getting regular updates. (This blog post was written and posted with it.)

    → 11:59 AM, Oct 30
  • iPhone 8 review, X pre-orders

    Jason Snell mentioned on this week’s Upgrade that he had found a way to frame his iPhone 8 review, and today he posted it. Where most iPhone 8 reviews last month seemed overshadowed by the upcoming iPhone X, I think Jason’s review may have benefited from a little distance from the September Apple event.

    It also reminded me about the missing headphone jack, which in the excitement of the pre-orders I had forgotten about. Sigh. From the review:

    These upgraders also get to experience for the first time what the rest of us had to come to terms with a year ago: A one-way ticket to Dongletown, courtesy of a Lightning-to-headphone-jack adapter required by the removal of the headphone jack.

    And on wireless charging, which I’m equally skeptical about:

    Inductive charging is slower than USB charging, so if I’m trying to top up my battery before heading out, I’ll invariably prefer plugging in a Lightning cable. Dropping the phone on top of the small circle of the charging pad so that it’s properly aligned for the charge—the phone indicates that it’s charging and a small light appears on the charger base—is not really any less difficult in terms of mental focus than plugging in a Lightning cable.

    As Daniel and I have discussed at several points on Core Intuition, I think Apple really gambled on splitting the product line between the 8 and X, and the pronunciation fumbles only add to the confusion and perception that the 8 isn’t a cutting-edge product. It’s at once the best phone in the world and old news.

    It remains to be seen whether this split will impact sales. I’ll be watching for the quarterly results and Ben Thompson’s take.

    Meanwhile, I’ve stuck to my first impression that it’s time for me to have a phone with the best cameras again. That means the iPhone X. I’ll miss the size of the iPhone SE, but now that my iPhone X pre-order is wrapped up, I’m looking forward to trying something new, and hoping that it captures a little of that first-generation iPhone feeling, when we knew we were holding a bit of the future.

    → 3:21 PM, Oct 27
  • Core Intuition 302

    We posted episode 302 of Core Intuition today. From the show notes:

    Manton and Daniel anticipate the night of iPhone X pre-orders, and the shame of waking in the middle of the night to order a phone. They catch up with their faltering ambitions to ship MarsEdit and Micro.blog, and acknowledge the merit of sharing ambitions with others to help motivate progress. Finally, they contemplate whether eliminating a feature altogether is preferable to shipping it with obvious deficiencies.

    Good luck to everyone trying to pre-order an iPhone X tonight!

    → 6:22 PM, Oct 26
  • Extra Intuition 2 with Gus Mueller

    Just posted episode 2 of our members-only podcast Extra Intuition, with special guest Gus Mueller! From the show notes:

    Daniel and Manton are joined by Gus Mueller of Flying Meat. They talk about their early days in the indie Mac community, and Gus’s commitment to developing for the Mac. Along the way Gus let us know about a new Mac app he’s working on, and invited listeners to get in touch about beta testing it!

    Gus announces a brand new Mac app he’s working on. Really exciting to see this when it ships. You can listen by becoming a member.

    → 3:37 PM, Oct 23
  • Supporting #WomenBoycottTwitter

    I’m glad to see #WomenBoycottTwitter getting some traction. Complaints come and go, but a real break sends a stronger message and gives us perspective. I would never have started Micro.blog unless I had spent enough time away from Twitter to see a better way. It’s not enough to just complain.

    Very little has changed since I wrote my 10-year Twitter post last year. If you wait for Twitter to solve all the platform’s problems, you’ll be waiting a long time.

    → 9:21 PM, Oct 12
  • Extra Intuition

    Daniel and I wanted to do something special for our 300th episode, so we’ve launched a membership program for Core Intuition listeners. Included in the membership is access to a brand new podcast we call Extra Intuition, plus a private Slack channel for members to discuss the show and suggest future topics.

    It’s been a fun journey over the last 9 years of recording Core Intuition, and the main podcast will stay as it has been, with new episodes for free every week. Extra Intuition is our chance to deviate a little from the formula and try something new.

    Daniel has also posted about the membership and first episode:

    Our first episode of Extra Intuition is already live, and it features a discussion about the early days of our friendship, and how we decided to start Core Intuition.

    We’d love your support. Thanks for listening!

    → 4:52 PM, Oct 11
  • Timetable 66 and Release Notes

    I posted a new Timetable today after listening to the Release Notes podcast where Charles and Joe discuss requiring in-app purchase subscriptions. As I talk about on Timetable, I’ve been working on the Mac version of Micro.blog, so it was a good opportunity to make a final decision on Mac App Store support.

    Speaking of Release Notes, I’ll be out in Chicago for the conference next week. If you’re attending, hope to see you there. Ask me for a Micro.blog sticker.

    → 2:28 PM, Oct 10
  • Core Intuition 299

    One more week until our 300th episode! From the show notes for today’s episode:

    Daniel and Manton talk about Daniel’s struggle to finish and release MarsEdit 4. They compare notes about using the WordPress API to import content, and Manton reveals he is working on a Mac app for Micro.blog. They check in about the impact that increasing competition, or perception of it, on their long-time friendship and collaboration.

    We’re announcing something new next week. Hope you can tune in for it.

    → 12:26 PM, Oct 5
  • Micro.blog themes open source

    Micro.blog launched with 6 unique themes, and advanced CSS support to customize many aspects of the design. I love seeing users take one of the existing themes and make it their own, such as what Dan Counsell has done with colors and fonts on his site.

    The publishing engine for Micro.blog is based on Jekyll, so of course the themes are Jekyll themes as well. I wrote last year about why I chose Jekyll. I’ve forked several themes to improve their support for microblogs, JSON Feed, and IndieWeb standards.

    A few of these changes are now up on GitHub. You can find these themes in the @microdotblog repository:

    • default
    • primrose
    • hyde

    I’ll be updating the other themes on GitHub soon. While you can’t upload an entirely new theme to your Micro.blog account yet, many people have asked for that, and hopefully these themes will provide a starting point.

    → 1:15 PM, Oct 1
  • Twitter public opinion may flip

    Nick Heer writes at Pixel Envy about Twitter’s half-hearted attempt at transparency on fake news and the election:

    As tech companies play an increasing role in democratic processes worldwide, a regular theme has been their reluctance to admit to their own influence in a legal context. They’re perfectly happy to trot out the old Silicon Valley trope of changing the world and brag to candidates about the effectiveness of advertising on their platforms when it suits them. But when it’s time for them to be introspective about their own responsibilities, they suddenly clam up and claim that they can’t possibly have influence.

    It’s time for a reckoning. I don’t know if it’s government regulation. But we are on the edge of pushback against ad-supported, ginormous platforms. Once it flips, as it did against Uber, there will be an opening for real change.

    → 1:01 PM, Sep 29
  • More on 280 characters

    For this week’s Core Intuition, Daniel and I spend the whole show talking about Twitter’s 280-character change and related fallout. It makes a good complement to my initial blog post, as well as yesterday’s episode of Timetable.

    And of course I liked this part of Colin Walker’s blog post:

    Having gotten used to a 280 character limit on micro.blog I can honestly say it makes a world of difference.

    Dave Winer wrote about the need for Twitter to take risks:

    So if you think the 140-char limit is so great, why isn't Twitter making money for its shareholders? If you were management at Twitter would you be conservative or would you take risks? As a shareholder, I want them to take risks. Big ones. Why not? They don't really have anything to lose.

    My daughter’s Twitter account has access to the new 280-character limit, so I’ve had a chance to see the new UI. Instead of counting down, it uses a circular progress bar until you get near the end of the limit. The UI is further proof that Twitter didn’t make this change on a whim. They plan to ship it.

    → 7:00 AM, Sep 28
  • Twitter experiments with 280 characters

    I had first suggested a 280-character guideline for microblog posts back in 2014. As I’ve said many times since then, and through launching Micro.blog, I believe expanding the limit will make for better conversations, less mangled punctation, yet still remain short enough that it encourages quick posting.

    Twitter announced today that they are also experimenting with a 280-character limit! From their blog post:

    We understand since many of you have been Tweeting for years, there may be an emotional attachment to 140 characters – we felt it, too. But we tried this, saw the power of what it will do, and fell in love with this new, still brief, constraint.

    They focus most of the announcement on explaining how the current constraints are different for some languages, like Japanese, which can fit far more words into 140 characters. That’s true, but it glosses over the most important point.

    Longer text allows for more thoughtful posts, fewer misinterpreted shouting matches, and Twitter desperately needs to improve the tone of conversations on their platform. I’m a fan of this change.

    → 4:32 PM, Sep 26
  • Updated to High Sierra

    I installed 10.13 High Sierra today. It takes a long time, presumably because of the file system conversion. Make sure to block out a couple of hours.

    Stephen Hackett has a full review. One of the most interesting features to me is Safari’s new ability to automatically enable Reader Mode when viewing certain web sites you configure:

    Safari’s stripped-down view is learning some new tricks. The feature can be set to automatically engage, displaying text, images and video in a clean format, leaving ads and funky layouts behind.

    Speaking of Stephen, his kids are running the Kids Marathon to raise money for St. Jude Children’s Research Hospital. You can read about it and make a donation here.

    → 3:55 PM, Sep 26
  • Overthinking stats

    Manuel Riess has been writing about why he didn’t stick with previous blogs. On the topic of paying too much attention to stats:

    When using Wordpress, it’s easy to get the basic numbers of interest: how many visitors, from which part of the world etc. The next level is Google Analytics… what a plethora of settings and numbers! I stared at them all the time after a new post went up, it was exhausting.

    I highlighted Manuel’s microblog in an email to Kickstarter backers recently, as an example of using custom domain names. You can follow him on Micro.blog.

    I still haven’t looked at stats for Timetable. And I’ve resisted adding follower counts and page view stats to Micro.blog for the same reason. If all that drives you is the number of likes on a tweet, or subscribers to your podcast, it’s easy to get discouraged when the numbers don’t pan out. Or worse, overthink your writing when you know a bunch of people are paying attention.

    Everyone has something to say. Write because you love it, or to become a better writer, or to develop an idea. The stats should be an afterthought.

    → 6:14 PM, Sep 22
  • 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!

    → 9:00 AM, Sep 22
  • Timetable 54

    I posted a new episode of my Timetable microcast. Here’s a bit from today’s episode about blogging and tweeting:

    My "blog first" strategy is actually really simple. I just follow the rule that I never post directly to Twitter unless I'm replying to a question. If I want to post something to Twitter, I fire up MarsEdit on my Mac, or I open the Micro.blog iOS app, and I post it there. Then of course Micro.blog sees that and sends it to Twitter for me.

    I’m getting back into the groove of publishing these episodes. This was the third episode of Timetable this week.

    → 6:33 PM, Sep 21
  • iPhone 8 standards

    So many great iPhone 8 and iOS 11 reviews out today. My favorite aside has to be the headphone jack mini-rant in Nilay Patel’s The Verge review:

    And I would be remiss if I didn’t point out that there’s no headphone jack, which is still routinely annoying on every phone that omits it. Apple’s own headphone dongle is one of the lowest-rated products on the Apple Store, with just 1.5 stars. It’s been a year, and the Lightning audio ecosystem is still extremely immature.

    When I was at STAPLE! last week I bought a t-shirt from an artist who had to enter credit cards into the Square app manually because he had lost his Lightning dongle for the Square reader. Minor inconvenience, and fixed with an extra $9 purchase from the Apple Store, but nevertheless a real compatibility issue that will never go away.

    We’ll eventually get used to this. Many people already have, thanks to the AirPods. That doesn’t mean it wasn’t the wrong decision, though. (I’m happy to give Apple full credit when they embrace a standard, like Qi charging or USB-C.)

    → 12:41 PM, Sep 19
  • Micro.blog post titles demo

    Last week I wrote about Micro.blog for iOS version 1.1, which adds several new features including support for multiple photos and longer posts. Today I want to demo how longer posts work on the web version of Micro.blog. Here’s another quick screencast with audio:

    → 3:13 PM, Sep 18
  • Micro.blog iOS 1.1

    Micro.blog for iOS version 1.1 is now available. This release adds a number of new features:

    • Added support for longer posts with titles. Type more than 280 characters to reveal an optional title field.
    • Added Markdown syntax highlighting while typing.
    • Added formatting bar for common styles. Select a phrase and tap the link button for easier markup.
    • Added support for uploading multiple photos.
    • Added a Browser sharing item to open the current post on the web.
    • Fixed a potential crash in profile links and glitch when holding down to select text.

    Here’s a quick screencast showing some of the highlighting and title support:

    Hope you like the update. You can download it from the App Store

    → 2:53 PM, Sep 15
  • Face ID confidence

    Some people are concerned that replacing Touch ID with Face ID is a design compromise. While I rarely give Apple the benefit of the doubt when they scrap an existing standard, like the headphone jack, this new Face ID skepticism seems premature. John Gruber writes:

    There is clearly skepticism out there about Face ID. Some people think Face ID is going to suck, and a lot of people are flat-out assuming that they’re going to miss Touch ID. We saw the same thing with Touch ID when it was announced, and the skeptics were very wrong. I haven’t used it personally, but I am pretty sure already that the skeptics are going to be wrong about Face ID too.

    With Touch ID, there are some obvious limitations that we just accept. For example, of course Touch ID doesn’t work with gloves on. How could it? But with Face ID, the technology is so advanced that we have no basis for judging when it should or shouldn’t work, so I think we’re going to expect it to work all the time.

    For Face ID to be successful it has to be delightful, like a magic trick. The threat to magic is inconsistency. One glitch and the illusion is ruined forever, and you never believe in it again.

    I’m not worried about Face ID. I’m not even worried about the notch, which is a compromise. Apple seems very confident in both Face ID and the iPhone X. Not confidence from hubris. Not feigned confidence, justified as courage. They actually believe they’ve got a winner, and so do I.

    → 8:42 AM, Sep 15
  • Tomorrow matters

    As I plan for the iPhone X pre-order, I wanted to write a blog post about all the iPhones I’ve bought, and when. I’ve skipped a few generations, and even made some seemingly oddball choices like getting the iPhone 5C when all my friends got the 5S. In the process of searching old blog posts to confirm whether I even bought the 3G or waited for the 3GS, I found this old blog post about WWDC 2008.

    In the post I had collected 95 tweets from myself and others during WWDC. This was 9 years ago, so it’s a bit of a blur. But reading them again brings back memories. These old tweets are gold.

    If I hadn’t collected the tweets, I would never find them again. And if anything changes at Twitter, they could just as easily be lost. Remember, it wasn’t that long ago that you couldn’t go back more than 3200 tweets in your timeline. Searching old tweets is still impossible in third-party Twitter clients.

    Obviously I’m all-in on indie microblogging. I post to my own blog and let Micro.blog sort out cross-posting a copy to Twitter. But looking at these old tweets, I’m just struck with how foolish it was to ever post content exclusively to Twitter. It was an assumption that today mattered more than tomorrow, when the opposite is often true.

    A photo is the most clear expression of this truth. Taking a photo doesn’t improve the moment. It’s for later.

    Twitter in 2008 was a mix of microblogging and conversations. It was writing without pretense, with no expectation of likes and follower counts. It felt ephemeral, and maybe it still does to many Twitter users today. But you never know when you want that fleeting comment to actually last, and if you don’t control the post, there are few guarantees that it will.

    → 2:32 PM, Sep 14
  • Core Intuition 296

    We posted a new Core Intuition, all about the iPhone X and other products from yesterday’s event. From the show notes:

    Manton and Daniel react to the announcement at Apple’s annual iPhone event, comparing notes on the allure of the iPhone X, Apple Watch 3, and new Apple TV. They talk about the impressiveness of all the significant product updates being made in parallel, and lament the slightly confusing state it leaves the high end iPhone market in.

    Approaching 300 episodes over 9 years. If you’re new to the podcast, consider subscribing in your favorite podcast app. Thanks!

    → 1:55 PM, Sep 13
  • Waiting for the iPhone X

    Michael Gartenberg writing for Six Colors about the iPhone X:

    It’s arguably the most beautiful product ever made by Apple and the jewel in Apple’s crown. The aesthetics must be seen to be appreciated. This is something Apple competitors aren’t even close to. If the iPhone 8 raises the bar, iPhone X raises the bar so high it can’t be seen. This is, quite simply, the best smartphone money can buy.

    High praise. Apple had me at the cameras, but I’m relieved that the design of the phone itself is so great. On Core Intuition last week I had worried that if the design fell short (or Apple did something clunky like put a Touch ID sensor on the back) that I’d have second thoughts.

    This is the first iPhone in years that many people are going to stand in line for. It might not be priced high enough.

    → 9:23 AM, Sep 13
  • Gizmodo on RSS

    David Nield of Gizmodo has a sort of re-introduction to RSS, with an overview on why it’s more useful than ever:

    One of the main reasons RSS is so beloved of news gatherers is that it catches everything a site publishes—not just the articles that have proved popular with other users, not just the articles from today, not just the articles that happened to be tweeted out while you were actually staring at Twitter. Everything.

    Obviously I’m a fan of RSS. Micro.blog has great support for it throughout the platform. But even though I subscribe to hundreds of feeds, I even caught myself recently loading a few favorite news sites manually instead of using the feeds. Doesn’t hurt to be reminded that there’s a better way.

    → 9:11 PM, Sep 11
  • Core Intuition 295

    Slightly longer Core Intuition this week as we cover several topics. From the show notes:

    Daniel and Manton follow up briefly on Manton’s backup strategy, and catch up with Daniel's progress with MarsEdit. They talk about the merits of using cryptographic signing for software licenses, and balance the risks and rewards of combatting piracy. Daniel talks about the recurring lure of taking a salaried job, and how the privileges of staying indie continue to win out. Finally, they look forward to next week's iPhone event and the expected hardware announcements from Apple.

    I’m excited about the upcoming iPhone event on Tuesday. Seems like it’s set to be a big one.

    → 8:08 AM, Sep 9
  • Tim Duncan on hurricane recovery

    Tim Duncan is matching donations to relief efforts for the U.S. Virgin Islands, hit this week by Hurricane Irma. He writes at the Players Tribune about living through Hurricane Hugo when he was 13 years old:

    Hugo hit at night. The first thing I remember is a loud boom from the windows blowing out of our house. My mother and sister burst into my bedroom and led me by the hand into another room. We spent the rest of the night sitting in a small bathroom, our eyes wide open. None of us could sleep. We heard the bangs and booms of debris. Once in a while, I’d peek down the hallway at my dad, who was watching our ceiling. One of the beams had a crack in it, and the crack slowly grew bigger throughout the night. I think my dad was praying.

    The whole story is a must-read. Next week, Tim is chartering a plane to deliver supplies. I’ll repeat what I said last year: thank you. Everyone still in the storm’s path, stay safe.

    → 1:06 AM, Sep 9
  • Decline and return of indie blogs

    In announcing plans to move A List Apart away from advertising, Jeffrey Zeldman writes about the decline of independent web sites:

    In recent years, we’ve seen our rich universe of diverse, creative blogs and sites implode—leaving fewer and fewer channels available to new voices. As more content centralizes into a handful of all-powerful networks, there’s a dreary sameness in perspective and presentation.

    I don’t know what the new A List Apart will look like, but if they can encourage designers and developers to embrace independent blogs again, I’m all for it. I like the way Zeldman has framed the change for A List Apart.

    It used to be that A List Apart’s most popular authors were all frequent bloggers. I think the attention on Twitter instead of personal sites has effectively created a gap of lost years for many blogs: long stretches of time with very few if any posts. Perhaps Zeldman’s post is an indication that this trend has already reversed.

    Gabe Weatherhead recently made some points on Macdrifter about the decline of indie blogs — that podcasting is a cheap substitute for written posts, and that tweets and link-blogging have killed thoughtful commentary:

    I want to hear opinions and ideas from good writers, not pull quotes with a trailing off-the-cuff remark.

    It’s a good post, but I see his conclusion differently. The solution isn’t fewer link blogs, but more of them. By taking microblogging back from Twitter, we create a natural place for traditional blogs to grow. Indie microblogging is the gateway drug for long-form content.

    To everyone reading Zeldman’s post about A List Apart and nodding your head, retweeting the link, clicking the like button… Dust off your blog and actually post about it. A better web is built one page at a time.

    → 12:11 PM, Sep 8
  • Homebrew Website Club

    Tonight we’re starting up a local Austin chapter of the Homebrew Website Club. This is a group from the IndieWeb community which already meets regularly in San Francisco, Portland, other cities, and online.

    From the IndieWeb wiki:

    Homebrew Website Club is a bi-weekly meetup of people passionate about or interested in creating, improving, building, designing their own website, in the same structure as the classic Homebrew Computer Club meetings.

    For Austin, the first meeting will be 6:30pm at Monkey Nest Coffee, 5353 Burnet Rd. Everyone’s welcome. Bring ideas for your own web site, questions about Micro.blog, or just grab a coffee and hang out. We’ll meet in the extra room at the back of the coffee shop.

    → 8:12 AM, Sep 6
  • 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.

    → 5:32 PM, Sep 5
  • Considering the iPhone Pro

    The iPhone SE was an incredible value when it first shipped — a perfect balance of size, great camera, and nearly-flawless design. I still love mine. It’s arguably the best overall phone Apple has ever made.

    The iPhone SE likely won’t see an update until next spring. At that point, the camera that was competitive at launch will be 2 generations behind. This isn’t a surprise; we knew this was coming. It’s just the more I see the photos from Traci’s iPhone 7 Plus camera, the more I’m pulled back to the cutting edge. The dual-camera approach is a major step forward.

    Apple will announce new iPhones in a couple of weeks. Unless the design of the high-end “pro” version is a disaster, I plan to go for it.

    → 3:44 PM, Aug 29
  • 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!

    → 2:22 PM, Aug 25
  • Medium stumbling forward

    Dave Winer isn’t optimistic about the recent Medium changes:

    We're in the long tail of the demise of Medium. They'll try this, and something else, and then another thing, each with a smaller probability of making a difference, until they turn it off.

    This has been the concern with Medium since the very beginning. Because they defaulted to Medium-branded user blogs on medium.com instead of your own blog at a personal domain name, there was a risk that if Medium didn’t work out as a business, many great posts would disappear along with the service. You might get more readers in the short-term, but it’s a bad trade-off when links break and you have to start all over again.

    Nick Heer wrote about the “sameness” of Medium sites — how the sites blur together as just pages on Medium’s platform. Several prominent sites have left:

    Earlier this year, Film School Rejects and Pacific Standard moved away from the platform; this month, the Awl announced that they went back to WordPress with their old custom theme. The Ringer and Backchannel also left Medium. Once again, I can tell those sites apart from each other.

    I think Medium has good intentions. But the premise was wrong, with an emphasis on medium.com/@username URLs that aren’t portable, and no obvious way to get a custom domain. Getting this right is IndieWeb 101.

    That’s why on Micro.blog the microblogs are username.micro.blog by default. It sounds like a small thing, but that difference is everything. It’s easy to swap out for a personal domain name, with free SSL hosting, multiple themes, custom CSS, and it’s based on Jekyll so that it can be moved to any host.

    Medium is stumbling forward, trying to find the right path because their initial foundation wasn’t right. I hope they get there.

    → 8:39 AM, Aug 25
  • Flip the iceberg

    Many people are initially confused by Micro.blog because they are expecting a strict clone of Twitter. They are expecting another App.net. But as I said in the Kickstarter video, clones of Twitter and Facebook have come and gone. They’ve all failed. A different approach won’t guarantee success, but it is required to have a chance.

    I plan to stay the course. I’m inspired by the work of the IndieWeb, which was founded 6 years ago and is still gaining momentum today. I hope that the solar eclipse photos posted to indie microblogs today will last through the next North American eclipse 7 years from now, and longer.

    There was a great article on AltPlatform about how compatibility between new blog-focused platforms could eventually become bigger than any one social network:

    Open source tools like WordPress, 1999.io and Mastodon.social are creating many small networks of publishers, and popular tools like Twitter and Micro.blog could peer with them. If all of the social networks outside of Facebook interoperated at some level, they might eventually “flip the iceberg” and become the dominant form of social networking.

    It’s going to take a while, but I have no doubt that this “flip” is exactly what will happen. The entire web should be the social network. It’s too big of an idea to be contained on a single web site.

    → 3:13 PM, Aug 21
  • Core Intuition 293 transcript

    Daniel and I talked mostly about subscriptions on this week’s episode, and then closed with a wrap-up of our projects as summer winds down. Here’s a transcript of the first part of the show, lightly edited.

    Manton:

    Hi Daniel. You know a topic that we’ve had on the show a few times over this last year is subscriptions and pricing and revenue, especially in the context of Micro.blog and the new MarsEdit release. We’ve talked about in-app purchase and different revenue models for MarsEdit. And developers keep trying things. The big news in the last week was Ulysses has switched to a subscription model.

    I find this interesting, and I know we chatted in the Core Intuition Slack a little bit about this as kind of a preview of the show. I’m not sure how to feel about this in general because Ulysses is the first app I’ve seen — the first big app — that is doing subscriptions without changing their app. What I mean is a lot of apps that do subscriptions, they have subscriptions because they’ve done something significant like add their own syncing backend, or publishing service, or there’s some service-oriented aspect to the app that justifies subscriptions. And Ulysses is just saying — they had a big post saying — “You know what? This business is going to work better for us. We think it’s going to be better for users too. We’re just switching; the app’s not changing. We’re just going to start charging per month.”

    Daniel:

    Right. And they have their typical making the case for it blog post: Ulysses switches to subscription. And as you said it’s very straightforward; they’re not doing this halfway. And their basic points are things we’ve heard from other developers and I think you and I, Manton, we appreciate this as well, even if we’re not convinced that subscriptions are the right choice necessarily for all of our products.

    But you know there are some really compelling things. One of the things that rings truest for me is getting away from that whole major upgrade cycle. And especially when you’re looking at someone like me who has been now seven years since the last major update, whenever a developer makes that argument, “Oh, now I can just work on features and add them to the app and release them when I feel like it, or as soon as the feature’s done users can start benefiting from it.” All of that sounds so good to me.

    There’re a lot of great arguments to be made. I don’t necessarily share your feeling that customers expect something service-oriented. I can definitely see that argument in it. I know it’s made often. But I am going to be watching Ulysses closely because I think a lot of customers are starting to understand that it’s sort of just like… Maintenance is a service. Maintenance of the software is a service and that’s something that a lot of people can justify paying for. You know especially with an app like this where it gets at sort of people’s… This is one of those part of people’s identity type of apps, where it’s like: you use this because you are a writer.

    You can also say a big risk here is that there are a lot of different ways to write and there are a lot of different apps you can use. Somebody who uses Photoshop for a living… Historically it’s been harder to justify using other tools because it’s just such an industry standard, so I guess something like Ulysses is going to be like: is what they provide to people unique enough and something that people like enough and identify enough with that they’re willing to say, “Okay, part of my identity is I’m a writer with Ulysses and I’m going to pay $40 a year for that privilege?”

    Manton:

    Yeah, I think there’re a couple of things to go through with this, and your comment on maintenance is a service… That’s true, but nothing has changed with software in that regard, right? Software has always been work: supporting customers, doing new versions doing bug fixes, having compatibility updates for new versions of the OS. The difference with software as a service like web apps and subscriptions is: there is a real cost. If you’re running Dropbox or something you can’t do that for free.

    And users I think get that there is a hosting cost, there is a bigger cost to running those services, and that’s why they are charged by the month usually, because it’s not free to run them. Whereas an iPhone app that you ship, it’s not free to support, of course. And Ulysses has a medium-sized team. They have an actual team behind this, and they probably have potentially multiple engineers and multiple support people. That’s not free, but it’s different than thousands of dollars a month in hosting costs that have to be offset or there’s no business whatsoever.

    That’s how I draw the line usually, where there are some types of businesses that they have to be charged per month. They cannot be done any other way. You could support them by ads, potentially, if you’re big like Facebook and Twitter, but otherwise you have to charge users per month because you just can’t run the service otherwise.

    And apps aren’t like that. Apps, there’s choice. There’re different ways you can make a business out of selling an app.

    Daniel:

    It’s true, but I really don’t think most users think about it that much. People who click the button or tap the button in an iPhone game to get like 100 emeralds or whatever, they’re not thinking through, “Well it costs cost money to make virtual emeralds.”

    Manton:

    That’s a unique case.

    Daniel:

    Well, it’s a unique case but it reflects the fact that I think in the vast majority of cases it’s far simpler: users recognize and accept that software is either available to them or not available to them based on whether they pay, and they choose whether to pay not based on some intricate analysis of the market viability or the business sustenance. They just think, “Do I want this, and am I willing to click this button to say yes, pay?”

    That’s one thing. I do agree that there’s a challenge in marketing subscriptions in general. I just don’t think that you know the arguments about whether the developers need to pay for keeping servers running or not really comes into it as much. It’s more just about a pure value proposition to people.

    Manton:

    I don’t think so, though. I really think users… They don’t think about it in the terms that I just outlined, but their gut feeling is, “I’m paying for this because this is the kind of service that needs to be paid per month.”

    If you ask someone will they be shocked if they go to WordPress.com and it charges them per month, of course they won’t. Yes, it’s a web site hosting service, it charges per month. But then if you ask them if the text editor should charge per month. Most people will say no, it should be a one-time… And this is not because they know the business models perfectly, but it’s just this is the accepted way this software has been done. And software as a service — subscriptions, traditionally — it’s a mature market, 15, 20 years. People are used to subscribing to these things, and so they understand it. And a text editor is not the same thing. I think users get that.

    I mean it’s still too early to know how well this is going to work. I have a feeling, since Ulysses is really well loved… (I use it. I use it on the Mac and on the iPhone. I love the app; it’s really well done.) I have a feeling it’ll work out fine. But you just take a quick look in the App Store and you see the reaction is not kind. One-star reviews. “Loved this app, now I hate it because it’s subscriptions.” So that reaction shouldn’t shock anyone, because this is kind of a big switch and people are not used to paying per month for this type of app.

    Daniel:

    It doesn’t shock me, the reaction, but I also think that this is a classic example where a very angry, loud minority, probably, is going to get the attention. They’re going to make a stink about it. We saw this happen with TextExpander a year ago when they switched to a subscription model. As far as I can tell, TextExpander is doing very well, and it’s because, again… I mean you can argue and probably will that they have a service component…

    Manton:

    I will, yeah. [laughter]

    Daniel:

    But I honestly I don’t think that that plays into it. I don’t think typical users are thinking through the mechanics of how software works. I suppose at one point you know somebody could have made an argument that people aren’t going to pay money for software anymore because you don’t get a box and it doesn’t come with a CD-ROM and there’s no physical thing there. But we made that leap and we got to the point where it was like, okay, now people are paying $600 for an Adobe download.

    This is always going to be changing. How software is marketed, how it’s priced, what people are willing to pay for it, how they get it. And I don’t think the technicalities of whether there’s a running server process on a web host somewhere has as much to do with it as you think it does. I think it’s just, point blank, does this do things I want and am I willing to pay for it.

    You and I, we do customer support for our customers. A lot of them don’t understand the intricacies of how software is delivered and how it’s installed. They just know that it gets on their device somehow and then they use it. All of your arguments are totally valid about this sort of mindset of this classic traditional, savvy computer user. And I think we have to keep in mind, more and more, these ideas about how we think software is supposed to be sold and delivered. You know every year there’s a whole new class of adults who comes into purchasing power who has never known some of these old ways of selling software.

    I think there’re problems with subscription pricing, but I don’t think if you took an average sampling of people, I don’t think that… I guess I have to admit I would be really curious to know what an average sampling of people would think about it. But I just don’t think that they would be going to the sophisticated analysis that you are, as much as you think.

    Manton:

    I agree they wouldn’t have that analysis exactly, but again their instinct — their first reaction — would be this app is good for subscriptions and this app is not. Again, no one is shocked if they go to Spotify that it’s a subscription. No one would say this should be a flat one dollar forever charge. It’s just accepted that, yes, this type of app is a subscription product. And the opposite is true for a text editor. The default assumption for people is that it’s a one-time fee and maybe they have to pay again later at some point, but they get to keep using that app.

    And that’s another distinction that’s worth pointing out: there’re a lot of different ways to do subscriptions. Right now we’re talking about automatically recurring subscriptions where you pay per month or per year and at the end of that period it renews and you can’t use the app after it expires. That’s what we’re talking about. There’re other kinds that people have experimented with too, though.

    For example, Sketch — great vector drawing app that I love — that is kind of subscriptions, but not really. It’s more like a support contract where you pay for a year and you get updates. After that year, you don’t get updates anymore. But the app doesn’t stop working. You can still keep using it.

    And that’s kind of a middle-ground that I know a couple developers have experimented with, and I think for certain types of apps that works really well. I think for Sketch that works really well, especially because their competition is in the fully recurring — you know I’m talking about Adobe — fully recurring, automatic renewal subscriptions. They are almost there but not quite. Their app is less expensive. It’s better for some people. And so I think that fits that market really well. But there’re a couple different ways to do this and traditionally the recurring subscriptions has not been used for apps like Ulysses. It’s just rare to see an app like that have that kind of business model.

    Again, with TextExpander, like you hinted at, my argument there would be: first of all, they still have the standalone version that you can buy; and second of all, when they introduced subscriptions they have a team version that syncs your snippets to all your computers. Same thing for just you using it solo or with a couple of people. And so they introduced the business model change with the addition of new features that were enabled by subscriptions. And that’s the distinction of where I draw the line there.

    Daniel:

    Yeah. Obviously there’s been more apps doing this kind of subscription, or like you said with Sketch, kind of a semi-subscription approach. And I guess I’m just not going to be too surprised if after a few years, whatever this sort of hunch that you think people have that something is or isn’t suitable for subscriptions, that they’ll just kind of get over it. I guess that’s the bottom line. Does this reflect a sort of market necessity, or is it just kind of like a whim.

    I guess we’ll be able to watch a dueling example of this playing out because one of the competitors to Ulysses is Scrivener. And as I was reading the responses to Ulysses going subscription, I saw at least one customer saying this kind of snarky comment like, “Thanks for making my decision to switch to Scrivener.” And in fact if you go to the Scrivener forums, one of their customers asks point blank, “Are you switching to…” Or they said, “Please don’t switch to a subscription model.” And the Scrivener developers, they answered very bluntly saying, “We don’t want to switch to a subscription model.” They put a flag in the ground for traditional purchase one version, pay for upgrades, etc… So I guess we’ll be able to see as time goes forward which one of these models works best, or if they both work, and how it affects customers' happiness.

    Manton:

    Right. And this is a really neat example that we have because there’s this contrast. Both those apps are different, certainly, but they both appeal to writers, and so there’s certainly overlap. Some people love both apps and use them for different purposes. The business model is now very different. And with Scrivener I think it’s $45 for the Mac version. Add on some more for the iOS version. But that’s a one-time fee. So if someone uses that app for five years, let’s say, they’re going to be paying much, much less than Ulysses. Probably roughly one-fifth the price.

    Doesn’t matter in the short term so much. And subscriptions are also nice because you can start using an app with a very low investment of just the monthly fee. But in the long run if that continues, people will notice the price difference and they’ll think about it.

    And the reason I’m coming from this side of things is that I am a little concerned that… This subscription fatigue thing. I really do think it’s real. I think people will be burned out on subscriptions if all apps are subscription-based. I think that will be a big problem for the market and just the industry in general. And as someone who is trying to build a business that can only work with subscriptions, I have no choice. It has to be subscription-based because of the hosting costs of running a social network and a blogging platform.

    I’m a little concerned that people will be burned out and I don’t want them to drop my service. I want them to drop something else if they decide they have to cut their monthly expenses.

    We’ll see how it plays out; it’s super early. I was just listening to the Accidental Tech Podcast, and they briefly addressed this in one of their Q&A episodes. The consensus on the show was the market will sort of out, don’t worry. If too many people charge for subscriptions and users are burned out, they’ll stop buying those apps and those apps will have to die or change their business model.

    They weren’t worried. I am more worried than that. I think there is a concern. We’ll just have to see if that is valid. I know developers right now are looking at Ulysses, and if it works for them, they will copy it. That’s going to work for some people and not for others.

    Daniel:

    You know when it comes down to it, part of this subscription thing is developers, actually starting to demand payment for what they do.

    Manton:

    [laughter] Yeah.

    Daniel:

    And you know, when you look at people like me… It’s funny, the Scrivener folks say in their post as well that it’s been seven years since they had a major upgrade. And I look at that and I think, Ulysses can switch to subscription pricing and they can charge $40 a year. If you compare that with Scrivener, they can have seven times fewer users and still make the same amount of money.

    A lot of us who are amateur at business, we have this problem: we neglect to ask and demand payment for the true value of our work. Part of the problem when you go indie, and you go from having a well-paid job to maybe making half of that and hopefully trying to get back up to where you’re making the same amount of money you were for the big job. Part of that disparity of income is I think a failure to demand payment for what what your work is worth.

    And so I think it may be an extreme that going to this $40 a year might be an extreme counterbalance to that, but I think it’s an example of pushing back in the other direction. I think it’s fair to say people who have been using Scrivener for seven years, having paid for it once for $40… Whatever that amount per year is is not a fair compensation for the work. So somewhere in the middle maybe. If it’s going to come down to a test of whether a business model that asks for $40 a year wins or a business model that asks $40 every seven years wins, the subscription pricing is going to win. That’s ultimately going to keep the product better maintained and better developed. It’s going to cause users to like it more.

    And I don’t know the subscription fatigue thing, I agree, but most users don’t need like 20 apps — 20 paid apps, anyway. I have some subscription fatigue for things like Netflix. I only have Netflix and then I added HBO. And I have my Apple Music subscription. I’m not going to go subscribe to all of Apple Music and Spotify and whatever else — Tital or whatever else. But I am willing to add subscriptions for things that bring me new value that I can justify.

    And I think that people are going to be the same way with with apps. Maybe there’s only five apps I want to subscribe and pay for, but I’m going to pay for those. If every user out there subscribed and paid for five apps at $40 a year we would be doing pretty well as a software industry.

    Manton:

    So Daniel, you make some good points about subscriptions, and I also think that you’re right in a way that maybe subscriptions for these types of apps — that I personally think is pushing the limits — it is at one extreme, and maybe we’ll come back into the middle a little bit. Because of course I completely agree that apps should not go without revenue for seven years, and that’s not really the user’s fault, exactly. Developers should be more disciplined about… I’m trying to say that without insulting anyone, including my co-host.

    Daniel:

    Anyone on this show. [laughter]

    Manton:

    But that’s too long, we can all agree. If your if your model is paid upgrades, maybe you can go that long if you have a successful app, but you shouldn’t. You should go at most two or three years before doing a paid upgrade. That’s a reasonable amount of time. Especially for Mac software, you’re not going to get any one-star reviews if you do a paid upgrade after three years. People understand that there’s going to be a paid upgrade at some point, most likely.

    So maybe there’s a middle ground there. Maybe this is pushing the limits. As you were talking about you just want to pay for Netflix, but not Hulu and HBO and Apple Music and all these other things, I think there’s a parallel to the app world here as well, and it’s Setapp.

    We’ve talked about this a little bit on the show, but Setapp is like the cable package for people who don’t want to buy one-off subscription services. We pay for Netflix, we pay for HBO, we pay for Hulu, we pay for Playstation Vue, we pay for all these things. And at some point you kind of want to consolidate that into a cable-like package where you’re paying one company and you’re getting a lot of things. And we don’t quite have that in the streaming world and we don’t certainly have that in the developer world, but Setapp is that model where it’s a subscription but you pay for many things at once, so that you’re not burned out on paying 20 different developers $4 a month.

    Daniel:

    Yeah, I think it’s a great argument if you say what if you had to pay for a subscription for each of the shows that you watch on TV. There’s a logical extreme where obviously it’s not going to work, and maybe that’s an example where the ATP argument that the market will figure it out comes into play. I mean there’s just no way I would pay… Imagining that scenario is a bad scene because I think in practice what would happen is that I would just stop watching TV. So it’s bad news for the TV makers if you follow that same argument. If I have to pay for each of the shows that I relatively religiously watch now then I would find a new hobby, I guess. And maybe software buyers would likewise… I don’t know what they’d do. Maybe they’d switched to writing with a typewriter or something.

    It’s going to be interesting to see because I don’t know if Setapp is exactly the right solution. I really applaud them… They’ve really tackled this experiment with gusto, and it sort of seems like it’s working for them. It doesn’t seem like it’s working nearly as well as they had anticipated, from what I’ve picked up. I saw some links talking about how much they’ve sponsored and how many big events they’ve sponsored, and you sort of start doing the math on it and it doesn’t really sound like it’s… I wish I had it all at the tip of my fingers, but some other information came out where it showed I think that they had shared their subscription count and doing the math on it it sort of seemed like, well that sounds like not a great deal.

    You actually saw some concrete evidence of how well they’re doing on Dan Counsell’s blog. It’s his Micro.blog-hosted blog as it happens, and he shared his numbers for RapidWeaver. Actually RapidWeaver and Squash, two of his apps, but I have to assume RapidWeaver is by far the greater revenue source in this case.

    Both of them are in Setapp. We don’t know a ton about how Setapp developers are compensated except for it’s been shared that it’s sort of proportional to the price of the app standalone. RapidWeaver is not one of the lower-priced apps in Setapp, so I would have to assume Dan Counsell’s cut is higher than many participants in Setapp. So keep that in mind, but he shares his numbers and he points out that the numbers are actually going up. Fairly fairly quickly, really, over a few months. In May, he says he took $1446 from Setapp, and in August it’s up to $1913. Which is a great growth rate if you just look at it in isolation. However, I’m not sure that reflects a great overall business numbers from Setapp, if you consider that he’s probably being compensated better than many app developers in the program.

    Let’s say generously that he can look forward to you know $30,000 a year in revenue from Setapp in the near future. And if that’s true, boy that’s really great if it’s extra money, if it’s not eating into his sales, etc. But this is being looked at as the future of software, it’s not great. $30,000 a year is not great for most developers in the U.S. at least trying to make a living off of software. And particularly for an app like RapidWeaver that I have to imagine — if not now then definitely in its heyday — was making way more than $30,000 a year. I imagine it still is making multiples of that per year.

    So I don’t I don’t expect Setapp to be mature and to the point where it does fulfill this dream of keeping developers fully employed by participating in the program. But I do think this is evidence. This is middle evidence. This is evidence that there’s real money coming through Setapp, and it’s also evidence that it’s not a real great amount of money.

    Manton:

    Right, and I haven’t seen too many real numbers, but this is consistent with what we’ve heard — even some people in the Core Intuition Slack, who are on Setapp, have said — which is it’s some extra money. It’s not, “I can’t shut down my direct sales or my Mac App Store sales and just use Setapp”, but it’s money coming in. It’s growing. And the consensus I hear is, “I’m willing to just let it grow and see what happens”, because it’s extra money.

    You’re kind of hedging your bets by being in Setapp because whether you sell directly and have paid upgrades as RapidWeaver has had for quite some time — and I know they’ve had some big successful paid upgrades that they’ve blogged about — or whether you’re taking Ulysses’s approach or TextExpander or 1Password, those kind of approaches with subscriptions. In case your primary bet doesn’t work out, if Setapp grows, that’s extra revenue that will appeal to a different set of users. If someone is burned out on subscriptions or they’re tired of paying paid upgrades or they don’t want to pay $45 at once for the app, and they go to Setapp, they are still your customers, which is nice.

    I feel like Setapp, in a lot of ways I think people have been a little too negative about it, and maybe the expectations at the beginning were just too great for it. But if Setapp sticks with it, and develops stick with it, and it keeps growing, I think there’s something there. It doesn’t need to take over the world, but it could still be a nice bit of extra revenue for developers that are there.

    Daniel:

    It’s interesting because one of the apps in Setapp is none other than Ulysses. So you get this interesting situation where if a few more of these Setapp apps start offering subscription pricing on their own, then you get to the situation where if you’ve got three $40 a year apps then you do start to face that point. If I were subscribing to Ulysses and let’s say RapidWeaver had its own subscription, and Screens is on here. If I was subscribing to each of those independently, I would be paying more at that point than the Setapp price.

    Manton:

    Is the Setapp price $10 a month, or $20?

    Daniel:

    $10 a month.

    Manton:

    So it would only take a couple subscriptions individually to say, “Well, maybe I’ll just use Setapp instead.”

    Daniel:

    If that happens, that’s going to be an interesting example of where developers might suffer. A lot of this hinges on the Setapp model not taking money away from the developers. So if you’re in a situation where you’ve got three people paying $40 a year each for three apps that are also Setapp, if that individual gives up those subscriptions in favor of Setapp then suddenly those three developers are making a ton less money.

    At some point I don’t know whether this Setapp setup is going to be something these folks want to stay in. And I can see for example Ulysses being in Setapp as sort of a way to get some subscription money before they had chosen to go that route route.

    I don’t know if we’ve seen an example yet — if we have, I don’t think it’s been highly publicized — but I don’t think we’ve seen an example yet of companies leaving Setapp. I wonder if some of them will be compelled to if doing the subscriptions themselves is a better deal.

    Actually, Blogo is in here, which is one of my competitors, and it’s also I think exclusively a subscription app on its own. And they made the switch a year or two ago. But that’s another example where it’s like okay, get a few of these and if you’re paying for them separately of course you’re going to go switch to Setapp, save some money, but then I don’t know. There’s going to be some friction there if that happens.

    Manton:

    And it’s complicated because you say of course you’re going to switch, but most people don’t know about Setapp. And I think most developers are not pushing it prominently even though there’s an advantage to pushing it a little bit because there’s some some complicated math there with referral numbers but RapidWeaver as an example, it’s a $90 app. I know they have regular paid upgrades that are probably half that or less. So, pretty expensive app. But I know they have tons of users that love the app, really well respected app. When you go to RapidWeaver — RealMacSoftware.com — you buy it directly or from the Mac App Store, it’s $90. It doesn’t say, huge button that says Setapp.

    Actually if you scroll way down to the bottom there is a referral link to Setapp. Buried way, way at the bottom — in the footer of the page — but I think most people are going to buy direct from the developer or through the Mac App Store and Setapp is not going to hurt the general sales. If it does, it’ll be a real small percentage of people I think.

    It gets complicated though. There’s certainly the thing that we’ve talked about before which is if your competitor is in Setapp, and a potential user knows about a Setapp, they may just use your competitor’s app because it’s Setapp without having to pay extra, versus going to your site. There’s a lot of ramifications for these different models competing.

    Daniel:

    I wonder if there’s a rule on being in Setapp if you have to link to them. I’m looking now on Edovia’s Screens for Mac, and it’s a similar type of deal. It says download trial, buy now, and then as part of the little text underneath it says Screens is also available on the Mac App Store and Setapp. Does the Ulysses app have a link?

    Manton:

    That’s a good question. Let’s check. And even if it’s not a rule because of the referral money, there’s an incentive to just put a link anywhere, somewhere, even if it’s not super prominent.

    Daniel:

    Yeah. I don’t see anything about it on the Ulysses page, so maybe it’s not a requirement. Maybe it’s just a coincidence that both of those had it.

    I think Setapp, back when they were first coming out, we had this discussion. I don’t think this is exactly the right solution what they have right now, but I think they are set up to be in a position to provide what could be the right solution. And I think it’s going to be when that friction — you know, let’s assume they get successful enough that that friction occurs, where enough people know about Setapp to know that they can go to Setapp and then that doesn’t work out as well for the developers. I think what Setapp could do is be in the business of providing basically the equivalent of cable mini-packages. If you could put together your a la carte list of apps and say, “Okay, I want these five apps let’s say, and I’m willing to pay for these five apps for $10 a month.” Obviously at that point it would have to be apps that are included in the main Setapp bundle. They would be in a really strong position then because they can capitalize on that problem we were talking about, hich is I don’t want to pay for each show separately. But at the same time they can also give their developers a more substantial cut because you’d be selling a smaller number of apps that it’s obvious the customer really wants those apps.

    Manton:

    Right. I think you’re right that they’re well positioned to do something and to fill whatever this hole ends up looking like in the market. The key to me is they shouldn’t give up. Developers shouldn’t give up like just see this through. Even if a developer is not making very much money, it’s probably mostly free money. It’s probably not hurting your direct sales too much, so just see it through and then six months later, 12 months later, re-evaluate and we’ll re-evaluate on the show too how we think it’s going. But this feels like it’s something, but it needs time to develop and mature.

    Daniel:

    Yes, I think so. I think we’re going to see a lot of stuff happening over the next year, especially. Seems like the subscription idea is percolating. Setapp is there as an example of something different that somebody is trying. Maybe we’ll see something new yet still.

    I kind of wish I wasn’t due for a major upgrade, because I wish I could sit back and watch and see what works. But I think I’m just going to have to push forward and get my get my app out. Probably sell it the old-fashioned way.

    → 1:30 PM, Aug 17
  • Markdown replies in Micro.blog

    Micro.blog now has Markdown highlighting as you type in replies. Micro.blog has had basic Markdown support since the Kickstarter launch, but we’ve been improving how it processes Markdown and where the visual highlighting is used in the web UI.

    Here’s a short screencast of the new reply UI:

    Don’t have a Micro.blog account yet? We’ll be inviting more users soon. You can sign up on the announce list.

    → 10:28 AM, Aug 14
  • Safari pinned tab favicons

    In a post on Daring Fireball today, John Gruber makes a convincing argument for Safari showing favicons in tabs:

    With many tabs open, there’s really nothing subjective about it: Chrome’s tabs are more usable because they show favicons.

    Even more surprising to me is that Safari doesn’t use favicons for pinned tabs. Instead it uses a special monochrome vector icon. Ever since adding favicon support to Micro.blog, I’ve had on my to-do list to create one of these vector icons for Safari, but so far I haven’t been able to justify the effort. (And judging by a handful of my favorite sites, no one else has bothered to create a pinned tab vector icon either.)

    Why does Apple require a separate icon format here? Probably for the same reason as John Gruber’s guess about normal tabs:

    I don’t know what the argument is against showing favicons in Safari’s tabs, but I can only presume that it’s because some contingent within Apple thinks it would spoil the monochromatic aesthetic of Safari’s toolbar area.

    It seems clear that these pinned tab vector icons are a dead-end. There are already too many sizes of favicons. Safari should have basic favicon support in tabs and do it with as few extra icon files as possible.

    → 10:35 PM, Aug 10
  • Reposts and quoting

    I recently added “repost-of” support to Micro.blog’s Micropub API implementation. This lets you pass an extra URL — the post you’re writing about — in clients like Micropublish. There’s deliberately still no concept of a retweet or repost, though.

    When I wrote last year about Instagram and reposts, I was concerned with introducing features that could be abused or lead us back to reinventing Twitter’s problems. There’s even more evidence now that quick reposting shouldn’t be implemented blindly. Look what happened on Soundcloud:

    Similar to Tumblr’s reblog or Twitter’s retweet, reposts were designed as a way to help new music spread virally. But from the start, artists abused the feature by constantly reposting their own tracks, pushing them back to the top of their followers’ feeds every few days.

    For Micro.blog, I believe the right approach is to first introduce a simple “quote” feature. This UI would be streamlined to support quoting a sentence out of a blog post, with your own thoughts tacked on. It would fit with the spirit of easy posting in Micro.blog, but it would encourage more thoughtful posts and naturally scale up from traditional linkblogging.

    → 2:58 PM, Aug 10
  • 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.

    → 11:49 AM, Aug 9
  • Webmention in action

    It’s always cool to see Webmention comments on real sites across the web. It’s not just a W3C spec. Like many ideas from the IndieWeb, this is a simple web technology that actually works today.

    We’ve been improving Micro.blog’s support for Webmention. When you reply to a post on Micro.blog, from the web or iOS app, it will ping the site you’re replying to, giving that site a chance to include the comment. You can see these replies show up under recent posts from Aaron Parecki and Jonathan LaCour.

    Drew McLellan had a good overview of implementing Webmention, including using services like Bridgy to bring in tweet replies:

    The end result is that by being notified of the external reaction, the publisher is able to aggregate those reactions and collect them together with the original content.

    Colin Walker highlighted Webmention when writing about Micro.blog:

    It looks like a basic Twitter-style network but that is only scratching the surface; its simplicity belies its power.

    Micro.blog also has limited support for receiving Webmention requests for people replying to a Micro.blog-hosted blog from their own site. As this support improves, both in Micro.blog and as more people enable Webmention on their WordPress sites, the distributed nature of the web as a broad social network will really start to shine.

    → 12:23 PM, Aug 8
  • Micro.blog photos from MarsEdit

    This morning I updated Micro.blog’s XML-RPC posting to support the MetaWeblog API, which allows uploading photos to your hosted microblog. If you’re using MarsEdit to post to Micro.blog, edit your “System API” in MarsEdit’s blog settings to “MetaWeblog API” instead of “Blogger API”.

    Working on the photo upload support has also helped clarify how Micro.blog should process text from the different posting APIs such as MetaWeblog and Micropub. After the next version of the Micro.blog iOS app ships, Micro.blog will start requiring Markdown and escaping HTML tags from Micropub, just as it currently does from the web interface. This will be a much better default for most people, and bring more consistency between web and iOS posting.

    MarsEdit and other tools that use XML-RPC will still be available for when you want more control over the HTML that is posted. Micro.blog does allow Markdown in your MarsEdit posts, but otherwise it does very little processing of text from MarsEdit. It even lets you post long-form blog posts.

    → 10:57 AM, Jul 24
  • Micro.blog + Facebook

    Today we’re adding Facebook cross-posting to Micro.blog. Facebook support is now built in, just like Twitter cross-posting, and can be configured for a microblog hosted on Micro.blog or any external blog with a feed.

    Micro.blog’s cross-posting naturally works with long-form content or microblog posts. For longer posts, it includes the title with a link back to your blog. For microblog posts, it sends the entire text to Facebook.

    Micro.blog also parses your post HTML looking for img tags, downloads the photo and attaches it to the Facebook post. This means that microblog posts with photos look great on Facebook, but the source content is still on your own web site. It works really well with the Micro.blog app for iOS.

    I feel like Micro.blog is starting to pick up steam. I’m looking forward to rolling out more improvements before the public launch.

    → 11:20 AM, Jul 20
  • SSL for hosted Micro.blog sites

    Micro.blog’s business model is pretty simple. If you want Micro.blog to host a new microblog for you, or use the Twitter cross-posting with an existing site, there’s a small monthly subscription. We want Micro.blog to be the easiest way to start a blog.

    Included in all Micro.blog-hosted microblogs is support for custom domain names, so that you can map yourname.com to your blog. While we’ve always supported SSL for the default yourname.micro.blog hostnames, custom domains need their own SSL certificate. Managing SSL certificates is a hassle, and until recently, also expensive.

    I’m happy to announce that we are now rolling out free SSL hosting for custom domains, powered by Let’s Encrypt. While it’s not fully automated yet, we’ve already started enabling these for customers as requested. If you have a Micro.blog-hosted blog with a custom domain, email help@micro.blog and we’ll enable SSL on your site.

    There are more features coming for hosted blogs leading up to the public launch of Micro.blog. Don’t forget to sign up on the launch announce list.

    → 3:20 PM, Jul 16
  • Core Intuition Jobs shutting down

    A few years ago, Daniel and I launched Core Intuition Jobs, a site for companies to post job listings for Mac and iOS developers. It was a really nice success. At one point I thought we might even focus more time on it, and expand it with a companion site of resources to help developers.

    Fast forward a year or two, though, and it became clear that without that attention, the site couldn’t just coast along. New listings were becoming more infrequent. The site needed marketing and regular improvements, just like any product.

    And worse, while the whole point was to build something just for Cocoa developers, the site would still sometimes receive job listings for Java or Python developers, for example, and we’d need to refund the listing and remove it from the site. It wasn’t a lot of maintenance, but it was enough that we had to decide whether to put more work into the site or focus on our main podcast and other projects.

    This week we decided it was time to move on. Existing job listings will continue to run until they expire. No new jobs are being accepted.

    Thanks to all the companies who used Core Intuition Jobs. Now when we are asked about other places to post jobs, we’re pointing people to the email newsletters iOS Dev Weekly and This Week in Swift, as well as Core Intuition podcast sponsorships. Good luck to everyone looking for a new job!

    → 9:51 AM, Jul 15
  • iPhone introduction felt impossible

    John Gruber remembers what it was like watching the iPhone announcement:

    Apple had amazing product introductions before the iPhone, and it’s had a few good ones after. But the iPhone was the only product introduction I’ve ever experienced that felt impossible. Apple couldn’t have shrunk Mac OS X — a Unix-based workstation OS, including the Cocoa frameworks — to a point where it could run on a cell phone. Scrolling couldn’t be that smooth and fluid. A touchscreen — especially one in a phone — couldn’t be so responsive.

    I felt the same way. Even the day I brought the iPhone home, I wasn’t sure that it was actually going to work. I was ready to be unsurprised if it turned out to be unstable — crashing often or overheating. It was stunning how good it was. It absolutely felt like a phone from the future.

    One thing I had forgotten about from 10 years ago was the activation process, which was definitely not from the future. It was rooted in the past, connecting to iTunes like an iPod. Here are some of my tweets from that day, showing the long delay between picking up the iPhone from the store and actually using it, plus my last-minute decision to even wait in line:

    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.

    11:56pm: @danielpunkass Wait, what? You can make calls on it? (But seriously, you’re right. It’s a computer first and a phone second.)

    Apparently I waited in line most of the day. I remember it only being a few hours. I also love how trivial these tweets seem. A big reason to have a microblog is because even the most mundane posts today carry extra significant years later.

    → 9:42 AM, Jun 30
  • MarsEdit 4 and microblogs

    Great to see Daniel Jalkut announce a public beta of MarsEdit 4. There are a lot of new features in this version, but the one that I love the most actually might seem minor. It’s just a short line in Daniel’s announcement, under WordPress-specific enhancements:

    Post Format support

    For anyone using WordPress for microblogging, this is a big deal. It means you can post with the “status” post format for your short posts. It’s a really convenient way to post to a WordPress microblog from a Mac. (And of course, you can use MarsEdit to post directly to a Micro.blog-hosted blog as well.)

    → 5:07 PM, Jun 28
  • 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.

    → 8:41 AM, Jun 27
  • Core Intuition 287

    We just posted Core Intuition episode 287, following up on Chris Lattner, WWDC, and Uber. From the show notes:

    Daniel and Manton react to Chris Lattner's early departure from Tesla, and segue into speculation about his job prospects, and the challenges of effective technical interviews. They talk about the new frameworks announced at WWDC, and overcoming fear of incompetence when learning new things. Finally, they react to Uber CEO Travis Kalanick's resignation, and think about what’s next for the company.

    Thanks for listening. If you’re new to the show, you can subscribe in iTunes or Overcast.

    → 12:18 PM, Jun 22
  • The open web and Micro.blog progress

    I was very excited to see this post from Brandon Kraft, about the potential for an expanded role for WordPress in the IndieWeb movement:

    The dream isn’t to return to the past before social media, but help make social media part of the web in an organic way. For this post, you can like it or comment it on via this site, WordPress.com, Twitter, or Facebook, but all of the comments will appear here using Webmentions. The closed gardens will still exist, but it’ll make it easier for people to reach out between them.

    People always ask me how Micro.blog is going. There are many answers to that: from the business side, or how the community is growing, or the technical bits of scaling the backend. But one simple answer is how Micro.blog’s success can be judged in posts like Brandon’s.

    I still believe strongly in the dual nature of success that I posted about earlier this year:

    Key for Micro.blog: it’s a success if more people blog. To provide value it doesn’t need to replace Twitter. But also, it can.

    Of course, “if more people blog” is a simplification that leaves out what naturally happens next: the spread of more web standards and better tools for microblogging. If Micro.blog has played even a small part in encouraging IndieWeb standards within WordPress itself, that is great progress. I’ll be happy to raise the bar for what success looks like.

    → 2:48 PM, Jun 21
  • 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.

    → 1:26 PM, Jun 21
  • Uber&#039;s perpetual second chance

    Last week, Uber sent an email to customers linking to the results of its investigation and the next steps for the company:

    After a report of inexcusable workplace harassment surfaced earlier this year, our board and senior leadership took immediate action. They asked former U.S. Attorney General Eric Holder and experts from the law firm Covington & Burling to conduct a thorough investigation. After four months of review, this week they released their report, which you can read here.

    People always deserve a second chance. Companies, not so much. I see no reason to use Uber again, especially when there are now many ride-sharing apps that are just as good.

    Uber had a strong brand, and now they’ve undermined it. Uber had the best user experience, and now most ride-sharing apps have matched it.

    Uber is still in more cities, but that’s less of an advantage than I first assumed. Austin went without Uber and Lyft for a year and the city’s roads didn’t descend into chaos. It was fine.

    Maybe ride-sharing is a winner-take-all market as Ben Thompson has convincingly argued. But maybe ride-sharing is just one commodity feature in the future of transportation, and as these services are integrated into larger platforms like Apple Maps and Google Maps, Uber’s dominance will fade just as their differentiation has faded. (On the extreme side of this, some competition to Uber such as RideAustin already treat the infrastructure as nothing special, operating as a non-profit to serve drivers and riders.)

    It may seem foolish to bet against a company with billions of dollars in revenue, but Uber has little competitive advantage in software to show for the huge investment and current loses. They have more drivers, but with frequent turnover, how loyal are those drivers? I took a ride with Fasten and my driver thought that signing up and driving with Fasten was so similar to Uber that perhaps Uber was even secretly running it.

    Uber reminds me of the Trump campaign and administration: mistake after mistake, and they get away with it. But at some point the second chances have run out, and the problems will stick and have real consequences, taking the whole thing down.

    Companies are not always built to last. Sometimes it’s unfair — products that never find the right customers despite the founders' best intentions. But sometimes companies deserve to fail — mismanagement, bad products, and toxic culture.

    Companies fail all the time. I hope everyone at Uber is ready with a new job when it’s Uber’s turn.

    → 11:34 AM, Jun 20
  • What to post to a microblog

    On the surface, an independent microblog might seem a lot like a Twitter account. There are some important differences: you own your own content, you can use Markdown or HTML for styled text, and you aren’t limited to 140 characters. An indie microblog can be just as easy to use as Twitter, but more flexible since it lives at your own web site, even with your own domain name.

    So you’ve created a Micro.blog account or chosen to set up your own blog. How should you use your own microblog compared to Twitter or Instagram? Here are some ideas:

    • Use it the same as Twitter. Write short posts on your own microblog and cross-post them to Twitter. This is essentially what I do. If what I want to say fits naturally in 140 characters, it goes to Twitter as-is and followers can reply or like it there. If it's a little longer, Micro.blog automatically truncates the tweet and links back to my blog.
    • Use it instead of tweetstorms. If you find yourself trying to express a thought and it's going to take 2-3 tweets, consider posting it to your own microblog instead. Micro.blog suggests a limit of 280 characters. It's still short enough that it encourages quick, easy posting, but it's long enough that you can use it for much more well-formed posts.
    • Use it for a photoblog. I've noticed some pushback against Instagram as they add more ads, clutter the UI with Snapchat features, and move away from a simple reverse-chronological timeline. I want to make Micro.blog a great alternative for photo-blogging, which is why you can discover users from photos and there's a UI for filters and cropping. You can see all my photos here.
    • Use it for a linkblog. Link-style blogging is for short commentary about another article, usually with a link at the end pointing to the other web site. Since microblogs are based on Markdown or HTML, you can also include inline links, which makes the blog posts look clean and readable on your own site. Micro.blog's cross-posting will automatically parse out the link and append it to the tweet version of the post.
    • Use it for company news. Because it can be integrated into an existing full blog or web site, a microblog is a convenient format for posting updates about your business or industry topics you care about. This is why Micro.blog allows custom domain names and also offers the Sidebar.js include.

    Of course there’s no single correct way to blog. I’ve enjoyed watching Micro.blog users try different approaches to microblogging to figure out what works best for them.

    → 11:07 AM, Jun 19
  • The algorithm has ruined Facebook

    Dave Winer writes today about how because of the way the Facebook news feed works, sometimes you never seem to hear from friends again because they’re demoted by the algorithm. Your friends are posting, but you never see what they’re saying. Also:

    For other people you are a missing person. You being the person who dutifully informs all your Facebook friends of what's going on in your life. You, the friend they never seem to think of. No surprise they're not thinking of you. The Algorithm decided you don't count.

    If you want to see this in action, visit Facebook in a web browser and see what it shows you. Don’t scroll or click anything, just wait a few seconds and hit reload. Then hit reload again. And again. Each time you’re presented with a completely different view of what’s important. It’s unusable.

    → 10:48 AM, Jun 16
  • Jeremy Keith on Presentable and the IndieWeb

    I know there are so many great podcasts that it’s difficult to listen to everything. I’m still making my way through all the commentary about WWDC. But I just finished Jeff Veen’s Presentable episode 25 this week and particularly enjoyed it.

    Jeff talked to Jeremy Keith about his new web design book, and about the web industry repeating the same old mistakes, with a really great discussion about the IndieWeb. When asked about how people prefer to post on a social network, because maybe fewer people will find their own site, Jeremy said:

    I always get frustrated when people talk about this as a reason not to do something. For me, that was the whole point of the web — that nobody was stopping you. You're right, maybe nobody will read this thing that I've published, but I could publish it and nobody was stopping me. To see people stop themselves, to act as their own gatekeeper...

    There’s much more that I can’t capture in a truncated quote. Highly recommend listening to the full interview in context.

    → 9:20 AM, Jun 16
  • Core Intuition 286

    We just posted a new episode of Core Intuition. From the show notes:

    Manton and Daniel compare notes on recent MacBook Pro repairs and the relative merit of purchasing AppleCare. They react to Tim Cook’s admissions that an Apple “car” project exists and is still underway. Manton looks on the bright side of “Planet of the Apps,” and Daniel looks on the dark side. Finally, they talk briefly about the controversy around an excerpt from “One Device,” by Brian Merchant.

    There’s still a lot to cover from WWDC. It’s a good time to be a Mac or iOS developer.

    → 9:05 AM, Jun 15
  • What&#039;s happening

    Because I don’t follow anyone on Twitter, about once a week I’ll randomly click through a few Twitter user profiles to see if I missed anything interesting. Usually the answer is no. If something important is happening, it’s also being discussed in more detail on blogs, and I’ll see it.

    Yesterday I checked on the last tweets of a few developer friends who stopped posting either after the election or on inauguration day. I have a lot of respect for anyone who makes a quiet, peaceful stand on principle. It’s not easy to go against the flow.

    The 2016 election was a disaster. It still hurts to think about it. I keep telling myself and others: heads down, keep working. I have to believe we can get through this.

    Today another story exploded on Twitter: a shooting at a congressional baseball practice. If you had clicked through from the trending links on Twitter this morning you’d have seen the worst speculation, misinformed partisan tweets, and unhelpful “facts” before we knew what really happened. When we should all be striking a solemn tone for the injured, the tweets instead quickly turn dark.

    For a service that prides itself on breaking news, Twitter is an absolute dumpster fire in times like this. The best of Twitter is the thoughtful tweets and discussion, connecting new friends and diverse opinions. When real news breaks, the service runs uncontrolled, in fits of nervous energy and hate. It’s a terrible place.

    Micro.blog will never have trends, search, or even retweets until we can elegantly solve this. The world doesn’t need another platform with so much manipulative power.

    → 3:36 PM, Jun 14
  • Eyvind Earle&#039;s painting how-to

    When I was in San Francisco last week, I visited the Eyvind Earle special exhibit at the Walt Disney Family Museum. Eyvind was a background painter and concept artist on Sleeping Beauty and other 1950s Disney features. I love this series of small paintings he made to train his assistants:

    Today, something like this would be done digitally in layers. In 1959, he had to paint each layer multiple times to fully demonstrate the technique. No shortcuts.

    → 9:30 PM, Jun 13
  • Apple podcast spec changes

    At WWDC last week, Apple introduced changes to their RSS feed extension for podcasts. Before reviewing the session, I was worried that Apple would be moving to Apple News Format instead of RSS. That would’ve been a major setback for the open web, since Apple News Format is such an app-specific, closed format, controlled by a single company. Luckily the actual changes Apple introduced are pretty minor and shouldn’t upset the status quo much.

    There are 2 sets of changes: support for supplementary episode types, like bonus content; and metadata for show seasons, likely influenced by popular shows like Serial, where people new to podcasts might be confused about where to start listening. There are a few new tags for these types of shows under the itunes RSS namespace.

    Episode type is the simplest change. It looks like <itunes:episodeType>full</itunes:episodeType> and can have values “full, “trailer”, or “bonus”.

    For seasons, the episode number and season number can be split into separate elements. It’s compatible with the traditional RSS title, so there’s little downside except extra clutter in your RSS feed. Here’s an example:

    <channel>
      <itunes:type>serial</itunes:type> <!-- or "episodic" -->
      ...
    
      <item>
        <title>S01 Episode 01: The First Episode</title>
        <itunes:title>The First Episode</itunes:title>
        <itunes:episode>1</itunes:episode>
        <itunes:season>1</itunes:season>
        ...
      </item>
    
    </channel>

    Jason Snell’s first reaction to these changes was positive:

    I’m excited by these changes because, yes, some of my podcasts are seasonal and are best consumed from the first episode onward. I’ll be adjusting my own podcast feeds to take advantage of Apple’s extensions as soon as it makes sense to do so.

    Ben Thompson covers the extensions briefly and then focuses his weekly article on analytics and podcast advertising:

    The new extensions are a nice addition, and a way in which Apple can enhance the user experience to the benefit of everyone. As you might expect, though, I’m particularly interested in the news about analytics. Problem solved, right? Or is it problem caused?

    After reading Ben’s take, I don’t think these changes are significant enough to have much effect right away. That should be a relief to all of us who love podcasts and don’t want a shake-up.

    When designing JSON Feed, we resisted adding everything that Apple Podcasts needs to the official spec. Now that more podcast tools have adopted JSON Feed, I expect there to be a discussion among developers about the best path forward for podcast-specific extensions in JSON Feed. That discussion should now include support for show seasons, too.

    → 1:34 PM, Jun 13
  • San Jose is less crowded

    On Core Intuition last week, I said San Jose was “more confined” than San Francisco. I meant that mostly as a good thing, although I do miss the open spaces in San Francisco: the parks and incredible views near the water. Gus Mueller has a post about how San Jose felt closer together and less crowded:

    In San Jose you had a clear view of the sidewalks and you generally knew who was a developer and who was a local. And because it wasn't so crowded, you ran into people all the time. You didn't have to organize meetups, you just kind of went out and you knew you'd run into someone to hang with.

    Gus was also a guest with Marco Arment on The Run Loop podcast. They talked a lot about the different feel of WWDC in San Jose. Seems a universal opinion that San Jose is a good fit.

    → 9:59 AM, Jun 13
  • Game 5

    “We remember what happened last year and how it felt in that locker room. We used it and built on it. And got back here. It’s amazing. It makes last year okay.” — Tim Duncan, after game 5 in 2014

    I said on Technical Foul last year that the championship wouldn’t mean as much to Kevin Durant if he won in Oakland instead of Oklahoma City. But there’s something I didn’t realize until these playoffs: maybe it’s not going to mean quite as much to the rest of the Warriors either, compared to if they had won without Durant. Compared to if they had come back with the same team again, as the Spurs had done in 2014 after letting the series slip away the year before.

    Kevin Durant was the obvious finals MVP tonight. He was the reason — with help from Zaza Pachulia taking out Kawhi Leonard — that the Warriors coasted through the first few rounds of the playoffs. He was the reason that LeBron James could average a triple double for the finals and it still wasn’t enough.

    It was a good NBA regular season. It was a good last few games of the finals. But the playoffs were disappointing to many people because it didn’t look like the Warriors were going to have to work very hard to win. It wasn’t the comeback story it would’ve been without Durant. I’m hoping next year will be different.

    → 12:52 AM, Jun 13
  • 10.5-inch iPad Pro resolution

    Federico Viticci reviews the new 10.5-inch iPad Pro at MacStories. On the screen size:

    While some had assumed that Apple would take the same 2732 x 2048 display of the 12.9” iPad Pro and condense it to a smaller size, the company has introduced a new resolution in the iOS device matrix – a decision, I think, made to hit 264ppi on a 10.5” panel while retaining UI elements that are large and comfortable to tap. Cramming the large iPad’s display in this model might have resulted in a richer multitasking experience at an even smaller scale, but I believe touch usability would have suffered.

    I assumed until reading Federico’s review that when my 12.9-inch iPad Pro was ready for an upgrade, I’d downsize to the new 10.5-inch. That no longer seems like a good choice. While my MacBook Pro is getting repaired this week, I’m using the 12.9 as my exclusive computer. The extra resolution in split view is really great. I don’t think I’d want to give that up.

    → 8:06 AM, Jun 12
  • The iOS 11 App Store redesign story

    Three years ago I wrote that Apple should end the App Store top 200 lists, learning from Beats Music how to double down on curation:

    I wrote about Beats Music earlier, how it underscored to me that Apple needs to find the next product category to fall in love with, just like they used to feel about music. Of course we know that Apple already loves apps. Show that by doubling down on featured apps, staff picks, and app playlists.

    And:

    Apple shouldn’t wait until Thursday to feature a few great apps. Feature apps all the time. They’re on the right track with some of the “best of” sections in the store, and with the “Near Me” feature. Go a little further and it will make all the difference to bubble up great apps, and let the junk in the App Store fade away.

    I think they’ve done it for iOS 11. While the top charts aren’t completely gone, they no longer dominate the App Store user experience. Featured apps are center stage.

    Product manager Pedraum Pardehpoosh at WWDC even used the same phrase “double down” when describing Apple’s new focus on editorial content. During session 301, he said:

    We thought this was a perfect time to double down on the editorial curation that’s distinguished the App Store since its conception.

    Joe Cieplinski addresses the information density in the new App Store, pointing out that apps will be featured every day:

    That’s a big change from the weekly update schedule Apple has maintained since the beginning of the App Store. You can’t name something “Today” and then not update it every day. So instead of a few new items getting featured once a week, something new will be featured every single day.

    The “Today” tab is effectively a blog: reverse-chronological posts about what’s noteworthy in the store. It’s a much better default UI for content that is actively curated.

    The old App Store was designed like a database. Databases are good at showing grids and lists from an algorithm. But the App Store should tell a story about new apps. A blog-like format is the best way to do that.

    This plays to Apple’s strengths in design and taste. Where Google might hire more engineers to improve their store, Apple should hire more writers.

    So far I’ve only used the new App Store on my iPad, and only for a few days. After we’ve all lived with it for a few months, it will be easier to judge whether it works for developers. But it’s almost exactly what I was hoping for a few years ago. This redesign for iOS 11 is one of my favorite things to come out of WWDC.

    → 7:25 AM, Jun 12
  • Siri&#039;s slow pace

    It’s WWDC week. I’m back home after a short week in San Jose. Monday’s keynote was a big event, with great news for Mac and iPad users, but I keep coming back to the most surprising “miss” in all of the announcements, and the one thing that I thought was surely a lock for the conference: SiriKit.

    When I was on The Talk Show last week with Brent Simmons, John Gruber wrapped up the episode by asking about expectations for WWDC. I’m a big fan of the Amazon Echo, and I think Siri is behind in responsiveness and extensibility. I predicted at least 20 new domains and intents for SiriKit, if not a more open architecture that could grow into as big a platform as Alexa’s thousands of skills.

    This week should’ve been a great one for Siri. Instead, we got not the hoped for 20 new domains but literally only 2, for taking notes and managing to-do lists. HomePod will have no support for apps at all, and it will initially ship only into a few English-speaking countries, erasing the traditional advantage Siri had over Alexa for localization.

    There are good ideas in SiriKit. I’m excited about experimenting with creating “notes” in my app, and I like that in session 214 and session 228 they highlighted some of the new tweaks such as alternative app names and vocabulary. But there has to be more. Siri deserves several sessions at WWDC and much more attention from Apple.

    Voice assistants represent the first real change in years to how we interact with computers, perhaps as important as the original graphical user interface. The company that created the Knowledge Navigator concept video should be firmly in the lead today. A year from now, at WWDC 2018, the lack of significant improvements to Siri will have stretched to 2 years, and that delay is going to look like a mistake even to Siri’s most vocal defenders.

    → 3:55 PM, Jun 9
  • Core Intuition 285 and WWDC

    We posted a new Core Intuition this week about WWDC. From the show notes:

    Daniel and Manton catch upon WWDC, and Manton’s ailing MacBook Pro. They talk about new hardware announcements and react to highlights from the Keynote. Manton laments Apple’s continued, slow progress with SiriKit, and Daniel is frustrated that HomePod is not a Wifi hub. Finally, they talk about iOS Drag and Drop and compare it with Apple’s traditional tendency to move slowly but surely into the future.

    After we recorded, I watched the first episode of Planet of the Apps, and started to get into more of the conference session videos. We’ll be following up next week on more from WWDC.

    → 2:33 PM, Jun 9
  • Jean MacDonald on The Run Loop

    Jean MacDonald was on the latest episode of Collin Donnell’s new podcast The Run Loop. They talk about App Camp For Girls, Micro.blog, Portland, and more, with a preview of Jean’s talk at CocoaConf Next Door. It’s a great episode to queue up before WWDC.

    And a related reminder: we’re having an informal meetup on Tuesday at lunch for anyone interested in independent microblogging. Sign up for more information here. Hope you can make it and say hi to me and Jean.

    → 9:59 AM, Jun 3
  • Me and Brent on The Talk Show

    Brent Simmons and I were guests on The Talk Show this week. We talk about JSON Feed, Userland Frontier, Micro.blog, and much more.

    Brent also announced Evergreen for the first time on the show. Evergreen is a new open source feed reader for the Mac. I’m really looking forward to where this app could go.

    One quick correction as I’m re-listening to the episode. For some reason I said that I became interested in Frontier when it pivoted to be open source software. I meant free, not open source. I worked with Frontier in the mid-90s, around the 4.0 release that Brent mentioned, and as I blogged about back in 2004 when Frontier’s kernel was actually open-sourced.

    It was fun to revisit this era of Mac scripting on The Talk Show, and I hope that when we look back on the origin of JSON Feed we have similar good memories. There were a bunch of people who made the format what it is, participating in debates about field names and scope. It all contributes to the traction that JSON Feed is getting now.

    → 10:20 AM, Jun 1
  • JSON Feed for podcasts

    JSON Feed includes an attachments array, which is similar to the enclosure element in RSS that enabled podcasting. We love podcasting and included an example podcast feed in the JSON Feed specification. However, because the Apple podcast directory and its RSS namespace are so central to many podcasting tools, it wasn’t clear how quickly podcast apps would adopt JSON Feed.

    The answer is: pretty quickly. This week we’ve seen announcements from Breaker, Cast, and Fireside. Actually not just announcements, but working implementations to parse or generate JSON.

    I’ve also pushed up a change to the WordPress plugin on GitHub to add support for attachments. After some more testing, I’ll update it in the WordPress directory.

    Update: FeedPress also just announced support for JSON Feed. This is another important one for bloggers and podcasters. It effectively gives a JSON version to everyone using FeedPress, even if the FeedPress customer’s site is still backed by an XML feed.

    → 3:49 PM, May 31
  • Dave Winer on title-less posts

    Dave Winer posted today about NetNewsWire needing better support for title-less feed items:

    These items have no titles for artistic reasons. The author did not put them there. You, as a software developer, are not entitled to add them (haha that's a pun).

    I agree with Dave on this. Titles are clearly optional in the RSS 2.0 spec. The fix for the “Untitled” text that some feed readers use isn’t for authors to add titles where they aren’t needed, it’s for the UI in feed readers to improve so that they gracefully handle title-less posts.

    (And this is not to pick on NetNewsWire. I’ve seen other apps and feed syncing services with the same assumption about titles.)

    When I wrote about defining a microblog post, blank or missing titles was one of the fundamental points. If we want to have blogging software that’s as easy to use as a modern social network, titles can’t be required.

    I’m hopeful that as feed readers adopt JSON Feed, developers will dust off their older code for feeds and make improvements for title-less RSS items as well. This is why we highlighted microblogging as a use case in the JSON Feed spec.

    → 1:21 PM, May 30
  • IndieWeb Summit

    WWDC is only 1 week away, but I have another event on my mind as well: IndieWeb Summit in Portland, June 24th - 25th. From the description for the 2-day conference:

    The seventh annual gathering for independent web creators of all kinds, from graphic artists, to designers, UX engineers, coders, hackers, to share ideas, actively work on creating for their own personal websites, and build upon each others creations.

    I’m still trying to figure out if I can make it. If you care about indie blogging and open formats, consider attending. I had a great time in Portland earlier this year meeting more of the IndieWeb folks. They are leading some of the most important work on simple formats and protocols, with a focus on personal web sites instead of silos.

    → 2:46 PM, 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.

    → 5:54 PM, May 24
  • First week of JSON Feed

    I’ve been impressed with how quickly people have adopted JSON Feed. There are a bunch of feeds in the wild now, as well as code and templates for popular languages and web frameworks. The next step is support in feed readers, including brand new feed readers, which is already happening.

    Feedbin and NewsBlur both added support for JSON Feed. I like how Feedbin’s Ben Ubois puts it:

    One of the criticisms I’ve seen of JSON Feed is that there’s no incentive for feed readers to support JSON Feed. This is not true. One of the largest-by-volume support questions I get is along the lines of “Why does this random feed not work?” And, 95% of the time, it’s because the feed is broken in some subtle way. JSON Feed will help alleviate these problems, because it’s easier to get right.

    Micro.blog can also read from JSON feeds. I’ll be switching over all the hosted sites to prefer JSON. I’m doing that slowly to make sure there aren’t any issues with duplicate posts. (There shouldn’t be, but it’s something to watch out for with self-hosted sites if your post IDs change.)

    The WordPress plugin is almost in the WordPress directory. I’ll link to it as soon as it’s live, because it will make installing the WordPress plugin much easier.

    → 4:27 PM, May 24
  • Interview at The Brooks Review

    I talked with Ben Brooks over Slack this week about Micro.blog and JSON Feed. From the chat:

    Micro.blog and JSON Feed share a common goal, which is to encourage more blogging on the open web, and new tools that can make blogging easier. I feel like we’ve gotten off course a little since the early days of blogging, with so many people now putting all of their writing into closed, centralized platforms like Twitter or Facebook. I think we can make it easier to own your own content, have your own domain name, and maybe learn from the UI in modern social networks too.

    Slack makes for a really interesting interview format. Some of the spontaneity of a podcast, but with live editing and an automatic transcript. Similar to what Talkshow.im was trying to do before they shut down.

    → 1:52 PM, May 24
  • More apps for Micro.blog

    I want to point to some developer activity in the Micro.blog community. The first is a macOS Today Widget called TodayPoster by Bryan Luby. It gives you a text box to post directly to Micro.blog-hosted blogs from the macOS Notification Center.

    The next is a Mac client built with Electron. Developer Matthew Roach has a blog post about it with a download link.

    There’s another iPhone app in development as well. It’s not ready yet, but from a screenshot by Francisco Cantu, looks like it will be a good alternative to the official Micro.blog iPhone app.

    → 9:26 AM, May 22
  • Podcasts about JSON Feed

    We just posted episode 283 of Core Intuition, with thoughts on last week’s JSON Feed announcement and more. From the show notes:

    Daniel and Manton discuss the new JSON Feed format and initial public reaction to it. They talk about Panic’s source code being stolen, and Daniel celebrates/laments his new MacBook Pro.

    Brent Simmons was also interviewed on Collin Donnell’s new podcast, The Run Loop. Brent talks about some of his previous apps like NetNewsWire and Glassboard. Then they cover what JSON Feed is and where it could go.

    → 4:42 PM, May 21
  • JSON Feed

    Really excited to announce JSON Feed today with Brent Simmons. It’s great to see all the feedback and links to new feeds. Special thanks to everyone who contributed to the spec, debating field names and requirements over the last few months.

    The premise was simple: the time is right for a JSON-based approach to feeds. We hope that JSON Feed is straightforward enough to be implemented quickly, and capable enough to push the next decade of blogging software forward. We love RSS too and tried to learn from its success.

    Micro.blog already supports JSON Feed nearly everywhere. There are feeds for hosted microblogs and your timeline, and the Micro.blog custom JSON API itself is actually just JSON Feed with Micro.blog-specific extensions.

    I’m looking forward to seeing what everyone does with this. If you’ve shared any code or templates for JSON Feed, or if you’re working on apps to support it, let us know.

    → 7:12 PM, May 17
  • Jekyll mobile posting

    Kirby Turner has a detailed write-up on his workflow for posting from his iPhone. It uses a combination of Editorial, Working Copy, and Jekyll:

    The workflows save me time and simplify the publish steps. For instance, Jekyll uses YAML as front matter for each post. There’s no way I want to write this front matter by hand on my iPhone each time. I can use TextExpander, but seeing the front matter can be distracting on my iPhone. So I let Editorial’s workflow work its magic to generate the YAML front matter before handing off the document to Working Copy.

    Check out his embedded video for what it looks like in action. I love Jekyll, and it’s a big part of Micro.blog, but there’s no denying that the nature of static sites makes mobile posting more difficult. Looking forward to seeing more iPhone workflows like this that make microblogging easier.

    → 8:58 AM, Apr 21
  • Timetable returns

    After a couple months away from Timetable, because I’ve been focusing so much of my time working on Micro.blog, I’ve finally returned to the microcast for a sort of second season. Timetable will be published daily now, Monday through Friday, to chronicle the actual release of Micro.blog and the Indie Microblogging book.

    Episodes 38 and 39 are out now. You can subscribe in Overcast or iTunes.

    → 1:59 PM, Apr 12
  • Kawhi and the MVP race

    538 started a nice series on the case for each of the top 5 MVP candidates. But my favorite MVP article is Matt Bonner’s sandwich analogy for The Players Tribune:

    You’re probably getting hungry as you’re reading this, and maybe you’re even thinking about making a sandwich of your own. And that’s smart. Your head’s in the right place. Those ingredients sound really good. The fixings are crucial — and you can’t have your best possible sandwich without them.

    It’s not all jokes, though. Matt’s insight into the Spurs system, where you move the ball instead of hogging it, puts Kawhi’s 25.7-point average in perspective:

    And since there’s so little ball domination in that system … it makes it pretty impossible for any one player to put up a huge scoring average. Even Tim Duncan — arguably the greatest power forward to ever play the game — never had a season in which he averaged 25.7. And that’s really all you need to know.

    Last night, the Spurs lost in Portland by 1 point. It was a game that didn’t matter much, so the Spurs bench finished the game. Portland’s win was mostly a fluke — a Spurs turnover at the end, then a steal that was mishandled and fell to Blazers' Noah Vonleh for the buzzer-beater layup. But here’s the important point: the Spurs probably wouldn’t have lost if Kawhi was in the game for the final minute.

    That’s not to take anything away from the bench. Those guys are great. Living in Austin, we got to watch Kyle Anderson and Jonathan Simmons finish plenty of great games for the D-League. It’s just that San Antonio has played many close games this season, and this is what happens when Kawhi is in the game late.

    I’ll be shocked if Russell Westbrook doesn’t win MVP this year. But any of the top 5 candidates deserve it, and Kawhi is focused on other things. Maybe it’s fitting that the award will end up going to a player like Westbrook and his fans who seem to care so much about whether he wins.

    → 10:02 AM, Apr 11
  • Core Intuition 277

    We published Core Int 277 today with thoughts on the Mac Pro and more. From the show notes:

    Daniel and Manton react to Apple’s surprisingly transparent “roundtable” meeting with several members of the press, and celebrate the many positive signals coming out of the event. They engage in a friendly debate about the likelihood that Mac users will defect to Windows. Finally, they talk about the merits of professional software, and the negative impacts that a poor market for such software may be having on iOS as a platform.

    As I say on the episode, I wouldn’t have been disappointed if Apple had officially discontinued the Mac Pro, as long as that meant a greater focus on other things for pro users. I’d like for Apple to have a Mac-based answer for Microsoft’s tablets and Surface Studio, for example.

    → 8:18 PM, Apr 7
  • Unfinished backyard basketball

    Unfinished backyard basketball
    → 4:26 PM, Mar 30
  • Core Intuition 275

    Last Friday we published Core Intuition 275. From the show notes:

    Daniel and Manton talk about Manton’s decision to hire Jean MacDonald as Micro.blog’s Community Manager, and the psychological effects of transitioning from a single to multi-person company. They also react to this week’s Apple announcements, focusing mainly on Apple’s new Clips app and how it relates to Apple’s historic focus on facilitating user creativity.

    This episode captures the biggest shift for my business since I left my regular job a couple years ago. I’m also hoping to resume my Timetable podcast soon, since there’s more I’d like to talk about that won’t always fit into Core Intuition.

    → 10:14 AM, Mar 27
  • Guiding the Micro.blog community

    Earlier this month I flew up to Portland for a few days. It was a great trip. I posted about attending the Blazers game and meeting the IndieWeb group at the DreamHost office. I also sat down with Jean MacDonald to talk about what she has been up to and show her what I’ve been building for Micro.blog.

    Today I sent an update to Kickstarter backers about the stretch goal promise I made to hire a community manager. I couldn’t be happier to announce that Jean MacDonald will be helping me in the next steps for Micro.blog.

    It became clear as I’ve been talking with Jean that she will add so much to the project. Making the announcement today has inspired me even more to finish rolling out Micro.blog and to see where the community takes it.

    On last week’s Core Intuition, I told Daniel that the approach for Micro.blog has to be different than for my previous apps. It’s such a big opportunity that if I don’t focus everything on it, then it will not work. I covered the same theme in a post last month:

    I’ve realized as I work toward launching Micro.blog that this product is different. It has a much greater scope than anything I’ve built by myself. To be successful, it needs a team.

    No single decision will guarantee success. But today’s announcement is a big milestone for Micro.blog because it’s more than a promise or hope for things to come. Jean’s experience will be essential to guiding the community and moving the platform forward.

    → 5:23 PM, Mar 21
  • More on Twitter&#039;s 10 years

    Stephen Hackett marked his 10th anniversary of using Twitter by writing about how great Twitter has been for connecting people. Of course, the company’s problems are also well known:

    The company itself seems to struggle in getting even basic decisions right. I often joke that Twitter may be doomed, but I don’t say it in pure jest.

    He made a similar joke on Connected 133 that Twitter will be gone in 5 years. I think it’s a toss-up. But one thing I’m pretty sure about: the hate tweets and harassment problems can’t be fixed by waving a magic wand. They are fundamental and must be planned for at the beginning.

    → 1:08 PM, Mar 21
  • App.net archive

    App.net officially shut down last night. As I wrote about earlier this year, App.net was an important milestone in the move to more open social networks. I’m glad the platform existed and I enjoyed participating there as a user and developer.

    Linkrot and the lack of permanence on the web is a recurring theme for this blog. In the final days as App.net was winding down, I wanted to put my money where my mouth was. I spun up a couple new servers and wrote a set of scripts to essentially download every post on App.net. It feels like a fragile archive, put together hastily, but I believe it’s mostly complete. I’ve also downloaded thumbnail versions of some of the public photos hosted on App.net.

    I’ll be making the posts available somewhere, although I don’t know exactly what form the archive should take yet. I’ll also be considering whether to integrate it with Micro.blog, for anyone who wants to migrate to a new microblog and didn’t have time to manually export their posts. (I’ve already built a similar feature to import from Twitter’s .zip archives.)

    To my Kickstarter backers, thanks for your patience as I took an unexpected detour this week. Major work on Micro.blog continues. I have a big announcement for next week and invites should be ready the following week. I’ll post an update to Kickstarter soon.

    → 4:36 PM, Mar 17
  • 15 years of blogging

    Fifteen years ago today I started this blog during SXSW. Although I didn’t think much of it at the time, because Twitter hadn’t been invented yet, my first post was essentially a microblog post. 145 characters and no title. (Titles on the old posts were added later during the migration to Movable Type.)

    I’ve written about 1100 posts since then, and another 600 microblog posts. Some of my favorites last year:

    • Twitter at 10 years. Reflecting on the state of Twitter and where to go from here.
    • Today's social networks are broken. Partly a mission statement for Micro.blog.
    • Core Intuition 259 transcript. Daniel and I discussing Apple's new design book after the election.
    • Proud to have voted for Hillary. Still pretty upset about November.
    • Podcasting lock-in and the lesson from Penn Station. What happened to Penn Station in New York, and similarities between podcasting and blogging.
    • Kapeli's suspension is a test for Apple. One of many posts about App Store rejections. Apple's power over indie developers is a recurring theme.
    • Apple apologists. There's no need to defend Apple when they make mistakes.
    • Blog when you disagree. Why blogging longer thoughts is still very important.
    • Is this even possible? Visiting a new coffee shop every day for a month. After that I worked from libraries.

    And the year before:

    • A great developer can come from anywhere. This was not universally loved when I published it, but it seems to have outlasted the controversy. One of the best things I've written in a while.
    • Every device needs the web. Reacting to the lack of WebKit on tvOS.
    • Marketing, mission, movement. The best marketing is creating products that people can believe in.
    • Two weeks notice. Not a single post, but a bunch of posts with the #2weeks tag, chronicling my work and thoughts as I quit my regular job after 14 years.
    • I think it's a bust. My thoughts on Swift not addressing the problems I have. Essentially still true.
    • Don't solve everything. I avoided trying to figure out cross-site replies. And now we have Webmention.
    • Why Ello isn't enough. Purely centralized will never last.
    • WWDC 2015, basketball, and cartoons. My trip to San Francisco.
    • Jordan Breeding. Remembering and being inspired by others.

    And earlier:

    • The unremarkable yesterday. Why I like to blog and write in a journal.
    • Defining a microblog post. A few guidelines that are simple enough to last.
    • The third era of WWDC. Written in 2014, but appropriate again with the move back to San Jose.
    • Ending the App Store top 200. Curation and learning from Beats Music.
    • Waiting for App.net's killer app. I was very hopeful about App.net. Shortly after this we shipped Sunlit.
    • What the Tweet Marker award means. Most of my Tweet Marker posts are technical and not worth re-linking. This one is a little more timeless.
    • Permanence. Reading this again several years later, I can't believe it's taken me this long to build a publishing platform.
    • Carousel. That great scene from the first season of Mad Men.
    • 30% of the future. From 2011, so on first glance it doesn't seem to age well. After all, services are an important part of Apple's business now. But I think I was right.
    • Healthcare fallback plan. 8 years ago was a very different time politically. Includes some quotes I still like.
    • Go without food. On sacrifice and finishing your projects.

    Whether you started visiting this blog years ago or just today, thanks for reading. I hope to still be writing in another 15 years. (I’ll be 56 years old. My kids will be grown up. Nearly everything will be different.)

    Stretching time out has a way of highlighting what matters. And if it matters, it’s worth writing down. I hope you’ll join me for the next chapter as I try to move indie microblogging forward with Micro.blog.

    → 12:56 AM, Mar 10
  • More on algorithms and UI

    Ben Thompson’s daily update email today covers fake news and algorithms. It’s a great post, although a little disheartening in the way that most coverage of filter bubbles and the election tend to be. One line in the closing paragraph:

    Algorithms have consequences, particularly when giving answers to those actually searching for the truth.

    It mirrors something I wrote in January about algorithms and curation:

    Software has consequences. How it’s designed informs what behavior it encourages. If it’s built without thought to these consequences, it will succeed only by accident.

    Quick posting via retweets on Twitter and re-sharing on Facebook contributes to the spread of fake news. As the New York Times article Ben links to says, fake news is “designed to attract social shares and web traffic”. Bad news stories with dramatic headlines can spread more quickly than they would if everyone posted an original comment with their link.

    It’s too easy to click a retweet button without thinking. Fake news is as much a user experience and design problem as it is an algorithmic problem.

    → 12:00 PM, Mar 6
  • Somewhere over California

    Somewhere over California

    From last week’s flight through Los Angeles and up to Portland.

    → 6:50 PM, Mar 4
  • No-pressure blogging

    I’ve been working on a post about walled gardens, the App Store, and social networks. I think it could be an important essay — a new take on the future of platforms.

    But if it’s not? If I’m wrong, and the idea is unoriginal or doesn’t go anywhere? That’s fine too! It’s just a blog post.

    I love that blogs can scale from the trivial to the important. The microblog post about what you had for breakfast. The half-baked rant about something you’re passionate about. And sometimes, the rare essay that really hits the mark and makes people think.

    → 2:50 PM, Mar 4
  • Lyft short film

    Uber has been in the news lately, and not in a good way. I’m taking a short trip this week and decided to more actively look for ride-sharing alternatives. I’ll be trying Fasten in Austin and Lyft elsewhere.

    One nice discovery in this search: Lyft produced a wonderful animated short film called June. It’s directed by John Kahrs, who as I blogged about a few years ago did Paperman at Disney.

    I’m still annoyed that Lyft joined with Uber to first actively campaign against regulations in Austin and then ultimately left the city. But Lyft funding a film like this makes me feel better about supporting the company. There’s also a behind-the-scenes video.

    → 3:04 PM, Feb 27
  • Last week&#039;s Sting concert

    Last week's Sting concert
    → 8:28 PM, Feb 24
  • We

    Ten years ago I wrote a post about customer support. Nothing in my attitude toward customers has really changed since then, although my products have changed along the way.

    Most of my Mac and iOS apps could be built by one person. Even Sunlit, which I developed with Jon Hays, could be maintained by one person. And so when providing support for my apps, I’ve always embraced being an indie company and said “I” instead of “we” when talking about my company Riverfold Software.

    I’ve realized as I work toward launching Micro.blog that this product is different. It has a much greater scope than anything I’ve built by myself. To be successful, it needs a team.

    This is why my first priority with the Kickstarter stretch goal was to bring someone new to the project. I was initially nervous about making that announcement. I thought that nervousness was because the stretch goal might not work, or because my post was long and could be misinterpreted, but I realize now that I was nervous because I knew it mattered.

    The first decisions a new company has to make will end up shaping many things that follow. I worked at VitalSource for over 14 years because the technology decisions and leadership at the beginning were so strong they carried forward for years.

    The same rule applies for a very different kind of company: Uber. When you look at their series of missteps, it seems clear that these are inherent problems that go back to day one. I think John Gruber is right when he says Uber’s response is “too little, too late”.

    We can learn from every company culture that fails. I don’t expect to make all the right decisions with Micro.blog. But I’m going to try very hard to make the first decisions correctly, because it will make everything easier going forward.

    → 1:29 PM, Feb 23
  • Swift 3 churn

    Back in July, I posted this to my microblog, which was cross-posted to Twitter for some additional discussion:

    Not shocked that Swift classes won’t be subclassable by default. But it underscores Swift’s priorities. And for that reason, I’m out.

    The “I’m out” was meant as a Shark Tank reference, and not to be taken too seriously. But I was serious about taking a break from Swift until version 4, when it would at least be more stable. Daniel and I followed up that week with a more in-depth discussion on Core Intuition 242.

    A few days ago Craig Hockenberry posted about how the rapid pace of improvements to Swift can get in the way of learning the language and using example code:

    It’s gotten to the point where every time I come across some information written in Swift, especially on Stack Overflow, I cringe. I know that I’m going to have to not only figure out the code, but also which version was used for the answer.

    I have absolutely no regrets sticking to Objective-C. As Swift 3 was wrapping up, it seemed that the churn around syntax changes was even worse than I feared. From an Apple dev forums thread at the time:

    For the expected quality of software in a third-generation project in late Beta, Swift 3 has become a trainwreck of Microsoftian proportions--at least in terms of process and expectation. Many of us devs are spending 90% of our time not developing our app, but babysitting Swift and trying to understand so many unvetted changes.

    That settled down with the final Swift 3 release, but I expect many developers won’t upgrade from Swift 2.3 until Xcode forces them to. There’s even a whole book by Erica Sadun on migrating code.

    I still consider Swift a beta language. I just hope that the Swift team and community recognize that this level of instability isn’t acceptable forever. A programming language is not an iOS or macOS release. There shouldn’t be a new major version of Swift every year.

    → 9:26 AM, Feb 21
  • WWDC moves back to San Jose

    I have a tradition when I go to San Francisco for WWDC. I arrive early on Sunday before the conference, drop my bags at the hotel, and take a cab to the Presidio. The weather is usually beautiful. I visit the Walt Disney Family Museum, maybe sit in the grass with a coffee, then go for a walk to take in views of the Golden Gate Bridge.

    I’ve done this the last handful of years. It’s always a perfect reset to whatever stress was happening with my own coding projects and business. You can find blog posts and tweets from past years.

    I attended WWDC in San Jose a few times. Moving WWDC back there will probably end up being fine. If you’re at the convention center, or hanging out with attendees at a restaurant, or taking a break to work at a coffee shop around the corner, or even going to a party — many cities will suffice for that. I’m sure the conference will be great.

    I’ll still miss San Francisco. I know it’s not a perfect city. But it’s historic and unique. That’s why I recorded a podcast episode about it over 10 years ago, and I’ve learned much more since. I always get something out of the trip.

    → 3:59 PM, Feb 16
  • Twitterrific Phoenix on Kickstarter

    I use Twitter much differently than most people. I haven’t returned to my @manton account in over 4 years, and instead I cross-post all my blog posts to @manton2. I reply and like tweets when I get mentions, but I don’t actually follow anyone.

    But despite this weird use of Twitter, I follow the company closely and still maintain the Tweet Marker timeline syncing API. So I’m excited to see Iconfactory launch a Kickstarter campaign to fund new work on Twitterrific for Mac.

    I’ve backed the project. It’s a good opportunity to support one of the pioneers of Twitter development.

    → 10:19 AM, Feb 15
  • Piezo and Dash without the App Store

    Great post from Paul Kafasis of Rogue Amoeba about Piezo sales for the year after leaving the Mac App Store, and how it suggests that Dash’s post-MAS sales weren’t a fluke. Rogue Amoeba’s data points to this key point:

    Far from the Mac App Store helping drive sales to us, it appears we had instead been driving sales away from our own site, and into the Mac App Store.

    For me, the question of whether to use the Mac App Store is also closely tied to using in-app purchases in addition to Stripe. As I work to get Micro.blog shipped to Kickstarter backers, and eventually launched to a wider audience, I’ve wondered whether there should be an in-app purchase to make subscribing to Micro.blog from iOS easier. Of course the Mac App Store and in-app purchases are different things, but both require juggling multiple payment systems with the hope that it will be easier for users.

    And it would be a little better for customers in the short-term. The problem is that it would be much worse for me as a solo developer trying to do too much. The backend systems would be more complicated, and I think the product would suffer because of it.

    → 2:10 PM, Feb 13
  • Exploring downtown this morning

    Exploring downtown this morning
    → 2:43 PM, Feb 12
  • Timetable 37

    I’m taking some time to resume Timetable recording. From the latest episode:

    Now that the Kickstarter campaign has wrapped up, I move to the next phase of getting Micro.blog ready, planning for invites, and focusing on the Slack community.

    I started Timetable over a year ago to document what it was like to build Micro.blog and figure out how to launch it. Each episode is about 4-5 minutes long. Reaching this point with the Kickstarter finished is a huge milestone, but there is plenty of work still to do and talk about.

    → 12:33 PM, Feb 7
  • Safe search on Twitter

    Twitter made an announcement today about stopping abusive accounts and hiding low-quality tweets. I think filtering search results in particular is a very good step in the right direction:

    We’re also working on ‘safe search’ which removes Tweets that contain potentially sensitive content and Tweets from blocked and muted accounts from search results. While this type of content will be discoverable if you want to find it, it won’t clutter search results any longer.

    As I work on Micro.blog, I’ve tried to be mindful of where users can stumble upon posts that they don’t want to see. Replies is a big one, and I’ll be focusing most of my attention on that. But search, trends, and hashtags are also a problem, because they let anyone’s posts bubble up to a much wider audience. I’m launching Micro.blog without them.

    → 11:23 AM, Feb 7
  • Owning your content matters right now

    Twitter and Facebook are both powerful tools to help people organize. We’ve seen some of that over the last few weeks of protests. While these social networks are also broken in significant ways, they’re not all bad. They bring people together and expand the reach of posts from our own web sites. That’s why many people embrace cross-posting.

    Even more important is the free press. Not just big sites like the New York Times and Washington Post, but also small sites like yours and mine. Trump will continue to attack and undermine the mainstream press. Everyone who publishes on the internet should consider where that leads.

    It’s not a good foundation to concentrate so much writing into one place like Twitter or Medium. Distributing writing across more web sites protects us if one massive site shuts down. It gives us flexibility to move to the next popular network if one emerges.

    Sometime in the next 2 years, a reporter or blogger is going to break a story about the Trump administration. It’s going to be too important to ignore. But to be taken seriously, it can’t be an anonymous Twitter account that’s easy to cast doubt on. It has to come from someone accountable who has built a reputation by publishing good work and owning it.

    Owning your content by having a microblog at your own domain is empowering. Maybe you’re writing about what you had for lunch. Maybe you’re photo-blogging an important trip. Maybe you’re posting from your iPhone at a protest outside the White House.

    It doesn’t matter what it is. If it’s happening and worth writing about, it’s worth owning. Now more than ever.

    → 1:44 PM, Feb 6
  • Exponent 102

    Maybe you aren’t building a new social network. Maybe you aren’t obsessed with the rise and fall of tech giants. But if you are at all interested in why Instagram and Snapchat took off, check out episode 102 of Exponent with Ben Thompson and James Allworth:

    Ben and James discuss the history of messaging apps, the rise of Snapchat, and why Instagram Stories was such a brilliant move.

    I feel like I just had a whirlwind business school class in 57 minutes. So much of what they talk about is applicable to what I’m working on.

    → 10:30 AM, Jan 28
  • Core Intuition 268

    We posted this week’s Core Intuition today, with the latest Apple developer news and a debate on Alexa vs. Siri:

    Manton closes in on the last week of his Kickstarter, and Daniel catches up on his progress. They discuss new beta updates from Apple for both Mac and iOS. They react to Apple’s forthcoming review prompting system for iOS, and the ability for developers to respond to reviews on both Mac and iOS. Finally, they debate the merits of Siri vs. Alexa on grounds of reliability and viability as an international, long-term success.

    I haven’t kept up with Timetable recordings lately, but hope to do another one before the Kickstarter campaign wraps up too. Thanks for listening.

    → 12:08 PM, Jan 27
  • Humans and algorithms

    I’ve been following Seth Godin and reading his books for many years, but recently two of his statements caught my attention. The first is an older video episode with Gary Vaynerchuk, where Seth talks about why he has no presence on social media except automatic cross-posting of his blog posts.

    The second is equally relevant to what I’ve been thinking about with Micro.blog. Seth says that we’ve surrendered control over how our software works to algorithms instead of human decision-makers who can take responsibility for mistakes. It’s too easy to blame the computer:

    That person who just got stopped on her way to an airplane—the woman who gets stopped every time she flies—the TSA says it's the algorithm doing it. But someone wrote that code.

    Algorithms are a shortcut. They should give us more leverage to go further, faster, not dictate where we go.

    The social web is now permeated with algorithms. Today, Twitter again promoted what’s trending higher up in their app. That may be a step in the wrong direction. Trends can sometimes surface the better parts of Twitter, but they’re also an invitation to view the worst possible tweets you’ll ever see.

    Let’s not be afraid to add curation by humans. That’s not an admission of failure. It’s an acknowledgement that algorithms are imperfect.

    Software has consequences. How it’s designed informs what behavior it encourages. If it’s built without thought to these consequences, it will succeed only by accident. For 2017, one of my goals is to slow down and be more deliberate about features that can have this kind of impact.

    → 2:35 PM, Jan 26
  • Making the Kickstarter video

    Since I launched it over 3 weeks ago, thousands of people have watched my Kickstarter video, but I haven’t watched it again myself since that first day. I knew if I watched it I’d find new problems with it, and remember all the things I wanted to fix. It’s too late.

    I had fun creating it. I wanted something with a hand-drawn feel, because to me blogging is about individual creative expression. It’s about not being afraid to publish something that isn’t perfect — something that is personal and a little rough, like a quick sketch.

    Because I love traditional animation I wanted to draw all the frames with a pencil and paper, not digitally. Here’s me flipping through some of the drawings:

    At 30 frames per second, doing any animation at all is extremely tedious, even with these little sketches. I made about a hundred drawings and scanned them in one at a time. I composited everything in Apple’s Motion, then ended up using Motion for sliding objects around and fading them in or out, which cut back on the number of drawings I would have otherwise needed.

    The inspiration for introducing the video was the early 1920s-era Max Fleischer and Walt Disney cartoons, like Alice’s Wonderland. I also thought it would more naturally cut from me talking at the camera to illustrating the story of why independent microblogging matters.

    I’m not sure whether I will ever do another Kickstarter campaign. But I hope to have the chance to make a video like this again. I learned a lot from it.

    → 5:04 PM, Jan 25
  • The fight for truth and progress

    Kevin Hoctor has a great post about staying above name-calling and focusing instead on positive change during a Trump presidency. Standing up for people, exposing lies, and supporting the free press:

    If you have a website, use it. Write more words than you can fit into a tweet. Call out injustice and hold your House and Senate representatives responsible for their actions and their voting. This is a marathon, not a sprint.

    You’re not alone if you’ve been aimlessly reloading news sites all day for weeks. It’s easy to fall into a trap of indecision, failing to create anything, unsure of what to do next that will matter. I struggle every day to rebalance my time on the right things.

    But to Kevin’s point, a marathon is finished one mile at a time. And I’ll add a quote from Steve Jobs, which I think about sometimes when I can’t focus on making real progress:

    Everything around you that you call life, was made up by people that were no smarter than you. And you can change it, you can influence it, you can build your own things that other people can use.

    Remember that Twitter was still in the middle of taking off 8 years ago when Obama was first elected. Not quite mainstream, no Trump account. We’re going to blink and it will be 2018 and then 2020. Everything can change again if we work to make it better.

    → 9:41 AM, Jan 23
  • Microblogging community on Slack

    Since I launched on Kickstarter, backers have asked if there should be a Slack community to discuss Micro.blog and related microblogging topics. I wasn’t sure. I know some people are already in multiple Slack groups, including the excellent IndieWebCamp IRC/Slack, and I also didn’t want to distract from any posts that should happen in the open on blogs.

    Some discussion just fits better in chat, though. There’s an emerging community of indie microbloggers. Having a place to share tips, tools, and ask questions about Micro.blog just makes sense.

    I’m experimenting with the Slack channel now, and I’ll be opening it to all Kickstarter backers next week. If you’ve backed the project before Monday, expect a backers-only project update with information on how to join.

    → 3:53 PM, Jan 20
  • Core Intuition 267

    This week on Core Intuition, Daniel and I talk about the halfway point to my Kickstarter campaign, running ads, and more:

    Manton talks about marketing for the Kickstarter, how many people watch the video, and how to transition from marketing the passionate philosophical backers, to making a case for the sheer utility of the product. They talk about modern advertising technology that allows hyper-focused delivery, and follow up on Chris Lattner's departure from Apple, and the exciting opportunities he will likely have at Tesla.

    The last segment of the show is about Chris Lattner going to Tesla. We recorded before we listened to the latest ATP, but our conversation still holds up as pretty relevant. Hope you enjoy it.

    → 1:24 PM, Jan 20
  • Release Notes interview and 2017 conference

    I was a guest on the latest episode of Release Notes this week. We talk about the Kickstarter launch of Micro.blog and more:

    Today Manton Reece joins us to talk about Micro.blog, the new microblogging service that he’s developing. We talk to Manton about why he thinks a new microblogging service is needed, the importance of owning your own content, and his successful Kickstarter campaign.

    Speaking of Release Notes, the conference is coming back for 2017 in a new city: Chicago. I haven’t been to Chicago in years, so I’m excited for an excuse to visit.

    I blogged about my time at Release Notes 2015, but never got around to posting thoughts from 2016. In short: it was a great conference. For a snapshot of the talks, see Matthew Bischoff’s slides and Ben Norris’s sketchnotes.

    → 12:04 PM, Jan 16
  • MLK on Apple.com

    Apple dedicated their home page to Martin Luther King today with a photo and quote:

    Commit yourself to the noble struggle for equal rights. You will make a greater person of yourself, a greater nation of your country, and a finer world to live in.

    When Apple does this sort of tribute, it’s a reminder of why we expect the best from Apple, and why we complain when they fall short. We hold Apple to a high standard because they’ve set the bar high for themselves, not just by building great products, but by not being afraid to stand for something.

    → 10:59 AM, Jan 16
  • Webmention is a W3C Recommendation

    Webmention has been on my radar for a little while, and I mention it in the Indie Microblogging text on Kickstarter. It’s great to see it go from an IndieWebCamp spec through the W3C process now as a standard recommendation:

    The Social Web Working Group has published a W3C Recommendation of Webmention. A Webmention is a notification that one URL links to another and is a simple way to notify any URL when you mention it on your site. From the receiver’s perspective, it’s a way to request notifications when other sites mention it.

    The replies on Micro.blog are kind of a stopgap while infrastructure like Webmention rolls out to more web sites. I think Webmention will become an important part of cross-site mentions.

    There’s a lot happening at once right now. As I suggested in a microblog post yesterday, the first measure of success is whether more people are blogging. Meanwhile there are new formats and APIs like Webmention. You don’t replace Twitter overnight, or even try to. But step by step, we’re going to end up with a better web, and I think independent microblogging is part of that.

    → 5:26 PM, Jan 15
  • App.net is shutting down

    Dalton Caldwell and Bryan Berg announced the official shutdown of App.net today:

    In May of 2014, App.net entered maintenance mode. At that time we made the difficult decision to put App.net into autopilot mode in an effort to preserve funds and to give it ample time to bake. Since then every dollar App.net has charged has gone towards paying for the hosting and services needed to keep the site running. Unfortunately, revenue has consistently diminished over the past 2+ years, and we have been unable to return the service to active development.

    As I wrote about just last week, the founders of App.net deserve our thanks for trying something very difficult and succeeding beyond what anyone expected. I’m still amazed at everything they were able to do.

    So, what now? I believe the next step for the open web and Twitter-like services is indie microblogging.

    → 9:17 PM, Jan 12
  • PodSearch

    This isn’t the first time that David Smith has built something that I kind of wanted to build myself, too. Today he announced a cool side project for searching podcast audio:

    You can easily search for a term or keyword and then play the actual audio back to find if it was the section you were thinking about. I even tag the sections with timecoded Overcast links for easy sharing.

    I’d love to see David spin this into either a commercial product or set of free tools. He could host more shows, or let podcasters run their shows through PodSearch and export the results. For example, I’d want this for Core Intuition, along with edited transcripts eventually.

    → 11:29 AM, Jan 12
  • One year of Timetable

    I started my microcast Timetable a little over one year ago. I’ve recorded 35 episodes, so fewer than 1 a week. My goal is still 2-3 a week, so hopefully I’ll work up to that for 2017.

    This podcast is one of my favorite things to do right now. It’s so much easier to record and publish a 5-minute podcast than a 1-hour podcast. All I need is something to talk about.

    Here are the feed descriptions for each episode over the last year, starting with the earliest. Reviewing these provides a neat snapshot into the journey of building Micro.blog. You can subscribe at timetable.fm.

    1: On the first episode, I introduce the idea behind the show and the topics I hope to cover.

    2: On this episode, I talk about trying tea instead of coffee, how I named this podcast, and my work schedule as I wrap up the week.

    3: On this episode, I talk about finishing some work and the new iPhone microphone I bought.

    4: This morning I was downtown to work at a coffee shop for a few hours before lunch. I talk about getting out of the house and last night’s icon sketches.

    5: Today I stopped at the post office to pick up some stamps to mail stickers for the new microblogging app and platform I’m working on.

    6: I start with some thoughts on basketball, my potential Kickstarter campaign, and whether it’s better to start strong or finish strong. (Go Spurs Go!)

    7: This morning I was distracted a little with backups, ordering a new hard drive, and thinking about my iOS app, which was just rejected by Apple.

    8: Recorded in 3 segments, I set my alarm early this morning to get some coding done before the day starts slipping away.

    9: Today I mention the iPhone app rejection, talk about why the iPhone app itself is secondary to the web version, and reveal more about the Kickstarter.

    10: I take the iPad Pro and my microphone out to the front porch, to think through what work I need to focus on for today.

    11: Back from a sick day or two, I talk today about Twitter’s algorithmic timeline change and why it would be nice to launch a product when your competitor has some bad news.

    12: Back from a quick trip to Portland, today I’m thinking about the music for my Kickstarter project.

    13: I finally drop the stickers in the mailbox at our neighborhood post office. Thinking this episode about what it means to be lucky.

    14: At my 10th new coffee shop in as many days, I write a few blog posts. And on this episode I talk about it.

    15: I reflect on 6 months as an indie, think about stealing time for projects, and plan how I can use working from a coffee shop in the morning to provide a better structure to my day.

    16: This week I’m thinking back on how Staple! Expo went over the weekend, and why it never helps to panic when something isn’t going perfectly to plan.

    17: It’s spring break week, which means the kids are out of school and SXSW is taking over downtown.

    18: I’m playing Nintendo’s new iPhone app Miitomo, watching my Mii character pace around the room as he (and I) wait for our iPhone SE delivery. Also talk about the library routine and Rails 5.

    19: I finally record a video for my Kickstarter project. Now I just need to edit it and do everything else.

    20: I talk about receiving the Loish art book and my current thoughts on Kickstarter goals and rewards.

    21: Today I take stock of the last few weeks of client work and recovering from 2 months of focusing so heavily on my personal blog.

    22: Last week was stressful. This episode is about being mad at nothing and everything, and why fireflies are magical.

    23: I play a clip from the Upgrade podcast and then talk about my struggle to wind down a product correctly.

    24: I summarize my week in San Francisco from the perspective of not just the WWDC technical news and events, but also of using the trip to refocus on my priorities for Riverfold Software.

    25: Back after a summer break, on this episode I talk through what we can learn from Tim Duncan’s incredible 19-year career.

    26: I talk about getting derailed with home repairs, the U.S. presidential election, and writing about the Dash controversy.

    27: One week after the election, I react to Apple’s design book announcement and talk about why social networks may be broken.

    28: Not enough sleep yet still focused on getting work done. I review today’s blog post and play a clip from the Moana soundtrack.

    29: I got a new domain! I talk about the .blog registration process and my evolving plans.

    30: From a listener question, I talk about steps in November to wrap up old projects and finish new ones.

    31: I try the new WeWork location at the Domain, listen to a singer at the car dealership, and remember that I need to get out to talk to real people about my work.

    32: I share some thoughts on the first day of Super Mario Run and how my work week is wrapping up.

    33: The morning after Christmas, I give a quick update on Micro.blog plans and Kickstarter’s Launch Now review feature.

    34: Happy New Year! I talk about the first day of the year, and the final day to finish my Kickstarter project for Micro.blog.

    35: A week after launching the Kickstarter, I talk about its success so far and why I believe I can build Micro.blog, with a clip about optimism from Gary Vaynerchuk.

    → 3:54 PM, Jan 10
  • Kickstarter, first week wrap-up

    One week down. The launch on Kickstarter is going great. It’s fantastic to see everyone’s reaction to the project. More than ever, I’m convinced that the time is right for this.

    I wanted to highlight a few posts and links. I was a little caught off guard by activity on the first day, so I’ve yet to really reach out to press contacts who might want to write about Micro.blog. I’ve been focused on replying to questions about the service and book.

    John Voorhees wrote for MacStories about the Kickstarter:

    Micro.blog has a lot in common with social networks like Twitter, such as replies and favorites, but with an important difference. Instead of locking users into a proprietary system owned by someone else, the content created by individuals is owned and controlled by them. As part of the Micro.blog service, Reece is also building publishing tools with Markdown support, including a native iPhone app, to help people get started with microblogging.

    John had interviewed me at WWDC last year about what I was up to. While I didn’t have the name Micro.blog yet back then, I was actively working on the service and you can hear many of the same themes from back in June as I’m saying today.

    I thought Marco Arment summed up the urgency well:

    We’ve all been pouring a lot more of our writing and attention into Twitter and Facebook than the rest of the web, and the diversity and decentralization of the web has suffered greatly. Far too much power now rests in far too few hands, and we’re starting to suffer tremendous consequences.

    Reaction from the WordPress community has also been encouraging. I knew I wanted to reach WordPress fans, because Micro.blog works great with WordPress, but I’m not as plugged into that community. I was excited to see Matt Mullenweg tweet a link to it. And WP Tavern did an excellent write-up, mixing interview questions with previous posts of mine:

    During his 14 years of blogging and 10 years of using Twitter, Reece became an advocate for the open web. He said he used to be excited about Twitter and built apps for the platform but grew disillusioned at their approach to locking down the API.

    I’m thankful for local articles as well, such as this story from Silicon Hills News by Laura Lorek. Laura is just in the last day of her own Kickstarter campaign for a podcast companion to the Austin news site.

    Not to mention blog posts from Brent Simmons, Gus Mueller, Becky Hansmeyer, Ben Brooks, Dave Peck, Chris Aldrich, John Johnston, and the hundreds of tweets and links I’ve seen over the last week. It’s really special to see it spread so far. Thank you again to everyone who has linked to the project.

    Now that I’ve had a week to reflect on the campaign, and listen to feedback, I’m starting to form a much clearer picture of how the rest of the month needs to play out. This is the kind of opportunity that doesn’t come around very often. I’m looking forward for the work ahead.

    → 10:41 PM, Jan 9
  • Thank you to App.net

    Even before announcing Micro.blog, I’d get asked about App.net. It may surprise you to hear that there’s still a community there, 2 years after the service was put into maintenance mode. All my microblog posts are cross-posted automatically, and I’m always happily surprised to continue to get replies on App.net.

    I was an early believer in App.net. I wrote in 2013 that it was not just a Twitter clone but an amplifier for applications that couldn’t be built before. It came along at the right time, took off, and then faded. The App.net founders deserve significant credit and thanks for trying something risky and succeeding to grow a community that lasted so long.

    Now, with social networks broken in ways we didn’t fully acknowledge before, the time is right for another shot at a more open, ad-free microblogging platform. That’s why I’ve been working on Micro.blog.

    I could use your help to spread the idea of independent microblogging. We don’t need just another Twitter or Facebook clone. We need a new platform that encourages blogging on the open web. You can learn more on Kickstarter here.

    → 4:16 PM, Jan 6
  • Medium may not last

    On Monday, I launched my Kickstarter project about independent microblogging, with a focus on owning your own content and making blogging easier. On Tuesday, Lindy West left Twitter in a post about Twitter’s inability to deal with harassment. On Wednesday, Ev Williams announced that Medium would lay off 50 employees.

    The message is clear. The only web site that you can trust to last and have your interests at heart is the web site with your name on it.

    That’s the main goal with Micro.blog. Build a service and write a book that makes independent blogging more approachable. No one knows exactly what the web will look like in 10 years, but we can take the first step to get there. If you’ve been frustrated by the ad-based silos and waiting for a reason to post to your own site again, I’d love your support.

    → 10:53 AM, Jan 5
  • Kickstarter, day 1

    Yesterday morning I woke up early, after not enough sleep, and flipped the switch to launch my Kickstarter project. I’ve been amazed at the response, seeing it funded on the first day. If you backed it or shared a link with friends, thank you. It meant a lot to see so many people embracing the idea.

    I’ve backed 18 projects on Kickstarter but never created one myself, so I didn’t know what to expect. Was the funding goal too high? Too low? Even at the last minute I was noticing problems with the video and wished I had more time to improve it.

    But I really wanted to launch something new at the beginning of 2017. I settled on January 2nd a couple of weeks ago and decided to stick with it. I announced the date on Core Intuition. I booked a sponsorship slot on 512 Pixels to lock myself into the date. I gave my mailing list an early heads-up that it was coming. I even set a promoted tweet to run, for some reason. (And I quietly deleted some other advertising ideas from my OmniFocus list, because I just ran out of time to pursue them.)

    Today, I took a few minutes to re-listen to episode 34 of my short podcast Timetable, which I had published on Sunday, the day before launching on Kickstarter. It’s fascinating to me in the context of the success of the project so far, and in general people’s positive reaction to the video, because I think you can hear the doubt in my voice about it. I was not confident.

    And I felt the same way yesterday morning, staring at the “0 backers” text on Kickstarter for a little while, wondering if maybe I had rushed it out without enough planning. That’s a really bizarre feeling. It’s much different than selling traditional Mac or iOS software.

    Right now I’m feeling incredibly lucky to have the chance to launch this project — to see it spread and to hear everyone’s feedback and ideas. I have a bunch of work to do. And I have new features that I wanted to build for Micro.blog which I haven’t announced yet, which now it looks like I’ll be able to prioritize.

    I’ll have more thoughts soon. In the meantime, I’ve been answering questions on Kickstarter and email, and I’ll be sending a project update later today to all backers with details on what comes next. Thanks again for your support!

    → 1:27 PM, Jan 3
  • Yesterday&#039;s hike with the dogs

    Yesterday's hike with the dogs

    At St. Edward’s Park.

    → 4: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.

    → 1:52 PM, Jan 1
  • Devin

    “That you are here — that life exists and identity,
    That the powerful play goes on, and you may contribute a verse.” — Walt Whitman

    Four days after the election, still stunned by the news that Hillary would not be our president, I went to a funeral for a good friend of mine from middle school. Devin Kennedy-Puthoff was creative and passionate. He was really fun to be around. Though I lost touch with him as we grew up, I’m very thankful to have known him.

    People pass in and out of our lives. The friends we have when we’re younger might not stick with us. We might have different friends in high school and college. And different friends again as adults.

    That’s okay. We all need different things at different points in our lives.

    Twenty-five years, thirty years… It’s a long time. Reaching back into the past so far, untangling the stories in our mind, leaves fragments. These memories aren’t complete or precise. They are less complicated and so in a way, more true.

    A few nights later, magician David Blaine had a TV special on. I was thinking of a day when Devin and I were practicing magic tricks with quarters. Kids hanging out with nothing much to do, turning free time and a couple quarters into something.

    To this day, when I see a magic show, I often think back to that moment. When I see a movie about magic, or teach my kids to make a quarter disappear, I think back to that moment with Devin when life was a little simpler.

    At the funeral, I was wondering why that memory was so strong that it has stuck with me all these years. I think it’s because there was something pure about it. Time strips away everything in a memory that isn’t essential.

    If you read every post on my blog for the last decade, you’ll know what I think about the tech world, but very little about my family. If you read every post from my private journal, you’ll know the rest. Taken together it might be too much. Too complicated.

    Who we are is not just what we’ve done. Who we are is that moment that someone will remember later, as I remembered Devin, for years or decades. That moment that is so true because we’ve forgotten everything that doesn’t matter.

    → 9:53 AM, Dec 29
  • 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.)

    → 12:14 PM, Dec 26
  • Why I posted to Twitter again

    Following up on my post about Twitter at 10 years, I decided to mark the actual 10-year anniversary of my first tweet by posting from my @manton account, which I haven’t touched in over 4 years. After so much time, you can be sure the tweet was going to be exactly 140 characters:

    Hi! 10 years since my first tweet. 4 years since my last. You can follow the blog cross-posts via @manton2. This message will self-destruct.

    Why post again? I’ve had some fun experimenting with cross-posting to @manton2. As I wrote when I first started this:

    And yet, many people get their news from Twitter. Since I started microblogging on my own site, I’ve had time to reflect on the role of indie microblogging and cross-posting. I think the IndieWebCamp has it right: publish on your own site, syndicate elsewhere.

    Overall I think it has been a success. I use my upcoming platform Micro.blog for the cross-posting, so using Twitter has helped me improve Micro.blog too. And I get more people who don’t actively follow RSS feeds to read my blog posts again.

    As promised, I’ve already deleted that last tweet at @manton. I’m also not replying to mentions over there, although I try to reply or favorite tweets I see from @manton2. I know this Twitter strategy might seem like a strange compromise, but I think it’s working because it puts a focus on my independent blog instead of on Twitter.

    → 8:48 AM, Dec 23
  • Trail of Lights 50+ years

    Trail of Lights 50+ years
    → 11:54 PM, Dec 20
  • GitHub growth problems

    When first writing about mirroring this blog, there were only 2 places — WordPress.com and GitHub — that came to mind as good choices:

    I believe both will last for decades, maybe even 100 years, and both embrace the open web in a way that most other centralized web sites do not.

    I still believe that, but Bloomberg has an article about growth and spending problems at GitHub:

    In September 2014, subscription revenue on an annualized basis was about $25 million each from enterprise sales and organizations signing up through the site, according to another financial document. After GitHub staffed up, annual recurring revenue from large clients increased this year to $70 million while the self-service business saw healthy, if less dramatic, growth to $52 million.

    These numbers seem fantastic except that GitHub is losing money overall. GitHub has transformed from a small profitable company to a large unprofitable VC-backed company. Here are some of the goals from GitHub’s 2012 announcement about taking funding:

    We want GitHub to be even easier for beginners and more powerful for experts. We want GitHub everywhere — whether you use Windows or Mac or Linux or some futuristic computer phone that hasn't been invented yet — we want GitHub to be an awesome experience. We want to make it easier to work together than alone.

    They’ve made progress in the last 4 years. I’m not sure the GitHub user experience has improved more quickly because of funding than it would have otherwise, though.

    I love GitHub and use it exclusively for my source and my client projects, because there’s a productivity benefit to having everything in one place. I hope GitHub can turn the corner on profitability. And most importantly, I hope they have a sustainable long-term plan beyond this initial quick growth.

    → 3:18 PM, Dec 19
  • Thank you Tim Duncan

    Thank you Tim Duncan
    → 1:21 AM, Dec 19
  • Blue lights for the outside tree

    Blue lights for the outside tree
    → 7:43 PM, Dec 14
  • Dropbox, iCloud, and GitHub on the iPad

    Federico Viticci has another fantastic long-form essay, this time about using the iPad Pro for a year. It’s the story of his iPad workflow plus mini reviews of each app that make using the iPad as a primary computer possible.

    I haven’t finished reading the whole thing yet, but I’ve been paying particular attention to the theme of file management. I use Dropbox for my most important files — documents, notes, and photos — because I want them synced everywhere and accessible in an obvious, transparent way. iCloud is too opaque and app-specific.

    Federico covers this conflict early in the essay with a list of iCloud downsides:

    iOS apps like Documents and Workflow can't access or display the contents of other apps' folders. This prevents the existence of a full-featured iCloud Drive file manager that offers functionalities Apple doesn't want to build in their iCloud Drive app. There should be an API to allow third-party apps to gain access to the entire contents of your iCloud Drive filesystem, just like there are APIs for photo and music access.

    I’ll be happily surprised if Apple ever adds such an API. It seems unlikely. And if that’s true, it means iCloud will be permanently crippled compared to Dropbox.

    The trend to new iCloud-first apps like Ulysses and Bear is fine. It doesn’t appeal to me, though. I use Ulysses on the Mac because I can sync with Dropbox. There are so many Dropbox-capable iOS text editors that I feel confident using my current favorite and switching whenever I want.

    Federico also describes using GitHub and the iPad app Working Copy for collaborative editing:

    Working Copy's diff support has been a boon for how we edit Markdown and collaborate on articles. We can keep track of every edit and comment in a centralized location without creating duplicates. Working Copy makes it easy to follow the evolution of a document through multiple commits; every writer can chime in with their own suggestions and Working Copy will handle file merging and conflict resolution thanks to GitHub.

    GitHub is useful for much more than code. I personally love the simplicity of Gists and GitHub Pages. It’s great to see how MacStories can use GitHub for editing articles, too.

    → 3:11 PM, Dec 14
  • Where I post everything

    My content is all on this blog or linked from it, but if you’re following RSS feeds or Twitter it’s not as obvious where everything is posted. Here’s a summary to clear things up.

    Microblog posts: Posted here and in a special RSS feed. Also automatically cross-posted to Twitter and App.net, with some occasional truncation.

    Longer posts: Posted here and in the default RSS feed. Also automatically cross-posted to Twitter and App.net with the title and link. Twitter cross-posting is handled by my upcoming Micro.blog platform.

    Photos: Posted to Instagram and then copied here using this workflow. They don’t show up in either of the RSS feeds above. They’re not cross-posted to Twitter.

    Timetable: Posted to timetable.fm which has its own feed. Discoverable in your favorite podcast client.

    Core Intuition: Posted to coreint.org. I’ll usually post a link here on the blog for each new episode.

    All posts: Switching to WordPress brought a new global RSS feed, but I redirect it to the longer posts for now. There’s a new everything RSS feed which contains all posts: microblog, full posts, and photos. Enjoy!

    → 10:09 AM, Dec 13
  • Next year&#039;s Christmas trees

    Next year's Christmas trees

    At the Elgin Christmas tree farm.

    → 8:20 PM, Dec 10
  • Apple Maps adds ChargePoint

    A few of years ago we took a vacation to New York City and Montreal. We were taking the subway so often, I switched to Google Maps for its transit directions. I’ve been using Google Maps exclusively ever since.

    Until now, there were very few reasons to go back to Apple Maps. Apple has been playing catch-up. Why use a product that is only adding features from a competitor, but not anything new?

    This week Apple rolled out a unique feature that’s interesting to me: ChargePoint integration to find charging locations for electric cars. Ryan Christoffel covers it at MacStories:

    Having spent several years building partnerships to ensure its data won't lead any drivers astray, Apple has more recently been able to focus on integrating data that's less important, but still quite useful. A few months ago we saw the company team up with Parkopedia to improve parking data, and now charging stations are a natural next step.

    I rarely need this — and the ChargePoint app itself has more detail, such as how many spots are actually available — but I’m excited about it as a new feature. I hope that it represents a fundamental improvement across the maps platform. I’m putting Apple Maps back on my home screen for a while.

    → 3:16 PM, Dec 9
  • Fake news as propaganda

    In yesterday’s essay about Twitter, I also linked to my post on Instagram’s lack of native reposts. Jason Brennan has written a follow-up about fake news and propaganda, exploring what we can learn and apply to microblogging:

    Aside from the normal reasons propaganda exists, it exists on social networks like Facebook and Twitter because it can exist on those networks. It’s profitable and useful for the parties manufacturing and disseminating it. To Facebook and Twitter, upon whose networks it propagates, it doesn’t really matter what the information is so long as it engages users. Facebook’s apathy to propaganda is regularly exploited.

    Hillary Clinton also connected fake news and propaganda in a speech this week:

    Let me just mention briefly one threat in particular that should concern all Americans, Democrats, Republicans and independents alike, especially those who serve in our Congress: the epidemic of malicious fake news and false propaganda that flooded social media over the past year. It’s now clear that so-called fake news can have real-world consequences.

    The internet is at a crossroads. Entrepreneurs love free speech, scale, and money, but those don’t always align in a good way. As much talk as there is of making an impact, very few leaders in Silicon Valley seem to think deeply about consequences.

    → 11:20 AM, Dec 9
  • Core Intuition 262

    We published episode 262 of Core Intuition today. It’s December already, so we’ve inevitably been thinking about unfinished projects as the year wraps up. From the show notes:

    Daniel and Manton talk about coping with disappointment of failing to achieve goals in an expected length of time, recognize the differing demands of building software for different markets, and talk about tricks for managing lack of enthusiasm for finishing projects. Finally, they answer a listener question about how to get started with consulting, and planning for maintaining a suitable income when you “quit your day job.”

    Thanks as always for listening to the show.

    → 1:07 PM, Dec 8
  • Twitter at 10 years

    It was 2008 in Chicago, the C4 conference was wrapping up and I shared a cab to the airport with Alex Payne, who built the first Twitter API. I was so excited about the potential for the platform that I probably had a dozen ideas for Twitter apps. Alex and I sat at a cafe at the airport, waiting for our respective flights, and talked about the future.

    Years passed. I did build and ship a few Twitter apps, including the popular Tweet Marker sync API. But I also grew disillusioned. I took a break from using Twitter.

    Alex had left the company and Twitter was much different from a business and leadership perspective by the time the rest of the world started paying attention. Thousands of employees worked at Twitter. How many of them had experienced the early days of following friends' tweets via SMS, when the service seemed genuinely new and important? The future had arrived but it was full of hashtags.

    This year — with rumors of Twitter being acquired, with fake news and the election, with online harassment — many people have written about the future of Twitter. I’ve been paying attention again, experimenting with cross-posting. I missed the 10th anniversary of when I joined Twitter in July 2006, but not the date of my first tweet a few months later.

    10 years is a good milestone to reflect on. I want to highlight a few posts I’ve read recently, and then wrap things up at the end.

    What I like about this article by Faruk Ateş is that he gives a sense of the major changes Twitter has gone through, most of which were difficult to fully understand at the time. On the change with @-replies:

    The second thing is that when they started hiding @-replies to people you don’t follow, they stripped the user experience of a vital ingredient for civility: peer transparency. The tone of discourse changed much for the worse over time, following that new behavior of the timeline. Before the rollout, all your friends would see if you behaved like a jerk to someone; after the rollout that was no longer the case. It removed the natural consequences of bad behavior, thereby encouraging people to reap the benefits of such bad behavior much more frequently.

    This is a theme across many posts, that we didn’t realize what all these changes were adding up to. I have some related thoughts about Instagram and another post on why today’s social networks are broken.

    Next, Sarah Frier writes for Bloomberg about how Twitter leadership is losing faith in Jack Dorsey. That despite new features such as live video, Twitter failed to ship other development efforts and fell behind competitors:

    Advertisers see potential in the company’s live video strategy, but they’re also being wooed by photo- and video-sharing app Snapchat, and Facebook’s Instagram, which has recently become more advertiser-friendly. At the time of Twitter’s 2013 initial public offering, those services weren’t close competitors. Now they both have larger daily audiences than Twitter.

    As long as Jack Dorsey has 2 jobs, it will be easy to blame him for being unfocused. I don’t know if that’s fair. But when streaming live football gets so much attention, there do appear to be competing visions at Twitter.

    Twitter is too expensive to acquire. It’s also too flawed for a company like Disney to take a risk on. So instead there was another round of layoffs. From Kurt Wagner at Recode:

    Last year, Twitter also cut 300 jobs shortly after Jack Dorsey took on the CEO role full-time. (Or part-time, given that he’s also running Square.) The current feeling among those close to the company is that Twitter is simply too bloated, and pays too much in stock-based compensation for a company that’s still not profitable.

    There are no guarantees for an unprofitable company. The only certain thing is that something will change.

    Back to Alex Payne. He wrote a post 6 years ago about his time at Twitter, and his unsuccessful attempt to convince coworkers to decentralize Twitter. It holds up very well:

    Decentralization isn’t just a better architecture, it’s an architecture that resists censorship and the corrupting influences of capital and marketing. At the very least, decentralization would make tweeting as fundamental and irrevocable a part of the Internet as email.

    It used to be impossible to imagine that Twitter could fail. And today, it’s still unlikely to vanish or even change much overnight. But the web will be better if we assume that Twitter is a lost cause. From the 10-year view, it’s clear that Twitter has already changed.

    Acquisition rumors come and go, although they seem more real this time, and we’re reminded that few web sites last forever. It’s time to prepare for a web without Twitter.

    → 10:15 AM, Dec 8
  • Campus tour last week

    Campus tour last week

    University of Texas at Austin.

    → 6:34 PM, Dec 5
  • Thanks for using Searchpath

    Today I sent the following email to everyone who has used my web app Searchpath. While I’m disappointed that I’ve neglected Searchpath, focusing everything on Micro.blog just makes the most sense right now.

    Three years ago, I launched Searchpath to make it easy to embed a search box on any web site. Because you signed up to try it, either at the beginning or as a more recent paid subscriber, I wanted to thank you and let you know about the next steps for the service.

    While I still love the idea behind Searchpath, I have not been able to give it the attention it deserves. Lately the service has been costing more to run than can be supported by subscription revenue. I’ve disabled new accounts and started migrating the data in an effort to keep the service running for active users.

    Here’s what you need to know:

    • If you had an active paid subscription, it has been cancelled and you won't be billed again. The service will continue to run while you look for a new search solution.
    • The current search index included many web sites that no longer use Searchpath. To save costs, I've reset the index. Active web sites using Searchpath will be automatically re-indexed.

    I hope to return to Searchpath at some point in the future. For now, it will run in this limited mode for current customers. If you have any questions, please let me know via email at support@riverfold.com.

    — Manton

    P.S. One reason I can’t focus on Searchpath is I’m preparing to launch a new weblog service. It’s called Micro.blog.

    → 3:08 PM, Dec 1
  • Refocusing around Micro.blog

    As I talked about on Timetable, now that I have the micro.blog domain I get to figure out what to do with it. And what I’m hearing from friends and listeners is clear: throw out my jumble of Snippets-related names and use Micro.blog as the brand for the platform. It’s obvious now.

    Renaming a product before its official launch may not seem like a big deal, but in this case it gives the app a new importance. Just by renaming it, the app feels more ambitious. It forces me to devote more attention to it, which means saying goodbye to some of my other web apps that I can no longer focus on.

    I have a difficult time shutting down failing products. Over the weekend, I took some much-needed steps to finish winding down Watermark and Searchpath. I’ll be sending an email this week to everyone who has used Searchpath with the details.

    For Searchpath, I had procrastinated making a decision because even simple steps like closing new account registrations requires actually writing code and deploying changes. The index on my Elasticsearch server had grown to 90 GB, including Watermark as well. I needed a clean way to reset it and migrate the small number of active paid accounts somewhere else, to give customers time to find a new solution.

    I’ve tried a few technologies for search over the years. The first version of Watermark used Sphinx, which I loved but became a scaling issue with its default need to completely reindex MySQL data. Eventually I moved to self-hosted Elasticsearch, but I had to keep feeding it RAM as the index grew. It was never stable enough with my limited skills.

    As I noted in my post about Talkshow.im, there’s no perfect way to admit defeat and clean up the mess left by a web app. It’s always a balance of responsibilities — to your own business and to your customers.

    But again, the way forward is clear. I should put everything into launching and growing my new microblog platform. It’s too much to maintain other web apps at the same time.

    → 11:11 AM, Nov 28
  • 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.

    → 1:00 PM, Nov 26
  • Thanks to our Core Int listeners

    Yesterday we published episode 260 of Core Intuition. From the show notes:

    Daniel and Manton discuss Sal Soghoian’s sudden departure from Apple, and what it may mean for Apple’s future ambitions with automation. Then they react to Apple’s alleged decision to abandon their line of AirPort branded routers, and bemoan the loss of yet another “just buy the Apple one” peripheral option

    I liked the topics for our show this week because it allowed us to not just talk about AppleScript as it exists today, but also to reflect on what life developing scriptable apps was like in the early days of AppleScript. It’s always fun to think back on 1990s Mac development.

    Many of our listeners are celebrating Thanksgiving today. To all of our listeners, whether you’ve listened since the beginning in 2008 or just recently discovered the podcast, thank you so much for giving our show a chance and for being part of the community. Daniel and I still feel incredibly lucky that we get to chat every week about Apple news and our work as indie developers.

    → 1:09 PM, Nov 24
  • Walking around TCU

    Walking around TCU

    Frog Fountain.

    → 11:41 PM, Nov 23
  • Fake news and Instagram

    Twitter has retweets. Facebook has sharing. But Instagram has no built-in reposting. On Instagram, there’s no instantaneous way to share someone else’s post to all of your followers.

    The first version of Instagram was built by a very small team. They’ve always grown slowly and expanded the UI thoughtfully. I think the lack of a repost feature was deliberate.

    When you have to put a little work into posting, you take it more seriously. I wonder if fake news would have spread so quickly on Facebook if it was a little more difficult to share an article before you’ve read more than the headline.

    It’s not easy to build software that encourages good behavior. When I look at my Instagram timeline I see beautiful photos, hand-drawn art, and snapshots of everyday life. I see the very best of the world. It’s not the full truth, but it’s all true.

    Instagram was no accident. The only question: was it unique to photos, or can the same quality be applied to microblogging?

    → 12:14 PM, Nov 22
  • Fixing AMP

    When I first wrote about Accelerated Mobile Pages, there wasn’t a true implementation. Now we see how Google is rolling this out, and it has problems. John Gruber uses Ars Technica as an example:

    On desktop browsers, these URLs do get redirected to Ars’s website. But on mobile they don’t. Share from one mobile device to another and nobody ever leaves google.com. Why would any website turn their entire mobile audience — a majority share of their total audience, for many sites today — over to Google?

    Maybe this is inherent in how AMP works, and we should have predicted it. If Google’s AMP implementation must run in browsers, will there always be a layer of JavaScript and custom URLs that hide the original web site?

    I’d prefer if Google added AMP support directly to Chrome. While it would be a much more limited rollout, it would feel more natural, with fewer drawbacks for publishers.

    Competing news platform Apple News isn’t problem-free either. The apple.news:// shared links also add a redirect, with inconsistent behavior since not all platforms and countries even support Apple News. Apple News is an RSS reader that’s designed like a closed platform.

    I want the web to be faster. Breaking links should not be part of the solution.

    → 4:21 PM, Nov 21
  • Indie publishing is about control

    Andy Baio redesigned his blog recently and argued that blogs still matter because of ownership and control. Of course, I agree. And though it may seem far off, there’s no guarantee that Twitter will outlast our own blogs. Andy writes:

    Twitter, itself, may be acquired and changed in some terrible way. It’s not hard to imagine a post-Verizon Yahoo selling off Tumblr. Medium keeps pivoting, trying to find a successful revenue model. There’s no guarantee any of these platforms will be around in their current state in a year, let alone ten years from now.

    Ben Brooks followed up:

    Having my own site gives me complete control to do whatever I want, whenever I want, however I want. I don’t understand why people ever want it any other way.

    Words are powerful. Especially right now, why let anyone else have control over the format of our words and how they spread? Having a blog is a statement: our writing exists apart from the whim of an algorithmic news feed.

    → 3:48 PM, Nov 19
  • Today&#039;s social networks are broken

    Brent Simmons has left Twitter, frustrated with the diminishing value of the service, Twitter’s inability to deal with harassment, and more:

    And then it was part of the system that helped elect a fascist President. This tipped it over for me: it’s no longer worth my participation. The shitheads can have it.

    Facebook has also been in the news for its role in letting fake news spread. Ben Thompson has a long essay this week on it:

    I get why top-down solutions are tempting: fake news and filter bubbles are in front of our face, and wouldn’t it be better if Facebook fixed them? The problem is the assumption that whoever wields that top-down power will just so happen to have the same views I do. What, though, if they don’t?

    Maybe. Though while we should debate how to balance Facebook’s enormous power, there should be a parallel effort to move away from the centralized publishing model that gave Facebook that power.

    Facebook has confused itself into thinking it is the whole internet, and so the principles of a free press that apply to the open web, also must apply to Facebook. No. While Facebook has a great responsibility to do the right thing, because they are so big, Facebook is just a web site.

    I want Facebook to improve. I want Twitter to improve. But I can do very little to effect change at those companies, and some problems are so fundamental as to be essentially unfixable. The web wasn’t supposed to be like this, with all the power and all the writing concentrated into so few sites.

    It’s time for a new social network that brings discoverability and community without the baggage of an ad-driven network that must grow to a billion users. A social network that embraces the open web, and freedom of expression, while preserving a clean timeline that can’t be interrupted by harassment.

    Not just one new social network. I hope that many developers will work on products that encourage independent publishing again.

    It’s going to take time to build. That’s why I started working on Micro.blog 2 years ago. I’ve made great progress, but I’ve also drifted, unfocused, uncommitted to finishing it, as if I knew something was missing.

    Something was missing. The election results have made that clear. I was thinking big, but not big enough. The way forward must include both a decentralized publishing platform and the tools to encourage a safe community.

    If you’d like to know when the beta is finally ready, please subscribe to the announce list. Thank you. Update: Edited to reflect the new name for Micro.blog.

    → 11:02 AM, Nov 18
  • Core Intuition 259 transcript

    Daniel and I covered a few topics on Core Intuition 259 yesterday, but the closing segment about the Apple design book — and indirectly, the election — was particularly interesting to me. I decided to transcribe part of the conversation. Here it is, lightly edited.

    Daniel:

    Alright Manton, I know what a fan you are of lavish Apple products designed for the rich. [laughter] I know therefore you have probably already placed a pre-order for the Apple Book Edition.

    Manton:

    Is the Edition the $300 one?

    Daniel:

    Yeah, the $300 one is the Edition. The $200 one is the Edition Lite. [more laughter]

    Manton:

    So Apple announced this book yesterday, and I believe orders are being accepted today. It’s just this very beautiful, well-produced “we worked 8 years on this” book of essentially product photos.

    And I think there’s an introduction with Jony Ive. There’s a video from him that is a classic Jony Ive video about a product.

    I’ve blogged about this a little bit, and actually talked about this on my microcast, Timetable. Red flags are going off for me with this product for a few reasons.

    The first is, we’re a week out from the election. A lot of us are bummed out and trying to make sense of the world, and Apple releases a book of product photos. It seems out of touch. I don’t understand why they did this right now.

    And the other thing, I just hit on something that bothered me about this book. I have a lot of books in this house. Bookshelves and bookshelves full of books. My wife hates the fact that I have every book that I’ve ever bought. I have a lot of books and I have a lot of art books. In a previous life I wanted to an artist, an animator. I have a lot of art books.

    And so this is right up my alley, right? I love old stuff. I love art books. Why don’t I want to buy this?

    And I think the reason is, unlike most art books, which are about… They’re about the artist as much as the art. And this book is just photos of iMacs.

    This isn’t about the designers. And maybe there’s something in the book that I’m missing. That when I hold it I’ll say, “Oh, this book is amazing.” But I feel like this book is not quite right. It’s not about the designers.

    I want to know about the designers at Apple, and why they made their choices. I don’t need this well-lit photo of the inside of a Mac Mini. There’s something missing with what they’ve done here.

    Daniel:

    You know, I agree with you. What you said just now is interesting to me in a few different ways. One of them is — and I know people are going to think I’m crazy for even imagining that this could possibly happen in the wake of a U.S. presidential election — but one of my instincts the day after the election, believe it or not, was actually going to Apple.com to see if Apple had some kind of commemoration or acknowledgement.

    And I realized… That’s my passionate, emotional side. Because Apple has been that company on so many issues of national or global importance.

    And I get it. Even if I see it as a catastrophic thing for the country and for the world, I get it that it is seen as a partisan issue, and that a lot of people would agree it would be not only poor business, but maybe poor taste to take a stand on Apple.com.

    But that’s the kind of feeling I’ve had from this company over the years. I wasn’t surprised not to see something there, but that sensitivity to the current state of affairs in the world, while maybe not driving them to put something on their home page overtly in support of one direction or another… I can see how they could maybe have made an effort to come up with something that somehow spoke to the issue without taking a side. They could have done that.

    And I’m not faulting them for not doing that. But your comment about the possible poor timing of releasing this right after the election, it drives it home for me that doing something like that with the home page would have reflected a level of consciousness about what’s going on — their being sympathetic or even empathic to the situation.

    Releasing a self-gratifying, expensive art book certainly does not speak to sensitivity about the national and global implications of the election. Nor should it have to. But by doing it the very week of the election, it does sort of tip the sales toward insensitivity.

    Manton:

    Right. So we had the election. A lot of people are trying to make sense of it. Like you said, you went to Apple. “Is Apple going to say anything?” Reload, reload. No, they’re not going to say anything. “Is Apple going to say anything next week?”

    The first thing they said, not about the election but the first thing they publicly said was, “We have this beautiful book.”

    Yes, they didn’t mean it that way. They didn’t mean it as a reaction to the election. They’ve had this thing planned for years. But it doesn’t feel right.

    I don’t want to take away anything from the designers at Apple and the people that worked on this book, because they do great work. The products in this book are amazing. They do deserve to be celebrated and talked about. But the timing does not feel right.

    And like I said before, I think the substance of this book is also wrong. I want to be careful not to criticize too much, because I’m sensitive to this. I don’t want to just bash this book. It doesn’t feel like the book we need about design at Apple. Because there’s no text in it!

    It celebrates objects and machines but it doesn’t celebrate people. The people are one of the most important things about design at Apple. It doesn’t seem right.

    I had never thought after the election, “What would Apple say? Would they put something on their web site?” I hadn’t thought of that until you just mentioned it.

    Tim Cook did send a letter to Apple employees, an email. It wasn’t really partisan, but it was kind of saying, “We know some of y’all are having trouble.”

    I don’t know how he phrased it. But the sense of it was, “We’re moving forward together. We’re going to be together. That’s how we get through everything as a company.”

    That was private to Apple employees. They didn’t say anything publicly. To say something publicly would have been difficult. This is kind of a cheat, but I’m just going to say it: it would have taken courage to say something about the election publicly. I’m using that word very deliberately.

    Come on, Apple. Forget about the stupid headphone jack. If you want to be courageous, take a stand on something you believe in. Do it.

    → 9:50 AM, Nov 17
  • Timetable 27

    Today I published a new episode of Timetable. It’s about Apple’s new design book but also about how social networks are broken, with a hint of what I think we can do about it. It’s just 3 and a half minutes long.

    As I’ve written about before, Apple no longer needs us to defend the company. On the other hand, many good people work on Apple’s products and so criticizing the company can easily come across as criticizing those people. That’s not my intention, but I sometimes get that balance wrong.

    I own dozens and dozens of art books, but I won’t be ordering this new Apple design book. It looks overconfident instead of nostalgic. It looks like it celebrates objects instead of people. It looks like a beautiful book for the wrong time.

    → 6:14 PM, Nov 15
  • Proud to have voted for Hillary

    I couldn’t sleep. I woke up early the day after the election, thinking about my daughters, and cried. I had been so excited to celebrate our new president with them. I had been so excited to watch the returns with my kids, to share a moment of pride and optimism.

    This wasn’t a normal election. This wasn’t just a debate over policy. It was much deeper. The world is already worse and darker for many people because of what happened.

    There will be arguments over why the election went so wrong, but it’s more complicated than just one thing. There was the overplayed story about private emails. There was the FBI letter. There was the media treating Trump like a reality TV star instead of a threat.

    Hillary did her job. She destroyed Trump in all 3 debates. She ran a solid campaign. But she has always been held to a different standard than everyone else. I’ll never get over that.

    I’m proud to have voted for Hillary in the primary and in the general election, and I’d do both again. This election was very close. It was winnable. If we had ignored the polls and fought for every state, it was winnable.

    Friday night, I went with a friend to see Trevor Noah’s standup show. It was great to laugh for a couple hours, about the election and everyday life. But then the night fades and we’re still in a nightmare.

    After Hillary has had some time to rest, and reflect, and be her own person again, I hope she can find another cause worth fighting for. Let’s not forget that she did make history as the first woman to be nominated by a major party. She paved the way and reminded us how hard this is. That matters.

    Daniel and I recorded an episode of Core Intuition the day after the election. We tried to capture that feeling of loss, and anger, but also of hope that we can have a renewed passion for our apps and ideas. Maybe some of our products have a place in the work to do before 2018.

    Hillary said in her speech, the day after the election:

    Donald Trump is going to be our president. We owe him an open mind and the chance to lead.

    On this, I disagree with Hillary. Trump has already shown us who he is — someone who mistreats women, lashes out at his critics, and disrespects immigrants — and nothing he does in office will change that. The only thing we owe him is a short presidency.

    → 9:04 AM, Nov 13
  • Election Day

    Election Day
    → 1:00 PM, Nov 8
  • Pink clouds

    Pink clouds
    → 7:36 PM, Nov 6
  • Rainy morning at the book festival

    Rainy morning at the book festival

    From the Texas State Capitol.

    → 7:09 PM, Nov 5
  • USB-C vs. the headphone jack

    I have no problems with USB-C on the new MacBook Pro. It will be a small headache at the beginning, for sure. But because it’s a standard there’s no long-term compatibility risk the way there is with removing the 3.5mm headphone jack.

    More on that below. First, Marco Arment doesn’t think using USB-C exclusively is very practical in a pro laptop:

    A pro laptop released today should definitely have USB-C ports — mostly USB-C ports, even — but it should also have at least one USB-A port.

    John Gruber responds that Apple’s strategy is to speed up adoption:

    They design for the future, and in doing so, they bring the future here faster. In the alternate universe where the new MacBook Pros ship with one USB-A port, the transition to ubiquitous USB-C peripherals and cables will happen at least a little slower.

    I agree with that. But then he closes with this:

    I’m not saying Marco is wrong. I’m just saying Apple’s not wrong either. It’s the same trade-off with the iPhone 7 headphone jack.

    I don’t think it’s the same at all. It’s a convenient narrative to group together both the migration away from USB-A and the one away from 3.5mm headphones. There are important differences, though.

    USB-C is a standard that is already used in many devices from different vendors. It will become universal. The immediate replacement for the 3.5mm headphone jack on the iPhone 7 is the Lightning EarPods which come in the box. Lightning is a proprietary cable that will never be used in non-Apple phones, and in fact is not even used on Macs.

    You can argue that more and more people will use Bluetooth headphones, but I doubt they will be as common as wired headphones for many years, and there’s no guarantee that an all-wireless future will ever arrive. There is a very clear migration from USB-A to USB-C. The move to Lightning headphones and Bluetooth is much more complicated and not directly comparable.

    → 9:58 AM, Nov 3
  • Hotel Emma library

    Hotel Emma library

    At the Pearl.

    → 12:00 PM, Oct 30
  • Landa Library

    Landa Library

    From the weekend in San Antonio.

    → 3:00 PM, Oct 29
  • Table of cubes

    Table of cubes
    → 12:00 PM, Oct 22
  • Workflow update for web APIs

    Federico Viticci has an overview and examples for the latest Workflow for iOS release, which adds more advanced features for calling into web APIs. It looks great:

    For those who are only partially familiar with the terminology, this means that Workflow can communicate with the majority of modern services that come with a web API. If you've never worked with web APIs before, it'll take you a few hours of reading and experiments with dictionaries, token authentications, form requests, and file uploads to get the gist of how it works. But, the Workflow team has managed to make what tends to be a visually unintuitive programming task – assembling dictionaries and structuring JSON – as simple and attractive as possible, abstracting many of the complexities that web developers have to deal with in desktop IDEs and command-line tools.

    Here’s another nice example of automatically creating GitHub Gists, from Jordan Merrick:

    This is a workflow I’ve always wanted to create, and the new API support makes it possible. Gists are great to share small pieces of text information, such as code snippets or scripts. This action extension workflow accepts files of any type (though they must be text-based) and creates a gist using the GitHub API.

    Workflow can now take over many web tasks that previously required either writing scripts or depending on hosted solutions like IFTTT and Zapier. Like my workflow for posting photos to my blog, it’s a natural tool for web publishing and microblogging.

    I’d also love to see a Mac version of Workflow one day. I do some limited automation on my Mac, but AppleScript and Automator aren’t as easy to use or as well-maintained as Workflow.

    → 9:34 AM, Oct 19
  • Redesigning Penn Station

    Earlier this year I wrote a post about indie podcasting and the mistake of centralized publishing, comparing it to the lesson from the demolition of Penn Station in New York City. That train station can never be returned to what it was, but the city hasn’t given up on updating it. Here’s the New York Times with an idea to turn it into a beautiful space again:

    Just as the new Amtrak train hall for Farley, designed by Skidmore, Owings and Merrill, reuses the catenary structure of the building’s original trusses to bring in natural light, this plan foresees a sunny public space, open to the street, framing views of Farley, its height dwarfing Grand Central Terminal’s main concourse. It reclads the arena’s facade with double-skin glass, doing away with doors into and out of the building, letting commuters, long lost in the existing warren, know where they are and see where they’re going.

    It’s a nice article with photos and diagrams. I hope to see something like this new Penn Station on a future trip to New York City.

    → 4:30 PM, Oct 18
  • Disappointed in Thiel

    About 2 years ago I read Peter Thiel’s Zero to One while traveling. It quickly became one of my favorite business books. I’ve always thought we should strive to create truly new products, not just better versions of old ideas. I referenced the book in one of my blog posts about Snippets.today.

    It wasn’t until the Gawker lawsuit that I bothered to learn more about Thiel. It’s disappointing enough that anyone I respected was on stage at the Republican National Convention, a 4-day train wreck that I expect years from now the GOP will look back on with embarrassment. Now Thiel’s giving over $1 million to Trump.

    Marco Arment makes the case for Y Combinator distancing itself from Thiel:

    Wrapping reprehensible statements or actions as “political beliefs” doesn’t protect them or exempt their supporters from consequences. Racism is racism. Sexual assault is sexual assault. Labeling reprehensible positions as “political beliefs” is a cowardly, meaningless shield.

    I don’t think we should use the word “shame” lightly. It’s used jokingly too often in our industry; for example, “shame on you” for not using my favorite app or listening to my favorite show. But on this serious topic, I agree with the content of Marco’s post completely.

    → 12:46 PM, Oct 18
  • Mixed feelings about the iPhone 7 future

    Federico Viticci published a great review of the iPhone 7 for MacStories last week. He opened with this:

    After nearly two years spent using a 5.5-inch iPhone, I'm accustomed to not having a compact phone anymore. The iPhone 6 Plus and 6s Plus have reshaped my iPhone experience for a simple reason: they give me more of the most important device in my life.

    Followed by the main theme of his review:

    In many ways, the iPhone 7 feels like a portable computer from the future – only in a tangible, practical way that is here with us today.

    I’ll admit to some jealousy of Federico’s iOS-only lifestyle. Apple’s mobile OS is fun to use in part because of its simplicity and in part because of its inherent mobility.

    If I could only choose one computing device — one phone, no tablets, no Macs — I would get an iPhone 7 Plus. The largest phone would make for a great mini tablet, nice for photography, writing, and the web. Maybe when I retire from living in Xcode and Objective-C, I’ll daydream about traveling the country with a backpack and iPhone 7 Plus, never tied to my desk again.

    But in the meantime, I’m fortunate that I can have a Mac and a few iOS devices. When I go to a conference, I take the iPad Mini and big iPad Pro along with my phone. Because I have those larger devices available, I always want the convenience of carrying the smallest phone when I’m not sitting down to work. The weight and feel of the iPhone SE is perfect.

    There’s a point in Federico Viticci’s review where he covers the headphone jack controversy. He hints at a common justification I’ve heard for some of Apple’s decisions, and I think it’s kind of a defeatist attitude that is worth commenting on:

    You and I might wax philosophical about the beauty of RSS, HTML, MP4, and USB, but millions of people only demand easy tech and engaging social apps.

    Federico is right, but this fact is exactly why those of us who are passionate about open standards must make a strong case for them. We can’t leave such important decisions only in the hands of big corporations and fickle customers. It’s our responsibility to write about what we believe is best for the web and best for the tech industry.

    → 9:29 AM, Oct 17
  • Core Intuition 254 and Kapeli wrap-up

    On Friday, Daniel and I recorded and published episode 254 of Core Intuition:

    Daniel and Manton dive into Apple’s controversial suspension of Dash developer Kapeli’s App Store account, and respond to listener Q&A about whether non-sandboxed apps are at risk of removal from the Mac App Store.

    Covering sensitive subjects like Kapeli’a suspension is difficult in a podcast format where you can’t perfectly prepare your thoughts. Did I go too far defending Bogdan Popescu? Did I not go far enough?

    Maybe we’ll know with some distance from this topic whether we reacted fairly. But I don’t think I overstated how important a moment this was for the App Store — both Apple’s influence over the narrative and as a test for their power in the store. Unfortunately the story still has a very unsatisfying ending.

    → 5:43 PM, Oct 16
  • Walking along Lake Creek Trail

    Walking along Lake Creek Trail
    → 3:18 PM, Oct 15
  • Kapeli&#039;s suspension is a test for Apple

    Since my post yesterday about what I viewed as the unwarranted smearing of Kapeli’s reputation, I’ve received a lot of good feedback. I’ve also seen many comments from developers who had an incomplete view of the facts. This isn’t surprising, since Apple’s own statement to the press seems to have left out details, either for privacy reasons or to make a stronger case.

    I’m not an investigative journalist. I know a lot about what happened, but not everything. I’m not going to try to “get to the bottom” of the truth. Kapeli developer Bogdan Popescu emailed me yesterday after my post had been published, and as tempting as it might have been to ask him more questions, ultimately this is between him and Apple. I’m a blogger and podcaster, so I’d rather stick to the larger themes.

    How do we move forward as a community? Two points:

    1. We must err on the side of defending indie developers, even when it looks bad. Apple's a big corporation and they don't need our help.
    2. We should hold Apple accountable when they overreach, even when they have the best intentions. I agree with Rene Ritchie's post that despite such a bad situation, it's still within Apple's power to fix this.

    Matt Drance had a series of tweets that get to the heart of how we react as a community. If it turns out that Bogdan did submit fraudulent reviews, then okay. But if Apple eventually reinstates his developer account, I want to be able to say I stood up for his side of the story, even if I risked being wrong.

    It’s easy to defend someone who is obviously innocent. It’s harder when they make mistakes, but in areas unrelated to the crime. In that way, this App Store “rejection” is unique. It may be the most important test we’ve seen of Apple’s power in the store.

    → 1:56 PM, Oct 12
  • Kapeli&#039;s reputation

    I’ve been using Dash more and more over the last month, but I realized with all this controversy that I had never actually bothered to pay for the app. Whoops! The trial reminds you every once in a while, but otherwise it’s pretty usable without paying, and I’m lazy.

    Kapeli’s iOS revenue has vanished, but the developer still has his direct Mac sales. So I set out to finally buy a copy of the Mac version.

    And then during checkout, sending him my name and contact info, I hesitated. Do I trust this developer? Is he trying to do the right thing for customers, as every indication from his public blog posts and tweets about Dash show, or is he a scammer, conducting fraudulent activity in the App Store as Apple accuses?

    That’s the damage Apple has done in going to the press and smearing him. They’ve destroyed the goodwill he had in the community from his well-respected app. I always want to give people the benefit of the doubt, yet I hesitated.

    At the Çingleton conference in 2013, Christina Warren talked about building a reputation for herself. One of the slides will stick with me for a long time: “All I have is my name,” she said, so she couldn’t risk attaching her name to something she didn’t believe in.

    Kapeli developer Bogdan Popescu has made some mistakes. There’s a lot of smoke, but I still believe there’s no fire, no actual fraudulent activity orchestrated by Bogdan himself. That hasn’t stopped Apple from burning his reputation to the ground.

    As long as Apple has so much control over app distribution, so much power over an iOS developer’s business and reputation, then Apple’s treatment of and communication with developers has to be perfect. Michael Tsai covers some of the ways Apple mishandled this. The fallout in the developer community has been more severe than is warranted from the incomplete and misleading facts in Apple’s statement.

    I finished checking out and paid for Dash. It’s a great app.

    → 11:46 AM, Oct 11
  • Oaks from the front porch

    Oaks from the front porch
    → 12:47 PM, Oct 10
  • Nice day for lunch outside

    Nice day for lunch outside
    → 2:42 PM, Oct 7
  • Apple's control over app hosting

    High-profile app rejections aren’t as common as they once were, so it’s even more shocking when an entire developer account is banned from the App Store. Dash from Kapeli ran into this after trying to migrate an account:

    Today I called them and they confirmed my account migration went through and that everything is okay as far as they can tell. A few hours ago I received a “Notice of Termination” email, saying that my account was terminated due to fraudulent conduct.

    Brent Simmons writes about the lack of transparency and minimal appeal process:

    While this is legal, and within Apple’s rights, it’s not what we’ve come to expect from a moral judicial system. No matter what the context, we expect that the accused see the evidence against them, we expect avenues for appeal to be made available, and we expect proportional penalties.

    I hope this misunderstanding with Dash will be cleared up soon. But issues like this will never completely go away until Apple separates app distribution from curation. As long as there is a centralized, tightly-controlled system for installing iOS apps, mistakes will happen.

    Imagine instead if the App Store worked more like the web. Google dominates search, but they can’t shut down your web site. If you try to game the system, Google can remove you from search and limit your exposure. Likewise, developers should be able to distribute iOS apps with minimal involvement from Apple, yet apps that haven’t passed formal review won’t be searchable without a direct link, won’t ever be featured, and won’t show up in the top 100 lists.

    A more open system for app distribution would cleanly solve several problems with the App Store. Apple would be more free to remove clutter from search results without necessarily purging apps from the store. And there would be a natural temporary consequence for suspected fraudulent behavior: simply demote the app, delisting it from search and featured collections.

    Apple should focus on highlighting the best apps within a system that lets the app review team make occasional mistakes. There shouldn’t be such an easy toggle that wipes out an indie developer’s business.

    → 3:44 PM, Oct 6
  • Core Intuition 253 and Google

    We posted Core Intuition episode 253 this morning. From the show notes:

    Manton and Daniel discuss Manton's experience at the Release Notes conference, talk about the rationale for supporting what might be considered edge-case behaviors in apps, and dig deeper into questions of freemium pricing, reflecting on the Omni Group's pertinent announcements. Finally they talk briefly about Google's latest announcements and what their competition means to Apple.

    Google must be doing something right with their announcements, because yesterday my son told me he wants to get a Pixel when it’s time to replace his iPhone 5S. And as much as I love our Amazon Echo, I can see Google Home taking off if it’s well-integrated with existing Google services.

    → 10:11 AM, Oct 6
  • Apple apologists

    The hardest transition for fans of Apple Computer from the 1990s is realizing that Apple no longer needs us to defend the company. If I’m sometimes critical of Apple, both here and on Core Intuition, it’s because they’re the largest tech company in the world.

    I will always hold Apple to a very high standard of excellence. They’ve earned it. When airline flight attendants tell passengers to turn their Samsung Galaxy Note 7 phones off along with the usual warnings about oxygen masks and life vests, we shrug and laugh because it’s Samsung. From Apple, we expect higher quality and attention to detail, not shortcuts.

    Steve Jobs has been gone for 5 years, but the spirit of building insanely great products is well-rooted at Apple. Apple employees are doing incredible, passionate work.

    And yet the company itself hardly resembles the struggling computer maker of 20 years ago. Apple is a giant corporation now. Unlike its employees, who have the best intentions, giant corporations are by default selfish, arrogant, and rarely courageous.

    Apple does a lot of good for the world. I doubt there’s another company even approaching Apple’s size that does as much, from renewable energy to safer materials to workplace diversity. But that good doesn’t absolve them of criticism.

    → 10:42 AM, Oct 4
  • Real work on the iPad

    I only took iOS devices with me to Indianapolis last week for Release Notes. My iPad Pro with smart keyboard, for writing and podcasting; an older iPad Mini, for reading on the plane; and of course my iPhone SE.

    A couple of months ago, Dan Counsell wrote about the iPad as a poor choice for everyday work:

    I know a lot of journalists use the iPad full time, and that's fine. The reason they can use it full time is that typing text has very low system requirements. However as soon as you need to move files from one app to another or unzip a document the iPad starts to make your life more complicated.

    Part of the issue is that out of the box, the iPad can’t do everything that a Mac can do. The iPad needs apps. As Ben Brooks wrote about Dan’s ZIP file example:

    It would be great if iOS expanded zip extraction as a built in tool, but it doesn’t, and yet a tool to do unzip is easily found, safe, and free.

    iOS doesn’t have the Mac’s Finder. I could actually see a third-party iOS app centered on file management first, instead of just as an extra feature on top of text documents or photos — an app that blended a little of document providers, iCloud Drive, and app launching. Kind of in the spirit of the Finder-replacement PathFinder.

    There are iOS apps to do pretty much anything. What often makes iOS slower to use is there’s less glue between apps and documents than on the Mac. No drag and drop between apps on iOS. Fewer keyboard shortcuts.

    I love how Workflow sidestepped these issues with automation. I use a workflow for posting Instagram photos to my own blog. And Federico Viticci uses Workflow extensively. In a recent Club MacStories newsletter he shared how he used Scrivener and Workflow to write and prepare his iOS 10 review.

    Another simple workflow I’ve used is to convert a podcast to MP3 from Ferrite. Every episode of Timetable was recorded on the iPhone or iPad. At WWDC, I edited Core Intuition on the iPad with the help of Ferrite and the web app Auphonic, which Jason Snell has also written about:

    I was able to export and upload The Incomparable while sitting at a comfortable table in an Ashland pub, drinking their beer and using their free Wi-Fi. Auphonic did the rest, re-encoding the file as an MP3, tagging it properly, and uploading the result to both my Libsyn account and to The Incomparable’s FTP server.

    When I was visiting a new coffee shop every day for 30 days, I loved taking the iPad with me because it was a lightweight, focused writing environment. With the right apps and workflows, it’s a fun computer to work on. I didn’t miss my Mac while traveling last week, and I expect iOS to serve me well on future trips.

    → 3:10 PM, Oct 3
  • Paying for web content

    I subscribe to a lot of web applications for my indie business, from hosting to invoicing and reporting services. But I also pay for web content when it’s compelling enough. Here are some web sites with writing and art that I think are worth supporting directly:

    New York Times. Still the best reporting on the 2016 presidential campaign. While I usually use RSS for news and blogs, I check the New York Times manually each morning to see what is happening in the world. $10/month.

    ESPN Insider. Extra articles to supplement what I read during NBA season. Seemed easy to justify as an expense for my podcast Technical Foul with Ben Thompson. Also comes with the ESPN print magazine. $39/year.

    Club MacStories. I’ve enjoyed reading MacStories for years, and the club subscription adds a bunch of great content in a weekly newsletter. You also get occasional book downloads such as for Federico Viticci’s new epic iOS 10 review. $5/month.

    Six Colors. Jason Snell wasted no time after leaving Macworld. Seemingly overnight, Six Colors has become an important site for Apple fans. Jason and Dan Moren talk informally about current work, travel, writing, and tools on their secret podcast for subscribers. There’s also a monthly email magazine. $6/month.

    Stratechery. Thoughtful analysis of current news and trends from Ben Thompson, delivered Monday through Thursday via email or RSS for subscribers. Great depth to stories about tech company business models and where the industry is going. Helps pay for his NBA League Pass subscription. $10/month.

    Craft. An archive of sketches, rough animation, and preproduction artwork from animated films. It’s like an expanded version of behind-the-scenes DVD extras and art books. Initially subscribed for the rough animation for the beautiful film Song of the Sea. $6/month.

    Before the web dominated all publishing, it was normal to pay for the newspaper and maybe a few print magazines. Then we entered a period where everything had to be free. Now, paying for content is useful again. The sites above have figured something out about building an audience and creating good content.

    → 3:29 PM, Sep 16
  • Red flags at the startup

    Wild yet totally believable story from Penny Kim about how she moved from Texas to California to join a startup. It’s got mismanagement, office politics, money problems, lies, and even faked wire transfer receipts:

    The scam artist sat there and concocted this in his head instead of telling us the truth that the money wasn’t there. He then weighed the pros and cons and decided it was worth it. Then he took the time to Photoshop in each of his 17 employees’ names (or he forced someone else to do his dirty work).

    Although she tried to keep the company name hidden, it was revealed by others later. See this Hacker News thread and article at Business Insider.

    It is hard to run a small company that isn’t quite profitable, balancing the ups and downs of revenue and the timing of new investments. When I was much younger, I could probably be sympathetic to a company that was honest and transparent about a rare late paycheck or reimbursement. But Penny Kim’s startup story is much worse than that; it’s a perfect example of how not to handle leadership mistakes.

    → 9:42 AM, Sep 15
  • Rewriting in Rails 5

    I’ve been doing Ruby on Rails work again. Although my indie web projects are all Sinatra, I generally recommend to clients that Rails is the way to go. Rails will be easier for them if someone else ever needs to take over the project.

    I don’t like using 2 products that do the same thing, though. That’s why I consolidated my web app hosting to Linode, and my source code to GitHub. Why should I switch between 2 frameworks, especially since Rails has matured so well? I’m enjoying Rails 5.

    David Heinemeier Hansson said in an interview on Slashdot, about the rise of JavaScript front-end frameworks:

    But it seems like that's one of the lessons people have to learn by themselves. Just try to string things together on your own a few times and you'll quickly get an appreciation for what Rails provides as a backend framework. We've had tons of programmers try just that and come back for refuge.

    It struck home because I’ve had some regrets with choosing Ember.js for my new app. Part of that is my own lack of experience with the framework. But also I’m no longer convinced that the heavily JavaScript-based view layout of something like Ember.js is better than Turbolinks, for example. I plan to rewrite my app in Rails and more classic Ajax at the earliest opportunity.

    → 9:52 AM, Sep 10
  • Paying for iCloud storage

    Dan Moren had an article at Macworld last week about the price for iCloud storage. Most iPhone users quickly run out of space for a backup, but they don’t use iTunes either because iCloud is just much simpler:

    Apple’s philosophy is about making its products seamless and easy to use. Encouraging people to use iCloud backup is, in most cases, smoother and simpler than having to back-up to a computer.

    It was 5 years ago that Steve Jobs introduced iCloud and talked about demoting the computer from the central hub:

    Keeping these devices in sync is driving us crazy. So, we've got a great solution for this problem. And we think this solution is our next big insight, which is we're going to demote the PC and the Mac to just be a device. Just like an iPhone, an iPad, or an iPod Touch. And we're going to move the digital hub — the center of your digital life — into the cloud.

    I use iCloud backup exclusively, with only the occasional manual iTunes backup when I know I’m going to immediately restore from it, such as when upgrading to a new iPhone. I expect most new iPhone users rarely sync with iTunes, relegating iTunes to a playback app for their iTunes rentals and Apple Music subscription, but not much else.

    That’s certainly the case for my family, at least. After some lost photos recently, I told the kids I would bump their allowance by $1 to cover everyone having at least 50 GB of iCloud storage. No more excuses.

    Maybe it should be free, as Dan Moren argues above. Or maybe Apple could encourage upgrades by bundling extra iCloud storage with Apple Music and other popular services. But even today, at 99 cents, it’s a small price to pay for cloud backup that you never have to think about.

    → 3:19 PM, Sep 6
  • Long vs. pure App Store names

    David Smith has an analysis of long names in the App Store, as developers try to understand the scope of Apple’s upcoming cleanup changes. Don’t miss the text file of 255-character names he found, which are all ridiculous. I’d laugh if this kind of gaming of the store didn’t make me sad.

    I’ve always thought that the title shown in the App Store should be the actual app name. Keyword spamming is clearly bad, but I personally don’t like even tag lines in the name. Of the 4 apps from my company Riverfold that have been in the App Store, the names in the store all exactly match what is shown on your home screen:

    • Sunlit
    • Tweet Library
    • Clipstart
    • Watermark Mobile

    Maybe my sales suffered because of my refusal to add more words after the real name, but to me, these names are pure and gimmick-free. I don’t want my customers subjected to a truncated mess of words even before they use my app.

    If tag lines and brief descriptions in the App Store name are so common (and they are), then Apple should complement the new 50-character limit by having a separate 1-line description field in search results. This was discussed on the latest episode of Release Notes. My worry is that Apple attempts to fight problems with new policy alone instead of also encouraging the right behavior with App Store features.

    → 10:26 AM, Sep 6
  • App Store cleanup

    I’m in favor of Apple’s upcoming app store cleanup, as long as they err on the side of keeping an app in the store if it isn’t clearly broken or abandoned. They should start slow with the obvious cases: crashing on launch, not updated for retina or even 4-inch screens. There’s a lot of low-hanging fruit that could be programmatically swept through.

    David Smith wrote about this kind of App Store cleanup over 3 years ago, arguing that Apple could do a lot without getting into the subjective quality of an app:

    Instead, I think Apple would be well served to adopt objective measures for quality or at least freshness to improve the overall quality of the Store. Adopting such a policy wouldn’t fundamentally change the situation for developers; every app they submit already has to be approved. All that this would do is apply some of those same required criteria to the app on an ongoing basis.

    John Voorhees picked up on the urgency of Apple’s new policy for an article at MacStories:

    We are well past the time when the number of apps served as meaningful bragging rights for Apple keynotes. The directness in tone and relatively short time frame given to developers to make changes to apps sends a clear message – Apple is serious about cleaning up the App Store.

    It remains a challenge to preserve the part of our culture that is captured in old apps. I wish Apple could aggressively curate the App Store and allow old apps to be archived and available. But that’s far from an Apple priority. For now, it’s right to present the best possible user experience for App Store customers.

    → 10:36 AM, Sep 2
  • Core Intuition 248

    This week on Core Intuition, Daniel and I talked about recent Apple news:

    Daniel and Manton react to the European Union’s €13B retroactive tax demand to Apple, talk about the impact of tax laws on indies and small companies, and weigh in on Apple’s purported AI and machine learning triumphs. Finally they catch up on their ambitions to be more productive as the busy summer transitions to fall.

    I wondered whether Apple is so obsessed with privacy that they are blinded to what is possible with more computation and extensibility in the cloud. I judge their efforts not only by the remarkable work the Siri team has done, and by what Google and Amazon are building, but also by Apple’s own gold standard: the Knowledge Navigator video from 1987. That vision is too ambitious for one company to develop all the pieces for. We eventually need a more open Siri platform to get us there.

    → 11:57 AM, Sep 1
  • On this day, last year

    One year ago today, I posted the first screenshots of Snippets.today for iPhone. I never would’ve guessed that a year later I’d still be working on the beta, still not quite ready to ship.

    One theme from that post a year ago is even more true today, though. To succeed I need to not just announce and market the product, but tell a story about why it matters. This realization is what has held up the Kickstarter video for so long. It doesn’t need to be perfect — I’m sure it will be flawed in a few ways — but it needs to be right, in that it should frame the idea of independent microblogging correctly.

    More from that post last year:

    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.

    I still feel that risk. A long-overdue product is difficult to push forward, the weight starting to carry as much burden as potential. And everywhere I look there’s a new excuse to procrastinate.

    → 12:00 PM, Aug 31
  • Supertop podcast

    Everyone who builds blogging software should have a blog. Everyone who builds podcasting software should probably have a podcast, too. (And sometimes, like for Marco Arment, even a few podcasts.)

    So I was happy to see Supertop start a podcast recently to talk about the Castro 2 launch and other thoughts on being a 2-person indie shop. Episode 3 features Brent Simmons:

    Pádraig and Oisín are joined by Brent Simmons to discuss indie app development in the wake of Vesper shutting down.

    One subject I’m glad they touched on is the special challenge for a company that needs to support multiple salaries, but isn’t big enough yet to actually have significant revenue like a large company. Last week, Daniel and I talked about the balance of loving being independent but also knowing that one day you want to expand to support a small team. It’s not easy.

    → 9:53 AM, Aug 31
  • Email archiving with Evernote

    For a long time, I’ve struggled with having important email archived in one place. I’ve switched between several clients over the years, from Eudora and Mailsmith and even Cyberdog, in the very early Mac days, to more recently the fairly reliable Apple Mail. Yet I still occasionally lose old email when switching between machines and not handling the migration properly.

    Last year I set out to fix this. While I didn’t do an exhaustive search of archiving options, the main solutions I considered were:

    • Switch to Gmail. There are plenty of native clients for Gmail, but I fundamentally don't like the idea of an ad-supported email service. I'm very happy with Fastmail and want to continue using it.
    • Local archiving with EagleFiler. This gets the email archived in a central place outside whatever mail client I'm using, which is great. However, I'd like something that is focused on cloud search first.
    • Save to files on Dropbox. All of my notes are stored on Dropbox, so why not put an email archive there too? But Dropbox doesn't seem well-suited to accessing and searching easily.
    • Save to Evernote. I've never actively used Evernote for notes. Using Evernote for email would keep the email separate from normal notes on Dropbox, and Evernote already has excellent support for forwarding email into their system. I'd be able to search the archive from my Mac, iPhone, or the web.

    I’ve settled into a pretty basic workflow of using Evernote to save any email that looks moderately valuable. This is usually a handful of messages each day, not every email I receive or send. By picking and choosing what gets archived, I can ignore everything else, letting it sit in Mail’s archive indefinitely or deleting it.

    Here’s an AppleScript I currently trigger in Mail for any selected message I want to archive. It’s set to command-shift-S via FastScripts. If I’m away from my Mac, or I want to preserve HTML and inline attachments, I can save an email by forwarding it to a special Evernote email address. (I also pay for Evernote Premium.)

    Now that I’m about a year and thousands of archived messages into this setup, I’m declaring it a success. I plan to continue using Evernote in this way for years to come. Let’s just hope they’re on the right track with their own business.

    → 2:10 PM, Aug 26
  • Spurs at the Olympics

    I’m watching Spain vs. France basketball right now, and later today is Argentina vs. the United States. No question the United States are the favorites for gold, but there are some really good teams, most with great NBA players.

    From the double-overtime win by Argentina a few days ago, to Boris Diaw sipping an espresso in his room, I’ve been more engaged in following basketball at the Olympics than usual. And I love that so many Spurs players are everywhere.

    Spain has Pau Gasol; Argentina has Manu Ginobili, who helped defeat the United States in 2004; Australia has Patty Mills; and France has Tony Parker. Gives me something to root for throughout the tournament.

    → 1:02 PM, Aug 17
  • Mac App Store developer survey

    DevMate surveyed 679 Mac developers to put together a report on who is using the Mac App Store vs. selling direct, what concerns developers have, which tools they use, and more. On why developers leave the Mac App Store:

    If you’re thinking giving away 30% of your hard-earned revenue is the deal-breaker, you’d be surprised. Revenue share is not the main reason developers flee. The main reason is the long and unclear App Review process, closely followed by revshare and the absence of trial versions.

    While sandboxing does show up on the complaint list, it’s ranked low as a reason to not use the Mac App Store, even though it was why I pulled my app Clipstart from the Mac App Store 4 years ago. And not much has changed since I wrote about Sketch and other apps leaving the Mac App Store last year.

    For anyone who has been following blog posts and conference talks about the Mac App Store, there won’t be many surprises in this new survey, but I found the details interesting. The survey appears to be a good snapshot of how the Mac community is feeling about selling software.

    → 3:04 PM, Aug 16
  • With her

    I’m a Hillary Clinton supporter. I was in 2008, I was earlier this year, and absolutely I am now, as Donald Trump seems intent with each daily blunder to prove he’s the worst candidate the Republicans have fielded in quite some time.

    Having said that, even leaving the politics aside, I think the new podcast “With her” from the Hillary campaign is fantastic. It’s exactly what a podcast should be: well-produced, yet informal, with just enough of a look behind the scenes to feel personal. You can subscribe in Overcast or iTunes.

    → 3:23 PM, Aug 12
  • Tim Berners-Lee&#039;s Solid

    I’ve written about IPFS before, but Solid (from Tim Berners-Lee himself, among other MIT folks) is another new proposal for a more distributed web. I wasn’t familiar with it until reading this article at Digital Trends, which first makes the case for independent content vs. the big centralized platforms:

    Now a handful of companies own vast swaths of web activity – Facebook for social networking, Google for searching, eBay for auctions – and quite literally own the data their users have provided and generated. This gives these companies unprecedented power over us, and gives them such a competitive advantage that it’s pretty silly to think you’re going to start up a business that’s going to beat them at their own game.

    The article continues with the types of data you might share in a Solid application:

    For example, you might keep your personal information in one or several pods: the sort of data about yourself that you put into your Facebook profile; a list of your friends, family, and colleagues; your banking information; maps of where you’ve traveled; some health information. That way if someone built a new social networking application—perhaps to compete head-on with Facebook, or, more likely, to offer specialized services to people with shared interests—you could join by giving it permission to access the appropriate information in your pod.

    One of the showcase applications is called Client-Integrated Micro-Blogging Architecture, surely named mostly for its pronounceable acronym. From the CIMBA project site:

    CIMBA is a privacy-friendly, decentralized microblogging application that runs in your browser. It is built using the latest HTML5 technologies and Web standards. With CIMBA, people get a microblogging app that behaves like Twitter, built entirely out of parts they can control.

    Solid and CIMBA are built on the Linked Data Platform, which in turn is based off of RDF. I’m admittedly biased against RDF, because it often brings with it an immediate sense of over-engineering — too abstracted, solving too many problems at once. I’m glad to see this activity around a distributed web, and I’ll be following Solid, but I also continue to believe that the simple microformats and APIs from the IndieWebCamp are the best place to start.

    → 1:53 PM, Aug 12
  • Weekend on the lake

    Weekend on the lake

    Lake Livingston.

    → 12:00 PM, Aug 8
  • Proving Marco&#039;s 10-year plan

    Erik Person wants to prove Marco Arment’s claim that indie success just requires working hard for 10 years:

    Proving whether he is right or wrong is pretty hard to do. Maybe it’s all hard work. Maybe it’s pure luck. Hell, maybe it only takes five years of hard work, and Marco just kind of sucks at it. Either way, I’m going to try to prove it. And not by convincing you with some incredibly efficacious essay. Rather, I’m going to start my 10 years of hard work today.

    In a follow-up post, 6 months later:

    In the past six months, I’ve managed to change quite a few things. The biggest change was leaving my job at the end of May. After several months of trying to work on projects in the evenings and weekends, I decided it was necessary to go full-time on the projects if I wanted to see any real progress.

    I’ve subscribed to Erik’s blog and look forward to following his progress. I hope he blogs more often about how it’s going. If you look at Marco’s blog even 5 years ago, he was usually blogging every day. (By the way, “blog more often” is my advice to nearly everyone, including myself.)

    → 11:21 AM, Aug 3
  • 1 year indie

    One year ago, I celebrated my first day without a boss. I had just written 2 weeks of daily blog posts about wrapping up work after 14 years at the same company. Today, I’m wearing the same Mac t-shirt and working from Whole Foods again to mark the anniversary.

    So how has it gone, a full year as an independent developer? It depends who you ask. While I was leaving the best day job I’ll ever have, there’s still no substitute for the flexibility and freedom to work on my own projects. From that perspective, the last year has been amazing, with some great success on new revenue from Core Intuition and contracting too.

    And I made a few decisions early on with how to manage the business that have proven useful to smooth over the bumps. For example, I pay myself a fixed salary on the 1st day of each month, and for 12 months straight I’ve always met that goal. This month, I gave myself a small raise.

    On the other hand, I’m still bringing in less money than when I had a real job, and my wife might say that there’s a fine line between being self-employed and unemployed. We’ve let our credit card debt go unchecked. There’s been no slack in the high monthly expenses of the house, car payments, business costs like hosting, and everything else. My income from Riverfold has grown significantly, but not significantly enough.

    Yet, I’m upbeat. I’m upbeat because of the potential for what I set out to do a year ago: ship Snippets.today and help revolutionize independent microblogging. That’s still the plan. That’s still why this experiment of working for myself is in its very early stages, even a year later.

    → 1:19 PM, Aug 1
  • Lightning headphones in the box

    John Gruber has an article outlining the 5 (or 6) most likely options for what headphones Apple should include with the new Lightning-only iPhone. His hope is on wireless:

    My hope is that they ship wireless ear buds. When Apple eliminates ports, they tend to do so in favor of wireless technology. Pushing wireless as the default would solve the problem of listening to audio while charging the device, too.

    Maybe. I’m not in any hurry to see a Bluetooth-dominated headphone world, and I’m not sure Apple Support is either. Wired headphones work every single time you plug them in.

    As Gruber points out, wireless headphones are also an upsell opportunity. While cheap Bluetooth headphones can be found, Apple’s Beats are $100 more expensive for wireless. Seems like this extra cost would unnecessarily eat into their margins.

    Of course, I have no idea what Apple will do. I just know what I think they should do.

    Apple should include Lightning ear buds in the box, and an adapter for older headphones. I don’t expect they will do this forever — the first year would be enough. But this small gesture of including an adapter would mostly erase the negative reviews and user frustration for Apple’s biggest repeat customers: not me, because I intend to keep my iPhone SE for a while, but for everyone who buys a new iPhone each year.

    Removing the 3.5mm headphone jack will be the first time Apple has removed a major feature on the iPhone. They can spin Lightning as an improvement all they want; customers with existing headphones will be annoyed. Including an adapter would minimize the inconvenience at launch, without locking Apple in to any long-term technical compromise.

    → 10:08 AM, Aug 1
  • This is Hillary&#039;s week

    The Democratic National Convention starts today and the latest round of polls are out. FiveThirtyEight’s polls-only estimate of the election now shows Trump in the lead. Just in case you think we can not vote or not volunteer, and Hillary will coast to a win anyway… we can’t.

    As a long-time Hillary supporter — I recorded a podcast episode about the primary process back in 2008, which I’m still very proud of — I’m increasingly frustrated to realize how much damage has been done with the constant attacks against her character over 20 years. She’s held to a different standard of perfection than everyone else. But she’s a very good candidate and fundamentally honest.

    Let’s not forget how historic this election is. From a New York Times profile by Gail Collins:

    You can argue the pros and cons of Hillary Clinton’s character, or her potential to change the nation, or her position on trade policy. But you can never take away the fact that she was the one who made the idea of a woman becoming president so normal that many young women are bored by it.

    If Hillary wins, future generations will grow up learning about how Republicans (and even some Democrats) threw everything at her for decades, and she never gave up on politics. Success isn’t just the best ideas, the best product, the best marketing. Success is perseverance.

    There are many people alive today who were born before women had the right to vote. Trump is wrong about what makes America “great”. The country is great because it is progressive, even if progress takes a long time. Electing the first woman president isn’t supposed to be easy. Hillary is a strong Democrat, and her place in history is worth fighting for and celebrating.

    → 11:28 AM, Jul 25
  • An open Twitter starts with the web

    Dave Winer wants an open alternative to Twitter:

    I want it to be friendly to Twitter, because as a user and a shareholder, and a developer who uses their platform, I want to see it thrive. But I also strongly believe we need the open system, the Central Park to Twitter's condo buildings on Fifth Ave and Central Park West.

    John Biesnecker, reading Dave’s post, suggested XMPP because it’s an open standard and federated. But as great as XMPP is for messaging, it seems too different from the web; it would be like starting over. The nice thing about building on independent microblogs is that we can leverage the existing open web infrastructure: all the WordPress installs, RSS feeds, and new work from the IndieWebCamp.

    That’s what I’ve tried to do for Snippets.today. Learn from the UI innovations of Twitter — the fast timeline experience, the effortless posting — but without skipping the important first step of independent web publishing.

    → 10:40 AM, Jul 23
  • Core Int 242, Swift, and verified Twitter

    From the show notes for today’s episode:

    Manton reacts to negatively to the Swift 3 decision to disallows subclassing by default, while Daniel tries to see the bright side. The two discuss Twitter’s new invitation to apply for @verified status, and Daniel’s attempt to do so. And they quickly touch base on the upcoming Apple-sponsored reality show, “Planet of the Apps.”

    Believe it or not, I was kind of holding back a little in my Swift ranting. But it was the most critical I’ve been on the show. And it’s totally okay for you to disagree! Maybe even good for the platform if you do.

    → 2:28 PM, Jul 21
  • GOP train wreck, day 2

    I agree with Dave Winer’s summary of day 2 of the Republican convention:

    It's one thing to nominate a grade school bully from a racist family with a potty mouth and an emotional age in the single digits. That's pretty bad, but to call for the other party's candidate to be jailed, that's over the top. To let those words come out of your mouth, even as an anonymous person in a crowd, you all have crossed a line that will be hard to come back from.

    History will reflect poorly on the Republicans of 2016. And nearly as bad, while flipping through national TV networks last night, I saw little or no condemnation from the news. Maybe we need a multi-party system just so the GOP stops getting 50% of the air-time.

    I called it a mob last night. The only good news: the arena seemed literally half empty.

    → 10:22 AM, Jul 20
  • Summer co-working

    I’ve settled into a new work routine this summer at a co-working place. But after working at home for over 15 years, spending time with family and enjoying a flexible schedule, I’m not going to completely throw that out for a daily commute. Also, despite trying several options for parking or taking the train, I seem unable to shake the extra cost of just being downtown.

    For 2-3 days a week, it’s worth it. Whether half days or all day, this time away from the house lets me focus uninterrupted. It doesn’t hurt that they have cold-brew coffee on tap, either.

    The right balance of working from home or out of the house is different for everyone. James Glazebrook, writing for Basecamp, says that co-working doesn’t work for him, but that it might for you:

    “If this doesn’t describe you, by all means — consider coworking. Everyone is different and each person works differently. Maybe your job is isolating and you’re craving human interaction. Perhaps your projects would benefit from an outsider’s ideas or their complementary skills. You might not have space at home to dedicate to an office, or the desire to own a printer-scanner-fax. Or you just want to get out of the house more.”

    I’d add to his list: you might have kids at home who open your office door whenever they want. My home office is currently shared with anyone who wants to use the extra iMac or printer, and the kids often need rides to appointments, camps, and friends. For me, summer is the most important time to get a more formal schedule.

    Focusing in that way actually frees up the rest of the week, letting me spend time away from work without the nagging stress that I’m not being productive enough. It’s widely understand that no programmer can be productive 8 hours a day, 5 days a week. Instead, limited runs of about 4 hours of work are perfect for me, and it doesn’t have to be every day. Co-working is just solid time that I can count on to move my projects forward.

    → 11:03 AM, Jul 18
  • Twitter and .blog

    Dave Winer has a good comment for anyone questioning the web:

    So when they tell you they know for sure that the web is dead, or that everyone wants to host their blogs in locked-up silos, or that you can't build a great open social net on RSS, you might want to lower your glasses down your nose and look out over the top and ask Reallly? Are you sure?? ;-)

    Nothing is certain in business. For every success, there are many “sure thing” failures.

    I posed a question on this week’s Core Intuition as we were talking about Automattic’s upcoming .blog domain name registration. The gist of it was: what is more likely to survive for the next 50 years, Twitter or .blog? Twitter is huge, dominating the news and seemingly unstoppable, but social networks don’t have a great track record. I’d put my money on a new top-level domain, both because of the vision of empowering users to control their own content and also because domains were designed to last.

    Companies aren’t exactly designed to fail. But that is their default outcome.

    → 10:04 AM, Jul 16
  • Pre-announcing Snippets.today

    Earlier this week I sent an email to subscribers of the announce list for my microblogging project. These are people who signed up, wanting to hear more about what the project was and when the beta would be available.

    I talked about this on Core Intuition 241 today. Some people signed up a year ago, and the longer I went without sending an email, the more nervous I became that I was missing an opportunity to sustain interest in the project. I was stuck on the idea that the first email to the list had to be when there was a product to either test or pay for.

    These decisions of when to release a product, what to write about, how to communicate new ideas without overwhelming potential customers — they seem so monumental, but the truth is it just doesn’t matter that much. When the feedback started rolling in over email, I quickly realized that I was worried for nothing. People were excited and supportive.

    I have a lot of work to do over the next couple of weeks before it’s ready to open up to real users. As I’ve talked about a few times on my Timetable podcast, I’m planning a Kickstarter project to complement the web app. I’ll be sharing more soon.

    → 3:08 PM, Jul 14
  • Kayaking before sunset

    Kayaking before sunset
    → 11:52 PM, Jul 10
  • Pinboard at 7 years

    Maciej Cegłowski of Pinboard has always been open about his stats for the service. Now, on the 7th anniversary, he also shares that revenue has grown to well over $200k/year:

    I’ve added revenue this year because I'm no longer afraid of competitors, and I'd like to encourage people who are considering doing their own one- or zero-person business. The site costs something like $17K/year to run, so you can make a good living at this artisanal SaaS stuff.

    Congrats to Maciej on his success. I’ve been a happy Pinboard user for pretty much all of those 7 years, and — as someone who also aspires to build a profitable web platform — I’m inspired by Pinboard’s consistency and growth.

    Speaking of 6-figure income, I’ve also just finished reading Shawn Blanc’s write-up about launching The Focus Course, which had first-week revenue of over $100k. He describes the planning process and his strategy for using a mailing list to build awareness about the product.

    → 2:02 PM, Jul 10
  • Mullenweg on Medium and the open web

    Matt Mullenweg comments on whether choosing Medium is a good long-term bet:

    In making the decision to hitch their horse to Medium’s wagon while fording a river, they’re probably betting on Medium not going out of business, which I agree there’s only like a 10% chance of happening. However I think there is a 97% chance that Medium’s business model will change in the future because the path they’re on and these publishers are dependent on will not sustain their current costs or the investment they’ve raised.

    10% chance of going out of business compares poorly to Matt’s Automattic itself, which as I’ve written about before is one of only a couple web publishing companies that I think could last 100 years. If your goal is to write something that many people can read for years to come, why risk it on an uncertain platform?

    There’s a longer video interview with Matt from WordCamp Europe last month, where he goes into more detail on the role of Medium and WordPress. Highly recommended if you’re interested in the open web, or just curious how progress is made in the WordPress community.

    → 8:45 AM, Jul 9
  • Domain names can always redirect

    Just noticed this blog post from Fabian Steeg on the value of personal domain names:

    So the mere decision to use a custom domain for my blog many years ago made it independent of the actual hosting location (wordpress.com or self-hosted) and publishing system (wordpress or my own software). In a way I’ve been referencing a system for years that I only now created. Your own domain and URLs really give you a lot of control over your content, even if that content is actually stored elsewhere for years.

    Strongly agree with this. Having your own domain will future-proof everything you publish.

    → 1:55 PM, Jul 7
  • Tagging WWDC microblog posts

    I didn’t post as much as I hoped to during WWDC 2016 — just a couple full posts related to the conference, a half dozen microblog posts, and one photo. But nevertheless I wanted to collect them together since I didn’t have a full wrap-up post like last year.

    One of the advantages to hosting my own short posts — and only cross-posting to Twitter as an afterthought, not the primary location — is that I can easily tag all the posts in a series. This worked out really well while visiting coffee shops earlier this year.

    For WWDC, I’ve used the tag #wwdc2016. I probably won’t go back to tag previous conferences, but I’ll use this format going forward for attending events where I publish a series of microblog posts and photos.

    → 3:18 PM, Jul 6
  • Building on Jekyll

    If you were to build a weblog publishing system, would you start from scratch or build on an existing tool? There’s a healthy market for WordPress-powered hosting, for example, from WordPress.com itself to WP Engine. People know and trust these tools.

    I was faced with this question for my microblogging platform. My requirements were pretty simple:

    • The published site needed to be 100% static, so that I could host it anywhere.
    • The template system needed to be widely used, so that I could draw on existing themes and provide customization for users later.

    Jekyll looked like a great choice. I’m so happy with how well this has worked that I mention Jekyll in the marketing and footer of published sites. It’s a brand that can help give users confidence that this is built on something solid, and that if they need to migrate to self-hosted, there’s a path.

    On top of Jekyll, I built a web interface for publishing and deleting posts, changing themes, and I added XML-RPC support so that you can use external blog editors like MarsEdit. Plus there’s a native iPhone app for posting.

    All of this enables another feature that I’m very excited about: full mirroring to GitHub Pages. When you publish a microblog site, you can have it upload all the Markdown and HTML to a GitHub repository. This is a great way to export or mirror your content.

    I think it’s a good foundation. Publishing is actually a small part of the overall microblog platform I’ve built, but it’s an important one. I can’t wait to share more and keep building features up around Jekyll.

    I’m writing a short e-book about everything I’ve learned, and I’ll have news soon about early access to the platform. You should sign up on the announce mailing list before next week.

    → 9:25 AM, Jul 6
  • Spring pool while camping in west Texas

    Spring pool while camping in west Texas

    At Balmorhea State Park.

    → 2:48 PM, Jul 3
  • Lake Travis sailboat

    Lake Travis sailboat

    From dinner at Lucy’s Fried Chicken on the Lake.

    → 12:34 PM, Jun 25
  • Podcast thoughts on WWDC

    I’m back from San Francisco, catching up on everything I missed while traveling. I recorded a few podcast episodes during WWDC week, both my own and an interview.

    On Core Intuition, Daniel and I talked right after the keynote about the morning’s announcements. From the show notes:

    Manton and Daniel react to the 2016 WWDC keynote. [...] iMessage and Siri extensibility, Continuity improvements, Apple Pay for the web, Apple’s keynote diversity, and more.

    In the middle of the week, I talked with John Voorhees of MacStories about WWDC news but also a lot about microblogging. It may be the most I’ve shared about my latest project, all in one place.

    Yesterday, I recorded a short episode of Timetable. I wanted to capture what the trip to San Francisco each year means to me, outside of the conference itself. I find the week a good opportunity to reset and think about where my focus should be across my projects.

    → 7:55 AM, Jun 18
  • Finals, game 5

    Finals, game 5
    → 8:00 PM, Jun 13
  • Only taking my iPad Pro to WWDC

    I’ll be in San Francisco for WWDC, although as usual in recent years I won’t be staying all week. While out there I’ll be attending AltConf and other events, recording a podcast or two, and catching up on some writing.

    I probably should take my MacBook Pro to code on projects, but I never have time. And I’ve been working so much lately, I probably need a break from Xcode for a few days. So I’m going to travel light this time and only take my iPad Pro with me.

    I used my iPad Pro often when working from coffee shops and libraries earlier this year. I think I have a pretty good sense of what I’m productive with on it. iPhone and Mac app coding is out, but email, chat, writing blog posts, and even light web site maintenance are all fine, and those are the kind of things I do while traveling.

    That leaves podcast recording as the only question mark, but actually I’ve recorded every episode of Timetable using my iPhone specifically so that I could get used to recording away from my office. I wrote a few months ago about my microphone for Timetable. I’ll do the same thing when Daniel and I record our WWDC thoughts after the keynote, with editing on the iPad Pro.

    I’m excited about the conference. I’m looking forward to catching up with folks, the news from Apple, and — because I won’t even have my laptop — a bit of a break from the stress of thinking I should be programming.

    → 11:15 AM, Jun 10
  • App maintenance and subscription rejections

    Jason Snell closed his first take on App Store subscriptions with a question about iPhone app maintenance vs. web services maintenance:

    Whether Apple would actually reject a subscription-based app that doesn’t offer any functionality outside of itself, I don’t know. It sure wouldn’t be the first time there was a baffling App Store rejection. But does Apple really want to take the position that ongoing maintenance of a web service has value, but ongoing maintenance and development of an app does not? I don’t think it does.

    As I wrote about in my post yesterday, users can more easily see the hosting costs for a web service. They’ve been trained by a decade of paying for web subscriptions. Maintenance for the app itself has some differences.

    Think about how costs scale if an app becomes popular. A web service becomes expensive to run, often thousands of dollars each month. You could say that a developer’s time for app maintenance is also thousands of dollars, but it’s essentially fixed. Outside of customer support costs, the incremental cost to a developer for an app doesn’t increase in the same way it does for scaling a backend service.

    I hate that Apple has the power to reject our business model for a potential app. I’m now leaning more to the idea that Apple should approve nearly everything and let customers decide on the value. But there is a difference between maintenance of an app vs. a web service, and the services that are clearly appropriate for subscriptions will be the most successful apps using this new model.

    → 8:27 AM, Jun 10
  • Core Intuition 236 and app subscriptions

    We published Core Intuition episode 236 today, discussing the recent App Store announcements and a listener question about offices. We wrap up with plans for WWDC.

    There has been a lot of great blog posts and podcast episodes already on the App Store subscription change. I listened to Under the Radar 31 and the Release Notes special edition today and recommend both. The most confusion seems to be around what kind of apps are appropriate for subscriptions, where by “appropriate” I mean “what Apple will approve”.

    John Gruber also follows up at Daring Fireball on this question:

    Professional apps that require “a lot of maintenance of new features and versions” don’t fit either of those categories. Would Twitter clients like Tweetbot and Twitterrific qualify for subscription pricing? After talking to Schiller yesterday, I thought so. Now, I don’t know.

    As I mention on Core Intuition, apps that have a backend service with obvious hosting and maintenance costs — a music streaming service, an invoicing web app, or a blogging platform, for example — are easier for users to understand as needing to be subscriptions. Twitter apps are an interesting example because some are pure clients to Twitter’s backend, but many increasingly have their own app-specific services like timeline syncing or push notifications.

    For years Apple has allowed apps to use auto-renewing subscriptions. I had an iPhone app and companion web service that was approved by Apple for auto-renewing subscriptions, after I made the case for the service as a “cloud” archive. From section 11.15 of the App Store review guidelines:

    Apps may only use auto-renewing subscriptions for periodicals (newspapers, magazines), business Apps (enterprise, productivity, professional creative, cloud storage), and media Apps (video, audio, voice), or the App will be rejected

    From my experience and listening to other developers, I’ve had the impression for a while that Apple would essentially reject most auto-renewing app submissions by default. While we still don’t know what “all categories” means in the new announcement, I expect it means that there will no longer be a kind of blanket rejection. Apple will still reject many apps as poorly suited for subscriptions, though, and maybe that’s okay for now.

    (I’m conflicted on this point. John Gruber’s suggestion to approve everything and let the market decide is compelling and fits better with my instinct that the control should be in developers' hands.)

    “Subscription fatigue” is a real thing that I’ll occasionally hear from customers about. No one wants to pay $1/month to 40 different apps and services; it feels like a burden in a way that paying the same total price to just two apps at $20/month does not. Nevertheless, subscriptions are very powerful. Everything I’ve done over the last few years is to position myself to eventually have a recurring-revenue success.

    → 3:47 PM, Jun 9
  • Swift server benchmarks

    Interesting Swift web server article comparing Vapor, which I tested last week, to other web server frameworks:

    This first post will cover input, i.e. request data. Fetching input from a request, ensuring it is the correct type, and most importantly, not crashing. These are common tasks that most web developers deal with daily. All of the frameworks have their own unique way of doing these tasks–Let’s see how they contrast.

    There is some further discussion from fans of other languages in the comments. Overall I think the article was fair. I’m not sure about the focus on “crashing”, though. This seems like a carryover from pro-Swift arguments on the desktop or mobile, and it has less relevance on the web.

    For some web apps, it might be fine to throw an exception on bad input data, since it’s caught automatically and returned as a 500 error. I wouldn’t call that a crash anymore than I would call it a crash for a Mac app to present a generic error dialog on unexpected errors.

    → 7:37 AM, Jun 3
  • Core Intuition&#039;s 8 years and overselling WWDC

    It’s 2 weeks before WWDC, which means it was also 8 years ago that we published the first episode of Core Intuition. At WWDC that year, Apple showed off iPhone OS 2.0, MobileMe, and the iPhone 3G. The yearly cycle of improvements to the OS and hardware don’t look much different today, but Apple keeps rolling, and so the total changes since 2008 are massive.

    For as many years as I’ve been out to San Francisco for WWDC (and to San Jose before then), each year I have fewer expectations for the conference itself. Some years I don’t even bother guessing or dreaming about new features — I have no pressing needs, no critical missing APIs, no questions to ask Apple engineers in the labs — and I’m happily surprised by whatever Apple gives us.

    This year is a little different. It’s the first year that I can remember since the Mac OS X 10.0 and 10.1 releases where an Apple platform needed significant performance improvements to be usable for anyone except early adopters. The first couple versions of Apple Watch were ambitious on features, but now it’s time to do the less glamorous work of making the platform fast. I hope watchOS 3.0 will be the same kind of milestone that Mac OS X 10.2 was in that regard. (And like Mac OS X, I hope it can be done mostly in new software.)

    Back to WWDC the conference. I’m still thinking about the interesting venue change for Monday to the Bill Graham Civic Auditorium.

    In the discussion on Core Intuition 229 last month, I kept coming back to the idea that this change has to be about growing the conference to allow more developers. Since more people show up on Monday (press and business folks, for example, who have less interest in the technical sessions or labs), you could have a bigger space on Monday and then oversell the conference as a whole, knowing that some ticket holders wouldn’t be around later in the week back at Moscone West.

    Maybe that creates more problems than it solves because of packed rooms and long lines to get into sessions, though. Now that I’ve had a while to think about it, it seems unlikely that Apple would risk making the conference worse just to squeeze in another 500 developers.

    Could there be some creative layouts in Moscone West that Apple hasn’t tried yet? There are so many downsides to changing the venue that I want to believe it’s part of addressing the biggest issue with the conference: most people don’t win the ticket lottery.

    There’s still the problem of hotels. Linking to my post about not giving up on WWDC, John Gruber singled out Airbnb as a bad solution, since there just aren’t that many rooms available. That’s true. And even worse, potential last-minute cancellations make Airbnb less reliable. Where I said Airbnb, I should have just said “cheaper hotel”.

    (Alex Cash also has tips for saving money at WWDC. Casey Liss has a good post about rising hotel prices.)

    Nevertheless, I know some developers are using Airbnb this year, and I’d like to try it next year for a change of pace and scenery away from the conference. With the convenience of Uber, the risk of settling for a place farther away seems low.

    And finally, I’ve enjoyed many recent podcasts about WWDC. Two highlights: Under the Radar episode 24, where Marco Arment and David Smith share their thoughts on whether to attend the conference; and Thoroughly Considered 12, about not just WWDC but the value of attending or exhibiting at conferences as a company.

    → 10:54 AM, May 30
  • Saint Mary Cathedral

    Saint Mary Cathedral

    Spending the day in downtown Austin for a Rubik’s Cube competition.

    → 2:53 PM, May 28
  • Core Intuition 234 and Vapor

    We published Core Intuition 234 today, with a follow-up discussion on Swift, working toward software releases, and more. From the show notes:

    Daniel and Manton talk about the question of Swift’s dependence on Objective-C’s dynamism, how it should or will evolve, and their differences in philosophy about Swift and Objective-C. They also take stock of release discipline and managing customer disappointment with an app’s progress. Finally, they talk about the importance and difficulty of winding down old products.

    One of the points I brought up on the show — and which I’ve hinted at here on the blog before — is that web developers will push Swift to become more dynamic. There’s a long history of building web server frameworks like Ruby on Rails that depend on dynamically routing requests to controllers and views, and flexible models that automatically adapt from your database schema. These features tend to get messy when faced with a more static, strongly-typed language.

    There is good work being done in the Swift web community already, though. Today I spent some time building a sample app with Vapor, which is probably the closest I’ve seen someone get to the usability of existing web frameworks. I’m a little more optimistic now that we might eventually have a single language for server code and native apps.

    → 3:34 PM, May 27
  • 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!

    → 9:39 AM, May 24
  • Swift and sharp knives

    David Heinemeier Hansson has a great post today about Ruby’s advanced dynamic features. Some people would criticize Ruby (and Rails) for including “sharp knives in its drawer of features”, but David argues that it’s a worthwhile tradeoff to give developers such power and flexibility:

    There’s nothing programmatically in Ruby to stop you using its sharp knives to cut ties with reason. We enforce such good senses by convention, by nudges, and through education. Not by banning sharp knives from the kitchen and insisting everyone use spoons to slice tomatoes.

    Given the recent discussions from the Apple community, I couldn’t stop thinking of Swift as I read David’s post. I wouldn’t go as far as saying that Swift is a dull knife; there is a lot to like about the language, and I feel reasonably productive in it now. But David’s “paternalism” line nevertheless rings true to me, that the Swift compiler is trying to protect us from ourselves.

    → 10:36 AM, May 23
  • New Core Int, Technical Foul, and Timetable

    I somehow recorded 4 podcast episodes this week. We just published episode 233 of Core Intuition, where Daniel Jalkut and I talk about the announcements from Google I/O and compare the latest Swift 3 news to our experience going through previous Apple transitions. From the show notes:

    "Manton and Daniel react to Google’s I/O keynote, and weigh the threat of Allo to iMessage. They celebrate Apple’s WWDC promotion of 3rd party events, and the increasing speed of App Store reviews. Finally, they reflect on the announced delay in Swift 3’s planned ABI stability, and Daniel’s sudden FUD about embracing Swift."

    It was a big week for the NBA, too, with the first couple games of the east and west conference finals. On the latest Technical Foul, Ben Thompson and I recap round 2, especially the Spurs loss in 6 games to the Thunder:

    Ben and Manton are back geeking out about the NBA. This week we talk Manton through the Spurs loss, discuss OKC versus the Warriors, and whether the Cavs are good enough.

    And finally, I published 2 episodes of my microcast Timetable earlier in the week. Episode 22 was about dealing with recent stress — trying to see the bigger picture and focus on the good things. Episode 23 was about how to tell when it’s time to move on from a failed product.

    → 8:11 PM, May 20
  • Wanting an open voice assistant platform

    I’ve owned an Amazon Echo since it first shipped and it’s great. I also use Siri and like it, though I use it less often for the kind of random questions I might ask Alexa. But after watching yesterday’s Google I/O keynote, I can’t help but feel that eventually Google is going to be far ahead of Amazon and Apple in this space.

    Here’s John Gruber writing at Daring Fireball about the keynote:

    Google is clearly the best at this voice-driven assistant stuff. Pichai claimed that in their own competitive analysis, Google Assistant is “an order of magnitude” ahead of competing assistants (read: Siri and Alexa). That sounds about right.

    The problem with a voice assistant is that the better it gets, the more you want it to do. You continue to ask it more complicated questions, pushing at the limits of the assistant’s capabilities.

    Only Google has the expertise in web services and the massive amount of data to keep going beyond basic questions. I expect both Siri and Alexa will hit brick walls that Google will get past, especially in conversational queries that let the user drill down below the most popular, superficial facts.

    That is, unless Apple can open up Siri. Not just plugging in new trigger keywords like Alexa’s “skills” API (which would be a good start), but maybe a complete way to extend Siri with third-party code that feels seamless to the user. Surfacing voice-enabled apps automatically through natural queries might be on the same scale of app discoverability as we saw when the App Store launched.

    As Ben Thompson lays out well in today’s essay, Google faces a different internet than the open web on which they built their search engine. The default for all these new platforms — from Facebook to Siri to the App Store — is to be closed. There’s a narrow window, right now, for someone to take the lead on creating an open voice assistant standard built on the open web.

    → 9:23 AM, May 19
  • Apple&#039;s mindset on Swift dynamic features

    I let myself go off into a bit of a Swift rant on the latest Core Intuition. I’ve been doing a lot of Swift development recently. The more I use it, the more conflicted I am. I really love some parts of the language, but it’s not what I would have asked for as a successor to Objective-C 2.0.

    Remember when Steve Jobs came back to Apple and compared NeXTSTEP to constructing a building by starting out on the 20th floor, with so much of the foundation and common patterns already taken care of for you? Cocoa allowed apps to be built significantly faster than before. Steve said at Macworld Expo in 1997 that the goal was to “eliminate 80% of the code that every developer has to write for their app.”

    Swift is not like that. Swift’s priorities are correctness and stability. These have more indirect benefits to developer productivity than we saw going from Carbon to Cocoa.

    When Marco Arment wrote about Swift last month, he mentioned wanting a language designed for high-level apps:

    Objective-C wasn’t much better for this, but I think we could’ve done better than Swift if the most important goal in Swift was maximizing real-world developer productivity when writing modern Mac and iOS apps. Swift does a little of that, but gives up a lot to also serve lower-level, more clever, language-geekier goals.

    This weekend, Brent Simmons has a new post about the loss of dynamic features in “pure” Swift:

    What makes me nervous is Swift’s emphasis on type safety and on compile-time resolution. As long as we also have what we need from Objective-C, then that’s fine — then we still get xibs and storyboards, the Responder Chain, and so on.

    I hope Brent’s right that this will be a core part of Swift 4. Leaning on the Objective-C runtime feels like a temporary solution because it only exists on the Mac and iOS. Great web frameworks like Ruby on Rails, for example, can’t be built without relying on a more dynamic language. (And to me a great promise for Swift is being able to use it everywhere.)

    Daniel Jalkut followed up with a more optimistic post. He thinks Apple is on top of this, even as he acknowledges the clash between existing frameworks and the new language:

    Some major design priorities of the Swift language, namely type safety and compile time dependency binding, are at odds with the design priorities of 20 years of evolution in Apple’s frameworks. How and if that disparity will be reckoned by Apple remains to be seen.

    I think it’s telling that the “dynamic” keyword isn’t even mentioned in the main language guide. Anything related to Objective-C is off in a separate set of documentation, which includes discouraging statements such as “Requiring dynamic dispatch is rarely necessary” and “use of the performSelector APIs is discouraged”. For Swift to thrive in the future, as a great language for newcomers and long-time Mac developers, Apple will have to compromise on that mindset.

    → 11:50 AM, May 15
  • Over 50 kinds of root beer

    Over 50 kinds of root beer
    → 3:48 PM, May 14
  • SE/30 and the Mac Classic

    I finally read Stephen Hackett’s article over at iMore about using “SE” in Apple product names. He lists the Macintosh SE, iMac DV SE, iBook SE, and others. Most are forgettable, but the SE/30 feels the most like today’s iPhone SE: better internals in an old package.

    Stephen also pointed to a Macworld article with quotes about the SE/30 and other Macs. John Siracusa had this to say:

    Though future models with the original upright shape were released, they were all tagged with the derisive moniker Classic. The SE/30 bore no such shame. It was and is the undisputed king of the original, iconic Macs and, therefore, of all Macs for all time.

    The very first computer I ever owned was the Mac Classic. It was the cheapest Mac at the time, but still very expensive for us. I insisted that we get it despite the cheaper PCs that were more powerful and in color.

    What struck me when I later saw my friend’s SE/30 was that the Classic was actually slower and worse in a couple of ways than the SE/30, even though the Classic came out almost two years later. Still, I loved that little machine. Everything good that has happened in my life since can be traced back 25 years ago to when I brought it home.

    There’s a lot of hyperbole in the tech industry about creating products that make the world a better place. But most products just don’t have that big of an impact. To me, the Macintosh was an incredible, wildly divergent fork in the road — a choice leading to new friends and a new career, meeting my wife and starting a family. It’s hard to even imagine where the original path was leading.

    → 1:21 PM, May 14
  • Medium subscriptions

    Glenn Fleishman writes for Six Colors about Medium’s subscription features that will let publishers charge readers:

    It’s absolutely clear the revenue side is an experiment, and Medium labels it as such all over. There’s no guarantee it will work for its early partners or pan out in the long run. But it’s the only publishing option that combines so many things in one place without any over-the-top cost or commitment on the part of a periodical.

    While Medium is certainly doing a lot right, and I still think it’s not a bad place to mirror content, the “long run” Glenn mentions is really what we should think about when considering Medium. I have no confidence that Medium will last 5-10 years.

    If my whole business was based on blogging, why would I trust Medium to control something so crucial? With iOS development, we have no choice but to use the App Store. Writing on the web isn’t like that, and voluntarily giving up both control of the publishing platform and 20% of revenue strikes me as very short-sighted.

    → 11:12 AM, May 13
  • 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.

    → 9:40 AM, May 12
  • Client work and new podcasts

    As I mentioned in my wrap-up post about working from libraries, spending so much time commuting all over the city (and outside the city) had really burned me out. Over the last couple of weeks, I’ve overcompensated a little and have been working from home almost exclusively. I’ve also been catching up on client work.

    I recorded a new episode of Timetable this morning to try to capture this change in work focus. Talking into the microphone for 5 minutes actually helped me assess where I’m at with my projects, and what I need to adjust to continue to make this blog and my podcasts a priority.

    And speaking of podcasts, Ben Thompson and I published episode 3 of Technical Foul last night. We talk a lot about the wild last minute of Spurs/Thunder game 2, which I’m still thinking about even a couple days later.

    → 9:59 AM, May 4
  • Hiking back from Bull Creek

    Hiking back from Bull Creek
    → 8:37 PM, Apr 26
  • My new podcast about... basketball!

    It used to be that I would stay up until midnight working in Xcode. This year, it’s more likely that I’ll stay up until midnight watching late NBA games played on the west coast. I’ve loved this season, from Golden State’s record wins to being able to visit San Antonio a few times to catch Spurs games.

    So why not do a basketball podcast? Today, Ben Thompson and I released the first episode of TECHnical Foul. From the show notes:

    Welcome to the first episode of the TECHnical Foul, in which two wildly unqualified tech geeks geek out about the NBA. In this episode we debate 96 Bulls vs the 16 Warriors, Kobe’s final game, what makes the Spurs great, whether the Spurs can beat the Warriors, and a quick overview of the first round.

    We had a lot of fun recording this. If you’re a basketball fan, or just need some variety in your podcast subscriptions, I hope you enjoy it.

    → 1:48 PM, Apr 22
  • Don't give up on WWDC

    There’s a nice sale going on across several smaller, regional developer conferences right now. I think any of these conferences would be a great experience, so if you’re considering one you could save $100 by acting now.

    I wanted to comment on something Joe Cieplinski said about WWDC while linking to this promotion:

    Folks say that WWDC is the one time where everyone in our community can get together, but frankly, the price of hotels in San Francisco has made that statement a bit disingenuous. Many—if not most—of us can’t afford to make it to this party, so maybe this is no longer the party for “everyone.”

    Curtis Herbert also echoed some of these themes in a post:

    While it’s a shame to end the WWDC tradition, it makes sense to follow all the other technical communities out there and rely on smaller, more accessible and distributed, community-run conferences throughout the year. It’s a sign that our community growing up and leaving the nest. One city can’t hold us all anymore.

    I think it’s possible to go out to WWDC without spending a fortune. You can attend AltConf, find an Airbnb room for $150/night, and stay a few days instead of all week. I downgraded my expectations for WWDC and booked a cheaper hotel room a couple of months ago. It’s about how much you want to be there.

    In fact, I’d still argue that it’s less expensive to “attend” WWDC now because it has been proven how much you can get out of AltConf and other events without the $1600 conference ticket. When I went to my first WWDC back when it was held in San Jose (and the same could be said for the early years in San Francisco), hotels and flights were cheaper but it was pointless to attend without a ticket.

    I can’t go to every conference. This year I’ve picked 2: WWDC (probably without a ticket) and Release Notes (in September). I wrote about Release Notes last year and highly recommend it again.

    But I stand by the opinion that WWDC is worth preserving as the best place for everyone to go — with or without a ticket, with or without a fancy hotel room — because there’s room for thousands of more developers than at a small conference. I hope that Apple’s change of venue for the keynote and Monday sessions means they are trying to expand the conference to even more developers.

    I’m so excited about Monday’s new venue that I’m actually thinking about trying to get a ticket in the lottery, to experience what it’s like and what it means for the conference going forward. The main thing holding me back is that it seems wasteful if I’m not staying through Friday, when another developer — maybe someone who hasn’t attended before — could get that ticket instead.

    → 2:13 PM, Apr 20
  • Apple I history on Connected

    There was a nice bonus at the end of Connected episode 86: an interview with Henry Ford Museum curator Kristen Gallerneaux by Stephen Hackett. On the small number of Apple Is in existence, Kristen said:

    There are apparently 200 or so sold, and the locations today of about 46 of those 200 are known. What’s really special about ours is that is that’s one of the of the first 50 Apple Is that were ever sold, and out of that batch of the first 50, about nine of that batch are known to work. And ours works; it’s completely unmodified.

    The transcript is also available. If you’re an Overcast user, you can jump to the interview segment at about 70 minutes in.

    → 10:14 AM, Apr 19
  • Paid search and App Store profit

    Reacting to a Bloomberg article about Apple adding paid search results in the App Store, John Gruber writes:

    This sounds like a terrible idea. The one and only thing Apple should do with App Store search is make it more accurate. They don’t need to squeeze any more money from it. More accurate, reliable App Store search would help users and help good developers.

    The Bloomberg article almost makes it sound like there’s a 100-person team working on paid search. I doubt that’s true. More likely, there’s a team working on several improvements to the App Store, including better search.

    Daniel Jalkut is also very skeptical:

    It’s hard to see how paid placement would consistently benefit either Apple or its direct customers. It’s unlikely that paid listings would be used to highlight apps that are in line with Apple’s other goals for the store.

    He rightly points out that making money from the App Store is Apple’s secondary goal. It’s more important to have an ecosystem of apps that make the iPhone itself indispensable. As I argued in a blog post in 2011 about free apps and distribution, I don’t think the App Store should be a source of significant profit for Apple at all.

    And if we’re keeping score with old posts where I write not what Apple should do but what I wish they’d do, see “I hope iAd fails” from 2010. iAd is shutting down in June.

    I just can’t believe Apple would prioritize paid search over all the other App Store feature requests that developers have. So I prefer to ignore the paid search rumor and instead take away from this article just the good news: Apple has a new team focused on improving the App Store.

    → 9:20 AM, Apr 19
  • Libraries for 30 days wrap-up

    After trying to work from a new coffee shop I had never been to before, every day for 30 days, I loved the routine of getting out of the house so much that I set on another challenge: visiting 30 libraries. This proved to be more difficult, mostly because of the extra driving required, but I wrapped it up yesterday.

    I’ve put together a web page of all the libraries, with photos and links to the microblog posts for each day. The posts are also tagged with #newlibraries.

    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 now that it has come to it… I am really burned out on commuting. Finding new coffee shops and libraries has been a great experience. There are several wonderful places that I know I will return to again, and I never would have found them otherwise. I just need a little break from the forced routine of driving somewhere new each day. Maybe I’ll pick up the parks idea next year.

    → 11:41 AM, Apr 18
  • Spurs vs. Grizzlies, game 1

    Spurs vs. Grizzlies, game 1
    → 10:00 PM, Apr 17
  • Lion outside Windsor Park Branch

    Lion outside Windsor Park Branch
    → 8:26 PM, Apr 16
  • Taking the Apple Pencil with you

    One of the best pieces of advice that I never followed very well is that if you want to be a better artist, always have a sketchbook with you. That’s why I’ve been so excited about the Apple Pencil, since it transforms the tablet you might already have with you into a great sketchbook too. There’s only one problem: you have to actual remember to bring the Apple Pencil everywhere.

    Myke Hurley gave an overview on his blog about some of the additions he’s purchased to customize his Apple Pencil, like a clip, stickers, and this loop to hold it to the iPad Pro:

    Wherever my iPad Pro goes, I want the Pencil to be with it. So to make sure I didn’t have yet another thing to remember, I decided that I had to find a way to attach the Pencil to the iPad. And that’s when I came across the Leuchtturm1917 Pen Loop.

    And on the latest The Talk Show, Serenity Caldwell shares the tip of buying a $2 Micron pen and snapping off the clip to use on the Apple Pencil. See this tweet for what it looks like.

    Lately I had been carrying the iPad Pro around without a bag. This also meant leaving my Apple Pencil at home. While I don’t use my Apple Pencil every day, I want to. With a bag I can carry the iPad more easily and also always have a spot for headphones and the Apple Pencil.

    I ordered the Tom Bihn Daylight Briefcase and I’ve been using it all week. You can see it in this photo I took while setting up to work at a library the other day. I haven’t used a messenger-style bag in a long time, maybe in forever. (Apple handed out one to WWDC attendees years ago before they transitioned to the jackets phase of WWDC of freebies, but I gave most of my bags away.)

    So far I’m really enjoying having a bag that doesn’t feel oversized for the iPad Pro. It’s much smaller than my full backpack. I expect that it will be perfect not just around town but also for traveling light.

    → 11:59 AM, Apr 16
  • Siri and Core Intuition 228

    We posted episode 228 of Core Intuition this week. From the show notes:

    Daniel and Manton discuss the iPhone SE’s evident popularity, touch on the challenges of designing for extremes in screen size, and bemoan some of Siri’s shortcomings when compared to competitors. The two also discuss tax time as an indie software developer, weigh the merits of heading to SF for WWDC, and finally delve into some deep reflections about the psychology of not shipping in too long.

    We talked a lot about Siri and the Amazon Echo — the problems with both and where voice software may be headed. After we recorded, Daniel wrote a great post with additional ideas for using Siri with distance-based reminders, for example the ability to ask Siri while driving “remind me in 15 miles to get gas”:

    How would this be solved? By introducing a notion of distance-relative reminders in iOS and by extension in Siri. In the same way that Siri allows you set a reminder for a specific time or for a relative time from now, it should offer the same functionality for distance.

    I hope you enjoy the podcast. I’ve been thinking lately that maybe the secret with Core Intuition is that it’s not actually a developer podcast. It’s a tech podcast with major tangents into software development and business.

    → 1:48 PM, Apr 15
  • View source on the decentralized web

    Brewster Kahle has a post at the Internet Archive about getting back to the “view source” feature that made early web development so much more accessible than it is today. He thinks it can be achieved on top of a distributed web where all the HTML and JavaScript files are delivered to the browser:

    The decentralized web works by having a p2p distribution of the files that make up the website, and then the website runs in your browser. By being completely portable, the website has all the pieces it needs: text, programs, and data. It can all be versioned, archived, and examined.

    He mentions IPFS in particular, which I’ve written about before. The bottom line is that static HTML sites are more portable. They more naturally evolve not just from host to host as necessary, but also to a possible distributed future web. That’s why that — even though I still use and recommend WordPress — I have a static mirror of my site too.

    → 10:34 AM, Apr 15
  • Leander Public Library

    Leander Public Library
    → 8:04 PM, Apr 13
  • Bee Cave Public Library

    Bee Cave Public Library
    → 8:35 PM, Apr 12
  • Patience and impatience in the tech industry

    There’s a great line from an iPad Pro article by Ben Brooks, where he’s discussing how Steve Jobs was always conscious of shipping only Apple’s best work:

    The key difference between Gates and Jobs isn’t the vision, it’s the patience, or if you prefer the unwillingness to ship something which isn’t great.

    I’ve been thinking about the time just before the iPad was announced. We didn’t know what form it would take, how much it would cost, or even what OS it would run. At the time, I even wanted it to run Mac OS X. From one of my blog posts in 2008:

    The primary market for a Mac tablet is the millions of people who look at the Wacom Cintiq and drool. An Apple tablet has to run full Mac OS X because it has to run Photoshop, Acorn, and Painter.

    It’s easy in hindsight to say how wrong I was, that of course it should run iOS. And today I’d agree; iOS 9 on the iPad is great. But I thought a tablet would be particularly good for artists, and basing it on the Mac would be the only way to hit the ground running with a stylus and mature graphics software.

    That brings us back to patience, and how Apple rolls and iterates. It has taken 6 years from the original iPad introduction to the iPad Pros we have today that fulfill what I had hoped a tablet could be. Was it worth the wait? Yes. But that’s a long time, and a more impatient company might’ve taken a different path to get here, and they wouldn’t have been wrong.

    I’m not actually thinking about Microsoft here, but Amazon. Amazon is so impatient not just with hardware development but everything else that even overnight delivery for their customers isn’t fast enough.

    When I pre-ordered the Amazon Echo on a whim a year ago, I’m not sure that Amazon really had any idea what they were doing, whether it would flop or succeed, or if anyone would understand it. A year later, they own the market for this kind of device and it’s spread by word of mouth because the product is good. If Apple ever makes an Echo competitor it will be years from now and only because someone else proved the idea first.

    Patience is good, and I’m glad that Apple has a great balance between innovating on brand new products and perfecting existing concepts. But I’m also glad that not every company is as patient as Apple. I think the industry makes better progress when some companies aren’t afraid to ship something half-baked too early.

    → 12:01 PM, Apr 11
  • 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.

    → 9:20 PM, Apr 10
  • Pond view at Lake Travis Community Library

    Pond view at Lake Travis Community Library
    → 4:42 PM, Apr 9
  • Timetable episodes 19 and 20

    I published 2 new Timetable episodes this week, with a shared theme around Kickstarter projects. They’re both just 5-6 minutes long.

    Episode 19 is about how I finally sat down to record a video for my upcoming Kickstarter project. I still have editing to do, but I’m already feeling a lot better about actually launching this.

    Episode 20 continues the discussion of Kickstarter, starting with my reaction after receiving the art book from Loish yesterday. I was really impressed with how well it was produced. Anytime I see something of such high quality I’m inspired to do a better job with my own work.

    → 3:29 PM, Apr 6
  • Navigation controllers on the Mac

    Brent Simmons has a good post about the pros and cons of bringing UIKit to the Mac. On the differences between iOS and Mac development, though, one point did stand out for me:

    And there are things Macs don’t have at all — navigation controllers, for instance, since they don’t make sense in a context where you can just show the hierarchy via multiple panes.

    Brent’s right that most Mac apps don’t need navigation controllers. I don’t think I’d have any use for them in my Mac app, Clipstart, for example. But navigation controllers are becoming more common in Mac apps, starting with Twitter apps especially. I expect an important part of Iconfactory’s work on the Chameleon framework to bring Twitterrific to the Mac was supporting navigation controllers.

    I’ll always consider myself a Mac developer first, even though most of what I do these days is on iOS and for the web. I’d definitely welcome UIKit for Mac. I’m getting closer to announcing a new iPhone app and web platform, and while I have a Mac version in development too, I can’t justify the time right now to finish it. UIKit for Mac would make that decision much easier.

    → 10:43 AM, Apr 5
  • Sculpture outside Ruiz Branch

    Sculpture outside Ruiz Branch
    → 7:24 PM, Apr 4
  • Tickets for Release Notes 2016

    I’m registered for the Release Notes conference, coming up later this year in Indianapolis. This will be the only conference I attend this year outside of another ticketless WWDC week. If you didn’t go last year and want to know more about it, check out the web site or listen to episode 151 of their podcast.

    One of my favorite blog posts on this site from last year was my review of the conference, because I think it both described the conference itself and also captured that inspired feeling you get when you’re heading off to the airport and your head is buzzing with ideas. And because it’s a blog, where I allow myself to be informal, it also has the meandering narrative of the everyday — a stop for coffee, a conversation with an Uber driver. My memory of the conference wouldn’t be complete without those things.

    I’m looking forward to visiting Indianapolis again. I may also look at flying into Chicago and taking the train down, then flying out. Sounds like some people did that last year, and I think it would make a great start considering the venue at Union Station. We’ll see if the schedule works out.

    → 11:14 AM, Apr 4
  • Books rule

    Books rule
    → 8:22 PM, Apr 3
  • Tesla Model 3

    John Gruber, writing about the Tesla Model 3 unveiling:

    The crowd enthusiasm was palpable. Tesla took over 115,000 pre-orders before anyone had even seen the car. That is trust — and rather incredible for a car that they don’t intend to ship until the end of next year.

    At the beginning of the presentation, Elon Musk references his “master plan” blog post, where he outlined Tesla’s plan to start with the luxury market and then use that money to build a less expensive car, and then use that to build an even more affordable car. That blog post was 10 years ago.

    Vision takes time to execute. It’s incredible to reflect on the scope of what Elon Musk’s companies have accomplished. As I wrote about last year, Elon will be admired by my kids' generation in the same way that mine was inspired by Steve Jobs.

    → 11:15 AM, Apr 2
  • Coffee shops in Portland

    Following a similar pattern as my 30 days of coffee shops, my friend Jon Hays has started mapping out a challenge to hit a month of coffee shops in Portland. The twist on his visits will be to focus mostly on the east side of Portland, and to only have lattes. First post: Cathedral Coffee.

    Jon is documenting the coffee shop visits on his new microblog. An indie microblog is a great framework for posting this kind of thing, without the overhead and pressure that many people feel when faced with writing full-length blog posts.

    See also: the 500 latte photos project by Aron Parecki, which looks like it wrapped up at a (still impressive) 312 lattes; and Tiny Challenges, a site and podcast from Daniel Steinberg and Jaimee Newberry about trying something new each day for a month.

    → 2:21 PM, Apr 1
  • Miitomo and Wii Transfer

    On episode 18 of my Timetable podcast, which I just published this morning, I mention the new Nintendo game Miitomo. Federico Viticci also wrote about it today:

    I’ve been keeping an eye on Miitomo – I still don't completely understand it, but I'm intrigued by the premise of a friend-based network with mini-games and the ability to collect coins. Those coins can then be used to claim rewards and redeem other Nintendo-related content such as games and customizations. I'm curious to see how Miitomo will perform outside of Japan.

    For a several years between 2006 and 2010, I sold and actively worked on a little Mac app called Wii Transfer. It was the first time I realized that I could make a living selling Mac software, even though it didn’t always have great sales consistently by itself. To this day, one of the features I’m most proud to have ever written is the Mii export, which could sync Mii data over Bluetooth from the Wii remotes and render it to let you save your Miis as PNG files on your Mac.

    I’ve often mused on Core Intuition that I stopped selling the app too soon. At one point I worked on a companion app to the Nintendo DS with similar themes, but didn’t ship it. And I considered building a version for iOS just with the Mii functionality.

    From a blog post in 2012, announcing that Wii Transfer would no longer be available:

    I’m retiring Wii Transfer to focus on my other apps. It’s not that it doesn’t sell; it still does. It’s just that it’s not an app I actually use anymore. By officially shelving the whole project, I hope to remove a psychological burden of sorts — to no longer worry that I’m ignoring an active product.

    I’ll never know if it was a missed opportunity — a mistake for the direction of my indie business to stop selling something that people liked — or the right call to refocus around what I actually cared about. In any case, I’m glad Nintendo is doing something new with Miis. As I play with Miitomo, there’s a part of me that regrets not doing more with Nintendo-compatible software while I had a competitive head start.

    → 12:08 PM, Mar 31
  • 512 Pixels on YouTube

    Stephen Hackett loves old Macs. (And iPhones and iPods and Newtons.) His fascination with old Apple hardware and the passion to share it with a larger audience — many of whom weren’t around for the dark days when Apple was doomed — is one of the things I love most about reading 512 Pixels.

    He’s slowly been expanding into video production with a channel on YouTube. The latest video covers the iPod Shuffle, the tiny iPod without a screen that Apple still sells. At just $49, it’s not much more expensive than a long USB-C cable and may be the best bargain in Apple’s lineup after the $399 iPhone SE. Stephen writes about the original Shuffle:

    The first Shuffle was built like a glorified USB thumb drive. This new player was smaller than a pack of chewing gum, and built around the concept of shuffling your music. There was no need for a screen or a true clickwheel. If you wanted to listen to music in order, the switch on the back could be set to continuous playback.

    Ah, nostalgia. One of the reasons I blog at all, and have been for 14 years now, isn’t so much for today’s audience but tomorrow’s. Even the most mundane blog posts take on new significance with a few years' distance. Old technical topics have surprisingly poor representation on today’s web, as linkrot sets in.

    I’m looking forward to what else Stephen has planned. I know from the Connected podcast that lately he has been trying to collect all the different original iMac colors. (Two other podcasts that are worth a listen for an additional trip down memory lane: The Record and Simple Beep.)

    → 10:57 AM, Mar 30
  • Get one thing done today

    Natasha the Nomad has a post about prioritizing the “one thing” that has to be finished today, even if everything else slips:

    When I wake up (or the night before), I think "What is the one thing that I can do today to feel like I had a successful day, even If I nothing else gets done today". No matter what, I end up getting that one thing done.

    I find this kind of approach really useful. Saying you’re only going to finish one thing is admitting the reality that for many days, if you’re unfocused or juggling too many tasks, there’s a lot of “work” but nothing gets done. When I work out of the house in the morning with my iPad Pro, my goal is equally simple: publish a single blog post. If I can take care of email, edit other draft posts, work on planning notes for a project, etc. — that’s great too.

    → 11:27 AM, Mar 29
  • Working from Laura Bush Community Library

    Working from Laura Bush Community Library
    → 11:20 AM, Mar 29
  • Podcasts, showing up every week, and why 2.0 succeeds

    When I went to Open Coffee Club during SXSW week, I met several company founders and investors in Austin, and one was also an iOS developer. I usually do a poor job of promoting my own work in person, but I somehow managed to plug my Core Intuition podcast.

    He hadn’t heard of the show before, and when he pulled it up to subscribe his comment was something like: “wow, you’ve been doing this for a long time”. It’s true. Daniel and I started the podcast in 2008. We only have 225 episodes, because we published episodes less frequently back in the old days, but I’ve always been proud of our consistency with the show format going back to the very beginning.

    And it made me wonder: is there another Mac or iOS developer-focused tech podcast that has such a long history? Or really, many tech podcasts at all? The ones that come to mind are The Talk Show, which started in 2007, and This Week in Tech, which started in 2005.

    It’s another reminder to me that a big part of success is consistently showing up to work. If you’re always starting over, you can’t build on anything and take it further. The secret with the “version 2.0” of most apps isn’t that it has new features; it’s just that it exists at all.

    In a couple months, just as WWDC is about to roll around, we’ll celebrate our 8th anniversary of recording Core Intuition. Our audience keeps growing, which is amazing, but there are still a lot of people who have never heard of the show. If you like what we’ve been doing, consider telling a friend, or posting a tweet or blog post about the show.

    We expanded to 2 sponsors per episode this year because we wanted to grow the podcast — to commit more time and resources to both recording and to companion web sites like the jobs site. I think 2016 will be a great year and I’m happy that Core Intuition is a key part of helping me stay independent. Thanks for your support!

    → 11:49 AM, Mar 28
  • Take a book, return a book

    Take a book, return a book
    → 4:19 PM, Mar 27
  • 30 days of libraries, week 1

    After wrapping up 30 days of new coffee shops, last week I started visiting a library every day to work. Libraries and coffee shops don’t have that much in common, but they do share a couple basic traits that are necessary for working on a laptop or iPad: wi-fi and tables. In fact, I’ve found that it’s even easier to find an open table or couch in a library than in a busy coffee shop.

    So far, so good. In the first week, I’ve visited Cedar Park Public Library, Wells Branch Community Library, Little Walnut Creek Branch, North Village Branch, Old Quarry Branch, Howson Branch, Westbank Community Library, and Yarborough Branch.

    I also heard from readers who wanted to see more than the text microblog posts I did for coffee shops, so I’ve been trying to take more photos. These photos are tagged with #newlibraries too, so they’ll show up together with the library text posts. (Photos can be browsed over the web, but they don’t show up in the default RSS feed. The microblog posts also have their own feed.)

    As I mention on episode 15 of Timetable, working out of the house in the morning helped provide some structure to the work day. I’d use the morning for writing blog posts and catching up on email, and the afternoon to focus on code. For libraries, I’m going one step further and only bringing the iPad Pro with me. This means that I’m using a small range of apps — Editorial, Mail, Safari, Slack — and reinforces the idea that I’m supposed to be writing.

    → 11:09 AM, Mar 27
  • Getting press

    As I mentioned when I first linked to Studio Neat’s Obi project on Kickstarter, I enjoyed the Thoroughly Considered podcast that came out of that endeavor. It’s now one of my favorites.

    On the latest show, Dan and Tom and Myke talk about the press: getting press for your product, communicating with press folks, and the impact of being featured in the press. Because Studio Neat makes physical products and not just software, their take on these topics is always good.

    While I’ve blogged from time to time about the press, there’s a lot that I get wrong or don’t make time for. I was impressed with David Barnard’s promotion for Rando, a new iPhone app that was a joint venture with David, designer Rick Messer, and Jonathan Hays and Ryan DeVore from Silverpine Software. The app got a lot of great press coverage. Even the reviewers who weren’t convinced they’d use the app couldn’t help but recommend that readers download it. Not just because of its novelty, but because David framed the app with such a clear story.

    Self-promotion is hard for many of us. I try to remind myself that journalists want something interesting to write about. The community as a whole benefits when writers have good stories and developers have good traffic to their apps.

    One of the approaches I’ve been trying with my upcoming microblog platform is to write about related topics for months before the project is officially announced. It’s great because these are things I would want to write about anyway, regardless of having an app to promote, and so the heightened level of interest from beta testers and bloggers is like a bonus. Now I just have to actually ship the product while the timing is right.

    → 4:32 PM, Mar 25
  • Westbank Community Library

    Westbank Community Library
    → 3:30 PM, Mar 25
  • Core Intuition 225

    Episode 225 of Core Intuition is out now. We talk about the new iPhone and iPad news from Monday’s Apple event, plus Swift. From the show notes:

    Manton orders his dream phone, the iPhone SE. Daniel reflects on the growing allure of Swift, and the two discuss the risks of either adopting new technologies too soon, or holding on to the past for too long.

    Also there’s this line from Daniel in the podcast that I like:

    We have to be tuned into the future and tuned into the past to really do great work.

    We pull in some history from Daniel’s time at Apple, and from our experience building Mac apps in the 1990s and early 2000s, and how it relates to the current Swift transition. Hope you enjoy it.

    → 4:44 PM, Mar 24
  • Charging my car at the library

    Charging my car at the library

    At the Howson Branch.

    → 3:07 PM, Mar 24
  • Time to rethink blog comments

    Twitter has lost some of what made it special for communities 5 years ago. I’ve noticed a few trends:

    • Twitter’s 140-character limit and easy retweeting encourage and amplify negative tweets. Sincerity is less common. Everything is an opportunity for a joke.
    • Widely followed, long-time Twitter users don’t find the joy they used to when interacting with followers. Some have retreated to private Slack channels, at the cost of public discussion and approachability.
    • Developers have never completely forgiven Twitter for crippling the API. This doesn’t directly impact most users anymore, but it’s a backdrop that gives every new Twitter feature a tone of distrust. Progress is slow.

    Meanwhile, blog comments have slowly been killed off over that same period. The rise of social networks, combined with the technical problems of fighting blog comment spam, pushed most bloggers to prefer answering questions on Twitter.

    Becky Hansmeyer writes about the intersection of these problems — that some Twitter users avoid public discussion, but most blogs no longer have comments to fall back on — by pointing to a post from Belle Beth Cooper:

    “Belle’s post really resonated with me because it reminded me of something I think about a lot: when an ever-increasing number of blogs and media outlets are disabling comment sections, where do decent, thoughtful people bring their discussions? I only offer readers one way to contact me on this site, and it’s via Twitter. But what if, like Belle, you no longer use Twitter (or never did in the first place)?”

    We didn’t realized how much we lost when we turned our backs on blog comments years ago. Just look at one of Daniel Jalkut’s blog posts from 10 years ago, which he and I discuss on an upcoming episode of Core Intuition. 53 comments! And they’re all preserved along with the original content. That’s difficult to do when comments are spread across Twitter and easily lost.

    It’s time to take what we’ve since learned from social networks and apply it the openness of cross-site replies. That’s why I want to support Webmention. As Becky mentions, Civil Comments look great too. I think we can encourage both in parallel: distributed comments like Webmention for sites that can support it and better centralized comments like Civil.

    → 1:24 PM, Mar 24
  • Wells Branch Community Library

    Wells Branch Community Library
    → 4:40 PM, Mar 23
  • Sticking with the big iPad Pro

    I’ve been conflicted about which iPad Pro to use ever since the 10-inch rumors started. If both sizes had been available right away, I think I would have bought the smaller version. Small is convenient; I still really like and use even the iPad Mini. But there was only one iPad Pro when the Apple Pencil was introduced, so I bought that one.

    Luckily the 13-inch iPad Pro still has some nice benefits. More room for split-view apps, of course, but also 4 GB of RAM compared to the new iPad Pro’s 2 GB. Federico Viticci is sticking with the big one:

    2 GB of RAM was one of the first things I heard about the new device yesterday, and part of the reason why I’m going to stick with the 12.9-inch Pro. In addition to a more comfortable iOS experience, I like knowing that I'm using the most powerful iPad hardware currently available (I don't count the camera as essential to what I need to do on an iPad).

    I realized this week that I was wasting time wondering which iPad is the best for me. It’s the ol' paradox of choice. So to cement the decision, I went by the Apple Store yesterday and picked up a Smart Keyboard for the 13-inch. I’ve been meaning to get one for months, and now that I have it, it makes even less sense to trade in my iPad for a different one. (The keyboard really does transform the iPad. It’s great.)

    → 11:05 AM, Mar 23
  • iPhone SE sales potential

    John Gruber runs down the list of yesterday’s Apple announcements. On the iPhone SE, he recognizes that it’s a great device especially in the short term, before the iPhone 7 is released:

    If you listen to my podcast, you know how ambivalent I remain about the physical size of the 4.7-inch iPhone 6 and 6S. I was really hoping that the iPhone SE would effectively have iPhone 6S specs — CPU and GPU performance, and similar camera quality. That seems to be exactly what Apple delivered. I honestly think this is the phone I’m going to use for the next six months.

    Jason Snell follows up on the Dan Moren post I linked to by also covering the new products. Highlighting the sales potential for the iPhone SE, Jason writes:

    In the past year, Apple has sold 30 million 4” iPhones, out of around 230 million total. That’s only 13 percent of the total, but it’s still a very large number of phones—and this, during a year when the most modern four-inch iPhone Apple sells was introduced in the fall of 2013. Is there room for the iPhone SE to be 20 percent of Apple’s total iPhone sales? I think so.

    I keep thinking about the iPhone SE price: $399 for essentially the power of a 6S, which is $649. That’s just a great value. I’ve said on Core Intuition recently that while the 6S and upcoming 7 will always remain the most popular phone, I think the SE could hold its own with the 6S Plus in units sold. Now I wonder if it could even surpass it.

    According to David Smith’s stats, the Plus versions represent about 15% of active devices 4-inch or bigger. That share goes up to about 20% if you exclude older devices no longer for sale, like the 5 and 5C. That seems about right to me. If you sat around an Apple Store and watched 10 people buy iPhones, I’d be surprised if more than a couple were the Plus. Starting next week, a couple of those iPhones could be the SE, too.

    → 2:01 PM, Mar 22
  • Apple event non-product focus

    Dan Moren writes for Six Colors about the structure for the 1-hour Apple event today, of which only about half the time was spent on new products:

    "If the Apple-FBI fight isn’t yet about public opinion, it probably will be if the matter ends up going to Congress. So it’s no surprise that Tim Cook is going to use his bully pulpit to push Apple’s track record on the welfare of its customers and the world at large, rather than how many products it’s sold and how much money it’s made."

    I’d like to see this continue at future events. Leave the record sales numbers for the finance call, and instead focus on what good Apple is doing because they are big, not just how they are big. Even though I own some Apple stock, I do not personally care that much about the precise magnitude of iPhone shipments this quarter.

    As for the new products, nothing to complain about. Since the $10,000 Apple Watch Edition didn’t get a $50-dollar price drop like the Apple Watch Sport did, guess I’ll skip that purchase and get an iPhone SE instead.

    → 3:30 PM, Mar 21
  • Photo blogging follow-up

    As I’ve written about already, I now post photos to my own site in addition to Instagram. I use the Workflow app to make this easier, automatically uploading a photo and making a new blog post for it from iOS.

    Ryan Toohil has taken my rough workflow and improved it, adding support for prompting for the photo title, fixing the photo’s orientation, and a better dynamic folder name based on the date. You can see his updated workflow here.

    I still have a lot to learn about using Workflow. It’s the kind of app that you can only really understand the potential for after diving in with a real problem. Now I find myself looking for more ways I can use the app.

    I’ve also finally read Federico Viticci’s excellent intro to Workflow over at iMore, which includes this advice:

    “When I was new to Workflow, visualizing the vertical flow of actions before building the stack was my biggest hurdle in getting started. I've since developed a habit that comes in handy every day: if I already know what a workflow should do at the beginning and at the end, I place the first action and the last one immediately on the canvas. Then, I only have to figure out how to go from Point A to Point B, dropping actions between those two as I play around with different ideas.”

    Of course, Federico has written many times about Workflow. He has an article about using Workflow to post to WordPress, and tips and example workflows in the MacStories Club email. His podcast Canvas with Fraser Speirs also routinely discusses workflows.

    → 10:17 AM, Mar 20
  • Reading Peter Pan

    Reading Peter Pan

    Outside the Cedar Park Public Library.

    → 4:45 PM, Mar 19
  • What&#039;s next after 30 days of coffee

    Yesterday I wrapped up my endeavor to visit a new coffee shop every day for a month, making sure it was a place that I had never been to before. Every day I published a short microblog post about my visit. As I was nearing the end of the 30 days, I felt a little bummed out that it would be coming to an end. It was a lot of fun and gave my day a good structure.

    I knew right away that I wanted to fill the next 30 days with something else, but probably not with drink or food again. I had a few ideas, including one outside that will be be better when the weather gets warmer. For this next month, though, I’ve decided to work from libraries.

    So that’s where I am right now. Day 1 of 30, sitting in a comfy chair typing on my iPad at the Cedar Park Public Library. It’s a nice space and they even have an “internet cafe” outside the main books section. I’ll be trying to follow the same routine as before: morning out of the house for writing, afternoon usually back at my desk for coding. And as before, I’ll blog each day and tag all the blog posts. Here we go!

    → 2:07 PM, Mar 19
  • Core Intuition 224

    We posted episode 224 of Core Intuition today. From the show notes:

    "Manton and Daniel discuss Apple’s revelation that Cookie Monster uses an iPhone, consider the Amazon Echo as the next big technology platform, and catch up with Manton’s successful 30 days of Austin coffee challenge."

    I like this episode because it touches a little on tech industry and business themes that we weren’t planning to talk about, so it captures whatever our gut feelings were on those topics. And as we talk about at the end of the show, I did end up wrapping up the coffee shop visits today. I’ve updated the coffee shop page on this site with the final list.

    → 4:11 PM, Mar 18
  • Buytaert on the open web

    Dries Buytaert, founder of Drupal, gave a talk at SXSW this week and wrote a blog post about saving the open web from large, centralized platforms:

    “I worry that some of these platforms will make us lose the original integrity and freedom of the open web. While the closed web has succeeded in ease-of-use and reach, it raises a lot of questions about how much control individuals have over their own experiences.”

    Matt Mullenweg linked to it and added: “I agree with and endorse basically everything in that post.”

    → 3:39 PM, Mar 17
  • Lady Bird Lake during SXSW

    Lady Bird Lake during SXSW
    → 2:23 PM, Mar 15
  • SXSW and designing for Apple Watch

    As I mention on the latest episode of Timetable, I haven’t attended SXSW in several years. I still think it’s right for me to skip it, but then sometimes I’ll hear about UX and iOS panels going on at SXSW, and I’ll remember some of the great parts of the conference that I do miss.

    Conrad Stoll spoke on a panel at SXSW this year about his experience building Apple Watch apps. He’s had a few great blog posts recently, about both Apple Watch user interface design and also one on designing in Swift. For planning what features to include in your watch app:

    “When it's time to gather around a whiteboard and start designing your Apple Watch app, draw all of your features and start discussing some of your least obvious ones. It’s very likely that one of them represents a better use case for the watch. If you start with the secondary features you might realize that focusing there can actually improve the utility of your overall product.”

    Blogs like Conrad’s are a great reason to keep using RSS. He’s not posting every day so you may forget to check the site, or miss the links on Twitter if they aren’t tweeted or retweeted when you happen to be paying attention. The best way to guarantee you won’t miss it is to subscribe in an RSS reader.

    There’s a related side discussion on the Bill Simmons podcast about reading headlines instead of full articles. There’s too much information out there, and it moves too quickly, so we’ve trained ourselves to just scan headlines and comment on Twitter without going deep. That leads to increasingly ridiculous click-bait titles as publishers try to grab our attention. The only way to fight back against that trend is to slow down and read a few thoughtful essays in RSS, or work through the queue in Instapaper.

    → 1:15 PM, Mar 15
  • Blog when you disagree

    The echo chamber. We only follow people who we already agree with. We only jump on the bandwagon of snark and ridicule when it’s already the accepted narrative, and thus safe to be part of the mob.

    But sometimes you’ll find an area where you aren’t completely in line with the crowd’s opinion. There’s a topic that keeps coming up for which you have something to add. The default story is missing an important angle.

    When you disagree, that’s what you should write about, and you should post it to your blog. 140 characters thrown against wave after wave of mainstream opinion tweets will be drowned out. A blog post isn’t a cheap opinion; it’s a statement that what you think matters.

    → 2:16 PM, Mar 14
  • Two new episodes

    We posted episode 223 of Core Intuition today. From the show notes:

    "Daniel and Manton discuss strategies for filing and organizing bugs. They talk about the expected iPad and iPhone announcements at Apple’s March 21 event, and they follow up on discussion about apps that delight and take their own problem domains seriously."

    I also posted episode 16 of Timetable. On this quick 3-minute show, I talk about trying not to panic when things go wrong, with a couple examples from this week.

    → 4:54 PM, Mar 11
  • Ulysses iOS missing Dropbox support

    After I blogged about Ulysses for Mac, a couple people told me that an iPad version was coming soon and that it was great. That new version shipped this week. I put down $20 immediately even before reading the positive MacStories review by David Chartier.

    Unfortunately I can’t use it much because it has no native Dropbox support. For a market that has literally many dozens of Dropbox text editors, I didn’t consider that Ulysses would ship without something so integral to my writing workflow.

    (The Mac version doesn’t have this problem because of the concept of “External Folders”. I simply add my Dropbox notes folder to Ulysses on my Mac and everything syncs.)

    Last month I wrote a post called iCloud is too opaque, in which I made an argument against having important text files and photos synced to a backend that allows no visibility when things go wrong, and no compatibility with other apps. Ulysses for iOS falls into this trap. Its use of iCloud is private to the app, unlike iCloud Drive or Dropbox which are accessible from other apps.

    I know I’m not the only one who feels this way. The FAQ for Ulysses spends considerable space trying to explain away their lack of Dropbox support, even attempting to pin the issue on Dropbox instead of Ulysses itself.

    The Soulmen, makers of Ulysses, are talented designers and developers, and I’m typing this in Ulysses for Mac because their app has a great mix of features and attention to detail. I respect that they’ve grown the company to 11 people already. But closed syncing solutions aren’t a good choice for exclusivity. Having cross-platform syncing across competing Twitter apps is why I created Tweet Marker, so you can be sure I want the same for my text documents.

    → 12:13 PM, Mar 11
  • Apple Pencil and sequential art tech reviews

    Serenity Caldwell has a fantastic, hand-drawn review of the Apple Pencil for iMore. It reminds me of Scott McCloud. (I blogged about his book Understanding Comics about 13 years ago.)

    I’d actually love to see this graphic review style used for other products too. It nicely balances against the trend of long written reviews. Both could have their place.

    As for Serenity’s conclusions, I think you’ll hear widespread agreement from artists: the Apple Pencil is significantly better than any other stylus. The palm-rejection alone is reason to get one.

    → 2:58 PM, Mar 8
  • Blogging your photos

    Colin Devroe started microblogging on his own site, with separate sections for statuses and photos:

    “I want to post content to my own personal site and not through closed social networks — because I want to keep control of everything I create forever. [...] This doesn’t mean that I won’t be posting to Twitter or Facebook or Instagram, but that everything that I post there will originate here on my site.”

    It’s the photos and their RSS feed that caught my attention. Others have done this too, but for some reason I rarely post photos here on my own site. I’ve stuck with using Instagram instead.

    I need to change that. I do like the Instagram app, though, so I’m going to keep using it. I’ll just copy the photos over to my site as well, and I’ll use Workflow on iOS to help automate it. The basic steps are:

    • After posting the photo on Instagram, copy the caption to the iOS clipboard. This will be the title of the blog post.
    • Select the Instagram-edited image in the Photos app and run the workflow.
    • Workflow makes a filename based on the title, with some simple substitutions. Lowercase, spaces become underscores, and drop some characters.
    • Transmit gets launched and I confirm the upload to my own server.
    • Workflow creates a WordPress blog post with an img tag and the relevant metadata.

    It’s not bad. You can see the workflow here. I’ve uploaded a bunch of my most recent Instagram photos this way. I’m not sure whether I’ll go back and mirror all the old ones.

    These photos live under a new Photos category. I’ve excluded this category from the main RSS feed that I use for cross-posting, so they won’t automatically go to Twitter. You can continue to follow me on Instagram if you prefer that.

    → 1:16 PM, Mar 8
  • Comics and prints for the kids from Staple! Expo

    Comics and prints for the kids from Staple! Expo
    → 3:46 PM, Mar 7
  • Slow transitions in watchOS

    Much has been made of the Apple Watch not being fast enough. It’s too slow for full iPhone-like apps, of course, but that doesn’t bother me because I think the watch is pretty great at its core features. But I’ve noticed that it’s slow even for some of the simple stuff, and I don’t think this can be blamed on hardware alone.

    Take notifications, for example. There are several distinct steps to notifications after you receive one:

    • Tapping a notification.
    • Waiting for it to load, which is an animated transition.
    • Optionally scrolling to the bottom to read it all.
    • Actually tapping Dismiss to get rid of it.

    There’s a tiny lag between all of these. I frequently can’t scroll right away, as if it’s not responsive until the animation completes. The Dismiss button also doesn’t seem to be enabled immediately, requiring a 2nd tap before it “clicks”.

    I bet these are solvable with a software update. Shorter animated transitions or pre-loading notification text might go a long way to improve the experience.

    → 10:30 AM, Mar 4
  • 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.

    → 12:54 PM, Mar 3
  • Concerned about user-generated content

    On the latest Under the Radar podcast, Marco Arment and David Smith talk about ways to make your app more robust. That includes tips for scaling your app with a lot of data, and also dealing with potentially hostile user data. It’s that last point that I’ve been thinking the most about lately.

    With the experience of building Tumblr and Instapaper, Marco is clearly now hesitant to ship app features that accept arbitrary user-generated content, because a small indie company just doesn’t have the resources to deal with spam and abuse. Instead, he suggests outsourcing whenever possible. For example, letting Apple accept and reject podcasts, and basing the Overcast podcast directory search on that already-vetted list.

    Let’s say you’re building a Twitter-like service. As we all know, hate is widespread on Twitter. At times, it seems impossible to even have a G-rated Twitter experience. But the problem is less that users can publish terrible tweets, and more that it is so easy to be exposed to those tweets with search, trending topics, retweets, and replies.

    As I work on my microblogging project, I’m trying to be aware of these points in the platform where bad content can leak out. So I don’t have global search or trending topics. I also don’t make it easy to stumble upon random users. But I do have replies, which by default will currently go out as push notifications if you have the iPhone app installed. It’s that area that I should focus my attention.

    Two options that come to mind for minimizing abuse in replies:

    • Don’t allow replies from people you aren’t following. This solves the problem, but it comes at the expense of discussion. It removes the accessibility that many people love about Twitter’s asynchronous following model.
    • Quarantine or attempt to classify replies so they don’t bubble up in your timeline or as notifications by default. This would be like an over-aggressive email spam filter. Difficult to get right and possibly routed around by clever microbloggers.

    After listening to Marco and David, and reviewing the full scope of what I’ve been trying to build, I’m pretty concerned about this. I’m looking at Akismet, and other metrics internal to my app for judging content and suspicious user accounts, but I may be a little in over my head on this issue.

    → 12:00 PM, Mar 2
  • Essays vs. microblog posts (and the microcast)

    Starting back in September 2014, I added microblog posts to this site. These are defined as short posts without a title. They have their own RSS feed, and they’re automatically cross-posted to Twitter and App.net.

    In that time, I’ve posted about 300 microblog posts and about 230 essays, although many of my longer posts are really just a few paragraphs and a quote. I still find the microblog format very convenient for quick thoughts, or a series of related posts like all my coffee stops.

    I’ve also switched from Gaug.es to WordPress.com stats. While I agree with Ben Brooks that analytics can be a distraction, I still like finding new referrers and having a sense of what posts have resonated with people. Not that it effects what I write about, though.

    The key to blogging is still consistency and passion. Write about the things you care about, regularly, and the internet is a big enough place that there can be an audience for even obscure topics.

    That’s the theme I’m trying to apply to my new Timetable podcast, too. I talk about microblogging, coffee shops, client work, but more important than any of that is the routine of recording it. The short nature of the podcast is itself kind of the story.

    I’m at episode 15 now and have loved working on it. I now expect that all of these components of my blog — the longer posts, the microblog posts, and the companion Timetable episodes — will be something I do for years to come.

    → 12:34 PM, Mar 1
  • Electric Beetle

    As I’ve written about here, I have a Nissan Leaf and it’s the best car I’ve ever owned. When the lease is up in a couple years, I’ll reevaluate whether to buy a new one or switch to a different make of car, but there’s no question that I’m never going to buy another gas-powered car for myself again.

    In addition to the obvious benefits to the environment, how quiet the car is, and being able to “fill it up” at home, the Leaf is also shockingly reliable. No oil changes, no random weird noises or parts failing that seem to regularly happen with every other car we’ve owned. Simpler is better.

    We’re crossing the point right now where electric cars are not only better in a novelty way for early adopters, but just actually better. Every year there will be more electric cars on the road, from more manufacturers, and every year they’ll chip away at the traditional problems of cost and range.

    And there’s even fun stuff like Zelectric Motors, which I discovered via a great video from The Verge. I always thought that if I ever had $60k to blow, I’d get a Tesla. I may need to consider these retrofitted classic VW Beetles instead. They look beautiful. (Although probably helps to live in the San Diego area just in case it does need the occasional trip to be serviced.)

    → 11:32 AM, Mar 1
  • The Ringer will use Medium

    Bill Simmons announced on his podcast last week that his new media site The Ringer will use Medium. He said they’ve been working with the Medium folks on it, although I don’t know if that means using existing features that are available to anyone, or if Medium has built anything custom just for The Ringer.

    Digiday has a story about this, and about the larger context of how Medium is doing and evolving:

    “At one point last year, a former staffer said, Medium decided to move away from funding publications directly and instead fund initiatives meant to grow audiences in specific areas such as women in tech and the election. Last year, it closed down Re:form and Archipelago, a home for personal essays. Its remaining verticals have been roped into Medium’s effort to generate more conversation with readers, with tactics like prompts at the end of articles.”

    I’ve written several times about how Medium is worse than your own blog for building an audience, and worse for the open web if it continues down the Twitter-like path as a centralized social network. But encouraging larger publishers to adopt Medium is good, because custom domains will come along for the ride. Owning your domain and URLs is the first step to owning your content.

    → 12:00 PM, Feb 29
  • Apple Watch is slow... for now

    Dan Moren wrote an essay for Six Colors last week about why slowness is such a problem for the Apple Watch:

    “The stale data and the lack of speed means that either you have to stare at your Watch for several seconds and hope the data updates; or tap on the complication to load the Watch app, which as we all know takes a good long while as well; or simply give up and pull out your phone. [...] It’s not just that the Apple Watch is slow; it’s that it’s slow while promising to be faster.”

    Both Dan and Jason Snell followed up on this topic in the latest Six Colors subscriber podcast. The problem, they recognized, is that the first Apple Watch tried to do too much. Apple should instead focus on a few core features and make them fast.

    Which features? I still use the Apple Watch every single day, and I use it for just three things: telling the time, tracking fitness (including reminding me to stand up), and glancing at notifications.

    Some people have stopped wearing their watch every day. Again, that’s fine. Curtis Herbert was falling into that category, until he went snowboarding with friends and realized how useful the Apple Watch is when you can’t get to your phone or tap buttons. In an article about the snowboarding trip, Curtis says the Apple Watch’s problems are solvable in future versions:

    “Siri on the Watch will get faster. The battery situation will improve. The Watch as a whole will get faster. We're spoiled by iPhone speeds and sometimes forget just how long it took us to get there, and the crap we dealt with until then.”

    I’m not worried about the future of the watch either. Our early expectations were much too high — in contrast with the first iPhone, which exceeded all hopes because it was seemingly from the future already — and it will take a couple more years to catch up to where we’d all like the watch to be. In the meantime, the watch is useful today, even slow-ish.

    → 4:20 PM, Feb 28
  • Is this even possible?

    When I tell people that I’ve started going to a new coffee shop every day for a month — and importantly, one which I’ve never been to before after living my whole life in Austin, with no duplicates or separate locations from a coffee chain — they usually ask: are you going to run out of places to go? At the beginning I didn’t know. And that has made it a particularly fun challenge, because doing something that you know is possible is boring.

    I’ve never been interested in building an iOS app that someone else has already done. I’ve never been excited to write a blog post that is just a rephrasing of someone else’s idea. Starting a new project with a unique twist, even a minor one, is what makes our job as developers and writers fun.

    And it’s easy to take a simple idea and build it into a more advanced project. On the latest Core Intuition, Daniel continues to suggest ways to add layers to my coffee trips, from adding photos, to publishing future locations ahead of time so that anyone can stop by and join me for a coffee. (I’m going to be doing this.)

    Now at day 10, I can more easily answer the original question, though. I have 16 suggested coffee shops in the queue, so if I visit all of those, I’ll only need 4 more places to hit 30 new coffee shops in 30 days. A few of these might seem like borderline cheats — a donut shop, or a food truck to pick up a Thai iced coffee — but being exposed to new places I would never otherwise go is the whole point.

    → 4:08 PM, Feb 27
  • iPhone SE (no 5)

    Mark Gurman of 9to5Mac reports that the new 4-inch iPhone will be called simply “iPhone SE”, not “5SE”. As I said before, I don’t really care what it’s called, but this is good news nevertheless.

    John Gruber adds:

    “Isn’t it more accurate to think of this as an iPhone 6S in a 4-inch body than as an iPhone 5S with ‘upgraded internals’? Other than the display, aren’t the ‘internals’ the defining characteristics of any iPhone?”

    I agree with John. Other than the screen size, this phone will feel a lot like an iPhone 6S. And because I love the smaller size, I personally think it will have the best of both the 5S and 6S.

    Prediction: this phone is going to be much more popular than people expect. I won’t be surprised if it takes the 6S Plus’s spot as the 2nd most popular iPhone.

    → 2:57 PM, Feb 26
  • New coffee shops, week 1

    I’ve now wrapped up the first week of my attempt to visit a new coffee shop I’ve never been to, every day for a month. To track the progress, I’ve created a web page with all the visits so far, the coffee shops I hope to try soon, and also a bunch of places I’ve already been over the years (and so which are disqualified from this endeavor).

    This has required a little more planning than I expected. I’ll be going to all corners of the city to not repeat myself for a full 30 days. Even then, I’ll have to broaden my search to include more traditional cafes and donut shops too.

    I’ve also realized that I need to do a better job of ordering something unique when it’s on the menu, or asking for a recommendation. After all, the point is to get out of the house more often — to take a break from the isolated work-from-home environment, be exposed to something new, even if it’s just a simple drink or view outside, and get back to my current projects refreshed.

    → 4:14 PM, Feb 24
  • Dave Winer on Instant Articles

    Maybe I misjudged Facebook’s Instant articles. Dave Winer is a supporter, because it builds on RSS:

    “Facebook is using open web technology to power Instant Articles. I'm not sharing anything that isn't already publicly documented on the Facebook developer site. People have trouble understanding this, I assume, because it seems so out of character for a big web destination like Facebook to care about the open web. It's kind of a miracle. But there it is. The open web is about to get a real shot in the arm from a most unexpected place.”

    I guess one question is whether there will be any other RSS readers that support Instant Articles. If we can get some of the benefits of Instant Articles, but outside of Facebook, that is something.

    → 11:46 AM, Feb 24
  • App review for the fast web

    Facebook continues to roll out their Instant Articles format to more publishers. It’s now available to anyone, with this catch:

    “You won't be able to publish Instant Articles until your RSS feed has been approved.”

    That’s just what we need: the worst part of the App Store approval process applied to the web. No thanks.

    Google’s competing Accelerated Mobile Pages has problems too, as I mentioned in the last half of this post about the cost of links. Although unlike Facebook, which wants to trap content behind their own platform, AMP is at least more open and useful to the larger web.

    I hate to say it but neither Instant Articles nor AMP are really good enough. I think we need a third standard for super-fast web pages. (Or do we? Maybe the web is okay as-is if we fight page bloat.)

    → 2:56 PM, Feb 23
  • Walking around the UT Tower

    Walking around the UT Tower
    → 1:00 PM, Feb 22
  • Core Intuition 220

    On this week’s Core Int:

    "Daniel orders a Brother, Apple defies the FBI, Manton continues to struggle with his Kickstarter, and the two discuss using structure and constraints to encourage tackling new goals."

    I like this episode because it has a mix of serious and fun topics. Toward the end of the episode we talk about my new goal of trying a new coffee shop once a day for a month.

    → 12:09 PM, Feb 19
  • Ginger in the backyard

    Ginger in the backyard
    → 1:00 PM, Feb 13
  • iCloud is too opaque

    Last night, Federico Viticci tweeted that he lost a draft blog post he was working on because of an iCloud problem:

    "Just lost 1.5k words I had prepared for tomorrow because I wanted to try iCloud sync instead of Dropbox this week."

    The story has a happy ending because he was able to manually recover the document from the app’s database, but that is well beyond the complexity that most users could handle. iCloud is usually so opaque that we just can’t see what is going on behind the scenes with our data.

    Everything I write on this blog (and notes for all my projects) goes into simple text files on Dropbox. I can edit from multiple apps on different platforms, the files are synced everywhere, and Dropbox tracks the revisions of each file so that I can restore a previous version at any time. I could take the text file I’m currently typing in, drag it to the Finder’s trash and empty it, and restore from the web in 30 seconds even without any kind of traditional backup solution.

    That’s why all my photos are on Dropbox too. Instead of being opaque like iCloud, with no easy way to troubleshoot or recover files when things go wrong, with Dropbox it’s all there in the local file system or over the web.

    Dropbox has had a few side projects and distractions, but their foundation is obvious and accessible, so they can keep coming back to that. Here’s Stephen Hackett writing in December about documents and photos after Dropbox shut down Mailbox and Carousel:

    "As much as these apps were loved by their users, it's clear that the company is moving in another direction. While things like Paper don't make much of a difference to me, knowing that Dropbox will reliably sync my files, be easy to use on iOS and continue to be around is important to me. If Mailbox and Carousel had to go to make that possible, then so be it."

    I really like the clean UI in Dropbox’s Paper, but because it doesn’t yet sync with regular files like the rest of Dropbox, Paper isn’t building on Dropbox’s core strengths. Daniel and I use it for planning Core Intuition, but I wouldn’t use it for critical writing any more than I would use the new Apple Notes.

    I hear that people love iCloud Photo Library and Notes, and that the quality of these apps and companion services has significantly improved. That’s great. (I also think that CloudKit is clearly the best thing Apple has built for syncing yet.)

    But to me, it doesn’t matter if it’s reliable or fast, or even if it “always” works. It only matters if I trust it when something goes wrong. Conceptually I’m not sure iCloud will ever get there for me.

    → 12:15 PM, Feb 12
  • Typed.com progress updates

    The folks at Realmac have been blogging about their progress with Typed.com, a new blogging platform that successfully raised $120k on Indiegogo last year. In the latest monthly report, they announce a new free tier:

    “With this new free tier, people can sign-up, use the service, take their time. They can blog for free, for as long as they want, and when they need or want the extra features we offer they can upgrade to a paid account. We also think this will be free marketing for the service, the more blog out there that are hosted with Typed.com then more people will find out about the service.”

    This blog is in the spirit of Buffer’s open blog or Ghost’s Baremetrics reports. It’s especially great to see a company sharing numbers when they know they still have a lot of growth ahead of them to get where they want to be.

    If you’d like to start a new blog but aren’t sure where to host it, check it out. Typed.com has a well-designed admin UI that is refreshingly simple compared to much of the more bloated web software out there.

    It’s also possible to use Typed.com as a microblog. I pointed to some tips for this last year. Since the title of a post can’t be blank on Typed.com, I suggest using a date/time for the title. My new microblog platform is smart about treating those kind of short posts correctly when reading from an RSS feed.

    → 10:21 AM, Feb 11
  • River5 and twtxt

    Two new microblog-related services have launched. This week, Dave Winer announced River5:

    “So I decided it was time to do a restart of my JavaScript RSS aggregator, and it's now ready for Node users -- it's called River5. [...] This is a foundation for developers to build on, but it's also possible for an adventurous user to set up their own rivers.”

    River5 is built on a few XML and JSON formats, including River.js. I’m pretty interested in River.js as a format for aggregating multiple feeds together, so I’ve supported it in my new microblog platform. As a next-generation RSS, though, I prefer the proposal I wrote about in a post called RSS for microblogs.

    Next up is twtxt, which attempts to recreate Twitter as a distributed, command-line based system with self-hosted text files:

    “Instead of signing up at a closed and/or regulated microblogging platform, getting your status updates out with twtxt is as easy as putting them in a publicly accessible text file. The URL pointing to this file is your identity, your account. twtxt then tracks these text files, like a feedreader, and builds your unique timeline out of them, depending on which files you track.”

    I’m less sure what to think of twtxt. The simple plaintext format is nice, but we already have a good infrastructure for this with RSS. And as I’ve noted before, having HTML in RSS with inline styles and links is nice for microblogs, and it’s not clear to me whether that would fit well with twtxt.

    If you want to start an indie microblog, my suggestion remains to use existing blog software that can generate simple RSS feeds. Short posts, no titles. This is a widely-deployed format that we can continue to work with for years to come.

    → 12:08 PM, Feb 10
  • Algorithmic timeline now rolling out

    Dan Moren reports that Twitter is rolling out their algorithmic timeline, where tweets aren’t strictly reverse-chronological. It is opt-in for now, and likely won’t apply to third-party clients:

    "I’d also guess that third-party clients won’t be able to implement this for a while, if ever. So users of Tweetbot, Twitterrific, and others won’t really have a substantively different experience."

    I don’t see the setting in my Twitter account yet. As a user, I hardly care, because I don’t read the Twitter timeline directly anyway. But I’ll be watching how people react to this and how it might affect my own microblogging plans.

    → 11:33 AM, Feb 10
  • Charles Perry&#039;s microblog

    Charles Perry has started a microblog. On the balance of what he should post to Twitter and what he should post to his own site first, he writes:

    "Most of the things I write on Twitter are snippets of conversations or other thoughts that I don’t necessarily want to preserve. Those will stay on Twitter. But some microposts—is that a thing?—I think are of interest on their own. These I plan to post to the DazeEnd.org microblog and mirror to Twitter. That should allow me to preserve and archive my thoughts on my own website and use Twitter just for distribution."

    I was really happy to see these posts show up in my RSS reader. There’s some momentum around indie microblogging right now. You should start one too.

    Here are some more of my posts on the topic:

    • How to start a microblog. Overview of the basics, with a few suggestions for where to start.
    • Microblogging with WordPress. Still mostly accurate, although I don't use IFTTT anymore. I've written my own cross-posting code and baked it into my new app.
    • Embrace cross-posting. My early thoughts on cross-posting. Also see the post about returning to Twitter.
    • RSS for microblogs. Suggestions for simplifying our RSS feeds, and a proposal for JSON.
    • Weblogs category from my blog. All the posts primarily about weblogs or microblogging.

    Listeners of my new Timetable podcast also know that I’m writing a short book about independent microblogging. You can hear a little about this on episode 9.

    → 12:02 PM, Feb 7
  • Core Intuition 218

    On this week’s Core Intuition:

    “Manton and Daniel talk about Apple’s current and future stock price, and their potential to branch out into other technologies such as virtual reality. They discuss Facebook’s shuttering of Parse and the implications for iOS developers and Facebook’s PR. Finally, they respond to listener Q&A about getting up to speed on using and implementing your own web services.”

    Toward the end of the show, I also discuss my approach to password-less accounts for Searchpath and my not-quite-released latest web app. While still far from perfect, I think getting away from passwords is an important next step for apps. Passwords are just too annoying for users to keep track of and enter, and a potential security issue and headache for system administrators.

    → 8:00 AM, Feb 5
  • Cute release notes

    Ben Brooks takes on the trend of cute stories inside of release notes:

    “With disturbingly increasing frequency, companies are deciding to let their marketing departments handle their release notes instead of the engineering team or product manager.”

    I agree. These were fun at first, but the release notes don’t need to be entertainment. They should be a summary of what changed, with bullet points for key changes. (A single “bug fixes” line is also not helpful.)

    I personally like to start each line with a clear statement: “Fixed <something>” or “Added <this feature>” or “Improved <something else> by <doing this>”. You can see this in the history of my Tweet Library release notes, for example.

    → 2:42 PM, Feb 3
  • 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.

    → 10:36 AM, Feb 2
  • I&#039;m supporting Hillary, again

    As Iowa kicks off the election today, I thought I’d offer my 2 cents on the campaign. I’m a strong Hillary Clinton supporter.

    Dave Winer writes that Hillary is what we need right now in terms of projecting a stable image to the rest of the world:

    “At this moment, we need a solid hitter, someone who the rest of the world is comfortable with, and who a deeply injured Republican Party can work with.”

    It’s great to see the passionate Bernie Sanders supporters, too. I was fired up for Howard Dean in 2004, so I remember what that excitement is like. But I believe Hillary would be a great president.

    Eight years ago I put together a short podcast episode about the campaign, trying to capture something from 2008. You can listen to it here. My daughters — who were 7 years old at the time — make an appearance at the end of the episode. Now, of course, they’re 15, and the weight of time passing couldn’t be more clearly felt.

    There’s a good line from Hillary in one of the first Democratic debates in 2015:

    "I'm a progressive. But I'm a progressive who likes to get things done.”

    I think that sums up what we can expect from a Hillary Clinton presidency. I have no idea what a Bernie Sanders presidency would look like — what it would accomplish — and I’m not sure he does either. My concern isn’t in the ideas, but in the execution against a politically calculating, Republican congress.

    Bernie and Hillary share something in a fighting attitude, though. Neither candidate will let the Republicans walk over them. If you don’t think Hillary’s got this, re-watch her speech at the 2008 Democratic National Convention.

    → 11:39 AM, Feb 1
  • Micropub and the quiet IndieWebCamp revolution

    There’s new activity at the W3C around independent blogging, with new proposals recently posted as working drafts. Helped by a push from the IndieWebCamp, two of the highlights include:

    • Micropub: Simple format for adding content to your site from native apps.
    • Webmention: Modern replacement for Pingback/Trackback, for handling cross-site replies.

    I want to support these in my new web app. At launch, I hope to allow Micropub POSTs alongside the classic XML-RPC Blogger API (and my own native JSON API).

    And of course the IndieWebCamp is also known for POSSE: publish on your own site, syndicate elsewhere. That strategy has helped me refine my own cross-posting.

    I don’t think it’s my imagination that more and more people are blogging again. Now’s the time to resume your blog, start a microblog, and take back the future of the web from silos. If we can roll some of these new standards into what we’re building and writing about, the open web will be on the right track.

    → 10:07 AM, Jan 29
  • Parse shutting down

    Bad news from the Parse team at Facebook today:

    “We have a difficult announcement to make. Beginning today we’re winding down the Parse service, and Parse will be fully retired after a year-long period ending on January 28, 2017. We’re proud that we’ve been able to help so many of you build great mobile apps, but we need to focus our resources elsewhere.”

    For years I had always heard great things about Parse. I eventually used it for the first time a few months ago on a client project. It’s got a well-designed API, friendly monthly pricing (free for many apps), and it seemed well supported, with new features like tvOS support and a web dashboard redesign rolling out just a month ago.

    Thinking about this tweet from Daniel Jalkut, I’ve always advocated for iOS developers to also be good at web services. Customers expect sync everywhere now, and you can do things with your own server that will give you an advantage over competitors who have a simpler, standalone iOS app. But being forced to migrate server data isn’t fun, especially on someone else’s schedule.

    → 6:20 PM, Jan 28
  • Apple says macOS

    Nice observation by Jason Snell from the Apple quarterly report conference call:

    “It probably means nothing, but when Maestri listed off Apple’s four major product platforms, he said this: ‘We’ve built a huge installed base around four platforms: iOS, Mac OS, watchOS, and tvOS.’”

    Like Jason, I’ve long wanted a return to “Mac” as the most important part of the OS name, and have suggested it a couple times on Core Intuition. It was a missed opportunity to do this transition after 10.9, when it could have cleanly gone to Mac OS 11 without the .10 and .11 silliness.

    The new tvOS and watchOS branding — combined with Apple’s quote above — makes an official rebranding to “macOS” at WWDC this year seem almost likely. The next major version should be macOS 11, without the “X” and “10.x”. That would still look a little wrong compared to simply “Mac OS”, but it would be much better than “OS X”, and the lowercase would be consistent with the rest of the platforms.

    → 9:19 AM, Jan 28
  • 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.

    → 10:27 AM, Jan 27
  • Matt Gemmell on Twitter ads

    Matt Gemmell has started including shorter posts on his blog. Today he writes about Twitter’s decision to not show ads to some popular users:

    "There are problems with that approach, the main one being the tacit admission that their ads are detrimental. If you’re rewarding people by reducing the hostility of their experience, maybe just fix the experience for everyone, and find something positive to charge for instead."

    Ads are the worst. I don’t know if it’s possible to build a large-scale social network like Twitter or Facebook without being mostly ad-supported, but I’d like to believe it is. WordPress.com — which has elements of a social network, even though we don’t consider it one — might be the closest successful attempt.

    → 4:00 PM, Jan 26
  • 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.

    → 3:00 PM, Jan 26
  • iPhone 5se sleep button

    Zac Hall of 9to5Mac follows up with a new leaked photo after the latest iPhone 5se news. It seems the hardware design may borrow more from the 6 than the 5. Zac writes:

    “If the leaked image turns out to both be the real deal and what Apple ships later this year, that means the updated 4-inch iPhone will feature rounded volume toggles and a relocated sleep switch like on iPhone 6 hardware versus a top sleep switch and iPhone 4-like volume buttons from the iPhone 5 series hardware.”

    NoooOOOooooo. I can understand wanting consistency between models, but the iPhone 6 sleep button is a major usability issue because it gets in the way when trying to use the volume buttons. I’ll be disappointed if the design trade-offs from the 6 make the 5se worse. (But I’ll buy one anyway.)

    → 11:16 AM, Jan 26
  • Tim Cook, Swift, and the return of blogs

    Rob Rhyne wrote an essay last week that caught my attention, on Tim Cook and the incredible pace of new major OS versions at Apple:

    “Still think Apple isn’t innovating enough under Tim Cook? Don’t let an app developer hear that talk—they want a vacation, and the end of 2015 showed no signs of relief.”

    But I found it significant for another reason too: Rob hadn’t blogged on that site in over 2 years. He picked it up as if no time had been lost, hitting the ground running with a great post.

    He’s not the only one starting to blog more. Matt Gallagher just rebooted Cocoa with Love after 4 years since his last post. Swift was a good excuse to resume writing, but he had wanted to continue the site anyway.

    Most of my favorite blogs have new posts every day, or at least once a week. New posts bring more links and traffic, giving the blog life and momentum.

    There’s no single correct way to blog, though. Blogs are forgiving. If you’ve neglected your blog for a while, you don’t owe anyone an apology. Just hit command-N in your favorite text editor and start writing.

    → 10:17 AM, Jan 26
  • Fin and split-view for Apple TV

    Joe Cieplinski ported his iPhone timer app Fin to the Apple TV:

    “Three weeks of spare hours here and there to get myself familiar with the HIG, the UI challenges, etc. was well worth the effort, as far as I’m concerned. And now I get to see if any of my users find the TV app useful, or if I pick up any new attention as a result of being there.”

    Hearing stories like this, and thinking about my own apps, I’m convinced that the Apple TV needs split-view support like iPad multitasking. Our apps could be off to the side of the screen while someone uses most of the TV for watching shows or running another full-screen app. Just as I suggested that lightweight universal apps are okay, there is a class of apps that would become more useful when they don’t have to monopolize the entire TV.

    → 9:54 AM, Jan 25
  • Long-form writing as a filter

    Soroush Khanlou, looking for more new blogs to read, makes a great point that the process of blogging leads to better writing:

    “Opening my RSS reading and finding 30 unread items makes me happy. Opening Twitter and seeing 150 new tweets feels like work. I'm not sure why that is. I think Twitter has become more negative, and the ease of posting quick bursts makes posting negative stuff easy. With blogging, writing something long requires time, words, and an argument. Even the passing thought of ‘should I post this’ creates a filter that lets only better stuff through.”

    I think there’s something to that. It’s often only after writing our thoughts down that we fully understand how we feel about a topic.

    And here’s where I bring this back to microblogging. Because when starting a post, we don’t always know whether it will be long or short. How often have you seen a series of tweets that in hindsight even the author would agree should have been a blog post?

    This is less of a problem if instead of tweeting you start out with the intention of posting to your own site. Short post can stay short, and posts requiring more words can naturally expand to a full essay.

    I don’t think that our short-form, seemingly unimportant writing should exclusively be on centralized networks. If it’s worth the time to write something — whether a thoughtful essay or a fleeting one-off microblog post — then it’s worth owning and publishing at your own domain name.

    → 9:00 AM, Jan 25
  • iPhone 5SE

    Mark Gurman reveals at 9to5Mac that the new phone I’ve been waiting for will be called the 5SE:

    “The ‘se’ suffix has been described in two ways by Apple employees: as a ‘special edition’ variation of the vintage 4-inch iPhone screen size and as an ‘enhanced’ version of the iPhone 5s. Indeed, the upcoming ‘5se’ features a design similar to 2013’s flagship but upgraded internals, software, and hardware features that blend the old design with modern technologies from the past two iPhone upgrades.”

    Seems odd to keep the “5” name for a phone that more closely resembles the iPhone 6/6S except for size. But I don’t really care what it’s called. This phone matches my expectations or exceeds them. Fantastic that it even supports Live Photos.

    → 10:13 AM, Jan 24
  • New SSD for the iMac

    In the most recent Six Colors subscriber magazine, Jason Snell talks about adding an SSD to his Mac Mini home server. It got me thinking about finally upgrading our old family iMac (late 2009!) to give it a little more life, so I ordered a new SSD for it today.

    A side note about email newsletters: I subscribe to several, and while I love reading them, I can’t help but think that this great content should be on the web instead. Perhaps a copy of the newsletter text could be subscriber-only on the web just for the first 3-4 months after it has been published, and then open up to everyone. Ben Brooks has some more thoughts from the skeptical side of the newsletter debate.

    Back to the iMac. The new SSD cost more than I was expecting ($200 + $50 tools), so I think it will serve mostly as a fun exercise in taking apart computers with my son rather than a great upgrade value. A brand new Mac Mini is still only $500, for example. But because nearly everyone in the family already has their own MacBook, or wants one, doesn’t seem practical to buy a new shared desktop computer.

    → 2:00 PM, Jan 23
  • iPad thoughts for 2016

    Over the holidays, or while on any vacation, I usually use iOS more often than my Mac. It’s easier to quickly catch up on email or fun stuff like Instagram without getting too pulled away from what matters: spending time with family and friends. So as I use iOS, I’ve been thinking about what might make the iPad better.

    Last year Jared Sinclair blogged about some of the problems with the iPad, with ideas for “saving” it. The most interesting of these was his suggestion of a “Gatekeeper for iOS”, where iOS apps could easily be side-loaded onto iOS without Apple’s approval:

    “These apps would be just as secure as apps published on the App Store. I recommend that Gatekeeper iOS apps be subject to the same API restrictions, privacy permissions, and sandboxing as apps distributed on the iOS App Store”

    Daniel and I discussed this on Core Intuition episode 207. We acknowledged that as great as it would be, this compromise of Gatekeeper apps being subject to API restrictions might not be possible. The whole point of Gatekeeper is to leave Apple out of the distribution process, so there would be no place to impose such restrictions except at the API level. Still, I’d welcome any kind of side-loading.

    Most Mac developers have wanted a Gatekeeper-like solution for iOS since the very beginning of the iPhone. Back in 2011, I wrote a post about Apple’s 30% cut and the lack of side-loading for iOS:

    "Apple’s tight control over iOS has always been troubling. If there’s no way to install an app on the device without Apple’s approval, then Apple can make or break any business that builds for the platform. It’s an added risk for the thousands of tiny development shops for which the iPhone and iPad are otherwise perfect."

    But side-loading isn’t really holding back the iPad. What’s holding it back is the slow pace of progress in UI improvements. For example, the home screen remains virtually unchanged since iOS 3, and on the iPad Pro the classic grid of large app icons looks more like the Simple Finder than a way to manage and launch productivity apps.

    More key areas of the UI need to take inspiration from iPad multitasking. While split-view and slide-over aren’t perfect, they’re something. Likewise for iOS extensions, which were such a step forward that we were willing to overlook the UI clunkiness. These new features helped Fraser Speirs switch to an iPad Pro full time:

    "The introduction of multitasking in iOS 9 has made a significant difference to the way I work on iOS. I don’t need to rehearse the actual features here but suffice to say that I now find iOS extremely easy to get almost any task done."

    I’d like to see Apple experiment more. To not be afraid to try something new with the UI and ship it, as long as they still follow up and refine it.

    Here’s a great feature idea to take multitasking further, from Stephen Hackett’s iOS wishlist:

    "I'd like Apple to work on some way to share text and images between apps that are side-by-side. If I'm working in a text editor, I'd like to send a selected portion right into Slack, without having to worry about a share extension or dropping back to copy and paste to get the job done."

    Nilay Patel, in a 2015 wrap-up for The Verge, wrote that Apple has been setting the groundwork for new platforms, and that this year they will have to iterate and improve on what they’ve started. He sees the iPad Pro in particular as a step forward without a clear defining feature:

    "There's a chance we'll all be using huge iPads as our primary computers one day, but to get there the iPad Pro has to do something so much better than a MacBook that all the things it does worse seem irrelevant. What is that thing?"

    That missing “thing” is clear to me: the Apple Pencil is the best stylus that has ever been made for a device — tablet, desktop, or standalone display. It’s so good that I assumed I would sell my retina iPad Mini and use the iPad Pro exclusively.

    That hasn’t happened. I realized when making the choice of which iPad to take downtown the other week that the Mini is still my favorite size. I hope as part of the next phase to Apple’s iPad platform that the Pencil makes it down to the rest of the iPads. It’s important that developers can count on the common availability of the stylus, just as we can count on multitasking and app extensions to set the pace of UI progress for the platform.

    → 2:42 PM, Jan 21
  • Finally trying Ulysses

    I’m finally trying Ulysses. After posting about how I write blog drafts, a reader pointed out that Justnotes for Mac isn’t actively maintained anymore. I think Ulysses will make a nice replacement, both for my Dropbox folder of 1000+ notes, and also for longer, more structured writing I want to do.

    Ryan Irelan uses that structure to organize courses for Mijingo:

    “Each course is also a Collection inside of the courses collection, in which I have separate sheets for each section of the course (or even broken down into multiple sheets per section depending on the length)”

    Ben Brooks is also trying to consolidate from the iOS 9 Notes app and others to just using Ulysses:

    “This was my pain point, I often just simply forgot where I jotted something down. I don’t typically make tasks out of articles I am writing, so I remember what is what by looking in Ulysses, and if it isn’t in Ulysses I won’t go searching for it. Notes was the most convenient place to write, but also a bit of a black hole for writing.”

    I can already tell that Ulysses is a great app. Looking forward to the upcoming universal version with support for the iPad Pro, too.

    → 10:00 AM, Jan 21
  • Ignoring follower counts

    I’ve said before that there’s something about the 140-character limit that brings out both the best and worst in people. Nick Harris hints at this while writing about taking a break from Twitter:

    "But largely ignoring the Twitter Noise Machine – particularly when my timeline becomes the Twitter Hate Machine – is going to be good for me."

    He also talks about the obsession with stats and follower counts, which Brent Simmons picks up on and carries further:

    "I did have Google Analytics for a few months in 2014 when I was doing sponsorships. I spent too much time looking at the numbers and trying to make them go up. But no amount of going-up is ever satisfying: I just wanted more."

    When designing my new microblogging platform, I made a conscious decision to not even show follower counts. You can get the followers from the API, but I didn’t want to have the numbers right in your face when viewing someone’s profile. It’s too easy for us to make a judgement based on how many followers they have, and so miss out on whatever they have to say.

    → 4:09 PM, Jan 20
  • Sound Off and AlterConf

    When I blogged about Brent Simmons’s list of women bloggers, I said that we need more diversity in what we read. That will naturally lead to more diversity in other areas, such as conferences.

    But not everyone can easily get access to conferences or take advantage of everything they offer. Sound Off is trying to help with that, through efforts like funding for sign language interpreters, child care, and scholarships. Gus Mueller, also with a quote from Brent, says it well:

    “Sound Off has some very worthy, and very realistic goals. And as Brent Simmons says, people of the future will look back and judge us for how well or poorly we expanded our tribe.”

    And Ashley Nelson-Hornstein adds this:

    "Sharing the sentiment that it's important to create more opportunities for marginalized people in technology is great. Retweeting the voices of the marginalized to amplify them to your networks is fantastic. But the best way to drive change is with dollars and cents."

    I’m a little late linking to Sound Off, but it’s a good cause that needs our support. You can learn more here.

    → 10:36 PM, Jan 19
  • Here&#039;s a Twitter feed

    Whenever someone says “I don’t read RSS”, I actually hear “I don’t read Manton’s blog”. I could give plenty of reasons why they’re missing out by ignoring RSS — it’s still the best way to keep up with bloggers you like who aren’t linked or retweeted often enough to bubble up on Twitter — but some people won’t be convinced.

    Over three years ago I stopped posting to Twitter. I know it was the right move on principle because there was a real cost in exposure, with fewer people actively keeping up with what I’ve been working on. As I’ve said before: it wouldn’t mean anything if it didn’t cost me anything.

    And yet, many people get their news from Twitter. Since I started microblogging on my own site, I’ve had time to reflect on the role of indie microblogging and cross-posting. I think the IndieWebCamp has it right: publish on your own site, syndicate elsewhere. I wrote more back in July about cross-posting.

    Most importantly, as I work on a microblog publishing platform of my own, how can I develop a solid cross-posting feature if I don’t actively use it myself? I’ve recommended IFTTT to beta testers, but only by using it myself can I know where the gaps in functionality are.

    So I’ve been experimenting. All of my posts now go out to the Twitter account @manton2. This was an account I created 6 years ago for testing. Except for a few of the first tweets, I’ve cleared out the test content and given it a new life.

    It’s worth noting some advantages and disadvantages to this:

    • I can write at my domain name and own my content, but have it automatically sent to Twitter for folks who are there. Unlike how I've been treating these cross-posts to App.net, I'm not sure whether I will stay engaged and answer replies on Twitter. We'll see.
    • Most of my microblog posts are around 200 characters. These will get truncated on Twitter, with a link back to my site. Full essays get a nicer title and link. I'll continue to improve this.
    • I'm effectively starting over with zero followers, compared to the 5000 followers I left @manton with. I have no plans to resume using my original account, though. Think of the "2" in @manton2 as a reminder that this is a mirror of my posts, and an imperfect one.

    You can follow @manton2 on Twitter. Thanks for reading.

    → 9:30 AM, Jan 19
  • Lightweight universal apps

    When the iPad first shipped, many developers embraced completely separate apps for iPhone and iPad. The argument was that they were different platforms and deserved special design attention (and separate revenue). I never bought this argument, and eventually — with the iPhone 6 Plus and multiple screen sizes — everyone agreed that it just made more sense to use universal apps.

    At the same time, there’s a parallel argument that an app on the iPad shouldn’t just be a “scaled up” version of the iPhone. That if you can’t invest the time to do a universal app properly, don’t bother.

    The redesigned Twitter iOS app was a great example of this. It was widely mocked for it’s poor use of space on the iPad.

    With the iPad Pro and widespread iPad multitasking, I think this changes again. An iPad app that is designed exactly the same as its iPhone version is still very useful in slide-over and split screen. In fact, for many “iPad” apps I use every day on the iPad Pro, I use them in their compact layout more often than full screen.

    My next app was designed for the iPhone. I spent some time trying to rework it with split views for the iPad Pro, but I just can’t justify the work right now to finish that effort. I’m going to ship it as a “lightweight” universal app anyway, though, so that it’s available in slide-over. To me, that’s a worthwhile compromise, significantly better than no offering on the iPad at all.

    → 9:35 AM, Jan 17
  • iAd setback

    I was confused at first by Apple’s iAd announcement to developers. I read it as iAd completely shutting down, but apparently it’s just the “app network”. Still, it’s a welcome setback for those of us who were never fans of iAd.

    John Gruber doesn’t think Apple’s heart is really in it:

    "When iAd launched, its biggest advocate among Apple’s leadership was Scott Forstall. In some ways I’m surprised it took this long for them to pull the plug. After Forstall, I don’t think anyone’s heart was in this."

    I agree. Back in 2010, I said that I hope iAd fails. It seemed at odds with Apple’s focus as a product company, not to mention hypocritical for a company with ad-blocking APIs. Apple and third-party developers should be united in encouraging users to pay for apps; iAd is a distraction from that.

    → 8:59 AM, Jan 16
  • Silos as shortcuts

    As a follow-up on Twitter and links, I want to point to this great post from Rian Van Der Merwe about platform silos as “shortcuts”:

    "The point is that publishing on Medium and Twitter and Facebook gives you an immediate shortcut to a huge audience, but of course those companies’ interests are in themselves, not in building your audience, so it’s very easy for them to change things around in a way that totally screws you over (remember Zynga? Yeah, me either)."

    My current thinking on Medium is that it’s a shortcut to building an audience for a single post, but doesn’t really help build a true audience. In other words, you will get more exposure, and maybe one of your posts will be lucky enough to be recommended and included in Medium’s daily email, but after someone finds it they aren’t as likely to read your other posts and subscribe to your entire site.

    We can’t talk about silos like Twitter and Medium without talking about cross-posting. Noah Read says:

    "While it is relatively easy to post to a blog, syndicating that content to Twitter, Facebook, or Medium still requires additional configuration, which many users won’t do. I think it would be in blogging software’s interest to make these POSSE features a standard part of their core product. In order for the open web to not lose ground, ironically they will need to play nicer with closed platforms than they are likely to receive in return."

    I’ve been thinking a lot about this too. For beta users of my new product, I’ve been telling people to use IFTTT to wire up cross-posting to Twitter. But that’s another step that will be confusing to people — an opportunity to lose interest and give up. Cross-posting should be a core feature.

    → 4:56 PM, Jan 15
  • Core Intuition 215

    On this week’s Core Intuition, Daniel and I start with a recap of Daniel’s time at the tvOS Tech Talk in New York City. More from the show notes:

    "Daniel and Manton reflect on their experience at the Apple TV tech talks, brainstorm app category ideas for Apple TV, and discuss the use of Twitter for customer support and how a 10K text limit might impact that. They also talk about Apple’s iOS 9.3 preview, rumors of a new iPhone 4-inch model, and speculate whether WWDC would ever move from Moscone in SF."

    It’s not too early to start planning for WWDC. Hotel pricing is a major issue this year, and I have a feeling people will be more scattered around the city than usual.

    → 11:24 AM, Jan 15
  • Twitter and the cost of links

    Federico Viticci covers the news that Twitter will expand from 140 characters to 10,000, nicknaming the feature Twitter Notes. His nickname is appropriate given this latest transformation to become more like Facebook, since Facebook’s Medium-like capability for long posts is also called Facebook Notes.

    The tweets and blog commentary on this have really missed a key aspect and cause for concern, though. Many posts – including even my own first attempt – have focused on whether Twitter Notes would water down Twitter’s unique strength. They then conclude that it’s better to include a long-form text feature rather than the compromise hack of screenshot text and tweetstorms. Federico sums up this endorsement with the following:

    “Unlike other recent additions to the service, I want to believe that third-party developers will be able to support the feature in their clients (Jack seems to suggest as much) and that the iPad won’t be left behind again. I may be disappointed when the day comes, but if done right (see Matthew’s points here) and as long as Twitter Notes are intended as attachments for regular tweets with real text, I don’t see why I would be against them.”

    Here’s why this matters, and it gets back to my post last week about the hyperlink. Closed platforms want to trap all activity, not send it out. The danger in Twitter Notes isn’t that they will replace textshots, it’s that they will replace external blogs.

    For all of Twitter’s problems, at least right now most of the good writing we see on Twitter is actually linked out to external blogs (and yes, increasingly Medium posts). To shift that to be stored more on Twitter itself would be a setback for the open web. It would slowly train a new generation of timeline surfers to prefer Twitter-hosted content instead of blogs.

    I wrote the above in draft form, and then later saw Ben Thompson’s daily update about the Twitter news. His take is the first I had seen that directly covered the issues of linking, even suggesting that no one really clicks on links anymore. But while he’s worried about Twitter from a business standpoint, I’m more worried about the attack on the web.

    Ben also mentioned the clever trick Jack Dorsey used in writing his response as a textshot. Daniel Jalkut pointed out the same thing in the latest Core Intuition. Jack could have posted it to a blog, or to Medium, but he deliberately picked the worst way to work around Twitter’s current 140-character limit, to underscore his point.

    Now, Will Oremus writes for Slate about the potential new Twitter walled garden:

    "What’s really changing here, then, is not the length of the tweet. It’s where that link at the bottom takes you when you click on it—or, rather, where it doesn’t take you. Instead of funneling traffic to blogs, news sites, and other sites around the Web, the 'read more' button will keep you playing in Twitter’s own garden."

    I know we can’t rewind the clock to the heyday of the blogosphere. But we can still do more. More to encourage bloggers, more to spread awareness about how the web is supposed to work, and more to value open APIs. I think it starts with 2 things:

    • Build tools for independent microblogging, to make blogging just as easy as tweeting. I'm trying to do this.
    • Make the web faster, so the cost of clicking on a link goes down. Google's helping this with AMP.

    I was encouraged when I saw that Known had added support for AMP. They have their doubts about AMP, but at least they were quick to try it. From the Known blog:

    "We've shipped support for AMP because we see potential here, and recognize that something should be done to improve the experience of loading independently-published content on the web. But attempting to bake certain businesses into a web standard is a malformed idea that is doomed to fail. If this is not corrected in future versions of the specification, we will withdraw support."

    Maybe AMP ends up being too ad-friendly to become a good standard. I don’t know. But if so, we’ll move to the next idea, because the web has to be faster. Slow pages are like a disease for links.

    Anyone with a blog should be concerned about what could happen with Twitter’s 10,000-character push. We won’t feel the effects right away, but years from now it will matter. We should do more not just to promote blogs and writing on the open web, but to also make it easier for Twitter alternatives to exist through independent microblogging.

    → 9:00 AM, Jan 14
  • A8 or A9 for the iPhone 6C

    I’ve talked about my hope for a new 4-inch iPhone several times on Core Intuition, and a few times on this weblog, like here and here. The rumors keep growing, and Stephen Hackett has written out his thoughts on a potential iPhone 6C:

    “The easy assumption is that the 6C would replace the aging 5S as the free-or-very-cheap option, but the recurring rumor of the 6C being powered by the A9 makes me think this may slide in roughly where the iPhone 6/6 Plus currently sits in the lineup.”

    I’d love to see an A9, but I’m not counting on it. I think an A8 is fine too, mostly matching the internals of the latest iPod Touch. This wouldn’t be competitive with the iPhone 6S but it would still be a great upgrade from the iPhone 5S, which is the primary phone for anyone (like me) who still clings to the 4-inch design.

    The larger 4.7-inch and 5.5-inch designs will remain the top of the line iPhones for years to come. The 6C doesn’t need to change that; it’s not a peer to the larger phones. It just needs to clean up all the money Apple’s left on the table from customers who want a smaller phone. I’ll buy one right away.

    → 5:34 PM, Jan 13
  • Timetable episode 5

    I just published episode 5 of my new short-format podcast, Timetable. I’m having a lot of fun with this. Producing an episode that’s only 5 minutes long means I can experiment without investing too much time.

    As I was listening to some other podcasts this week talk about the Twitter news, it occurred to me how important it is to have a good mix of podcasts, just as it is with blogging. Many of the most popular Apple-related podcasts hit the same news stories each week and have nearly the same opinion. Don’t get me wrong; I listen to a bunch of them and they’re great. But it’s a reminder to me that for Timetable, and especially for Core Intuition, not to be afraid of having a more contrarian role when it’s appropriate.

    There’s nothing controversial in the latest episode of Timetable, though. Just me talking about getting some stamps to finally send out stickers.

    → 12:34 PM, Jan 13
  • New podcast: Timetable

    I’m launching a new podcast today. For a while I’ve felt like there could be something interesting in a very short podcast, where I talk a little about what I’m working on or thinking about throughout the week. Each episode is going to be just 3-5 minutes.

    It’s called Timetable. I’ve published 3 episodes, and have a 4th that will go out later today. I think of it as a “microcast”, complementing the informal nature of my microblog posts. And just as I have longer essays on my weblog, of course I’ll continue to explore larger topics for indie Mac and iOS developers on Core Intuition with Daniel Jalkut.

    If you check it out, let me know what you think at manton@manton.org. Thanks!

    → 4:34 PM, Jan 11
  • Dave on short blog posts

    Dave Winer gives 3 reasons why you should be posting short items to your blog, including:

    "Maybe your blogging software doesn't support short items? Don't worry, if people post more short items the software will adjust."

    I’m counting on this. I have a separate RSS feed for microblog posts, and it doesn’t look great in some news readers because the title is blank. Some folks have asked whether I should include a fake title there — the first few words of the post, or a timestamp. But the RSS spec is clear that title is optional. Only by breaking things a little will RSS readers improve to gracefully support title-less short posts.

    → 12:03 PM, Jan 11
  • WordPress drafts workflow

    Since moving to WordPress, I haven’t changed much with how I write blog posts. But there are more tools available now, so I thought I’d revisit my workflow.

    The key is being able to work on a blog post from any device and any text editor. I have a Notes folder on Dropbox that I use for draft blog posts and notes about other projects. When I have an idea for a post, I create a new note there and either start writing it, or leave a link, quoted text, or a few topic ideas to come back to later.

    On the iPhone, I use Editorial. On the iPad, I use Byword, since Editorial hasn’t been updated for the iPad Pro yet. And on my Mac, I use Justnotes. All of these sync from the same Dropbox folder. They are plain text files, so I can edit from anywhere and they’ll survive platform and hosting changes over the years.

    If I’m on my Mac, when I finish a post I’ll preview it in Marked and then copy it into MarsEdit for posting. On iOS, I’ll copy it into the WordPress iOS app. For microblog posts from iOS, I use an unreleased iPhone app that’s part of the microblogging stuff I’ve been working on.

    I’ve also been using the Calypso-based WordPress UI a lot lately. I usually work on several blog posts at once, and if a few are ready to go at once, I schedule them to go out later in the day or over the next couple of days. WordPress’s web UI makes keeping track of scheduled posts pretty nice.

    It hasn’t been all perfect switching between multiple apps, though. I noticed today that some of my new posts, which I always write in Markdown, were converted to HTML for publishing (likely by Calypso on WordPress.com). But for the most part, no regrets switching over to WordPress. The added flexibility and future-proofing have been good.

    → 12:00 PM, Jan 9
  • Core Intuition in 2016

    The first Core Intuition episode of 2016 is out. We talk about Twitter’s potential 10k-character change and much more. From the show notes:

    "Manton and Daniel react to Twitter’s rumored plan to support 10K of text in tweets, answer listener Q&A about product versioning and milestone strategies, and check with thoughts on Swift upon Daniel’s completion of 'reading the fine manual.'"

    For 2016, we’ve decided to expand the length of the show a little. Most episodes will be around 45 minutes to an hour. This gives us more room for topics, and allows us to accommodate 2 sponsors per show.

    I’ve also cleaned up the logo a little for the podcast feed, including adding the “Core Int” text to the graphic itself. It should look much better in your favorite podcast client. Thanks for listening!

    → 2:11 PM, Jan 7
  • DNS consolidation

    Feels like years in the making, but I’ve finally moved all my domain names to a single provider: DNSimple. The last 3 domains went through toward the end of 2015. They were .io domains, and required calling Network Solutions to unlock. (I own 13 domains, and don’t plan to add any more for a very long time.)

    I’ve found that the simplicity of having these kind of things consolidated in one place really improves keeping up with hosting and renewals. It’s the same reason I moved all my private projects to GitHub, even though it would cost more per month. It means less to worry about, so more time for coding.

    Since I’ve often been thinking about the lack of permanence on the web, I also want to be more proactive about extending my domain registrations. I renewed manton.org until 2021.

    If you’re interested in using DNSimple, use this referral link for a month free. All my SSL certificates are there too, although I’m keeping an eye on Let’s Encrypt.

    → 8:35 AM, Jan 6
  • Twitter&#039;s 10k limit

    First, Twitter experimented with changing the timeline, so it’s not strictly reverse-chronological. Then, they renamed Favorites to Likes. Soon, they will remove the 140-character limit, becoming Facebook, and the circle will be complete:

    The current plan is reportedly to show just the first 140 characters in the news feed and then allow readers to click to expand the tweet and see the other 9,860 remaining characters. The new option may launch later this quarter.

    The learner is now the master. Welcome to the dark side.

    → 3:00 PM, Jan 5
  • Lighter, faster mobile web

    Speaking of the health of the open web, Maciej Cegłowski gave a talk on web page bloat at the Web Directions conference, and he put the slides and notes online (via Daring Fireball). It’s fun to read and there are many great points, but I want to focus on Accelerated Mobile Pages:

    “The AMP project is ostentatiously open source, and all kinds of publishers have signed on. Out of an abundance of love for the mobile web, Google has volunteered to run the infrastructure, especially the user tracking parts of it.”

    Sarcasm aside, I think Google’s involvement is mostly transparent, and I was hopeful about it when I wrote about this in November. Google wants the web to be fast. A faster web includes more ad impressions and is more competitive with native mobile apps. I don’t think this disqualifies Google from proposing this project.

    High Scalability has a long article exploring AMP:

    “Google needs an open and rich ecosystem of knowledge. If that’s not there then Google search won’t be relevant. Which is Google’s direct self-interest, which is also the same objective of the publisher. Publishers need access to an open ecosystem of distribution. Otherwise they’ll have a harder time building audiences if they have to appeal to closed platforms. Yes, Google is a private company that has business interests, but that philosophy and that core similar objective is something very important when considering Google’s role in AMP.”

    I’m willing to give Google the benefit of the doubt on AMP. The alternatives are too focused on specific platforms and so even less available to the rest of the web.

    → 1:00 PM, Jan 5
  • Hyperlinks and saving the web

    Hossein Derakhshan spent 6 years in jail in Iran because of his blog. Now, with the clarity of seeing years of changes to the web and social networks all at once after his release, he’s written an important essay on the value of hyperlinks and the open web:

    "When a powerful website – say Google or Facebook – gazes at, or links to, another webpage, it doesn’t just connect it , it brings it into existence; gives it life. Without this empowering gaze, your web page doesn’t breathe. No matter how many links you have placed in a webpage, unless somebody is looking at it, it is actually both dead and blind, and therefore incapable of transferring power to any outside web page."

    He mentions apps like Instagram, which have no way to link to the outside world. Too many apps are exactly like this: more interested in capturing eyeballs for ads than opening up their platform. The default for native mobile apps is to become silos, while the default for web sites is to be open and support linking.

    There’s a second part to Hossein’s essay that I don’t agree with, though. He writes that “the stream” – a.k.a the timeline, a reverse-chronological list of short posts or links – is turning the web into television. But I think there’s a lot we can learn from the timeline. It’s a valuable user experience metaphor that we should take back from Twitter and social networks.

    Building on the timeline is basically the whole point of my microblogging project. We should encourage independent microblogs by using a timeline interface to make them more useful. (Interested? Sign up on my announce list.)

    Back to links. Dave Winer, who has been cross-posting recently to Facebook and Medium, posted about how Facebook doesn’t allow inline links in the text of a post. As a new generation grows up on these kind of posts instead of real blog posts, will people understand what they’re missing? Dave writes:

    "I hope we don't end up having to try to explain linking to future generations who have no recollection of an electronic writing environment where words could take you to a whole other place. But I suspect we're going there. Unless somehow we can get Facebook to relent and make it easy to link from words in Facebook posts to other places on the web."

    This is a great challenge for 2016. Not specifically with Facebook, but with the larger idea of bringing back the web we lost, retrofitted for today’s app-centric internet. I hope to spend a good part of the year working on it.

    → 10:00 AM, Jan 5
  • Apple Watch still pretty great

    Stephen Hackett posted an Apple Watch follow-up recently. He has mostly stopped wearing it:

    "The Apple Watch can do a lot of neat things, and I miss its fitness tracking, but so much of it just doesn't fit my lifestyle anymore. It's not super useful for work, apps are still miserably slow and at times, its an additional distraction."

    The Apple Watch is a very personal device. It’s okay that it’s not for everyone. There’s no network effect; the watch isn’t better or worse if other people don’t use it. And it’s even okay if most of the apps are too slow to bother with. Fitness tracking, notifications, the time — for me, those 3 simple features are enough.

    Casey Liss also writes that notifications have been one of the most important features, letting him keep his iPhone ringer off:

    “The Apple Watch has allowed my iPhone to transition from being a personal device to being a private one. That’s a really profound change. More so than I expected.”

    Once every couple of months, I leave the house in a hurry and forget to put my Apple Watch on. I survive without it, of course, but I do miss it. After not wearing a watch for most of my life, it’s weird now if I don’t have the Apple Watch with me. I expect to use it for years to come.

    → 8:00 AM, Jan 4
  • Lowline Park

    Nice write-up at The Verge on the proposed Lowline Park, an underground park built in an old trolley terminal in New York City. The space has been relatively untouched for over 50 years:

    "Not that the abandoned trolley terminal, which opened the same time as the Williamsburg Bridge in 1903, is a neighborhood blight. In fact, it's in pretty decent shape right now. The station served elevated lines and trolley cars from Brooklyn, but closed in 1948 when trolley service was discontinued, and has been empty ever since."

    One of the highlights to our trip to New York City a couple of years ago was the High Line, a park built from an abandoned elevated freight train line originally scheduled for demolition. As a train fan — I did a podcast episode about trains and animation 10 years ago — I love to see any of these historic lines preserved in a new form.

    → 2:17 PM, Dec 21
  • Core Intuition 211 and fallback plans

    Today on Core Intuition, Daniel and I talk about my time at the tvOS Tech Talk and the recent executive changes at Apple. From the show notes:

    "Manton and Daniel discuss Apple TV development challenges, Apple’s executive team shakeup and its impact on the App Stores, and keeping a good attitude about successes and shortcomings as an ambitious indie developer."

    We wrap up the show with a conversation about taking risks and setting the right priorities for an indie business. Along the way I mention this tweet from Kazu Kibuishi, which I misquoted slightly. Here’s the actual text:

    "A professor once told me that 'if you have a fallback, you will fall back.' I have found this to be true."

    If you enjoy the show, consider letting a friend know about it, or leaving a mini review on Twitter or iTunes. Thanks!

    → 11:52 AM, Dec 18
  • Phil Schiller and the App Store

    Apple announced some leadership changes today, including that Phil Schiller will now lead the App Store on Apple’s various platforms:

    "With added responsibility for the App Store, Phil Schiller will focus on strategies to extend the ecosystem Apple customers have come to love when using their iPhone, iPad, Mac, Apple Watch and Apple TV. Phil now leads nearly all developer-related functions at Apple, in addition to his other marketing responsibilities including Worldwide Product Marketing, international marketing, education and business marketing."

    You may remember that Phil Schiller has gotten involved in controversial App Store rejections in the past, going back to 2009. See this post from Daring Fireball about Ninjawords, and another article at Techcrunch by MG Siegler.

    On recent episodes of Core Intuition, and in a blog post, I’ve argued that Apple can’t just make small improvements to the Mac App Store anymore. The time for slow iteration is over; now they have to make big changes to get developers back. I’d like to believe that putting Phil in charge is exactly that kind of first big step.

    Update: Less optimistically, though, there was this post in 2012 from Rogue Amoeba.

    → 10:49 AM, Dec 17
  • Core Intuition 210

    On the latest Core Intuition, we talk about open source Swift, it’s potential for web server frameworks, and more about blogging tools. From the show notes:

    "Daniel and Manton react to Swift’s open-sourcing, and the extent to which it adds momentum to the language and increases its appeal. They also discuss the open-sourcing of Microsoft’s MarsEdit-esque blog editor, Windows Live Writer."

    There were also a few new jobs posted to jobs.coreint.org yesterday. Check them out if you’re considering a change for 2016, or just curious what is out there for Objective-C and Swift jobs.

    → 4:32 PM, Dec 12
  • 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.

    → 11:00 PM, Dec 7
  • Last night&#039;s Spurs game

    Last night's Spurs game
    → 8:00 PM, Dec 6
  • Riverwalk at the King William district

    Riverwalk at the King William district
    → 6:00 PM, Dec 6
  • WordPress podcast and Calypso

    I’ve become quite the fan of WordPress and Automattic over the last year, since finally switching. WordPress still has some problems — mostly in self-hosted web admin performance, and the clunkiness of editing themes — but Automattic is a good company. Around web publishing and hosting, I think 2 platforms are going to last for decades: GitHub and WordPress.

    There’s a great interview with Automattic founder Matt Mullenweg on the Post Status podcast:

    "I had the opportunity to interview Matt Mullenweg about an ambitious project that included more than a year and a half of development to create an all new WordPress.com interface, both for the web and a desktop app. The project was codenamed Calypso, and we talked about many aspects of Calypso, as well as a variety of subjects that relate to it."

    After listening to this episode, I’ve subscribed to the podcast. Looking forward to being a little more aware of what is going on in the WordPress community.

    → 10:14 AM, Dec 4
  • Swift and Core Intuition 209

    Like many developers, I’ve spent the morning looking over the Swift open source release. I continue to be intrigued and look forward to working Swift into more of my routine.

    On today’s Core Intuition, Daniel and I talked about Swift for about half of the 50-minute episode. We recorded the episode yesterday afternoon, before the open source announcement, so we’ll be following up next week on everything that has changed. I bet there will be some more progress in Swift web server frameworks by then, too.

    → 4:13 PM, Dec 3
  • Too late to save the MAS?

    You’ve probably heard the news about Sketch. I found this section of their announcement the most interesting, because it highlights that this isn’t just about technical and strategic problems with the Mac App Store, but also about having a direct relationship with the customer to provide the best experience:

    "Over the last year, as we’ve made great progress with Sketch, the customer experience on the Mac App Store hasn’t evolved like its iOS counterpart. We want to continue to be a responsive, approachable, and easily-reached company, and selling Sketch directly allows us to give you a better experience."

    Of course, Sketch joins a growing list of apps unavailable in the store. From John Gruber:

    "Sketch isn’t the first big name professional app to be pulled from the Mac App Store (Bare Bones Software’s BBEdit, Panic’s Coda, Quicken, just to name a few). But Sketch is the poster child for Mac App Store era professional Mac software. It’s the sort of app Apple might demo in a keynote — and the winner of an Apple Design Award."

    Federico Viticci writes that Apple has to do something:

    "The simple reality is that, gradually, developers of the best apps for OS X are finding it increasingly hard to justify doing business on the Mac App Store. I hope Apple also sees this as a problem and starts doing something about it."

    Daniel and I talked about this on Core Intuition recently. Developers have been complaining about the Mac App Store for years without seeing any progress. It was over 3 years ago that I pulled my app Clipstart from the Mac App Store to sell direct-only instead, because of my concerns about adapting to sandboxing.

    All this time, Apple could have been iterating on the Mac App Store, improving sandboxing entitlements, improving review times, customer interaction, and more. Yet they have not. At this point, Apple can’t just do “something”. They can’t just improve the Mac App Store a little. They have to significantly improve it, addressing many issues at once. And even then, some of these great apps — Sketch, BBEdit, Coda, RapidWeaver — may not come back.

    → 11:41 AM, Dec 2
  • Apple Pencil, for real

    As we talk about on Core Intuition episode 208, I finally got an Apple Pencil. It’s great. My experience matches Gus Mueller’s, about how good the Apple Pencil is after years of using Wacom tablets and third-party iOS styluses:

    "I find that when using the HB Pencil in Procreate, I get something that is very, very close to what I feel when I'm drawing in my sketchbooks. But of course now I've got layers and many colors and a perfect eraser to work with. And endless pages. I love it."

    On the question of whether it’s a “stylus”, Ben Brooks sums it up this way:

    "That’s the question I get asked a lot from people — my wife especially. Apple will tell you it is not a stylus because it is so much better than any other stylus, it clearly is something else. So, instead, I’ll tell you that it is very much a stylus — it just so happens to be the best stylus I have ever encountered on any device."

    I’ve also been improving the Apple Pencil support in an iPad app I’m working on. I haven’t completely finished reading Russ Bishop’s article on supporting the Apple Pencil, but looks like it has a bunch of additional tips in it that I’d benefit from. It covers not just the API changes to UITouch, but also gestures, coalescing, and predictive touches.

    → 12:42 PM, Nov 30
  • Oak Alley Plantation

    Oak Alley Plantation
    → 10:00 AM, Nov 25
  • St. Charles Line streetcar

    St. Charles Line streetcar
    → 9:00 PM, Nov 24
  • Audubon Zoo

    Audubon Zoo
    → 2:00 PM, Nov 23
  • A diverse community through writing

    I read a lot of weblogs. RSS is a great way to keep up with sites that update infrequently, or that aren’t popular enough to bubble up on Twitter with dozens of retweets. But the Mac and iOS community has grown so much over the years. I know there are many new writers who haven’t been on my radar yet.

    Brent Simmons has posted a great list of tech blogs by women that I’m going through now. There should be something there for anyone interested in development or design:

    "I made a list of some blogs I already knew about, and then I asked my friends for more, and they totally came through."

    The list grew to include over 50 blogs as suggestions arrived to Brent via Twitter. I’ve already subscribed to a bunch and look forward to discovering even more.

    One of my favorite new blogs is the travel blog complement to Natasha The Robot, which made Brent’s list. Natasha was recently hired at Basecamp, runs the This Week in Swift newsletter, and writes on her new blog about working remotely. From a post about taking her laptop to restaurants in Europe:

    "The nice thing about this is that I get a really cool and inspiring office for a few hours - each cafe or restaurant has it's own vibe, people, music and I don't feel rushed internally knowing that I need to go back to my apartment or coworking space to actually work."

    When I quit my day job this year, it was partly so we could travel more without worrying too much about my work schedule, outside of when the kids are in school. In fact, just days after I finished writing my two weeks notice blog posts, we went to Europe and started a private family blog about the trip. So I’ve been inspired by Natasha’s blog as she shares her experience working in different cities.

    And that’s a theme you’ll find in many of the developer-oriented blogs on Brent’s list. Wanting to get better, learning something new, and then sharing it with everyone else. Take this advice from Becky Hansmeyer, who wrote a daily series of posts about what she learned building her iPhone app, one post each day while she waited for her app to be approved by Apple. From day 4, on design and color:

    "I think the biggest thing I learned in choosing colors and fonts for my app is not to get too hung up in making comparisons to other apps. I spent a lot of time looking at my favorite apps like Overcast and Tweetbot and thinking about the decisions the developers made, and as a result I wound up feeling like I had to make those same decisions. But that was stupid because my app is my own and is also designed for a much smaller market."

    Or this quote from Kristina Thai, who wrote a post about preparing to give a talk for the first time:

    "My presentation didn’t flow, it was jagged and very rough around the edges, but I kept at it, made some changes and it got better. And better. And even better. And then I practiced it in front of a couple of friends who gave me even more feedback until I was ready."

    Kristina also gave a talk called Become a Better Engineer Through Writing. You can get a sense of the talk by downloading the slides. It covers the value to programmers in keeping a private journal, why you might write tutorials for your site, and makes a strong case for blogging.

    Blogging isn’t difficult, but it’s still not yet as easy as tweeting. By creating a blog, you’re making a statement that you care about something. As I go through Brent’s list of bloggers, that’s what I’m looking for: what does the author care about, and what can I learn from or be inspired by in their writing? Because the more diverse our RSS subscriptions are — the more varied the opinions in what we read and share with others — the closer it gets us to a strong, healthy community.

    → 11:36 AM, Nov 19
  • Six Colors and the iPad Pro

    Jason Snell has posted his initial thoughts on using the iPad Pro:

    "What the past few days have taught me is that if I needed to switch from Mac to iPad, if I had a compelling reason, I could absolutely do it. I can edit podcasts, write articles, edit spreadsheets, generate charts and graphs, edit photos, build web sites, transfer files via FTP, and more."

    I don’t think Jason got an Apple Pencil or Smart Keyboard, although maybe he’ll have one of each in time for his full review. If you’ve enjoyed reading Six Colors as much as I have over the last year, consider subscribing too.

    → 11:33 PM, Nov 17
  • Blips microblog

    Jussi Pekonen has relaunched his weblog, with a new focus on microblogging:

    "I want to own all content I produce. That way I can ensure that everything I write does not go the way of the dodo when the latest and coolest microblogging platform goes belly up."

    He calls the short posts “blips”. I call mine snippets, which I borrowed from Noah Read. I like both names, but even more importantly, I like Jussi’s approach to owning his own content and providing a simple RSS feed of microblog posts. (I wrote more about RSS and microblogs a couple weeks ago.)

    → 3:45 PM, Nov 17
  • Core Intuition 206

    Yesterday we published episode 206 of Core Intuition. From the show notes:

    "Daniel returns from Amsterdam to find Mac App Store issues abound. Manton buys an iPad Pro but has to wait for the Pencil. The two discuss the Mac App Store’s 6-year failure to evolve substantially, and dig into the emotional highs and lows of enjoying and surviving Apple’s platform constraints."

    I really love how this episode turned out. It hits on several themes that have run through our show since the very first episode: a little tech news, some high-level coding talk, a bit of business analysis, and wrapped up with just how we feel right now about being indie developers. I hope you enjoy it.

    → 10:03 AM, Nov 14
  • Developing for the iPad Pro

    Let’s start with a quote from the MacStories review by Federico Viticci:

    "For developers, it's time to be bold with their iOS apps and understand that they can be more than single-purpose utilities. There are millions of people who aren't buying PCs anymore because mobile devices are their only computers."

    I’ve been using the iPad Pro a lot in just the last two days. Apps that have taken advantage of the larger screen — and that support iPad multitasking well — are just much more useful. It’s great to have Slack or Tweetbot in the sidebar and a writing app in the main part of the screen. (Until Editorial is updated, like Seth Clifford I’ve switched to Byword.)

    As a developer, going from an iPad Mini to an iPad Pro has opened my eyes to what Federico says above. You simply can’t have a great iPad app today if it doesn’t attempt to fit well on the iPad Pro. So although I said I would discontinue my app Tweet Library, I’ve actually been spending some time this week to update it to support iPad multitasking.

    The key to iPad Pro support is actually less about auto layout (although that’s helpful too), and more about split views and size classes. For a modern app, this is an easy transition. But Tweet Library was written for iOS 4. Back then, UISplitViewController was extremely underpowered. I had used MGSplitViewController instead, which I’ve modified over the years to adapt to multiple screen sizes from the iPhone to the iPad. So the first step to real iPad multitasking was to rip out most of the split view code and start over with a clean foundation based on iOS 8/9 and UISplitViewController. Not exactly trivial work that I could knock out in a day, although I tried.

    I remain very optimistic about the iPad Pro, especially when the Apple Pencil is actually available. From a business standpoint, it also seems like a better investment in time than either the Apple Watch or Apple TV. There are so many platforms and distractions now. If I can’t focus on a single platform, I want to at least be proactive in saving some attention for the iPad.

    → 2:19 PM, Nov 13
  • 4-inch iPhone rumors

    In the spirit of replying to podcast topics with blog posts, I have some comments after listening to a recent Clockwise. It was another great episode, featuring hosts Jason Snell and Dan Moren, and guests Christina Warren and Susie Ochs.

    The panel was split on the likelihood of a new 4-inch iPhone from Apple. Apple is a company of patterns, so it seems counterintuitive that they’d release a new phone in the Winter or Spring instead of the Fall. But doing so has a couple of nice advantages: first, you can bump up an otherwise slow sales quarter with a new product; and second, you don’t hurt sales of the primary iPhones (the 6S and 6S Plus) by confusing buyers with another choice. Customers perfectly happy with their iPhone 6 from last year, and who were planning on buying a 6S as a natural upgrade, now would be faced with an unexpected choice in screen size if the 4-inch phone had been announced alongside the 6S.

    Everyone also seems to forget about the newest 4-inch iPod Touch. It went on sale in July, features an A8 processor, better camera than the iPhone 5S, and sells for only $199. It’s easy to imagine Apple basing a new 4-inch iPhone on this design, reusing both the screen and many of the internal components from the iPod Touch.

    Apple has sold a lot of iPhone 6 and 6S phones. But there are also a lot of 4-inch devices out in the world: of course the iPhone 5, 5C, and 5S, but also every iPod Touch sold in the last few years. There are many people who would love to replace their old phone with a new one that’s better and faster, but not bigger.

    → 1:19 PM, Nov 13
  • The incomplete iPad Pro

    I ordered my iPad Pro online and picked it up in the store today. My excitement for this device is all about the Pencil, which doesn’t ship for a few more weeks. The store didn’t receive any and employees have no idea when they will get it. They didn’t receive any Apple keyboards either, so I left with the only remaining accessory in stock: the white smart cover.

    I don’t think I’ve ever been less excited to walk out of a store with a brand new $800 gadget. The iPad Pro has so much potential. I think it’s going to be a success and I’m building apps for it. But without the Pencil and keyboard, a significant part of the appeal is missing. And worse, developers who need a Pencil to start testing their apps — especially those apps like the one I’m working on that already supports third-party stylus pressure — are put at a month-long disadvantage compared to Adobe and the other early partners.

    I enjoyed reading the iPad Pro reviews this morning, especially from Daring Fireball and MacStories. But those reviews describe a product that just doesn’t exist today. The iPad Pro as advertised on Apple’s web site and in beautiful marketing videos isn’t ready, and I wish Apple had delayed the whole launch until they could deliver these important accessories for a complete user experience.

    → 3:36 PM, Nov 11
  • Stars vs. hearts and Twitter&#039;s decline

    In an essay about Twitter written in 2014, Ben Thompson described why he believed in the service:

    "I think this actually gets to the problem with Twitter: the initial concept was so good, and so perfectly fit such a large market, that they never needed to go through the process of achieving product market fit. It just happened, and they’ve been riding that match for going on eight years."

    I’ve always thought the same thing. That Twitter started out so good, with such strong core features, that those basic features have carried it through all the years of missteps and inaction. But it’s not just that the features are “good” (although they are); it’s that they are unique.

    Listening to the Connected podcast the other day, Federico Viticci and Myke Hurley made the statement that only nerds care about Twitter changing stars to hearts, favorites to likes. I was nodding in agreement until I talked to my daughter. She also didn’t understand why they would change away from stars, and she’s been on Twitter less than a year.

    It’s not just nerds. Many new Twitter users recognize the subtle difference implied with hearts. But I realized that there’s something even more important about what this change says. Why is my daughter even on Twitter, in addition to Snapchat, Instagram, Facebook, and Vine? Because — even if most people can’t pin down exactly what makes it special — everyone knows Twitter is different and interesting.

    All Twitter has going for it is its uniqueness. The timeline user experience, the retweets and favorites, the hashtag, and the short 140 character posts. Changing any of those key strengths to be just like every other social network means they’re watering down their own potential impact. Eventually that approach will produce a bland product that has no unique qualities.

    We’ve already seen the timeline experience significantly altered. Promoted tweets, “while you were away”, inline conversation threads, and Twitter cards. Twitter in 2015 looks a lot more like Facebook than it did a few years ago, to everyone not using third-party Twitter apps.

    Growing the user base is fine. But making Twitter more accessible to new users won’t do any good if you lose the much larger base of passionate users who have loved the product for years because it’s unique. You’re not going to beat Facebook by becoming even more like Facebook. If that’s Twitter’s strategy, then the service is already in decline.

    → 1:05 PM, Nov 9
  • RSS for microblogs

    RSS is solid. It’s lasted a long time with very few changes, and forms the foundation for subscribing to weblogs and delivering podcasts. It’s huge and the open web is a much better place because RSS exists.

    But even if RSS doesn’t need to change, some types of apps would be better off if we took a fresh look at the elements in an RSS feed. What is really needed, and when faced with multiple “correct” options, which should we choose? As more writers embrace microblogging, it’s an opportunity to simplify our feeds and tools.

    This is my proposal for a bit of housekeeping around microblogging. It’s not a new format. It’s just a guide for producing the best RSS. I’d divided this proposal into 5 sections below.

    Minimum viable elements

    Look at the average RSS feed and there’s a lot of junk in it that most RSS readers ignore. While there’s nothing wrong with including extra XML elements, we should strive for a feed that is simple enough to be easily read. The fewer redundant and unused elements, the more consistently that different RSS readers will interpret it.

    Here’s an example of an RSS feed whittled down to its essential elements. Most feeds should look like this by default, and only add additional elements from the RSS spec or RSS extensions when it’s absolutely required (such as the enclosure element for podcasting).

    <rss version="2.0">
        <channel>
            <title>Manton Reece</title>
            <description>Manton's weblog.</description>
            <link>[www.manton.org/</titl...]([www.manton.org](http://www.manton.org/)</title>)
            <item>
                <title></title>
                <description><![CDATA[
                    <p>Hello world.</p>
                ]]></description>
                <pubDate>Fri, 04 Sep 2015 15:32:32 +0000</pubDate>
                <guid isPermalink="true">[www.manton.org/2015/09/3...]([www.manton.org](http://www.manton.org/)2015/09/3007.html</guid>)
                <link>[www.manton.org/2015/09/3...]([www.manton.org](http://www.manton.org/)2015/09/3007.html</link>)
                <author>@manton</author>
            </item>
            <item>
                ...
            </item>
        </channel>
    </rss>
    

    Title is optional

    The existing RSS spec says that title is optional. In fact, in the early days of blogging, tools such as Radio Userland and Blogger didn’t even have titles. We got away from that with the popularity of Movable Type and WordPress, even though some modern apps like Tumblr still look at a title as unnecessary for certain post types.

    With microblogging, the title will frequently be empty or missing. Do tweets have titles? No, and neither should short microblog posts published through a traditional blog platform. Skipping the title removes some friction in the writing process, making it easier to write a quick post and send it out.

    RSS readers must be prepared for a title-less RSS item. Instead of inserting “Untitled” as the placeholder title, think about how your reading UI can accommodate microblog posts gracefully. Blank titles (where the title exists but is an empty string) are equivalent to a completely missing title element.

    HTML post text

    The description XML element in RSS wasn’t originally intended to support HTML. It was often a text summary or opening paragraph of an article, rather than full text. With microblogging, you always want the full text inside the RSS feed, including any styled text or inline HTML links.

    Some feeds will include the plain text version of a post in the description element, and the HTML version in a content:encoded element, as specified by this RSS namespace extension. This should be avoided in favor of a single description element with the full HTML, using CDATA syntax to avoid escaping characters.

    In modern apps, rendering simple HTML is common. If an RSS reader can’t show HTML, it should strip out the HTML tags itself. It’s not up to the feed to provide multiple versions. If both description and content:encoded are present in a feed while parsing, for compatibility it’s acceptable to prefer whichever includes HTML.

    JSON

    I said this isn’t a new format, but we should have the option of expressing RSS in JSON instead of XML format. Back in 2012, Dave Winer wrote about producing a JSON-based RSS feed, with a very literal mapping of elements. If our goal is to cleanup some of the edge cases of RSS, though, we can further simplify it. I’d suggest collapsing a few of the elements, so that it isn’t overly nested like XML, and to JSON-ify the item elements into a simple items array:

    {
        "channel": {
            "title": "Manton Reece",
            "description": "Manton's weblog."
            "link": "[www.manton.org](http://www.manton.org/)"
        },
        "items": [
            {
                "title": "",
                "description": "<p>Hello world.</p>",
                "pubDate": "Fri, 04 Sep 2015 15:32:32 +0000",
                "guid": "[www.manton.org](http://www.manton.org/)2015/09/3007.html",
                "link": "[www.manton.org](http://www.manton.org/)2015/09/3007.html",
                "author": "@manton"
            }
        ]
    }
    

    This preserves the element names and overall feel of RSS, while being cleaner and more JSON-like. Note that it’s easy to embed HTML directly in the JSON description field. Because there’s no room for an isPermalink attribute, if the guid is a URL, it is always the permalink.

    Authors

    A feed for a microblog platform, or a group weblog, might include multiple items each from different authors. The RSS spec says that the XML “author” element is an email address, but that is very rarely used in real feeds.

    Instead, the author element value should vary slightly from the original specification to include either a simple full name, or a username prefixed with the @-sign: <author>Manton Reece</author> or <author>@manton</author>.

    What do you think? I’d love to hear any feedback via email. If you write on your own blog about this, send me the link.

    → 11:30 AM, Nov 3
  • Accelerated Mobile Pages from Google

    The project technical overview for AMP has the goals and basic info. In a nutshell, the new format encourages a return to more bare-bones HTML, with some added functionality for common web patterns. On the balance between bloated ad platforms and user experience:

    "Embedding an ad or analytics often implies giving up control of what eventually happens to a site because they can typically inject any JavaScript they want into pages. AMP HTML does not allow this. We realize that both ads and analytics are an important element of monetization on the web, and so we need to support them: our goal is to realign monetization with great user experience."

    Instead, “tracking pixels” are used for analytics. These should be easily skipped by ad blockers, but apps that support AMP will need to use a custom web view anyway, where ad blockers on iOS aren’t allowed. This may continue to limit the appeal of Safari View Controller.

    Wired covers the announcement and describes how AMP might be integrated into Twitter and other native apps:

    "One surprise beneficiary of AMP may be Twitter. While it’s not a publisher per se, it’s becoming an increasingly important player in news, most recently with the launch of its Moments feature, which makes news easier to follow on Twitter by organizing Tweets in a chronological, coherent timeline. Now, Twitter will automatically load any articles that are compatible with AMP as AMP files, meaning they will benefit from the same speed inside the Twitter app."

    There’s more on GitHub. On the surface this seems like a more open approach than Facebook Instant Articles or maybe even Apple News Format (which is finally public). That WordPress is supporting AMP is a good sign.

    → 11:22 AM, Nov 2
  • Lantana

    Lantana
    → 5:00 PM, Nov 1
  • Apps on the new Apple TV

    We’ve had fun since Friday exploring the App Store on the Apple TV. There are a lot of expected apps but also some nice surprises. The only app that’s really missing for us is Sling TV. As soon as that ships, we’ll no longer need the Roku.

    I love apps that use full-screen photos to take advantage of the big screen — obviously games and streaming video, but even apps like Airbnb. Conrad Stoll also released a new game called Picturesque, where you try to identify photos of national parks in a time limit that varies by difficulty:

    "It's always exciting when you can build a product that bridges different hobbies and interest. Picturesque combines my work as an iOS developer with my passions for Backpacking and Photography. I'm happy for the result to be both my first game and my first foray into this new platform."

    It’s also great to see Space Age make the jump to the Apple TV. We’ve been playing a few games that are free downloads because we had already purchased them on iOS, including Oceanhorn and Crossy Road.

    → 3:00 PM, Oct 31
  • The now page

    Last week, Derek Sivers had a great idea. We’re constantly writing about the things we care about and whatever we’re working on, but the nature of blogs is that posts are always falling off the home page. There’s rarely a single place to get the tl;dr summary of what someone is working on.

    This idea hit home for me last week at Release Notes when several people asked how to sign up on my microblog project announcement list. I’ve linked to it several times in blog posts, but I didn’t have an easy place to point people to without asking them to dig through the archives. A /now page is the perfect place for that kind of thing.

    Shawn Blanc linked to his page too, which reminded me to put my own /now page together. You can read mine here: manton.org/now.

    → 10:46 AM, Oct 30
  • Medium.com updates

    Ev Williams announced a batch of new Medium features recently:

    "There’s always another level. Another level of polish and power in our product. Another level of breadth to our content. Another level of dialogue and discussion. And another level of progress. Today, we are announcing a slew of updates to bring Medium to the next level and in the process make it more powerful, more fun, more democratic, and more essential."

    Those updates include new mobile apps, @-mention support, a publishing API, and editor improvements. There’s also a new logo. (I know they put a lot of thought into this, and it’s a strong idea, but to me the logo’s design is so clever it’s actually kind of distracting. A little more subtlety in how they’re using depth could improve future iterations.)

    Daniel Jalkut blogs about what’s included (and what’s left out) in Medium’s new API:

    "One of the most unique aspects to Medium’s API is the provision for specifying a canonical URL and license on a post being submitted to the service. The canonical URL refers to another web location that should be considered the original, or most authoritative version of a post, while the license designates whether the post’s copyright terms stipulate a post is sharable as public domain or under a particular Creative Commons license. These attributes together indicate that Medium expects and encourages users of the API to contribute content that is not intended to be exclusive to Medium."

    While I generally think the trend to centralized writing platforms is bad for the web, I’m happy to see these changes from Medium, especially the API and expanding custom domain support. Medium has grown very slowly and carefully. I expect we’ll see quicker iteration on these new features now that they’re officially out.

    In the process of experimenting with Medium posting, Dave Winer shared his take on post title support:

    "It seems they have arrived at what I think is the correct answer: posts can have titles or not, and the content system has to be prepared for either case. That's where this blog was in 1999, before other blogging tools and Google Reader pushed the world toward requiring titles. And then Twitter came along not having titles at all, and the intersection between all the kinds of blog-consuming environments became almost empty."

    I’m very interested in this because microblogging shouldn’t include titles. While Medium is mostly traditional essays, clearly comments don’t need titles, and Medium’s quick-posting UI encourages short posts. I hope this approach will get more RSS readers to gracefully handle title-less posts.

    → 11:05 AM, Oct 29
  • Gravity and the App Store

    Dan Moren, writing at Six Colors about the rejected app Gravity:

    "Really, what Apple needs is a small group within the App Store review team to flag apps that are pushing the envelope in smart, respectful ways; work with those apps’ developers; and present overall recommendations to App Store leadership—perhaps even reporting directly to Eddy Cue."

    I love this idea. It would both minimize unfair app rejections and help innovative apps bubble up to the featured sections in the App Store.

    → 3:50 PM, Oct 28
  • Release Notes 2015

    The best blog posts we write are as much for ourselves as for our readers. That’s one of the traits that makes personal blogging so special.

    I published my essay last week from the hotel at Release Notes, right before heading downstairs as the conference got underway. Almost no one had read it yet, but the essay still helped me because it made me even more aware of when I accidentally monopolized a conversation. I did end up talking a lot about my new project while at Release Notes, but I also caught myself many times, making sure to turn the conversation around and listen.

    And there was plenty to hear at Release Notes. I got something out of every talk and from many conversations with developers who I had never met before. Congratulations to Charles and Joe for putting together a great conference.

    Highlights for me included Myke Hurley’s opening talk on Wednesday night about quitting his job and the first full-time year of Relay FM; Rob Rhyne’s fantastic whirlwind tour of accounting, which scared me a little because of everything I still don’t know about being independent; Jean MacDonald’s talk about podcast sponsorships and the fundraiser for App Camp for Girls; Pieter Omvlee’s advice on aiming to build a bigger business; and David Smith’s talk, which I’ll get to later. I could pull out lessons from each of these talks as well as the others from Rachel Andrew, Georgia Dow, John Saddington, Chris Liscio, Daniel Pasco, and Jim Dalrymple.

    Thursday night was the “dine around”, a clever idea to split attendees into groups of about a dozen people, each meeting for dinner at an assigned restaurant. It’s easy to fall into cliques at conferences. This was a great solution to mixing it up, all but guaranteeing that you’ll meet someone new.

    It’s worth saying something about the venue. Converted from the Indianapolis Union Station, which was built in 1853, the conference center and hotel served as a beautiful backdrop to the conference. My hotel room was even made from an old train car. As we left the conference center late Friday afternoon, I took another look up at the vaulted ceiling and stained glass windows, making a mental note to read more about the history of the original train station.

    On Saturday I checked out of the hotel, walked up to Bee Coffee Roasters (where I ran into a couple other attendees who were also still processing everything we learned at the conference), and then took an Uber to the airport. My driver was a musician; he had toured the country playing with bands, was working on a soundtrack which he played on CD for me, and had such an optimistic take on the world that it struck me in obvious contrast to the negativity we see online sometimes.

    And he said something that stayed with me even longer while I waited at airport security and for my flight to board. He said that everything he had wanted to do in life, he had done. Sure, he’d love to tour with another band, he’d love to find success with his new music. But already he was content. He laughed when he said he could die happy, and he was not old.

    David Smith mentioned in his talk at Release Notes that he used to want to do everything. Have a best selling app, win a design award, be admired by his peers, and other goals that many of us share. It was only when he set out with a more singular focus — judging every decision by whether it moved his business forward so he could continue to support his family — that all the other secondary goals started taking care of themselves as well. It was a great talk and something I needed to hear.

    As a community we’re ambitious. We want to build something amazing and we want to make a positive impact on the world. But this week was also a reminder to me that it’s okay to be more focused, to tackle niche vertical apps, or make small boring decisions that will help our business. It’s okay, even as we want to do more, to slow down and be proud and content with the path that we’re on.

    → 12:52 PM, Oct 26
  • Indianapolis Union Station

    Indianapolis Union Station
    → 1:00 PM, Oct 25
  • Myke Hurley at Release Notes

    Myke Hurley at Release Notes
    → 1:00 AM, Oct 22
  • A great developer can come from anywhere

    It’s March 2009, the height of SXSW in Austin before the conference gets too big for itself. I’m hanging out downtown with tech folks from a blogging startup, having dinner and beers before we head to the party they’re putting on. The CTO, one of the first employees at the company, is talking about Memcache servers and MySQL scaling, and I’m hanging on every word. I love this stuff.

    I’m a Mac and iOS developer, but I often take a break from native app development to work on server software. So I’m asking him about MySQL replication and what it’s like to run a schema migration without the database falling over. The conversation sometimes shifts back to Apple platforms, and he says he’s been thinking about going to WWDC. I had been attending WWDC for a while, so I say sure, it’s expensive but you should consider it. If you’re doing more web stuff, though, maybe it’s not as important that you attend.

    We walk over to the party venue. It’s bigger and more crowded than he thought it would be. Their company has really taken off, growing well beyond the early days when it was just him and the founder trying to build something new. And it’s at this point that he turns to me and asks a question that brings us back to iOS development:

    "So what do you think of my app, Instapaper?"

    In answer to Marco Arment, at that time the CTO of Tumblr, I mutter something about liking it, but I haven’t really gotten it into my workflow yet. Hopefully whatever I said was encouraging. In subsequent years, of course, Instapaper would be one of my favorite apps.

    Later, replaying these conversations, I realized that I asked the wrong questions and gave the wrong advice. About WWDC, I should have said “Yes, absolutely!” with an exclamation point. Buy a ticket. If you can’t afford it, go anyway because you need to be there.

    But I didn’t say that because I wasn’t listening closely enough. I was so busy asking questions about Tumblr, that I wasn’t listening to the excitement in his voice about Instapaper. I was so busy thinking about server scaling and databases and all this other stuff that I could’ve learned from a book, that I didn’t hear what he was really saying.

    I should have asked about iOS pricing, free versions, sales, UI design, who did the icon, what does the private API look like. But I didn’t ask those things because I missed the big picture, how dominant the App Store would become for distribution, and so I missed what mattered. I’d like to think that since then I’ve gotten better at listening.

    Daniel Jalkut and I had Marco as a special guest on Core Intuition 200 not just because he’s a friend but also because he so well represents the goal that many of us have and our listeners have — to start our own company, to find success not just one time but again and again, and to have as thoughtful an approach as possible in the craft of software development.

    This week I’m in Indianapolis for the Release Notes conference. While I will have some stickers for anyone interested in my new microblogging platform, and I’ll probably ramble about it at some length if asked, I’ll also be listening. I’ll be listening because you never know which random developer you just met will end up doing their best work in the years ahead, and you want to be as encouraging as possible, offer the right kind of feedback, and also learn from their perspective.

    There’s a great line in the Pixar movie Ratatouille:

    "Not everyone can become a great artist. But a great artist can come from anywhere."

    I believe that’s equally true for developers. We often see someone go from nothing to a top app in the App Store. We often see someone start without an audience and then make friends on Twitter and blogs through the quality of their writing alone. And so we welcome new voices all the time if they’re respectful.

    There’s been some debate about Overcast 2.0’s patronage model. Some of the discussion is healthy — how does a successful business model for one developer apply to other apps? — and some of the discussion is divisive. Instead of asking the right questions, it’s easy to jump straight to a conclusion with the dismissive statement: “that’s fine for Marco, but his approach would never work for other developers”.

    The “that’s fine for Marco” attitude is poison for our community because it takes the opposite approach as that Ratatouille quote above. It implies that some developers have such an advantage that the rest of us shouldn’t even bother, because it’s not a level playing field. It’s true that some developers today have an advantage, whether through good timing or just a long history of shipping apps, but the lesson isn’t to give up; it’s to instead learn from it, and look at our own strengths. What small head start do we have that could grow into a great success tomorrow, too?

    Rewind a handful of years, back to that day at SXSW when I could name plenty of developers who had more attention and success in our community than Marco Arment. You can be damn sure that didn’t discourage him from taking Instapaper from an “in my spare time” niche app to the top of the News section on the App Store.

    I’ll never accept the implied negativity in the “that’s fine for Marco” argument. I’ll never accept that we should be jealous of another developer’s success instead of inspired by it to do our best work.

    → 4:43 PM, Oct 21
  • Core Intuition 202 and Thoroughly Considered (and stickers!)

    We posted episode 202 of Core Intuition yesterday. This was a fun episode because we didn’t plan for it; we just started talking. From the show notes:

    "Manton and Daniel discuss the paralysis of choosing what to work on as an indie, Manton’s mysterious Kickstarter campaign, and the allure of company stickers and other marketing stuff."

    Make sure to listen through the end for why I ordered stickers for my new app. If you want one, you can email me or send us podcast feedback.

    As I said on the show, I highly recommend checking out Thoroughly Considered, the companion podcast for Studio Neat’s Kickstarter project. While you’re there, also consider backing the project, at the podcast level or the full Obi product if you have a pet that would love it. Even if it doesn’t successfully fund, I really enjoyed the first couple episodes of their podcast and hope it continues.

    → 10:36 AM, Oct 16
  • Core Intuition 201

    Today we published episode 201 of Core Intuition. From the show notes:

    "Daniel and Manton discuss Manton’s search for indie development contracts, the market in general for iOS and Mac contracts, and the range of options for obtaining free and low-cost SSL certificates."

    And speaking of podcasts, congrats to Marco Arment on shipping Overcast 2.0. It’s a great update.

    → 2:35 PM, Oct 9
  • Scott Knaster visits the Steve Jobs movie office

    Scott Knaster blogged about his day advising the crew of the new Steve Jobs movie:

    "Every room had things taped up on the walls. Giant blown up pictures of the different events they were going to re-create. One entire wall was nothing but ancient Mac error messages. Another was photos of buildings where different Apple events happened. One wall had pictures from the Internet of random Apple employees from the '80s."

    Apple seems intent on downplaying this movie as inaccurate and unfair to Steve, but it’s not supposed to be a documentary. It’s promising that they asked Scott Knaster for help getting some of the everyday details right. I’m really looking forward to it.

    → 10:10 AM, Oct 7
  • Jack Dorsey to lead Twitter again

    Three years ago today I posted my last personal tweet. That time and distance away from mainstream social networking has given me a new perspective on the importance of independent microblogging. It has shaped where I write and what tools I build.

    But Twitter remains as fascinating as ever. Just a few weeks ago, the board seemed unsure about letting Jack Dorsey split his time between Twitter and Square:

    "The responsibilities of running Square, which Dorsey reportedly refuses to give up, may now stand in the way of a Steve Jobs-esque return as Twitter’s full time chief executive. In June, its board took the unusual step of publicly declaring that it would only consider candidates 'who are in a position to make a full-time commitment to Twitter', a thinly-veiled reference to Dorsey’s preoccupations."

    Then they backed away from that:

    "That declaration, as it seems to have turned out, has been a largely empty one. The idea that Dorsey might return gained steam among people both inside and outside the company over the past few months even though he had no intention of leaving Square. He even referred to the companies as his two children when discussing the dilemma, according to a source."

    Today they officially announced that Jack will return to lead Twitter. Of all the recent articles, my favorite is this one from Recode, a long profile on Jack’s role and changing attitude:

    "He seems to be a completely different man than the one who returned to Twitter in March 2011 as executive chairman and product czar. Former colleagues recall a man looking for payback for his 2008 ouster; loyalty was key, and many who were loyal to Twitter’s other co-founder, Ev Williams, were booted from the company. Back then, Dorsey would routinely sit in on meetings without saying a word. When he did speak, his contributions were so abstract that few understood what he was talking about. In some cases, he’d simply write a single word or two up on the whiteboard."

    And it goes on, showing how Jack has matured as a leader. Everyone will be watching what he does, and how Twitter evolves. Every article written about an upcoming Twitter feature will mention Jack’s involvement, no matter how insignificant. He’s a big part of the story now.

    Ev also wrote about the official announcement:

    "Twitter is bigger and more important to the world than we ever dreamed when we started. And it still has incredible, unrealized potential. It will not be easy to unlock it. But we have thousands of smart, creative people working every day to make the company great. And Jack has already demonstrated the ability to inspire the team and think boldly about the next phase of Twitter."

    The greatest challenge for Jack will be figuring out how to take whatever those thousands of employees are working on and turn it into actual user-facing features that ship to customers. Federico Viticci, reviewing the new Tweetbot 4 release last week, wrote about how Tapbots has built something more ambitious than the official Twitter for iPad app, even though Twitter has a much bigger team:

    "On the other hand, Twitter for iPad – long ignored by the company – has emerged again with a stretched-up iPhone layout presented in the name of 'consistency'. It's a grim landscape, devoid of the excitement and curiosity that surrounded Twitter clients five years ago."

    I still run Tweet Marker, which was created during that period of innovation that Federico refers to, but my focus now is on indie microblogging and the open web. I’m content to watch Twitter from the sidelines and wish Jack the best of luck.

    → 5:05 PM, Oct 5
  • Core Int 200 with Marco

    Last night we published our 200th episode of Core Intuition. To mark the milestone, Daniel and I welcomed special guest Marco Arment. We talked about the goals behind Overcast, his thoughts leading up to version 2.0, the podcast industry, and supporting our products, with a closing discussion about the new iPhones and proper use of 3D Touch.

    Thanks everyone for your support of the show. I hope you enjoy this one.

    → 8:08 AM, Oct 2
  • The Lightbox

    In 1999, I started a link weblog to collect news about animated films. I updated it for a few years, until there were plenty of other good news sources from industry writers more qualified than I was to run such a site. I was just a fan.

    The site was a homegrown MySQL database and set of PHP scripts. Somewhere along the way, I lost the archive, and never noticed that the site had broken until today. To make matters more difficult, I had blocked it in my robots.txt, so the Internet Archive copy (which existed, at least in parts) wouldn’t load cleanly.

    I took some time today to piece it back together as a new static HTML file and (partial) RSS feed. I’ve preserved the original design and HTML tags. Fun rediscoveries in the HTML include spacer GIFs, <blockquote> to indent the entire page, and RSS 0.91.

    I called it The Lightbox. It was just a linkblog. But now 16 years later, I’ve enjoyed skimming through the old posts.

    → 3:42 PM, Sep 28
  • iAd hypocrisy

    I was looking for a different old post in my archives, and stumbled on this one: “I hope iAd fails”, which I wrote 5 years ago this month. One of my points was that we had a healthy marketplace in the App Store for normal people to actually pay for apps:

    "Do we really want to give that marketplace up? Because once it’s gone, and iAds are the norm, it will be an uphill battle to get anyone to pay for anything."

    Fast-forward 5 years to today, and well, we’re on that hill right now. Except there’s a landslide and I don’t know who’s going to get buried.

    On the Upgrade podcast, Jason Snell and Myke Hurley talked about whether iOS 9’s Apple News was relevant: what problems is it solving, if any, and — because it will feature unblockable ads powered by iAd — how does it fit into the larger issue of blocking web ads and closed platforms? The discussion starts about an hour in.

    (If you’ve used Apple News already, you may not have even seen any ads yet. But Apple’s page on Apple News Format makes it clear that they will be encouraging iAd for publishers: “Monetization is made simple with iAd”.)

    I stand by the opinion that iAd is a mistaken strategy. Apple, if you’re serious about this fight with Google, go all-in on the fight and abandon iAd. It seems hypocritical to attack web ads while rolling out your own news platform with ads that can’t be blocked.

    → 10:07 AM, Sep 28
  • Instagram hits 400 million users

    From Graham Spencer at MacStories, commenting on the latest Instagram numbers and that the service is only 5 years old:

    "But I was really surprised to remember that Facebook acquired Instagram in April 2012, when Instagram had 'only' 40 million users. If I recall correctly, a lot of people thought Facebook was crazy to buy Instagram for $1 billion. Well, I think Facebook got the last laugh on that one, and as Forbes points out, Instagram now has more monthly active users than Twitter (316 million)."

    Impressive growth, but it fits. Instagram has crafted a user experience that encourages thoughtful posts and never feels overwhelming in the way a Twitter or Facebook timeline can be. If Instagram was a paid product, I bet Instagram’s churn rate would be the lowest of any of the big social networks. They did it with a small team and weren’t afraid to grow slowly.

    → 9:34 AM, Sep 23
  • Complete mirror of this blog

    I’ve been blogging here for 13 years. If you take any random post from that first year, the majority of the links to other web sites are broken. The default outcome for any site that isn’t maintained — including the one you’re reading right now — is for it to vanish. Permanence doesn’t exist on the web.

    We can solve this, but it will take time. For now I think mirroring our writing is a great solution, to guard against domain names expiring and other inevitable failures. But where to mirror to?

    Only 2 companies keep coming to mind: WordPress.com and GitHub. I believe both will last for decades, maybe even 100 years, and both embrace the open web in a way that most other centralized web sites do not.

    Even though I self-host this weblog on WordPress, I’ve chosen to mirror to GitHub because of their focus on simple, static publishing via GitHub Pages. It has the best chance of running for a long time without intervention.

    I exported all of manton.org with the httrack command-line tool and checked it into GitHub, with a CNAME for mirror.manton.org. It works perfectly. I still need to automate this process so that it updates regularly, but I’m very happy to finally have a complete mirror for the first time.

    → 2:00 PM, Sep 20
  • Steve Jobs and ET

    I watched two documentaries last week. The first was “Steve Jobs: The Man in the Machine”, which I somewhat regret paying $7 to rent. It had its moments, but also seemed to become more negative and dramatic the longer it went on. I guess we should all hope to be so lucky and famous to have people try to bring out the best and worst of us.

    The second documentary I watched was “Atari: Game Over”, which was free on Netflix. It was great, interspersing a history of the rise and fall of Atari with the effort to dig up the ET game cartridges supposedly buried in New Mexico. Highly recommended.

    → 6:00 PM, Sep 19
  • Peace, indies, and the App Store

    You’ve probably heard that Marco Arment has pulled his content-blocking app Peace from the App Store. The app was extremely successful:

    "As I write this, Peace has been the number one paid app in the U.S. App Store for about 36 hours. It’s a massive achievement that should be the highlight of my professional career. If Overcast even broke the top 100, I’d be over the moon."

    I’ve seen some comments asking why he didn’t think to do this sooner, before he even shipped the app. But we are just now starting to understand the impact of ad blockers in iOS 9. I don’t think it’s an exaggeration to say that the web is different than it was a few days ago, and so our choices — and Marco’s — are different too. As I mentioned yesterday, content blockers are one facet of an overall shake-up for the web.

    Brent Simmons writes that only indies can do what Marco did. Marco must have left a lot of money on the table with this decision. It will always look like the right call to me when someone goes with their gut feeling and not with profit.

    → 10:53 AM, Sep 19
  • Core Intuition and ATP this week

    On this week’s Core Intuition, Daniel and I spend the whole show talking about the Apple TV. The first half is about the Apple TV dev kit lottery, and the second half is about whether we need the web on our TVs.

    There’s also a good discussion on the Accidental Tech Podcast about this. Here’s an Overcast link about halfway into the episode.

    → 3:25 PM, Sep 18
  • Wrap-up thoughts on the TV web

    I’m going to mostly let John Gruber have the last word on the Apple TV vs. the web debate, because I could write about this every day and my readers would run away before I run out of material. I’m glad John addressed the Mac vs. the command-line argument, though, because it didn’t seem quite right to me either. He says:

    "The difference is that the command-line-less Mac was intended to replace command-line-based computers. The GUI relegated the command-line interface to a permanent tiny niche. Apple TV and Apple Watch aren’t like that at all — they’re not meant to replace any device you already use to access the open web."

    This is the most hopeful part of the Apple ecosystem as it relates to the web. Apple’s other platforms really do have a great web experience. Remember when web sites were faster and worked better on a PC than a Mac? If anything, the opposite is true now.

    One of the themes I keep hearing is that a “web browser” on a TV will make for a poor user experience, so don’t bother. I tried to correct that misunderstanding in this post; it’s not about standalone Safari, it’s about web technologies that could be used in native apps. But ignoring that, I think everyone too easily forgets what the mobile web was like before the iPhone.

    Steve Jobs, from the original iPhone introduction:

    "We wanted the best web browser in the world on our phone. Not a baby web browser or a WAP browser — a real browser. [...] It is the first fully usable HTML browser on a phone."

    That was a breakthrough. I believe the same evolution is possible on tvOS — to include parts of the open web and do it with a great user experience. You can start by weaving it together inside native apps. (I filed a bug with Apple yesterday with a suggestion. It was marked as a duplicate.)

    The web is at a fascinating, pivotal time right now. It has been shaken up by centralized publishing, closed platforms, and now content blockers. Users no longer value the concepts that made Web 2.0 special. The web can still have a strong future, but we have to try something, and we have to try it on every platform we can.

    → 9:58 AM, Sep 18
  • Peace for the web

    I haven’t paid too much attention to ad blocking until this week, even though I had been running the iOS 9 beta since WWDC. Several content blockers were released yesterday, like Marco Arment’s new app Peace. Marco writes:

    "You won’t believe how fast browsing the web can be without the bloated, privacy-invading junk that too many publishers force on you without your knowledge or consent."

    Today, Nilay Patel has an essay framing the issue as a fight between Apple, Google, and Facebook, with the web as a casualty:

    "And with iOS 9 and content blockers, what you're seeing is Apple's attempt to fully drive the knife into Google's revenue platform. iOS 9 includes a refined search that auto-suggests content and that can search inside apps, pulling content away from Google and users away from the web, it allows users to block ads, and it offers publishers salvation in the form of Apple News, inside of which Apple will happily display (unblockable!) ads, and even sell them on publishers' behalf for just a 30 percent cut."

    I’m conflicted on this. I hate ads, and I think good publishers can adapt, but I’m also concerned that some progress we’ve made in native apps and user experience could be offset by steps back in open platforms. The health of the open web is more important than any one company, including Apple.

    → 9:59 AM, Sep 17
  • The web without HTML

    On Twitter, Alex Fajkowski responded to my blog post about tvOS with this:

    "They have access to the open web—NSURLSession exists. HTML rendering is inappropriate for the watch and tv."

    I disagree with both of those sentences. Maybe Alex didn’t read my full post, because I wrote that web services are not enough. HTML and links and URLs are equally important parts of the open web. NSURLSession gets you web services but nothing else.

    (As an aside, HTML turns out to be a pretty useful format for styling text, too. Why wouldn’t you want to use it for iTunes movie descriptions on the TV, for example? That seems completely appropriate.)

    Think about the full scope of the internet. What percentage of content is available via web services — that is, structured data that can be parsed and displayed with a custom, native UI — compared to all the traditional, HTML-based web sites? You’ll find that there is an almost unimaginably large number of that latter kind of web site, and the only way to access and display that content is with an HTML renderer.

    Now imagine a world with only native apps. You’d need custom apps and web services for different kinds of content, just as we have native Twitter or Instagram apps today, but we’d need these for many thousands of categories: tvOS with TVML, recipe or cooking apps with FOODML, and so on. Eventually, having so many formats would get unmanageable. We’d need to invent a general purpose format that could accommodate many app formats, and (surprise!) that general format would look a lot like HTML. Why break old content and essentially reboot the web, when we already have a capable format in HTML?

    Of course, there’s no immediate risk of getting to that hypothetical native-only future. But when a company with the size and influence of Apple has 4 major platforms and only 2 of them have access to the open web, that should give us pause. Let’s reflect on how this plays out, so we can get back on track if the web does become marginalized.

    John Gruber commented that these new devices don’t need the web at all, comparing it to the original Mac shipping without a command line interface. I realized while reading his closing paragraph that my own blog post had been poorly titled, and so the whole point too easily misunderstood. John wrote:

    "Or it could be that Apple has decided never to open WebKit to developers on Apple TV. Either way, it won’t affect Apple TV’s success, and everything will be OK."

    Apple TV’s success doesn’t change my argument. My Apple TV dev kit arrives on Friday, I’m going to build an app for it, and I can’t wait to watch Apple’s latest platform take off. When I wrote that the Apple TV “needs” the web I didn’t mean that it would be crippled and unsuccessful without it. I simply meant that the web should be there in some form, even if limited.

    (It doesn’t even have to be Safari. There just needs to be enough web technologies to make some part of the open web possible. Again, that means web services, HTML, and links.)

    Yesterday, John Gruber also wrote about web apps and native apps, and what each should focus on:

    "Native apps can’t out-web the web, and web apps should embrace that."

    That’s good advice. There are plenty of important tasks for the web community that should be top priorities, such as encouraging a return to independent publishing and trying to fix the lack of redundancy. The web will always be playing catch-up with native apps for user experience, but the web will always be ahead as a distributed, open publishing platform. And that is such an important feature, it should be available on as many devices as possible.

    → 11:59 PM, Sep 16
  • Evan Williams on indie web sites

    From a rough transcript of an interview with Evan Williams:

    "The idea won’t be to start a website. That will be dead. The individual website won’t matter. The Internet is not going to be about billions of people going to millions of websites. It will be about getting it from centralized websites."

    I’m concerned about this. Evan is reading into the current rise of centralized services and thinking it’s more than a short-term trend. But I believe strongly that the open web will bounce back.

    Putting all of our writing in one place like Medium goes against our hope of permanence, because there’s no guarantee Medium will be around in 20 years, and so all of that content will disappear from the internet if it fails. At least with independent sites and custom domain names we have a chance. We have control, so it’s in our hands to succeed or fail, not left to the whims of Silicon Valley startups.

    → 12:09 PM, Sep 16
  • Every device needs the web

    In a widely-linked post to Medium, Daniel Pasco writes about the problem of not having WebKit available on tvOS:

    "Webviews are the duct tape of the mobile world. I’d estimate that 50% to 80% of the major apps out there use webviews somewhere within their apps. Apple’s Mail app uses webviews for your email messages, because webviews can style and render the content very efficiently. NetNewsWire uses them prolifically, particularly in a few features we haven’t enabled in the shipping version yet."

    I’ve argued on Core Intuition that even with the Apple Watch — as silly as it might seem to want to browse the web on your wrist — there should still be some basic access to the web. If not a full browser, at least a webview so that developers can style short content.

    Daniel Jalkut suggests a related compromise for the Apple TV:

    "I propose that Apple could strike a compromise that would serve those ambitions while also supporting the tasteful handling of web content in apps. How? By forbidding network access to web content. Apps themselves could still access the network, but not from within their web views."

    This is much better, but I think we should aim higher, since giving up on the web seems to admit early defeat to what Daniel acknowledges is probably WebKit’s politically-motivated omission. The web might not be the most usable medium on all devices, but it is arguably the most important one. Just because we all love native apps doesn’t mean we should trade in the significant value that the web provides, especially for independent writing and a permanence that can outlive silos and platforms.

    Apple has 4 major platforms now: iOS, tvOS, watchOS, and the Mac. It’s a dangerous precedent for 2 out of those 4 to not have access to the open web. Web services are only part of the story; HTML and the hyperlink are also both fundamental components of web access. A platform is too shut off from the rest of the world without them.

    → 12:22 PM, Sep 15
  • Glen Keane drawing in 3D

    Here’s a wonderful video of Glen Keane drawing with VR goggles. I’ve been watching and listening to Glen explain animation for a long time, on bonus videos going back to my small collection of Disney feature LaserDiscs. It’s great to see him still in the spotlight after leaving Disney, and the great work he did on last year’s Duet.

    Speaking of the Disney company, I really enjoyed last night’s American Experience on Walt. Part 2 airs tonight on PBS.

    Update: Shortly after posting this, a new film from Glen Keane showed up in my newsreader. It’s a good month for animation.

    → 11:33 AM, Sep 15
  • Web history and IPFS

    Dave Winer on the continued disappearance of old web sites:

    "I've tried to sound the alarms. Every day we lose more of the history of the web. Every day is an opportunity to act to make sure we don't lose more of it. And we should be putting systems into place to be more sure we don't lose future history."

    Earlier this week, Steven Frank pointed to a new format and protocol called IPFS, which Neocities is embracing. Copies of your content would live in multiple nodes across the web instead of in a single, centralized location. From their blog post:

    "Distributing the web would make it less malleable by a small handful of powerful organizations, and that improves both our freedom and our independence. It also reduces the risk of the 'one giant shutdown' that takes a massive amount of data with it."

    I took some time to read through what it can do, and I’d like to support it for the publishing platform that’s in my new microblogging project. I don’t know if it’s technically feasible yet, but I love that someone is trying to solve this. We just have to start somewhere.

    → 11:51 AM, Sep 11
  • Marco&#039;s mic review and the quality trade-off

    Marco’s review of his favorite microphones is comprehensive. You can’t go wrong by following his advice. I recorded my first podcast 10 years ago, and Daniel and I are about to hit 200 episodes of Core Intuition, yet I still learned a few new things from reading Marco’s review.

    As with most things, though, it’s a personal choice too. Take this part:

    If you’re just getting started with podcasting, a USB mic is good enough. If you’re established and looking to upgrade your production quality, or if you just love gear like me, you’ll likely find the jump to XLR worthwhile.

    I did the opposite of this. For years I used an XLR mic along with a chain of two additional audio devices: the M-Audio FireWire Solo for getting the audio into the Mac, and the PreSonus TubePRE preamp for boosting the signal. This produced a nice sound and gave me knobs to fiddle with, but the extra complexity was just not worth it. I now use a simple USB mic and prefer it. (It’s the Rode Podcaster, which gets a mediocre endorsement in Marco’s review.)

    This kind of “downgrading” is a common pattern with me and computers. I used to run a Mac Pro with 2 external Cinema Displays. Now I exclusively use a 13-inch retina MacBook Pro without a monitor.

    In both cases — Macs and microphones — I find the trade-off worth it. If I want to work from a coffee shop, it’s the same resolution display, so I don’t need to change how I use Xcode. If I travel and need to record a podcast, it’s the same as if I was home, so I don’t need to risk messing up my audio settings. You give up some performance and flexibility, but in exchange you get the simplicity of having the same setup no matter where you are. And best of all: no more cables all over my desk.

    → 3:48 PM, Sep 8
  • Podcast interviews and the new Riverfold

    I was interviewed for two podcasts recently. The first is the CocoaConf Podcast. Daniel Steinberg does a fantastic job of editing his show with a tight format, mixing together interviews and community news.

    We talked a lot about my new microblogging project and working on things that matter. I told the story of shutting down my Mac app Wii Transfer to focus on other projects:

    "It was really popular. I remember when I shipped 2.0 it was one of my best sales days ever, probably the best sales day ever. But what I came to is that as neat as it was, as useful as it was for some people, in the big scheme of things — if you take 5 years out, 10 years out — that app just wasn't that important. It was neat, but it's time had come and gone."

    The other podcast I was on is a new one called Consult. It’s an interview show all about consulting and client work. I had a good time chatting with host David Kopec about evolving Riverfold Software to include consulting while at the same time expanding into a full-time indie business.

    → 1:49 PM, Sep 8
  • Looking for a train in Scott

    Looking for a train in Scott
    → 11:00 AM, Sep 6
  • Watch form over function

    Everyone’s thinking the same thing: Samsung’s new smartwatch looks significantly better than the Apple Watch. Even the rounded scrolling control looks as usable or more usable than Apple’s digital crown. If Apple tried multiple designs internally, including a round watch — and I’m sure they did — why did they opt for a nerdy square shape that looks more like a computer than a watch? Especially in a product with such a focus on fashion that they felt the need to charge $10,000 for the high-end models.

    Surprisingly, this might be Apple showing they can still choose a functional user experience over purely beautiful form and design. Square looks worse but it’s just more practical for reading text. The digital crown is a better fit for scrolling vertically.

    It’s rare in the modern era of Apple (post-2000 or so) for the company to sacrifice beauty for usability. The iPhone is always thin at the expense of battery life. Mac scroll bars are hidden in the name of cleanliness. The new MacBook has a single new cable type which no one owns peripherals for. But with the Apple Watch, I think they built something with a foundation that could last for years, despite its initial awkwardness, and square was the right call.

    → 9:08 AM, Sep 4
  • Doubt, part 2

    The flip side to the optimism of my last post is the hard reality that sometimes the doubt is warranted. Sometimes, a little caution could lead to better, more reasonable business decisions.

    I like this post from Brett Terpstra about how his wife provides some balance:

    “For every wild idea I plan out, she reminds me of the realistic outcomes, backed with historical data. If it weren’t for the tempering quality of having 'pessimists' around, I’d be living in a tiny apartment, buried in debt, and likely friendless.”

    I’ve been trying to do a better job of bouncing ideas off other people before fully committing, while still holding on to a strong enough original concept that I can’t get too distracted or discouraged. I also have a new idea to help lay the groundwork for my new microblogging service, before actually shipping it. Hope to announce more in the next couple of weeks.

    → 12:37 PM, Sep 3
  • 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.

    → 10:13 AM, Aug 31
  • Startup life and Medium

    Pretty hilarious guide to San Francisco startup life from Padlet on Medium. Here’s just one small part:

    "Markets are chockablock with these desk+gym hybrids — standing desks, treadmill desks, cycling desks. This is why I feel bullish about my swimming desk idea — a big water tank with an infinity pool and a computer bolted on one side. Noise cancelling scuba masks, snorkels, and fins come as standard equipment."

    I’ve been fascinated with Medium lately, and have cross-posted a couple recent posts over there to better understand it. Is it a blogging tool? Sort of. Is it a social network? Not exactly.

    While you can follow other users there, I find that even with the 100+ people I’m following, the posts I see on Medium are almost exclusively popular essays written by people I don’t know. They’re recommended enough that they show up in Medium’s daily emails, or on the home page, or linked from other blogs I read. But it’s like if you signed in to Twitter and only saw retweets.

    This may explain Medium’s design changes to encourage quick, microblog-like posts, in addition to full essays. Longer blog posts just aren’t written often enough to make for a meaningful social network.

    → 9:06 AM, Aug 27
  • Acorn 5

    Flying Meat’s Acorn 5 is out. I’ve been using the beta for a while and it’s a great release. Read Gus Mueller’s blog post for some of the features, including neat tricks you can do with the new Shape Processor.

    I also love this section about focusing on bug fixes:

    "So we fixed pretty much all of those. It took months and months of work, it was super boring and mind numbing and it was really hard to justify, and it made Acorn 5 super late. But we did it anyway, because something in us felt that software quality has been going downhill in general, and we sure as heck weren't going to let that happen to Acorn."

    Congrats to Gus on another big release. You should check it out here.

    → 12:09 PM, Aug 20
  • Relay FM&#039;s first year

    Casey Liss summarizes the excellent first year of new podcast network Relay FM:

    "Last year, I was deeply honored to be invited to be part of the launch shows on Relay. This year, I’m deeply honored to be a part of a network that not only airs some of the best spoken word programming on the internet, but also cares so deeply about being more inclusive."

    Congratulations to all the podcast hosts, and of course to Relay founders Myke Hurley and Stephen Hackett. Stephen posted about how his time as an indie is going:

    "The hours break down about how I felt they would break down, with Relay FM taking up about half my time and everything else going down from there. I suspect that consulting number will shrink as I wrap up some stuff for my former employer, but for now, I think this balance works. It's a decent reflection of where my income is, which is encouraging."

    Rewinding a few weeks, this is what he had to say about the shift to indie work:

    "It’s profoundly surreal, but incredibly freeing, to be focused on my writing and podcasting full-time. There’s still lots to work out with budgets and time management and extra things I could take on, but it’s all under the category of my work. That’s what makes it so much fun, despite the unknowns."

    It’s fun to watch the rise of podcast networks. It has now been a little over 5 years since I first wrote about the 5by5 launch. Daniel and I will probably keep Core Intuition independent forever, but I hope that the continued success of larger networks means that the overall podcast market is still growing.

    → 10:21 AM, Aug 18
  • I will return to Twitter when...

    As I’m catching up on some news, two posts today about Twitter caught me eye. First, very big news via Federico Viticci, that full tweet search is available even to third-party apps. Twitter’s limited search was the main reason I originally built Tweet Library. It’s fantastic that this data is now more easily available.

    But it was this opening paragraph from Jason Snell’s article on Macworld about Twitter neglecting the Mac version that got me thinking:

    "Three years ago this month Twitter broke its covenant with the third-party developers who helped fuel its initial growth and create some of its most innovative features. The message was clear: Twitter was in charge of its own platform, and while other Twitter apps would be tolerated, it would only be in limited fashion and for a limited time."

    It was around this time, nearly 3 years ago, that I posted my last tweet. My bet with Daniel is over whether I will return to Twitter within 5 years. People ask if I’ll come back sooner, and if I did, what it would take. I’ve often struggled to articulate those conditions, because I think we are seeing slow but consistent progress to unwind the developer-hostile decisions made a few years ago. It may be that in a couple years the environment will be much improved, but there won’t be any single decision that “fixed” it, or it may be that Twitter is doomed to have changing leadership and there will never be any guarantees.

    There is one thing, though. There is one change that was made while rolling out the version 1.1 Twitter API: they removed support for unauthenticated RSS feeds of user tweets or timelines. If they reversed that one decision, the next day I would be back on Twitter.

    I can pick out a single feature like this, among every other improvement that third-party developers would love to see, because the combination of removing RSS and at the same time locking down the API — those changes together best represent the move away from the open web. Any other incremental improvement short of unauthenticated RSS, no matter how welcome, isn’t enough.

    → 2:24 PM, Aug 14
  • Back from Europe

    After blogging every day for a couple weeks at the end of July, I decided to take a break while my family and I took a vacation to London and Paris over the last 10 days. Instead we kept a private-ish travel blog of the trip. It’s similar to what I might post in a private journal (handwritten or Day One), but accessible to family in a richer “own your own content” way than just Facebook photos.

    I also posted 7 photos throughout the trip to my Instagram account. I like to use Instagram to capture just the very best photo from something, so the timeline never feels overloaded. Of course we took hundreds of photos overall. Some went to the trip blog, some went to Instagram and Facebook, some went to Snapchat (teenagers!), and the rest we’ll sort through as we have time. We had wi-fi in the apartments and so I made sure everything was synced up to Dropbox at least once a day.

    I worked a little while traveling, but could only be so productive without getting in the way of enjoying the vacation. I’m catching up on some email and client work this morning. Feeling fairly rested despite a very long travel day coming back home.

    → 10:22 AM, Aug 14
  • Riposte push server crowdfunding

    Back in April, the App.net app Riposte was removed from sale. Riposte wasn’t just the best client for App.net; I think it held its own against even the best Twitter apps, too. The push notification server for Riposte (and its messaging app complement, Whisper) was to keep running for some months and then shut down this summer.

    Even if App.net is slowly fading away, like many users I still have Riposte on my home screen. I cross-post all my microblog posts from this blog to App.net. When I get replies and mentions on App.net, I like to see them as push notifications in Riposte. I can reply in the app easily, or skim through the timeline to see what else is going on.

    Now the developers have launched a crowdfunding campaign to keep the Riposte server running. Their goal is a modest $500 per year to cover AWS hosting and time to keep everything running smoothly. Even if you’re not very active on App.net anymore, consider donating as a thank-you for everything Riposte did for App.net, and for what it did to advance the state of UI design in social networking apps.

    → 11:54 AM, Aug 4
  • 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.

    → 10:41 AM, Aug 3
  • Two weeks notice: unfinished work

    Three weeks ago I had about a dozen open Jira tickets. Today, my last day with the company, most of those are still open. I was able to update some documentation and do minor maintenance work, but a bigger change I had hoped to deploy turned out to be impossible because of a missing internal API.

    It’s unsatisfying to leave unfinished work. There’s only so much that can be done in a limited time, though, and as we all know software (especially a web app) is rarely ever completely finished.

    Bittersweet, moving on after so many years. The folks I’ve worked with have been really great. I’m going to enjoy keeping an eye on what they ship long after my GitHub access has been revoked.

    This morning, my (now) former boss and good friend Willie Abrams linked in the company chat room to some of the photos that he had taken over the last 14 years. Brought back a lot of good memories, from brainstorming app features in a conference room to wandering around San Francisco before WWDC.

    I think I’m going to let this be the final post to wrap up the “two weeks notice” series. I’ve accomplished a lot but there is still plenty left, especially shipping new products. It’s been good to force myself to write every day, so I’ll keep that going with the usual full posts and microblog posts.

    You can find all 14 posts under the tag “2weeks”. Thanks for reading.

    → 12:42 PM, Jul 31
  • Two weeks notice: Core Int 192

    Continuing from last week’s Core Intuition, today Daniel and I talk more about how things are going with the final days of my job winding down. We then take the second half of the show to catch up on recent news around Twitter’s leadership.

    From the show notes:

    “Daniel and Manton acknowledge celebration as a survival tactic, discuss the urgency of making ends meet as an indie, and examine changes underway at Twitter with interim CEO Jack Dorsey.”

    You can listen or subscribe at the Core Intuition web site. Special thanks to returning sponsor CocoaConf. They’ve got conferences coming up in Boston and San Jose, and then Yosemite National Park next year.

    → 12:02 PM, Jul 31
  • Two weeks notice: health insurance

    I mentioned in my first post in this series that I need to figure out healthcare for my family now that we’ll no longer be covered under the company’s plan. We spent some time digging into this recently, and basically came away with these points:

    • We are going to be paying significantly more per month than we used to. That is obvious and expected.
    • Buying through the health insurance marketplace is not much different than buying direct through BlueCross BlueShield. Comparing a few plans, the prices seem about the same. Hopefully we’ll get a tax credit discount based on our family size and the fact that I’ll probably be making less money this year.
    • We will need to stay in a PPO to keep the same doctors. This is non-negotiable for me, even though it will mean higher premiums.
    • Deductibles will be much higher than what we’ve had so far. The budget will be tight and we can’t justify the crazy-high premium that would be required to lower the deductible and out-of-pocket max. We’re leaning toward some medium-level plan.
    • It’s too expensive to continue my existing health coverage through COBRA for very long. Switching to a new policy soon makes the most sense. It should be fine to do COBRA for a month or so since we’ve already met our deductible and have a couple doctor visits coming up.
    • One of the main differences between some of the plans is whether there’s a copay for doctor visits. We are going to prefer plans with a copay and flat prescription drug charge.

    We’re still learning details about this process every day, so some of the above may not end up representing our best options. Just yesterday we realized that there’s some flexibility in what we continue with under COBRA. For example, sticking with existing dental and vision but choosing something else for primary healthcare.

    Since it’s already nearly August, I’m trying not to worry too much about these decisions. If we choose poorly, we’ll be stuck with mediocre insurance for a couple months (until my wife starts a new job in the fall and we can consider her group options) or until the end of the year (when the enrollment period for the Affordable Care Act resets).

    Related, from 2009: Matt Haughey on the entrepreneurial case for national healthcare. And, more recently: Paul Krugman on the triumph of Obamacare. With everything else to worry about as an indie, at least it appears I won’t have to watch the progress we’ve made on healthcare start to unravel.

    → 9:46 PM, Jul 30
  • Floyd Norman’s sketch of Steve Jobs

    Disney Legend Floyd Norman has an excellent blog, usually recollecting on the early days of the Walt Disney studio, or more recent animation ventures. This week he wrote about Steve Jobs:

    “An animated motion picture goes through many iterations while in production and screenings were held on a regular basis. I honestly doubt Steve was trying to curry favor with Disney. Being a shrewd negotiator Jobs didn't need any extra help to get his way. I think he brought Apple gifts purely as a gesture of friendliness. After all, shouldn't everybody have a Mac Laptop?”

    The post includes a fantastic sketch of Steve. My only regret from WWDC this year is that I didn’t have a ticket to see Floyd speak at the conference. Although Apple doesn’t usually release the video of lunchtime sessions, I very much hope it was filmed and will show up on YouTube or Vimeo one day.

    → 10:00 AM, Jul 30
  • 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.

    → 1:26 PM, Jul 29
  • Two weeks notice: accounting

    Bookkeepers, accountants, lawyers… I should get one of those at some point. Instead I seem to waste time moving from one accounting app to another — Xero, QuickBooks Online, Less Accounting — hoping that the next one will solve everything. Then I go back to tweaking monthly revenue summaries in Numbers because it turns out that spreadsheets are still pretty useful for this sort of thing.

    This year I did sign up for what has turned out to be a game-changing app for my business: Baremetrics. I dragged my feet subscribing because it starts at $79/month, but it’s worth it. The way it breaks down which of your web subscriptions — in my case Searchpath, Watermark, and Tweet Marker — is the most profitable or has the highest customer churn or best average lifetime value… It was just eye-opening to me and led to finally taking some action to invest in the products that are doing well.

    I still have a lot to figure out with this. The one thing I am doing right, on the advice of several folks over the years, is paying myself the same amount once a month from my business checking account, as if it was a normal salary. This helps in forecasting how much income I need in the near-term to keep enough padding in the bank to cover the slow months. It also makes sure I don’t spend everything too quickly.

    We haven’t traditionally had the most strict budget. It’s easy to get lazy with finances at a regular job where you seemingly have a never-ending paycheck supply. The freelance or indie software world is quite different. I’m learning quickly.

    → 12:15 PM, Jul 29
  • Two weeks notice: press reviews

    I need to set aside some time to contact folks in the press about my new project. I can tell just explaining the app to my friends that it’s confusing to understand on first glance. It’s different enough from existing social networks that it requires a high-level explanation for why I designed the architecture this way.

    The short answer is that I wanted to build something open and extensible. Something that embraced the open web. By necessity that makes the concept a little more geeky than what has come before it. Having reviews of the product out in the wild even before the app is fully released may help get people thinking about what to expect.

    → 12:36 PM, Jul 28
  • Two weeks notice: final pull request

    With just 5 days left at my regular job, it’s time to get serious about wrapping up my work. I have a small change mostly ready and tested locally, but need to push it up to GitHub and finish testing on the dev server. I have a couple open Jira tickets to look at after that.

    Over the weekend I spent a lot of time with the Stripe API, trying to improve how I manage user subscriptions. Stripe has some new features since I first started using it. For example, options for sales tax and a quantity field. The latter is convenient if you have something like the ability to pay for multiple hosted web sites in a subscription, rather than deal with adding custom line items on an invoice.

    Deadlines are an excellent way to push yourself to actually finish something. So this deadline of Friday is good, in a way, but unlike most of my other deadlines, I can’t miss it and keep working for another week. That finality is a little daunting right now, as I look at the week ahead and everything I want to get done.

    → 9:55 AM, Jul 27
  • Two weeks notice: moving too fast

    For the first time in weeks, we had nothing going on this morning and could sleep in. After a late breakfast I worked on implementing a better trial for my new product, letting the business model advice I mentioned yesterday sink in.

    Ryan Irelan, who founded Mijingo to create books and video courses for developers, wrote today:

    "One of my biggest mistakes in my first several months of running Mijingo full-time is that I was going too fast."

    I probably needed to hear that. I’m increasingly worried about launching this new project either half-baked or too late, so I’ve been trying to ramp up the hours I dedicate to it each week. But I’m scrambling to quickly change fairly major aspects of it. It may be better to slow down to make sure I still have the bigger picture correct.

    We’ll be traveling some in August, so that rules out releasing anything brand new before the trip. I’m thinking my focus leading up to that is to send this to the subscribers of my beta announce list first. Both the free parts and paid plans will be open as if it was a finished product, but it will just be limited to an invite-only group. Based on that feedback I’ll know how close it really is to shipping for everyone.

    → 11:48 PM, Jul 25
  • Two weeks notice: Core Int 191

    We just published Core Intuition 191, the first episode recorded since I resigned from my regular job. In a way, it feels like this episode was 7 years in the making. Although I clearly wasn’t about to go indie that long ago, the topics that we’ve chosen to discuss on the podcast over the years have always followed that basic narrative: what can we do to improve our apps and business.

    And as I hinted about earlier this week, this episode also features the return of our sponsor Twitter to promote their Fabric suite of tools for developers, including Crashlytics and Answers. Great to have them back.

    From the show notes:

    “Manton and Daniel discuss Manton's big decision to quit his job and go full-time indie. They also discuss the challenges of freeing up one's mind to focus on work, the freedom of indie development, and the psychological benefits of a dedicated workplace.”

    This is a milestone episode for me. I hope you enjoy it.

    → 11:11 PM, Jul 24
  • Two weeks notice: your business model is wrong

    How is it Friday already? I have just one week left at my regular job. In addition to looking at documentation, I talked on a video call with the lead engineer who will take over a couple of my projects. We went over my current bug list (exactly 13 lucky tickets in Jira) and reviewed a few of the trickier outstanding issues.

    Nothing like walking through old code, even at a high level, to discover so much outdated cruft that could be redesigned or cleared out. There’s always a little bit of regret: if only I had fixed this one last problem before leaving, or smoothed over this one confusing part of the web UI. But that’s a slippery slope that could go on indefinitely. Web software in particular is evolving and never fully complete.

    Meanwhile, I continue to get great feedback on my new Riverfold project from the very early beta testers. Bug reports, new ideas, and sometimes a series of questions that basically ends up as: you’re charging the wrong users, what if you tried this completely different way to make money instead?

    While I don’t think there’s any direct competition for what I’m building, there are a lot of related services. I’d count even parts of Tumblr and WordPress among the services that are both complementary and in a similar theme to what I want to do. Tumblr makes money primarily through ads. WordPress has ads but (I expect) makes more money through their upgrades: paid custom domains, VaultPress backup, and premium themes.

    When choosing a business model for my app, I’ve also been inspired by GitHub’s simplicity. Free for open source projects, which allows you to get a feel for how the entire system works as long as you don’t need private repositories. Paid for organizations, scaling up based on how many projects you have. The success of my project will hang on whether I can mix some of all these models without confusing potential new customers.

    → 5:31 PM, Jul 24
  • Two weeks notice: it just works out

    John Saddington, who develops the Mac blog editor Desk, pointed to one of my recent posts and wrote:

    “It does make me ponder, once again, what I’m doing with my so-called ‘career’ and if it’s the ‘right’ one. Although, every single time I think about that I know that I won’t like the answer… yet it always just works. I can’t tell you why or how I found or discovered this cadence, but, to each his own.”

    Which in turn makes me reflect on my own career. I’ve been extremely lucky. The right jobs just seemed to have presented themselves to me when I needed them. I hope that luck hasn’t led to overconfidence as I take these next steps to become more independent. It would be a glorious failure if my luck runs out just when I need it most.

    So I’ll have to work harder. I’ll have to better manage my finances, better plan and execute on new products, and better support each app so they’ll form a sustainable business. As I type this, I’m actually a little nervous for the first time since I put in my notice. Lots to do.

    Tonight’s challenge: finish integrating CodeMirror into my new app, to provide Markdown syntax highlighting. I had never heard of this JavaScript library before this week. It seems very capable — a big jump forward on a feature I didn’t even think I could provide for 1.0.

    → 8:47 PM, Jul 23
  • Two weeks notice: new products

    Tonight I worked on some bug fixes to one of the new apps I hope to ship for Riverfold Software. I have just a handful of beta users, but got some good feedback and bug reports last week, things I want to address before opening it up to more users.

    When I think of the in-progress apps that I can ship soon to help increase revenue, there are really only 2:

    • Clipstart 2.0, which will be renamed Sunlit for Mac, to complement the iPhone version.
    • Unannounced microblogging-related web app, which may also come with iPhone and Mac apps.

    The problem with Sunlit for Mac is that I’m requiring 10.11 El Capitan. So no matter how much progress I make on it, I can’t ship it until Apple releases their next version of Mac OS X. I want to chip away at the new features, but I can’t spend all of my time on it yet. I need to focus attention on projects that have a chance of bringing in additional revenue in the very near future, not by the end of the year.

    So the microblogging app — the one I worked on tonight — keeps coming to the front. Since it’s mostly a web app, it has the least number of external API and App Store dependencies that would hold it up. I can ship the core functionality whenever it’s ready. The sooner I get it out the door, the sooner I’ll know if it’s something I can count on as business income.

    → 9:40 PM, Jul 22
  • Two weeks notice: writing documentation

    Boy Scouts have a saying: leave no trace. One of its basic principles is that when you pack up your camp site, make sure you clean up all the trash. The place should look even better than when you found it.

    It’s not a bad principle to keep in mind when leaving a job, either. Projects should be in a good state. I’ve fallen short in one key aspect of this — a conspicuous lack of unit tests in my web apps — but I’ve been more successful in other areas, like up to date versions of Rails and pretty comprehensive documentation.

    Documentation is also an easy thing to improve at the last minute. Today I’m reviewing some API docs from top to bottom again, making sure that the confusing edge cases for how an app works are well covered. For my job at VitalSource, this means editing in Confluence.

    The apps in Atlassian’s main suite that I’m familiar with — Confluence, Jira, and HipChat — have improved in small increments over the years. I makes sense that they would move fairly slowly; the apps are heavily used in larger companies, so a major redesign or feature change would not be well-received by many of their customers. Of those 3 apps, HipChat seems easily the best designed, and I expect having Slack as a competitor will keep them focused and driven to improve the app.

    This post isn’t meant as a rant against Confluence, but as I use it’s default markup language or WYSIWYG editor I’m reminded of just how much I enjoy writing in Markdown instead. For my own apps, I’ve experimented with writing documentation in Markdown hosted on GitHub, which gives me easy publishing and version history. Tweet Marker, for example, pulls a Markdown file from GitHub directly and formats it inside its own web interface for Twitter app developers.

    As usual, open formats like simple text files are a great choice for any writing that you want to last. For my new microblogging project, I need to repurpose a lot of writing I’ve done on this blog and move it into more formal documentation. I’ll probably use Markdown and GitHub for that as well.

    → 5:25 PM, Jul 22
  • I think it&#039;s a bust

    The movie Draft Day doesn’t really have any business being good, but somehow it is anyway. I don’t even like football that much — who has time for it when there’s basketball? — but I’ve now seen this movie several times and love it. The movie actually gets better instead of worse on multiple viewings.

    It also has a number of memorable lines. One of them is this, said by Kevin Costner’s character about the college football star who everyone thinks is the next greatest thing: “I think he’s a bust.” Five simple words that undo all momentum.

    And unfortunately that’s still how I feel about Swift. I’m following Brent’s blog posts about learning Swift and I’m trying to come to terms with whether to adopt the language, and I finally got it. I already have a capable quarterback in Objective-C, and I’m not ready to rebuild my roster yet, risking everything on a young language with so much promise but less real-world success.

    No matter how much Swift has improved, no matter how much everyone fawns over it, I still can’t shake the feeling that it’s a hype that someone else’s team needs. For me, it won’t end up solving the problems I have when building apps. For me, it’s a bust.

    → 10:13 AM, Jul 22
  • Two weeks notice: podcast revenue

    In my first post I framed the situation as pinning my indie hopes on two things: my own apps and client work. But as Daniel points out, I’ve actually lucked into several distinct revenue sources. And one of the most promising continues to be our Core Intuition podcast sponsorships and the companion jobs site.

    The podcast got some good news over the weekend as we’re adding another long-term sponsor. We’ve had this company as sponsors in the past, and I’m looking forward to having them back and talking about how I use their products.

    Like software, revenue from Core Intuition comes in waves. Sometimes we’ll be booked up for months, other times there will be a drought of sponsors, so we’ll focus on pitching the jobs site instead. Sometimes we’ll get new job listings every day, other times a week will go by with nothing. Since we’re not actively marketing it as if it was a full-time business, we can’t count on any kind of consistency from it.

    It’s funny how the podcast worked out, though. We started it just because we thought it would be neat — because we thought we had something to share with the community, back in 2008 when there were very few developer podcasts. We added sponsorships to help justify the time and keep us to a weekly schedule. And now, ironically, the podcast that was about running an indie business will actually help me do just that.

    I’m so grateful to listeners new and old who have supported us. I received a bunch of nice “congrats!” emails and mentions on our Slack channels yesterday. We’re approaching 200 episodes now, over 7 years, and I hope we can continue to keep the podcast interesting for some time to come.

    → 6:34 PM, Jul 21
  • Retiring App.net support for Sunlit

    Sunlit 1.3.1 shipped today. It’s a minor update focused on fixing bugs, but it is also the first version to remove App.net support. Existing users still have access to all the App.net features — the code still exists in the app for now — but the App.net sign-in button and settings have been removed for new users to simplify the requirements and UI.

    It was difficult to let go of the App.net-specific features. A significant amount of the codebase was around syncing and collaboration features via App.net. There was also some great location check-in support built on App.net locations and compatibility with Ohai. I had to remove screenshots and prune down the App Store description to account for the removed features.

    What’s left is an app that has fewer features but which feels light and simple again. Maybe this should have been our 1.0 version all along.

    Two years ago, I wrote about waiting for App.net’s killer app:

    “The promise of App.net is bigger than one type of app. App.net isn’t just a blank slate; it’s an amplifier. It’s waiting to power the next new idea and help it grow into something big.”

    This vision didn’t pan out. But I’m proud that we gave it a shot and put a lot of effort into the platform even after others had given up on it. Now that we’ve finished this “reset”, of sorts, we’ll move forward to build other features we always wanted in Sunlit.

    → 1:00 PM, Jul 20
  • Two weeks notice: the first weekend

    I have some big news to share, so obviously I’m going to write a bunch of blog posts about it. This is the first one.

    For a while now I’ve been juggling working on my own projects, with my indie company Riverfold Software, and having a regular job at the education e-book software company VitalSource, where I’ve been for over 14 years. As much as I felt like this balance mostly worked, lately it has become clear that the “nights and weekends” approach to Riverfold just isn’t going to be enough time going forward. Last week I resigned from my job at VitalSource to focus on growing Riverfold and shipping new apps this year, some of the most ambitious products I’ve ever tackled.

    I thought it would be fun to do a series of blog posts about the early part of this transition. For the next couple weeks, as I wind down one set of projects and ramp up new ones, I’m going to post here with the slightly-catchy title prefix “Two weeks notice”. It will be me thinking out loud about the transition, kind of in the informal spirit of Brent’s syncing diary, or like a more serialized version of the classic indie posts from Gus Mueller and Paul Kafasis.

    But unlike the authors of those posts, I can’t claim to have found success yet. If you take Scotty’s definition from the iDeveloper podcast, in fact, I’m not “indie” at all; I expect some percentage of my time will have to be reserved for client projects to help pay the bills. While I used to find that idea distasteful — why give up a consistent salary if you’re not even going to call the shots? — I’ve come to realize that client work can be pretty interesting. The cycle of starting new projects and shipping them is a good way to learn new APIs and iterate on how to build an app from scratch.

    While reading all these 2005-era indie blog posts, I was surprised to rediscover that Daniel Jalkut also mentioned mixing in consulting work:

    "Consulting makes an excellent back-up plan. You’ve always got a job if you need it, and your destiny is very much in your own hands."

    Of course he wanted more than that: to build a great company based around his own apps. I’m sure Daniel and I will be talking about this on Core Intuition later this week.

    So it is a little in the vein of “leap and the net will appear” that I’m moving on from a stable job, where I worked with great developers and friends, to something new that is a lot less certain. I thought that would make for a stressful week, but so far, everything seems okay.

    There’s paperwork to do and code to write. There’s health insurance to figure out. But there are also some things that have already been wrapped up. My projects at work are in a good place, hopefully not needing constant maintenance. We just refinanced our house, so that’s a monthly savings, and something that I’m told is difficult without a “real” job.

    Friday night I started catching up on some late business taxes (whoops). Saturday I finished editing the podcast (which we recorded over a week ago). The rest of the weekend I tried to relax with family (but I worked anyway). It’s Monday now and there’s a busy week ahead. Let’s see how this goes.

    → 11:00 AM, Jul 20
  • Embrace cross-posting

    When App.net was first taking off, many microbloggers struggled with how to decide where to post their short-form writing. Should they post some topics to Twitter and others to App.net? Should they cross-post everything to both services? At the time, there was an informal consensus that cross-posting was a cheat. It couldn’t take advantage of each platform’s strengths, and followers might often see the same post twice.

    I now believe that cross-posting is a good thing. Photos, as one example, are frequently cross-posted to both Instagram and Facebook. Tweets can be sent to Twitter as well as our own blogs. Many apps like Instagram or Foursquare support and even encourage cross-posting. It’s good for developers because it helps spread knowledge of the publishing app, and it’s good for writers because it means there are multiple copies of our content.

    It’s no secret that I’m building a microblog aggregation and publishing service. The goal is for us to get back to our roots with blogging — to write on our own web sites first, not as an afterthought to Twitter. Cross-posting is an important bootstrap for that.

    If you don’t have a blog, start one today. It takes minutes to set up, and hardly any more time to wire up automatic tweeting via IFTTT from your RSS feed. Start with cross-posting and see if something interesting evolves from there.

    → 1:00 PM, Jul 17
  • Ev on Twitter third-party devs

    Business Insider quotes Evan Williams on the developer-hostile attitude of previous Twitter management:

    “The API denial was, ‘One of our strategic errors we had to wind down over time,’ Evans explained. ‘It wasn’t a win/win for developers, users, and the company.’”

    Just acknowledging this publicly is progress. It’s now been almost 3 years since my last tweet. I don’t expect to return to Twitter, but I’m still very interested in whether there’ll be a noticeable change in direction from the new CEO.

    → 10:25 AM, Jul 17
  • 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
    → 12:34 AM, Jul 14
  • Deciding who we are

    Dave Wiskus follows up on the response to his post about Apple Music’s Connect:

    "Music is art, and someone who makes art is an artist. More importantly: who sits around waiting for labels to be bestowed upon them? I get to decide who and what I am."

    Strongly agree. This fits into a larger theme that has been on my mind today.

    As kids, we needed encouragement even to pursue our dreams. Too much negative feedback could quickly derail someone with the most hopeful intentions. Society said: if you’re not good enough today, give up. Tomorrow is hopeless.

    As adults, encouragement from peers is still great, but by now we should have enough experience to realize that defining who we are comes from within first. The line of work, the projects we tackle, the hobbies on the side — we can change any of that with enough determination. Tomorrow anything is possible.

    → 4:17 PM, Jul 12
  • More with Typed.com

    Last week I mentioned Typed.com and Elliot Jackson’s tips in the Realmac forums for posting via Drafts and Editorial. Now Elliot has expanded his solution into a full blog post:

    “The gist of it is that your post, written in Drafts, gets sent to Editorial which will take care of the publishing part thanks to it’s ability to run Python and Javascript scripts in it’s built in browser. The post could be both written and published from Editorial, but as nearly everything I do on my phone runs through Drafts anyway, it made sense for this to too.”

    I’ve been using Editorial as my default iOS text editor for a while. I have a “Notes” folder on Dropbox that I use like Simplenote, but driven from Justnotes on the Mac and accessible via Editorial or any iOS editor. But I’ve just barely scratched the surface of what is possible with Editorial. It’s one of those rare apps that is fine for new users, but which also contains a great depth of features when you’re ready to explore underneath the initial layer of its UI.

    → 10:57 AM, Jul 11
  • Matt Bonner and the iPhone 6

    I’ve always said the iPhone 6 and 6 Plus are ginormous. In an interview with the Concord Monitor, San Antonio Spurs player Matt Bonner speculates that reaching his fingers across that screen contributed to an elbow injury:

    “‘Everybody is going to find this hilarious, but here’s my theory on how I got it,’ he said. ‘When the new iPhone came out it was way bigger than the last one, and I think because I got that new phone it was a strain to use it, you have to stretch further to hit the buttons, and I honestly think that’s how I ended up developing it.’”

    Bring on the iPhone 6C in a 4-inch plastic design. The current phones are dangerously too big.

    → 2:18 PM, Jul 7
  • Fun apps don’t need clean code

    Jared Sinclair says that a successful app has nothing to do with writing clean code. Thinking about Riposte:

    “Riposte, still used and loved by some App.net diehards, has one or two view controllers I wrote that are thousands of lines long. The app was littered with procedures that should have been generalized but got copied-and-pasted everywhere. And it didn’t matter.”

    Most programmers try to improve their code a little from one project to the next. But obsessing about how the code looks and how it’s structured might mean that you’re not spending enough time worrying about the things that matter even more: what the app looks like and what it does (and ever shipping it).

    → 8:23 AM, Jul 6
  • App Store delivery truck

    Charles Perry follows up from Brent’s post on the App Store with this point of view:

    “Today, the App Store is basically your delivery truck that takes cash on delivery. We wouldn’t blame a delivery truck for our business failure. It doesn’t make any sense. It’s not a delivery truck’s responsibility to ensure that there’s a market for our products. That’s what market research is for. It’s not a delivery truck’s responsibility to advertise our products or introduce them to customers. That’s what marketing is for.”

    I really like this analogy. However, if you take everything Charles says as truth, it reveals an even more serious problem: the 30% that Apple charges for distributing bits on their truck is outrageous. It’s flat-out wrong to charge such a high percentage if they are providing no value above credit card processing and file hosting.

    → 3:34 PM, Jul 3
  • Linkblogging and the open web

    Dave Winer writes about Circa and their fundamental mistake of not embracing the open web with easy linking:

    “Linkblogging is a real thing, and there are people who are good at it. But if there's no URL for each story, you can't linkblog it. So they didn't grow fast enough. I think this is almost mathematical. No one, going forward, should try this. Each story must have a way to get to it through a Web address.”

    We can be cynical about what the “open web” means, thinking it’s just marketing or spin. But it’s real and Dave shows how obvious it is to understand. It doesn’t matter if a web site or iPhone app is based around web technologies like HTTP and HTML. If it can’t be linked to or there’s no web API, it isn’t part of the open web.

    Linkblogging is a special form of microblogging, and a significant part of Twitter is actually linkblogging. Tools that understand linkblogging will typically reduce the friction of writing by prompting for a quick note to go with a URL that’s already on the clipboard, for example. I don’t usually blog in this style, but I made sure these linkblog posts look great in the platform I’m working on.

    → 10:27 AM, Jul 3
  • Microblogging with Typed.com

    Dan Counsell wrote a long post this week about the planning and executing of Realmac’s crowdfunding campaign for Typed.com. It’s worth a read for the careful thought he put into it:

    “I spent two weeks planning and building the entire campaign. I started out with the video as I knew this would be a huge amount of work and to be honest, it was also something I wasn't entirely comfortable with doing. Every popular campaign I looked at had a half-decent and engaging video. I did a lot of research and it turns out the flow of the video should be something like this: Introduce yourself, talk about the problem, move onto the solution that you're building, and finally finishing up with a direct plea asking for pledges.”

    The beta for Typed.com is well underway, and linked in Dan’s post is a support forum for users. This post by Realmac designer Elliot Jackson especially caught my eye:

    “We don’t have an API yet but this is something I’ve been enjoying playing with for shorter posts. My workaround is to send the content over a URL then decode it and use JS in the browser to fill in the form elements (tags etc).”

    He details a way to send short microblog posts to Typed.com by using Drafts and Editorial. Check out the full post for his JavaScript and Python scripts linking these apps together on iOS. I’m really looking forward to Typed.com’s official launch.

    → 4:05 PM, Jul 2
  • Disney closing animation park attraction

    In a couple weeks, Disney will close its “Magic of Disney Animation” attraction at Hollywood Studios. This area of Disney World was always one of the better ideas I’ve seen at an amusement park, mixing a ride with an actual working animation studio that produced Mulan, Lilo & Stitch, Brother Bear, and bits of other Disney features. Cartoon Brew writes:

    “It’s a bittersweet ending for an attraction that introduced many young people to the art of hand-drawn animation and inspired untold numbers of budding artists to consider animation as a career. One of the park’s original offerings after it opened as Disney/MGM Studios in 1989, it gave attendees the chance to watch Disney animators at work.”

    Before I had kids, I visited the park in the late 1990s and spent some time watching the animators. I asked the park employee if I could hang out after the tour had continued on, just standing there looking through the glass as an animator shot a pencil test for some rough or cleanup animation for a scene from Tarzan. I’m not sure how long I stayed there; it could have been 15 minutes or it could have been an hour. But I remembered every detail from that animated scene when finally seeing Tarzan in the theater, and for years after until today.

    By the time we could take our kids there, Disney had already closed down their animation studio in Florida, turning the ride into an empty shell of what it used to be. I wish my kids could’ve seen it as it was meant to be.

    → 3:27 PM, Jul 1
  • Apple Music and free Beats 1

    Apple Music launched today with iOS 8.4. Christina Warren has an early review for Mashable, in particular mentioning the value of For You:

    “The real heart of Apple Music is the For You tab. This is basically your music homescreen. When you open the section for the first time, you're asked to go through a discovery exercise. This was lifted directly from Beats Music and it's one of the best discovery tools I've used over the years.”

    If Apple Music can be thought of as Beats Music 2.0, then the Connect tab is probably a little like Ping 2.0, an update on Apple’s first attempt to build a music-only social network. As Daniel and I discussed on Core Intuition 187, any service that demonstrates a network effect — everything from eBay to Twitter — needs some critical mass of users to reach its potential. I was curious whether Apple could achieve this if the Connect feature was locked behind a paid subscription after the initial 3-month trial.

    What I missed is that Connect and even Beats 1 will be free. From the Apple Music page:

    “Even without a membership, you can listen to Beats 1 radio, see what artists are posting on Connect, and hear our ad‑supported stations.”

    Beats 1 is one of the more interesting aspects of Apple Music to me. I just signed up for the trial and plan to continue at the $15/month family subscription.

    → 12:49 PM, Jun 30
  • Paul Krugman on the triumph for Obamacare

    Writing his op-ed for the New York Times, Paul Krugman reacts to just before and after the Supreme Court upheld a crucial part of the Affordable Care Act:

    “Was I on the edge of my seat, waiting for the Supreme Court decision on Obamacare subsidies? No — I was pacing the room, too nervous to sit, worried that the court would use one sloppily worded sentence to deprive millions of health insurance, condemn tens of thousands to financial ruin, and send thousands to premature death.”

    He continues by countering many original arguments against the law, from not insuring enough people to costing too much. He wraps up with:

    “Put all these things together, and what you have is a portrait of policy triumph — a law that, despite everything its opponents have done to undermine it, is achieving its goals, costing less than expected, and making the lives of millions of Americans better and more secure.”

    And that’s not the only big news from the Supreme Court. Nice way to end the week.

    → 5:00 PM, Jun 26
  • Don’t solve everything

    When I talk about microblogging, sometimes I get feedback asking what we should do about cross-site replies. That is, if you’re distributing microblog posts across different domains rather than centralizing them all on a service like Twitter, how do you solve linking together conversations and @-replies across those sites?

    I don’t have a solution for that. Of course I’ve thought about it. I wrote 12 years ago about Trackbacks, which were an attempt at solving this. IndieWebCamp has more recent, related proposals.

    For my new project, I’ve chosen to just plainly admit that I don’t have a solution for a next-generation Trackback. I will instead have limited centralized replies and favorites. It’s not ideal, but that’s why I call what I’m working on halfway-decentralized. It’s a next step, not the final step.

    It’s okay not to solve everything. Cross-site replies and conversations need to come from the community, evolving organically from what people are building with their customized WordPress themes, experimental RSS readers, and new client software for posting. The open web advances incrementally, not all at once, and trying to fight that by tackling too much will get us nowhere.

    → 12:45 PM, Jun 26
  • Types of news readers

    Brent Simmons describes how he sees news readers as falling into 3 general types: casual newspaper, productivity, and river of news. This matches my thinking as well. We need all of these different apps, although it’s the third category that I’m currently fascinated with. I wrote a little about timelines and River.js earlier this week.

    → 10:30 AM, Jun 26
  • Four microblogging community tips

    Ever since writing about my WordPress-based microblog and linking to similar solutions from Seth Clifford and Ben Brooks, I’ve been hearing from more bloggers about their interesting microblog workflows. Everyone has a slightly different spin on the basic idea, but all of them achieve some independence from Twitter by having the primary copy of each post live on their own site.

    First, Chase McCoy mentions on App.net that he uses Launch Center Pro for quick microblogging of links:

    “To make a post all I have to do is copy a link, and then run a Launch Center Pro action that prompts me for the text of the post. One click and it's done!”

    Then, Sander van Dragt describes his WordPress setup. It’s similar to mine, but his post includes more detail. He also links to a comment on my .htaccess gist with a better explanation and rewrite rules.

    Next up, Adam Simpson shares how he posts to his own microblog directly from an SMS. He even goes one step further, integrating tweet features directly back into WordPress:

    “I save the tweet ID of every post that gets posted to Twitter. I use that ID to pull in the favorite and retweet counts and display them next to each ‘note’ in the WordPress dashboard.”

    And finally, here’s an AppleScript solution on App.net from Henrik Carlsson that allows him to take any text on his Mac and quickly post it to his microblog via an Automator workflow. Pretty great. I had forgotten that AppleScript has native XML-RPC support, which most blogging systems support.

    I’m inspired by all the cool work people are doing around blogs. It’s a good time to write on the web.

    → 1:26 PM, Jun 25
  • Jim Coudal at CreativeMornings

    Several years ago, Jim Coudal gave a talk about shifting from client work to product work. I recently re-watched it and it’s still great, even if some of the details have changed. They no longer do Jewelboxing, for example, and Field Notes has become an even bigger deal.

    It’s also about bad ideas, managing projects, and team size. On wasting time, Jim says:

    “I think wasting time is an important part of the whole process. Because when you’re screwing around is when you have the good ideas.”

    The best talks are timeless, which is difficult in the tech world. This one comes closer than most to achieving it.

    → 9:17 AM, Jun 25
  • The Focus Course

    Today, Shawn Blanc launched The Focus Course. Originally conceived as a book on productivity, it expanded during his research and writing to include 18 videos, PDF workbooks, and a discussion forum, wrapped together with 75,000 words in a 40-day course package:

    “The Focus Course is for anyone who wants to increase productivity, personal integrity, morale, and overall quality of life. What sets the course apart is that it guides you in the implementation of these principles so that these topics go beyond mere head knowledge and into experiential knowledge.”

    I love the scope of this. It sounds like he put everything into it.

    → 7:17 PM, Jun 23
  • Microblog timelines, Project Lightning, and River.js

    I said that one important facet to microblogging is the timeline experience. This is a basic foundation to Twitter’s success, although they continue to de-emphasize or twist it. Their upcoming Project Lightning will attempt to curate and deliver tweets to you that are important regardless of who you’re following. From Mat Honan’s scoop on the project for Buzz Feed:

    “Launch one of these events and you’ll see a visually driven, curated collection of tweets. A team of editors, working under Katie Jacobs Stanton, who runs Twitter’s global media operations, will select what it thinks are the best and most relevant tweets and package them into a collection.”

    David Pierce wrote for Wired with further speculation on what it could mean for Twitter. David starts with the premise that Twitter is basically full of junk:

    “Sure, yes, everyone’s Twitter is different—that’s one of the service’s best aspects, that you can follow anyone you want and see whatever you want. Unfortunately, this only works if everyone on Twitter isn’t terrible most of the time. They are.”

    The essay continues, describing Project Lightning as the death of the Twitter timeline as we know it:

    “With this change, Twitter doesn’t have to look like an endlessly flowing, context-free stream of tweets; instead, you can see a hand-curated set of tweets, links, images, and videos related to what’s happening right now. You see one at a time, swiping through them until you get to the end. And there’s an end!”

    Since I haven’t seen this new feature, I can’t tell whether it’s a major shift in how Twitter is used. Federico Viticci is optimistic about it:

    “This is another example of Twitter moving beyond Legacy Twitter and the belief that Twitter is still only a timeline of tweets in chronological order. The company has been enhancing the service with media improvements and design changes aimed at making Twitter less static – the opposite of a traditional timeline. If anything, they've been moving too slowly in this area.”

    I agree with Federico on the value of curation and surfacing great content. But also the timeline must remain at the heart of Twitter, just as a reverse-chronological list of posts has been on every blog home page since the term weblog was coined 18 years ago.

    Dave Winer calls these timelines “rivers”, and last week he open-sourced a browser for the River.js timeline files. Formatted as JSONP, you can think of River.js as conceptually the same as an RSS feed, except that it’s easy to display with HTML using only JavaScript.

    I plan to fully support outputting River.js in the project I’m working on. For the last few years, Twitter has had a monopoly on the timeline. We need to break that up. The first step is encouraging microblogs everywhere, and the next step is to build tools that embrace the timeline experience. If you’d like to see my take on this, please sign up on the project announce list.

    → 8:42 AM, Jun 22
  • Why Ello isn’t enough

    Last week, to not much fanfare at all because nearly everyone had already lost interest, Ello shipped their iPhone app. Credit to them for attempting to build a new social network, because this is extremely difficult. But it seems to me that Ello is a bust. They needed a more compelling pitch than simply “no ads”.

    (I’ve heard some people joke about Ello’s monospaced font, but I kind of love that about Ello. If you want to differentiate yourself, design isn’t a bad place to start.)

    App.net was — and likely will be for many more years — the most successful attempt to compete with Twitter and Facebook. If they fell short, despite how many things they got right, how can another clone of existing social networks hope to do any better?

    I wish I could cheer Ello on. Spend enough time clicking around on Ello and you discover a niche but fascinating community, full of beautiful art and photos. It’s just that after so many months, there’s still not even a mention of an official API on the planned features page.

    The next great social platform can’t be yet another centralized system. It has to be more distributed and more open even than App.net. It has to focus on writing and bloggers and embrace what is good about the web. Ello doesn’t do any of these things.

    → 4:33 PM, Jun 21
  • Taylor Swift and the Apple Music trial

    Taylor Swift writes on her blog (via iMore) that she’s hopeful Apple will be the first company to get streaming right, but that she can’t agree to 3 months of artists not getting paid:

    “I realize that Apple is working towards a goal of paid streaming. I think that is beautiful progress. We know how astronomically successful Apple has been and we know that this incredible company has the money to pay artists, writers and producers for the 3 month trial period… even if it is free for the fans trying it out.”

    I agree with Taylor. Apple still has a mountain of cash. Seems reasonable for them to use it to launch Apple Music properly and get musicians excited about the service. Usage will be higher during the free trial, so it would be a nice gesture to the music community, even with some kind of reduced royalties.

    Imagine if Apple had launched the Mac App Store with this same model, where users could try apps for free and developers wouldn’t get paid for the first 3 months. Pretty unacceptable.

    → 9:20 AM, Jun 21
  • More quick blogging workflows

    I had a great conversion with Seth Clifford one night at WWDC, about writing and blogging. We all want to get better at writing and posting more frequently. As I mentioned in yesterday’s post, the best way to improve anything is to do more of it, more often.

    I believe there are two important facets to microblogging. The first is the timeline experience: a reverse-chronological list of posts from your friends, like you see on Twitter. The second is that posting should be effortless: if there’s less friction between your idea and publishing it, you’ll write more often. So a big part of posting regularly is just having a system that makes it easy.

    Seth updated his iOS blogging workflow by using Drafts and WordPress’s email-to-blog feature. As a nice bonus, he gets Markdown files of each post saved to Dropbox:

    “Drafts allows you to send email as an action. WordPress allows you to post into the system via email. Using a combination of the action and the Jetpack plugin’s email functionality, I can go from idea to published in seconds, without touching the WP iOS app (which continues to get better, but still isn’t fast) and get my local copy stored away.”

    Also this week, Ben Brooks has switched his core Twitter posting to go through WordPress. He has a standalone microblog at benb.me where the posts live. They go out to Twitter automatically via IFTTT. Posting to a blog first and then Twitter second seems like a simple idea, but it is extremely powerful. Years from now you end up with an archive of all your short-form writing at your own domain. Not as an afterthought, but as the default.

    The great thing about blogging is there’s no one correct way to do this stuff. I’m really happy to see these solutions from Seth and Ben, and I know other folks are working on similar workflows.

    → 10:07 AM, Jun 20
  • We need more bad ideas

    Shawn Blanc has been publishing a series of essays leading up to his new book and online course, The Focus Course. In a recent post, he writes about how we all need to get through more bad ideas. It’s easy to assume that because your friends’ lives appear perfect on Facebook, that you should reserve only your brilliant ideas for posting:

    “One of the things that comes with having the internet in our pocket is that we can share moments and slices of our life with the world. But most of us are sharing the highlights. We share the best photos of the grandest places. Which is fine. But it also can cause a slight sense of disillusionment.”

    The essay reminds me of something that always stuck with me reading about legendary Warner Bros. animation director Chuck Jones years ago. He said that when he was young, his father would give him and his siblings essentially unlimited paper to draw on, unused supplies from his business. We all have 100,000 bad drawings in us. The sooner we get through all the bad drawings — in Shawn’s essay, the bad ideas — the sooner we can start producing our best work.

    → 9:42 AM, Jun 19
  • Microblogging with WordPress

    I wrote at a high level how I improved my microblogging workflow before WWDC, but I’d like to use this post to show the surrounding details. I hope it’s useful to other folks who want to control their own content.

    Post formats. Newer versions of WordPress have the concept of post formats. Normal blog posts have a “standard” format, but there are also these types: aside, image, link, quote, and status. For microblogs, I recommend “status”.

    No titles. As I proposed in a previous blog post, for small posts we should revisit an original feature of RSS: the title of a post is optional. In fact, early blogging systems like Radio Userland didn’t even have a title field. When you’re writing a microblog post in WordPress, just leave the title blank, and if necessary update the post template to not include the title in HTML or the RSS feed.

    RSS feeds. If you create a brand new WordPress blog for microblog posts, you won’t need to do anything special about RSS feeds. But if you share a single blog for both standard and status formats, you may want to have 2 feeds: one that excludes microblog posts and one that contains only microblog posts. Just use a special category for microblog posts in addition to the post format. Here’s a section of my .htaccess file where I use the “cat” parameter to include or exclude this category for my blog’s feeds.

    iPhone posting. One of the lessons from Twitter is that posting should be effortless. Using WordPress on iOS is fine, but I’ve found that wiring up a simple posting recipe in IFTTT’s Do Note app makes it trivial to post from your phone. Use the WordPress action in IFTTT but also get this WordPress plug-in. Since the WordPress action can’t yet specify a post format, the plug-in can simulate it by using a special ifttt-status category. Here’s a screenshot of what my IFTTT recipe looks like.

    Tweeting. Now that you have a blog that contains all your microblog posts, you can wire it up to Twitter to automatically cross-post them as tweets. You’re writing on your own site first, but the posts still go out to your Twitter followers. Again, use an IFTTT recipe that pulls from your microblog RSS feed and sends the post content to Twitter. Since I don’t post to Twitter, I’ve set mine to post to App.net instead. You can continue to reply and favorite directly on Twitter.

    I’m very excited about the potential for microblogging. For the last year I’ve been working on a new platform around this stuff. By adopting some of these tips for WordPress, your microblog will be ready for my platform, but more importantly your blog will be open and extensible. Let’s get back to our roots with RSS and see what tools and web sites we can build.

    → 11:32 AM, Jun 18
  • HipChat outage

    HipChat explains what happened with their outage on Monday. Part of it was a reconnection bug in the new Mac client:

    "When a large network provider in the SF Bay Area had an issue Monday morning, it caused all of those clients to start reconnecting at once. This saturated our systems and prevented normal usage."

    I could’ve done without the light-hearted mention of cat GIFs and inline face-palm image, but otherwise it’s a good post. They apologize and succinctly explain the issue. Far too many of these types of downtime reports from other companies go on and on for pages of detailed text, as if to hide the true failure in unnecessary verbosity.

    → 9:19 AM, Jun 18
  • iOS 9 search

    Federico Viticci has a comprehensive write-up about Apple’s approach to search in iOS 9, including comments from developers. On local app search:

    “With local app search, iOS 9 can build an index of content, app features, and activities that users may want to get back to with a search query. Built like a database and already in use by Apple apps such as Mail and Reminders, CoreSpotlight will provide low level access to the index of an iOS device, making it easy to organize and retrieve content users have previously seen, created, or curated.”

    I’ve been slowly going through WWDC session videos, but haven’t cracked open the documentation for search yet. Sounds like an important new API for any app that has user documents.

    → 9:38 AM, Jun 17
  • Amazon Echo

    Dan Moren wrote on Six Colors last month about the Amazon Echo. On the voice recognition working so well:

    “The Echo’s hardware deserves a full share of that credit. The microphones on this device are impressive; even when I’m several rooms away, Alexa rarely mishears me. I’ve triggered it from my kitchen and from my hallway, the latter of which doesn’t even have line of sight to the Echo.”

    I have one too. I pre-ordered it on a whim and then promptly forgot about it for 2 months. Then seemingly the next thing I knew it had showed up at my house. If I had remembered about the order, I might have cancelled it, but now I’m glad I didn’t. The Amazon Echo is great.

    I remarked on Core Intuition that it’s like a task-specific Siri, with better accuracy because there are limited things you want to ask it. Play some music, set a timer, measurement conversions. It can’t do everything, but what it can do is particularly useful in the kitchen or living room. Plus it’s probably the best wireless speaker we’ve ever owned.

    Because it’s so effortless to play music now, I’ve uploaded some tracks from iTunes to the Amazon cloud via their music uploader. (Remember when we wanted DRM-free music? This is a concrete reason why.) And since we have an Amazon Prime membership, I’ve discovered that we have a significant amount of good music in the cloud already.

    I’m looking forward to Apple Music and will probably subscribe, but I’ve realized after having the Echo for a while that Amazon is quietly sitting on something pretty special. They should do more with music — I didn’t realize until now that they even had a dedicated iOS music app — and more to build and promote their service. Music is in their “DNA” just as much as it’s in Apple’s. After all, Amazon’s 2nd offering after books was music CDs.

    → 7:07 PM, Jun 16
  • Apple News and RSS

    Daniel Jalkut has an optimistic take on Apple News. He doesn’t think it is comparable to centralized publishing systems like Twitter or Medium for one important reason:

    “Because the content doesn’t live on Apple’s servers. This is a key distinction in my mind. Apple’s News App serves primarily not as a source of information, but as an amplifier of it.”

    Any technology that invokes “amplifier” in a review is something I want to pay attention to. I used the same word in the closing paragraph of my pitch for App.net. That service is fading away now, of course, but it’s just another reminder that even the most well-intentioned platforms are dangerous if they distract us from controlling our own content and hosting it at a custom domain.

    → 2:25 PM, Jun 15
  • 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.

    → 9:25 AM, Jun 15
  • Clever code and WWDC

    In his 9th essay about avoiding crashes in your code, Brent Simmons writes about learning to be even less clever:

    "But over the years I’ve come to think that I should write code that’s about 10% as clever as I am. And I’ve come to believe that true cleverness is in making code so clear and obvious that it looks like nothing at all."

    I’m in San Francisco for WWDC this week, but without a ticket again. I took some time this afternoon — miles away from the hotel and Moscone — to reflect on what I’m doing here and what I need to do next. I’ve been to WWDC many times; my first was in 1996. And it has taken almost all of those years for me to understand the truth of Brent’s statement about being clever.

    I also believe that a programming language can either encourage or discourage clever code based on the syntax it allows. I saw it with Ruby — programmers intent on fitting as much logic into a single line of code as possible. I think I see it with Swift as well, in operator overloading and maybe even a kind of rejection of Objective-C’s notorious verbosity. We’ll know for sure if we eventually see a Swift book in the pattern of JavaScript: The Good Parts.

    → 7:22 PM, Jun 10
  • Google Photos

    Tim Cook spoke recently about privacy and cloud services:

    “You might like these so-called free services, but we don't think they're worth having your email or your search history or now even your family photos data-mined and sold off for God knows what advertising purpose.”

    I’m going to give you a very cynical translation, which I don’t often do: We are in denial about how much better Google Photos is than what we’re doing at Apple. It is so advanced in terms of search that we won’t be able to match it anytime soon. In fact, we don’t even have anyone working on similar technology at all.

    It’s not about being free. I pay Dropbox $20/month to be grandfathered into 2 TB of storage so that I can put all of my photos and documents there. Dropbox is rock solid and worth it.

    Like Marco and others, I have tried to avoid Google services. I don’t use Gmail. I hate advertising. But the idea of being able to quickly search my photos by content without even tagging or organizing them was too compelling to not try. So I’ve uploaded over 10,000 photos so far to Google Photos. It is really good. (I’m going to finish uploading all my photos and give it a few months before making a final judgement on the search vs. privacy trade-off.)

    Some of the random searches that work out of the box to filter my photos: “beach”, “trains”, “New York City”, “Oregon and 2013”, “road trip”, “party”, “basketball”, “Christmas tree”. I never saw a demo or tutorial for how to use Google Photos; I just type stuff in and it mostly works, discovering photos and events. And on top of that, there’s also the automatic stories and collages, which is something we always wanted to build for Sunlit.

    My family photos are the most important files I have on my computer, and I very rarely share any photos of my kids publicly. But ironically I’m willing to overlook some of the privacy concerns around this exactly because the photos are so valuable to me. I want multiple copies in the cloud, and I want the power of search that Google has built.

    → 11:20 AM, Jun 4
  • Brent resigns from Q Branch

    Brent Simmons, still an Omni employee, has decided to part ways with his Q Branch founders to focus on a new project. The whole essay is an important read, but especially this part:

    “I turned 47 a little while ago, and I’ve had some reasons to reflect on the shortness of life, and I realized how very important it is for me to work on the software that I think about every day. I kept putting it off, but every day that I put it off hurt more than the previous day. I realized that I couldn’t continue — I have to do the work that I need to do.”

    I think many of us can relate to this. I don’t personally have a single piece of software in mind that has been nagging at me, but I have had a sense for a couple years that everything I work on needs to be something that matters to me. Having a theme across projects has also been a great way to judge what to spend time on.

    → 12:04 AM, Jun 3
  • 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.

    → 9:36 AM, Jun 2
  • WordPress microblog posting from Do Note

    I finally have a great use for IFTTT’s Do Note app. I’ve wired it up to my WordPress blog so that I can quickly publish microblog posts there. Previously, if I was on the go I could use the official WordPress iOS app, but that requires a bunch of extra taps: setting the post format to “status”, setting the category to “Snippets”, and going back and forth between screens. Now all of those defaults are baked into the IFTTT recipe. (Grab this WordPress plug-in to set the custom post formats automatically.)

    I also wanted to streamline my cross-posting to App.net, which before now had been a manual copy and paste. I use a pair of RSS triggers in IFTTT for this as well, to go from my main RSS feed and my microblog RSS feed. And at the same time, I’ve updated the CSS for my microblog posts so they look a little better over the web.

    Effortless tweeting is a big part of what Twitter got right on user experience. With WWDC around the corner, I should be posting to my own microblog more frequently now that I have a good workflow.

    → 6:53 AM, Jun 2
  • Twitter Island

    To cope with his dislike for how Twitter treats the microblog part of their platform, Brent Simmons has adopted a strategy of deleting old tweets:

    “So I haven’t deleted my account or made it private. I will respond to some messages. It’s just that I’ll delete my response after a day or a week or whatever so that Twitter is a chat-only service for me.”

    Justin Williams joked that Brent and I are now the sole inhabitants of “Manton Island”. That’s funny but it’s actually backwards; it’s Twitter that is the island. Everyone is there, though, in an overpopulated mess, so they don’t realize they’re cut off from the rest of the world — the open web, designed 25 years ago as an interconnected system of countless islands.

    The risk on Twitter Island is that the monarchy can change the rules. Cars that once were great now can’t run on the road. Windows that once had a beautiful view now only look inward. Eventually maybe the whole thing sinks, with waterlogged tweets (which you thought you controlled) floating above the surface like lost bubbles over Atlantis.

    The rule of the open web is much simpler: you own your content if it’s on your domain name. That’s why I have my microblog posts here on manton.org and with their own RSS feed.

    I’ve been working on a new project that I think is the next step for microblogging. It still has elements of being an island, as most web apps inherently do. But mine isn’t just an island; it’s an island builder, with massive bridges to the mainland, to other nearby islands, to places we haven’t even dreamed up yet.

    → 5:11 PM, May 4
  • Cancelled cable TV again

    We went probably 10 years without cable TV, then splurged a couple years ago — HBO, Showtime, the works — to catch up (and keep up) with our favorite shows. Then we got sucked into other channels that made it “difficult” to cancel, such as Fox Sports Southwest for all the Spurs games this year. Sadly that final reason ended Saturday night as the Spurs lost to the Clippers in the final seconds of game 7, wrapping up the greatest first-round matchup I’ve ever seen.

    Time Warner will try almost anything to keep you as a customer. 30 minutes and 3 phone calls later, we’re cable TV free but still have internet with them, upgraded to 200 Mbps. To offset our loss of channels, we’ve got TNT, AMC, and HBO through Sling TV. It’s significantly cheaper and we can have a small Roku in the living room instead of a giant, loud, overheating DVR box.

    → 10:30 AM, May 4
  • Watermark transition plan

    I sent an email to Watermark customers over the weekend, letting them know that the service as it currently exists will be going away on May 15th. As I wrote about last year, Twitter has improved their search enough that a part of what Watermark is good at is no longer as necessary as it once was. However, I still see interest in Tweet Marker, from developers and users, so I wanted to keep the web-based timeline and sync from Watermark and make it available to all Tweet Marker subscribers.

    You can learn more about Tweet Marker here. I’ve had to significantly scale out the backend servers this year, including adding a second load balancer, so I’d love your support. The new timeline feature will roll out later in May.

    While I’m happy to keep offering a part of Watermark (now back in Tweet Marker), I have less good news for Tweet Library. I’ve found it very difficult to justify the time to finish the new version. It’s now looking likely that the current version will be the last.

    → 9:23 AM, May 4
  • Searchpath improvements

    As part of a renewed commitment this year to work on my web app Searchpath, I’ve just rolled out a few improvements. A search engine like Searchpath needs frequent maintenance to keep running smoothly — minor bug fixes and behind-the-scenes work on queues and web crawling — but I also hope to catch up on new features that I’ve long planned for the product.

    One marketing bullet I always had that wasn’t fully realized: “Also serves as a text backup for your site.” Searchpath now exposes links to download both the HTML for any stored page on your site as well as a text-only version of that page after Searchpath has attempted to trim out the navigation and other links. Hopefully this will help out any customers who might need to retrieve lost text from their site if their primary site backup failed (or doesn’t exist).

    Searchpath is free to try and $8/month or $75/year. Setup is as simple as copy/pasting one line of JavaScript where you want a search box. You can learn more and get started here.

    → 8:58 AM, Apr 24
  • Core Int jobs testimonials

    We’ve been lucky to see some great job listings appear on Core Intuition Jobs. Companies are getting good résumés and job applicants are finding the kind of job they’ve always wanted.

    When we hear from companies who have hired someone, we like to include a brief testimonial on the sidebar of the site. We’re about to add this one from Ken Drew at iRobot:

    “Our experience with the Core Intuition Jobs board went beyond our expectations. It provided higher caliber candidates for our recent iOS developer position. After doing code reviews for the candidate we eventually hired, we are more than pleased with who we found.”

    Thank you to everyone who listens to the podcast or watches on Twitter for new job listings. The opportunities for iOS and Mac developers have never been better. Get the job you want or find the next great member of your team.

    → 10:35 PM, Apr 21
  • Core Int 180 and Slack

    We posted this week’s Core Intuition late last night. This episode is all about WWDC tickets, our plan for San Francisco, and when we’re going to adopt Swift.

    We’re also trying something new for listeners, or anyone who wants to talk about programming, WWDC, and other Mac and iOS topics. You can get an automatic invite to our Slack channels for the show by visiting chat.coreint.org. Feel free to join in! I’ve been impressed with how well Slack works for this, and the great discussion that’s already happening there.

    → 10:04 PM, Apr 18
  • John Siracusa’s unbreakable record

    I’ve been watching a lot of NBA games this season. I’ve caught well over half of the Spurs’s 82 games so far alone, on TV and SiriusXM in the car (and a few in person in San Antonio). I’m not sure how far they’ll make it, but you can’t argue with the greatness of this team over so many years.

    The NBA has some records that just seem unbreakable. Either because the rules or style of play have evolved in the modern era, or because the records were insane at the time, these are feats we may not see again. Here are 10 such records, from Wilt Chamberlain’s 100-point game to the Laker’s 33-game winning streak to Bill Russell’s 11 championships. The Spurs’s 16-year streak of 50-win seasons is approaching this category of success as well.

    That’s kind of how I view John Siracusa’s series of Mac OS X reviews on Ars Technica. There have been other excellent reviews about Mac OS X over the years, but the depth and consistency of John’s reviews may always stand apart. If you’re starting today and want to top it, you will have to work for the next 15 years just to be competitive at all.

    Congratulations John on a great run. Nothing seems to last forever on the internet — web sites fade away, and some obscure technology isn’t well-covered to begin with — so it’s nice to know that these Mac OS X reviews are at a stable site where we’ll be able to reference them for years to come.

    → 12:22 PM, Apr 17
  • Textshots

    Federico Viticci of MacStories provides some context for so-called textshots with the upcoming release of Wikipedia’s new app:

    “The practice of sharing ‘textshots’ – screenshots of text, as they’re often referred to – has taken off among certain tech niches for two reasons. First, turning text into a static image is a primitive but effective workaround to circumvent Twitter’s 140-character limitations. But more importantly, humans have a natural tendency for convenience and visual feedback, and these two aspects are combined in the art of well crafted textshots: they save you a click, and they make shared passages of text more visually appealing.”

    I don’t like textshots. They’re like DRM for tweets: a trade-off that obscures real metadata and text selection just to hack around Twitter’s limitations.

    If I were building a Twitter-like social network, I’d certainly allow basic HTML styled text and inline images in a microblog post, but I wouldn’t go out of my way to encourage textshots.

    → 2:54 PM, Apr 15
  • WWDC 2015 dates

    WWDC will be June 8-12 this year, with a lottery for ticket selection. I’m not going to put my name in the hat for a ticket; I hope to save some money and let others have a chance. I’ll be in town for a few days to meet up with folks and attend AltConf, which looks excellent again.

    The student scholarship page caught my eye this year. App submissions have to be written using at least some Swift:

    “To be considered for a WWDC 2015 Scholarship, build and submit an app that showcases your creativity and technical skills. Your Mac app or iOS app must be written in Objective-C and Swift, or written entirely in Swift.”

    I’m also starting to reset my expectations for a more full-featured, native Apple Watch SDK. I think we’ll see welcome improvements to WatchKit, but with the watch still weeks out from shipping, it seems too soon for a reimagining of the API by June.

    → 9:08 AM, Apr 14
  • Goodbye Riposte

    Jared Sinclair announces that Riposte will no longer be available:

    “As part of an agreement reached over an alleged trademark infringement, Riposte (the App.net app I made with Jamin Guy) will be removed from sale on the App Store. We’ll also be taking down the riposteapp.net homepage.”

    Even today, Riposte is arguably the best social networking client out there. It pioneered consistent gestures for navigation. It will remain on my home screen for some time to come.

    → 10:01 AM, Apr 13
  • True cost of the Apple Watch

    Kirk McElhearn writes (via Thomas Brand) that when you include the cost of buying an iPhone, the actual cost of the Apple Watch is $900 or more:

    “That’s $349 for the cheapest Apple Watch – the Sport model – and $549 for the cheapest iPhone (the 5s; I don’t count the 5c, because it’s too limited). This is the unlocked price for the iPhone, of course; you can get one cheaper if you commit to a contract.”

    While I generally agree with the sentiment, I have to take issue with his dismissal of the 5C, which I’ve been using as my primary phone for over a year now. I’m an iPhone developer, so if it’s good enough for me it seems adequate for regular users who just want to use the Apple Watch. In fact, the opposite of Kirk’s argument is actually true: pairing an Apple Watch with the 5C makes the phone less limited than before by adding Apple Pay to it.

    The 5C unlocked is $450, which drops the total price with watch to $800. And really, it’s a non-issue, since nearly everyone excited about the watch already has an iPhone.

    When Apple shipped the first iPod, it required a Mac. Later they supported Windows, and today the iPod Touch is completely untethered and requires no computer. I expect we’ll see a similar transition with the watch becoming increasingly more useful as a standalone device, but there’s no rush to get there.

    → 9:20 AM, Apr 13
  • New social networks for Apple Watch

    The Verge highlights 6 apps that show the promise of third-party apps on the watch. About Twitter:

    “As you'd expect, many of the biggest social networks are ready with Watch apps on day one. Of those, Twitter's short-form updates seem to make the most sense for the Apple Watch — but it isn't Twitter's app itself that really stands out here. Rather, it's that Twitter is one of the social networks that soared thanks to the rise of smartphones. The Watch may not change that, but there's a chance that we'll see new networks build around it, the same way that Twitter, Snapchat, and Tinder have all built up around the smartphone.”

    This is certainly on my mind as I write about and work on microblogging projects.

    → 1:03 PM, Apr 9
  • Conferences in cool places

    Last week my Instagram timeline included a bunch of really beautiful photos from folks in Ireland for Úll. Jason Snell writes about the conference:

    “The location, in Killarney in county Kerry, is spectacular. It’s rainy and windy and the different patterns on the surface of the lake right outside the hotel are beautiful to watch.”

    There were a lot of neat ideas for Úll that I bet made it special, including a kids track and the train ride. I’m a sucker for anything train related, for example the train car hotel rooms in the upcoming Release Notes conference venue.

    These special touches transform a conference into half work, half vacation. Every technical thing you might want to learn is on the internet these days anyway. Conferences should be about inspiration as much as anything else, and a great setting is part of that.

    Here’s Jason again, writing about the national park location for Yosemite CocoaConf:

    “As I just experienced at Úll in Ireland, these sorts of conferences are truly special. It’s a chance for a small group of people who share an interest in Apple and related technologies to spend a few days together. They’re always a blast, but add in the unique setting of Yosemite National Park and this one promises to be that much more amazing.”

    I’m sorry to miss that one. For the last several years I’ve mostly fallen into a pattern of traveling to attend just one non-WWDC conference a year. This year I’ll be speaking at CocoaConf in Austin and hope to make Release Notes as well. Tickets for CocoaConf are on sale now, and Release Notes tickets should be announced soon.

    → 2:01 PM, Apr 7
  • No perfect iPhone size

    Some people bought the iPhone 6 and then went back to the 5S. Some people bought the iPhone 6 Plus and then tried the 6. Some worked their way up to the 6 Plus after adapting to the 6. Some never upgraded to the 6 or 6 Plus because both are too big.

    Marco’s post is a good formal summary of a few write-ups I’ve read this week:

    “Having used an iPhone 6 full-time from its launch until these 6 Plus experiments over the last few weeks, I can confidently say that neither phone is extremely well-designed. Both have nontrivial and completely avoidable flaws. But the 6 Plus has bigger advantages over the other phones, while the 6 seems to sit in a mediocre middle ground.”

    The lesson from all these switches couldn’t be more clear: there’s no longer one perfect iPhone for everyone. What works great for one person might be terrible for someone else. I personally love the 5C design — the size of the screen, the way the plastic feels in my hand, flipping or spinning it on my fingers without worry that it’ll slip, using it without a case, adding a little color to my life — but many people never even tried it because it contains underpowered hardware compared to the latest models.

    Apple would be crazy to discontinue any size. I’m more convinced than ever that we’ll see a 4-inch 6C alongside a new 6S and 6S Plus later this year. They won’t have identical specs, and that’s okay. I’ll happily pick the 4-inch model even if its camera is a year behind the cutting edge. The iPhone market is so ginormous now that I know there are millions of people who feel the same way.

    → 10:59 AM, Apr 7
  • If a tree falls

    There’s no denying the fact that my writing would have a greater reach today if I was still active on Twitter and tweeting links there. Posting to my own microblog feed and cross-posting to the dwindling user base that is App.net has an obvious “if a tree falls in a forest and no one is around to hear it, does it make a sound?” aspect to it. If the post is read by so few people, some might argue that it can’t be as relevant to a larger conversation.

    This doesn’t bum me out, though. It inspires me. It reminds me that I believe in something ambitious that has to be built in layers, starting small — a more open microblog platform that other apps can hang on to, encouraging new writing that will last.

    Dave Winer calls this process of building successful platforms a coral reef. I think it’s a forest. Only the most passionate users of the open web can hear the tree falling today, but tomorrow there will be new growth. We plant a seed with each tool we build and with every RSS feed that’s wired up. There will eventually be many forests, crowded with plenty of people listening, interconnected regions that can’t be bound in the way a closed system inherently is.

    If you join in and post, maybe your posts won’t be heard as clearly today. But in the future they will become the oldest, strongest pillars around which everything else grows.

    → 2:40 PM, Apr 6
  • How to start a microblog

    All my short, microblog-style posts go to my own weblog first, and also get cross-posted manually to App.net. You can view them in a special category and RSS feed.

    I think owning your own posts on the internet — even if they seem unimportant and fleeting — is a valuable contribution to the health of the open web. By loosely following some simple conventions, we can build stuff that goes beyond what purely centralized web apps like Twitter are capable of.

    Getting started is easy. I recommend one of 3 approaches right now if you want to play in this emerging ecosystem:

    • Tumblr. Microblog posts don’t need titles, and Tumblr has never cared much for titles itself. Some of Tumblr’s post types fit the style of a microblog very well. They also provide custom domain mapping, so that if you want to move your site later you can do it without breaking links.
    • Radio3. The latest version of Dave Winer’s tool can cross-post to Twitter. The setup couldn’t be easier, and because it has it’s own RSS feed, it will be easy to plug into future apps or get your data out.
    • WordPress. I use the self-hosted version of this. Just give microblog posts the “status” post type, which many WordPress themes can render with a tweet-like style. If you also put these posts in a special category, you can provide RSS feeds just for certain post types, or filter them out of your main feed.

    Since last year I’ve been working on something new that is all about microblogging. I hope that it will encourage many more microblogs, but there’s no reason to wait until then. You can start a microblog today with one of the above apps (or dozens of other blogging solutions), and more fully control your own presence on the web.

    → 9:51 AM, Apr 6
  • Waiting out trademarks

    Not long after I launched Tweetmarks in 2011, I realized that there was a trademark for that name, and an existing .com domain. I started worrying about the conflict so much that I couldn’t get any real work done. I talked to friends about it, tried to get other perspectives, and then finally renamed it to Tweet Marker. Whew, I had made a decision and moved on, free from ever worrying about it again.

    I had to fix the tweetmarks.net redirect recently and checked around on some of the old stuff. That domain name I had been so worried about, which I literally lost sleep over? It’s gone.

    I’m not going to tell you that trademarks don’t matter. Nothing I write on this blog should ever be considered legal advice. But it’s another reminder that there’s enough real stuff to focus on without wasting time on imaginary problems.

    → 11:10 AM, Apr 3
  • Footnotes follow-up (and the Newton)

    I expected to get a little more negative feedback on my footnotes blog post than I did. Most feedback was pretty good. Thomas Brand agreed but also wrote:

    “That being said, footnotes can be fun when used sparingly. They lend themselves to the kind of personal anecdote common to the tech blogs I read. If you are going to use footnotes to break up your articles, Bigfoot.js is not a bad way to do it.”

    Definitely. If you’re going to do footnotes, might as well do them with the best user experience possible.

    Thomas has had some really good posts lately. Before it expires off his home page, don’t miss the recent one on the Newton MessagePad 2000:

    “I doubt a 25-MHz ARM710 would have been very effective as a laptop replacement, and it the Newton engineering team knew it. That is why the MessagePad 2000 was simultaneously designed with two different CPU architectures and its own form of Universal binary.”

    I couldn’t afford a MessagePad 2000 at the time, but I still have my MessagePad 130. Along with my original iPhone, I’ll never part with the Newton — a wonderful device to use and develop for that was way ahead of its time.

    → 12:01 PM, Apr 2
  • Jordan Breeding

    Last week at NSDrinking we had one of our biggest turnouts yet. At one point, we’re talking about programming jobs, meetups, and Apple, and Jordan Breeding was mentioned. Not in the context of having passed away, but just in remembering something he had said or done. A stranger listening to the conversation would have no idea that Jordan wasn’t still a member of the community.

    This struck me as exactly right. I think anyone would would want to be remembered as who they were, not how they left us.

    Like many in our developer community, I’ve thought about Jordan Breeding at certain moments over the last couple months. Patrick Burleson shared a story about his close friend:

    “For those that knew Jordan, they know that he was a incredibly generous and caring person. He did so many things for so many people, it’s a wonder he ever got anything else done.”

    Episode 135 of the iDeveloper podcast opened with a segment remembering Jordan. Scotty and John did a great job of capturing what he meant to the community. Scotty says:

    “Everybody has said really the same things about him. Firstly, how clever he was. He was an incredibly intelligent person. But secondly, how generous and humble he was with that intelligence, and how he shared with people. He always made you feel like you could be better, and do better, and was always having a laugh about things.”

    Guy English also dedicated episode 60 of the Debug podcast to Jordan. On his blog he writes:

    “Good guy. I didn’t know him well but he always struck me as someone I’d like to get to know better. I lost out on that and too many others did too. Those who knew him universally loved him.”

    Kyle Richter worked with Jordan and had this to say, echoing Patrick’s quote above about how Jordan went out of his way for other people:

    “We were having dinner with some friends in California and my iPhone was acting up. Jordan volunteered to break away from the pack and come to the Apple Store with me. You rarely get to pick your last time with a friend, my last time with Jordan was him fighting with the Apple Store staff on my behalf. That was Jordan, even with everything he was going through he never thought of himself first.”

    And finally, a collection of tweets via John Gruber. You know when reading any of these that Jordan will be remembered for a long time. He accomplished a great deal and went far, quickly, and that progress is a personal inspiration whenever I consider accelerating the change in my own career. Carpe diem.

    → 10:26 AM, Apr 1
  • Footnotes

    Stephen Hackett recently linked to the footnote JavaScript library Bigfoot.js:

    “It works great on devices of all sizes and makes reading a long article much easier, as you don’t get bumped to the bottom of the article and back up to the top just to read a witty comment."

    You know what else makes a long article easier to read? Fewer footnotes.

    This trend of footnotes in blog posts is out of control. Maybe a couple footnotes work well in a very long Daring Fireball essay, but in recent years bloggers are using footnotes everywhere in places where they’re just not necessary. They’re distracting and take you out of the story.

    (Also remember, no amount of JavaScript footnote wizardly will help when I read your article in most web-based RSS readers. If I want to read the footnote right away, I’ll have to scroll down and then scroll back.)

    I avoid footnotes in my writing. Often the same effect can be achieved with simple parenthesis. If parenthesis don’t fit well, entire extra paragraphs are also much more readable. And if it can’t be conveyed without footnotes, maybe the text should be cut out completely, if it is of so little importance to be relegated to the bottom of the article.

    Footnotes are appropriate in two cases: either as true side notes, with facts or sources that can be looked at later, independently of the main writing; or for a particular style of writing, such as Bill Simmons’ Book of Basketball, which often goes off on long tangents and has footnotes on every page. (No small feat because the book is over 700 pages.)

    In this rant I’m not trying to criticize anyone in particular. I read several authors who use footnotes frequently and I love their writing. But that doesn’t mean everyone should adopt that style without making sure it actually fits the context. Consider whether footnotes in blogs might be a fad, and if so, that it’s a writing challenge to find another way.

    → 10:28 AM, Mar 31
  • Nimoy’s last tweet

    Over two years ago, I carefully planned my final tweets so that they would serve as a proper closing to that chapter of being active on Twitter. But mine were nothing compared to Leonard Nimoy’s final tweet, posted days before he passed away. It’s been a month now but I’m still reflecting on it:

    “A life is like a garden. Perfect moments can be had, but not preserved, except in memory. LLAP”

    Beautiful. He left behind much to be remembered by.

    → 2:40 PM, Mar 30
  • Ephemeral blogging

    Thomas Brand has changed his blog to let short link-style posts essentially expire off his site, with no permanent archive:

    "For the last five months I have been practicing a new way of blogging. Articles of reference receive a permalink with a link on my homepage and a link in my RSS feed. Quotations and comments are displayed in full on the homepage and in the RSS feed, but do not receive a permalink of their own. As I write, older quotations and comments are pushed down the homepage and lost from the site forever."

    And since that post may go away, I’ll quote a little bit more:

    “I feel like disposable blogging lends itself to a more carefree publication, not only for me but my audience as well. When you pick up a magazine, you don't expect to have access to every back issue.”

    Meanwhile, Dave Winer has been working on his own new blogging platform:

    "There haven't been new features in blogging in a long time. Where's the excitement? It looks to me like there's been no effort made to factor the user interface, to simplify and group functionality so the first-time user isn't confronted with the full feature set, left on his or her own to figure out where to go to create a new post or edit an existing one."

    I think the next 5 years of blogging are going to be a lot more varied than the previous 5 years. Medium-style UIs, Twitter-like microblogs, and of course traditional WordPress blogs, plus the work Dave is doing and whatever else people build as blogging takes off again. I’m looking forward to shipping an app that contributes something to all of this, too.

    → 11:09 AM, Mar 30
  • Criticizing Apple

    Marco Arment reacts to the idea that he’s withholding criticism:

    “As anyone who’s read my site and listened to our podcast for a while would know, I criticize Apple all the time. A developer’s view of their computing platform and software distribution partner is like any developer’s view of their programming language of choice: if you don’t think there are any major shortcomings, you just don’t know it well enough yet.”

    This is all true, but I also think there’s something unique about Apple: we expect greatness in everything they do. It wouldn’t be the same Apple we love if we brushed complaints aside when the company falls short. And as Marco points out, Apple employees aren’t scared of negative feedback, because they want to build great products too.

    A number of years ago I was sick of programming and went back to school to study art and life drawing. Maybe more than anything else, I came away with a new appreciation for self-criticism, and accepting the critiques of others. Because that’s how you get better. Until you can see what’s wrong — your drawing sucks and your iOS app is slow and buggy — you have no hope to improve.

    The key in both art and technology is to understand the difference between constructive criticism and just complaining. Marco’s original post was about calling out Apple on lower quality standards in the hope that they could focus and get better. Many of the “me too” posts that followed were from Apple haters who were looking for page views and couldn’t care less if Apple quality improved.

    Daniel Jalkut writes that it’s about how we react to criticism that matters:

    "This is what happens when well-formed criticism meets the ears of a confident, competent individual: the facts are taken to heart and studied, perhaps grudgingly. But upon reflection and determination that there was merit in the complaint, respect for the source of the provocation goes through the roof."

    I’ve been working on an essay about the Apple Watch Edition and why I think it’s wrong for Apple. I do worry a little about putting out a controversial, half-baked opinion. And yet, I’ve seen no one else make my argument against the Edition in the meantime. If I want Apple to live up to the very high standard I hold them to, I can’t withhold my opinion on the direction of the company, regardless of whether that opinion will be warmly received.

    → 11:19 AM, Mar 27
  • Short and sweet job posts

    I’ve been very happy to see the variety and high quality of jobs listed on our Core Intuition Jobs site. Two in particular have recently caught my attention for being concise, as if they don’t want to waste a potential candidate’s time with too many bullet points.

    First up is Betaworks, which you’ve heard of as the company that now develops apps like Instapaper and Digg. Here’s the listing in its entirety:

    “We're working on a bunch of brand new products at betaworks and are looking for iOS contractors to help our existing engineers move faster. We're ready to start ASAP and this gig will go through June (with the option to stay on for longer if you'd like to). Email us for more info if you're interested!”

    And here’s new startup Honest Dollar, where you’ll be working in downtown Austin with my friend Justin Youens and a team looking to reinvent retirement plans for small businesses. Again, the full text:

    “We're a new startup in Austin and are looking for awesome people to help build our iOS apps! We have an amazing team in place, and are looking to extend it.

    “If you have at least a few years of impressive iOS experience, we’d love to talk. Relocation assistance available, but onsite desired. Full-time or contract.”

    I bet both of these companies would be great places to work.

    → 4:35 PM, Mar 23
  • Medium as the new Twitter

    Daniel Jalkut had some fun recently, exploring whether Medium’s improvements to posting are turning it into a next-generation Twitter:

    “Medium is now the most Twitter-like service on the web, was founded and is run by one of Twitter’s creators, and answers most of the gripes that people have had about Twitter over the years.”

    My gut reaction to this was that Medium creates more problems than it solves. In a reply on Medium:

    “Medium is really interesting, and beautifully designed, but it’s not progress over Twitter unless you’re annoyed about the 140 character limit. It’s still totally centralized, has no API, and works against wanting to host and control our own content. Basically a step back for the open web. (Although I think there’s real value in mirroring content here.)”

    Medium also feels like it wants to be a desktop experience right now. It’s not optimized for mobile in the way that Twitter has been from the beginning. There’s good stuff happening there, but I want to see more tools that encourage blogging instead.

    → 8:00 AM, Mar 12
  • Smaller phones again

    Michael Tsai is collecting excerpts from people who have written about going back to the iPhone 5S after buying a 6 or 6 Plus. His opinion:

    "I’m still liking my iPhone 5s and hoping there will be a new 4-inch model this fall. If there is, I’ll upgrade in a heartbeat."

    I was happy to see that one previously-exclusive selling point for the iPhone 6 is now coming to the older phones: Apple Pay, via the Apple Watch. When paired with the watch, the 5, 5C, and 5S can now make payments too.

    → 12:17 PM, Mar 11
  • Very busy (and the watch)

    Yesterday this weblog turned 13 years old. I don’t usually miss the anniversary; it’s a nice time to reflect on what I’m writing about here. But I’ve been incredibly busy this year, working on a range of things from real work to side projects to family stuff.

    Over the weekend I also helped out at the annual STAPLE! comics show in Austin. This is always a great time to check out what independent artists are up to, and as usual I came away inspired to get back into drawing.

    I’ll have a longer write-up about yesterday’s Apple event soon. I have a very negative opinion about the $10k Apple Watch Edition — not because it’s expensive, but because of what focusing on the super rich says about Apple’s priorities. Daniel and I talked about this at length on Core Intuition episode 174 a couple weeks ago.

    Overall the event was great, though. I’m looking forward to pre-ordering a watch and getting into development. Leaning toward the 42mm Sport, with blue band and an extra classic buckle.

    → 12:25 PM, Mar 10
  • iPhone 6 Plus is still huge

    Seth Clifford goes back to the iPhone 6 after a long time with the Plus:

    “I was convinced that the unique size and abilities of the Plus would change the way I use my phone. In my mind, it was large enough to be a small tablet, and I would do so many more things on it, potentially obviating the need for an iPad. That didn’t happen for a variety of reasons.”

    As for me, I’m still using the iPhone 5C and think the design is nearly perfect. I wish I had the iPhone 6’s camera, but I’m not upgrading phones until Apple ships a “6C” next year with a 4-inch screen.

    → 4:13 PM, Feb 9
  • Typed.com and the state of blogging

    Typed.com from Realmac Software looks great. Set to launch later this year, crowdfunding for the project has already passed $67k.

    Ben Thompson wrote recently about how blogging has changed:

    “Twitter has replaced link-posts and comments, Instagram has replaced pictures, and Facebook has replaced albums and blogrolls; now Medium is seeking to replace the essay. None of this is a bad thing: literally billions more people now have a much simpler way to express themselves online thanks to the ease-of-use that is characteristic of any service that seeks to focus on one particularly aspect of communication, a big contrast to a blog’s ability to do anything and everything relatively poorly.”

    It’s a good post, although I’d say that even if those changes aren’t “a bad thing”, they can have bad consequences. Medium is a beautifully designed site and there is some great writing published there. But if it discourages people from owning their own content and writing at their own domain name, then it is a step back for the web. The best use of Medium is to cross-post there, to expand your audience, but not as the primary location for your writing.

    If you’ve read between the lines on my posts about microblogging and open APIs, you may have guessed that I’ve also been working on a blog platform, although (I think) of a much different kind than Realmac’s Typed.com. I believe we need more blog platforms, not fewer. Accepting that Twitter and Facebook are the only way to publish online is like collapsing all the publishing systems down to a couple centralized tools. That approach is convenient in the short term but ultimately bad for the web.

    The best and most diverse writing on the web still happens on individually-owned blogs. It’s linked to from Twitter, but it originates on blogs. If you’re not blogging than your writing doesn’t have the reach, doesn’t have the permanence, doesn’t have the impact that it could have.

    And 2015 is going to be great for blogging. I’m looking forward to trying Typed.com and also sharing some of what I’ve been working on. If you want an early heads-up, sign up on the announcement mailing list.

    → 6:22 AM, Feb 9
  • Minimal UXKit

    Brent Simmons reacts to the news that the upcoming Photos app for Mac uses a private UXKit framework. Instead of being the full UIKit-based replacement for AppKit that many developers want, Brent suggests it could be a minimal framework just to make some things easier:

    "I could imagine a minimal UXKit that isn’t meant to replace AppKit but that can be used with both AppKit and UIKit. It might have UXColor, which would wrap UIColor and NSColor. Same with UXFont and UXImage. UXTableView could present a simplified superset of UITableView and NSTableView/NSOutlineView."

    Like Brent and many other developers, I started this same kind of compatibility work when porting Tweet Library to the Mac. I ended up abandoning the project because it’s a slippery slope to basically reinventing Chameleon. (Also, back in 2006 I ported parts of Microsoft’s MFC C++ framework to Cocoa and it was a lot of work. I’m not eager to repeat that process.)

    I agree with Brent that we don’t necessarily need a completely new AppKit. I’d love to see Apple standardize the foundational classes which are nearly identical already — colors, images, and fonts, as Brent mentioned — as well as UI elements that could be the same without a real cost — views, buttons, labels, table cells, and maybe split views. These UX-prefixed classes wouldn’t do everything their UI and NS versions could do, but they’d allow developers to move more code into cross-platform layers of their app by sticking to the common properties and methods.

    As tempting as it would be to throw in iOS-only classes like UINavigationController, I think that would be outside the scope of a minimal UXKit. Candidates should already exist in similar forms on both platforms.

    WWDC 2015 is going to be fun if Apple attempts to tackle even a little bit of this. A minimal UXKit would strike a good compromise between the usual iterative improvements to AppKit and a more revolutionary change to the frameworks.

    → 2:10 PM, Feb 6
  • Core Intuition 171

    On this week’s Core Intuition:

    "Daniel and Manton touch again on the subject of killing off apps, assess the effectiveness of protest movements against the App Store, catch up on the state of the art for appealing App Store rejections, and acknowledge the coming end of NSConference."

    In this episode we talked about how I was going to need to more formally appeal the Sunlit 1.3 rejection, not just comment in the Resolution Center. But shortly after we recorded, the app magically went live in the store anyway. I was very happy to avoid making further coding changes, though I expect I’ll have to revisit this if the app is ever rejected again.

    → 9:09 AM, Feb 6
  • Elon Musk

    Just finished reading this great interview with Elon Musk in Wired, after somehow missing it when it was first published. Wired’s Chris Anderson:

    “All entrepreneurs have an aptitude for risk, but more important than that is their capacity for self-delusion. Indeed, psychological investigations have found that entrepreneurs aren’t more risk-tolerant than non-entrepreneurs. They just have an extraordinary ability to believe in their own visions, so much so that they think what they’re embarking on isn’t really that risky. They’re wrong, of course, but without the ability to be so wrong—to willfully ignore all those naysayers and all that evidence to the contrary—no one would possess the necessary audacity to start something radically new.”

    If my generation’s hero was Steve Jobs, my son’s will be Elon Musk. It’s difficult to overstate how profound an impact Elon has had already. My son plays Kerbal Space Program all the time. On the way to school, he counts electric cars. I can’t think of a better person to aspire to — someone with not just one big, ambitious idea, but several projects from cars to solar to space to transit, each with the scope to leave quite a dent in the universe.

    → 12:28 PM, Feb 5
  • Swift or Android

    I was nodding my head while listening to the latest Developing Perspective yesterday. David Smith talked about all the work to update his apps for iOS 8, starting on Apple Watch apps, and so taking the pragmatic approach to keep using Objective-C rather than dive into Swift.

    Then I read this by Russell Ivanovic on getting started with Android development:

    "It’s really not that hard to get started, but you have to be realistic. If you want to get somewhere, you’re going to have to invest some time. If you want to build a viable business on Android like we have, that might end up being a lot of time. I really feel like 2015 might be the only window you’re going to get though, before Google Play becomes as hard to succeed in as the iOS App Store."

    And I thought, getting up to speed with Swift is probably not that different than learning Android. I’ve programmed Java before, but don’t know the UI frameworks; I know the Cocoa frameworks, but have never programmed anything significant in Swift. Both would require setting aside current priorities and investing some time in a new language or new tools.

    If I had to build an app in either as quickly as possible, choosing Swift would certainly be faster. I’m just not sure it would actually be a better use of my time than poking around in Android.

    → 11:45 AM, Jan 30
  • Snippets category paging

    Today I fixed some URL-related issues with this blog since moving to WordPress. Clicking through multiple pages of posts in a category now works again. I tweaked the category links slightly, dropping the .html extension, but all the old URLs are preserved through redirects.

    Also a reminder if you’re subscribed to the RSS feed: my shorter, microblog-style posts go into the Snippets category, which is not included in the main feed. If you’d like to subscribe to those as well, just add the Snippets RSS feed to your news reader. I also still cross-post them to App.net.

    → 12:19 PM, Jan 23
  • Core Intuition 169

    Last night we published episode 169 of Core Intuition. As we’ve done on a couple recent episodes, we let this one run for an hour with a discussion of App Store revenue, sales charts, and progress on our own projects. Sunlit 1.3, the update I mention in the podcast, is complete now and submitted to Apple for review.

    → 9:00 AM, Jan 23
  • Tweet Library 2.7 and promising features

    Last year I wrote that I would be removing Tweet Library from the App Store at the end of December, and later said on Core Int and in a tweet that there would be one last update before the app is gone. It’s well into January and the old version is still for sale. I’m over a month behind schedule but still plan to release the updated version and stop selling the app.

    On the latest Release Notes podcast there was a great discussion about when to give up on an app that isn’t making money, including a mention of my plan with Tweet Library. Joe and Charles talked about why it’s usually such a bad idea to promise features before you ship, and whether there’s an obligation to give customers any updates at all.

    I pretty much agree with everything they said, but the upcoming Tweet Library 2.7 “features” are different. My goal with this release is for the app to be functional and stable for as long possible. I think the app needs better syncing of tweet collections to help future-proof it, to make it easier for customers to move between iOS devices when they upgrade their iPhone or iPad a year from now. For an app that is going away, I should do everything I can to make sure that a customer’s data is accessible and that import and export are as robust as possible.

    It’s a reasonable question to ask why I would spend so much time working on something that will essentially bring in no additional revenue. But while it won’t directly make any money, it probably helped convince some new customers to buy the app over the last month, and it will very likely reduce the support burden for the app over the following year.

    I also view it as a sort of parting “thank you” to my customers. It’s just the right thing to do to wrap up the app. Panic did the same thing when they stopped selling Unison, releasing a major free update at the same time.

    If you’re interested in picking up a copy of Tweet Library before it’s too late, you can buy it on the App Store for $4.99. The new version should ship in early February.

    → 12:55 PM, Jan 21
  • 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.

    → 12:06 PM, Dec 15
  • Core Int and Hour of Code

    We were lagging a little after the Thanksgiving break, so we posted two episodes of Core Intuition last week. On the latest episode we talk about the Hour of Code and welcome new listeners who found our podcast from the App Store feature.

    After we recorded, I helped out my son’s elementary school class with the Hour of Code tutorials. I learned a lot and came away even more impressed with the project. The reach is pretty incredible. Even if it only sways the interest of a couple kids here and there, but spread over classrooms all across the world, you can imagine how big a difference it might make.

    → 11:06 AM, Dec 15
  • Twitter in 2 years

    Marco predicts that third-party Twitter apps will lose half of their users within the next 2 years:

    "We won’t even be angry at Twitter — we’ll move to the official apps voluntarily, and we’ll look back on all third-party clients like we look back on Tweetie, vanity link shorteners, and third-party image hosts today: as relics of a quickly abandoned past before we all started using Twitter’s better, newer features."

    During WWDC this year, Buzz Andersen gave a great talk at a small venue outside the conference. With the hindsight of several years, he talked about building Birdfeed, the challenges of competing with Tweetie, with his own struggle at perfection, and many more insights on the rise and fall of third-party Twitter apps.

    It left me with a lot to think about, and I loved the old stories, screenshots, and related nostalgia. But in closing out the questions & answers, one statement in particular struck me as a nail in the coffin for third-party developers: Buzz revealed that even he now uses the official Twitter app.

    → 3:05 PM, Nov 24
  • Mailing list for new project

    I’ve been working on something new around microblogging. Some people have guessed at what it is based on discussions Daniel and I have had on Core Intuition, but only a handful of people have seen it. Soon I want to open it up to more beta testers.

    If you’re interested in the project, you can now sign up on the announcement mailing list for more information. I’ll send an email when the beta launches, as well as occasional updates for major new features. Hope you like it!

    → 12:28 PM, Nov 24
  • Winding down my Twitter apps

    I’m the guest on this week’s Mac Power Users podcast. In addition to workflow and apps I use, the discussion went off the rails a little into the Twitter app ecosystem, especially the fact that I no longer post to Twitter yet still have apps like Tweet Library, Watermark, and the Tweet Marker API that depend on Twitter. For the last 2 years this has been an odd decision on my part; I want to do the right thing for my customers, but I’m increasingly frustrated with life as a third-party Twitter developer.

    Last week, Twitter announced that they’ve expanded their search index to include the full history of tweets going back to 2006. I was thrilled by this upgrade to the Twitter service. That the search was so limited for so long was the primary reason I built Tweet Library and Watermark to begin with. Unfortunately, this functionality is only for the official Twitter apps. It will not be made available to third-party developers.

    It’s time for me to wind down development on my Twitter-related apps. I’ll continue to sell Tweet Library through the end of 2014, then remove it from the App Store. Watermark will also shut down at that time. Because all the tweets stored in Watermark are public tweets (by design it never supported DMs or protected accounts), I will attempt to make the entire Watermark database archive of millions of tweets available publicly. Existing customers can also sync tweets and collections to Dropbox for personal archiving.

    Published collections from Tweet Library or Watermark will be maintained indefinitely. No URLs will break, ever. Updating published collections will also continue to work for anyone who already owns Tweet Library.

    I will also continue to host the Tweet Marker API, but starting in January I will be more strict about requiring developers to pay for the service. Many developers have been paying for API access for a year (thank you!), but others have missed or ignored my requests to move to a paid plan. It’s not fair to the Twitter developers who have been paying for Tweet Marker access if some continue get the API for free.

    Many friends have told me over the years that I have too many products. But letting any one product go is not easy. There’s an implicit promise when shipping software that the developer should maintain and improve it for customers. Stopping development on these apps is the right decision and possibly long overdue, but it’s still difficult. What gives me hope is that it will let me focus on new projects currently in development, which I couldn’t be more excited about.

    → 9:54 AM, Nov 24
  • My new electric car

    10 years ago, when everyone else had cable, we were sick of the monthly bill and the mindlessly infinite channel list and cancelled it. I was happy to never have to deal with Time Warner again. But a couple years ago, we subscribed again to keep up with some of our favorite shows. Finally things are changing, and I expect we’ll cancel again before too long.

    This on-again, off-again relationship with cable is also how we treat having a second car. Working at home for the last 13 years, even with taking the kids to school and various errands, my wife and I rarely need to be in two places at once. So we downsized to one car long ago, then got a second car for a few years, then downsized again a couple years ago. With my daughters to high school, I knew we’d need another car soon, but it was nice not having an extra car payment and even better to have an excuse to bike to coffee shops.

    I promised myself and my son, who is already living in the future, that our next car would be 100% electric. I kept up with new Tesla models and their growing Supercharger infrastructure, but realistically Tesla is out of reach. There’s no way to justify the price for just driving to the elementary school a mile away, a nearby coffee shop, or around town every couple days.

    So three weeks ago we picked up a Nissan Leaf. Because our needs (and battery technology) keep changing, we’re leasing it and we’ll decide at the end whether to pay the difference and keep it. It’s a fun little car, so quiet and effortless to drive, and the kids love it.

    Obviously our “normal” gas-powered car will remain the primary family car and the one that we take on road trips. The Leaf goes about 85 miles fully charged and plugs into the normal outlet in our garage, as if we were just plugging in Christmas lights. I’ve also used the charging stations at Whole Foods, where I usually go for coffee and work once or twice a week. (We skipped the recommended 240V home charging kit for now, which charges significantly faster. For comparison, Tesla’s range is closer to 250 miles.)

    While I’ve always been pretty good at hypermiling, the Leaf has made me even more conscious of it. I drove to my daughter’s basketball game in Georgetown last week, 30 miles away on the toll road. Sustaining 75mph is the worst and dragged my miles/kWh down a notch. On the way back, I drove the more direct, non-toll route and got significantly more efficiency at respectable speeds with some breaking.

    But cruising down the highway it’s easy to see that this is the way the world should be, in time. Good new tech always reminds me of that first feeling we got when using the original iPhone, how it felt like the whole thing was from 5 years in the future. It’s not that extreme with the Leaf, but I still see a little of that, a glimpse that it’s more advanced than it should be. I think this may be the best car I’ve ever owned.

    → 9:06 AM, Nov 20
  • Twitpic archive at Twitter

    The story of Twitpic shutting down has a better ending now:

    "We weren’t able to find a way to keep Twitpic independent. However, I’m happy to announce that we have reached an agreement with Twitter to give them the Twitpic domain and photo archive, thus keeping the photos and links alive for the time being."

    This is much better than all those photos becoming broken links, but it’s still a sad statement on the Twitter ecosystem. Twitter threatened Twitpic, then Twitpic decided to shutdown, and in the end Twitter gets all the Twitpic assets anyway for cheap or no money at all. It’s a bizarre end to what only a couple years ago was a $3 million business.

    Twitter is a big company with a lot of moving pieces. It shouldn’t surprise me that one half of Twitter is ready to sic the lawyers on Twitpic while another half wants to do the right thing for Twitpic’s customer base. Still, a bittersweet closing chapter on one of the first great third-party developers.

    → 8:24 AM, Oct 29
  • Taylor Swift&#039;s 1989

    I took my daughters to see Taylor Swift last year and we had a great time. I own a couple of her albums myself and was curious about the new “1989” and how very different it seemed. From the foreword:

    "For the last few years, I’ve woken up every day not wanting, but needing to write a new style of music. I needed to change the way I told my stories and the way they sounded. I listened to a lot of music from the decade in which I was born and I listened to my intuition that it was a good thing to follow this gut feeling."

    I like bands who aren’t afraid to reinvent themselves because it means they’re both pushing forward and will also often return to their roots with something stronger. So I pre-ordered Taylor Swift’s latest and I’m really enjoying several of the tracks. It’s good for all of us to occasionally get out of our comfort zone and create something new.

    → 11:47 AM, Oct 27
  • Yosemite toolbars

    Jason Snell writes about some of the inconsistencies in Mac OS X 10.10 Yosemite, such as how only a few of Apple’s own apps use the new combined title bar / toolbar style:

    "It makes me wonder if Apple was initially enthusiastic about this approach, then realized it wasn’t applicable to many situations, and rather than abandoning it just decided to live with the inconsistency. There’s certainly no clear, this-is-the-future signal."

    I don’t hate the new style, but that does seem like the fundamental problem with it: it can’t possibly be used for all apps, especially those with lots of toolbar buttons. I considered it for the next version of Clipstart, but it’s not really a compelling enough change to risk breaking things that already work well.

    → 11:04 AM, Oct 26
  • Twitter Flight follow-up

    Mat Honan has a long article covering the Twitter Flight announcements. On understanding why Twitter acquired Crashlytics and MoPub:

    "Now, those acquisitions suddenly seem crucial. They form the backbone of Fabric—along with a new sign-on system called Digits (launching in 218 countries and 28 languages today). While tweets will remain Twitter’s foundation, this is a real strategy shift that’s in many ways similar to Google’s growth out of search."

    It’s interesting that one half of Twitter has so famously stepped on developers, but a new part of Twitter is emerging around Fabric with the opposite goal: make our life as developers easier so that we bundle the suite of Twitter frameworks into every app we build. This split in the company has allowed me to accept Crashlytics as a long-term sponsor of Core Intuition even as I criticize the “tweets” platform side of Twitter. They’ve done great work with Crashlytics and I happily use it in both Tweet Library and Sunlit.

    Also this week, Twitter replaced their “Rules of the Road” with a simplified Developer Policy. I can’t tell if this is an improvement or not yet. It still has the 100,000 user token limit, among other restrictions. (As I write this I’m listening to ATP episode 88, which includes more great discussion about this topic.)

    Digits is the surprise of the conference to me. It was impossible for a small company to do SMS verification on this scale before. I think it’s a new class of service with only CloudKit’s user accounts as possible direct competition, and even that only on iOS. Digits is going to be big.

    → 11:42 AM, Oct 25
  • Core Intuition with Brent Simmons

    Daniel and I welcomed Brent Simmons on the Core Intuition podcast this week. Here’s Brent on writing and the web as a guarantee of free speech:

    "The old web where I feel like more people saw the web as what I was talking about: as a unique and amazing invention in human history, a thing that can bring the 6 billion voices out into the open, to tell their stories and say what they're going to say. That this thing is really something special, and it shouldn't just be treated as a way for monetizing eyeballs and figuring out great new advances in interstitial ads. [...] We can't lose sight of the opportunity this is. And if the story really is that the web exploded in the mid 90s and became a wonderful thing, and then stopped being that wonderful thing a little more than 20 years later... Then I couldn't even bear that heartbreak."

    Hope you all enjoy the episode. It was great to have Brent on the show.

    → 8:03 AM, Oct 24
  • On the eve of Twitter Flight

    Twitter’s new mobile developer conference is tomorrow. Marco Arment writes about whether developers should give Twitter another chance:

    "Twitter started out as a developer-friendly company, then they became a developer-hostile company, and now they’re trying to be a developer-friendly company again. If I had to pick a company to have absolute power over something very important, Twitter wouldn’t be very high on the list."

    Dave Winer responds that for now, we’ll be okay trusting Twitter:

    "Twitter is not going to screw us in the short term. They need us as much as we need them. Independent developers are where wholly new ideas come from. You can't hire people to do that to work inside companies."

    The unique tragedy with Twitter’s changing attitude toward developers is that so many of Twitter’s early innovations did come from third-party developers. The new leadership displayed an incredible disrespect for the value developers added to both the ecosystem and core platform.

    Unfortunately in the “short term” it’s still happening. Not 4 years ago, not 2 years ago — just 1 month ago, TwitPic announced they are shutting down after a legal threat from Twitter. It’s a loss for the web, leaving millions of broken image links in old tweets. This latest third-party developer casualty from Twitter’s policies comes practically on the eve of their new developer conference.

    I agree with Dave’s larger points, though, on mirroring content to your own blog in addition to Twitter and Facebook. His Radio3 is a step forward for RSS and the open web while still embracing social networks. We need more tools like it.

    2 years ago I chose to stop tweeting from my personal Twitter account as a minor protest. I don’t expect everyone else to take such an extreme stance. We can agree on open formats and the power of microblogging while disagreeing on how to interact with Twitter.

    (Skeptics say that leaving Twitter is a pointless gesture, like a pebble thrown into a river. The timeline flows on and the outrage is washed away as if it didn’t happen. If leaving doesn’t make an impact, why bother? But it does matter. It matters not for the change it creates directly for others, but for how it changed me. In the same way that writing an essay will solidify your thoughts on a subject, posting that last tweet has given me a new clarity from which to judge whether my own products are on the right track, living up to my ideals.)

    Back to the present. On the flight up to Çingleton and back, I finally got around to reading the book Hatching Twitter. Since I was on Twitter near the beginning, I remember many events covered in the book: the launch at SXSW, the CEO shuffling, the names of early engineers who I’ve crossed paths with. I love how the book blends together things that I know are real with other details that must be more contrived or exaggerated, creating an engaging read that would seem to border on historical fiction if we didn’t know that it was basically all true.

    Hatching Twitter captures the power struggles inside Twitter and fills a book with them. And that’s really the foundation for Marco’s post: based on Twitter’s history, we probably haven’t seen the last leadership change at the company. Twitter might have a strong future but it surely has an uncertain one.

    My next product is about microblogging, and it has to launch in the real world where Twitter dominates. But I view that as a reality, not a feature requirement. I think I’ll be happier as a developer, and my app will actually be more compelling, if I design and build it for a world without Twitter.

    → 12:06 AM, Oct 22
  • Core Intuition 159

    Daniel and I just published Core Intuition 159. It’s an episode of endings: the last Çingleton, no more Macworld Expo, and shutting down Glassboard. Along the way we discuss indie development, making a decision in public, and the reward and challenge of taking on something truly big.

    → 10:50 AM, Oct 16
  • Making RSS real-time

    One of the critiques of RSS feeds in a world dominated by Facebook and Twitter is that RSS just isn’t fast enough. You can’t hope to achieve what Twitter calls “in-the-moment updates” and “watch events unfold” if your client is polling each web site’s RSS feed once an hour for new microblog posts.

    Luckily this was solved years ago. Many blogging apps (including WordPress) have a setting to “ping” another server when a post has been published. When it receives this notification, the other server can request the RSS feed and make note of the new post right away.

    There are a few flavors of this, such as just passing the URL of the updated feed, or sending an XML-RPC request, or passing the actual post content along with the ping as JSON. It may not be the most efficient or elegant solution, but it works well, and it’s significantly better than frequent polling. You could build something on this.

    Some distributed Twitter clones try to come up with something more clever instead. And there are attempts like PubSubHubbub with significant traction. But adopting any new technology is hard, and this ping system is surprisingly well deployed already. Worse is better wins again.

    → 9:52 AM, Oct 15
  • iPhone 6 Plus and iPod

    Kirby Turner wrote about needing an iPhone 6 Plus as a developer but not really wanting one as a user:

    "As a developer what I really want is an iPod touch Plus. If Apple were selling an iPod touch Plus that is the same as the iPhone 6 Plus minus the phone, then I would buy it in an instant. That way I could continue using my iPhone 5 as my primary phone device and the iPod touch Plus as a test device."

    I’ve talked about skipping this phone generation on the podcast a few times. I already got out of the yearly updates when I kept the 4S forever and then got the 5C instead of the 5S. After seeing the 6 Plus in person at the Apple Store and with everyone who had one at Çingleton, I’m pretty comfortable with my decision. But I’d strongly consider replacing my iPad Mini with a 5.5-inch iPod Touch.

    → 3:26 PM, Oct 13
  • The unremarkable yesterday

    Yesterday you had lunch with friends or family and posted a photo of your food and location to Twitter. It didn’t matter much. You put it on Twitter and didn’t care that you didn’t have a copy or didn’t post it to your own blog first, because controlling that trivial bit of content just didn’t seem important at the time.

    5 years later, 10 years later, 15 years later. That lunch is magic now — a captured moment, something you wouldn’t remember and didn’t think to record elsewhere unless you keep a comprehensive private journal. Maybe it was the day before a significant event or on a trip. The true context is only revealed with hindsight.

    I wrote this blog post because I wanted to follow up on my post about blogging every day, underscoring that seemingly unimportant events can carry great meaning later. Those common everyday activities that don’t seem noteworthy today? That’s our life. One after another, strung together for days and then years until we die. It’s the culture of the 21st century scattered among millions of micro posts. And it’ll be lost to time if we don’t curate it.

    Yesterday was unremarkable only because we’re too close to it. Later we’ll understand that it meant everything. And if that’s true, let’s aspire to something greater than our content being sliced up and interspersed with ads on someone else’s platform.

    → 9:56 AM, Oct 9
  • RSS reading and writing

    I’ve received so much feedback about microblogging that I haven’t had a chance to reply or blog about each one yet. This post from Dave Peck is especially interesting:

    "For some time now, I’ve wanted a new kind of RSS client: one that reads and writes. Today’s RSS apps artificially separate us from the content we read. If we want to reply — if we want to participate in the conversation — we’ve got to use an entirely unrelated set of tools."

    MarsEdit of course was famously spun off from NetNewsWire. Early versions of NetNewsWire did three things: reading blogs, organizing ideas in a notepad outliner, and writing new blog posts. I think Brent was on to something with combining all these features, but I also totally understand wanting to simplify so that each component is as good as it can be. MarsEdit wouldn’t be as full-featured and polished today if it hadn’t been given that room to grow as its own app.

    Also, don’t miss the last half of today’s Core Intuition. Daniel and I talk at length about microblogging and owning your own content.

    → 10:17 PM, Oct 8
  • Luck being indie

    When Gus Mueller recently linked to Paul Kim’s post on being indie, he called out the section on luck:

    "One thing that I did learn is to have a healthy respect for randomness. Luck plays a huge role and you can’t always attribute one’s success or failure solely on their decisions and actions."

    Reminds me of the book Get Lucky by Lane Becker and Thor Muller. Like half the business books I’ve bought, I never finished reading the whole thing, but it’s in the stack on my bedside table and I pick it up every once in a while and read something new. I love the book’s premise and they’ve got some great stories.

    Most of life is a series of random opportunities. Knowing which ones to skip and which to double-down on makes all the difference.

    → 10:02 AM, Oct 8
  • Blogging every day

    Matt Mullenweg on being challenged to blog every day:

    "I thought blogging every day would be a burden, but it actually became a great source of joy. It was more a shift in mindset than anything — every day I read things I think are interesting, share links with friends, have thoughts that are 80% of a blog post, and write a ton privately, it was just a matter of catching those moments and turning them into something that was shared with the world."

    Whenever I get out of the habit of writing daily, it creates friction to get anything published. When you post every day, there’s no expectation that all posts have to be great. But when you wait too long, there’s an increasing feeling that the next post has to be perfect.

    Tools that make writing effortless — like Twitter’s limited, fast UI — should be part of the next generation of blogging software. I think that’s going to be around microblogs. Just because traditional blogs initially failed to embrace microblogging doesn’t mean we can’t take that format back with better server apps and clients.

    When people first started paying attention to Twitter, the criticism was that no one cared “what you had for breakfast”. But if you look at some of my earliest posts on this weblog, many are equally trivial. What appears unremarkable today — the first lunch you had with co-workers at a brand new job, the stop at REI to get a tent for an upcoming family campout, the missed flight on the way to a great conference — might carry important meaning in later years, looking back. It hurts the web to keep that locked in a silo.

    → 9:28 AM, Oct 6
  • Tweet Library 2.6

    Tweet Library 2.6 shipped today after 13 days waiting for review from Apple. This release adds support for the iPhone 6 and iPhone 6 Plus screen sizes, as well as improvements to sharing so that iOS 8 extensions can be used, and a fix for an annoying random crashing bug.

    I also finally dropped iOS 5 and 6 support for this release. I wanted to support the iPad 1 as long as possible because those were my very first customers when I launched Tweet Library 1.0 almost exactly 4 years ago. I hope they got an incredible value out of the app in that time (all upgrades have been free). It feels good to turn a corner and require iOS 7.

    → 12:47 PM, Oct 3
  • Return to open APIs

    In 2014, web app APIs basically look like this:

    • JSON or XML API layer for a web site's content and functionality.
    • Potential client developers must register with the web site and get some kind of API key for access.
    • OAuth is used to grant access without giving out passwords.

    A more cynical view of that last point could be rewritten as: OAuth is used to control and limit access so that the API is inaccessible without approval from the web site.

    This all seems fairly normal today. I required an API key for Tweet Marker because that’s just what you did, especially if you wanted to charge or limit an API. But it didn’t always used to be this way — remember when you could hit the Twitter API with just a user’s password? — and it doesn’t have to be this way forever.

    For my next web app I’m going to have an API that is more open, requiring no app registration. Instead it will be user-centric, with password tokens that a user can paste into their favorite compatible app for authentication. (My web app doesn’t have traditional passwords at all.)

    Not having API keys removes a whole set of complexity: no need to write all the backend code to support managing them, no need for developers to register, no need for me to judge who should get access. Whenever possible, APIs should be nearly as open as the normal web, where Safari and “curl” don’t need to register with a web site just to download its home page. Users are in the best position to know which apps should get access to their account anyway.

    If we can loosen APIs, I think it makes the web better. Dave Winer takes it one step further:

    "What we really need, and I hope to help make happen, is a network based on open syndication of content. Then there is no one to ask for an API, because there's no one in charge."

    I’ve been calling my latest project halfway decentralized. I’m still in charge, but just barely.

    → 1:24 PM, Oct 1
  • Omni gets Brent, and a SilverPine update

    We are so lucky in the Mac and iOS developer community that there are a number of ways to be successful. The most common:

    • Work for someone else at their company.
    • Work for yourself as an indie developer.
    • Work for clients as a contractor or consultant.
    • Any mix of the above or all 3.

    There’s no right answer. What works for one developer might be a poor choice for someone else. And throughout our careers, we may move between any of these different paths depending on what life and family require.

    Today, Brent Simmons announced that he’s making one of those moves. He’s starting at Omni, and he’ll continue to work on Vesper as well:

    "I love that I get to work on both Vesper and on Omni apps. Omni is one of the great Cocoa development companies, and they’ve grown slowly and steadily over many years. They write lovable productivity apps — not just great iOS apps but also great Mac apps."

    Also today, Jon Hays announced that his 6-month-old company SilverPine is doing great, and they’ve finished a bunch of client projects:

    "To say that some days my hair feels like it’s on fire is an understatement. That being said, I wouldn’t trade it for the world. The work we do is creative, challenging, cutting edge and very rewarding."

    Congrats to both! Change is exciting. It’s great to see friends happy doing what they love.

    → 2:39 PM, Sep 29
  • Updated feeds

    When I migrated to WordPress and started a microblog section on this site, the RSS feeds didn’t transition very well. While the old feed continued to work, WordPress’s new default /feed URL returned both full posts and snippet posts.

    I’ve fixed that today. Here are the official feeds on the site:

    • /rss.xml: All the main posts (like the one you're reading right now), but none of the microblog-style snippet posts.
    • /snippets.xml: Just the microblog posts. These don't have a title and will (eventually) be more common than the main posts, so you'll need to subscribe separately if you want to see them.
    • /feed: Now redirects to /rss.xml.

    If you want to see everything I write here, subscribe to both the main feed and the snippets feed. If you want to see only the longer posts, just keep the main feed. Thanks for reading!

    → 2:44 PM, Sep 25
  • Core Intuition 156

    Episode 156 of Core Intuition is out. Daniel and I discuss the iPhone 6 and 6 Plus and what they might mean for the future of the iPhone product line.

    I’m now convinced that Apple will have something like a 6C next year to maintain the 4-inch design. It will never have the best camera or longest battery life — that will be reserved for the larger phones — but there will be 3 fully supported sizes with some core modern features like Touch ID and Apple Pay.

    We also talk about updating your app for the new screen sizes and iOS 8. My update to Tweet Library is still waiting for review, but hopefully will be approved soon.

    → 12:12 PM, Sep 25
  • Core Intuition 155 and microblogging

    This week on Core Intuition we follow up on Apple news, then discuss the sale of Unread and all the new activity around RSS apps and services. It makes a good complement to some of my recent posts on microblogging.

    → 12:22 PM, Sep 19
  • Microblog links

    Brent Simmons points to my post on microblogs and asks:

    "Is the web we lost gone forever? Was it a brief golden age before the rise of Facebook and Twitter and The Algorithms of Engagement?"

    But he quickly follows with an alternate view: that it’s a blip and we’ll get back on track. And that’s what I believe.

    Instead of accepting a common opinion that Twitter is slowly replacing RSS readers, we should flip that around. What kind of changes could be made to RSS readers to embrace microblogging and make Twitter itself less important? Because once we do that, we get back control of our own short-form content and at the same time encourage open tools that will survive independent of whatever happens with Twitter and Facebook in the future.

    I received some other great feedback about defining what it means to be a microblog post. One question that I didn’t address is links. Noah Read writes:

    "It has consistently annoyed me that Twitter and App.net’s links count against my character count. It seems to run counter to what I love about microblogging, carefully chosen words communicating a succinct idea. I often have a pretty good tweet composed and then I paste in the link to a site or image and have to rework the whole thing."

    And David Ely says that a microblog post…

    "Contains a single thought, a link with short commentary, or a photo with a caption."

    Whereas a full blog post would often contain multiple links. Certainly a lot of what is posted to Twitter and Facebook is just a single link with short commentary.

    I also noticed recently that Dave Winer’s Radio3 includes links in the text when tweeting, but in the RSS feed the text and the link are split out. The URL goes in the RSS item’s link tag. While this is easy enough to support in tools, it’s surprising if you consider the link part of the content, not metadata. (I also expect inline HTML links to become even more common.)

    → 12:19 PM, Sep 17
  • Lost in the wilderness

    Great post by Gus Mueller on losing your way in a project:

    "Maybe you've been making foundational changes to your app. You've been spending time cleaning up your code, rewriting those hacks you've been wanting to fix for years now. Or you're targeting a new SDK and there's all these deprecated methods to replace. So while important change is happening, you don't seem to be moving forward. You look up and all of a sudden notice this has been going on for weeks and you've been standing still all this time, and now you're standing still for no reason at all. And you're lost in the wilderness."

    I work on several apps throughout the week, evenings, and weekend. Most people would say: too many apps. The only way I can possible keep up is if every minute that I’m at the keyboard I’m productive, on the right path to finishing the project. Usually I can do it. But even so, I frequently fall into exactly the wilderness Gus describes, losing valuable time off in the weeds on things that just don’t matter.

    The difference between those who can ship apps and those who indefinitely have a great idea that’s never complete often comes down to how much time we’re lost in the wilderness. By giving it a name we can recognize when it happens and hopefully recover more quickly.

    → 10:33 AM, Sep 16
  • Defining a microblog post

    I’m working on a new project around timelines and microblogs. It consumes RSS feeds, so I’ve been wondering how strict to be when accepting posts. What does microblog mean, anyway?

    Wikipedia defines it this way:

    "Microblogging is a broadcast medium that exists in the form of blogging. A microblog differs from a traditional blog in that its content is typically smaller in both actual and aggregated file size."

    But that’s not quite specific enough. From my perspective, a microblog post has these qualities:

    • Must have an RSS feed.
    • Does not have an RSS item title.
    • Contains short post text, 280 characters or less.

    Not having an RSS item title might take some getting used to for mainstream blogging clients and readers. Most RSS apps assume that all posts have a title, even though titles are technically optional in the spec. But I think this is an important distinction because if you think about Twitter-like posting, it should be fast and convenient; making up a title first interrupts the flow of posting.

    I picked 280 characters instead of App.net’s 256 characters because it’s slightly less nerdy, and feels right at exactly double Twitter’s 140. This should be thought of as more of a guideline than a rule, though — just something to shoot for.

    What do you think? I’d love to hear your feedback. Post to your own blog and then send me an email.

    → 11:09 AM, Sep 15
  • Transmit for iOS 8

    Federico Viticci has the exclusive on Transmit coming to iOS:

    "Considering the old limitations of iOS for inter-app communication and file management, using the Transmit extension feels like a major breakthrough and exactly the kind of experience that the app was meant to be on an iPhone and iPad."

    While traveling this summer, I used Panic’s Prompt to download and rename files on the Core Intuition web server. It’s going to be great to also have Transmit’s UI in my pocket.

    → 4:12 PM, Sep 8
  • The Future Library

    The Future Library project will collect writing to be locked away and published for the first time in 100 years:

    "Each year, the Future Library trust, made up of literary experts – and Paterson, while she's alive – will name another 'outstanding' writer who will be contributing to the artwork. The trust is also responsible for the maintenance of the forest, and for ensuring the books are printed in a century's time. A printing press will be placed in the library to make sure those in charge in 2114 have the capability of printing books on paper."

    Love this idea. Although for a different goal, I think we need a similar set of trusts to maintain electronic publishing. Domain names and hosting are much more fragile than the paper Margaret Atwood will print her story on for this project.

    → 9:37 AM, Sep 6
  • Using Ember.js

    Brent Simmons isn’t totally convinced about the new crop of JavaScript frameworks:

    "Part of me thinks those frameworks are overkill (even jQuery), and that writing regular-old JavaScript to do what you want is not that onerous a thing, and will make for leaner, better code."

    This was how I felt when I built Watermark. It uses jQuery and Bootstrap, but otherwise it’s pretty old-fashioned JavaScript. Even the parts that are Ajax just fetch and insert HTML that has been rendered by the server. There’s not much to do in the client.

    For my latest project I’m using Ember.js. I want this app to be very fast, and I think putting more work on the web browser is the way to do it. I only know the basics of the framework so far, but already I like it. It feels lightweight to use, even if the actual JavaScript include is fairly large.

    And 100k is really not that big of a deal anymore. You don’t want bloat for no reason. But look at a popular site like twitter.com and you’ll see several JavaScript files between 200k and 500k each. They get cached and no one complains about performance.

    → 5:43 PM, Sep 5
  • Twitpic and what&#039;s next

    After being threatened by Twitter over trademarks, Twitpic has decided to shut down in 3 weeks:

    "We encountered several hurdles and difficulties in getting our trademark approved even though our first use in commerce predated other applications, but we worked through each challenge and in fact had just recently finished the last one. During the 'published for opposition' phase of the trademark is when Twitter reached out to our counsel and implied we could be denied access to their API if we did not give up our mark."

    Twitpic is not a small hobby site. It grew to a $3 million business at its height in 2012 according to this Mixergy interview. Founder Noah Everett also attempted to launch a Twitter-like service called Heello, though it never gained much traction and appears to be offline.

    John Gruber asks:

    "Why not just change the name to something original?"

    While I wonder if that comment may have a dual purpose, aimed as much at Standard Markdown as Twitpic, I’ll answer it anyway. Because Twitter has a well-documented history of stepping on developers. This trademark fight is just the latest, and at some point, I have to assume that Noah was fed up and called it: enough is enough.

    Enough with building apps in a toxic ecosystem. Developers who care about microblogging should take it back. Let’s build tools for the web that will matter, that will move the web forward and make our writing last, not locked away behind APIs and ads.

    → 3:07 PM, Sep 4
  • Owning the microblog

    I mentioned earlier this year that I really liked how Noah Read posted tweets and photos to his own site, calling them snippets. I’m borrowing that name and implementing something similar here. If you visit my home page, you’ll see these short posts already interspersed alongside regular, longer posts.

    These new snippets don’t show up in the normal RSS feed. There’s a separate feed at /snippets.xml for them, and they get their own category for browsing on the web. I’ll also be cross-posting them to App.net.

    Like the posts in Dave Winer’s new Radio3, these RSS items don’t have titles. They’ll be short like a tweet or App.net post: usually 100-200 characters.

    This is the first step in a larger project that I’m working on — something fun that reminds me of the early days of blogging. But if nothing else, it’s nice to control my own content again. I should have kept all these microblog posts on my own domain years ago.

    → 7:33 AM, Sep 4
  • Thank you Movable Type

    10 years ago I switched this blog from Radio Userland to Movable Type. Looking back, it’s incredible how mature the software was at the time that it could last this long. I didn’t stay current with updates; the version I was running was ancient by any standard.

    I’m planning some new blog-related experiments soon, so it was time to migrate to a new blogging app. While I still prefer static publishing, after evaluating a bunch of options I ended up going with WordPress. I don’t love it, but it has one feature that is more important than anything else: I’m fairly confident it will be around and well-supported 10 years from now. Rands recently made a similar choice.

    I preserved every blog post URL from the previous version of the site so that links don’t break. This wasn’t trivial. For a time it had me lost into the darkness of writing WordPress plug-ins, which didn’t work anyway, before finally coming to my senses and writing a script to post-process all the Movable Type titles into custom slugs.

    The RSS feed is also the same, but not the RSS item GUIDs. This means you’ll probably have a one-time “mark all as read” in your favorite news reader. Apologies, but it was either that or never ship the new site.

    There’s a little bit of cleanup and design work still to do. The site already looks much better on mobile devices, though. I’m excited to get back into regular blogging.

    → 3:42 PM, Sep 3
  • Core Intuition 152

    We posted episode 152 of Core Intuition today, with discussion of iCloud Drive, iOS 8, and Yosemite, plus mini-rants about distributed version control, why Daniel uses Mercurial, and how I just switched everything to GitHub. I like how this episode turned out. As usual, it’s under 40 minutes, and not a bad place to start if you’re just subscribing for the first time.

    The Core Intuition jobs site is still half off for a few more days. $100 to get your job in front of a bunch of great iOS and Mac developers.

    (After a decade on Movable Type, I’m migrating this blog to a new system, so I fell into the trap of not posting much until that process is complete. I’ll have much more to write about this soon.)

    → 10:56 AM, Aug 29
  • The third era of WWDC

    “This is it,” a friend said to me as we were walking up Market Street with other developers, late at night as WWDC was winding down several years ago. The iPhone had hit. The conference was getting bigger. Apple was on the verge of becoming a giant in the industry and you could feel it in the air — a coming change that was obvious only from a distance because it disappeared as you reached for it, like San Francisco fog rolling over the bay. “This is the height of the conference and it’s never going to be like this again.”

    Looking back it perfectly captured what I think of as the second “era” of WWDC. It was a kind of golden age for Mac and iOS developers, with a new generation of successful Mac indies and before the iOS race to the bottom was much past the starting line.

    From my perspective, learning Mac development in the mid 90s, there are three distinct eras of Apple’s WWDC. My first WWDCs were at the San Jose Convention Center. The developer base was small enough that you consistently ran into everyone, companies like Metrowerks and even Adobe seemed to have an influence on the conference, and Apple frequently showed off new APIs that might not actually ship soon or ever. It was an exciting time to be a Mac developer but the rest of the world didn’t care. This was the backdrop for the failed Copland project, for Steve Jobs coming back, for the clash between Carbon and Cocoa, and the acceptance of Mac OS X.

    The next era was at the move to San Francisco. The conference was getting bigger but Apple attempted to keep the events and themes that made WWDC the same, even for a while busing attendees to the beer bash in Cupertino. This is the time when the iPhone SDK arrived and the conference exploded. I think most developers will always look back at this time as something amazing. It’s the backdrop for that walk up Market Street and a dozen similar conversations.

    Now we’re in the third modern era of WWDC, with one undeniable characteristic: a small percentage of developers can get a ticket to the conference. The community, however, is as strong as ever, and there’s still a desire to have WWDC be that “one place” that developers can meet each year. It’s a need that smaller, regional conferences, no matter how important they are, just can’t fill.

    I like this post from James Dempsey because it starts with the assumption that not getting a WWDC ticket is the new normal:

    Once something changes from being dependably available to rarely available, you begin to form alternate plans and take alternate paths.

    He’s right. Since it’s likely that Apple will continue to iterate slowly instead of making major changes to grow the conference, we’re better off adapting. By adapting we can focus on preserving the community aspects of WWDC that are arguably just as important as the technical tracks.

    And change comes slowly to WWDC. I realized while watching video from the Tech Talks recently that Apple just doesn’t see a big problem. John Geleynse described a situation where only one person from a team is at WWDC; the rest of the company is back at the office watching videos and sending questions to their coworker at the conference to ask in the labs. Getting videos out the same day makes the conference more useful for both those without a ticket and actual attendees (and their team) too.

    (I still have complaints about how WWDC tickets are distributed and why Apple doesn’t attempt to grow the conference a little more, but the lottery is an improvement over last year. See Core Intuition episodes 132 and 133 for a full discussion.)

    I’ll be in San Francisco for a few days next week — at AltConf, at the Cartoon Art Museum fundraiser, catching up on session videos, waiting in line for coffee, hiding in my hotel room writing code, and getting some good food and drink with fellow developers. WWDC means something different now, but it matters just as much as it always has. Hope to see you there.

    → 11:26 AM, May 28
  • Brent’s time at Userland

    Brent Simmons has another expanded résumé of sorts, following his post about working at NewsGator. I love this write-up because it mirrors a lot of the work I was doing, so it brings back a lot of memories. I was actively using Frontier for client work and crazy side projects; one of my co-workers for a time was Mason Hale, who built an early CGI framework for Frontier; and I loosely worked with Dave Winer to help run the frontier-talk mailing list and hack on a potential WebSTAR plug-in for Frontier. (Though I was still a pretty poor C programmer back then. Someone else ended up shipping it.)

    Back when the job description “webmaster” still meant something, I worked for the WebEdge conference which brought together the best web developers for the Mac OS. WebEdge hosted the first meeting of the Macintosh Internet Developer Association (MIDAS), led in part by Dave Winer. And I was always playing with the tools that came out of Userland, from Manilla to Radio Userland. I used Radio to run this blog until 2004.

    Some of the developers from that time have faded away, moved on to other projects away from the public spotlight. But not Brent. He just shipped Vesper 2.0 and it’s some of his best work.

    → 2:47 PM, May 27
  • Preservation State and App Stories

    I was the guest on 2 podcasts recently. First, on Preservation State with Philip Mozolak and Christopher Radliff, we talked for an hour about App.net, Beats Music, and more. It was fun to do a longer podcast that’s free to kind of meander through different topics, and I think we covered a lot.

    Next, on App Stories, Vic Hudson interviewed me about how Sunlit came to be. We talk about App.net, design choices in Sunlit, and the future for the app. There’s a lot in there that I’ve never talked about before. Hope you enjoy these episodes!

    → 2:11 PM, May 27
  • Twitter or RSS

    I use Feed Wrangler as my RSS service, but I like this quote from Feedbin’s Ben Ubois:

    “Twitter and Facebook are often cited as the reason for the decline in RSS usage. Where does content originate though? Right where it always has: on blogs and websites that probably have an RSS feed.”

    It’s a great point. If you had to choose between only reading Twitter or only reading weblogs, which would you choose? Losing Twitter would be a bummer for a lot people, but losing weblogs would decimate the web. We should do more to strengthen weblogs and RSS because they are the foundation for so much of the most important writing on the web.

    → 12:25 PM, May 22
  • NewsGator and Sepia Labs

    Great post from Brent Simmons, recalling his time at NewsGator. On trying to get Nick Bradbury to join them at Sepia Labs, the spin-off that was building Glassboard:

    “I loved working with Nick in the past, and — even though Nick was an iPhone user and Delphi programmer — I wanted him as our Android developer. Nick was not eager to be on the NewsGator payroll again, but he accepted since we were spinning out into a separate company. And he quickly turned into a great Android developer, as we all knew he would.”

    There’s plenty more, about the different stages the company went through from Brent’s perspective. I love posts like this. It’s important to capture the history and culture of tech companies, before our memory fades. And it’s not unlike what Brent has done on a bigger scale for his podcast The Record with Chris Parrish.

    → 8:03 AM, May 12
  • Core Intuition 136

    The last half of this week’s Core Intuition serves as a follow-up to my recent blog post on Twitter. Daniel tries to get at the business problems of not being active on Twitter. On the show I say:

    “Me trying to make a statement, even if it’s insignificant, by not posting to Twitter... It wouldn’t mean anything if it didn’t cost me anything. If it didn’t have a cost, it would not matter.”

    We also talk about Automattic raising money, blog software, and what that sandwich shop that Daniel avoids has to do with customer service.

    → 9:12 AM, May 9
  • Apple needs Beats Music

    John Gruber asks, on the rumor that Apple will acquire Beats:

    “The Beats streaming service is interesting, but can’t Apple do that on its own, as an expansion of the iTunes Music Store and iTunes Radio?”

    Unfortunately I think the answer is no, Apple can’t easily do anything like what Beats Music has done. Not because they lack the skill, but because they lack the desire to actually do the work and hire the staff to make it happen. Compare iTunes Radio side by side with Beats Music. Beats Music isn’t just a streaming service; it’s more like a platform for curating playlists and discovering music.

    I like Beats Music so much that I wrote two posts recently about it. Here’s a snippet from each, first on building something you love:

    “iTunes Radio looks like something they felt they had to build, not something they wanted to build. Beats Music is in a completely different league, with a deep set of features and content. It looks like an app that’s had years to mature, not a 1.0.”

    And then on ending the top 200 by doubling down on featured apps, just as Beats Music has done for music curation:

    “How would this fix the junk problem in the App Store? Simple. No one in their right mind would ever feature one of these ad-filled, ‘re-skinned’ cheap apps. Great recommendations mean less reliance on search, making scam apps more difficult to find by accident.”

    However, I agree with Gruber that on the surface this potential acquisition doesn’t really seem Apple-like. It would be unusual for them to acquire a high-profile brand. As much as I’d love to see the Beats Music team join Apple to improve iTunes and the App Store, I’ll be a little surprised if it actually happens. Maybe they have something else in mind that we can’t see yet.

    → 7:57 AM, May 9
  • Frozen in time

    Many people have written about App.net this week, but I think my favorite line is from this essay by Pete Burtis, while talking about how the API and apps are years ahead of other platforms:

    “If App.net is to be frozen in time, at least it’s to be frozen in the future.”
    → 3:52 PM, May 8
  • Sunlit 1.2

    Sunlit version 1.2 is now available in the App Store. It includes a few minor improvements and one major change: you can now use the app with only a Flickr account. It no longer requires App.net.

    We hope this will allow more people to try the app. At any time, you can always add your App.net account to the app’s settings and it will unlock the more advanced features: syncing, sharing stories to other App.net users, and multi-user collaboration so that anyone can add photos and edit text in a story.

    Making App.net optional instead of required meant rethinking what the minimum features were that all users should have. Obviously you have to be able to create stories, add photos, include text descriptions, and use filters. But we also kept coming back to one thing: we could not ship without also supporting web publishing. The bulk of work on Sunlit 1.2 was creating a parallel implementation for publishing that would seamlessly work with exactly the same UI, with or without App.net.

    Some people may ask why we chose Flickr instead of creating our own user accounts system, or simply having no registration. To support publishing, it helps to have some unique username for a user, and a secure way to authenticate them on the server. It won’t surprise anyone to hear that a lot of people have Yahoo accounts. With a redesigned web and mobile experience, plus 1 TB of free photo storage, Yahoo’s giving Flickr something of a new resurgence. There’s a lot we could build on the Flickr API.

    At the same time, Sunlit’s App.net support is a powerful differentiator and we’ll continue to improve it. It lets you own your data, share it with other apps like Ohai, and sync to multiple users. I still believe in the App.net API and user community; it’s too good a platform to give up on.

    → 2:47 PM, May 8
  • Mlkshk mirror

    Last week, in my post about mirroring content, I said:

    “When we get into the groove of using a new service for a few years, it’s easy to forget that web sites don’t have a very good track record.”

    Now we find out that Mlkshk is shutting down. They are working with the Internet Archive to make sure the content is preserved, and they might still find a buyer for the whole service, but as things stand it’s likely that every link to Mlkshk-hosted images will break in September.

    Mlkshk hasn’t been on my radar lately, but it was widely used enough a couple years ago that I added support for its image thumbnails to Tweet Library. I hope they can at least find a solution to keep mlkshk.com working as a static site.

    → 8:18 AM, May 8
  • The risk of a small platform

    Marco Arment responds to my comment that developers should have seen the potential of the App.net API as something much bigger than Twitter. I wanted my post to be short, but Marco makes good points that are worth following up on. He writes:

    “Building an app on someone else’s API, rather than making your own, is a huge risk: it usually only pays off if the service provides a huge existing userbase and hard-to-duplicate functionality. App.net never offered either. They started out facing the typical social-network chicken-and-egg problem, put a huge paywall in front to prevent any growth, and tried to alleviate that by adding more chicken-and-egg problems to their offerings.”

    Building entirely on App.net for Sunlit was indeed a huge risk, and one that we expected would take time to pay off. It was a bet on the future. We are incredibly proud of our app and the response it got in the App.net community, but our goal was always to make an app that appealed to everyone, not just a small niche of tech folks. We’ve actually been working for over a month on a new version of Sunlit that expands the reach of the app beyond App.net, and coincidentally it just went into review at Apple this week.

    But I think the chicken-and-egg problem was solvable. The main issue with iOS apps is that they couldn’t sign up a new user directly in the app. This made sense when App.net was a paid-only service, because you’d run into in-app purchase issues with Apple, but it became more technically feasible when the free tier launched.

    The App.net founders also seemed receptive to the idea. There just wasn’t time to make it happen. I believe this single roadblock prevented any potentially-mainstream killer apps built on App.net from getting off the ground. If it’s not easy to open a third-party app, create an account, and start using the service, too many people will give up. (Our numbers showed that only 40% of Sunlit downloads actually signed in to use the app for real.)

    However, building our own backend for the app would also be very challenging and expensive. We are not syncing small bits of data around. It’s a photo sharing app, so right off the bat you’ve got big files that have to be hosted somewhere. On top of that there’s collaboration features, so you need not just user accounts but private sync channels that have specific read/write access to certain users. Plus all the metadata and formats to support syncing text, photos, and location check-in information. Not to mention publishing HTML, thumbnails, and maps. It’s daunting.

    (In fact, it’s so daunting, I don’t think there’s a single app in the App Store that has feature-parity with Sunlit. The app simply could not have been built by a tiny team of 2 part-time developers if building a whole backend infrastructure first was a prerequisite.)

    Marco closes with this:

    “As much as App.net wanted to be — and eventually was — much more than a Twitter clone, it got the vast majority of its initial funding, enthusiasm, and developer support from people’s anger at Twitter’s dickification. But internet outrage doesn’t last long. Since App.net never became the new primary place where our friends all hung out, most of us never left Twitter — we all just accept that they’re dicks now, and we forgot about App.net.”

    There’s an argument to be made that App.net’s core mistake was building the Alpha web interface only far enough to match Twitter’s features and then moving on to other things. Instead, they could have kept improving Alpha until it was significantly better than Twitter, so good that it couldn’t be ignored. By doing so, maybe they would have also more effectively demonstrated the power of the API underneath.

    I assume that App.net chose not to do this so they wouldn’t compete with developers. After all, the service was founded on the idea that developers should be respected and given every opportunity to succeed. Finding the right balance to showcase the platform with first-party apps without stepping on developers is not always easy. We can argue about which missteps were the most costly, but the founders never wavered on their original principles and they promoted every app that launched on the platform. That means something.

    As for outrage not lasting long on the internet, Marco’s totally right. I just don’t forget that easily.

    → 5:24 PM, May 7
  • App.net niche

    Justin Williams covers several aspects of this week’s App.net news, comparing it to his own Glassboard service. On finding a profitable niche:

    “Finding an audience of people interested in your platform is challenging. This isn’t Field of Dreams where if you build it people will magically appear. Once you find that niche of users, you’ve got to ensure they’re also the type of folks that are willing to pay to support your platform. If they aren’t, you keep looking for a niche that will sustain your product.”

    He also hits on the main thing that was probably holding App.net back: the stigma that it was just a Twitter clone. I’m more than a little disappointed that fellow developers didn’t get the power of the App.net API. Does Sunlit look like a Twitter app? Give me a break. App.net is hands down the best API of its kind.

    So now we figure out what’s next. In the short term, not much changes. Tomorrow I’ll read my App.net timeline, make a few posts, reply and star as usual. Next week I’ll do the same. At WWDC I’ll use App.net messaging apps to coordinate meeting up with friends.

    There’s no shame in shooting for the stars and missing. I’m thankful that even as the founders tried a few things outside micro-blogging over the last year, they never compromised on their original mission for the service. They never sold out users or developers, and the servers hum along in testament to that fact, as if nothing that’s good will ever really change.

    → 8:06 AM, May 7
  • Would I go back to Twitter?

    Before some of the recent discussion about the future of App.net, Colin Pekruhn asked a question, directed at Ben Brooks and me, about whether we’d go back to Twitter if App.net failed. My answer (and his) was a very clear “no”. Here’s what I said:

    “I’m very stubborn and not going to reverse my decision on Twitter. If ADN fails I’ll blog more.”

    The stubbornness deserves a little more explanation. Because programmers are pretty opinionated folks. When we feel strongly about an approach — to languages, to UI design, to backend architectures, anything — we’ll plant our feet in the ground and argue with coworkers about the right way to do things. And it’s easy to dig in, start coming up with more justifications for a choice before taking a second look and seeing if it’s actually the right thing, or whether we’re just fighting for something because we want to get our way.

    I put a lot of thought into no longer posting to Twitter. I often bring up my low Twitter user ID (#897) because I think it helps underscore that I’ve been on the service a long time. I get the history of it. I was there when it was all done over SMS with my dumb Nokia phone. I had fun with early experiments on the platform, like my sadly abandoned @story140 account, my @wii codes service, the Tweet Marker API, and of course the two products I continue to support to this day: Tweet Library and Watermark.

    I stopped posting because at some point the anti-developer attitude at Twitter became too much. The limits on user auth tokens, which have already killed a few popular third-party Twitter apps; the problems with shutting down IFTTT recipes; the guidelines that restricted how you could use your own tweets. This is all fairly well documented and I’ve written about it before. I leave my personal account silent as a small protest.

    I knew leaving would be difficult, so I set up a series of posts to discourage my future self from ever joining again. My final tweets were timed to go out on the anniversary of Steve Jobs’s death. They’re a collected moment, a tribute to both Steve and how great Twitter could be. I like that they’re forever pinned at the top of my profile page.

    The best programmers aren’t so proud that they won’t admit when they’re wrong. There’s a time to fight for what you believe in — your coworkers don’t agree with how you want to build that feature, but maybe they just don’t see it clearly yet — and there is a time to admit you made the wrong call and move on. Saying “I was wrong, let’s do it your way” is a powerful statement and moves a project forward. I never want to ignore Twitter just because I’m so stubborn I refuse to admit I overreacted and that it’s time to crawl back to Twitter and accept defeat.

    But here’s the thing: I wasn’t wrong. Every reason I gave above for leaving Twitter is still valid. I have friends at Twitter doing great work — it’s truly incredible what they’ve built, from scaling the backend to how the iOS app works — but Twitter is too big and successful to change now. We can’t rewind the clock to when Twitter was a tiny company that cared more about developers than advertisers, so I won’t be back.

    → 8:43 AM, May 6
  • Core Intuition 135

    135 episodes already? Hard to believe. But we’ve been pretty consistently putting out weekly shows for a while now. Funny thing about starting early and just sitting down to do work every day or week: eventually you end up with something big.

    On this week’s show, Daniel and I talked about Apple’s stock, rumors of a search engine, and a follow-up on my Twitter ads experiment. I like how this episode turned out.

    → 10:24 AM, May 2
  • Snippets

    Right after publishing yesterday’s post on mirroring content, I added a link to IndieWebCamp’s POSSE, a project from Tantek Çelik to provide a framework for mirroring posts to different services. It looks like that group is doing great work to identify microformats that will make this a more open standard.

    Noah Read also rolled his own solution for writing posts on his site first and then letting them flow to Twitter, App.net, Flickr, and other services. He calls them Snippets:

    “Microblogging and social sharing will survive, whether or not the current players do. So I wanted to take control of the things I publish on these networks, without abandoning the great things only they can provide, the conversations and reactions to what is shared. So Snippets are the way I will post to these services from now on.”

    Check out Noah’s snippets feed. I especially like the name. As a programmer I’m used to thinking “code snippet” when I hear it, but with enough use it’d be easy to reclaim its normal non-code definition.

    → 9:48 AM, May 1
  • Firesid.es chat with Bill Kunz

    Yesterday Bill Kunz was interviewed on Firesides, talking about his app Felix, and life as an indie developer vs. at a startup. Bill was especially open about how he used his own savings to build Felix, and some of the planning problems he ran into:

    “One thing I would do differently - and this is probably going to come out wrong - but I would have stuck to my guns on my own plans better. I added quite a few niche features that ultimately ended up not being used, when I could have spent that time on the core of the app, or other projects. I burned a lot, lot, lot of time on things I ultimately didn’t need to.”

    Firesides is a very nice use of App.net. You can browse chat transcripts from previous guests without signing in, or sign in with App.net to ask questions when there’s a chat taking place. It’s a little like Reddit’s Ask Me Anything, but more readable and visually appealing, and built on the App.net messaging platform.

    → 8:15 AM, Apr 30
  • iOS 7 and UI debt

    Jared Sinclair writes about iOS 7 as a squandered year for third-party developers:

    “Fast-forwarding a year, the effect that iOS 7 has had on third party development is disheartening — which sounds like a fatuous thing to say, since there have been so many well-liked redesigns over the past year. But that’s the rub: the vast majority of third-party developers’ time has been spent redesigning and reimplementing apps to dress the part for iOS 7.”

    I agree with Jared that it was a sort of lost year for app features, but Brent also has a point:

    “Jared argues that iOS 7 wasn’t urgent, that evolution rather than revolution would have been fine, since customer satisfaction was extremely high with iOS 6. In retrospect I agree, but were I at Apple I would have argued that the situation is like tech debt — UI debt — and it’s best to deal with it quickly, completely, and early.”

    They had to deal with it all at once because UIKit’s look and feel didn’t really evolve the same way Mac OS X usually does, a little each year. Even Aqua, the most dramatic change ever to the Mac’s UI, was fairly straightforward for developers to adopt; if you stuck with consistent Mac controls, you got a lot for free. There was very little of that kind of consistency on iOS because developers frequently built their own custom UIs which had to be thrown out when iOS 7 happened.

    → 5:09 PM, Apr 29
  • 17 services for hosting and business

    While doing our taxes this month, I was a little surprised just how much I spend for various web apps and services to help run Riverfold. While I could trim some of them, most are essential and save a lot of time. I thought it would be interesting to write up some of the most important ones.

    Linode: I’ve moved nearly everything to Linode. I like their style: just basic, solid hosting, with good features but not an overwhelming number of services or fancy stuff. They’ve recently increased their RAM and added SSD. I have servers there for Nginx/Unicorn, MySQL, Redis, and Elasticsearch. I also use their load balancer and Longview stats app. This link uses my referral code.

    Amazon Web Services: I no longer use EC2, but I have some DNS hosted in Amazon’s Route 53. I also use S3 for backups and a new feature that’s coming to Sunlit soon.

    Heroku: Before moving to Linode, most of my stuff was on Heroku. Now I only have one small app and database there, and I’ll be completely moved off by the end of the year. I’m including it here for completeness only. It’s a great option to get started if you don’t want to be a part-time system administrator, but I think Marco sums up nicely why you want to use Linux servers instead.

    Stripe: Can’t say enough good things about Stripe. Watermark, Searchpath, Tweet Marker, and Core Intuition Jobs all use it for credit card processing. It’s the best.

    Gauges: As much as I always loved Mint, as my business grew to several web apps and web sites, I looked for a new stats package that could support any number of sites, and which would work better across hosts, since I don’t need to run the database. I’ve been very happy with this.

    AppFigures: I’ve used this for years to track Tweet Library sales. It’s great. I also like that I can enter other people’s popular apps and get an idea of how they’re trending if they make it to the top lists.

    Blinksale: Kind of an ancient invoicing app that hasn’t changed at all in years, but it works so I keep using it. Originally started by the folks who would go on to do Gowalla.

    Beanstalk: I moved the source for all my Riverfold projects here because it can do Subversion and Git well. I sometimes wonder if I should move to GitHub instead, since I do use GitHub and have a couple tiny public repositories there, but I like that Beanstalk is focused only on private hosting. No social; just a well-designed web app.

    Postmark: Run by the same team as Beanstalk. I switched to this after Sendgrid had some PR problems you may remember. Email receipts and whatnot go through Postmark now.

    Dreamhost: Still using this for email and a few static or PHP sites. It’s cheap and works well. Not much benefit in moving away from it, though I prefer my more important web apps to be hosted on Linode.

    DNSimple: I have a few domains here and hope to have all of them moved over eventually. I want to have a single place for DNS. Right now I have registration and DNS hosting spread across Dreamhost, Amazon, and Network Solutions. Makes it difficult to remember where everything is and to keep track of expirations.

    Buffer: This company has been on my radar since someone asked me to support it in Tweet Library. They also have a really interesting blog where they share revenue, salaries, subscribers, web traffic, and other usually private details from a company. I admire that a lot. Daniel and I use it to automate sending Core Intuition Jobs links to Twitter, App.net, and Facebook.

    Mapbox: We use Mapbox throughout Sunlit. I wrote more about why here.

    FogBugz: In the past I’ve build my own bug tracker, used Jira, Redmine, GitHub issues, and others I’m forgetting. They all have problems so for Riverfold I keep it simple with hosted FogBugz. To complement this I use OmniFocus for non-bug tasks.

    Zendesk: For too long I was just using Apple’s Mail.app to handle support email. Now support email goes to Zendesk, where I can better track and reply to it. The downside is I’ve had a couple cases of people not seeing the replies, possibly because the HTML email is more often flagged as spam. Need to investigate whether I can switch it to plaintext, but otherwise I’m happy.

    Keen.io: I was inspired to try this after reading Justin’s post on analytics. I’m experimenting with it to get better insight into how people are using my apps. So far so good.

    Tapstream: Just started using this to help track Twitter ads and other links, to see what marketing actually converts to App Store sales. The web app is good, they responded to a support question the same day, and I love that the SDK is just a handful of .m files that can be dropped into an iOS project.

    And that’s it. I may have left a few things out (like consumer-focused apps Dropbox, App.net, and Twitter), but these certainly cover the major services I use now. In the old days it was common to just have one server that did everything. Now there are so many specialized services. While it seems like a lot to manage, each one does a much better job than I could do with a home-grown solution.

    Update 9/16/2016: I still like all of these services, but since originally written I’ve consolidated Beanstalk and FogBugz to GitHub; Postmark to Mailchimp; and stopped using Gauges, Keen, and Tapstream.

    → 10:05 AM, Apr 29
  • 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.

    → 9:39 AM, Apr 25
  • Tweet Library 2.5 and consolidation

    There’s a new update to Tweet Library out today. Major additions include CSV file export to Dropbox and new URL schemes for starting a search, export, or publish. The URL schemes look like this:

    twtlib://username/search?q=hello&collection=Favorites

    twtlib://username/export?collection=Testing

    twtlib://username/publish?collection=Testing

    twtlib://username/storify?collection=Testing

    There are a few other important bug fixes too, especially to importing the Tweets.zip archive from Twitter.

    When I gave up on Twitter as a user, many people asked if I would abandon Tweet Library. I wasn’t sure at first, but the answer now is a clear “no”. In fact, since my last personal tweet in 2012, I’ve released new features and even redesigned the app for iOS 7.

    But I do need to start consolidating my work on Tweet Library and Watermark, because the apps share so many concepts around archiving and search. To that end, this week I’m retiring tweetlibrary.com as a way to browse and publish collections. The site will now redirect to a special landing page on Watermark. Published collections from Tweet Library also go to a public page on Watermark.

    It was a tough decision to change the tweetlibrary.com URLs, but maintaining separate web apps that are so similar made everything more complicated, holding back what I could build. Having a single web codebase (Watermark) will ultimately let me improve both Tweet Library and Watermark more quickly.

    → 12:09 PM, Apr 23
  • Photos+ and focus

    You may have heard by now that Photos+ has a new home at SilverPine software. My friend Jonathan Hays — now co-founder of SilverPine — is of course also half of Sunlit, so it was a great fit for him to take on another photo app as well. He writes:

    “In addition to consulting, we intend to slowly grow a portfolio of software. To that end, we are announcing today that we have purchased Photos+ from Second Gear Software. We have quite a bit of expertise with photo Apps (see Sunlit, among others) and when Justin Williams approached me about purchasing it from him, it felt like a great fit. We have big plans for Photos+ and have already put into motion the first phase of those plans: native Dropbox integration!”

    I tested the Dropbox support during the 1.1 beta and think it’s a great direction to take the app. Dropbox the company is going all in on photos: just in the last week shipping Carousel and now acquiring Loom. The more people start using Dropbox to store all their photos, the more useful companion photo apps like Photos+ and Sunlit will be.

    And now Justin Williams is free to focus all his time on Glassboard. While I’ve been building web services and subscription apps for a while now, the truth is I’m still figuring out how to do this as a business too. I’ve learned a lot from Justin’s recent blog posts on the subject.

    → 4:39 PM, Apr 18
  • 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.

    → 3:52 PM, Apr 17
  • 12 years of blogging

    It’s SXSW this weekend, and while I’m again not attending this year, it’s a reminder that today is the 12th anniversary of starting this blog. I took some time today to fix the categories and tags on about a dozen older posts. One of those was fun to rediscover, linking to John Siracusa’s review of Mac OS X 10.2. Here’s the part from John that I quoted:

    “And forget about any truly forward-looking features akin to Copland’s saved searches or BeOS’s metadata-powered custom views. Put simply, the Finder, once the crown jewel of the Mac user interface, no longer seems to be a priority at Apple.”

    That was September 2002. It feels like it has really taken until 10.9 Mavericks (with tags and Finder tabs) for that to change.

    → 5:37 PM, Mar 9
  • Like scripts in animation

    This line in a blog post on Cartoon Brew made me laugh:

    “It’s certainly possible to write a Looney Tunes script, just as it’s possible to eat a hamburger with your feet, but there are smarter, easier, and better ways to do it.”

    Every industry that gets big probably has some of this. There’s the old school, the folks who know the right way to do things — for example, you start an animated film with sketches and storyboards, not words — and then there’s everyone who comes in afterwards, without the history and culture of what made it all work. Look at what the App Store has become, compared to how software development worked in the 1990s or early 2000s. If it wasn’t for all the money some of these new developers are making they’d be completely embarrassing themselves with technical naivety and depressing lack of vision.

    On the other hand, great ideas often start with newcomers. But please respect the past before you break from it.

    → 12:01 PM, Mar 4
  • Building Slack

    Stewart Butterfield, co-founder of Flickr and his latest company Tiny Speck, published an internal email from around the middle of development on their collaboration app Slack:

    “There’s no point doing this to be small. We should go big, if only because there are a lot of people in the world who deserve Slack. Going big also means that it will have to be really, really good. But that’s convenient, since there’s also no point doing it if it is not really, really good.”

    It’s long but there’s a lot of good stuff in it on marketing and building a product people need.

    → 1:05 PM, Mar 3
  • Prompt for push notifications

    David Smith says to not bother the user with alerts on first launch:

    “I have just sorted through the App Store and settled on trying out your app. I open it up and you immediately ask if you can send me Push Notifications? I have no context about what these are going to be used for or why they might be useful to me.”

    I agree. For Sunlit, we only prompt to enable push notifications after you’ve chosen to enable sharing for a story. While it might be useful to have push notifications for everyone, by waiting until we really need it, most users are never bothered with the alert. And it forced us to focus on specific and valuable uses of notifications, such as sending a push notification when someone subscribes to your shared story.

    → 11:40 AM, Feb 28
  • Higher standard for Apple

    Guy English writes about why Apple was questioned on the fingerprint sensor in the iPhone 5S but Samsung wasn’t for their new phone. I like this part about holding Apple to a higher standard:

    “Apple is held to a higher standard of conduct. They’ve spent years, countless hours of hard work, and untold advertising dollars, to earn that expectation. They have it.”

    Expecting the best from a company isn’t unfair; it’s a form of respect. We want Apple to be amazing, and when they fall a little short, we’re disappointed. If they disappoint too many times in a row, we’ll no longer expect greatness. That that hasn’t happened yet says everything about quality at Apple.

    → 9:20 AM, Feb 28
  • Getting good at making money

    Justin Williams on the challenge of making Glassboard profitable:

    “Making money is harder than it seems. Most people assume you put a product out and people instantly find and support it. The reality is that for most products, they first struggle to find an audience, and secondly struggle to find an audience that’s willing to pay.”

    Justin’s blog post reminds me of something that Jason Fried of Basecamp wrote about. Getting good at making money is the same as getting good at anything: you have to practice.

    → 10:14 PM, Feb 26
  • Podcast appearances and slides

    I forgot to mention a few weeks back that I was a guest on the iPhreaks Show podcast. The format is a panel of regulars and usually one guest, making it feel more like a roundtable discussion. They had me on to talk about subscription pricing: charging every month for your app or service.

    Some of what we talked about was covered in 2 talks I gave last year about subscriptions, at NSConference and CocoaConf Dallas. I’ve finally pulled together the slides from these talks and put the latest version from CocoaConf here as a PDF (17 MB). It’s different than the NSConference one, but I think works better standalone. You can still purchase the videos from NSConference 2013 to get my talk and many other great ones.

    This week I was also on the Release Notes podcast with Joe Cieplinski and Charles Perry. They do a great job each episode focusing on something from the business side of running an indie software company, and they’ve had some excellent guests as well. From the show notes for episode 41:

    “We talk about creating products vs. services, changing products from free to paid, and the advantages and challenges of subscription pricing. Manton also shares his experience in creating apps like Sunlit that build on top of other services like Twitter and App.net, his recent foray into freemium pricing, and the launch of the new Core Intuition Jobs Board.”

    If you enjoy Core Intuition, I think you’ll really like Release Notes. Let me know if you have any feedback on the show.

    → 1:30 PM, Feb 25
  • Core Intuition Jobs

    This week we launched the Core Intuition Jobs site on episode 125 of the podcast. The idea was to create a job board focused only around Mac and iOS developers. The 24 jobs already listed there all talk about Objective-C, Cocoa, ARC, or Xcode, so you don’t need to weed through a giant list of thousands of irrelevant jobs. There are some really great companies in the list.

    We’ve also added an RSS feed, so you can see when new jobs are posted, and we’ll be rolling out @coreintjobs on Twitter and App.net soon. Even if you’re not actively looking for a new position, subscribing to the feed or following @coreintjobs is a great way to see some of the amazing work being done in the Cocoa community.

    → 4:44 PM, Feb 21
  • 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!

    → 4:00 PM, Feb 14
  • Flappy Bird on steroids

    On this week’s Core Intuition, we talked a lot about Flappy Bird (and also Threes, and a few other things). One of the points I tried to make is that some of the negativity pointed toward the developer was totally uncalled for. Marco Arment says it well in his post on this topic:

    “Flappy Bird’s success was hilarious, but it also appears to be completely earned. I’ve read the posts suggesting he cheated at the ranks or reviews, but I haven’t seen any that supported those claims enough.”

    As I read Marco’s full post, and re-listened to what Daniel and I said on the podcast, I do wonder if developer Dong Nguyen had been so overwhelmed by the success that the line blurred for him between the death threats and the joke “this ruined my life” app reviews. You’d have to have a pretty thick skin to not let it get to you, even if I hope that most users had a good sense of humor about the whole thing. It’s true that the game is crazy addicting, but unlike some games — the worst of which are driven by consumable in-app purchases, gimmickly rigged to get users to feed money into the game — Flappy Bird is addicting in kind of the best way, because it’s something we’re all playing and can laugh about together.

    And Nguyen cares about more than just money. He’s demonstrated an empathy for customers that seems to be lacking in many corners of the App Store. Where some developers said he was leaving money on the table by not having more ads, and other developers were quick to rush in with rip-offs of his app, Ngugen wasn’t afraid to admit it was out of control and pull the app from the store. Do you think any of the other developers who renamed their app to include the word “flappy” would have pulled their app? Not a chance.

    I hope Nguyen can bounce back from this and ship more games. With so much attention now, it’ll be fascinating to see what they look like. Or if he’s stashed away some of that $50k/day and wants to just chill out for a while, that’s fine too.

    → 3:16 PM, Feb 13
  • 5 years until automation

    For over 5 years and 122 episodes, every time we released a new episode of Core Intuition, I manually added the episode to the RSS feed using BBEdit. There was enough tedious XML copy-and-pasting that it was silly not to automate this process, but we kept putting it off. Finally last week, we switched over to an RSS feed generated by WordPress.

    What surprised me is that until it was automated, I didn’t realize how much time I had been wasting editing and uploading the file manually. It was a small but very noticeable win last week when I could just upload the MP3 and click Publish, and that was it.

    I’m not sure what the lesson is here. I never automate a task too soon, but 5 years was a long time. Maybe it’s just this: it’s never too late to get a better workflow.

    → 7:37 PM, Feb 11
  • 37signals rebrands to Basecamp

    I first blogged about 37signals a couple times back in 2002, and I’ve been a fan ever since. They had a huge influence on the way I approach design and the way I like to build products, not to mention a big impact on a whole new class of “software as a service” web apps.

    The decision last week to go all-in on Basecamp left me puzzled. Daniel and I discussed this at length on Core Intuition. It’s one thing to focus all your efforts on a single product, but seems quite another to rename the whole company around it. I still feel that once you make that choice, your hands are tied from ever thinking big again, from ever wanting to grow beyond the scope of a single product. It’s like saying “our best product ideas are behind us”, and I know that’s not true for 37signals.

    On the other hand, I’m sure 37signals understands their business better than I do. And maybe even big decisions are temporary anyway. I’m excited to see how it plays out in another year or two.

    You can listen to Core Intuition episode 123 and let us know if we’re off base or not. Last week’s show also has more about choosing a product lineup, managing time, and thoughts on App.net’s Backer. Thanks to Smile’s PDFpen for sponsoring the podcast.

    → 9:26 AM, Feb 10
  • Requiring the latest OS

    Brent Simmons has a pair of posts on dropping support for older OS releases and how the upgraded percentage goes up quickly:

    “When making decisions like this, I don’t think about what conditions are were I to ship today — I think about what conditions will be like when I actually do ship, and I think about conditions six months out as we do support, testing, and maintenance releases.”

    Good advice. And remember, very few developers actually ship on time. Even if you think your app is going to ship before the next major version of the OS does, your app will probably be late. More people will be able to run it than you first expected.

    → 1:40 PM, Feb 9
  • Ending the App Store top 200

    I was chatting with some developers this week, complaining about this post on spamming the App Store and wondering if we’d ever have a better App Store, when I finally realized how we get there. The block for me had always been the top 200 lists. We all know that you can game them, buy your way in, and apps that make it in even on their own merits have a huge advantage over everything else, sometimes for months. But I couldn’t conceive of how you could actually get rid of them and if it would make the store better or worse.

    The answer is in Beats Music. They have no overall top 200 list! Instead, they have a bunch of people — musicians and writers who deeply care about music — curating playlists. The top 25 playlists in a genre are so buried in the app that I had to search them out just to write this blog post, because they seem to carry no more weight than any other playlist. Much more common are playlists like “our top 20 of 2013”. That’s not a best-selling list; it’s based on real people’s favorites.

    There are literally hundreds or maybe thousands of other playlists. Intro playlists for a band, related artists that were influential to a singer you like, playlists for a mood or activity, and more. This extra manual step makes it much easier for an algorithm to surface great music: just look for playlists that contain songs you already like, and chances are good that you’ll discover something new.

    I wrote about Beats Music earlier, how it underscored to me that Apple needs to find the next product category to fall in love with, just like they used to feel about music. Of course we know that Apple already loves apps. Show that by doubling down on featured apps, staff picks, and app playlists.

    How would this fix the junk problem in the App Store? Simple. No one in their right mind would ever feature one of these ad-filled, “re-skinned” cheap apps. Great recommendations mean less reliance on search, making scam apps more difficult to find by accident. (This focus is so complete in Beats Music, for the first couple days of using it I didn’t even realize you could search for a specific song or album.)

    This idea isn’t new. Here’s Jared Sinclair on app playlists, with the twist that they’re based on apps you have installed and use:

    “App playlists should be rigorously simple: just a list of apps. Not all the apps ever downloaded, but the apps that a given user currently has installed on their device. The assumption is that if somebody has an app on their device, they probably like it.”

    That would be great. But seeing Beats Music ship with almost no traditional music charts at all — in an industry that has embraced the top 40 for decades — tells me that the Beats approach would also work for apps. I think you need both an “installed” playlist and many more fully curated playlists to actually replace the top 200 in the App Store.

    Apple will need to ramp up their staff to do this, but if a new company like Beats can do it, surely a company as huge as Apple can also try. And they’ll have help from app fans everywhere. Writers are already doing this: see Federico Viticci’s must-have iPad apps of 2013 (could easily be an app playlist) or all the photo apps mentioned on The Sweet Setup (favorite photo apps playlist) or TechHive’s 5 apps for budgeting (my playlist would’ve added MoneyWell).

    Apple shouldn’t wait until Thursday to feature a few great apps. Feature apps all the time. They’re on the right track with some of the “best of” sections in the store, and with the “Near Me” feature. Go a little further and it will make all the difference to bubble up great apps, and let the junk in the App Store fade away. For the first time I can imagine the store without a top 200 at all, and it looks amazing.

    → 2:40 PM, Feb 7
  • We love music

    In my short post about why we chose Mapbox for Sunlit, I said I wanted to use it because the folks working at Mapbox clearly love maps. We are so used to mega-companies like Apple, Google, and Microsoft trying to provide every possible service, it’s nice sometimes to just buy directly from a specialist.

    I think that’s why Beats Music is going to be successful. Music is all they’re doing, they’ve hired a staff of specialists — curators who are passionate about not just music but specific genres — and even their sister company makes music products: headphones and speakers. For more background on Beats Music, I recommend this write-up from MacStories and this video interview on The Verge.

    Remember when Steve Jobs introduced the iPod? He said: “We love music. And it’s always good to do something you love.” As he continued to play some of his favorite songs, we believed him. The driving force behind the iPod and iTunes was to make it significantly easier to listen to music. They hit it out of the park and changed the music industry.

    Today, Apple is either spread too thin or content to do the bare minimum only. iTunes Radio looks like something they felt they had to build, not something they wanted to build. Beats Music is in a completely different league, with a deep set of features and content. It looks like an app that’s had years to mature, not a 1.0.

    I’d like to see Apple get back to doing fewer things and doing them well. That means no TV or smartwatch. They need more product categories like photography, which they excel at. The iPhone camera is the best, the built-in Photos and Camera apps are great, and there’s a rich layer of third-party apps to fill in additional features. Apple’s photos ad perfectly captures this.

    Apple, fall in love with the next product category and lead us there. We’re ready for the next thing you love, not the next thing that Wall Street assumes everyone wants.

    → 12:32 PM, Feb 6
  • New CEO and Windows Azure

    While writing about Microsoft’s new CEO, Brent Simmons makes the case for Azure as important competition for Amazon:

    “My worry about the future is an Amazon monopoly on cloud services. Amazon’s services are fantastic, and they’ve changed how people make web apps. But they should not be the only game in town.”

    I agree. When AWS goes down now, it seems like half the internet doesn’t work. Except for a few lingering DNS entries, I moved everything from Amazon to Linode last year in a cost-cutting attempt. But even better, I’d like to run some of my services across multiple cloud providers. That’s difficult to manage today as a one-man shop.

    (Brent’s post is also worth reading just for the WOES acronym.)

    → 5:09 PM, Feb 4
  • 13 years

    If you’ve been reading my blog for a very long time, or listening to my podcast, you probably know that in addition to my business Riverfold Software, I also have a “regular” job at VitalSource. As that company has grown, I feel less comfortable blogging about my work there, since I can’t speak for the company or even the smaller group I directly work with.

    But this month is my 13th anniversary (!) with VitalSource, so I thought it would be interesting to look back on the times I’ve blogged about my work there, and highlight some of things I’ve helped build.

    One of the earlier posts, back in 2005, was about our new store, where I linked to blog posts from James Duncan Davidson, Mike Clark, and Ryan Irelan about the project. But nearly a decade of migrating between blog systems has taken its toll; my post is still there, but the other links are all 404 not found.

    Then from 2007, I wrote about syncing highlights and notes in e-books:

    “The architecture is based on the Simple Sharing Extensions (SSE) for RSS and OPML. On top of that we have added a VitalSource namespace and a few extra XML elements and attributes to keep track of Bookshelf-specific data, such as highlighter color and selected text within a book. The goal is to keep it as open as possible, so that in the future we can both consume other sources of user notes, and allow third-parties to also hook into the data in interesting ways.”

    We recently updated the API to use a new, faster sync architecture, but the web app is still in use today. I’ve been updating it for Rails 4, a tedious process because of the Rails community’s fascination with deprecation.

    Again in 2007, I mentioned updates to two of my favorite apps, MarsEdit 1.2 and NetNewsWire 3.0, along with VitalSource Bookshelf 4.6:

    “At VitalSource we also just released Bookshelf 4.6 today, which lays the foundation for media-rich textbooks and adds a highlighter rating UI for any subscribed highlighters you have. This data will bubble up in a few places in the future to allow you to discover people and books, although for now it’s one-way.”

    It’s neat looking back on this post because it includes a short screencast of the app from 2007, presumably running on Mac OS X 10.4 Tiger. The promise of this highlighter ratings feature never really materialized, though.

    In 2010, I thought about the iPad right before its release:

    “I’m working on 2 apps for the iPad. The first is just a minor iPad refresh of an existing iPhone app at VitalSource called Bookshelf Noteview (iTunes link). It’s for reading notes and highlights synced from our e-book platform.”

    Noteview was eventually removed from sale. The other app I hinted at would become Tweet Library.

    Around the same time, I blogged about Mac OS X as a server platform:

    “At VitalSource we now have a dozen Xserves running Ruby on Rails and a couple others running MySQL. While it’s mostly stable now, over the years there have been several mystery show-stopper problems that no one seems to have on other platforms.”

    Obviously Apple no longer sells the Xserve. At VitalSource all our best new servers run Linux.

    Also in 2010, I reflected on how a team grows:

    “If you’re working by yourself and add another person to the project, a funny thing happens: you become a manager. Before, you could spend 100% of your time on the work. Now you can allocate 50-75%, because you’re getting the new programmer up to speed, answering questions, and setting priorities. If you’re lucky (and I usually am), the person you added is contributing so much that it easily makes up for your loss in productivity, and then some.”

    Later in 2010, I described how we shipped Bookshelf for iPhone:

    “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.”

    There are other posts, but I think these hit some of the more interesting milestones in the last 13 years. I also have an archive of earlier, company-internal blog posts, starting in 2001, that I hope to look into and publish pieces from one day.

    → 5:15 PM, Feb 2
  • Launch Center Pro and Sunlit

    I’ve long been a fan of Launch Center Pro, an iPhone app from my local Texas friends David Barnard and Justin Youens. It’s handy even for fairly simple tasks — firing off web searches or other shortcuts into apps — but it’s especially powerful when wiring up multiple apps together. For Sunlit it was nice to provide some full actions that Launch Center Pro users could use to automate bringing content into Sunlit.

    Jonathan has the full rundown on the URL schemes that Sunlit supports and why we think they’re important. You can also use the Action Composer inside Launch Center Pro to access these actions without having to type them in.

    And just today, Launch Center Pro for iPad shipped. Check it out and explore some of the many apps like Sunlit that are supported.

    → 6:20 PM, Jan 30
  • Launching as a paid app

    Dan Counsell has a great post about paid vs. freemium pricing in the App Store, suggesting that paid apps are often still the best choice:

    “Launching as a paid app is still one of the most straightforward and safest ways to enter the App Store. Regardless of what you may have heard or read, the paid app market is not dead. As long as you’re smart with your marketing and price carefully you can make a great return on your initial investment.”

    I’m pretty sure we left some money on the table with our Sunlit launch by making it a free download. We had an audience of folks on App.net looking forward to picking it up, plus curious people who had signed up for our announcement mailing list, and others who would find out about it in the first week of press. Many of these people upgraded to the full version inside the app, but I believe many more would have bought it for a few bucks even if the app ultimately wasn’t for them.

    And that’s how the App Store works, right? People are always buying 99-cent apps they don’t need. It seems wrong, coming from a Mac background where you download the demo of an app and then pay a fair price after trying it, but so much of the iOS App Store works on cheap gimmicks and over-the-top marketing. People will buy on the promise of an app alone.

    But we made Sunlit free anyway, for two reasons. First, because it requires an App.net account, we didn’t want anyone to buy it and then decide not to sign up for an App.net account, making the app they paid for worthless. It’s been great to see people sign up for App.net just to use the app, but we’re realistic enough to know that not everyone will do that.

    Second, and most importantly, we have big plans for the app. Plans that include reaching people who don’t pay for apps often. I want my kids to be using this so that when we go on trips, all our best photos can sync to everyone’s device. I want extended family to use this, so that grandparents can stay in touch with what their children and grandchildren are up to. I want it to start free so that anyone can try it, because you never know who’s going to take the app and use it for something new, for ideas we haven’t even thought of.

    Sunlit 1.0 is about laying the groundwork. I don’t want to change the price again, and our eye is on the market 6 months from now, a year from now. I think free with in-app purchase is the right approach for that.

    → 9:32 AM, Jan 29
  • Core Intuition 121

    On the latest episode of Core Intuition, we talk about how the Sunlit launch is going, expanding on my post about Sunlit and Storehouse. We also follow up with some comments from the Glassboard on privacy policies and the App Store review guidelines.

    This week’s show was sponsored by CocoaConf. They have 5 cities planned for the next few months: Chicago, Washington DC, Austin, San Jose, and Raleigh. I’ll be speaking at the stop here in Austin. If you’re in the area and attending, hope to see you there!

    → 4:40 PM, Jan 24
  • Press for Sunlit

    We’ve been really happy to see the reviews of Sunlit popping up around the web. With a new type of app like this, there’s always the risk that people won’t get it. But that hasn’t been a problem at all. I’ve included some quotes below.

    Jon Russell on The Next Web:

    “The design is beautifully clean and the app is easy to navigate. [...] Sunlit is an easy way to curate a collection of images that you actually want to share.”

    Federico Viticci on MacStories:

    “You choose some photos that ‘tell a story’ – could be a trip, a family gathering, anything you want to remember – and the app pulls in their metadata for date and location. You can add text comments to jot down memories, import photos from Dropbox if you don’t keep them in the Camera Roll, and even add check-ins manually, from Foursquare, or from Steve Streza’s Ohai app.”

    John Gruber on Daring Fireball:

    “Sunlit has an interesting collaboration and sync model, based on App.net, and a clever integration of maps. You can publish stories on the web, but most of the features are geared toward private group sharing and collaboration through the app.”

    Thorin Klosowski on Lifehacker:

    “The app itself is great looking and provides fantastic maps to go along with your photos as well as a place to write down any thoughts you might have.”

    Charlie Sorrel on Cult of Mac:

    “Apps like Sunlit make sharing your pictures easy, fun and fast.”

    Thanks to everyone who tried the app and told people about it. Version 1.0.1 was approved this week, and you can download it for free and upgrade inside the app. Enjoy!

    → 12:08 PM, Jan 23
  • 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.

    → 10:04 PM, Jan 21
  • Sunlit sync and publishing

    It was Macworld Expo in 1997, and Steve Jobs had just come back to Apple. Somehow I was lucky enough to get a seat in the keynote, and I sat there with a big grin on my face as Steve came out to talk about NeXTSTEP, which would eventually become the foundation for Mac OS X. He likened developing an app to constructing a building, one level at a time. A good OS allowed you to build higher.

    Microsoft’s DOS gave you very little, so you had to start at the ground floor. Developing for the Mac and Windows was like starting out on a 5-story building. But the developer tools from NeXT were like starting out on the 20th floor, because they were so advanced, because they “lifted the developer up” and let apps be developed more quickly than if you had to deal with all the basic foundational stuff every app needs.

    I think the App.net API is that same kind of advancement for apps compared to most other web APIs. It is significantly more consistent and full-featured than anything else out there.

    Sunlit syncs stories and photos with App.net, using your App.net private file storage (for storing photo data) as well as private channels and messages (for syncing story titles, permissions, and other metadata). We like this solution because everyone who signs in to the app with their App.net credentials gets sync automatically. It also means that if you authorize other apps to see your App.net files, you can manage the data Sunlit syncs there, or get it out again without us having to directly build an export feature.

    (Although we do offer a number of export choices in Sunlit, such as saving photos to your camera roll, sharing them on social networks, or sending them to any app that supports “Open In”. We do this with OvershareKit.)

    Publishing in Sunlit is another feature that utilizes App.net file storage. It allows you to take a story — photos and text — and publish it to a URL. The URL is public, but it’s not linked from anywhere unless you directly share the URL with someone. This makes it convenient for quickly publishing a set of photos and sending the link to family, for example.

    Here’s what the published stories currently look like: http://sunlit.io/manton/nationalparks

    On the surface this may look like Sunlit is uploading photos and other data to sunlit.io, where it’s probably stored in a relational database or on the server filesystem somewhere. But that’s not how it works at all.

    The iPhone app actually uploads all photos to App.net file storage, marks the new files public, then generates a static HTML page and also uploads that to App.net. It then registers the story with sunlit.io, which caches the HTML just to make things a little faster. We never store any photos on sunlit.io itself, instead merely referencing their public URLs on App.net. (View source on the page to see the proof.)

    This difference means you can move the site anywhere just by copying files from App.net, with any number of available file management tools. Or just copy the HTML file to your own server to serve the page from your own domain. The CSS and JavaScript is all bundled inline in the HTML, except jQuery, which loads from a URL.

    We think this approach makes the whole system a lot more flexible and open. Your data is never hidden inside the app and your published pages are never locked behind a server.

    Several months ago I wrote this about App.net:

    “The promise of App.net is bigger than one type of app. App.net isn’t just a blank slate; it’s an amplifier. It’s waiting to power the next new idea and help it grow into something big.”

    I still believe that. It’s making apps easier to build and more powerful, just like NeXTSTEP was. There’s really no other web platform like it. That’s why we picked it for Sunlit.

    → 6:20 PM, Jan 20
  • No coincidence

    We released Sunlit yesterday and the response has been really great. It’s so amazing to see all the replies on App.net, emails of encouragement, and tweets telling people about the app. I think 1.0 is off to an excellent start. We’ll keep making it better.

    I was a little anxious about the release, though. It was a challenging app to build, and it’s different enough from other apps that it’s hard to predict how the market will react. I was also surprised that the same morning we shipped our app, Storehouse was released. This is a beautiful iPad app from Mark Kawano and his new team. The interactions are extremely polished and it’s getting justifiably good praise and lengthy write-ups from Techcrunch and elsewhere.

    (Of course, we think Sunlit is pretty awesome too. I’ll be writing more about what makes it special in future blog posts, especially highlighting how it leverages the App.net API, the URL schemes support, and why we use Mapbox.)

    At first I was stunned by Storehouse. How could it be that we were both working on a similar idea for the last year, and both apps were finished at the same time? The apps have different UIs, and a different approach, maybe even different goals, but they both create stories, revolve around photos, and publish to the web. I’ve seen a lot of people compare the apps, and I think that’s fair.

    To be honest, for a few minutes I was a little bummed out. If I had seen this tweet from Jackson Harper at the time, and not later in the day, I might have been nodding in agreement:

    “Having a somewhat similar free app from a funded developer launch the same day as you must be a little disappointing.”

    That doesn’t really capture it, though, because I’m also really happy for the Storehouse team. I’ve known Mark for years. I’m confident that his app is going to be one of the most impressive apps on so many people’s iPads.

    And they have a full-time team. Jon and I are just two guys, working in our spare time to build something — something we think is new, something for us to use, but also something ambitious in how big it could be.

    It seems like a big coincidence that both apps shipped with a similar set of features, but now I realize why it happened. Sure, it’s funny that the release days were identical, and not a few days or weeks apart. But the general timing shouldn’t be at all surprising, because this is an idea whose time has come. There are photo “album”-type apps popping up all over the App Store, such as Cluster, Albumatic, and Heyday, all of which Apple has featured. Plus there are web-based apps like Exposure and Medium, which was recently updated with great photo support as well.

    It’s no coincidence; it’s just a good idea. And it’s a huge market: everyone who loves writing and taking photos. That understanding gives me a lot of confidence to double down on our plans for Sunlit 1.1, 1.2, and after. 2014 is going to be an awesome year for sharing stories.

    → 10:13 AM, Jan 17
  • 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.

    → 6:24 PM, Jan 15
  • Never ship, never fail

    Andy Brice had a good post recently about shipping:

    “Continually abandoning work in progress for a new idea is also a form of cowardice. If I never ship, then I can’t fail. But I can’t succeed either. And I won’t learn anything useful from a string of half-finished products that never shipped.”

    I’ve been reminding myself of this to combat any self-doubt as Jon and I prepare Sunlit 1.0 for release. There is plenty to worry about: bugs we might have missed, potential confusion about how sync works, whether free with in-app purchase was the right call. But I’m proud that we took an idea from well over a year ago, prototyped it, rewrote it, and refined it, finally building it into an app that will ship.

    → 9:21 PM, Jan 13
  • Quality photos

    I’ve been slowly moving photos to Dropbox over the last year, using the Dropbox camera import feature so that all new photos from my phone get synced up automatically. It’s worked out so well that last week I decided to go all in. I moved about 13 years of photos there and upgraded to Dropbox’s 200 GB of storage.

    In the process I’ve been poking around at old photos, photos of my kids from 6-7 years ago when we had a basic point-and-shoot camera. There are some great photos in there, but also so many that are blurry or out of focus. We were too cheap to buy a good camera at the time. Now I would pay any amount of money to go back in time and reshoot the photos with a better camera.

    Gus Mueller learned this lesson more quickly than I did:

    “It’s quite amazing what a difference a nice lens and a nice camera can do. Kirstin was shocked at the quality. The cameras on iPhones are getting better, but they don’t hold a candle to camera tech today.”

    We don’t use our DSLR every day. It’s for big events, birthdays, school performances, and the iPhone suffices for the rest of the time. But it’s worth every penny and more, to look back on these photos years later and know we have captured them at their best.

    Photos are also at the heart of my new app, Sunlit. We’ll be shipping soon. Enter your email address on the site to be notified when it hits the App Store.

    → 10:03 AM, Jan 2
  • Killing or selling the product

    Nick Bradbury on selling Glassboard to Second Gear:

    “When finding a new owner was first discussed, I was very unsure of the idea. We wouldn’t be just handing over our software to someone else – we’d also be handing over our customers and their data. That was such a concern of mine that I suggested we simply kill the product.”

    A few times this year I’ve thought about whether I should sell Tweet Marker, but it usually comes back to a similar concern as what Nick says above. I wouldn’t feel comfortable selling it to most companies that would actually want to acquire it. So I’ve made a change or two, and we’ll see how 2014 goes.

    As for Glassboard, I’m excited to see what Justin Williams does with it. We use it for Core Intuition questions and feedback (invite code “coreint”), and I’m sure I’ll be using the 3.0 version around conferences next year.

    → 8:40 PM, Dec 20
  • The Blue Umbrella holiday calendar

    In the 90s I bought a LaserDisc player because it was the best way to get bonus features like director’s commentary and “making of” shorts on some of my favorite movies, before DVDs took off. But I’ve resisted getting a Blu-ray player, even though studios seem to have completely shut out DVDs from the behind-the-scenes material we’re used to. Luckily artists can still share their work directly via the web.

    I love this new site from Pixar artists, just in time for the holidays, on the making of their short film The Blue Umbrella. It’s presented as a holiday calendar with a new page revealed each day. From day 3:

    “The second test I had made after having just been to a concert of Sarah Jaffe. I fell in love with her music and voice and desperately wanted to pitch her an idea for a music video. But I needed a concept for it. While walking through the city and listing to her songs I suddenly got this idea for a music video where a whole city would sing one of her songs.”

    It’s one of those rare sites that is so wonderful that I make an exception to not following it if there’s no RSS feed. Added to my bookmarks.

    → 9:38 AM, Dec 20
  • Apple’s misunderstood ad

    Apple has produced some amazing ads over the years. 1984, introducing the original Mac; the Think Different campaign; and one of my favorite this year, about photos.

    Their new ad “Misunderstood” is also great. Federico Viticci has a rundown of the details and how brilliantly it unfolds. I first noticed the video via Neven Mrgan, who had this to say on App.net:

    “Apple’s new ad (‘Misunderstood’) is technically perfect: https://www.youtube.com/watch?v=ImlmVqH_5HM …but I have to say it doesn’t quite ring true to me. Kids use iPhones to shut out the family and hang out within their own social circle (and that’s ok).”

    He’s right. My daughters will likely escape to Instagram and various chat apps to connect with their friends through the holidays. But also I think ads like this work so well not because they represent reality, not because they’re true, but because we want them to be.

    → 12:32 AM, Dec 17
  • 200 MB free

    I wrote a draft of this post a couple weeks ago while on the road, then gave a summary on Core Intuition 115. But I still wanted to publish it and give a little more detail about my experience with cellular on the iPad.

    I ordered my retina iPad Mini with T-Mobile, hoping to take advantage of their free 200 MB of data per month. Since most of the time I’m at home on wi-fi, I figured the savings for all the months that I don’t need even 200 MB would more than offset the extra $130 cost of buying the cellular version of iPad.

    I had three primary use cases in mind: the occasional commute on the train to work at coffee shops downtown, when it’s nice to be connected but the train wi-fi doesn’t cut it; swim meets and other kid activities with very long downtime, again without need for a laptop but it might be nice to catch up on some writing or RSS feeds; and road trips, lonely stretches of the highway where I’m technically on vacation but still need to check in on email, chat, or App.net.

    I got home from the Apple Store, excitedly opened the box, restored my iPad from iCloud, tapped to set up a new T-Mobile plan, and… immediately wished I had chosen Verizon instead. Because the first thing I saw was an error that the web site wasn’t working. T-Mobile is smallest of the big carriers, and the error made me doubt that T-Mobile had the coverage or competence to make this work.

    I followed up the poor first impression by searching the internet for similar problems that other T-Mobile customers might have run into. Sure enough, it was common weeks earlier during the iPad Air rollout, and T-Mobile still hadn’t fixed it. The workaround was simply to disable wi-fi during setup, forcing the connection to go through T-Mobile’s network.

    A week later I gave the network its first real test on the road. Checking email, looking up maps and directions, writing, even a little streaming video for the kids.

    The coverage between major cities wasn’t good. The iPad Mini was often on Edge where my iPhone 4S on AT&T had 4G. It worked, but would frequently drop and reconnect. Sometimes I’d get lucky and find a spot of LTE for a little while, and it was a beautiful thing, while it lasted. Other times it was all but unusable.

    The good news is that “200 MB free” is not a marketing gimmick. No strings attached, no credit card required, and no phone plan needed; it really is free cell data. The cost is dealing with a company that wants desperately to “get” iOS but isn’t quite there, and poor connectivity between cities compared to AT&T. But after a rough start, I have no regrets. I’m typing this on my iPad along I-10 somewhere between Austin and Orlando, and that’s priceless indeed.

    → 9:46 AM, Dec 16
  • 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.

    → 2:56 PM, Dec 15
  • No way to live

    Two great blog posts yesterday from Brent Simmons that I think are related, though I read one early in the day and the other catching up on RSS feeds late at night. First, on quitting his job to work full-time on Vesper:

    “A year ago I was a designer for an enterprise app I didn’t care about — or even like in the least tiny bit — and which you’ve never seen or heard of. That’s no way to live.”

    It reminds me, of course, of the famous Steve Jobs quote:

    “I have looked in the mirror every morning and asked myself: ‘If today were the last day of my life, would I want to do what I am about to do today?’ And whenever the answer has been ‘No’ for too many days in a row, I know I need to change something.”

    And then, Brent says about Twitter:

    “The 140-character stream is where things not worth saying, and not worth reading, thrive. It’s where things actually worth saying get over-simplified and then get lost, if they get said at all.”

    In other words, do something you care about, write something lasting. The older I get, the more both of these resonate with me. And even though I haven’t posted to Twitter in over a year, I think I needed to read that post to focus back on this blog, where my writing should live.

    → 9:22 AM, Dec 13
  • Tweet Marker now paid-only

    If you’ve read my blog posts about Tweet Marker over the years, including this one when introducing a paid plan, you might hear a little indecision on the right path forward. I’ve run it more like a community service and less like a business, and admittedly the window for turning it into a profitable endeavor has slipped away. But I still want to make the service work well and improve it.

    After vacationing this week leading up to Thanksgiving, I finally realized I need to remove the support burden of giving out free access. Starting today, Tweet Marker will transition to a paid-only service. To make this easier, I’ve introduced a less expensive $25/month plan for smaller developers. (Previously the only choice was $75/month, which is now the top tier plan with unlimited active users.)

    This solves the problem of automating access to the API. Instead of having to manually fulfill API keys so that developers could try out Tweet Marker, which usually meant weeks or months of delay until I could get to it, by signing up online, developers get immediate access to the API without having to wait on me.

    In the short term, this change means that new apps must subscribe before using the API. In the long run, all existing apps should also transition to a paid plan. I haven’t set a hard deadline for existing apps yet, but will work with developers over the coming months to do so.

    You can learn more at tweetmarker.net/developers/.

    Update: To be clear, this post is only for developers. There’s a $1/month subscription for end users but it is optional.

    → 11:09 AM, Nov 29
  • David Smith’s apps at 5 years

    David Smith wrote last week on the 5-year anniversary of shipping his first iPhone app. I started following David’s work in the middle this story — after he had started the Developing Perspective podcast, but before he created Check the Weather and Feed Wrangler — so it’s especially great to see such a nice, reflective post that fills in the earlier apps. On launching and scaling Feed Wrangler:

    “In retrospect, it was one of the toughest challenges and most trying times of my career. The relentless dual-pronged attack of late nights and urgent work made it crushing physically and psychologically. Now that things have settled down, I can look back and be glad that I went through it. The kind of things you learn in that kind of crucible can’t be easily recreated.”

    I could read these kind of posts every day. Also last week, when Gus Mueller announced that he was selling VoodooPad, I remembered as I was talking with Daniel on Core Intuition 112 that Gus’s similar blog post from 2005 is still interesting and relevant today.

    → 11:18 AM, Nov 11
  • New tiers for Watermark

    My account in Watermark right now has 805,182 searchable tweets stored in it — tweets from everyone in my timeline, App.net posts, favorites, and of course my own tweets. When I launched the service, I wasn’t sure how long I’d be able to keep storing these. I initially promised 1-2 months, then upped it to 3 months, and then 6.

    Today I’m happy to announce that I have a more formal system in place for storage. The default $4/month plan will officially increase to 1 full year, storing every tweet from anyone in your timeline starting when you sign up. Your own tweets and favorites are kept forever.

    If 1 year isn’t long enough, there’s a new unlimited plan for $10/month. Every tweet or App.net post in the system for your account will be kept forever. After a year or two it becomes a really massive and interesting search database, tailored just to your account.

    The new tiered plans are live now for new accounts, and I’ll be rolling out a method for switching between plans for current customers soon. You can learn more about Watermark here.

    → 8:32 AM, Nov 7
  • Tweet Library 2.4

    The latest version of Tweet Library was approved by Apple last night. It features an updated design for iOS 7, a new app icon, and a bunch of bug fixes. I also dropped the price to $4.99, universal for both iPhone and iPad, and it’s a free upgrade for all existing customers.

    The App Store screenshots weren’t updated yet, so I put together some screenshots using Sunlit here.

    I’m pretty happy with how this release turned out, but there’s still more work to do. I’ll be following up this release with some additional improvements specifically for iOS 7 soon. You can grab version 2.4 from the App Store here.

    → 10:42 AM, Oct 31
  • Waiting for App.net's killer app

    Last week, Mat Honan wrote an article for Wired about App.net. It does a great job of capturing the history of App.net and why it’s different from Twitter. And it’s positive for all but the closing paragraph, which is either discouraging or a wake-up call, depending on your optimism. I recommend reading the whole thing.

    Here’s what Mat says about what’s missing:

    But there’s still something missing, that seems totally obvious: a game. App.net needs a Dots or a Candy Crush or a Words With Friends that plugs into its social sphere. Something that isn’t just useful, but fun. Something wonderful.

    App.net does need a hit, a new kind of app that doesn’t resemble Twitter. If that turns out to be a game, then great. But I don’t think it has to be. There are hundreds or maybe thousands of games in the App Store that are excellent but which never made it big. The success of App.net can’t be pinned to such an uphill battle.

    I do know one thing: the next great app for App.net will come from the App.net community, the developers who are passionate about the API’s potential, just as early developers like Iconfactory who took a risk on Twitter 6 years ago are still having an impact on that service today. The next great app will come from the developers who see App.net as a way to build new things.

    I’m working on an app like that. It uses the App.net API, but not the timeline. It takes pictures, but isn’t really a photo app. It integrates with Ohai, but isn’t another location check-in app. It renders beautiful maps throughout, but isn’t about navigation. Some of the features I’m most proud of in the app wouldn’t be the same without App.net.

    There’s no way to know what apps will resonate with the mainstream, and which will remain niche or failures. But to have any hope of success, you have to start. You might even have to take a risk on a new platform if you want to build something new.

    The promise of App.net is bigger than one type of app. App.net isn’t just a blank slate; it’s an amplifier. It’s waiting to power the next new idea and help it grow into something big.

    → 11:42 AM, Aug 26
  • Announcing the Tweet Marker developer plan

    I’m launching a new paid developer plan for Tweet Marker today. It’s $75/month and includes a new admin dashboard with stats on active users, hits, and more. I’ve also expanded the API to support syncing which direct messages have been read.

    Why charge developers now, after keeping the service free for 2 years? In part it’s because of something I learned from publishing the Core Intuition podcast with Daniel Jalkut. Because for the first few years of Core Intuition, Daniel and I had trouble getting episodes out very regularly; there was always something more important to work on. Adding sponsors pushed us to stick to a weekly schedule, and it’s worked out even better than I expected.

    I hope the same thing will happen for Tweet Marker. Although I’ve put countless hours into maintaining Tweet Marker (and plenty of money on hosting), I couldn’t justify the effort to create new APIs because it wasn’t a revenue-generating product. Now I can dedicate more time to it, even with a modest level of support from developers.

    Of course, I’m sensitive to the difficulty of transitioning from a free to paid product. That’s why I’m doing two things to make it easier for everyone.

    First, I won’t be turning off any existing developers’ access to the service. The last thing I’d want is to break third-party Twitter apps currently in use. But I do strongly encourage commercial app developers to subscribe if they have the means to.

    Second, I’ve created a referral program for app developers to let their customers know about the $1/month user subscription. This is a great way for developers to show their support even if they can’t subscribe to the developer plan. But even better, for developers who do subscribe, their account will be credited for each paid user they refer. This can effectively make the new developer plan free or significantly discounted.

    This is a big change for Tweet Marker, but an important one to make Tweet Marker strong. I’m excited to keep working on it, so that Twitter apps can work even better together. Sign in here to learn more about it.

    → 9:17 AM, Jul 23
  • Layered glass

    Nate Barham describes iOS 7 as layered glass:

    “The best developers will see iOS as an operational model, not a visual one. Imagine a Tapbots app that, instead of removing the cute ‘I’m a twitter robot in your phone!’ aesthetic, doubles down on it. Zooming metal plates, ratcheting gears not shadowed from without but appearing from within the device, only now it isn’t a robot-esque layer over the stock controls, the UI becomes the character that the developer envisions—even more so than it has ever done before.”

    I really like this post, but I’m not totally sold on the paragraph quoted above. Done right, it could be brilliant. But this is a very difficult thing to pull off, keeping the playful spirit of Tweetbot with a lighter, minimalist iOS 7 UI.

    And related, if you missed Christa Mrgan’s recent Macworld essay, she also covers how iOS 7 will use depth and motion to switch from “faux 3D to real 2.5D”, with an example from Adobe’s After Effects. Makes me wonder if designers will need new prototyping tools.

    → 11:28 AM, Jul 12
  • Working from coffee shops

    Ben Brooks makes several good arguments for working from coffee shops:

    “Coffee Shops started sprouting up everywhere in the U.S. because of massive demand for the coffee shop — not massive demand for coffee, mind you, but for the seats in the shops. This is evident with the way most shops are setup, but no more evidence needed than to look at the move of Starbucks providing free WiFi, instead of paid WiFi they started with.”

    I agree. There’s no sense in fighting this trend, and the coffee shops that do will largely fail. But also, as customers, we should be careful not to abuse the privilege. I try to follow these simple rules when working from a coffee shop:

    • I don’t take up more space than I need.

    • If there’s a line, I usually wait until after I place my order before claiming a chair.

    • For local small businesses especially, I leave a tip.

    • After a few hours, I order another coffee or wrap up and leave.

    Ben also points to a post from CJ Chilvers about libraries. I worked from my neighborhood library earlier this week — it’s a really nice, quiet environment — but the Austin libraries don’t allow you to bring any drinks inside yet, let alone have an on-site espresso machine. While traveling in Oregon a couple years ago, I remember the Eugene public library having a really nice cafe and I was immediately jealous.

    → 12:39 PM, Jul 10
  • Twitter&#039;s modern architecture

    I love this detailed write-up of the Twitter backend as it exists today. Sending a tweet to your followers uses a massive Redis cluster with a couple terabytes of RAM:

    “Let’s say you tweet and you have 20K followers. What the fanout daemon will do is look up the location of all 20K users inside the Redis cluster. Then it will start inserting the Tweet ID of the tweet into all those lists throughout the Redis cluster. So for every write of a tweet as many as 20K inserts are occurring across the Redis cluster.”

    A listener of Core Intuition asked me today if I had second thoughts about no longer using Twitter, especially since I still maintain a Twitter app. We’ll discuss this on a future episode, but the short answer is: no, I don’t regret it. I have a huge amount of respect for what Twitter has built at a technical level, and for the opportunities it gives people to communicate. I just don’t like their attitude toward developers.

    → 9:25 AM, Jul 9
  • Doug Engelbart and the pace of change

    Dave Winer writes about Doug Engelbart and the pace of changing computing systems:

    “If you want to get the most out of great developers like Engelbart, who are productive well into their 80s, you have to stop digging up the streets, moving the goalposts, bombing the cities, starting over just for the sake of starting over.”

    While there’s certainly a time to burn the forest for new growth and opportunity, I have little patience for those developers who spend more time breaking old code than creating new value. Maybe it’s a sign I’m getting old — that I’ve lost my taste for innovation at a technical low level — but I don’t look forward to rewriting all my working code again and again.

    Very little has changed in this regard since I wrote a blog post about deprecation in 2010, which (fittingly) also linked to Dave Winer.

    → 1:05 PM, Jul 8
  • Photo filters

    Rene Ritchie has a nice comparison of black and white filters in iOS 7 and third-party apps:

    “To create the comparison, I took the screenshots posted on Apple.com, isolated the unfiltered image, loaded it into the other apps, applied their filters, and then took screenshots of the resulting images.”

    I’ve been working on an iOS 7 app that’s partly about photos, though not actually a camera app, and I always thought it’d benefit from a single great black and white filter. Not as one of a dozen filters, but as the only filter in the app — something strikingly different that would be noticed. iOS 7’s built-in filters and apps like Camera Noir have made me reconsider. Why reinvent the wheel when so much good work is being done on filters by other developers?

    Related, the excellent mobile photo workflow by Rands.

    → 2:14 PM, Jul 6
  • Multiplane

    “We spend a lot of time on a few great things.” — Designed by Apple in California

    In 1940, Ub Iwerks, the animator behind Walt Disney’s first Mickey Mouse shorts, came back to the Disney studios after a 10-year absence. Ub had famously produced hundreds of drawings alone each day for one of those first Mickey Mouse shorts, but Ub’s return to Disney would also be remembered for his contribution to the technical side of film production, with advances in cameras and special effects. In an industry with extreme specialization — you either did backgrounds, or animation, or ink-and-paint — Ub’s talents bridged both the artistic and technical.

    One of Ub’s inventions while away from Disney was called the multiplane camera. Perfected by others leading up to Snow White, in a massive camera stand over 10 feet tall, the multiplane’s innovation was to allow a background to be split into levels. Foreground trees might be painted on the glass of the first level, then the characters sat underneath that, and then farther back layers for a building, with others behind that for hills and sky.

    To provide a sense of depth, camera operators could vary the distance between each plane. And movement for each level could be synchronized at different speeds, giving it a beautiful parallax effect. Distant background levels moved more slowly and were naturally blurred and out of focus.

    80 years after Ub’s invention, the multiplane is alive in iOS 7. Previous versions of iOS were built on a single plane with raised and textured areas on that surface, like a topographical map except with buttons instead of mountains. iOS 7 is instead designed with multiple flat layers. Each level is strikingly flat, but by layering two or three, spaced apart, Apple has achieved an overall sense of depth.

    It’s a return to basics. Simple things can remain simple, readable. When clarity is needed, everything goes flat. But it’s a framework that allows for subtle motion and depth without changing what works about the new, content-first flat design. iOS 7’s control center blurs the layer below. The home screen background sits deeper too, as if only the app icons are touching the screen. Photos scroll under the navigation bar.

    Each plane is painted flat as if on glass. There can be no text drop shadows, no textures, without ruining the effect. And the result of this strict metaphor is equally valuable: there are no drop shadows to distract or obscure an app’s real content.

    Disney’s multiplane camera, first in a dedicated rig and then recreated in software, lasted for decades, until the era of 3D computer animation. iOS 7’s new look won’t last that long, but the core concepts should carry Apple for years. I really like where they’re headed.

    → 4:22 PM, Jun 17
  • Searchpath open source and themes

    I have big news for Searchpath today. The client-side portion of Searchpath is now officially open source and available on GitHub. While I do think one of the innovations of Searchpath is the JavaScript, CSS, and HTML, it’s really the simplicity of setting up Searchpath that makes it work. A single line of JavaScript adds a search box and indexes your site, and the crawling and storage will of course remain private on my servers.

    Now that part of the service is on GitHub, customers who wanted to extend the JavaScript can have a clear path for doing that. Not only is it easier to host the JavaScript yourself, but I’m accepting pull requests to integrate your improvements back into the core product for everyone to use. Special thanks to Brett Terpstra for already submitting some tweaks.

    I’m also very excited to announce a simple themes structure for Searchpath. Because in addition to the JavaScript, the second part of customizing Searchpath is the design. While I document CSS class names you can use to override styles, I wanted to make it even easier to design completely new user interfaces and share them with others.

    On GitHub you’ll find a “themes” folder. Any sub-folder here will be routinely synced to the main Seachpath server, where you can access it by adding “theme=folder_name” to the JavaScript include URL. To create your own theme, just add a sub-folder with your own custom theme name and submit a pull request. When the theme is added to Searchpath, all your CSS and images will be hosted by my servers. (The first person to use a specific name will effectively become the owner of it, and I’ll only accept pull requests from that person.)

    Want to learn more about Searchpath? You can try it out here for free, or sign up for $8/month.

    → 5:44 PM, Jun 3
  • The $229, camera-less iPod Touch

    Ahead of WWDC, Apple dropped the 4th-generation iPod Touch from their lineup and replaced it with a slimmed down $229 iPod Touch. To achieve this lower price, they made a big sacrifice: no rear-facing camera.

    Most surprising to me is that this change comes just weeks after the iPhone’s Photos Every Day commercial, one of the most beautiful ad campaigns Apple has ever run. Removing the camera from the iPod Touch transforms it from a peer of the iPhone, capable of the same kind of photos and videos, to nothing more than a game and internet device. It is the only shipping iOS device that can’t be used as a traditional camera.

    As we know, people frequently use even the iPad as a camera, holding it up to take pictures at concerts, their kid’s basketball game, and at any family gathering. When all you have is a cheap phone, you absolutely want to use the iPad as a camera, because it means you can sync and share the photos.

    My daughters have the older, smaller-screen iPod Touch and frequently use the camera with friends. Instagram, in fact, has become very popular with teens and pre-teens. Can you imagine how great it would be to have grown up in the 1980s, for example, with the ability to take essentially unlimited photos? Angry Birds may have taken the mobile spotlight when iOS went mainstream, but in a dozen years when these games are just a fun memory, we’ll still have some of the JPEGs, first-hand accounts of life in middle school.

    I’m sure dropping the rear camera was a very tough decision for Apple, especially thinking about wanting more memory and speed to run iOS 7. But I’d rather have no FaceTime, slower CPU, less memory, and only 8 GB of storage any day of the week if it meant I could take photos. The rear camera is priceless.

    → 9:09 AM, May 30
  • 5 years of Core Int

    Today is the 5th anniversary of Core Intuition. I’m really proud of what Daniel and I have been able to do with it. In our first episode, we set up a basic structure for the show — the length, segments, and theme music — and we’ve stuck to it for 91 episodes.

    About the only significant change was when we added sponsors last year, allowing us to take the podcast weekly. Since then we’ve actually recorded the bulk of the episodes. Sponsorships pretty easily exceeded my expectations, and I’m very thankful to all the small and large companies alike who have helped support the show.

    Today’s episode covers my recent server move to Linode, which I’ll write more about here later, and a question about the mix of developers at WWDC. Maybe it’s fitting that our first episode was also about WWDC. I like that every year, when the podcast gets a little older, the timing works out such that we’ll likely be revisiting similar, pre-conference topics. Because these couple weeks, leading up to and including WWDC, really define the best part of being a Mac or iOS developer.

    → 11:46 PM, May 29
  • Approaching a year with App.net

    App.net started 10 months ago as a blog post. I thought it would be interesting to look back on a few things I’ve written on my blog about the service as it has grown.

    August 12, 2012, on the potential:

    “In less than a month, they went from a mission statement video that seemed just a step away from vaporware, to following through on an API spec and then alpha version web site. They delivered.”

    August 28, 2012, when I launched Watermark with App.net support:

    “You can now add an App.net account and it will download any posts from your friends, making them available for search. Watermark is already storing tens of millions of tweets, and I’m excited to start adding App.net posts to that archive as well.”

    January 11, 2013, with how and why I stopped posting to Twitter:

    “Over three months ago I stopped using Twitter. I wanted to make a statement — perhaps in an overly-dramatic way — that the developer-hostile environment that Twitter had evolved into wasn’t something I could support anymore.”

    January 21, 2013, reacting to one use of the global feed:

    “And that’s the really good news: if what makes ADN special is the people, then it’s because all of the people have something in common. They didn’t chose ADN by accident, or because it was the default choice. They chose it because they wanted something better.”

    March 25, 2013, where I review 3 iPhone apps:

    “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.”

    March 28, 2013, about adopting the file storage API:

    “There’s a lot of activity around App.net file storage right now. I think we’re going to see some great things built with this.”

    And of course I’ve said much more about this on the Core Intuition podcast. Episodes 50, 65 and 82 are probably good places to start.

    If you’ve been thinking about giving App.net a try, you can use this invite link to sign up for free. There’s also a great new iOS app that lets discover apps and sign up directly on the iPhone.

    → 8:55 AM, May 10
  • Tweet Library 2.3

    Tweet Library 2.3 shipped last week, and I just submitted an update last night to fix a few crashing bugs and other minor problems with the release. I’m pretty happy with this version. In addition to finally switching to Twitter’s v1.1 API — easier said than done; I used several API calls that were changed or completely went away — this release added better gestures, a month filter to the iPhone version, and an updated UI with a lighter, clearer design.

    You can see the full changes in the release notes, or listen to episode 88 of Core Intuition. Daniel and I discussed the expedited review process and new versions. Tweet Library 2.3 is available in the App Store for $7.99 as a universal app for both iPhone and iPad.

    → 8:19 AM, May 9
  • Searchpath tweaks

    I rolled out a few improvements to Searchpath last week. The popover now “fades in” when first shown, using a CSS animation. Scrolling in the background page content is also now disabled while the popover is shown, for WebKit browsers. This prevents the page from bouncing around as you scroll to the end of the search results. And the mobile interface is better, finally including a close link for when you want to get back to the web site.

    I’ve also fixed an issue with how often Searchpath looks for new posts. It should be much faster to pick up on changes now, especially for blogs that update every day.

    You can try Searchpath for free or subscribe for just $8/month.

    → 8:31 AM, Apr 25
  • Inside product hype

    Sometimes the usefulness of a product speaks for itself. Other times the difference between success and failure comes down to marketing. Most of us can get better at crafting a story around why our apps are important.

    And then, there are the folks who just exude hype. I love this quote from Jason Calacanis, talking up his new company Inside.com:

    “It’s going to be somewhere between a hit and groundbreaking.”

    Sure, it’s over the top. This style wouldn’t work if I said it. But the certainty — that the product’s success is guaranteed, and now we’re just haggling over how big a success it will be — does make me want to know more about what they’re building.

    → 11:01 AM, Apr 24
  • Upcoming.org archive

    Andy Baio reacts to Upcoming.org closing down, rightfully worried that the archive will not be preserved:

    “What really upsets me is that the archived events will soon be taken offline, and with no way to back it up. Ten years of history will be gone in 11 days. Good URLs never die, and I’m frustrated that every link to Upcoming will soon 404.”

    These kind of archive purges, whether through negligence or purpose, seem to be coming at an increasing rate. Last year it was Digg. Now Upcoming.org. Even Formspring is shutting down and deleting all 4 billion posts. And I’m sure there were a dozen lesser-known companies in between.

    Luckily there’s a new effort to download the Upcoming archive with this GitHub project. It makes it easier to spin up multiple Heroku instances to get around Yahoo’s IP address rate limiting. Andy has an update on this project and the folks behind it: Archive Team. They’re making good progress on Upcoming, as well as Posterous and Formspring.

    → 1:28 PM, Apr 23
  • Animation roundup, Richard Williams to Brenda Chapman

    Richard Williams turned 80 years old last month. Although his body of work is extensive, including Roger Rabbit and the unfinished masterpiece The Thief and the Cobbler, I think he will be most remembered many decades from now for the extraordinary book, The Animator’s Survival Kit.

    I referenced this book all the time when I was working on a little hand-drawn short film several years ago. Now an iPad version of the book is available. Floyd Bishop, writing for Animation Scoop:

    “The timing of the animation examples in the book have always been hard for me to get my head around. This app shows the drawings come to life through animation. You can loop playback or scrub through the animation. I found this feature to be the most useful thing about the app.”

    Nowadays, I’m too busy with software side projects to have time for animation as a hobby, but as a huge fan I’ll occasionally catch up on news and all the beautiful work artists are doing.

    A few of my favorite short films over the last year:

    • Chipotle’s stop-motion video. I was really happy to see it run during the Grammys last year. When I had showed my kids the video on YouTube earlier, they immediately fell in love with it. Kudos to Chipotle for giving it some high-profile national airtime. And don’t miss the amazing Flickr set of the production.

    • Disney’s Paperman. You’ve probably seen this by now, and behind-the-scenes similar to this profile from Fast Company. Disney hadn’t innovated much in combining 2D and 3D since deep canvas on Tarzan and the character work on Treasure Planet, both over 10 years ago. It’s great to see them back on the cutting edge.

    • Mickey Mouse in Croissant de Triomphe, supposedly the first in a series of new Mickey shorts. I would’ve preferred this to be more in the 1930s style, but this is still a lot of fun, and captures the spirit of the old Mickey shorts well.

    And finally, I was really excited that Disney’s Pixar won an oscar, and to see the reaction from director Brenda Chapman. Circling back to Richard Williams, she actually worked early in her career on Roger Rabbit, and then as a story artist at Disney and director on Dreamworks’s Prince of Egypt.

    Brenda said on her blog, about the Oscar win:

    “And when I was fretting over having just one guest ticket, my husband, Kevin Lima, insisted that I take our daughter, Emma, with me. ‘You should share this with her,’ he said ‘it’s a mother and daughter night!’ Having Emma with me that night not only let me share with her one of the most wonderful nights of my life, it allowed me to tell the world how very much she means to me.”

    So incredibly well-deserved. Animation is a painstakingly slow art form. The work of all these artists, from Richard Williams to Brenda Chapman, isn’t a 3-month mad dash to ship the next gimmick app to the App Store; it’s work that is measured across decades. Taken as a whole, I view it as an inspirational story of perseverance — a reminder that creating something great takes time.

    → 2:19 PM, Apr 18
  • Macworld guest essays

    There were a couple special essays on Macworld recently — guest posts from the developer community. First Brent Simmons, who argues that Microsoft isn’t the enemy anymore:

    “The threat to Macintosh was not that Windows machines were cheaper, or that people had bad taste—the biggest reason was that they worked with everything. That was why Apple asked Microsoft in 1997 to continue developing Office for Macs, so we could at least say you could run Word and Excel on Macs. […] But, these days, everything works with everything.”

    And followed by Cabel Sasser, with a similar theme:

    “I sometimes very awkwardly find myself rooting for Microsoft, Nokia—anybody—to put up a good fight and keep that fire burning under Apple’s collective behind. The smartest, most incredible people work in Cupertino, and their capabilities are boundless and their drive is endless, but sometimes—especially as a developer—you get the feeling that Apple doesn’t really need you, and will do just fine without you, thank you very much. I want Apple to need us.”

    Both great essays.

    → 10:18 AM, Apr 15
  • The legacy of software as art

    This post from Andy Brice, via Simon Wolf on ADN, makes a nice complement to my recent post on software as an art form:

    “My grandfather worked most of his life as a stonemason. Much of that time was spent restoring the ruin of a Bishop’s palace in Sherborne. His work is still visible long after his death. The work of the stonemasons who built the palace is still visible after more than 8 centuries. How long after you stop programming is any of your work going to last?”

    Not long, of course, and I’m not sure this is solvable. The best we can do is make sure our software runs on systems as long as possible, and to preserve the rest in screenshots and videos.

    There are echoes of this theme in my post on permanence last year too, but for writing:

    “Nothing lasts on the internet. I could write on my weblog for years and the next day get hit by a bus. The domain expires, the posts are lost, and it doesn’t matter if I had 10 readers or 10,000; it’s as if it never happened.”

    As much as I dwell on preservation, my actual code and apps and the work I do in the software world might not be that significant. Instead, software can be the tool to make and preserve the important stuff: the writing, art, and discussions online that will matter later. Although I’d love to preserve the software as well, there is so much work to do just to keep the blogs and tweets. I’m content with making that easier.

    Dave Winer also gives a nod to what software as art means, in an otherwise unrelated post on the press for Little Outliner, again framing it as what we’re building for other people to use:

    “I think software is like other creative arts — music, architecture, cooking, even design of everyday things like bikes and clothes. It takes a relentless focus on the act of using, and what kind of effect you want to create.”

    Joe Fiorini takes it even further:

    “Perhaps our legacy is not in the software we build but the lives we touch, even in small ways, through the problems our programs solve.”

    Like Andy Brice’s use of the word ephemeral above, Joe’s statement is difficult to measure. There’s no one thing we can point to years later. We just have to create something worthwhile and trust that it’s making someone’s life better, and that maybe that one customer will leave a mark on the world that survives long after our apps no longer run.

    → 8:19 AM, Apr 12
  • Google Fiber in Austin

    Google Fiber is coming to Austin next year, with crazy-fast 1 Gbps speeds. It was all over the local news in Austin yesterday.

    Although I’ve been trying to slowly move off of Google services, this would probably be too good a deal to pass up. However, it seems very unlikely that my neighborhood — which is in the city limits, but pretty far away from central Austin — will get fiber anytime soon. Definitely not in the first year. From the Statesman’s FAQ:

    “The coverage is limited to the city of Austin, although Google did not get specific about geographic boundaries. Representatives said they don’t have plans to add Round Rock, Kyle or San Antonio as part of this roll-out. In addition to homes, Google will also provide Gigabit to about 100 public organizations that the city of Austin has helped choose.”

    We don’t even yet have Verizon FiOS in our neighborhood, and that has been rolling out in the Austin area for a while now. Time Warner Cable is still the dominant provider.

    Another interesting angle to the announcement: each Google Fiber customer also gets 1 terabyte of Google Drive storage. This sounded like a fantastic deal until I checked the normal Google Drive plans. They already have a 1 TB plan at $50/month, with more expensive options all the way up to 16 TB. (Dropbox stops at 500 GB unless you jump to their business-level “teams” plan.)

    Maybe that is the first killer app for fiber. Not syncing files, as Dropbox pioneered, but cloud storage that is fast enough to be more like an extension of your local hard drive than a mirror of it. Something like Apple’s Fusion Drive, but where the slow hard drive is the cloud, and the SSD is just a local cache.

    → 5:41 PM, Apr 10
  • Design in grayscale

    Adam Keys has several tips for programmers, to make our web sites look better by keeping things simple. I often just use grayscale, too:

    “Most important: design in greyscale. Color is hard and can lead to tinkering. My goal is to get in and out of the front-end bits quickly, so tinkering is the enemy. Greyscale is one dimensional, greatly simplifying matters. Give important information higher contrast and less important information or ‘chrome’ less contrast. Now you’re done thinking about color.”

    These days I also start everything with Bootstrap, which adds great defaults for layout, buttons, and text. It makes everything looks better, right away. It’s not a replacement for a designer, but it does save hours (or days) of getting the basics up and running.

    → 8:16 AM, Apr 9
  • RapidWeaver stack for Searchpath

    RapidWeaver is a popular web site building app from Realmac Software. It’s got a great Mac UI, a bunch of nice themes, and a strong community of developers and plug-ins. One of those plug-ins is Stacks, which is so useful that it has its own set of third-party components.

    Joe Workman has released a stack that makes adding and customizing Searchpath on your RapidWeaver site easy:

    “A nice custom site search is difficult to implement. Most website simply piggyback on search engines such as Google or DuckDuckGo. However, Searchpath.io came on to the scene earlier this year and I think its pretty cool. It’s a freemium search service that lets you implement fast and simple search directly onto your website.”

    Check out the stack here as a free download.

    → 7:48 PM, Apr 8
  • Searching abandoned apps

    Ben Lachman has some good suggestions after my post and David Smith’s on what to do with abandoned apps, saying that apps should be more clearly labelled as “abandoned”. Which device you’re using could also have an impact on search results:

    “Search results could be weighted by the device you are using quite heavily. Just like how on iPhone you don’t see iPad-only apps when searching the app store; on iPhone 5 you should be very unlikely to see apps that only support 3.5-inch screens.”

    Makes sense to me. Also check out his comment at the end, that kids these days may have a very difficult time revisiting the classic apps from today, 20 years from now.

    → 12:34 PM, Apr 8
  • CocoaConf and Core Intuition 83

    We just posted episode 83 of Core Intuition, with a preview of my trip up to Dallas for CocoaConf this weekend, and a discussion of Safari extensions, WWDC videos, Michael Jurewitz’s blog posts, his return to Apple, and more.

    It looks like you can still attend CocoaConf if you grab a ticket today before they close registration. Check out the web site for details on the Dallas event.

    → 9:36 AM, Apr 4
  • iPad 1 release day

    Shawn Blanc looks back to a post 3 years ago about his experience buying and using the first iPad. From waiting in line:

    “7:32 am: A young guy and his mom get in line behind us. The guy is wearing a ‘WWSJD’ t-shirt. I like to think that I’m less nerdy than he is, but the fact is I am ahead of him in line.”

    I wish I had written so many detailed notes. I did, however, find an old draft blog post with my current list of apps from back then. Here’s what I was running on my first iPad in early April, 2010:

    • Twitterrific.

    • NetNewsWire.

    • Instapaper.

    • Freeform.

    • Sketchbook Pro.

    • Pages.

    • OmniGraffle.

    And free apps:

    • AIM.

    • iBooks.

    • Kindle.

    • Netflix.

    • New York Times Editors’ Choice.

    And a couple games, like Flight Control HD.

    Of those paid apps, I’m only still routinely using Instapaper today, and — even though I’m not on Twitter — occasionally Twitterrific. NetNewsWire for iPad in particular held up very well; I used it every day for probably 2 years after it had stopped being updated.

    Most of the apps that were released for the iPad’s debut were more mature than apps from the iPhone OS 2.0 release and first App Store. By the time the iPad came along, developers seemed to have gotten the hang of the platform.

    → 11:37 PM, Apr 3
  • Jurewitz on features, pricing

    Michael Jurewitz wrote a great post last week on minimum viable products:

    “As you look at your products and how you make them remember these key points. You don’t need all the features under the sun. You don’t need technical excellence (assuming you also avoid technical debt). You need to solve a worthwhile problem in a delightful, thoughtful, and simple way.”

    What he’s saying is it’s okay to be limited, but make that limited part totally polished. Cutting back features doesn’t mean you also cut back on quality. It reminds me of the quote from 37signals: “build half a product, not a half-ass product”.

    This is good advice that I need to take to heart. I don’t have much problem shipping. But my apps often have some rough edges at 1.0.

    Also don’t miss Jurewitz’s great 5-part series on App Store pricing. I’m linking to Michael Tsai’s summary here, since it provides nice quotes and links to each part in the series. I saw the talk that these blog posts were based on twice, at Çingleton and NSConference, and this has to be the best translation of a conference session into blog form I’ve ever seen. Not to be missed.

    → 11:34 AM, Apr 2
  • More blogging, week wrap-up

    My blog posts have always come in waves, ever since I started this blog 11 years ago. I’ll post for a few days straight, then nothing for weeks. And every couple years, I’ll declare that I’m determined to fix this broken pattern, and I’ll start blogging again nearly every day. It doesn’t last.

    What I finally realized is that I have to be serious about posting every single day. If even one day slips by, the whole thing breaks down and I’ll fall back into ignoring it, because there’s the added friction of wanting to post something “great” to make up for the missed days.

    If you subscribe to the RSS feed, you’ll notice that I’ve now been posting once or twice every day for about a week and a half. I don’t link to all of these posts from App.net, so here’s the recent ones you might have missed:

    App Store old app maintenance:

    “But if apps are an art form, an important part of our culture, then it shouldn’t require so much work to make sure they don’t disappear forever, so quickly.”

    Smartphone religion:

    “I got into the Mac in the 1990s during the lead-up to Apple’s certain doom, so I spent quite a lot of time arguing with Windows users.”

    Moving off SendGrid:

    “So it’s a good time to move away, to a company that I can pick based on merits and attitude and not just because it was the default choice.”

    No new Apple products yet:

    “Apple’s aggressive releases add even more anxiety about updating apps to keep up with the latest APIs and hardware.”

    Start small:

    “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.”

    Three ADN clients for iPhone:

    “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.”

    Little Outliner:

    “Yesterday Dave Winer and Kyle Shank launched Little Outliner, an impressive JavaScript outliner that uses HTML5 local storage.”

    Apple and the impression of being small:

    “But too many voices also creates noise, and noise makes simple things messy, confusing. Apple still gives the impression of being smaller than they really are because our view of them is heavily filtered.”

    iOS text cursor swipe:

    “While I was writing my review of ADN clients, I wondered aloud if Riposte or Felix or some other app entirely was the first to support swiping to move the text cursor. It seems a nice enough trick that someone should get credit for trying it first.”

    iCloud sync narrative:

    “Pretty sure we hit a tipping point in the iCloud just doesn’t work narrative this week. Whether that judgement is fair or not, Apple should drop everything to focus on making iCloud totally robust in time for WWDC.”

    Climber for ADN:

    “Toward the end of this week’s Core Intuition, we talked a little about the App.net file storage API and mentioned the new iPhone app Climber.”

    Register a domain name:

    “Using Facebook or Twitter or LinkedIn exclusively for your content is like an artist who picks their own colors but still stays within the lines of a paint-by-numbers kit. A domain name is your own canvas.”

    Hotline servers:

    “This article from Macworld is important because it will serve as a sort of Hotline software ‘about page’ for future internet searchers.”

    Searchpath invoices and automation:

    “Then life and other work got in the way, and weeks later I still hadn’t shipped it. I wanted it to be completely perfect and automated, so that I never had to think about it.”

    I also got tired of the non-retina (and outdated tag-line) of the old header. I’ve started over with a plain blog design, finally dropping HTML tables for layout (!) in favor of Bootstrap CSS. A more complete new design will follow later.

    → 8:40 AM, Apr 1
  • Searchpath invoices and automation

    Here’s a great post from Derek Sivers on not automating everything. Instead, sometimes it’s better to just hire a real person to do some extra work:

    “It’s fun for techies to try to find the tech solution to everything, but don’t forget that even a tiny touch from a real person can be the best algorithm, and a massive business maximizer.”

    I hit a brick wall related to this with Searchpath. I launched a little early, and hadn’t yet finished the invoicing system so that customers automatically got an email receipt for each charge. Then life and other work got in the way, and weeks later I still hadn’t shipped it. I wanted it to be completely perfect and automated, so that I never had to think about it.

    But I did think about it. I thought about what would happen if I sent a receipt with the wrong dollar amount, or the wrong product name, or the wrong wording so that customers got confused enough to cancel their subscription.

    So I built half a system first. I’m manually clicking a button to send out receipts, and in the process reviewing them to make sure that customers are being invoiced correctly. It won’t scale much longer — in fact, many receipts were already sent late — but for now it gets the ball moving forward again, and brings some confidence to finish the missing pieces.

    → 8:35 AM, Mar 31
  • Hotline servers

    Benj Edwards writes a Hotline retrospective for Macworld:

    “The Hotline system consists of three parts: servers, clients, and trackers. Anyone with an Internet connection can host a Hotline server for free; it’s software that provides for multi-user chat, message boards, and file transfers. Clients are special programs users run to connect to Hotline servers. And trackers are special servers that exist to facilitate connections between clients and servers; they keep an active list of available Hotline servers that wish to be listed on the tracker.”

    I remember Hotline. I was building web sites by then, but it still had obvious appeal reminiscent of the earlier BBS and AOL/eWorld days. This article from Macworld is important because it will serve as a sort of Hotline software “about page” for future internet searchers. For many apps that were popular in the 1990s, it’s now very difficult to find an online record that they even existed.

    → 9:33 AM, Mar 30
  • Register a domain name

    I like this idea from Dan Gillmor, encouraging each of his students to register a domain name:

    “Of course, the students and most of their parents have a presence on Facebook, LinkedIn, Twitter, Google+, Tumblr, Flickr and all sorts of other places. The value of conversation and sharing in general is enormous, and these services offer great convenience. But to cede our online presences – in a way, our very identities – to these entities strikes me as a mistake.”

    Using Facebook or Twitter or LinkedIn exclusively for your content is like an artist who picks their own colors but still stays within the lines of a paint-by-numbers kit. A domain name is your own canvas. The simple act of saying “I own this” makes all the difference for the scope of what you can create.

    → 12:09 PM, Mar 29
  • Climber for ADN

    Toward the end of this week’s Core Intuition, we talked a little about the App.net file storage API and mentioned the new iPhone app Climber. The developer, Rob Brambley, [has posted a nice write-up](blog.alwaysallthetime.com/climber-f…

    ) of how the app was built and shipped in less than a month:

    “All Climber posts are more or less like any other post to App.net, but with a link to our website where the video can be watched. Our video pages simply rely on App.net post data to retrieve links to video files contained in personal App.net file storage. If a user chooses to delete their App.net post, or even just delete the video file in their file storage, then it can no longer be viewed on our website.”

    This separation between the app and the hosting is a great advantage over services like Vine or Instagram. If the Climber app goes away or their web site is down, the videos are just .mp4 files on App.net. You can download them to your computer with any App.net file browsing client.

    There’s a lot of activity around App.net file storage right now. I think we’re going to see some great things built with this.

    → 10:15 PM, Mar 28
  • iCloud sync narrative

    Rich Siegel joins the discussion of iCloud syncing problems, adding the most technically comprehensive essay I’ve seen yet:

    “Corrupted baselines are another common obstacle. While attempting to deploy iCloud sync on Mac OS X 10.7, we ran into a situation in which the baseline (a reference copy of the synchronization data) would become corrupted in various easily encountered situations. There is no recovery from a corrupted baseline, short of digging in to the innards of your local iCloud storage and scraping everything out, and there is no visible indication that corruption has occurred — syncing simply stops.”

    I learned a lot by reading this. Also check out the post from Brent Simmons on why controlling your own web services is so important.

    Pretty sure we hit a tipping point in the iCloud just doesn’t work narrative this week. Whether that judgement is fair or not, Apple should drop everything to focus on making iCloud totally robust in time for WWDC. (And I say that even though I use neither Core Data nor iCloud, and probably never will.)

    → 9:41 AM, Mar 28
  • iOS text cursor swipe

    While I was writing my review of ADN clients, I wondered aloud if Riposte or Felix or some other app entirely was the first to support swiping to move the text cursor. It seems a nice enough trick that someone should get credit for trying it first.

    Here’s my brief description of how this gesture works from the Felix part of the blog post:

    “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.”

    It turns out that many apps support it: Diet Coda, Pages, Just Type, and TextCrafter are some that people mentioned. There are also hacks from the jailbreak community to make it work system wide.

    And farther back, there’s the fantastic YouTube concept video of what text selection using drags on the keyboard might look like. I’d still love to see that implemented by Apple.

    → 11:38 AM, Mar 27
  • Apple and the impression of being small

    Jonathan “Wolf” Rentzsch at the C4 conference in 2007 defined indie as simply “non-large”. This covers not just the small, one- and two-person companies, but also the bigger software development shops like Realmac, Smile, Panic, and Omni that have 10-40 employees but still feel independent. They’re all part of the community. Panic may have a bunch of employees now but it appears from the outside like it’s not that much more complex of a company than if Cabel Sasser, Steven Frank, and their friends were building great apps out of someone’s apartment.

    Small is personable, nimble, and bright. Small makes customers feel like a company is not that different than the rest of us.

    One of the magic tricks that Apple has pulled off is somehow maintaining a similar feel even as they have grown to be the world’s largest tech company. They’re bigger in revenue than Microsoft, Google, Oracle, and a dozen other software companies that have a much more obvious over-sized, bureaucratic feel. But you walk into an Apple Store to chat with an employee at the Genius Bar, or browse apple.com looking for a product, and it’s almost as if nothing has changed in the last decade. The complexity of the supply chain, of too many products, of layers of management — it’s all hidden.

    Why aren’t Apple employees allowed to blog? Part of it is secrecy, sure. But too many voices also creates noise, and noise makes simple things messy, confusing. Apple still gives the impression of being smaller than they really are because our view of them is heavily filtered. What we see is the beautiful tip of a massive iceberg.

    And maybe that’s why pundits keep waiting for Apple to fail. Because the company doesn’t look that different, the doubters just can’t comprehend how big and unstoppable Apple has become under the surface.

    → 5:18 PM, Mar 26
  • Little Outliner

    Yesterday Dave Winer and Kyle Shank launched Little Outliner, an impressive JavaScript outliner that uses HTML5 local storage. It’s also completely hosted on S3:

    “Thanks to the W3C and to Werner Vogels (for persisting in getting the ability to access the root of a domain from an S3 bucket). As a result, we get unlimited scaling with zero investment. Consider this an endorsement for both innovations.”

    I used Frontier a lot back in the earlier days of the web, so I’m always looking out for what Dave does next. It’ll be fun to see what they build on top of this.

    → 8:27 AM, Mar 26
  • 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.

    → 1: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.

    → 10:27 PM, Mar 24
  • No new Apple products yet

    Don McAllister is worried that Apple hasn’t announced anything new this year:

    “I don’t know about you, but I’m starting to get a bit twitchy about the lack of product announcements from Apple. […] It’s usually quiet after Christmas, but by this time last year we’d already had the iPad 3 launch and the announcement of Mountain Lion.”

    A few replies on App.net to Don’s post also caught my eye. Simon Wolf said:

    “As a developer, a bit of breathing space between iOS and OS X versions is actually rather nice.”

    Like many folks, I have a mountain of work to do and I always seem perpetually behind schedule. Apple’s aggressive releases add even more anxiety about updating apps to keep up with the latest APIs and hardware. I would be perfectly happy with Mac OS X and iOS releases on alternating years, and new hardware either when it’s ready or at predictable event dates like WWDC.

    → 12:18 AM, Mar 24
  • Moving off SendGrid

    I’m not going to comment specifically on the substance of the SendGrid and PlayHaven mess because it’s complicated and completely out of hand already. It’s a pretty sad situation for everyone.

    But as it turns out, I am a SendGrid customer. I use the free plan to send email in a few of my web apps. I started using SendGrid because they offered it as a simple Heroku add-on, not because of any particular research or opinion about what they were doing well.

    So it’s a good time to move away, to a company that I can pick based on merits and attitude and not just because it was the default choice. I’ve long been a Beanstalk customer; I use it for all my private Subversion and Git repositories. The makers of Beanstalk, Wildbit, have a second product similar to SendGrid that looks like what I need: Postmark.

    Wildbit also had a good blog post yesterday from some of the aftermath of the controversy as it relates to SendGrid (and Postmark) competitors:

    “We’ve been doing this a long time, 13 years as a company, 8 years since launching our first product. There’s this rule, this gentleman’s agreement I thought existed. When someone you compete against is suffering, especially as a result of any kind of infrastructure issues, shut up and keep your head down. You do not use this situation to gain a few customers eager to jump ship.”

    I like what I see in Postmark. I’ve set up an account and should have my apps switched over to Postmark this weekend.

    → 8:33 AM, Mar 23
  • Smartphone religion

    Stephen Hackett of 512 Pixels, commenting on a Wired essay by Mat Honan:

    “Maybe it’s just the headache I’ve had since the Samsung Galaxy 4 event or the fact that Apple’s turning up the heat, but I find the increasingly defensive views held in the technology community increasingly offensive.”

    I got into the Mac in the 1990s during the lead-up to Apple’s certain doom, so I spent quite a lot of time arguing with Windows users. The problem with the new version of that debate, Apple vs. Samsung and the smartphone wars, is that I’m not sure it’s ever going to end. There are good phones on either side, the pundits can’t wait for Apple to fail but Apple is strong, and there’s no hope to escape the noise for those of us who just want to build some apps.

    → 6:10 PM, Mar 22
  • App Store old app maintenance

    David Smith on cleaning up the App Store:

    “The App Store currently has around 800k active apps listed. I suspect a significant number of these haven’t been updated in more than 12 months. An app that is listed for sale but is no longer under active development creates the possibility for bad user experience. It is like a grocery store that leaves expired produce on its shelves.”

    He makes a good argument for removing old apps from the store, but I’d probably hesitate going all the way to actively take them out. There is certainly too much clutter in the App Store — too many apps that aren’t providing much value, some with little chance of an update. But I also dislike the already fragile state of App Store inventory. iOS apps require much more active maintenance than traditional, direct download Mac apps, which can be hosted anywhere and stay available without constant attention from the developer.

    At one point on episode 14 of The New Disruptors podcast, Glenn Fleishman talked with John Gruber about apps as a unique art form unlike paintings or novels or even film because apps are never done. John Gruber from that show, talking about software:

    “To me it is an art form. But it is the one thing that is continuously diddled with. You write a novel and it’s done, it’s out there. Once it’s published, it’s published. You make a movie, it’s done. George Lucas gets a lot of flak because he keeps revisiting his old Star Wars movies and making a change here and there, but it’s not like every year he comes out with a new version of Star Wars. […] But software — an app that has a vibrant and still-growing user base — it’s the same thing, constantly being iterated. It’s the only art form that is like that.”

    There are always bugs, always missing features, and always (as is David’s point above) new hardware to adapt to. It’s an art form that won’t stay still, so maybe there is an inherent impermanence to it.

    But if apps are an art form, an important part of our culture, then it shouldn’t require so much work to make sure they don’t disappear forever, so quickly. This happened to me just this week, actually. I forgot to renew my iOS developer program account and my apps were automatically removed from sale for a few hours while I scrambled to pay my $99 again.

    Maybe there’s a compromise solution in here somewhere. Instead of being removed from sale, abandoned apps could switch to an archived state. They would no longer show up in top lists or even search, but could still be found with a direct link. With the right kind of fallback like that, Apple could be even more aggressive about gearing the App Store user experience around new apps and modern devices, without sacrificing what is good about the long tail of old apps.

    → 10:57 AM, Mar 22
  • Twitter API v1.1

    My apps Watermark and Tweet Marker were recently updated to version 1.1 of Twitter’s API. I’ve also finished the coding changes in Tweet Library to support 1.1, but it has not yet been submitted to Apple. I expect it to be another week while I wrap up a new feature included in the update.

    I don’t like having my release schedule dictated by others, but that’s life as a Twitter developer. And why I no longer post there.

    This matters today because Twitter is running an API blackout test. Tweet Library will not be able to load new tweets this afternoon for about an hour (3pm PST) while v1 is unavailable. I’ll post again here and from @riverfold on App.net when the new version of Tweet Library is shipped off to Apple and live in the App Store.

    → 1:19 PM, Mar 20
  • Kevin Lynch at Apple

    John Gruber has a series of posts questioning Apple’s judgement in hiring Kevin Lynch. This one best sums it up:

    “I get that the guy worked for Adobe and had to play for the home team, but as CTO he backed a dying technology for years too long. In 2007 when the iPhone shipped Flash-free, that was one thing. But for Adobe to still be backing the Flash horse in 2010 when the iPad came out — they just looked silly.”

    All of that is true. But instead of reflecting poor judgement, I think Kevin Lynch joining Apple could be good news in what it says about Apple. They didn’t hire him blindly. Apple knows what Kevin has been working on, knows what he’s said in public, and at this moment probably knows much better than we do what it was like to be at Adobe those last few years. For all we know Apple cares more about his work on Creative Cloud than Flash.

    Kevin also has a rich history that is closely tied with the Mac. He worked as a developer on FrameMaker. He worked at General Magic alongside old-school Apple engineers. He worked at Macromedia when they started building web tools.

    I heard him speak much later at SXSW in 2002, for a joint presentation he gave with Jeffrey Veen. At the time I disagreed with Kevin’s vision for Flash and the web, but the SXSW talk was interesting enough that I referenced it afterwards and again later. Kevin was so good that he somehow demonstrated he got the web even as he pitched a product that was increasingly at odds with it.

    Was he wrong about Flash? Yes. But I choose to view his move to Apple as an indication that he was at the wrong company more than that he was completely wrong-headed. Maybe it was time for something new, a course correction back to the earlier part of his career. Skepticism about this hire is fine, but to treat him as an outsider is to forget the other great things he’s worked on. Once you’ve built Mac software, no matter how long ago, you’ll always be one of us.

    I hope Apple sees it that way too. Because if Apple is confident of anything, it’s that they can’t get stuck in one old way of thinking, can’t discount good people because of one unforgivable bad idea. That Apple is able to brush aside the Flash debate as yesterday’s news — even accept as a VP someone who was at the heart of that debate, and on the wrong side — shows to me that they’re only looking forward.

    → 3:38 AM, Mar 20
  • Replacements for Google Reader

    With the success of Tweet Marker, several people suggested I should build a sync server for RSS. This was last year and earlier this year, before Google Reader officially shut down, but after it was clear that we needed something better. I jotted down some notes for a couple ideas but ultimately decided not to do it. I’ve already got my hands full with my current shipping products!

    Luckily many great developers are now on this. Feed Wrangler from David Smith, hopes for a possible NetNewsWire Cloud, more interest in Fever, and other established web apps like NewsBlur and Feedly. As Marco Arment said, this could end up being a great thing for innovation in blogs and RSS again.

    But just because I’m going to watch on the sidelines for the server sync part of RSS, doesn’t mean I’m going to completely skip building better RSS support into my own products. There’s a lot I’d like to do with client-side RSS support in Watermark.

    → 11:30 AM, Mar 16
  • Bitsplitting podcast

    My friend Daniel Jalkut has launched his new podcast, Bitsplitting. The first episode is an interview with Guy English, and future episodes will follow a similar interview format with other developers and tech folks. I especially love that it’s an interview show because Daniel and I were never able to coordinate having regular guests on Core Intuition. I think it makes a great complement to our show or one of your other favorite podcasts.

    And it’s a great time for developer podcasts! Some of my other recent favorites include Debug, Identical Cousins, and the new show from Marco Arment, Casey Liss, and John Siracusa, Accidental Tech Podcast. Plus old favorites like Developing Perspective, NSBrief, iDeveloper Live, The Talk Show, and another half dozen I subscribe to.

    I talked to a few people at NSConference last week who couldn’t get podcasts worked into their routine. If that’s you, consider that you may actually be missing out on some great content now. Even if you don’t have a commute to listen during, try picking up the earbuds next time you go for a walk or work outside or do the dishes or whatever else away from the computer. Those are the perfect times to listen to a good show, and Daniel’s is a great one to start with.

    → 9:30 AM, Mar 15
  • Pricing changes and Watermark Mobile 1.1

    I tend to be pretty stubborn about not changing my price. Tweet Library sat at $10 for two years before I finally lowered it, and the price for Clipstart has never changed from the $29 it shipped at. I think there is something to be said for price consistency so that users feel like software is stable and doesn’t have arbitrary value. (Many people disagree with this, which is why I’d classify my opinion as equal parts instinct and stubbornness rather than a proven formula for success.)

    But I’m making two pricing changes today: Tweet Library goes up to $7.99, and Watermark down to just $4/month. I’ve come to believe that the previous price changes for both products were too far in either direction. I hope this corrects that. In the case of Watermark, I will eventually be offering different plans at higher tiers for more storage, and want the entry-level price to be as appealing as possible. (All existing Watermark customers have been switched to the discounted plan.)

    The little iOS app for Watermark has also been updated to version 1.1 and now features auto-renewing subscriptions. This means you can sign up directly in the iOS app and have your iTunes account charged each month. Watermark Mobile launched mostly as a convenient search interface, but it should now start receiving more regular updates.

    For another recent discussion about pricing, check out part 3 of Kevin Hoctor’s excellent write-up of talks from NSConference.

    → 9:31 AM, Mar 13
  • Announcing Searchpath

    Today I’m happy to announce my new web app: Searchpath. It’s search for your web site or blog with an innovative “popover” UI. Simple, fast. With better control of your search results, and no need to link to Google or show ads to your readers.

    There are so many sites out there that don’t have search, or have very poor search. I wanted to build something that makes setting up a great search box on your site absolutely trivial.

    Searchpath knows about blogs — it finds the text on your page to index, and can automatically strip out redundant titles from posts for clearer search results. It tracks popular search terms. It gives you more control, by letting you exclude archive pages and customize the font and links with CSS.

    I’m running it now on this blog. Check it out in the sidebar, or visit searchpath.io to sign up and try it on your own site.

    → 6:26 PM, Feb 14
  • New product coming soon

    Last year I started working on something new. It was going to be the first product after I refocused Riverfold around a new mission statement: apps to keep and remember what matters. It starts by solving a very basic problem, but the long-term scope is very big.

    It’s for anyone with a web site or blog. It’s incredibly simple to set up. It’s a web app with a free trial that works like magic, requiring no registration.

    Finally I’ve been able to dust off the project, give it a new name, and get it ready to ship. Launching tomorrow, February 14th.

    → 7:10 PM, Feb 13
  • 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.

    → 5:22 PM, Jan 21
  • What makes App.net special

    Phillip Gruneich has an interesting post about what’s different about ADN, with thoughts on the global feed and link posting:

    “App.net is a different environment and it must be preserved that way. If you get into it and decide to behave like it is a Twitter alternative, then the differences will fade away and we’ll lose a precious experience.”

    There are some ideas in here that surprised me. For example, I’m not sure I agree that everyone reads the global feed, nor that people should be discouraged from linking to anything but their own work. I love to post links to products from friends and companies that are doing interesting things.

    Even if it isn’t as busy as on Twitter — Twitter disabled their global feed years ago when it started moving too fast to be read — it would still be difficult to do anything more than occasionally skim the global feed on ADN.

    He does hit on something important, though. Because it’s a paid service, and there’s a cost to additional accounts, most of the users are actual people. There are fewer companies and parody accounts. (But I did end up getting @riverfold on ADN, which I felt was a nice compromise when compared against my 4-5 app accounts on Twitter.)

    So I might not use ADN in exactly the same way that Phillip does, but the hope that ADN remains unique is the same because it’s something nearly everyone on ADN probably hopes for. And that’s the really good news: if what makes ADN special is the people, then it’s because all of the people have something in common. They didn’t chose ADN by accident, or because it was the default choice. They chose it because they wanted something better.

    In the short 5 months since I wrote about ADN’s start, I’ve become a big fan of the founders, the quality of the API and developer program, and the general tone of ADN users. There might not be a single best way to use ADN, and that will become even more true over time as the scope of the API grows. But there’s no question that it is a special service that deserves to be a peer with Twitter and Facebook in terms of new apps and conversations, even as it exists in a different world where huge “1 billion user” scale doesn’t matter.

    → 2:22 PM, Jan 21
  • Tweet Library 2.2

    I posted a couple months ago about my experiment to cut the price of Tweet Library in half. I’ve decided to make this decision permanent. Tweet Library is just $4.99 as a universal app for both iPhone and iPad.

    Today I’m also releasing Tweet Library 2.2. This version gains a few improvements and bug fixes, but most importantly a big new feature: support for importing Twitter’s new archive format. It does this by downloading the .zip file you receive from Twitter directly via Dropbox, to make it easy to import your full archive of tweets. (Watermark has this feature too.)

    Not everyone has access to exporting their tweets from Twitter yet, but I wanted to get this feature out as soon as possible. And I already have a version 2.2.1 submitted to Apple with more improvements to the import process.

    See the web site for more about Tweet Library, or get it at the App Store here.

    → 10:10 PM, Jan 16
  • Aaron Swartz

    I met Aaron briefly at SXSW, maybe 8 or 9 years ago, when the conference was still so small you could run into everyone. He wouldn’t remember me, but I followed his work and linked to him a couple times here. He was so young and already doing great things.

    Lawrence Lessig:

    “He was brilliant, and funny. A kid genius. A soul, a conscience, the source of a question I have asked myself a million times: What would Aaron think?”

    Brent Simmons:

    “He’d gone on to do cool things — and make some mistakes, and get in trouble for them. But I knew he was extraordinary, and I expected him to grow up to become an American hero.”

    Cory Doctorow:

    “Aaron had an unbeatable combination of political insight, technical skill, and intelligence about people and issues. I think he could have revolutionized American (and worldwide) politics. His legacy may still yet do so.”

    Daniel Jalkut:

    “After witnessing a small extent of the struggles Aaron fought, I choose to commemorate him with gratitude for the many bad weeks when he resisted drastic action, and gave us all more time to appreciate and share his contributions.”

    …and:

    “You’ve honored Aaron Swartz by acknowledging what he did before he died. Now honor him by doing what he might have done.”

    Such a loss. For more links, I started a collection of tweets when my timeline woke up to the news of Aaron’s death.

    → 10:03 AM, Jan 15
  • Business vs. user experience

    Some companies seem willing to do anything for a profit. The worst domain name registrars and their pages filled with up-sells. News blogs that spread articles across several sections to increase page views. We see examples all the time of blatant attempts to increase sales just a little at the expense of usability.

    But the reverse can also be a mistake. For example, my own Tweet Marker. I wanted the setup user experience to be so effortless that the user merely needs to flip a switch to enable it in their favorite apps, or do nothing for the apps that choose to use Tweet Marker by default. There’s no formal registration, no prompt for an email address.

    Now I find myself with 500,000 total users who have tried Tweet Marker, but no way to follow up with them to see if they are interested in upgrading to the $1/month subscriber plan. The service is, frankly, a financial failure. More like a charity experiment than a business.

    I’ve been giving this a lot of thought, and introducing the subscriber plan was the latest part of a renewed effort with Tweet Marker. I’m determined to make it work, even if it’s too late to shift the balance between business needs and user experience to something that makes more sense.

    → 10:35 AM, Jan 14
  • Three months without Twitter

    Over three months ago I stopped using Twitter. I wanted to make a statement — perhaps in an overly-dramatic way — that the developer-hostile environment that Twitter had evolved into wasn’t something I could support anymore. I do still read plenty of tweets while testing Watermark, and I’m almost done with a new version of Tweet Library, because my customers deserve great Twitter features. But I haven’t tweeted, retweeted, or favorited a thing from my personal account since October 5th.

    I knew that sometimes it would be difficult to resist going back to Twitter, replying to a question, or cross-posting my posts from App.net. So I set things up to discourage my future self from even considering more tweeting. I picked the 1-year anniversary of the day Steve Jobs died and wrote my final tweets a week in advance. If someone visits my profile, I want those statements to be what they see. I can’t tweet again without pushing those tweets from the top of the list.

    Meanwhile, App.net started taking off. Netbot shipped. The developer incentive program started to directly reward developers. There’s a good community there. It’s smaller than on Twitter; there isn’t the same never-ending stream of tweets flowing into your timeline. But maybe that’s a good thing.

    The flip side is that it’s hard to let go of things like Twitter that have value. I had similar self-doubt when I killed off my app Wii Transfer, so that I could focus on bigger ideas. But simplifying has allowed me to do some of the best work of my career in 2012. I’ve put everything I have into Watermark, into the new Tweet Marker subscriptions, into doing Core Intuition weekly, into shipping everything I work on. 2013 is going to be awesome, and I’m not looking back.

    → 1:07 PM, Jan 11
  • iDeveloper Live Christmas podcast

    Daniel and I took a week off from Core Intuition for the holidays, but I was a guest on the iDeveloper Live podcast last week for an end of year show with Scotty, John Fox, Saul Mora, Brent Simmons, and Guy English. Topics included highlights from the year’s events, what projects we’re working on now, learning from Apple’s successes and failures, predictions for 2013, and some detours into Auto Layout, Core Data, iCloud, and other new APIs.

    Here’s the episode on iDeveloper TV with the audio and links to all the guests.

    Even though I’ve been podcasting for years, I think this was the first podcast I’ve been on that was actually broadcast live. It was a fun show. Check out the iDeveloper Live web site for previous episodes and to subscribe.

    → 12:23 PM, Dec 27
  • Rambling about Twitter archives

    As 2012 was winding down, I was fascinated with LongPosts.com (built on top of App.net) and so used it to post some thoughts about Twitter archives. The site is gone now, so I’ve moved the text back to my weblog here, where it belongs anyway. The link to the ADN discussion is here. — future me, January 2016

    One of the main goals of my web app Watermark is to archive and search tweets and ADN posts, so it was natural for me to implement support for Twitter’s new archive export format. I finished it last night and linked it from the Watermark account page this evening for all customers.

    I had heard that Twitter’s export included a CSV version before I saw the actual files, so I started work coding an importer based on that, with the assumption that I could tweak it later. Once I saw a real tweets.zip, I had to throw out most of my initial work. The CSV files have two problems:

    • They don't properly escape values using quotes, so a comma inside a tweet makes the files more difficult to parse.
    • They don't include some essential Twitter metadata like the reply-to ID. I switched to using the JSON files and it's working well. They're JavaScript but not strictly JSON, so you just skip the first line.

    Since the ZIP archive can be fairly big, instead of uploading in a web browser I let the user choose the file via Dropbox. This was a nice opportunity to try out the Dropbox Chooser. Then on the server I extract the files and load the data.

    Dave Winer is doing something interesting with archives too. He’s started linking up other people’s archives on S3 — both the HTML view and the .zip file. I have a test Watermark account that I’ve loaded one of these into. It’s interesting to import multiple archives and have them all merged together and searchable.

    For so long we’ve waited for access to our old tweets. In the meantime I’ve shipped two products around fixing this limitation, so it’s especially funny that Twitter finally rolls out archives after I’ve stopped posting there. (And of course I love that ADN has allowed access to your full post history from the very beginning.) Not entirely sure where all this is going to lead, but I agree with Dave Winer that new apps should be possible now.

    → 1:00 PM, Dec 22
  • Safari extension for Tweet Marker

    Since introducing the Tweet Marker $1/month subscriber plan earlier this week, I’ve received a few questions about how the Safari extension works, and whether Watermark customers will also receive the new features. Yes, Watermark subscribers automatically have access to the Tweet Marker extension, which can be downloaded here.

    I’ve prepared a screencast to show how the extension works. It’s about a minute long, and you can view it right here.

    Thanks to everyone who has already subscribed to either Tweet Marker or Watermark.

    → 10:29 AM, Dec 19
  • 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
    → 9: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
    → 6: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.

    → 6: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.

    → 6: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.

    → 9:15 PM, Nov 13
  • Apology letters

    Great essay from Rands on Scott Forstall. It’s one of the first I’ve seen to capture what made Forstall valuable to innovation at Apple:

    “While I’d continued to hear about the disdain amongst the executive ranks about Forstall after I left Apple, I was still shocked about his departure, because while he was in no way Steve Jobs, he was the best approximation of Steve Jobs that Apple had left. You came to expect a certain amount of disruption around him because that’s how business was done at Apple — it was well-managed internal warfare. Innovation is not born out out of a committee; innovation is a fight.”

    One part of this executive shakeup that had me puzzled was the rumor that Scott Forstall refused to sign an apology letter about iOS 6 Maps. We’ve had a few open letters from Steve Jobs, and now one from Tim Cook. It seemed out of character to have a VP do it, someone who’s lesser known to the general public.

    But then I ran across this letter about EPEAT from Bob Mansfield again, posted just a few months ago. It is signed only by Mansfield. It starts:

    “We’ve recently heard from many loyal Apple customers who were disappointed to learn that we had removed our products from the EPEAT rating system. I recognize that this was a mistake. Starting today, all eligible Apple products are back on EPEAT.”

    In other words: we’re listening, we’re sorry, and here’s what we’re doing to set things right. And I think that’s Tim Cook’s Apple. Proud and passionate about the products they’ve built, definitely, but always sincere. Arrogance has no place.

    → 9:53 AM, Nov 12
  • Making time for marketing

    Like many programmers, I’m often fooled into thinking that it’s enough to build a good product — that people will find it on their own, instantly recognize its value, and pay for it. It’s easy to forget that even great products need marketing to succeed. For a one-man shop it’s important to take a break from writing code and work on how the app is sold.

    Building a business is hard. I started Riverfold Software 6 years ago and in many ways it has fallen short. And for some of the past year, I’ve squandered the success of Tweet Marker, failing to practice and experiment with how to make money from it.

    Jason Fried of 37signals wrote for Inc Magazine last year about how making money takes practice:

    “One thing I do know is that making money is not the same as starting a business. For entrepreneurs, this is an important thing to understand. Most of us identify with the products we create or services we provide. I make software. He is a headhunter. She builds computer networks. But the fact is, all of us must master one skill that supersedes the others: making money. You can be the most creative software designer in the world. But if you don’t know how to make money, you’re never going to have much of a business or a whole lot of autonomy.”

    In the last week I’ve taken a couple steps in the right direction. I’ve finally redesigned the Watermark home page around a simpler marketing statement of what the app is about. And as discussed on the recent Core Intuition, I switched from PayPal to Stripe in an effort to make payment smoother and subscriptions easier to track. There’s still a lot to do, but I hope to make even more time for marketing before the year is up.

    → 12:27 PM, Nov 9
  • iPad Mini

    From John Gruber’s iPad Mini review:

    “If the Mini had a retina display, I’d switch from the iPad 3 in a heartbeat. As it stands, I’m going to switch anyway. Going non-retina is a particularly bitter pill for me, but I like the iPad Mini’s size and weight so much that I’m going to swallow it.”

    As I said on the last Core Intuition, it’s even more of an easy switch for me since I never upgraded to the iPad 3. The iPad Mini has essentially been my only iPad for the last week. I’m using it more, and taking it places that I would’ve have bothered with before. My new favorite Apple device.

    → 11:43 AM, Nov 9
  • The Magazine issue 2

    The second issue of Marco Arment’s The Magazine is now available, featuring essays by John Siracusa, Gina Trapani, Lex Friedman, Daniel Rutter, and Alex Knight. In the new issue, Marco writes about the risk and success of the app:

    “It was a risk to release an app that can only exist in Newsstand, full of paid writing, to an audience that’s predominantly people who have a surplus of free reading material and bury their empty Newsstand folders on their last screen of apps.”

    I’ve been happy with how well The Magazine fits into my mobile reading workflow. I read a lot in Instapaper and Reeder, most of it technology-related articles. The Magazine occupies a more leisurely, thoughtful space for reading, away from the frenzied pace of everyday tech news. And because it’s a handful of essays just every other week, I don’t expect to ever be overwhelmed with it in the same way that it’s easy to fall behind in never-ending RSS and Twitter feeds.

    High quality, highly recommended. Congrats to Marco on the successful launch.

    → 1:22 PM, Oct 26
  • Watermark shared filters

    I rolled out a small but powerful feature last night for Watermark. For a while you’ve been able to create saved filters, which are just shortcuts to quickly run a search across the Watermark database for your account. Saved filters are also cool because they automatically sync as CSV files to Dropbox. Now you can allow any of these saved filters to be shared with others.

    Click “Allow saved filters” and you’ll get a link option next to each filter. That will produce URLs that can be posted to Twitter or App.net or wherever, and anyone can see the results of the search even if they don’t have a Watermark account.

    It’s a way to expose a slice of your timeline and archive to other people. Here are a few that I’ve set up:

    • cingleton — Every tweet or post mentioning the Çingleton conference.

    • pdx food — Neven Mrgan’s short reviews of Portland restaurants.

    • ipad mini — Obvious query given today’s Apple event.

    All of these search live across my 6-month archive of about 275,000 tweets. Remember that Twitter’s own search only goes back about a week. There’s really no other way to get this kind of data.

    → 9:02 AM, Oct 23
  • What the Tweet Marker award means

    It’s been over a year since I launched Tweet Marker, and I’ve been thinking a lot lately about what its second year will look like. Hosting costs have gone up significantly over the last year, though I’ve offset that by combining the hosting for Watermark and Tweet Marker together so that they share the same core servers. I’ve considered other options, too: run a Kickstarter-like fundraiser, charge developers, or ask for donations again.

    Now that I’ve stopped posting to Twitter from my personal account, people also ask whether I’ll just shut Tweet Marker down. The answer is no. I’ll keep it running, even if it means funneling some revenue from Tweet Library and Watermark to pay for it. Even if it means having to put out fires and deal with other web hosting distractions.

    Hosted web services have a different level of commitment than traditional apps. When I stopped selling Wii Transfer, existing customers could continue to use it for as long as they wanted. Not so with something like Tweet Marker, which becomes useless the minute I shutter the web server.

    The Macworld Eddy statue sits on my desk as a constant reminder that real people like this thing and find it useful. There is a lot of uncertainty with Twitter, App.net, Tent.io, and the future of microblogging, but no matter what takes off and what sync looks like, I think Tweet Marker played an important role in the evolution of Twitter clients. I’ll always be proud of that. It would be a disservice to my customers and the Macworld award to ever consider turning off the API while people value it.

    → 11:21 AM, Oct 19
  • Watermark for iOS

    I have a new iPhone app in the store: Watermark Mobile, a lightweight companion app to Watermark, my search and archiving tool for Twitter and ADN. It’s free for existing customers, or $4.99 using in-app purchase to subscribe as a new Watermark customer.

    With this app I wanted to solve two problems:

    • Clean, simple search interface on the iPhone.

    • Allow paying for Watermark inside the app with your iTunes account.

    While I’d eventually love to have a more full-featured client like Tweet Library available for Watermark, after a quick weekend of hacking I decided that Watermark Mobile was already useful enough that I should release it. So I did.

    → 5:37 PM, Oct 18
  • Tweet Library price cut

    At Çingleton last week, Michael Jurewitz talked about app pricing and the arguments for raising your price. He made a convincing case, and it echoed some of the themes that I wrote about before I released Tweet Library 1.0 back in 2010.

    In the two years since, I never once changed the price. No intro discount, no gimmicks, never on sale; $10 was essentially set stone. Even as it moved to the iPhone as a universal app, I stuck to my original philosophy about pricing, perhaps stubbornly. There’s value in consistent pricing, so that the user knows what to expect from one month to the next, and to indicate that the developer attaches a specific value to the app.

    Last week, before Çingleton and right as version 2.1 of Tweet Library was about to be released, I decided to try an experiment: I cut the price in half to $4.99. Even though it’s a niche app that only doubles as a full Twitter client, this puts it more in line with other Twitter apps on iOS. (And even cheaper than buying both the iPhone and iPad versions of some apps, like Netbot for ADN.)

    Meanwhile, Tweetbot for Mac is now out at $20. Daniel Jalkut covers this on his new blog, Bitsplitting:

    “Is $20 a reasonable amount to pay for Tweetbot? I think so. But if Tapbots would have preferred to charge even less, has it been fairly priced? Many folks are seizing on the coincidence of Tapbots needing to charge more as an opportunity to exalt ‘fair pricing,’ when this was a result of coercion in two directions.”

    Pricing is something I am still very fascinated by, especially this constant pull between how we value our own software and how pragmatic we want to be as a business. I’m going to let Tweet Library sit at $4.99 for a month, and if revenue is not obviously greater than what it would have been, I’ll bump it back to $10 or a middle-ground $7.99.

    → 2:14 PM, Oct 18
  • 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.

    → 8:22 PM, Sep 18
  • Watermark export using Dropbox

    I’ve been making Watermark better. Sometimes it’s small tweaks or bug fixes; other times, more noticeable new features. Because it’s a subscription, I’m determined to improve it quickly and often. I don’t write about most of these changes, but the new Dropbox sync in Watermark deserves special attention.

    Watermark originally shipped without any kind of export feature. This was a glaring omission for an archiving tool. But because of the large number of tweets stored by Watermark — some users have hundreds of thousands of tweets from their friends in the app — a simple export wasn’t feasible. I could have offered an export of just your own tweets, but then you also have the fairly clunky step of waiting for the server to gather tweets together, then downloading a file from your web browser, finding where to store it or the previous downloaded copy to replace it with.

    Dropbox sync fixes that. Watermark can now automatically copy tweets (and App.net posts) from your saved filters and custom collections to CSV files on Dropbox. For example, search Watermark for “iPhone 5”, click “Save as filter”, and the most recent 1000 tweets matching that query will appear in a file called “iPhone_5.csv” on Dropbox. It keeps running in the background, so the files are updated every hour as new tweets matching the search are downloaded by Watermark, even if you aren’t signed in.

    See the account page and FAQ for details and a sign-in link to authorize Watermark with Dropbox.

    → 8:16 AM, Sep 13
  • Announcing Watermark

    I’m renaming Tweet Marker Plus. Its new name — to better reflect its gradual move away from Twitter and syncing — is Watermark.

    As part of the relaunch it immediately gains a new feature: App.net posts. You can now add an App.net account and it will download any posts from your friends, making them available for search. Watermark is already storing tens of millions of tweets, and I’m excited to start adding App.net posts to that archive as well.

    So what happens to the basic Tweet Marker API? For now, nothing. The sync API that over 22 Twitter apps support will still be called Tweet Marker and remain Twitter-focused. Think of Watermark as a separate app: a new kind of client and archive tool, independent of Tweet Marker.

    → 8:22 PM, Aug 28
  • Justin Williams kills 2 apps

    Justin Williams on his decision to stop selling his apps MarkdownMail and Today:

    “Financially, it may not have made much sense to cut off the revenue streams, but therapeutically I’m freeing up that portion of my brain to focus my full attention on the next version of Elements and the dozens of other ideas that that are circling in my head.”

    I felt exactly the same way when I stopped selling Wii Transfer earlier this year. It wasn’t until a month later that I realized how much I had been enjoying that revenue, limited as it had become. I don’t regret it, though. It was the right thing for my potential customers, not to be misled into thinking there would be new versions. And it was the right thing for my focus, working on other projects.

    → 1:50 PM, Aug 24
  • Sparrow and the unlimited indies

    Recently I found myself in rare disagreement with Matt Gemmell:

    “Indie devs are an endlessly replenishable resource. Good indie devs are similarly replenishable. This acquisition has no effect whatsoever on the rest of us, except for further legitimising the practice of big companies buying us up. That cannot possibly be a bad thing.”

    While the general argument that Matt makes is solid — that Sparrow customers should be happy for the developers being acquired by Google, and that paying $3 for an app doesn’t give anyone a right to complain or feel betrayed — there are a couple ways that this acquisition could be a bad thing for everyone else.

    Good indie devs, especially successful ones, are a limited resource. There are very few indie companies able to make a client as polished as Sparrow was, and even fewer with commercial success.

    And with Twitter’s latest anti-competitive moves, we may end up losing another market that was friendly to indie developers and rich with UI innovation.

    My favorite take on the Sparrow acquisition and what it means for sustainable indie software came from Rian van der Merwe:

    “We need to reframe this argument. The real issue is much deeper than this specific acquisition. The real issue is the sudden vulnerability we feel now that one of our theories about independent app development has failed.”

    The Sparrow acquisition came as a surprise to most of us. One day, they look like a successful company, taking on a difficult market and winning against free competition. The next day, they’re gone. I wish them luck at Google, but it is a loss for the community of small Mac and iOS companies.

    (Speaking of Matt Gemmell, he’s just released a new Mac app called Sticky Notifications for sticking reminders in Mountain Lion’s notification center.)

    → 12:30 PM, Aug 24
  • Twitter lock-in

    With every day since Twitter’s new rules were announced, my opinion grows stronger that this is the end of the platform as we’ve known it for the last few years. It hurts that so much of what was pioneered by the developer community has been co-opted and trademarked and turned against developers. Nothing will change tomorrow; we can expect new versions of Tweetbot, Twitterrific, and my own app Tweet Library. But in the long run it’s a dead-end.

    Lex Friedman, writing for Macworld:

    “Some developers are notably hesitant to speak on the record, lest they incur Twitter’s wrath; the fear seems to be that since Twitter is now exerting more control than ever over access to its API—which developers leverage to make their Twitter apps work—that irking Twitter too much might result in a developer’s API access getting revoked.”

    I have less at stake than developers with popular mainstream apps, so in a way I feel it’s my duty to speak out when it’s warranted, where others can’t. I’m quoted in Matthew Panzarino’s article on the Twitter API change, and I was interviewed for a radio spot on San Francisco’s KQED.

    I could live with some of the API changes. I could live with the display requirements, even the user caps. Maybe I could live in a developer-hostile environment, finding a market niche far below Twitter’s radar. Except for two things:

    • “Timeline integrity”: The display guidelines say you can’t mix other content in a timeline of tweets. You can’t easily have a multi-platform app that shows both App.net posts and Twitter tweets in the same view.

    • Trademarks: You are allowed to use “Tweet” in the name of your app, but only if Twitter is the only service you support. You can’t add Facebook or App.net or Heello support alongside Twitter.

    These are anti-competitive and unworkable. So I’ve decided to spin off Tweet Marker Plus, my paid web-based app that builds on top of the Tweet Marker sync engine. I’ll relaunch it with a new name, slowly introducing new features that aren’t tied exclusively to Twitter. For a hint of where it’s going, you can follow me on App.net.

    → 12:47 PM, Aug 21
  • When it disappears

    Dave Winer reiterates that we must plan now to preserve our online writing:

    “There were far fewer bloggers. Maybe thousands. Today there are millions. None of them are thinking about what happens when Tumblr or Blogger or WordPress or Facebook disappear. But come on — we almost know for certain that one of them will. Given enough time they will all disappear.”

    These companies are only as strong and permanent as their leaders, and leadership doesn’t last. If you think it can’t happen soon, look at the new Digg. Although they want to export the previous content, currently nothing from Digg’s 7-year history is accessible. Not by accident, not by catastrophic failure, but because no one at the new company cared to keep it around.

    → 2:09 PM, Aug 17
  • Spoiled by gatekeepers

    Amy Hoy writes about master craftsmen and being accountable to your real customers:

    “When you live and work in an insulated life — divorced from the end result of your work — you are spoiled. You’re graded more on your ability to please and manage gatekeepers than your work product. Gatekeepers are human; humans can be persuaded to accept excuses.”

    Just enough separation from customers is healthy — email and tweets, instead of phone calls. But put up too many walls, too much bureaucracy, and you might no longer care who you’re building the software for. You might forget why it has to be great.

    → 4:16 PM, Aug 16
  • 10 years of Daring Fireball

    Daring Fireball turns 10 years old today. I love this visualization of the posts from those years. You can view by article length and highlight posts for certain topics.

    There’s a rich history of posts in the archive. Like the best blogs, there’s consistency in design, tone, and format. None of the URLs have ever changed.

    Here are some of my favorite essays.

    June 4, 2004, Broken Windows:

    “Arguing that it’s technically possible that the Mac could suffer just as many security exploits as Windows is like arguing that a good neighborhood could suddenly find itself strewn with garbage and plagued by vandalism and serious crime. Possible, yes, but not likely.”

    April 20, 2006, Initiative:

    “What I’ve concluded, though, is that if I want to make a full-time income from Daring Fireball, I need to just do it full-time. I.e. that it’s not going to work the other way around — to wait for the revenue to burgeon and then start putting full-time effort into it.”

    August 4, 2006, Highly Selective:

    “I’m sure there are other examples of Mac apps that offer anchored list selection, but the point remains that the vast majority of software now follows Apple’s lead and uses the unanchored model for list item selection. If ‘Mac-like’ means ‘what most other Mac software does’, then in this case the Mac-like behavior is wrong, or at the very least, worse.”

    October 2, 2008, The Fear:

    “But this pitch also worked because it was true. All three of those products sound good on their own. All three in one device sounds insanely great. Jobs was introducing the iPhone simply by describing precisely what it was.”

    April 24, 2009, Twitter Clients Are a UI Design Playground:

    “I read web sites and email and RSS feeds on my iPhone, but Twitter is the one service where reading on my iPhone doesn’t feel constrained compared to reading on my Mac.”

    June 26, 2009, Copy and Paste:

    “That we had to wait two years for the iPhone’s text selection and pasteboard is a good example of one aspect of the Apple way: better nothing at all than something less than great.”

    January 27, 2010, The iPad Big Picture:

    “Software aside (which is a huge thing to put aside), it may well be that no other company could make a device today matching the price, size, and performance of the iPad. They’re not getting into the CPU business for kicks, they’re getting into it to kick ass.”

    August 24, 2011, Resigned:

    “The same thought, care, and painstaking attention to detail that Steve Jobs brought to questions like ‘How should a computer work?’, ‘How should a phone work?’, ‘How should we buy music and apps in the digital age?’ he also brought to the most important question: ‘How should a company that creates such things function?’”

    December 25, 2011, Merry:

    “— how much will I be willing to pay then to be able to go back in time, for one day, to now, when he’s eight years old, he wants to go to movies and play games and build Lego kits with me, and he believes in magic?”

    February 16, 2012, Mountain Lion:

    “This is an awful lot of effort and attention in order to brief what I’m guessing is a list of a dozen or two writers and journalists. It’s Phil Schiller, spending an entire week on the East Coast, repeating this presentation over and over to a series of audiences of one.”

    Congrats John. Here’s to the next 10 years.

    → 5:28 PM, Aug 13
  • App.net's great start

    Today, App.net passed its $500,000 funding goal. A few weeks ago when I signed up with my $50, I didn’t think they could do it. And Daniel and I were both pessimistic about their chances when we talked about it on Core Intuition 50.

    In less than a month, they went from a mission statement video that seemed just a step away from vaporware, to following through on an API spec and then alpha version web site. They delivered. The momentum of shipping something real brought in new users and drove them to the finish.

    What I love most about App.net is the transparency. Founder Dalton Caldwell is a blogger, like one of us. Where we only hear from Twitter’s CEO, Dick Costolo, through big news publications or at conference keynotes, for Dalton we hear it directly from his own blog posts, the way a small company should communicate. Being on the ground in posts and tweets is a perfect complement to his goal of treating users and developers as real customers.

    App.net will never overtake Twitter. Look no further than hashtags all over the Olympics as proof of that. But App.net can put pressure on Twitter to respect third-party developers, and with thousands of paying customers, all with a vested interest in making App.net something worthwhile, App.net has already surpassed every other Twitter clone that has tried and failed to build a community.

    From Paul Graham’s essay on ambitious startup ideas:

    "The way to win here is to build the search engine all the hackers use. A search engine whose users consisted of the top 10,000 hackers and no one else would be in a very powerful position despite its small size, just as Google was when it was that search engine. […]

    “Don’t worry if something you want to do will constrain you in the long term, because if you don’t get that initial core of users, there won’t be a long term. If you can just build something that you and your friends genuinely prefer to Google, you’re already about 10% of the way to an IPO, just as Facebook was (though they probably didn’t realize it) when they got all the Harvard undergrads.”

    He’s talking about search engines, but it could be anything. Get those 10,000 passionate users and you have a chance to take on the giants in the industry. As of this writing, App.net has 8000 paying customers. And 25% of them signed up at the developer tier. I’m sure every developer with a popular Twitter app has already looked at the App.net API documentation.

    As John Siracusa tweeted after App.net successfully funded: “Now comes the hard part.” Totally true, but just reaching this point was difficult — a perfect mix of great timing and even better execution. In the first 30 days, we saw a team that knows how to win. Let’s see what they can do next.

    → 4:44 PM, Aug 12
  • The new Day One

    Shawn Blanc reviews the latest version of Day One, which now supports photos:

    “Over the years, most of the major, monumental milestones of life were documented in my Moleskine. But not all. And that’s why I’m glad to have an app that let’s me easily and joyfully add a snapshot or a quick note about an important or memorable event. These are the things my family and I will look back on 20 and 30 years from now with great fondness.”

    While I keep the important stuff in my journals, I also use a protected Twitter account for the everyday notes and photos while away from the house. It has no followers; it’s just to have a date-stamped entry with a photo that’s easy to sync. Now that I’ve read how people are using Day One for this, I’m going to switch away from my private Twitter account to use Day One on the iPhone instead.

    I like having one place for this kind of stuff. If the same type of content is scattered across multiple services, it makes it less likely that everything will be together in the future when I finally want it.

    Especially interesting to me from Shawn’s review is that he also keeps a hand-written journal, even after using Day One for a similar purpose. I’ll keep using real-world pen and paper too, and everything I write there I will also transcribe into Day One. But I’ll write new things in Day One that will stay exclusively digital.

    Federico Viticci also has a great review. He starts with the big picture, the why of writing it all down:

    “I don’t even know if I’ll be around in twenty years. But I do know that I want to do everything I can to make sure I can get there with my own memories. We are what we know. And I want to remember.”

    I think the best writers know that it matters what their work looks like in a decade, or two decades, whether the writing is private or public. You can see it in everything from permanent URLs to blog topics to what software they use — a conscious effort to create content that lasts.

    → 1:41 AM, Aug 4
  • 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.

    → 12:58 PM, Jul 27
  • File format legacy

    Last year I had to migrate the news blog section of the Staple! site from an ancient version of Movable Type (version 2.x) to Blogger. Even though Blogger has recently dropped features and seems mostly deprecated in favor of Google+, for this site there were a ton of existing users on Blogger. Upgrading just made sense.

    However, what a file format mess. Export in Movable Type’s custom text format; import in Blogger’s Atom format. So first step is to find a service that’ll convert between the two, then manually fix up usernames so it imports properly. I exported, tweaked, and imported this file at least a dozen times before getting it right.

    I was so frustrated because this wasn’t just accidental bugs. Developers made conscious choices that led us to this compatibility dead-end. They bet against Dave Winer and lost at a pivotal time in the development of blogging.

    We had a format that was perfect for both blog syndication and as an interchange format between systems: RSS. Instead, some developers criticized RSS, then proceeded to create new products that have not been well cared for.

    That is now part of their legacy. 10 years after blogging went mainstream, the end result of reinventing the wheel isn’t better software, it’s user frustration trying to get anything to work together.

    This lesson keeps playing out, as if we’re doomed to repeat it with each new generation of file formats. Here’s this week’s post from Eran Hammer declaring OAuth 2.0 a failed format:

    "The web does not need yet another security framework. It needs simple, well-defined, and narrowly suited protocols that will lead to improved security and increased interoperability. OAuth 2.0 fails to accomplish anything meaningful over the protocol it seeks to replace."

    If you have a choice, always pick the old boring format that works above the new hotness that is only theoretically better.

    → 9:26 AM, Jul 27
  • Preserving the blogosphere

    This is kind of a short, technical footnote to my last essay. There I linked to an older blog post from Dave Winer, just one of many of his on this subject. Today he writes how we should archive blogs before we worry about Twitter:

    “With Twitter there’s a rich corporation minding it. They can and imho should be funding their own archive. But with the historic blogosphere, dating back to the early-mid 90s, a lot of it is already gone. The need to preserve it, by independent historians and librarians, is greater than the need for Twitter to be publicly archived.”

    I have a lot to say on this, and I can’t wait to share a new web project that I started recently which could play a small roll in blog backups. When I killed off my little app Wii Transfer, I did so to refocus Riverfold around preservation. I wrote:

    “It also doesn’t fit into a new theme I have for Riverfold: apps that are all about keeping and remembering what matters. For Clipstart, that’s family videos. For Tweet Library and Tweet Marker Plus, that’s old tweets.”

    Dave mentions libraries several times in his blog post. It’s no accident that the word “library” is in Tweet Library’s name; my ambition for this app far outpaces my coding speed. But blogs are a different problem, and they need something special — perhaps multiple solutions.

    → 2:40 PM, Jul 20
  • Permanence

    Nothing lasts on the internet. I could write on my weblog for years and the next day get hit by a bus. The domain expires, the posts are lost, and it doesn’t matter if I had 10 readers or 10,000; it’s as if it never happened.

    I love real books. I keep flirting with attempts to catalog our bookshelves over the years. My daughter offered to help once, excited through the first hundred books before she realized the rest would take all day and lost interest.

    Some people say “good riddance” to the cheap printed book, but I don’t agree. Recently in our house I found a paperback of an old favorite, Tigana, which I had bought while traveling in Europe. Inside the cover I had written “Oxford, 1999”. I flipped through the pages and out fell a wine label that I hadn’t seen in 13 years. It was from a bottle of wine my wife and I had in Greece, sitting on the sand of an island beach the night I proposed.

    I had kept it back then because I knew years later it would matter — a memory fused into a piece of paper, waiting. That trip was a story told in events like that one, in personal journals, and through email to family. The digital parts of the story didn’t last; the email is gone.

    Write on Twitter and it vanishes from the internet after 3200 more such posts, unlinked and unfindable. But write the same on a scrap of paper tucked into a book and it will be rediscovered again years later.

    A self-published novel in PDF on your web site is a ticking time bomb, waiting for your hosting bill to go unpaid. But print 10 copies and give it to 10 friends and it lasts forever.

    The only way to preserve something is to make multiple copies and distribute them. The problem with digital is that it makes it just as easy to accidentally delete or lose copies as it is to create them. Evolving file formats and storage devices require constant supervision and maintenance, pushing files up each technology bump from floppies to CDs to Zip disks to DVDs to hard drives. It never ends.

    We need to solve this. It’s something Dave Winer has written about. It’s something anyone with a large collection of writing online probably thinks about. How do we preserve the culture and art and stories of our time when the preferred media is so fragile?

    → 2:31 PM, Jul 20
  • MAS to Clipstart 1.5 upgrade

    Despite everything I said about how easy it would be for customers to upgrade from the Mac App Store version of Clipstart to the direct download version, in the real world this doesn’t appear to be working well for some customers. Might be a little buggy, and it’s too late to fix anything in the Mac App Store. So I’m doing upgrades the old-fashioned way, giving everyone new serial numbers.

    After the first few emails came in, I automated this with a simple form that customers can fill out. It’ll give them a new serial number right away and email the registration information. I’ve added a link in the FAQ on the Clipstart home page too.

    → 3:25 PM, Jul 19
  • Writing for fun and profit

    Marco Arment has a strong post on how sponsorships won’t change his writing:

    “If a sponsor ever has a problem with something I write, and that affects pending or future sponsorship buys, that’s fine with me. I can find other sponsors. And if I can’t, I’ll write for free, like I did for years.”

    This was part of a theme on today’s Core Intuition episode as well, not just sponsorships but also whether having an audience changes how we write tweets and blog posts. Daniel Jalkut and I have been very lucky with Core Intuition so far to have great sponsors: apps and events we already love like Marco’s own Instapaper, Smile’s TextExpander, CocoaConf, iDeveloper TV, NSConference, and Glassboard. Eventually we’ll be approached by more apps and services that we don’t have as much experience with, but as long as we keep our voice and honesty, I’m not too worried.

    → 4:26 PM, Jul 18
  • MAS: there and back again

    Gabe at Macdrifter comments on the shift back to direct download for 1Password:

    "I recall the massive forum discussion about the decision to take 1Password MAS only. I converted to the MAS version in March to get on-board with their product roadmap. Now I see that it is available again as a direct download purchase and @roustem confirms it will receive the next update soon."

    I’ve never liked the idea of being exclusive to the Mac App Store. I don’t think any of those transitions — from 1Password to Pixelmator — were good for users, especially when customers had to re-purchase a product they already owned. I hope sandboxing will at least make more developers think twice about pinning their business to the Mac App Store.

    The blog post continues with this point, and all the good and bad that comes with it:

    "This is the MAS as I see it: It is not for utility apps or power users. Apps like 1Password, TextExpander and Keyboard Maestro should all be purchased directly from the developers site. The MAS is for people afraid of using a computer."

    In other words: it’s good for some users and some apps, and not others. And that’s okay. I have no regrets about pulling Clipstart from the Mac App Store. I think of my app as pretty easy to use, but it’s for people who get file systems and tagging and uploads. Most definitely not for people afraid of using a computer.

    → 4:53 PM, Jul 17
  • 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.

    → 11:24 PM, Jul 16
  • Tweet Marker SSL mistake

    It usually takes a couple problems hitting at once to cause a major server outage. This happened last week when Tweet Marker’s SSL certificate expired. I have the SSL set to auto-renew, but it still requires manually installing the new certificate, and other problems happened along the way.

    First mistake: I didn’t realize it was expiring. Those emails go to an account I don’t check very often, littered with spam. And the email to confirm the renewal went to yet another email address that no longer worked. When I had moved the DNS hosting to Amazon’s Route 53, I had neglected to move over the MX records.

    After fixing all of that, I tried updating the app on Heroku to use the new cert, only to get stalled as Heroku’s new SSL add-on rejected it. Certain I had done something wrong, I fumbled through a dozen Heroku SSL how-to posts before finally reverting to their old SSL add-on. It’s no longer documented and is in fact actively discouraged by Heroku, but it also has the lucky trait of actually working with my certificate. Updating DNS caused another hour-long delay because of the high TTL.

    I sent two support requests during this process, so I thought I’d rate how each company did:

    • DreamHost: Before I figured out the bad email address, I sent DreamHost a question about why the SSL certificate hadn't showed up yet. They responded very quickly, and even included a "P.S." that they were fans of Tweet Marker. Basically they provided excellent support, the best you could ask for.

    • Heroku: When the new SSL add-on wasn't accepting my certificate, I filed a support request with Heroku as well. The response was an automated reply that they don't do support past 6pm. For a hosting company that charges a premium, this was a disappointing response. (They responded first thing the next morning, though.)

    This SSL glitch was the only significant outage Tweet Marker has had in its first year. I learned a few lessons, took the opportunity to check backups and EC2 servers, and now I'm ready to move on. Hoping for an even better year 2.

    → 12:11 AM, Jul 12
  • The neverending feature backlog

    Excellent piece from Joel Spolsky yesterday on software inventory and bug databases:

    “The trouble is that 90% of the things in the feature backlog will never get implemented, ever. So every minute you spent writing down, designing, thinking about, or discussing features that are never going to get implemented is just time wasted. When I hear about product teams that regularly have ‘backlog grooming’ sessions, in which they carefully waste a tiny amount of time and mental energy every day or every week thinking about every single feature which will never be implemented, I want to poke my eyes out.”

    Reminds me of the original Getting Real from 37signals. Back in 2006:

    “So what do you do with all these requests that pour in? Where do you store them? How do you manage them? You don’t. Just read them and then throw them away.”

    And:

    “It sounds blasphemous but the ones that are important will keep bubbling up anyway. Those are the only ones you need to remember. Those are the truly essential ones. Don’t worry about tracking and saving each request that comes in. Let your customers be your memory. If it’s really worth remembering, they’ll remind you until you can’t forget.”
    → 11:12 AM, Jul 10
  • Subscription change, new features

    When I launched Tweet Marker Plus, I documented that it would store “about a month” of tweets. I didn’t want to promise too much before I fully understood the storage requirements. After a few weeks, I officially bumped it up to “at least 2 months”. I also added a full archive of your own tweets, which are never deleted.

    The truth is I’ve yet to write the code that actually deletes any tweets from the database and search index. Eventually I’ll have to, but not yet. So I’ll continue to evolve the service in a way that makes it more useful and sustainable.

    Recently I increased the $2/month price to $5/month, with the search index expanded to 3 months of tweets. Today I’m officially bumping the storage again, to 6 months of tweets. I’ve also changed to monthly billing instead of once every 3 months. Everyone who already has the $2/month plan will get to keep it. No price increase for you, and you still get the new 6-month storage and new features, as a thank-you for being an early subscriber.

    And I’ve added a major new feature. You can now create custom collections of tweets and publish them to share with others. This is a feature from my iOS app Tweet Library, and in fact any published collection from Tweet Library will also show up in Tweet Marker Plus. New in Tweet Marker, you have the option of keeping a collection private or making it linkable, without it showing up when someone browses the list of collections.

    The screenshots linked on the account page include an example of how collections work.

    As a bonus for Mac users, there’s also a new menubar search app. This little Mac app hides in the menubar and gives quick access to searching your Tweet Marker Plus timeline and archive. Here’s a screenshot of what version 1.0 looks like.

    → 7:11 AM, Jul 7
  • Clipstart 1.5

    Today I released Clipstart 1.5 for direct download customers and removed the previous version of Clipstart from the Mac App Store. Even though I’ve written about leaving the Mac App Store several times, actually pulling the trigger was difficult. But I believe it’s the right thing for my app, right now.

    Clipstart 1.5 is still $29. Changes for this release:

    • Now requires Mac OS X 10.7 Lion. Please do not upgrade to this version if you are running 10.5 or 10.6.

    • Added "Consolidate" command for finding videos that have not been imported or duplicates outside the library.

    • Added AppleScript support for uploading videos. See the help menu for scripting examples.

    • Improved performance throughout the app, especially with importing and refreshing video thumbnails.

    • Improved error message when failing to import all videos from a camera.

    • Fixed tags field on Add Folder dialog not resetting tags value after an import.

    • Support for Mac OS X 10.8 Mountain Lion's Gatekeeper security.

    If you've been thinking about buying Clipstart but were on the fence before, I'll throw in a discount for you. Use coupon code MANTONBLOG to save 20%.

    → 3:04 PM, Jul 2
  • La Luna and Paperman

    Since I follow Enrico Casarosa on Twitter, I’ve been hearing about La Luna for what seems like a year. I was so happy to finally see the film run in front of Brave last weekend. Beautifully done and possibly my favorite Pixar short, perfect for a short film. (As an added bonus for seeing it at Alamo Drafthouse, they ran 7 other Pixar shorts before the feature started.)

    There’s so much interesting work possible with short films. Disney apparently has another great one up their sleeves in Paperman. Some of the early hype:

    "From what they told me and from what I've glimpsed in these concept drawings and videos below, it could be a game-changer for hand-drawn animation. In fact, it's a new holistic hybrid of 2D and 3D, thanks to an interface called Meander that they 'hijacked' for the project from a young Disney programmer named Brian Whited, which was then refined by animator Eric Daniels and others. It's a vector-based tool that empowers the animator with digital in-betweening and puts the drawings back on the screen."

    Also check out the series of YouTube teasers from the director: the idea and the look. And the first still shots from the film.

    This kind of has why am I still programming written all over it for me.

    → 9:15 PM, Jun 29
  • Podcasts app

    Podcasts are more popular than ever. We’re lucky right now to have a bunch of podcast networks and great iOS clients, including the newly-released official Podcasts app from Apple. My favorite remains Instacast on iPhone, but there are other good choices like Downcast.

    It’s never easy for developers when Apple arrives into your market with free competition, especially if it might one day be bundled on the OS alongside the Music and Videos apps. I wish the third-party guys the best of luck.

    But for podcast creators, the extra exposure can only be a good thing. I hope we can welcome even more listeners to our Core Intuition podcast. We just opened a new way to send in feedback and questions, too: Glassboard. Use invite code COREINT on the web or iPhone app to join the board and get a little behind-the-scenes look into the podcast.

    → 2:24 PM, Jun 26
  • Sandbox iLife and iWork

    Chad Sellers has a post comparing Mac App Store sandboxing to mistakes from Linux, with this very reasonable advice:

    "I believe that Apple should have at least led the way by sandboxing all of their own apps sold through the Mac App Store (I believe they have not sandboxed a single one of their 17)."

    This reminds me of Twitter. When Twitter forced third-party clients to move to OAuth, but didn’t change their own app to use it, many developers said it was a double standard. Twitter’s response: the official Twitter app was part of the service, not really a separate app, so it didn’t need to use OAuth.

    Maybe Apple could make the same case for Mac OS X’s built-in apps: Address Book, iCal, and Mail don’t need to be sandboxed because they are part of the operating system. But that argument doesn’t work for Keynote or iMovie. Those apps should play by the same rules that all productivity and video software in the store does.

    If Apple were to sandbox a few of these it would go a long way toward convincing developers to do the same. And it would also shake out bugs and missing APIs in the whole sandbox environment.

    → 3:03 PM, Jun 25
  • Ship everything

    David Barnard shares the story of App Cubby’s Timer app, along with this story of a failed project that got out of control:

    “Back in the Spring of 2009 I had this great idea for an interactive music app. A series of 2D/3D scenes that would react in real time to music as well as user input. That idea became Project VJ, a project I worked on for the better part of a year. After hundreds of hours of my time and $50k in expenses, we had a decent prototype. It was a gut-wrenching decision, but in April 2010 I shelved the project, realizing that it would take at least another year and a lot more money to ship.”

    This must have been very disappointing. It’s bad enough for a side project to fail, something that you’ve only invested your time into. With the kind of investment that David talks about it is surely even more difficult to let go.

    I used to get this wrong – too many apps, not enough polish. There are a few products I worked on that never saw the light of day. But I don’t do that anymore. Everything I have worked on in the last 2 years has shipped, in one form or another.

    You have to ship everything because you never know what is going to hit. David Barnard and Justin Youens’ latest, Launch Center Pro, which started as a few-week experiment, reached the iPhone Top 10. You have to ship everything because time is precious. Make the decision early on about whether to start. If it’s worth coding, it’s worth letting the world see.

    → 3:27 PM, Jun 22
  • Growing list of apps leaving MAS

    TextExpander 4 shipped this week, and with the update it breaks from the Mac App Store and instead requires customers to buy directly. TextExpander is the first popular app I’ve seen to do it.

    Moom is another one that actively encourages users to move away from the store. Recently on launch Moom displayed a news window that included this:

    "Apple has activated sandboxing on the Mac App Store; under the sandboxing rules, we can no longer add new features to the App Store version of Moom (we can only fix bugs). However, we have a method by which you can migrate (at no cost) to our direct sales version of Moom, which has no such limitations. For details on how sandboxing affects our apps, and how to migrate to the direct sales version, please read this article on our blog."

    Even Panic – frustrated with the long approval times for Coda 2.0.1 – is experimenting with how best to let Mac App Store customers migrate to the direct version. See this tweet and screenshot from Cabel Sasser.

    This has been a theme on the last couple episodes of Core Intuition. Daniel Jalkut and I talked about how we feel about sandboxing after WWDC, and more on my decision to migrate Clipstart out of the store. Things are getting better in Mountain Lion, and I’ll revisit my decision next year, but for now I think I made the right call to focus on work outside the Mac App Store.

    (And if you haven’t listened to the podcast recently, check out the new episodes and subscribe. We’re now a weekly podcast!)

    → 2:48 PM, Jun 22
  • Facebook

    From a great story on Mark Zuckerberg in New York Magazine:

    “‘Mark has done two things in his twenties,’ a colleague of Zuckerberg says. ‘He has built a global company, and he has grown up.’ The second one made the first possible. When early mistakes risked an employee mutiny, Zuckerberg knuckled down and learned how to lead.”

    It covers founding the company, Sean Parker, other execs, the Instagram purchase, and more. I’ve got new respect for what Zuckerberg has accomplished after reading this.

    Several years ago, when Yahoo or Microsoft or whomever was rumored to have offered a billion dollars to buy Facebook, I thought Zuckerberg was foolish and arrogant for not selling the company. I didn’t get how it could be a real business, ever worth more. Looks like I was wrong.

    Of course, the narrative of the last week is that the IPO disappointed, with the stock steadily falling since its debut. But that’s only relevant if you want a quick win. The long-term view says that Facebook is here to stay, and that the company’s growth is a reason to celebrate. Not for the service or founders, but for the success of so many great developers and designers who are now part of the public company: Instagram, Gowalla, Push Pop Press, Sofa, and others who are working inside Facebook, trying to build something great.

    → 5:07 PM, May 31
  • Clipstart 1.4.2 (on MAS)

    Just approved in the Mac App Store, Clipstart 1.4.2 fixes upload issues with YouTube and especially Vimeo, which was broken in previous releases because of Vimeo API changes. I expect this to be the final Mac App Store release for Clipstart. As I blogged about before, all Mac App Store customers can upgrade to the direct download version for free.

    Here’s what you should do if you bought Clipstart from the Mac App Store:

    • Update to Clipstart 1.4.2 using the App Store app.

    • Run Clipstart at least once, then quit it. This allows it to copy the Mac App Store receipt so that it's accessible to other versions of the app.

    • Download the latest version from the main Clipstart web site and replace the existing copy in your Applications folder with the direct download.

    And if you're thinking about buying Clipstart for the first time, please get it directly from the web site and checkout via PayPal. There's also a demo with support for 2 uploads and tagging 20 videos.

    I’m now turning my attention to version 1.5, which will improve a few things and add support for Gatekeeper on Mountain Lion.

    → 7:30 PM, May 25
  • Bootstrap CSS

    I’ve been using Twitter’s Bootstrap in an internal project at VitalSource for a few months, and over the weekend I finally switched to using the CSS framework in Tweet Marker too. The layout now works in more browsers and provides a much better foundation for design changes. It also allowed me to integrate this excellent date picker.

    Here’s a short screencast video showing the date picker in a new browsing feature in Tweet Marker Plus. I’m very happy with how this turned out — both the look and functionality. On the server the date ranges are implemented with a Sphinx query, so they can be combined with search terms to help find old tweets.

    → 9:07 AM, May 7
  • 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.

    → 7:47 AM, May 3
  • Saying goodbye to Wii Transfer

    “Around here, however, we don’t look backwards for very long. We keep moving forward, opening up new doors and doing new things, because we’re curious… and curiosity keeps leading us down new paths.” — Walt Disney

    There are many posts on this blog about Wii Transfer, the little Mac app that launched commercially almost by accident, and convinced me that it would be worthwhile to invest time in this side business called Riverfold Software. Early posts like the launch post in 2006 or this one about the first 75 days, and this one covering the price bump in version 2.5. But the app has been fading over the last couple of years, no longer as relevant today as it once was. It’s time to let it go.

    I’m retiring Wii Transfer to focus on my other apps. It’s not that it doesn’t sell; it still does. It’s just that it’s not an app I actually use anymore. By officially shelving the whole project, I hope to remove a psychological burden of sorts — to no longer worry that I’m ignoring an active product.

    It also doesn’t fit into a new theme I have for Riverfold: apps that are all about keeping and remembering what matters. For Clipstart, that’s family videos. For Tweet Library and Tweet Marker Plus, that’s old tweets. Wii Transfer is about… listening to music on your Wii? It doesn’t fit, and in the world of the Apple TV and Roku, modern streaming technology has passed the app by.

    If anyone is disappointed that Wii Transfer will no longer receive updates, of course I offer refunds. I won’t be selling or open sourcing the app, preferring instead to continue to support existing customers myself for as long as they want to use the app. And I’ll keep the automatic bookmark service running that makes setup easy, as well as the Mii rendering service, so nothing breaks.

    I put a lot of work into Wii Transfer over its 5-year lifespan. It’s not easy saying goodbye, especially to some of the unique things that only Wii Transfer could do, such as exporting Miis as images. Maybe I can bring that back one day. For now, I’m following the path started by my apps Tweet Library and Clipstart, for which there are many new things still to do.

    → 5:30 PM, May 1
  • Clipstart 1.4.2

    I released a small bug fix update to Clipstart today, version 1.4.2, to fix an issue with YouTube uploads when using your Gmail address sign-in instead of the YouTube account username. This version should also show up in the Mac App Store after it goes through Apple’s approval process. You can see the full release notes for recent bug fixes here.

    As I said earlier this year, there will only be a couple more releases of Clipstart in the Mac App Store. My current plan is to switch completely over to direct-only sales with version 1.5. The new versions run without prompting for registration if you’ve already purchased and run a copy from the Mac App Store.

    → 4:40 PM, Apr 29
  • Picking the right brand

    You may not notice it right away, but Tweet Marker Plus is the start of a big migration for my Twitter projects. The backend infrastructure for tweetlibrary.com will be moving there, so that Tweet Marker can have access to published collections. And a major web feature to complement Tweet Library — originally written for tweetlibrary.com last year but never released — will be launching on Tweet Marker Plus instead.

    Essentially, Tweet Marker will be the web app and web services. Tweet Library will be the native iOS client only.

    This has a few pretty big advantages for me:

    • One web app to manage instead of two.

    • Other Twitter apps can access the collections publishing API.

    • Tweet Marker is a better brand than Tweet Library.

    More people know about Tweet Marker. It just makes sense to build any new web features on top of that existing name.

    The first step in this transition is ready now: published collections can be accessed via tweetmarker.net. For example, see this collection of tweets from the game Millinaut by Shaun Inman, Neven Mrgan, and Alex Ogle.

    → 5:23 PM, Apr 26
  • VoodooPad 5

    VoodooPad 5 is out this weekend, with a new file format that plays nicely with Dropbox. Gus Mueller says:

    “No more connecting to WebDAV servers and having to deal with authentication issues and strange HTTP errors. Now you can just put your VoodooPad 5 document in a Dropbox folder and VP will detect when pages have been updated.”

    This is another good example of where web APIs like Dropbox can be more useful than iCloud. Multiple people can collaborate on a VoodooPad document, and the direct download and Mac App Store copies of VoodooPad can sync together.

    Also new in version 5 is native support for Markdown and an ePub export option. The workflow for help documentation that I posted 5 years ago carries over to VoodooPad 5 just fine, too.

    → 3:06 PM, Apr 22
  • Indexing the hidden web

    There has been some good commentary on Sergey Brin’s interview with the Guardian. It’s probably best summarized in John Gruber’s comment:

    The assumption here is that the only way to search is through Google, and that the "open Internet" is only what Google can index and sell ads against.

    This resonates with me because I think Google has put enough ads on the internet. It’s impossible to take anything Google says at face value if they talk of “open” but their intentions say “ads”. But here’s the thing: Brin is actually right. There is great data hidden behind apps that should be indexable.

    In the race to win the App Store, we forgot about the web. Think about Instagram. Millions of photos are being shared that are inaccessible via a search engine. These photos can’t be found again and aren’t discoverable. When you search the web, how does it make sense that public photos on Flickr show up, but public photos on Instagram do not?

    We shouldn’t have to choose between Apple’s closed systems and Google’s ad-driven business. I want to talk about improving the web without automatically being pro-Google. This tweet from John Marstall made me realize it:

    I'd prefer to separate "indexable" from "indexable by Google." Yes, they're mostly the same for now. Might not always be.

    We need competition in web search. More than Bing. A new search engine is the number 1 item from Paul Graham’s frighteningly ambitious ideas:

    The best ideas are just on the right side of impossible. I don't know if this one is possible, but there are signs it might be. Making a new search engine means competing with Google, and recently I've noticed some cracks in their fortress.

    Of course it’s crazy, but so was the 1st search breakthrough, lightning-fast AltaVista, and so was the 2nd major innovation, Google itself. It’s time for a search engine that isn’t all about ads. It’s time for search that understands apps and embraces data from web services as much as it does from web sites. It’s time for the 3rd act in search.

    → 3:27 PM, Apr 17
  • iCloud vs. the web

    “This MacStories article”:www.macstories.net/stories/i… covers the progress that developers have made adopting iCloud over the last 6 months. Over the next 6 months, we should have an even better appreciation for what iCloud is and isn’t good for.

    For iOS backups and iTunes Match, iCloud is fantastic. For private, app-specific data that doesn’t make any sense away from a single developer’s native Mac and iOS apps, it’s also excellent. There’s no question that using Macs, iPhones, and iPads today is a significantly better experience thanks to iCloud.

    But there are two fundamental limitations in iCloud that make it inappropriate for a bunch of syncing uses:

    • No way to access it from other platforms or web apps.

    • No way to share data between apps from different developers.

    I don't expect Apple to change this. Again, for what iCloud was made for, these limitations are fine. It simply means that iCloud cannot replace web APIs that do solve these two problems.

    “Here’s what I wrote”:www.manton.org/2011/06/f… not long after announcing the Tweet Marker API:

    "The primary goal with Tweet Marker is to enable different Twitter apps to work together. iCloud is designed for storage and syncing only between apps from the same developer, so it's not appropriate as a replacement architecture for Tweet Marker."

    Think back to the so-called Web 2.0, which gave us web services to access previously closed-off data. This eventually led to truly dominant syncing APIs like Dropbox, Simplenote, and Instapaper. At the same time, we all have more devices than ever before. Syncing exploded on iOS in text editors and note taking apps. Without a proper shared file system between apps, or even an event or scripting system, these iOS apps looked to web APIs as the only way to communicate.

    That has turned out wonderfully. With web APIs as the only solution, we see more compatibility between apps and more web services popping up all the time. If you create a new web app, it’s dead without an API. Every success of the modern web, from Flickr to Twitter, has an API that is available from any platform.

    So then what about iCloud? If Web 2.0 made data more accessible, iCloud takes that same data and… keeps it closed. It’s a step forward on user convenience and a step back on interoperability.

    If you’re a developer considering iCloud support, just make sure your data fits there. Ask yourself if your data is all about your app, or if it’s bigger than your app. Developers who are willing to take a risk on building an open API instead of iCloud could see new opportunities: web-based views of their data, compatibility with other apps, and syncing on the Mac outside of the App Store.

    A couple years ago, “Shawn Blanc said about cloud syncing”:shawnblanc.net/2010/08/s…

    "And my next wish? A cloud-based service like Instapaper, but for to-do items. I want it to be available in apps like Tweetie, Reeder, and more, so when I click on 'Do Later' it sends the link or item of note into a running to-do list (that syncs with Things, of course)."

    Imagine if Things or OmniFocus or another tasks app opened up a slice of their private syncing API to make the Instapaper of to-do inboxes. Now take other APIs for all of the useful apps we use. Not just to-do apps as Shawn mentions, but RSS, photos, blog drafts, sketches, and more.

    What I wrote above about Tweet Marker is still very much true. Since then, Tweet Marker has become the standard for last-read syncing between Twitter apps, with support for 15 apps and many more in development. I want to see more syncing platforms like this. Let’s think big and make apps work together.

    → 9:24 AM, Apr 16
  • 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.

    → 9:04 PM, Apr 12
  • Instagram and hosting

    I love reading about how big sites use Amazon EC2. If “this post from Instagram”:instagram-engineering.tumblr.com/post/1364… is still accurate, they must be at something like $50k/month in hosting costs. Their user base has doubled in the 4 months since they posted that.

    My setup for Tweet Marker is trivial by comparison, but to me — without Instagram’s $7 million in funding — it’s a very big deal. What I wrote “back in October”:www.manton.org/2011/10/r… about moving to Redis is still mostly true, although I’ve added MySQL and Sphinx to the mix. I now run with 3 Amazon EC2 “medium” instances and have 5 web dynos (with 3 Unicorn processes each) at Heroku.

    I put everything from donations back into the servers. For Tweet Marker to work, it had to be rock solid. It had to scale. It’s only the first week for “Tweet Marker Plus”:tweetmarker.net/plus subscriptions, but already I have a good feeling that it’ll all pay off.

    → 2:24 PM, Apr 6
  • Tweet Marker Plus and API v2

    Tweet Marker is going really well. It’s growing fast, users love it, and it has wide support in all of my favorite Twitter apps.

    Today I’m announcing the next step for the service: Tweet Marker Plus. This is a paid subscription with additional features, such as a brand new search and a web-based timeline that syncs with Tweet Marker. Along with Plus, I’m rolling out version 2 of the API.

    We’ve learned a lot over the last few months. Here are some of the things that I wanted to improve for the next version of Tweet Marker, both for the API and the business.

    • Consistent behavior across clients. It was fine at first for everyone to experiment with their own way to use the API, but now it's time to come up with some best practices to guide developers.

    • More frequent sync. Mac and iPad clients in particular — where the app may stay in the front for some time — need to be hitting the server at regular intervals to catch changes from other devices. I believe this is the most common source of problems.

    • JSON-based API. The "v2" API should use JSON and carry more metadata, such as timestamps for the tweets and when it synced.

    • Profitable hosting. Although I've accepted donations since nearly the beginning, hosting costs are way up. I didn't originally intend to turn this into its own business, but that is the clear way forward. It needs to bring in consistent revenue to cover hosting now and into the future.

    With paid subscriptions, I can tackle the above bullets and also add more features. The first new feature to launch as part of Plus is a new search. Tweet Marker Plus indexes tweets from your friends so that you can find tweets later. It's the solution to use when you don't want to search all of Twitter, but you also want a large collection of tweets, not just the most recent ones that many clients store and filter.

    Tweet Marker Plus is $2/month. You can sign up today at “tweetmarker.net/plus”:tweetmarker.net/plus. Also check out “the screencast”:www.riverfold.com/software/…

    The API documentation has moved to Github and is “also available now”:github.com/manton/tw…

    → 1:48 PM, Apr 2
  • 10 years and 37signals

    Every year on March 9th, as SXSW is getting started, I like to mark the anniversary of this blog. This time it’s the 10th year.

    My second post back in 2002 was about a panel run by 37signals. I wrote:

    Ernest and Jason really get it – I hope they inspire some designers to think about web sites in a new way, and finally start focusing on usability and page load time and cut the fancy graphics, roll-overs, and animations.

    This was a couple years before they reinvented themselves as a software company with Basecamp. As the new Basecamp launches this week, it’s fascinating to think back on how far 37signals has come. The web is bigger now and more complex. Subscription web apps are everywhere. But I think the focus on performance that drove Jason Fried and his original co-founders to promote simple design in that SXSW panel a decade ago is still very much at the heart of what 37signals does.

    → 6:28 PM, Mar 9
  • Sandboxing follow-up

    The day after I “wrote about removing Clipstart from the Mac App Store”:www.manton.org/2012/02/s… Apple announced that the sandboxing requirement would be delayed again. In that announcement was also a new twist: sandboxing would not be required for bug fix updates to existing apps.

    This is welcome news, but I stand by my post. I still plan to transition Clipstart away from the MAS. The difference now is that I can do it at my own pace, providing a new version or two to MAS customers that will make the move easier.

    I’ve already gotten started. Clipstart 1.4 just shipped with a few new features and better support for recognizing MAS receipt files. I’ve also submitted it to the Mac App Store, where it is waiting for review.

    It’s not clear where we are going to end up with sandboxing. “Quoted in Macworld’s coverage”:www.macworld.com/article/1… Paul Kafasis suggests that sandboxing is so flawed that Apple should just scrap the whole thing.

    “Michael Tsai talks about”:mjtsai.com/blog/2012… all the work that is required to stay in the store. He closes with something that I’ve been thinking about:

    "At each step of the way, it looks like just a little more work to get into the Mac App Store, or to stay there. Until the next issue pops up. And then, if you're successful, you're sort of locked into it due to the reasonable expectations of your many customers."

    This lock-in creates two immediate problems with leaving the Mac App Store:

    • What about customers who may have originally bought the app directly from me, but decided to "upgrade" to the Mac App Store version? I'm sure I only have a few of these, but it's still unfortunate if someone bought the app twice. I'm just glad I didn't follow the lead of MAS-exclusive developers, such as "Pixelmator's effort to encourage customers":[www.pixelmator.com/blog/2011...](http://www.pixelmator.com/blog/2011/01/06/transition-to-the-mac-app-store/) to switch to the MAS.

    • How do current Mac App Store customers get notified that there is a new version available outside the store? Sparkle is not allowed in the MAS, but I think the right thing to do here is provide a similar notification in the app. It would link to a web page with instructions for downloading the app directly.

    I'll admit I have some regret leaving the Mac App Store. It's just so convenient for purchasing and installation. If I'm going to make this work, I'll have to redesign my own rather clunky purchase and activation experience. And I'll have to do a much better job of marketing, something that has not been easy with Clipstart.

    → 10:05 AM, Feb 24
  • Sandboxing and Clipstart

    I wrote a draft of this post a few weeks ago, before Mac OS X Mountain Lion was announced. It was pretty critical of Apple’s aggressive approach to sandboxing, and I’ve kept most of that, but the new Gatekeeper feature for Mountain Lion at least gives me a way out. I don’t think Apple would have created Gatekeeper if they planned to abandon apps sold outside of the Mac App Store.

    For the next release of my app Clipstart, I will be removing it from the Mac App Store and only selling directly from my web site. With Gatekeeper I hope to have some confidence that my customers will still be able to run the app on future versions of the OS.

    But let’s take a step back, to a good blog post from Craig Hockenberry on moving xScope to use sandboxing. One of the most important things to keep in mind is that what works for one app may be unsuitable for another. Craig touches on this with an example from Panic’s Transmit:

    "Of course there are some applications that have a harder time than others: primarily if those apps require access to all or part of the filesystem (think about syncing data with Transmit, for example.)"

    Clipstart also falls into the same “needs to access the whole file system” category as Transmit. It’s not just one feature; the whole app is based on the fact that it can point to video files anywhere on the system, or manage your video library in a central location on any hard drive. These are things that are difficult to do in the sandbox, but even worse, I don’t see a clear path forward for existing customers to move into such a restrictive environment.

    Maybe I could file bugs with Apple for exemptions, and reduce the functionality of my app to fit within the limits of the sandbox, but I’ve made the decision that it is just not worth it. I would much rather spend 100% of the time I have for Clipstart on new features only, not playing catch-up with Apple.

    Atlassian has made a similar decision for their app SourceTree. On the sandboxing restrictions:

    "The trouble is, the sandboxing implementation currently in place on Mac OS X Lion doesn't allow for all the behaviours that real Mac applications do _right now_, behaviours which are not at all contentious, are approved in the Mac App Store already, and indeed are very much appreciated by users."

    Daniel Jalkut continues this argument, saying that sandboxing could be good for developers, if only the current entitlements weren’t so very incomplete. That’s true. But we can only make decisions based on what entitlements and APIs are there today, and today it’s not enough.

    I will try to make this casualty of sandboxing as painless as possible for Clipstart customers. I will honor Mac App Store receipt files so that everyone can migrate to new versions of the app. And I’ll provide extra serial numbers to anyone who asks, for fresh installs on machines that never had the Mac App Store version.

    Clipstart has turned out to not be a very good fit for the Mac App Store anyway. It’s the kind of app that you need to download and try out before committing your whole video library to it. Sandboxing is just the latest and most significant in a series of frustrations with the MAS.

    For my customers, sandboxing isn’t actually a feature; it’s a bottleneck to getting work done. I can’t justify spending any time on it. I already have a product and platform (Tweet Library for iOS) where I can play the app review game. I want my Mac app to be a break from that, with a total focus on making the app better and a release schedule and feature set that I control.

    So it was a relief to hear about Gatekeeper. I don’t want pulling Clipstart from the MAS to automatically doom the product, and now I don’t think it will. Instead of shying away from features that won’t work in the sandbox, I can even embrace them as a competitive advantage. I’m more excited than ever to get back to Mac development without this decision and chilling effect hanging over my head.

    → 9:45 PM, Feb 20
  • Tweet Marker wins a Macworld Eddy

    A few times since it launched, I’ve said to friends that Tweet Marker may be the best thing I’ve done. It has reached more users than any of my indie Mac and iOS apps, and it has been especially rewarding to work with other Twitter developers. It’s not perfect yet — there’s more to improve in future versions of the API and clients — but I smile every time I see a tweet about how someone can’t imagine going back to a Twitter client without it.

    So it was really gratifying to see “Macworld recognize Tweet Marker with an Editors' Choice Award”:www.macworld.com/article/1… for 2011. Thank you Macworld for seeing Tweet Marker as an important part of the Twitter experience.

    And thanks to “all the Twitter app developers”:twitter.com who have supported Tweet Marker in their apps. We are up to 9 supporting apps across 5 platforms — Mac, iPhone, iPad, Chrome, and Android — with more on the way. I’ve opened up the API to over 40 different clients in various stages of research or testing.

    Tweet Marker is a little unique among most of the other Eddy winners this year in that it’s still completely free. I won’t see a sales spike following the announcement. If you’ve been enjoying the service, consider picking up a copy of my iPad app Tweet Library, or donating directly “on the site”:tweetmarker.net/.

    → 3:38 PM, Dec 8
  • Redis-only migration

    The best critique and praise for Heroku is that it’s opinionated: only deploy with Git, only use PostgreSQL. On the whole this is a good thing, because it simplifies the choices that developers have to make. Fewer choices means more time to spend on things that matter.

    But at $200/month for a dedicated database, there’s a very real cost with PostgreSQL on Heroku. For a service like “Tweet Marker”:tweetmarker.net that is currently free, I wanted to save money on hosting and simplify things down to a single database. I might have preferred to streamline to PostgreSQL-only, since it’s rock solid and Heroku’s tools are excellent for managing backups and moving data around, but Resque (which Tweet Marker uses to process background work) is built on Redis. If I wanted to streamline to a single database, it had to be to Redis.

    Tweet Marker as essentially an OAuth-wrapped key/value store anyway, so why burden the app with a full relational database? The handful of extra tables I had for tracking users and sessions could also be migrated to Redis. And even though it’s a memory database at heart, it is persistent, so I can use it for real data.

    I conducted the transition in stages:

    • First, I was using Redis for stats. Because Redis has an atomic increment command, it's trivial to use it to keep counters on various metrics: total number of reads/writes per hour, day, or month, broken down by different Twitter clients. This was my first use of Redis outside Resque tasks and it performed great.

    • Next, I moved the marker data. I wrote a script to dump all the data from PostgreSQL to Redis, and at the same time modified Tweet Marker to write data to both locations when requests came in. I let that run for about 2 days to confirm that the data was identical in both places before shutting PostgreSQL down and routing reads to Redis only.

    • Finally, I finished moving some additional tables to Redis so that I could completely shutdown PostgreSQL. Again, simple is better.

    All of this was using Heroku's "Redis To Go":[redistogo.com](https://redistogo.com/) add-on. I love it because there's no configuration; click a couple buttons and you have a server. But as soon as I was running full time on Redis To Go, I started to be concerned that I had given up a great amount of control over my data. While Redis To Go conveniently offers daily backup snapshots, it doesn't appear to have any commands for restoring data or otherwise getting access to the server and Redis files. And though I could probably set up a separate Redis To Go instance and manually send it a slaveof command to turn it into a slave, not being able to edit the config file meant that if the server was rebooted I would lose the slave until it could be reset. Not good.

    I also expected I would quickly outgrow the smaller Redis To Go plans, eventually forcing the monthly pricing up to the same level as I was paying for PostgreSQL, but with less control. I had to run my own database server instead. And because Heroku is all on Amazon EC2, it also had to be on EC2 for the best performance between web server and database.

    I went to work provisioning an EC2 instance. Initially it ran as a Redis slave to the master on Redis To Go. After I felt comfortable with EC2 and had automated backups in place, I added a separate instance on Amazon for the master and switched the app over to it. The cost for 2 “micro” instances is about the same as I was paying for Redis To Go, but with much more available memory, hourly backups to S3, and access to the Redis aof log. And my total monthly hosting costs are about half what they were before.

    I’m hoping to keep this setup for at least the rest of the year and well into next. As the Tweet Marker user base grows, I’ll bump up to higher-capacity EC2 instances. Heroku continues to be really great, so I don’t expect to change anything there.

    → 3:20 PM, Oct 25
  • SXSW 2012 and Twitter API innovation

    The short version of this post is: “please vote for my SXSW talk”:panelpicker.sxsw.com/ideas/vie… which I’ve proposed with David Barnard of App Cubby. If selected, we’ll be talking about how to innovate on top of Twitter, using examples from the history of Twitter apps in the App Store including Tweet Marker, Tweet Library, and David’s upcoming app Tweet Speaker. Equal parts business and APIs, I hope it’ll capture how much we can still do if we think beyond the Twitter basics.

    The longer story is that SXSW is always changing. I started this blog on the first day of SXSW 2002, when the conference was just a few rooms in a single hallway, and I’ve seen it grow to more than a few venues spread across downtown Austin and even farther out. That’s okay. There’s a place for small events, as SXSW once was, and there’s a place for the event where the blogging, design, social network, and software folks can meet in one place.

    Take the Mac and iOS development world. This year alone has NSConference, Voices That Matter, 360|iDev, 360|MacDev, CocoaConf, MacTech, Çingleton, and SecondConf. These attract developers from all over the country, but most people can attend one at most, and many events are regional conferences at heart.

    We need WWDC as the single place. No matter how great the smaller conferences are, WWDC is the big one, the one you don’t miss. And so it is with SXSW.

    I believe SXSW 2012 is going to be fascinating to watch. A couple years past when everyone already thought it was too big, 2012 could see real turnover. Some previous attendees will skip it, and many new people will speak for the first time. I want to see that conference, to find out what its themes and focus will be, and hopefully “our talk”:panelpicker.sxsw.com/ideas/vie… can be part of it.

    → 10:06 AM, Sep 1
  • Tweetbot + Twitterrific

    The second app to support “Tweet Marker”:tweetmarker.net has arrived, and it’s a great one: “Tweetbot”:tapbots.com/software/… I love using Tweetbot on the iPhone and Twitterrific on the Mac and iPad. Seeing these apps work together just makes for a better Twitter experience.

    Here are a few tips to keep in mind while using apps that support Tweet Marker:

    Turn it on! First things first: enable Tweet Marker in both apps on every device you plan to use Twitter on. MacStories has a good summary of this (with screenshots) for “their coverage of Twitterrific”:www.macstories.net/mac/twitt… and “again for Tweetbot”:www.macstories.net/news/twee…

    What syncs? Only the main timeline and mentions sync between the apps. While working with these developers, we made a decision to change how Twitter lists sync after Twitterrific had already shipped. So while both apps think they are syncing lists, the format on the server is not compatible between the two. A future version should fix this.

    How to switch apps? Most apps take the approach of saving the last-read position when the app is quit or sent to the background, and restoring it again when it is launched or brought to the front. You may need to change your default habits a little to get the most accurate behavior. When you know you are going to switch apps, just close your active Twitter client first before opening the next one. It may also help to wait for the app to download new tweets before scrolling or interacting with it.

    → 10:41 AM, Aug 28
  • Hosting for Tweet Marker

    Today was day 7 of the “first app”:twitterrific.com to ship with Tweet Marker support. Overall, things have been working great. I thought I’d write a little bit about my hosting experience so far.

    First, the good news: the service is up and fast. Twitterrific is sending a lot of traffic, even with the preference off by default, but the server app is architected in such a way that things are zipping along nicely. Performance is especially important on the iPhone, where a Twitter client might be saving state on quit and any lag would be pretty obvious. Non-trivial server work, such as hitting the Twitter API, is done in the background using Resque, and the queue size there is usually small too.

    There have been two distinct problems, though. Each was a good opportunity to improve the system.

    On the first day, the background queue stalled and the requests piled up, so much so that my Redis instance ran out of memory and clients started receiving errors. I upgraded Redis, restarted the app, and bumped up the number of processes to quickly catch up on the backlog. Although it hasn’t resulted in errors since, it has delayed some requests on 2 more occasions after launch. I also adjusted how I’m collecting statistics to further improve performance.

    More recently, I’ve noticed some sporadic SSL errors when Tweet Marker tries to verify the user account via Twitter. I added more wait-and-retry logic, and I’m keeping an eye on this to kick the background script if necessary. There have been no errors in the last couple days.

    I still think it was the right decision to host on Heroku. Although I am manually monitoring the server for general health (need to automate this badly), everything is less work than I would do with a colocated box or VPS. The biggest cost is that at the last minute I upgraded to Heroku’s dedicated PostgreSQL database. I’m still evaluating that, but I would rather launch with too much horsepower and scale it down later, than not enough.

    Again, thanks for your support. It is a little nerve-racking because I know that “other people”:www.iconfactory.com are depending on Tweet Marker being up and performing well. This is a different experience for me than working at a “larger company”:www.vitalsource.com with a dedicated system administrator, and also different than server backends for my Riverfold products, where it is only my own customers who will be disappointed if I fail.

    → 10:06 PM, Aug 15
  • Wii Transfer 2.7.2

    And now for something completely different. I released a bug fix update to “Wii Transfer”:www.riverfold.com/software/… last night, the first in over a year. It doesn’t have some of the bigger things I’d like to finish for the app, but it does have an important bug fix to Mii rendering.

    At some point in a recent update to Safari or Mac OS X, Miis started appearing blank in Wii Transfer. These are rendered in an offscreen window using Flash, then saved as thumbnails in Wii Transfer with the option to export a JPEG. The fix — for reasons I’m still not clear on — was to switch to using NSBitmapImageRep’s cacheDisplayInRect instead of initWithFocusedViewRect. Needless to say, customers were frustrated that this was no longer working, and I’m sorry I didn’t take care of the problem more quickly.

    I’ve been thinking a lot lately about the future of Wii Transfer and its companion “@wii”:twitter.com/wii Twitter account. This little Mac app is overdue for a rename and refocused feature set.

    → 5:29 PM, Aug 14
  • Tweet Marker bootstrap

    Tweet Marker is getting big. I couldn’t be more excited that “Twitterrific 4.3 is now shipping”:twitterrific.com with syncing across Mac, iPad, and iPhone. “Users love it”:tweetlibrary.com/manton/tw… and many are rediscovering Twitterrific or becoming new customers just because of this feature.

    More apps are coming, too. Craig Hockenberry, from a “Macworld article by Dan Moren”:www.macworld.com/article/1…

    "The real value is having something that works well across the entire Twitter ecosystem. It's our belief that Tweet Marker will become more useful as more clients support it."

    I struggled with how to build, price, and launch Tweet Marker. The first developers to use it are taking a risk, so I felt I had to remove the friction of supporting the service by making the API free. To cover hosting costs, I plan to later make an optional paid subscription available for developers who want more than the basics.

    But we’re not there yet, and some people have asked how they can support Tweet Marker directly. As an experiment, I’ve put up a donation button over “on the Tweet Marker site”:tweetmarker.net/. Think of it as a small investment in the service, a bootstrap to get things off the ground and remove the stress of scaling.

    It is not, however, a substitute for supporting client developers. Please pick up a copy of Twitterrific, and when my app Tweet Library is available with sync I hope you’ll consider that as well. Thanks!

    → 1:23 PM, Aug 13
  • Twitter app chance

    Five years ago today, I joined Twitter as its 897th user, though for some reason “my first tweet”:twitter.com/manton/st… wasn’t until a few months later. So much has changed in the meantime — the API always in flux, the transition from primarily SMS, to web, to apps — but in many ways the core of the service remains intact and stronger than ever. Short messages, distributed efficiently to friends.

    I talked about some of the good and bad of being a Twitter developer “on the ATX Web Show last week”:atxwebshow.com/2011/07/0… There have been a string of changes that cause developers to scramble: turning off basic auth, discouraging mainstream clients, disabling DMs for xAuth. With each step, Twitter loses a little goodwill, and that’s demonstrated in the tweets I “collected over the xAuth change”:tweetlibrary.com/manton/xa…

    Even as Twitter passes 1 million registered apps, there’s a risk that some developers will stick with the platform as users only, putting their apps in maintenance mode. In May, “Kiwi developer Isaiah stopped development”:yourhead.tumblr.com/post/5550… of his Mac Twitter app:

    "I'm just going to take a break from Kiwi for a while. It's still for sale. I still support it. I'll still fix bugs when they crop up. But adding new features and playing catch up with the other guys/gals is off the table."

    Maybe because I don’t have to depend on Tweet Library sales, I tend to more stubbornly ignore what is good business sense. There’s so much I still want to do. As “I wrote in my previous take”:www.manton.org/2011/03/t… on the state of the platform: “I’m a little discouraged, but not enough to stop.”

    I think that’s doubly true today. More annoyed, but also more determined to plug holes in the platform, from archiving to syncing. I couldn’t be more excited about the developers who are building in “Tweet Marker”:tweetmarker.net support.

    And there’s always a chance, a feeling that something big is just around the corner. That if I don’t add that one feature, or open up that new API, I’ll miss the tipping point that makes Tweet Library really take off.

    → 11:45 AM, Jul 14
  • iPad Pro is the new iPod Photo

    I’m fascinated with the iPad “3” rumors because on the surface they make so little sense. Apple just shipped the iPad 2, no competitors can match it, and demand is strong. Why mess with a good thing so soon?

    But it almost fits when you give it a name like “Pro” (or iPad Retina, or whatever). This isn’t a replacement for the current iPad; it’s another layer to the product lineup. And like the awkwardly-named iPod Photo from 2004, I bet the iPad Pro is meant to be temporary. It’s a way to sell a high-end, over-priced and over-pixeled iPad before the technology is cheap enough for the masses. A year or two from now, the Retina Display will be available in all iPads, and the “Pro” name will fade away, just like iPod Photo did when all iPods got a color screen.

    → 6:00 PM, Jul 12
  • Push-based sync

    “Guy English writes about iCloud”:kickingbear.com/blog/arch… and the magic glue (Push Notifications' persistent connection) that makes it work:

    "Each of these new features tickle the persistent 'push' connection and trigger some action on the device. The short-form state may be transmitted immediately and set on any connected device within moments. Document syncing is likely to trigger a negotiation process to compare the state on any one device with The Truth stored on Apple servers and replace the document on the device with the latest revision — this has the advantage of limiting the window between syncing where conflicts are most likely to occur."

    Sync speed matters. The first note sharing server I built for VitalSource years ago assumed a lot of offline time, and despite “my blogging in 2007 that it was”:www.manton.org/2007/01/b… “magic”, in practice it could take 5-10 minutes before all your computers got their act together to get a set of highlights completely synced. With that kind of lag, note edits might happen on a client in the meantime, so we remembered conflicts everywhere and had a UI for resolving them.

    Too complicated. The new system, recently rolled out in Bookshelf for iPhone and iPad, syncs so much more efficiently and quickly that conflicts don’t need the same emphasis. We can throw away a bunch of code and simplify the user interface.

    I’ve yet to do anything with iCloud except read the release notes and sit through a couple WWDC sessions, but we’re going to have a fantastic platform if it can deliver the same speed and reliability of Push Notifications. Guy’s post is the first I’ve seen to connect the dots, capturing how well-positioned Apple is to use this plumbing for all sorts of stuff.

    → 11:13 AM, Jul 1
  • Direct download as a bargaining chip

    In the closing paragraph of “my Mac App Store follow-up post”:www.manton.org/2011/06/m… I suggested that eventually most developers will exclusively distribute through the App Store. John Brayton, the developer of “CloudPull”:www.goldenhillsoftware.com for Google Docs backup, “called this out on Twitter”:twitter.com/johnbrayt…

    "Good post, but disagree that selling outside the MAS won't be worthwhile. IMHO we should be using our own stores as bargaining chip."

    “In a thread to the MacSB mailing list”:tech.groups.yahoo.com/group/mac… John has a related version of this reasoning:

    "Selling independently provides protection against Mac App Store policy decisions that could affect my app. If Apple decides tomorrow to kick me out of the Mac App Store, I would take a hit but I would still be able to sell my app."

    I couldn’t agree more, to both points. There may be some advantages to going App Store-only — less initial setup for checkout and licensing, no confusion about which version to buy, or where to upgrade — but indie Mac developers should be doing everything they can to control their own destiny. Having your own store is just good business sense.

    → 9:52 AM, Jun 26
  • Focusing on the wrong things

    “Great post from Garrett Dimon”:garrettdimon.com/post/6724… on his biggest mistake building the bug-tracker Sifter:

    "I got bogged down watching our bottom-line even though we've always been comfortably profitable. I worried about preventing fraud even though the only instance we ever encountered only cost us $200. I constantly worried that Sifter could go down at any moment even though we've had 99.96% uptime since launch. [...] All of these little things were distracting me from the work that really mattered."

    For a small company, focusing on the wrong things will make or break a product. I’m guilty of the same thing. I sat on “Tweetmarks”:tweetmarks.net for 6 months without launching it because I was worried about how to pay for hosting and how to get developers involved.

    Sometimes there’s no obvious solution until you ship. Eventually it becomes easier to know when to be patient — to solve a problem right the first time — and when it’s needless worrying over something that may or may not even happen. And as 37signals says: “decisions are temporary”:gettingreal.37signals.com/ch06_Done… anyway.

    → 2:43 PM, Jun 22
  • Mac App Store follow-up

    I’ve been sitting on this post for a while. First the good news: “Clipstart”:www.riverfold.com/software/… is in the Mac App Store. Overall I was very happy with the response and glad to have a new way for customers to find the app.

    I’ve received a bunch of good feedback on “my blog post about Apple’s 30% cut”:www.manton.org/2011/01/a… A few people are really upset with Apple, and there are posts in the dev forums about Mac apps that still weren’t approved for one reason or another weeks after the store launched. Other developers keep quiet, either for fear of rocking the boat or because they are happy with their sales and don’t see a significant problem.

    And then there’s most of us who know Apple can do even better. We’re frustrated when an app (not just our own) is rejected or stuck in review indefinitely, but we just accept that things are a little dysfunctional and cross our fingers that maybe Apple will magically become more transparent.

    But it’s not going to happen by itself. It’s not going to happen because the culture of Apple under Steve Jobs is secrecy. Apple is about great products, sure, but they’re so obsessed with the big reveal that it weakens their communication with developers.

    From a “MacSB mailing list post about WWDC”:tech.groups.yahoo.com/group/mac… by Dave Howell, written back in February:

    "Second, Apple employees are no longer allowed to talk about anything. In the past, half of the value of WWDC was talking directly to the folks who wrote the OS frameworks you have questions about. But now the answer to any question is always either 'file a bug' or 'send an email to devprograms@apple.com.' They're all under a gag order."

    The baffling part is that many of the problems in the App Store process are easily solvable. The iTunes Connect team could, for example, make it a priority to answer all email. I don’t know what the organizational structure is over there, and I’m sympathetic to what must be a flood of app submissions, but it doesn’t feel like App Store support gets the same quality treatment that Developer Technical Support does.

    Contrast with “Gus Mueller’s point on Twitter”:twitter.com/ccgus/sta…

    "I'm with you on the 30% + silence issue. With PayPal, they'll call me back when I email them with problems or questions."

    “Michael Tsai echoes this”:mjtsai.com/blog/2011… on his blog:

    "The main value of Apple's 30% cut is access to a larger market, but it still doesn't look good that companies such as PayPal, eSellerate, and E-junkie charge much less and provide great service. I can e-mail or call those companies and get answers right away."

    Good support takes extra resources and it costs money. Luckily Apple has both, and that’s why drawing attention to Apple’s 30% cut was key to my original argument. Developers are playing by Apple’s rules and helping to fund the App Store.

    Despite all this, I’m upbeat. In 2011 I want to look for ways that I can help Apple succeed, such as filing bugs. For years I swore off bothering, because it took so long to turn around a fix, if ever, and I had long since worked around a bug and moved on. iOS changes that delay because it improves so significantly every single year.

    I’m all for “praising Apple when it’s deserved”:www.marco.org/2011/02/0… but history shows that Apple improves the App Store when people complain. My posts are negative when it’s warranted and worth paying attention to.

    The App Store is getting better. (I love that the Resolution Center is there even if I hope to never need to use it.) The writing is on the wall that a year from now most apps will be distributed through the Mac App Store, and the savings and independence of direct download sales won’t be worth the maintenance of two separate forms of distribution for many developers. But if Apple holds all the cards in this relationship, then we must hold Apple to a very high standard.

    → 11:22 AM, Jun 21
  • 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.

    → 3:37 PM, Jun 15
  • WWDC 2011 keynote: diversify

    This year’s WWDC keynote was one of the most significant of the last few years. Twitter integration and iCloud were the highlights for me, although at the end of the week I’m still not sure when or how I’ll be able to use either. But I love that it was a software-only event — that’s how WWDC should be — and I love that there were major new features on both of Apple’s platforms.

    A few of the announcements seemed to have significant overlap (if not direct competition) with third-party developers, in particular Instapaper, Camera+, and the dozens of to-do list apps in the store. You can see some of that live reaction in a “collection of tweets”:tweetlibrary.com/manton/ww… I put together at the conference.

    My first thought for Marco Arment was that he should come out with a new product. Not because I’m worried about Instapaper, but just because I’d love to see what he’d build next. “Marco is still upbeat on Instapaper’s chances”:www.marco.org/2011/06/0… for continued success:

    "If Reading List gets widely adopted and millions of people start saving pages for later reading, a portion of those people will be interested in upgrading to a dedicated, deluxe app and service to serve their needs better. And they'll quickly find Instapaper in the App Store."

    Yet here’s Dave Winer, “reflecting on when Apple competed with his product”:scripting.com/stories/2…

    "I think the answer is to find meaning in your work independent of what happens with the fickleness of the platform vendor and its developers. I went on to take the same software that Apple crushed and turned it into blogging, RSS, podcasting, web APIs, all kinds of cool stuff. And yes it did eventually make me a bunch of money. But not the way everyone thought it would."

    As Dave used to say, zig where they zag. Find the unique value in the apps you build and spin those out as separate products or use as inspiration for new features. Daniel and I have talked about this on Core Intuition: pull your app’s strength into a competition advantage by reusing code and adding more depth than anyone starting from scratch.

    By playing to your strengths, you can do more, faster. Every indie Mac and iOS developer should be thinking about a suite of products.

    “Justin Williams hits this”:carpeaqua.com/2011/06/0… in the context of WWDC:

    "Some people grow frustrated by Apple continually making inroads in existing developer's territory, but it comes with being a part of the platform. The key is to ensure your product lineup is diverse enough that you can survive taking the blow Apple may offer at the next keynote."

    You should make the choice to diversify before you’re forced to make it, because WWDC is already a full year of choices rolled up into one week. Dropbox/Simplenote and iCloud, OAuth and Twitter.framework, iOS 4 and 5, Retain/Release and ARC. Like the “Persians deliberating while both drunk and sober”:skepticalphilosopher.blogspot.com/2009/09/p… (“via Buzz Andersen”:twitter.com/buzz/stat…), if you make any real decisions during WWDC’s info intoxication, make them again a week later.

    Marco has a clear advantage over his new competition, though, regardless of whether he creates new products or sticks with Instapaper. “Send to Instapaper” is built into every great Twitter app and newsreader. It took years to build such widespread integration, and it won’t be easy (even for Apple) to be on equal footing with such a well-loved and established brand.

    → 1:02 PM, Jun 14
  • FAQ for Tweet Marker

    I mentioned in “my first post about Tweet Marker”:www.manton.org/2011/06/t… that there were some decisions still to be made about the service. I don’t know everything yet, but I do want to answer some common questions I’m hearing from users and developers.

    Will Tweet Marker be free?

    Yes, I do not plan to charge users directly to use the service. There will also be no charge to developers for the basic sync API. However, it will take on real hosting costs, so I plan to have a more advanced paid plan (with more features and stats) so that participating Twitter apps can help pay for the service.

    How useful is it if the official Twitter app doesn’t support it?

    It is still very useful for users of third-party Twitter clients. I couldn’t allow the official Twitter app to use the API even if they wanted to, because theirs is a free app and has such a huge number of users. I also like that Tweet Marker becomes a selling point and discovery tool for other apps.

    Shouldn’t Twitter provide this service as part of their API?

    That would be great, but Twitter doesn’t seem interested in providing such a service. They don’t encourage users to read everything in their timeline, and it would be a little at odds with their focus on only the latest tweets.

    Why aren’t you using Apple’s new iCloud?

    The primary goal with Tweet Marker is to enable different Twitter apps to work together. iCloud is designed for storage and syncing only between apps from the same developer, so it’s not appropriate as a replacement architecture for Tweet Marker.

    Where is it hosted and what language was it written in?

    It is hosted on Heroku, which also powers the web site for my iPad app Tweet Library. Tweet Marker is written in Ruby with the Sinatra framework, and backed by PostgreSQL.

    What about sample code for building this into an app?

    I’m working on an example project for Mac and iOS. In the meantime, remember that it uses OAuth Echo, which is what most Twitter apps should already be using to post to Twitpic and Yfrog. Just change the URL to use the Tweet Marker server and include the tweet status ID in the POST body. To retrieve the value, it’s just a GET request without authentication. “See the docs”:tweetmarker.net for more.

    Update: I reworded the part above about whether the service will be free, since I don’t control how third-party clients will make this feature available to their users. I also updated it to reflect the service name change from Tweetmarks to Tweet Marker.

    → 2:59 PM, Jun 13
  • Tweet Marker

    So you want to sync the last-read tweet with all your different Twitter apps on iPhone, iPad, and Mac? Yeah, me too. While I hope to build a version of Tweet Library for other platforms, what I’d also love is to be able to switch between clients and know that each one will pick up where I was last reading in the timeline.

    That’s why I’m introducing a new service for Twitter developers: Tweet Marker.

    I’ve already showed it off to a few developers, and if you’re writing a Twitter app I’d love for you to support it too. It will be baked into the next version of Tweet Library.

    There are still some unknowns (especially around whether I will need to ask for help to cover hosting costs), but I wanted to launch it now before WWDC so that other Twitter app developers meeting at the conference can give me feedback on the service. Tweet Marker has actually been running for months, and when an opportunity came along this week for a new logo (thanks Alex!), I knew it was past time to finish documenting the service and get it out.

    To be successful it needs at least 2 apps to support it (I’ll supply one of those). I’ve tried to solve all the other basic problems. It’s simple, fast, scalable on Heroku, and protected so that mischief-makers can’t tamper with tweet IDs.

    Send me an email or find me in person next week if you have any feedback.

    Update: This post has been updated to reflect the service name change from Tweetmarks to Tweet Marker.

    → 8:53 AM, Jun 3
  • The Daily

    “David Barnard chimes in”:davidbarnard.com/post/5649… on The Daily:

    "The carousel is a fun bit of UI (at least in theory, it's still a bit laggy and jittery for my taste), but there's just no way to quickly deliver enough content to make the carousel usable. The front page and table of contents, on the other hand, could likely be fully delivered in the 4-5 seconds from the launch of the app to the end of the launch animation. Sending users directly to the front page (or potentially a redesigned table of contents, but I wont get into that) will make it feel as though the app has been magically filled with content."

    David makes some great points. Put another way, if some of their design decisions were too ambitious for their technical plumbing to keep up with, they should update the design and optimize it for speed. With such a mainstream app, though, you can’t really win. I’m sure if it was only fast and not fancy, it would have been criticized as too bland.

    The initial criticism of “The Daily”:www.thedaily.com always seemed overblown to me. It’s not perfect, but they got some of the difficult things right: navigation that makes sense, original content, good layout, clear subscription model.

    Off and on for the first few weeks, I would read several articles each day in The Daily. There were a couple crashes and glitches, but nothing that made the app unusable. If no one else had been complaining, I’m not sure I would have noticed anything so wrong it was worth mentioning.

    They can make it faster and polish up the rough edges over a few subsequent bug fix releases. And maybe enough of the fundamentals are right that they can get pretty far even without the design changes David suggests.

    Now that I’ve “written a few e-book apps”:www.vitalsource.com/, I can say with certainty that getting the basics right is more challenging than it looks. Other traditional companies moving their content to the iPad have launched much farther off-course than The Daily.

    → 4:54 PM, May 24
  • Appsterdam

    A great name to go along with “a big idea from Mike Lee”:mur.mu.rs

    "If you've been to a conference, you've probably thought, as I have, how nice it would be if everyday life could be like that—being surrounded by peers, able to get help solving a hard problem, then get accolades for doing so. There is a gestalt to sitting face to face with a group you just don't get over the wire. With Appsterdam, our community is not just a nice idea, but a nice place."

    I would love to visit Europe again. It’s been too long.

    → 3:54 PM, Apr 21
  • Tweetbot

    After about a day of using Tweetbot, “I said”:twitter.com/manton/st…

    "Tweetbot gets nearly everything in the UI right. Love it. But.. it's a basic client. I still think the future for third parties is features."

    I only got a few responses, most defending Tweetbot as something special. I agree, and there’s a lot to be inspired by from it. In an odd way, though, just being the best Twitter client isn’t enough.

    “Marco Arment writes more”:www.marco.org/2011/04/1… (following a “post from Ben Brooks”:brooksreview.net/2011/04/a…) about why Tweetbot isn’t for him despite being such a good client:

    "A new Twitter client that essentially offers the Twitter app's features, but in different places, isn't enough of a difference for me to switch. If anything, it supports Twitter's 'don't make full-featured apps' position. Maybe they were right."

    The problem isn’t that third parties shouldn’t make full-featured clients; it’s that they shouldn’t make clients that have exactly the same features as every other client. If Twitter discourages all apps from being made just because many will fail, we’ll miss out on all the things Twitter will never add to their apps and platform.

    I see three compelling reasons to use Tweetbot 1.0: the design, swipe for conversations, and related tweets. The last is actually in the Twitter API — I’ve been meaning to add it to Tweet Library — but it’s not yet documented outside of an email message to the dev mailing list. Congrats to Tapbots for being the first I’ve seen to add it as a high-profile feature.

    Last September I wrote about “next-generation Twitter apps”:www.manton.org/2010/09/n…

    "I believe we're about to see a third generation of clients that will go way beyond what the web site can do. There was worry when Twitter bought Tweetie that it would destroy the third-party Twitter market, and sure, some developers will fail or be discouraged from trying to compete against a free official product. But really what it does is raise the bar — that to succeed Twitter clients should be more than just a one-to-one mapping between UI and the Twitter API."

    I hadn’t announced Tweet Library yet when I wrote that. Now that I’ve shipped it, I believe even more strongly that we haven’t seen anything yet from Twitter apps. Tweetbot is a great 1.0 and my go-to app on the phone because it’s better in lots of small ways than anything else. But that it’s not for everyone is actually great news. I hope there are plenty of unique features still to come from a variety of other apps.

    Consider this: Tweetie already “won” the market. No matter what we do as Twitter API developers, none of us can ever have the most popular Twitter app. This frees every app to focus on its core strength. For Twitterrific, that’s a unified timeline; for Echofon, that’s last-read sync; for Hibari, that’s keywords; for Kiwi, that’s themes; for my own Tweet Library, that’s curation.

    What’s Tweetbot’s core strength? For now, overall user experience, not standout features. But I’ve been a Tapbots customer long enough that I’m excited to see where they take it.

    For more Tweetbot discussion, check out “this collection of tweets I made”:tweetlibrary.com/manton/tw… about the launch.

    → 4:01 PM, Apr 20
  • Acorn 3

    On a “recent Core Intuition”:www.coreint.org/2011/03/e… Daniel and I talked about version numbers and the message you send by going to 2.0 or 3.0. The version is as much about marketing as it is about technically tracking the release.

    I can think of no better example of this than “Acorn 3”:flyingmeat.com/acorn/. The app started simply enough — first as just a new FlySketch, then as a simple image editor, then becoming more advanced with each iteration — but it has really hit its stride with 3.0. The landmark feature, layer styles, alone warrants the bump to 3.0.

    Combine with the overall maturity of the app and you get a blockbuster release. Acorn made the top grossing list and was outselling all other non-Apple software. My Twitter stream lit up with good things about the app.

    The version number is a part of that. This isn’t a 2.5. The 3.0 is saying: this is big news, and anyone who has maybe heard of Acorn but never tried it needs to give this version a shot.

    I’m particularly happy for Gus because he’s earned this success over years. From the archives in 2005, “Gus’s post on being an indie”:gusmueller.com/blog/arch…

    "Just plan, set realistic goals, meet those goals, diversify, save up, add four cups of patience, and have fun. And most importantly- work your ass off. It's not difficult, it's just not easy. It takes time and patience and hard work."

    One of the first great blog posts about working for yourself writing Mac software.

    → 9:43 AM, Apr 18
  • 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

    → 8:58 PM, Apr 10
  • First drafts on iPad

    “Iain Broome”:writeforyourlife.net/writing-i… on iPad writing, via “John Chandler”:byjohnchandler.com/:

    "I can, and do, write regularly with my iPad. But, to be perfectly honest, I rarely use it to edit, because I find it kind of clumsy to move the cursor around the screen with my finger. However, the iPad is a marvellous first draft machine."

    Most of my blog posts start life on the iPad too. I write them in Simplenote, sync with the Mac to finish the post if it needs editing, then copy to MarsEdit to publish. It’s not completely smooth, but it’s a workflow that wasn’t even possible a year ago.

    → 9:08 PM, Apr 5
  • Buy apps, help Japan

    From a “beautiful post by Craig Mod”:craigmod.com/satellite…

    "I pulled all of the poison out of the air — I drew it deep into my lungs and exhaled into my socks. My socks are full of the radiation, don't touch the socks. I pulled the tsunami back. I drew the inland water back into the ocean. I pulled it over the rice paddies, unflattening them; the trees, straightening them — a billion billion leaves fluttering back into position. I drew the water back, back, back. It was easy because it was what I had to do, I tell her looking her straight in the eyes. Perhaps you don't understand, but I had to."

    Check out “appappeal.jp”:appappeal.jp for a collection of apps that are donating their profits to the Japanese Red Cross Society. Buy a few. And don’t forget “Developers Against Poverty”:developersagainstpoverty.org/, which needs your donations before the end of the month.

    → 1:35 AM, Mar 29
  • Brent on baked blogs

    My post on free apps “was linked from Daring Fireball”:daringfireball.net/linked/20… a few days ago. Tons of new traffic, but my site didn’t go down. Why? An ancient but reliable version of Movable Type spitting out static files, with just a tiny bit of PHP for “Mint stats”:haveamint.com/.

    “Brent Simmons talks about this lost art”:inessential.com/2011/03/1… of publishing to static files instead of serving from a database:

    "It's an old technique, actually, but too rarely practiced. (Lots of weblogs in the '90s were rendered as files-on-disk. They were built from a database plus templates and scripts and uploaded to a server. We did a bunch of this when I worked with Dave Winer at UserLand Software.)"

    I couldn’t agree more with Brent’s advice, and in fact I ran this blog on Radio Userland for its first couple of years. In addition to performance, static files are portable. I can pick up this site and move it anywhere. The old web is fragile, and as web sites age, being able to permanently host them somewhere cheap and stable is going to become a big deal.

    I hope a modern equivalent to Movable Type emerges eventually. For now, I’m thankful that the only time I have to worry about a web site outage is when a Dreamhost sysadmin trips over a power cord.

    → 9:51 AM, Mar 21
  • Twitter&#039;s platform at 5 years

    Twitter recommended upgrading to OAuth “for optimal security” and so developers don’t need to “worry about the user changing their password”. While I dislike APIs that break old clients, I saw mostly the good things about OAuth, framed around letting the user approve access to their own account.

    Seven months ago, as Twitter was finishing the OAuth transition, “Buzz Andersen tweeted this”:twitter.com/buzz/stat…

    "Twitter isn't just enforcing OAuth for technical reasons: it's a way of taking control of the platform."

    I’m not sure I got it at the time. Twitter was all about open APIs, right? They encouraged new clients, and the original Mac client Twitterrific had “brought a lot of innovation and standards”:furbo.org/2011/03/1… to the platform. Why would they need this level of control?

    “The email from Ryan Sarver”:groups.google.com/group/twi… last week showed part of how Twitter is changing as a company, refocusing from building a network to selling a product. Reading between the lines, it seems that to effectively sell ads, Twitter feels they need to control the user experience. On Twitter clients:

    "Developers have told us that they'd like more guidance from us about the best opportunities to build on Twitter. More specifically, developers ask us if they should build client apps that mimic or reproduce the mainstream Twitter consumer client experience. The answer is no."

    Disappointing. At a panel on the Twitter API at SXSW, that sadly no one from Twitter in Austin knew about, the mood was pretty dim. I said to the room that we expected more from Twitter.

    Then over the weekend, Ryan clarified: “we are saying it’s not a good business to be in but we aren’t shutting them off or telling devs they can’t build them.” There’s still plenty of uncertainty, but that’s a more hopeful message. I collected some additional “related tweets on tweetlibrary.com”:tweetlibrary.com/manton/tw…

    Many people during SXSW asked me what this means for Tweet Library. Is Tweet Library a mainstream Twitter client? It has all the basic features of a normal client, but no, not really. It’s meant to be something more, something unique that solves problems no one else is working on, least of all Twitter.

    I’m a little discouraged, but not enough to stop. I owe it to my customers to finish what I started: to fix bugs, add new features, polish the rough edges, and make Tweet Library the best app on the Twitter platform.

    → 8:23 AM, Mar 19
  • Overusing the term REST

    Jens Alfke, “commenting on the new Rdio API”:jens.mooseyard.com/2011/03/d…

    "Maybe we should just give up on the term REST, since it's become so diluted as to mean nothing more than 'HTTP API that's not as hard to use as SOAP'?"

    Sounds right. “Pure REST”:en.wikipedia.org/wiki/Repr… was never strictly followed, and the advantage to consistent HTTP methods — being able to abstract parts of the client details away, as with “ActiveResource”:api.rubyonrails.org/classes/A… — don’t seem like significant savings to me. Now that XML-RPC and SOAP are mostly dead, we assume that new APIs are going to be usable from any language without much effort. I won’t object to having one less acronym in the world.

    → 10:52 PM, Mar 17
  • Wayback

    Today is the 9th anniversary of this blog. Once a year I dig through old posts, remembering what the industry was like and the topics I was interested in. This time I found a link to a post Evan Williams wrote in 2001 as Pyra Labs and Blogger were struggling:

    First of all, the company (Pyra) is not dead, and the service (Blogger) is not going away. However: We are out of money, and I have lost my team.

    And:

    Yes, things would have been very, very different if the Internet Bubble wouldn’t have burst and we were still in that…that, Other World in which we started. In that world, things that seem dumb now (such as launching a product and letting it grow for so long without making revenue from it a priority) made sense.

    The full text is available on the Wayback Machine. I wish more CEOs blogged with even half the sincerity.

    SXSW Interactive starts this weekend. When Evan wrote the above, the conference was a few rooms along a single hallway. Now it’s a monster conference, spread across multiple venues, with a speaker database so dense I don’t even know where to start. Still, I’ll be there and hope to catch up with any of y’all making it to Austin.

    → 8:11 AM, Mar 9
  • Where Apple went wrong with free apps

    John Gruber has a solid summary of the issues around in-app purchase. Regarding the closed platform:

    iOS isn’t and never was an open computer system. It’s a closed, controlled console system — more akin to Playstation or Wii or Xbox than to Mac OS X or Windows. It is, in Apple’s view, a privilege to have a native iOS app.

    This is the root of nearly every strength and problem with the App Store. I’ll never be happy about it. But in-app purchase restrictions are even more complicated than that. It started not just with the controlled environment but the decisions around free apps.

    Michael Tsai points to this Peter Oppenheimer quote from late February that Apple runs the App Store at “just a little over breakeven”. I’ve argued that Apple’s 30% tax is about growing that to significant profit at the expense of developers, but in the back of my head I’ve also been concerned that maybe it’s just to keep the App Store from falling into the red. Maybe they are really struggling under the weight of what they created, and long app review times and lack of focus around the Mac App Store launch are just symptoms of that.

    If this is true, then I’m more sympathetic to Apple’s predicament. They aren’t being greedy; they’re just trying not to lose money. But that doesn’t mean they didn’t make a mistake.

    Steve Jobs, announcing the App Store in March 2008:

    You know what price a lot of developers are going to pick? Free, right? So when a developer wants to distribute their app for free, there is no charge for free apps. At all. There’s no charge to the user, and there’s no charge to the developer. We’re going to pay for everything to get those apps out there for free. The developer and us have the same exact interest, which is to get as many apps out in front of as many iPhone users as possible.

    I remember being surprised when I heard this. We take for granted now that much of the App Store’s success is because of free apps, but I’m not sure it had to be that way. The iTunes Music Store launched with a full paid catalog of music. Many of the hits in the App Store, like Angry Birds and Doodle Jump, have never been free.

    But watching Steve Jobs from 2008, you can tell Apple was worried that what happened to the Mac (lack of third-party apps and games) might happen to the iPhone as well, so they gambled the profitability of the App Store away to encourage as many apps as possible. That was their choice.

    Again, from Steve Jobs: “We keep 30% to pay for running the App Store.” Not a profit center. Not a business. Just to pay for running the store, so that the user experience for app discovery on the iPhone is second to none.

    Today, we know that Apple has never planned well for free apps. You don’t need to look much further than their reversal of allowing in-app purchase in free apps to see that they are making this stuff up as they go along.

    When Steve Jobs said it, offering free apps for so little seemed almost foolish, like Apple was compensating for the high 30% by giving too good a deal to free apps. Why not charge some hosting fee? Or why not give up exclusive distribution and let free apps be installed directly by the user without forcing everything through the App Store? Unlimited bandwidth, promotion in the store, and everything else just for the $99 dev program fee was a pretty good deal.

    And now I wonder if Apple hasn’t been backpedaling ever since, trying to make up for that mistake: free apps are a burden. iAd was the first correction, because a share of revenue from free apps was going to Google instead of Apple. In-app purchase is the next correction, because real value can be delivered in a free app with transactions handled elsewhere.

    Apple can’t accept a future in which too many apps are technically free — something that has already happened on Android — unless they are also taking a cut when money changes hands outside of app download.

    Matt Drance clearly spotted the loophole that forces Apple to be so strict with in-app rules:

    30% to Apple across the board — app sales, IAP, and now subscriptions — is consistent, clear, and uncheatable. That cheating bit is significant: a 10% commission for subscriptions, for example, would see developers adopting the subscription system en masse so they could keep more money. Apps that were once $2.99 would suddenly be asking for installments like late-night infomercials.

    Apple is trapped by their original decision to shoulder the cost of free apps. They encouraged free apps and now they’ve got one band-aid on top of another — advertisements, in-app purchase, subscriptions — all trying to make free apps work for the App Store bottom line. These changes make developers nervous because all the power lies with Apple.

    Free apps and the problem of exclusive distribution are linked. Get rid of free apps, and the store can support itself naturally. Get rid of exclusive distribution, and Apple can be more creative about charging developers who do want to participate in the App Store. If Amazon isn’t happy with Apple’s terms, users can install the Kindle app outside the store and it doesn’t cost Apple anything to maintain.

    Apple, want to charge 30%? Go for it. Want to make the submission rules more strict? Fine. Want to adjust how you run the App Store to reflect what’s happening in the market? No problem. Just give developers an out. We are going to be back here year after year with the latest controversy until exclusive app distribution is fixed.

    → 1:49 PM, Mar 8
  • iPad 2 (and tweets)

    I couldn’t be more excited about the iPad 2. Yes, “most of it was expected”:twitter.com/manton/st… but faster and more memory is exactly what the iPad needs. I’ll be getting it on day 1 and can’t wait to give Tweet Library a try on the new hardware.

    During the announcement I collected 70 tweets that I thought captured the event. You can “view them on tweetlibrary.com”:tweetlibrary.com/manton/ip…

    Speaking of Tweet Library, Apple just approved version 1.2.2. It fixes a handful of bugs and adds a few new things, like block and report spam, for those of you using it as your main Twitter client. Check out the “full release notes”:www.riverfold.com/software/… or view it “in the App Store”:itunes.apple.com/us/app/tw…

    → 9:06 AM, Mar 4
  • Neven Mrgan on Apple&#039;s focus

    I hadn’t yet read “Neven Mrgan’s post”:mrgan.tumblr.com/post/3451… when I wrote “my own”:www.manton.org/2011/02/3… yesterday, but he strikes one of the same themes I closed with:

    "But with this 30% thing, the 30% I'm really interested in is, will Apple eventually see 30% of its revenue come from various cuts, percentages, deals, and obligations? If so, that means a different focus for the company — a focus on things and people farther removed from me and you. And that makes me a bit bummed out."

    Of course, neither of us is filling in for Steve Jobs, and Apple can do anything they want within the law. But what Neven captures so well here is that many of us hold Apple to a higher standard because Apple has a history of creating great things. This 30% business model doesn’t seem to have any place in that history.

    → 9:23 PM, Feb 23
  • 30% of the future

    I believe the iPad is the future of mainstream computing, not just of mobile devices. That’s why I picked it as the first platform for Tweet Library. But forcing developers to use in-app purchase shows that Apple’s version of success for the iPad looks much different than mine.

    Apple’s tight control over iOS has always been troubling. If there’s no way to install an app on the device without Apple’s approval, then Apple can make or break any business that builds for the platform. It’s an added risk for the thousands of tiny development shops for which the iPhone and iPad are otherwise perfect.

    There was such huge growth in the development community because of iOS that I’m not sure anyone was paying attention to where we’d end up. We saw a new phone instead of the future of computing. We saw the gold rush but not the damage, so we let it happen. We let it happen by not sending Apple a clear message: total control over distribution is bad for developers and bad for users.

    And now we’re letting Apple take 30% from every company that wants an iOS app to complement their business, whether it has anything to do with software development or not.

    From Matt Drance:

    Whatever the fine print says, Apple is no longer letting developers do things it had been letting them do — and build businesses on — for almost two years, and many developers are quite understandably upset about that.

    And Marco Arment:

    A broad, vague, inconsistently applied, greedy, and unjustifiable rule doesn't make developers want to embrace the platform.

    I hope we’re wrong about the worst-case interpretation — I like this Steve Jobs email much more than the reality of Readability’s rejection — but because Apple fails so spectacularly at communication we won’t know for sure until more rejections come in.

    I’m not comfortable with a future in which 30 cents on the dollar goes to a single company, no matter whether it’s from app downloads (where Apple offers hosting and discovery) or content sales and web service subscriptions (where Apple offers little). If the iPad grows like many of us expect it to, siphoning a third of the cash flow around everyday computers will create a completely different economic environment than exists today. It’s unprecedented.

    And it would ruin Apple. Not the company’s finances, but its focus. John Gruber wonders what he’s missing, and this is it: Apple is embracing a model that is fine for Readability but runs counter to Apple’s core business. The iTunes Music Store wasn’t a business in its own right; it helped sell more iPods. The App Store shouldn’t be a huge revenue stream; it makes the iPhone and iPad better.

    Apple’s strength has always been selling a great product to end users — “the rest of us”. The new Apple has fallen into the trap of thinking they should also be an advertising company and an overpriced payment processor. It’s a slippery slope from here to becoming just another mega-corp that has their hands in everything that can make money instead of standing for something.

    → 8:05 PM, Feb 22
  • Tweet Library filters

    “John Chandler wrote a nice post”:www.byjohnchandler.com/2011/01/2… on the filters he uses in various Twitter apps. Here’s a clever one for “you missed it”:

    "I try to limit how many people I follow so I can read most of what they say. So, if they preface a tweet with something like 'If you missed it,' or 'In case you missed it,' I probably didn't."

    As I mentioned in the comments, I have a few filters I like too, such as filtering out all old-style RTs. I even experimented with filtering out all hashtags. It’s great when I want to completely un-clutter the timeline of gimmicky tweets, but I can keep the filter toggled off when I have more time to read.

    The advantage of how I built filters in “Tweet Library”:www.riverfold.com/software/… is that they are dynamic collections inside the app, kind of like smart playlists in iTunes. This means while it filters the junk out of my timeline, I can still occasionally go and review what it filtered out.

    (I just submitted Tweet Library 1.2.1 to the App Store with a handful of bug fixes. Hopefully it’ll be approved soon.)

    → 9:08 PM, Feb 12
  • In-app purchase changes

    With the recent release of “The Daily”:www.thedaily.com and the news of “Sony’s e-book app rejection”:arstechnica.com/apple/new… there’s speculation that Apple will change the rules around iOS in-app purchases. The 30% cut makes it difficult for some businesses to move to the App Store without passing a cost increase on to customers.

    Other than “no change”, I’ve only heard two possible solutions:

    • Special deals for the big guys. Amazon and other retailers could negotiate lower rates. But as Marco mentioned on “Build and Analyze”:5by5.tv/buildanal… the App Store treats large and small developers as equals. It’s a real strength that a 2-person game company can compete with Electronic Arts. I hope we never lose that.

    • Lower percentage for everyone. Not going to happen. Take an app like Twitterrific. I consider it a $5 app, but to the store it’s actually a free app with a $5 in-app upgrade. Lowering the in-app cut would encourage many previously paid apps to convert to free and pay less to Apple.

    This is why I believe the only option is for Apple to distinguish between in-app content and features. Content purchases, such as e-books or virtual game items, would be in one class of payment. Feature upgrades, such as unlocking core functionality in the app, would continue to be 30%, same as paid downloads.

    Is it confusing for developers? Is it totally subjective and up to the judgement of the review team? Yes. Welcome to the App Store.

    → 1:34 PM, Feb 10
  • App Store 30% cut

    The Mac App Store launched! Like many developers I spent the day taking it out for a spin, thinking about whether this changes everything, and trying to ignore the fact that my app Clipstart isn’t in the store on day 1 even though “I submitted to Apple 7 weeks ago”:www.manton.org/misc/clip…

    But let’s talk about Apple’s 30% cut, because it’s been on my mind now that I have a real app in the iPad App Store. It’s easy to keep these discussions too vague to be meaningful — 2.9% + $0.30 for PayPal, 8.9% for FastSpring, 30% for Apple, who cares? — so it’s more illustrative to work with real numbers.

    The massively-popular Camera+ from Tap Tap Tap “sold 78,000 copies on Christmas day”:www.macrumors.com/2010/12/2… but no one else I know sees numbers like that. My own $10 Tweet Library fell a little short of 1000 copies in its first launch month… and unfortunately continued to drop since, but let’s use that to keep the math simple. Selling direct via PayPal would be $590 in fees. To Apple? About $3000.

    Apple provides a unique service and it’s their right to charge whatever they want. Developers can choose to pay it or restrict development to more open platforms. I’m inclined to think the 30% is high but not unreasonable for everything Apple hopes to provide.

    But here’s where everything breaks down: for $3000 I expect someone at Apple to tell me what the $%!# is going on.

    It’s not just review times, or emails that go into the void, unanswered for days or weeks or ever. It’s that Apple isn’t able to communicate about the fundamental issues that will make or break businesses.

    • When is the Mac App Store launching? No word from Apple for months, and a press release went to news sites before developers got a heads-up.

    • Why has my Mac app been in review for over a month, right up to the very day before the Mac App Store launches? No answer, and nothing to do but wait.

    • Where was a beta version of the Mac App Store so that we could understand how it interacted with existing apps before it was too late? Nowhere.

    • Why didn’t we receive more “guidance on bundle IDs”:openradar.appspot.com/8838369, version numbers, and app naming, obvious questions that only Apple knew the answer to? No clue.

    • When will there be promo codes for the Mac App Store to give to the press or help transition customers to the store? No idea, might be never.

    A year and a half ago “Craig Hockenberry wrote about paying extra”:furbo.org/2009/07/1… for fast approvals and a better communication channel. It reflected in words how frustrated everyone was over long app review times. At the time, “I answered”:www.manton.org/2009/07/9… that quality customer service from Apple is something all developers deserve, not just those with cash to burn.

    But clearly it’s even worse than that. Apple isn’t currently capable of significantly improving how the App Store works for any price! The App Store does get better, but it does so at Apple’s own pace.

    There are many great people at Apple. Individually I know they are passionate about making good products and helping developers succeed, but collectively it seems like no one person is running the show. The developer-facing side of the company needs to have the freedom to become more transparent, to work closely with the iTunes Connect support team when developers need an answer. Apple’s secrecy cripples their ability to have a positive relationship with developers.

    So do I think the 30% cut is too much? No, not for a straight answer. That would be priceless.

    → 1:47 PM, Jan 9
  • Holiday bundles and no-brainer promotions

    Two new bundles were announced this week: “The Indie Mac Gift Pack”:indiemacgiftpack.com (6 great Mac apps for $60) and the “Fusion Ads Holiday Bundle”:fusionads.net/bundle/ (an assortment of web design-related apps, icons, and more for $79). I love apps in both of these bundles and recommend you check them out, buy what you need, or gift them to a friend. There’s a fear among many developers that a bundle can cheapen the healthy Mac software market, but both these bundles avoid that with a higher price and the feel of being put together carefully.

    As a comparison, here’s a “Macworld article on holiday bundles from 2009”:www.macworld.com/article/1… That collection seems kind of random despite several good apps in the list.

    And sales for the Indie Mac Gift Pack are split evenly to the developers, so we know it’ll be a nice revenue boost for them during the holidays. From the FAQ:

    "Hey... you're ripping these developers off, aren't you?" ... "No... we ARE these developers. Our six small companies decided to band together and do a promotion, to see if it works for us. We're splitting all the proceeds evenly. There's no middleman here."

    I’ve never participated in a bundle, but after some of the “MacHeist controversy”:homepage.mac.com/simx/tech… I developed a set of rules that I run Riverfold promotions on. These are the easy things that I can always say “yes” to without much thought:

    Coupons are great. My coupons rarely expire and I don’t care if sites like “retailmenot.com”:www.retailmenot.com keep a list of them. Saving a few bucks might be the difference between someone buying my software and not.

    Giving out software to bloggers is great. Inspired by “Wil Shipley’s C4 talk”:www.viddler.com/explore/r… I’ve “blogged about this”:www.manton.org/2008/04/w… Apple employees get free licenses too.

    Small promotions are great. I freely give out copies to small sites that want to give away licenses of my software to encourage people to post comments. I think readers interpret these (correctly) as software developers doing something generous for a small site, instead of the gut reaction when you see software listed on MacZot or MacUpdate Promo (“are sales so bad they had to sell their software for half price?").

    Charity is great. I loved being a part of “Indie+Relief”:www.indierelief.com/, the Pan-Mass Challenge auctions, and other bundles that go directly to a cause. Just like smaller promotions, these are good for users (deals on software), good for developers (helps with marketing), good for charity (donated money), and good for the software market (these aren’t developers who are making a sacrifice because their sales aren’t doing well — it’s charity).

    Now that I’ve seen a bundle like the “Indie Mac Gift Pack”:indiemacgiftpack.com, I think I can more clearly judge a unique bundle opportunity when it comes along. Does it minimize the middleman? Does it respect the individual apps as peers? Does it use the total bundle price to underscore the value of software rather than cheapen it? Then it’s probably a good deal for everyone.

    → 4:31 PM, Dec 17
  • 360iDev Austin (in tweets)

    On “episode 35 of Core Intuition”:www.coreint.org/2010/11/e… I mentioned attending the 360iDev conference, and we brought it up again on the next show while plugging 360MacDev. I had a great time at the conference and hope to attend another one in the future.

    The best part was meeting all the iPhone developers who I’ve never crossed paths with, and catching up with others I’d only met briefly before. iPhone developers come from a mix of places, from old Mac developers to web developers to traditional mobile or game developers. While there’s a risk that having so many small regional conferences will fragment the community, this concentrated group of mostly iPhone-only developers made for a great few days of sessions and discussion.

    And my main concern leading into the conference — that the hotel location would make it difficult for people to head downtown or see other parts of Austin — turned out to be mostly a non-issue. I had a great time hanging out with everyone in the evening, and hope some of you will be back for SXSW.

    I used Tweet Library to “collect about 120 tweets from attendees”:www.tweetlibrary.com/manton/36… at the conference: reaction to sessions, quotes, speaker slide URLs, dinner out, and more. Capturing an event like this is why I built the app. What you had for dinner isn’t interesting by itself, but in context it is powerful because it tells a story.

    → 12:08 PM, Dec 15
  • Faster support response times

    In an “interview with Kevin Hoctor on episode 5 of the iDeveloper Live podcast”:ideveloper.tv/shows, Scotty referenced my comment from Core Intuition that customers are so used to terrible support that they don’t mind a few days or even a week delay. I thought this was maybe taken out of context a little since we were talking about vacations, so I went back to listen to what I said:

    "Most people are thrilled to get a response in a few days, maybe a week they're still cool with it. They are used to sending support email to companies and not getting a response any time soon or maybe not at all in some cases."

    Of course I didn’t mean I strive for week delays before a customer gets a response, but looking back I think Scotty’s interpretation was right: in a way this was a confession that I’ve fallen down when it comes to support. My response times for Tweet Library questions are still very good (usually same day), but it’s dragging for my other products. Even when I’m quick to respond to an initial email, difficult follow-up questions often won’t see an answer for some time. I’m just not as responsive as I was when I wrote “this blog post about good support in 2007”:www.manton.org/2007/02/c…

    The worst part are the emails that fall through the cracks. They are on their 2nd or 3rd response to a problem that I don’t understand, or they’re waiting on a solution that isn’t ready, and months go by before I can pick up the thread again. I hate this.

    I’m going to use this opportunity to get back to where I should be: less than 24-hour response in all cases, for all products. I’m adding a “stats section to my support page”:www.riverfold.com/support/ to keep me in check, and I’ve seeded it with response times for the most recent support questions via email and forums. This will also give customers an idea of what to expect without an explicit promise from me.

    → 10:06 AM, Dec 13
  • $1 apps won&#039;t dominate the Mac App Store

    “Marco Arment wrote an interesting piece”:www.marco.org/143215691… on the Mac App Store shortly after it was announced. I was nodding my head in agreement for much of it, until I got to this part:

    "And if the Mac App Store is only populated by a subset of today's Mac software, a few key points (such as 'Inexpensive') still won't be true. This is why I believe that the Mac App Store will be dominated by (and become known for) apps that don't exist on the Mac today."

    He makes great points, and I think his assumptions about Apple’s rules are correct. But newcomers dominating the store? And $1 apps as the second most popular price point on the Mac? I’m not convinced.

    Many iPhone app hits lend themselves to a mobile environment, but the Mac is different because people usually buy computers to get work done. You don’t have your MacBook Pro with you while you’re waiting in line at the grocery store. You don’t have it at a party when your friend tells you about the latest game. You don’t hand your computer to your kids when they’re bored in the car and want to play Angry Birds.

    If $1 apps will be so common on the Mac App Store, why aren’t they common on the iPad? In the iPad top 10 right now there are only two 99-cent apps. Prices around $2.99 or $4.99 are much more common, and there are plenty of $10 apps as well in the top paid and especially top grossing lists. The iPad app making the most money right now is a $20 music app called “djay”.

    I think $10-$20 will be pretty common on the Mac App Store, but not $1, and not even $2 or $3. Something that’s priced so cheap sends a clear message on the Mac: this app is useless and should have been free.

    As I said recently on “Core Intuition”:www.coreint.org/, I absolutely wish all the best of luck to iOS developers and designers moving to the Mac. I had a great time hanging out with a mostly iOS group at 360iDev last month; these guys are ambitious and smart and bring innovation to the platform because they don’t have the baggage that the rest of us have. 2011 will be a fantastic year for new Mac software and for indie developers!

    But take a good look at some of your favorite apps for iPhone and iPad and you’ll see that for the most part they lack the depth to compete with established Mac software. The workhorses on your Mac — text editors, image editors, file transfer apps, version control clients, web site tools — won’t be knocked off by new competition easily.

    Maybe 10.7 Lion will be a revolution, but when the Mac App Store first launches on 10.6 it’s going to contain familiar software at familiar prices.

    → 4:02 PM, Dec 3
  • Laughing at the guidelines

    Apple’s announcement yesterday of a Mac App Store is big news. As soon as the event was over, journalists reached out to developers to get feedback on what it means for existing Mac shops. Reading the variety of responses is fascinating to me, and I contributed some quotes for articles in “Macworld”:www.macworld.com/article/1… and “Cult of Mac”:www.cultofmac.com/mac-app-s… There’s also a “write-up on Ars”:arstechnica.com/apple/new…

    Here’s “Wolf’s take on the guidelines”:rentzsch.tumblr.com/post/1369…

    "My fellow Mac developers are laughing at the Mac App Store guidelines. They're reporting that apps they've been shipping for years — a number of them Apple Design Award-winning — would be rejected from the Mac App Store. These are proven apps, beloved by their users. The current guidelines are clearly out-of-touch."

    Every developer I’ve talked to uses at least some private APIs on the Mac, often to work around bugs or limitations in current APIs. It’s disappointing that the Mac App Store is shipping before 10.7, because 10.7 would be a good opportunity to find out why developers still need private APIs and bake support directly into the next version of Mac OS X to solve common issues.

    Can you imagine such rock-solid apps as BBEdit or Transmit being rejected from the Mac App Store? It’s going to be a lonely launch day full of hasty iOS ports if Apple doesn’t show some common sense when approving Mac apps.

    → 1:42 PM, Oct 22
  • Free 1-star reviews

    Before I released “Tweet Library”:www.riverfold.com/software/… I talked to everyone who would listen about the price. Several people suggested I go with a free app, but use in-app purchase to upgrade to the full version. Two apps that handle this well include “Twitterrific”:twitterrific.com and “SimpleNote”:simplenoteapp.com/. Countless games also take this approach.

    It’s the closest thing the App Store has to demos, but it comes at a cost: anyone can leave a 1-star “too expensive” review of your app without even upgrading to the full version. At that point they are not even rating the app they downloaded (a free, limited version that probably works just fine); they are simply commenting on a portion of the app they didn’t want to buy.

    There are two ways to give me feedback about Tweet Library:

    • Email support, post to Twitter, or write on your blog about the software. This is free.

    • Leave a review in the App Store. This is $9.99.

    I'm very comfortable with this model. The quality of feedback I get in email is extremely high, whether the customer has bought the app or not, and the App Store reviews aren't cluttered with pricing rants.

    → 9:29 AM, Oct 15
  • Tweet Library 1.0

    If you purchased, tweeted, blogged about, rated, or mentioned Tweet Library thank you. I’ve been very happy to see how well it is being received. I built this app because I wanted to do more with Twitter, but I didn’t really know until it was released if anyone else would care.

    The truth is, I released it a tiny bit too early — there are a few annoying bugs that I’ll need to fix soon for 1.0.1 — but it was a long development cycle, and faced with getting burned out on a project the only thing I know how to do is ship it. Then I can use the reaction from real customers to tell me if I’m on the right track and where to go next.

    I’ve already blogged about the pricing and viability of third-party Twitter apps, though I hadn’t officially announced the app yet:

    "When Twitter for iPad shipped it jumped to the number 1 spot in free apps, but maybe you don't have to compete directly with that. Maybe if you hold your ground somewhere in the top paid list, that's enough to find an audience."

    Tweet Library has only been out for 3 full days, and I don’t want to jinx it, but so far this theory is holding. The app went to #2 for top grossing iPad apps in social networking in the first day. I didn’t expect that, but at $10 I can see how it might happen. Then it also climbed to #2 in top paid iPad apps in the same category, and stayed there for a couple days before dropping to #3 as I write this. The only other Twitter apps in any of the top 10 lists for iPad are Twitter’s official app and TweetDeck, both free.

    Let me repeat that because it kind of blows my mind a little: Tweet Library has been the best-selling iPad Twitter app since it was released.

    How did I successfully ship an app in a crowded market at literally 2x the price of any other app? Two things:

    Refuse to compete on price. I felt so strongly about this that I was willing to launch and fail. If the App Store couldn’t support $10 Twitter apps, then I would bow out. I saw in a comment on TUAW that someone would wait until the price lowered, but I hope to avoid the pricing gimmicks common to the App Store. There’s no intro price for Tweet Library, and the price is not going to change. I believe consistency is the best long-term plan for app pricing.

    Market the app as something new first and yet another Twitter app second. I believe the key to selling Tweet Library is to focus the marketing around what makes it special: archiving tweets, curating tweets, filtering tweets. Yes, you can also post to Twitter and see mentions or reply to DMs, but that is just the price to get in the door. Tweet Library doesn’t do those common tasks perfectly yet, but customers seem willing to cut me some slack because of all the other unique features that the app offers.

    So, up next I’m going to fix bugs, and I’m going to add features, and I’m going to listen to customers. I’m sure it will soon drop out of the top 10 and other Twitter apps will take its place, but I feel like the launch was strong enough to prove that I’ve got something. I intend to carve out a little niche in the Twitter market and execute on it.

    → 9:47 AM, Oct 9
  • EE tweets

    I submitted my new iPad app to Apple earlier this week. It hasn’t been reviewed yet, but Ryan Irelan has been using the beta to curate a “collection of ExpressionEngine conference tweets over on the EE Insider blog”:eeinsider.com/blog/eeci… The app may still only be in the hands of my friends and beta testers, but it’s great to see how it could be used in the real world.

    So that’s one feature of the app: grouping tweets together around topics, events, conferences, categories, whatever, and then publishing them with one click so they can be shared with friends and indexed by Google. There’s more of course. I’ll be getting the marketing web site up soon, and a screencast too, hopefully before the app is approved! Although I’m quick to complain about App Store review delays, in this case I’m counting on a week delay so that I can get my act together.

    → 12:53 PM, Oct 2
  • Birdfeed, etc.

    He snuck it in under a commentary on Alex Payne’s excellent “last post about Twitter”:al3x.net/2010/09/1… but we now have a “Birdfeed postmortem of sorts from Buzz Andersen”:log.scifihifi.com/post/1144… I’m particularly interested in where Buzz thinks the Twitter app market is going:

    "Does this mean that there's no longer room for third party Twitter clients? My suspicion is that people will continue to make them, but it seems to me that they're already on the road to becoming increasingly uniform and commoditized as the Twitter experience is more sharply defined by Twitter itself (as my Birdfeed collaborator Neven Mrgan has suggested to me, Twitter clients are going the way of email clients)."

    It seems nearly everyone thinks competing with Twitter’s official app is a bad idea. “Here’s Tapbots revealing Tweetbot”:tapbots.com/blog/busi… shortly after the Tweetie acquisition:

    "But this news changes things for us. We probably won't be able to charge for the app anymore. Who's going to pay for a Twitter client when 'Tweetie' is free?"

    I think the problem isn’t trying to build any Twitter app. The problem is building a mainstream Twitter client. The official iPhone and iPad apps, plus the redesigned web site, are so good that it’s futile to go head to head with them. You can’t undercut on price, and they are so well coded you’d need a talented full-time team to out-engineer them.

    As I said in “my last Twitter post”:www.manton.org/2010/09/n… the trick is to look past the API. What would I want Twitter to add to the platform if I had my way? Design an app around that and you might have something interesting.

    The theme in Buzz’s post that resonated the strongest with me is the emotional drain that building an app like this can have. The competition is intense. There’s a feeling that if you don’t have every little feature when you ship, you’ll be laughed out of the App Store. That is certainly on my mind, especially as “I intend to push the price”:www.manton.org/2010/06/1… in this market, and even with beta feedback I’m still not sure how my app is going to be received in the real world.

    → 2:20 PM, Sep 29
  • 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.

    → 11:38 PM, Sep 21
  • Linchpin

    I like “Seth Godin”:sethgodin.typepad.com/. I haven’t read all his books, but I really enjoyed “The Dip”:www.amazon.com/gp/produc… and “Tribes”:www.amazon.com/gp/produc… They were quick reads (I got the first on audio, the other in print). He seemed to crack the problem of getting a business book down to its core idea and not using any more pages than needed.

    So it surprised me when I picked up his latest, “Linchpin”:www.amazon.com/gp/produc… and months later I’m still not even halfway through. There’s nothing wrong with the content; I like what I’ve read so far. But it doesn’t flow the same way his other writing does, and at twice as long it doesn’t have the same structure.

    Finally I realized I was doing it wrong. The best way to approach Linchpin is non-sequentially. Now I just jump to any random page, read a few profiles for the people and companies he uses as examples, and then 5 minutes later put it down again. I get just as much out of the book, but without the guilt of staring at the remainder of unfinished pages.

    → 12:18 PM, Sep 14
  • Honeymoon world tour

    “Via Daring Fireball”:daringfireball.net/linked/20… I’m loving “this blog and idea”:sparkabout.net from newlyweds Simon Willison and Natalie Downe, who are traveling the world on a working honeymoon:

    "We've been in Morocco now for just over a month. We launched Lanyrd from a rented apartment in Casablanca, and we're writing this update from a Riad in Marrakech. So far, travelling and working on a startup have complemented each other surprisingly well."

    In 1999, Traci and I took a similar but shorter 2-month vacation to Europe where we both worked remotely. This was before wi-fi, so much of the destination planning centered around pay-by-the-hour internet cafes or reliable hotel phone lines for dial-up. Lots of backpacking, cheap rooms, and trains and boats between 6 countries. We were constantly broke and our accommodations varied between the crummy (freezing showers at a hostel) to the beautiful (freezing showers with a Mediterranean view), but those were easily some of the best weeks of my life. At the end of the trip we got engaged and came back to America to get married and have kids and never leave our neighborhood again.

    Someday we’ll go back.

    → 7:48 PM, Sep 13
  • I hope iAd fails

    I feel bad admitting it, because some of my friends are betting on iAd revenue to feed their family, but I’m just not on board with Apple running an advertising network. I don’t want to see ads in my apps, and I don’t want Apple to ever lose even a little of what it means to be a product-driven company.

    We talk about this on Core Intuition. Nearly every chance I get I like to point out that all these free Google apps come at a cost. Take this tweet from last year:

    "Google Voice is so awesome but I just think it's dangerous to give Google this much power. Slippery slope, folks. You are not a customer."

    And this comment on MetaFilter:

    "If you are not paying for it, you're not the customer; you're the product being sold."

    Some apps should absolutely be ad-suported (such as a search engine or social network), and many can be freemium (free versions supported by higher-priced subscriptions), but when given a choice I’d rather pay a fair price for a good service. When your customers are not your users, the product will suffer.

    I know the world is full of ads already. We’re used to it — numb to it, maybe. But think about what the App Store has done: millions of people are paying real money for apps that complement ad-supported web sites. These same people would never pay a subscription fee to use the web site, but they’ll pay a few bucks for the same features in an iPhone app and it seems perfectly normal.

    Do we really want to give that marketplace up? Because once it’s gone, and iAds are the norm, it will be an uphill battle to get anyone to pay for anything.

    → 11:49 AM, Sep 10
  • Next generation Twitter apps

    I’ve been thinking about and playing with the official Twitter app for iPad since its release last week. The best praise I can give Loren Brichter and his team for the UI “stacking” breakthrough is: I wish I had thought of it.

    But it’s clear after an informal survey of friends, and listening to folks on Twitter, that the UI might be too clever for its own good. Many people can’t quite figure out if they love it or hate it. And on top of the UI risk, Twitter for iPad doesn’t bring any new features to the table.

    Third-party Twitter clients won’t be wiped out by this. So now what?

    The first Twitter clients (led by Twitterrific for Mac) provided a quick way to check on your friends without visiting the web site. The second batch of Twitter clients (mostly on mobile) provided a full replacement for the site.

    I believe we’re about to see a third generation of clients that will go way beyond what the web site can do. There was worry when Twitter bought Tweetie that it would destroy the third-party Twitter market, and sure, some developers will fail or be discouraged from trying to compete against a free official product. But really what it does is raise the bar — that to succeed Twitter clients should be more than just a one-to-one mapping between UI and the Twitter API.

    One feature is filtering. “TweetAgora for iPhone”:tweetagora.com has muting and an interesting live aggregation view, like a client-side extension of Twitter lists. “Hibari for Mac”:www.hibariapp.com recently shipped with an attractive UI and keyword filtering, muting, and integrated search results.

    And there’s other stuff I want to see, like archiving tweets and better search and curation beyond simple favorites. I’ve been working on some of these too, in a brand new iPad app for Twitter. I can’t wait to share the details as it gets closer to release.

    Not unlike “Marco’s post on the subject”:www.marco.org/208454730… my hope is that free apps and paid apps compete in separate worlds of the App Store. When Twitter for iPad shipped it jumped to the number 1 spot in free apps, but maybe you don’t have to compete directly with that. Maybe if you hold your ground somewhere in the top paid list, that’s enough to find an audience.

    → 12:20 PM, Sep 7
  • Interruption and collaboration

    Jason Fried, “from a recent interview”:37signals.com/svn/posts… “Interruption and collaboration are different things.” If you haven’t listened to a Jason Fried talk recently, this one covers a lot of good stuff.

    I also like “episode 19 of their podcast”:37signals.com/podcast/ which is edited from a live recording of a planning session for Rework. My first impression of Rework was that it was too finely edited — that to get to the essence they threw away too much material. I wanted to hear more case studies from their business, approaches that worked or didn’t, and lessons learned.

    But I’ve flipped through the book again, a few months later, and it holds up. I don’t know if it was intentional or not, but the lack of filler text gives it a certain timelessness. Each chapter is one core argument, and whether that topic resonates with the reader or not depends entirely on what you and I bring to it from our own job experiences.

    → 5:47 AM, Aug 30
  • Deprecation mentality

    Today, Twitter starts “shutting down basic authentication”:countdowntooauth.com for the Twitter API. One of my favorite Twitter clients, Birdfeed, will be allowed fewer and fewer requests until finally at the end of the month it stops working. Likewise for Birdhouse and Twitterrific 2. And the same for my “Wii Codes”:wiitransfer.com/codes/ site, until I have a chance to update it.

    “Dave Winer wrote a fairly negative essay”:www.scripting.com/stories/2… a few months ago on this so-called OAuthcalypse:

    "When Twitter breaks all the apps in the OAuthcalypse, they will break all of mine, and I have no intention of fixing them. I don't expect anyone to care. But what you should think about is how many of the Twitter apps that you do care about will break and how many of them will say the hell with it? And how many of them will be around for the next time Twitter breaks everything, because that's certainly coming unless Twitter develops some kind of philosophy about itself as a developer platform."

    I didn’t want to agree with him at first — I’m a big fan of nearly everything Twitter does — but it’s a fair question to ask whether backwards compatibility is getting the attention it deserves. Software moves fast, but this kind of thing hurts users, not just developers.

    In the desktop world, OS APIs are unlikely to change so severely, and if they do you always have the option to run an older version of the OS or app indefinitely. For web services, though, you can’t keep an older copy of the internet around. Web apps are forced upgrades.

    I’m not sure there’s a solution to any of this. It’s just part of tech progress, like moving data from old floppy disks to CDs to hard drives to the cloud. But it’s a bummer when apps get left behind as APIs are obsoleted. Over-aggressive deprecation was common in the Rails world, and “I was not a fan”:www.manton.org/2009/01/r…

    So, here’s to the future, Twitter. Keep new API changes versioned and maintain the old stuff. If this OAuth switch is a one-time cost, developers can focus on what makes their apps unique instead of always playing catch-up.

    → 3:50 PM, Aug 16
  • Congratulations, you&#039;re a manager

    The sort of odd “best of both worlds” balance in my different projects at “VitalSource”:www.vitalsource.com and as a solo shop is that I love working with a team, and I also love working alone. I mean really alone, doing the planning and design and coding and marketing. I’ve resisted farming out any piece of my apps at “Riverfold”:www.riverfold.com (except the application icon) so that I can have complete control. It’s brutally hard sometimes, but it’s mine.

    If you’re working by yourself and add another person to the project, a funny thing happens: you become a manager. Before, you could spend 100% of your time on the work. Now you can allocate 50-75%, because you’re getting the new programmer up to speed, answering questions, and setting priorities. If you’re lucky (and I usually am), the person you added is contributing so much that it easily makes up for your loss in productivity, and then some.

    The trade-off is worth it. Exchange the previous low communication overhead for extra coding man-hours.

    You can build something great with a team, something that would be impossible alone, if you surround yourself with people who are better at your job than you are. I love that first moment when a team doubles in size from 1 to 2, or 2 to 4.

    But after the initial frenzy of coding and emails and new features, I usually get burned out again. The project doesn’t strictly need me anymore, and I’m ready to get back to starting an app from scratch, when the scope is so small that the whole thing still fits in my head.

    → 2:09 PM, Aug 8
  • Mike Lee

    I like this paragraph from a “long post by Mike Lee”:le.mu.rs/motherfuc…

    "On any project, whether it's a band performance or a team shipping, there's a time to curse, and a time to praise. Someone who gets those in the right order is an inspiring leader. Someone who gets them backwards is just an asshole."

    As I mentioned on a recent “Core Intuition”:www.coreint.org/2010/06/e… episode, I have a really hard time remembering who I meet unless I read their blog, or follow them on Twitter, or have heard about their reputation. None of these were true when I first met Mike Lee, walking to pizza one night at C4[1]. I didn’t even know at the time that he worked at Delicious Monster. But it didn’t matter because he essentially opened with: “I was hit by a car last week.”

    Bam! World’s toughest programmer indeed, and now I’ll never forget his face or the conversation. We can’t all be as relentlessly passionate and memorable as Mike, but there is a lesson here in personal brand: finding what sets us apart from every other programmer and letting that shape our voice and the projects we work on.

    → 11:18 AM, Jul 21
  • iTunes password caching

    “Mike Rohde racked up $190 in iTunes in-app purchases”:www.rohdesign.com/weblog/ar… without knowing it, blaming an app called “Fishies”:itunes.apple.com/us/app/fi… by PlayMesh for tricking his son into purchasing virtual items without a password prompt. He was obviously pretty upset — I would be too! — but calling it a “scam” probably goes too far. So what really happened?

    It is fairly well known that after the App Store prompts for your iTunes password, you can download more apps for a certain length of time (at least a few minutes) before it requires a password again. What seemed less clear is that this applies to in-app purchases as well.

    To be sure, I ran a test to confirm the behavior:

    • Download a new free app from the App Store (I downloaded the current number 1 iPhone app, Farm Story Summer).

    • Enter your password to confirm the download.

    • As soon as it finishes, go to another completely different app (in my case it was Iconfactory's Ramp Champ, which I had downloaded months ago).

    • Purchase an in-app virtual item.

    • It prompts for whether you want to buy the item (the standard Apple prompt), but without requiring a password.

    What must have happened to Mike is that he bought something, entered his password, and then handed the iPad over to his son. His son played the fish game and clicked a bunch of random stuff (likely got the Buy prompt), but because the whole concept of virtual currency is kind of confusing, and because it didn't ask for a password, the app happily let him make all the purchases.

    I doubt the developer of this app did anything wrong. A reasonable argument could be made that iTunes should either not cache passwords at all, or keep a separate cache for app downloads vs. in-app purchases, or maybe always prompt for a password on in-app purchases. My kids and other kids I know have also used this backdoor trick to sneak a couple app downloads, but usually it’s a few bucks, not $190. Consumable virtual items (that you can keep buying over and over) make this problem much worse.

    On “episode 60 of This Week In Startups”:thisweekin.com/thisweeki… Jason Calacanis interviewed ngmoco founder Neil Young about the mobile game business, focusing on the hit iPhone/iPad game “We Rule”:werule.ngmoco.com/. I was stunned to learn from the show that some individuals spend not only hundreds of dollars but up to $10,000 on in-app purchases in We Rule. Neil Young was happy to take their money, but something feels wrong here, like a gambling addiction gotten way out of hand. Or maybe just kids running up their dad’s credit card bill.

    → 1:21 PM, Jul 10
  • iPhone 4

    Alright, it’s been 2 weeks. How does the iPhone 4 hold up?

    For me, there was less urgency to this launch then for previous iPhone releases. I wanted the 3GS on day one (video recording!) and of course I waited all afternoon for the original iPhone (shiny!). Likewise I couldn’t wait for the iPad. This time I viewed iMovie and FaceTime as the killer apps. Sign me up!

    But I wasn’t willing to wait all day. I tried the same approach that had worked great for the iPad: show up late in the day after the madness has settled down. No luck this time. I waited about half an hour, then came back before closing and waited a couple more hours to get a voucher for the next day. Total wait time about 3.5 hours over 2 days and 3 visits.

    To get it on day 1, most people waited 6 hours. I’m sure “John Gruber’s story on Flickr”:www.flickr.com/photos/gr… was common too.

    This was Apple’s most poorly-managed launch I’ve been to. The 3GS line was pretty fast. For iPad it was extremely quick — in and out in half an hour. I mostly blame the extra step of requiring activation in-store, but there were enough problems that I think this whole thing was mismanaged somewhere.

    Some of the inconsistent messages I heard depending on which Apple Store employee I talked to:

    • AT&T activation is not the bottleneck / yes it is.

    • We are selling 30 phones every 10 minutes / no idea how long the wait is.

    • We'll shut down the line at 7pm and give out vouchers / staying open until 2am.

    • Vouchers will allow you to skip everyone else in line the next day / you're guaranteed a phone but have to wait in line.

    I also "collected a few tweets about the launch":[tweetlib.com/manton/ip...](http://tweetlib.com/manton/iphone4.)

    Anyway, the phone. It’s the best phone I’ve ever seen. No question.

    Now that some time has passed, I think I can comment on the reception issue. It’s real. Outside my house, I don’t notice it. But my street is a notoriously bad dead zone, and while I don’t get any more dropped calls than I used to, I can no longer hold the phone in the palm of my left hand when using mobile Safari. It’s pretty frustrating because I’ve been holding the phone this way for 3 years. It’s awkward to break the habit.

    Having said that, I’ll close with the same thing I told strangers who came up asking about the phone. It’s easy to overlook the reception issue because of how great the rest of the phone is, and all existing iPhone users will love the iPhone 4. Eventually I’ll just cave in and buy a bumper.

    → 9:10 AM, Jul 9
  • $10 iPad apps

    I’m fascinated with App Store pricing. There’s just so much interesting stuff going on:

    • 99-cent apps and the race to the bottom.

    • Users expecting apps to be cheaper because the device is smaller.

    • The high-end successes like OmniGraffle.

    • Sales and pricing gimmicks.

    • Whether apps can compete outside of the top 100.

    So when 37signals launched their first iPad app — Draft, for sketching mockups and quickly uploading them to Campfire — the first thing I wondered was: "how much?" The comments on their "launch blog post":[37signals.com/svn/posts...](http://37signals.com/svn/posts/2420-launch-draft-for-ipad) are a hilarious and sad mix of the usual cheapskates balanced with 37signals defenders. But the most amusing part is that at only $10, Draft is a bargain compared to Campfire itself, which has an entry-level paid plan of nearly $150/year.

    (I’m a big Campfire fan, actually. The best iPhone client for Campfire, Ember, has a permanent spot on “my home screen”:www.firstand20.com/homescree…)

    My first indie iPad app, a 3-4 week project that has stretched to 3-4 months, will also be $10. At that price it will be twice as expensive as its competition. I’m pricing it that way for three main reasons:

    • It's worth the price of two trips to Starbucks, because it takes the category in a new direction with features no one else is doing.

    • It's designed for people who are serious about this stuff, not an impulse buy, not for everyone.

    • It's a standalone app but includes an optional web complement, offered for free, but which will incur "real hosting costs":[www.heroku.com/.](http://www.heroku.com/.)

    Daniel Jalkut and I talked about this a bit on "Core Intuition 28":[www.coreint.org/2010/04/e...](http://www.coreint.org/2010/04/episode-28-the-ipad-super-episode/) — that it might be okay to overcharge a little for 1.0 rather than raise the price later, and that it should be possible to build a business on the iPad the same way many developers have on the Mac: not by looking for the big overnight hit but by steadily selling some number of copies every day and letting it spread by word of mouth.

    Marco Arment wrote about this as “App Store B”:www.marco.org/208454730 in October last year:

    "More of their customers notice and demand great design and polish. More sales come from people who have heard of your product first and seek it out by name. Many of these apps are priced above $0.99. These are unlikely to have giant bursts of sales, and hardly any will come close to matching the revenue of the high-profile success stories, but they have a much greater chance of building sustained, long-term income."

    We’re three months into the iPad, just passed 3 million devices sold, and not every app has dropped to near-free. I think $10 iPad apps in particular are going to remain pretty common.

    → 12:39 AM, Jun 24
  • NetNewsWire production process

    I like “this Flickr set from Brent Simmons”:www.flickr.com/photos/br… showing the stages of building NetNewsWire for the iPad. It’s exactly the process I’m going through right now with my new app. Get some placeholder views and tables in there, then iterate, each time filling in more of the missing pieces.

    iPad interface design is also proving to be much more difficult than I thought it would be. Concepts that work on the iPhone don’t necessarily translate to the larger device, and there are very few iPad apps to draw inspiration from. There’s no standout app from Apple’s lineup either, at least not in the way that iTunes 1.0 defined nearly every Mac app to follow. With the exception of some very basic ideas like splitviews collapsing in portrait mode, and a generous sprinkling of popovers, I’ve yet to see much consistency from new touch apps.

    Apps that have had the biggest influence on me so far: from the iPhone, Birdfeed and Pastebot; and on the iPad, Mail and Twitterrific. Send me a reply “on Twitter”:twitter.com/manton if you have any other recommendations.

    → 9:56 PM, Apr 18
  • New iPad hackers

    My first reaction when I started reading “The Kids Are All Right”:daringfireball.net/2010/04/k… on Daring Fireball was: Well, I had to disagree with a John Gruber essay eventually, might as well be this one. There was no developer program fee when I started building Mac apps! You could write whatever you wanted and share it with friends.

    But then I thought more about the $99 hurdle. What was I doing as a teenager and would the procedures Apple has in place now have stopped me? (For context, I’m 34.)

    I started programming for the Mac with THINK Pascal, a beautiful little development environment. Then I moved to C with Dave Mark’s book, which came with a C compiler on a floppy inside the back cover. Eventually I saved up and bought Symantec C++. Even at an educational discount these were expensive compared to the free Xcode of today.

    At that point I’m pretty heavily invested in the Mac, but the killer was the documentation. I’m sure I spent hundreds of dollars on “Inside Macintosh”:en.wikipedia.org/wiki/Insi… books. Our senior year in high school, my friends and I would meet at a restaurant before class for coffee and breakfast. I remember I’d get there early and sit in the booth with one of my oversized volumes of Inside Mac, taking in too much caffeine for my own good while I devoured every page, even the advanced topics that were still over my head.

    I lived and breathed this stuff pretty heavily for a few years. To imagine letting a $99 iPhone dev fee and some locked-down APIs prevent me from building apps is laughable. Great computers inspire people to build new software. That’s how it was when I got my first Mac, and I’m sure it’s that way for the new generation of young iPhone and iPad tinkerers.

    One day I hope the App Store will be more open. But it is what it is. I’ll point out where I think Apple can improve, and then I’ll build and ship anyway. It makes no sense to sit around and complain on my blog about the good old days while some kid half my age is taking his or her idea all the way to the top of the App Store and owning the platform of the future.

    → 4:13 PM, Apr 16
  • Quiet rejections, no big news

    It appears I was too optimistic “in my last post”:www.manton.org/2010/03/2… about the App Store getting better.

    The iPhone version of Snowtape, in development for months, “was rejected”:www.vemedio.com/blog/post… because it could let users record and share audio from the internet:

    "His sole words were, that there are lots of things missing in the SDK agreement and that they can not foresee any circumstance that leads to a denial of an app. That's right! We did not violate any paragraph of the SDK, yet they forbid us distributing our app."

    The developer removed the ability to transfer audio files off the phone and then Apple let the app through.

    Then there’s this post “on the developer forums”:devforums.apple.com/message/1… about an iPad app rejection because they recreated a UI innovation from the new Photos app. Apple said:

    "The application uses a tap and a pinch to expand feature that is present in Apple iPad Applications. This action is associated solely with Apple applications, and we kindly ask that you update your app appropriately."

    I’ve been doing a bunch of iPhone and iPad development this week. The more I work with it, the more I love the platform. But it just takes a couple rejections to sour the whole experience.

    And yes, I realize I’m posting this on one of the most exciting days in the history of the App Store. The first round of iPad apps hitting the store today look fantastic.

    → 4:23 PM, Apr 1
  • Fast customer support

    Three years ago “I wrote the following”:www.manton.org/2007/02/c… about customer support:

    "Most people who buy Mac software from independent developers know that it's only 1-5 people behind the company. We can't compete with the Microsofts and Adobes of the world on application size, but we can compete on quality customer service. _Being small is a competitive advantage_."

    Seems reasonable, but the fact is that many small companies are struggling to keep up with the support load. “Jesse Grosjean recently downgraded”:blog.hogbaysoftware.com/post/4681… his support expectations for customers. From the official site:

    "I'll answer basic questions and license key/order issues as fast as I can. I also appreciate larger questions and feature suggestions, but I'm finding that I no longer have time to answer them all as I used to (mostly). I promise to read and consider everything, but you may not get an individual response."

    I’m a huge fan of Jesse’s TaskPaper and his minimalist approach to Mac development. He is very honest with customers and encourages participation starting with early beta versions.

    But it can be damaging to set support expectations too low. Here’s what a support page says about support in “Pastebot”:tapbots.com/software/… another one of my favorite iPhone apps:

    "We try our best to answer every support question. But please make sure your question hasn't already been answered in our FAQ. If you email us with an issue that has already been explained in the FAQs, we may skip the email."

    This seems slightly backwards to me. The questions in the FAQ are the easiest to answer! I respond to those immediately. It’s the hard questions for which I don’t have a good answer yet that usually take the longest time or are more likely to fall through the cracks.

    Is the weight of support for iPhone developers just too much? TaskPaper and Pastebot are both very popular. I guess we can all hope to be successful enough that we find out.

    Meanwhile, I had a question for “Beanstalk”:beanstalkapp.com yesterday and received a response in just 19 minutes and an additional follow-up response in under 10 minutes. I like to show off impressive companies, so I tweeted how fast their response was. “Their answer”:twitter.com/Beanstalk… to my tweet? “We’re usually faster.”

    Yep, that’s the right attitude. Set your standards high.

    → 10:18 AM, Mar 30
  • Mac OS X Server tantrums

    “At VitalSource”:www.vitalsource.com we now have a dozen Xserves running Ruby on Rails and a couple others running MySQL. While it’s mostly stable now, over the years there have been several mystery show-stopper problems that no one seems to have on other platforms.

    Which is why I found this “quote from Rentzsch”:rentzsch.tumblr.com/post/3168… so interesting:

    "The trick is to radically minimize all services performed by Mac OS X Server itself, and instead run services in VMware-hosted Debian images. At that point, Mac OS X Server becomes little more than a simple container for VMware, something it seems able to handle with a minimum of tantrums."

    It seems kind of wasteful, but Mac OS X Server really is overkill most of the time.

    Related: over the weekend I checked into “Heroku”:www.heroku.com/. I’m impressed with what they have built. If it works as advertised, I think I’ll supplement my Dreamhost stuff with Heroku any time I need a Ruby backend.

    → 9:14 AM, Mar 29
  • Trade-Off

    I’m of two minds about “Trade-Off”:bit.ly/beDE2m by Kevin Maney. I picked up the book mostly on the strength of its tagline: Why Some Things Catch On, and Others Don’t. The Ever-Present Tension Between Quality and Convenience. Pretty good, right?

    The premise is great — that you have to choose when building a business whether to have an expensive, high fidelity product or a less expensive, more accessible product. Trying to do both usually leads to failure. It’s like when I see an application marketed as “easy to use, yet powerful!” That’s often a red flag that it is neither.

    My issue with the book is that, like most business books, it simply drags on too long. What should have taken a couple days to read turned into months of slogging through a few pages at a time. There are some great stories in the 200 pages, but the idea behind the book, which is captured on the cover of the book itself, gets repeated over and over. It’s almost like Maney copied and pasted some of the key points and scattered them throughout the book as filler.

    37signals said that in the final draft of “Rework”:37signals.com/rework/ they cut the page count nearly in half, and I think some deeper edits in Trade-Off would have helped too. Take the first 20 pages to explain the idea, and then another 80 pages of case study chapters with anecdotes, stories, and interviews. Done.

    Complaints about the size and structure of the book aside, though, I got a lot out of Trade-Off. While Maney often strains to fit the book’s core on top of successful or failed businesses that are too complicated to be applicable (I didn’t appreciate the Newton-bashing), he makes some great points that helped me put my own app “Clipstart”:www.riverfold.com/software/… in perspective, and will likely change how I market and build new features for it.

    → 8:48 AM, Mar 26
  • 24-hour review times

    I noticed a couple tweets last month about fast, less than 24-hour review times for iPhone app submissions. After I tweeted it, a whole bunch of other people came forward with similar stories. Apps going from submission to ready-for-sale in 12 to 24 hours.

    The App Store is still fundamentally broken in many ways, possibly beyond repair depending on who you talk to, but there’s no question that fast review times are great for developers. Even if the progress stops with this, it’s a significant improvement to the App Store process.

    Is it just for established devs? Just for minor bug fixes? It’s not the latter, since some of these were brand new apps. The question is whether this was a change for a certain class of developers and apps or whether it represents an overall speed-up to the review process, and maybe even a hint at prepping for the iPad launch.

    Review times are a big deal and they’ve gone mainstream. Opera Mini has a very public “count up”:my.opera.com/community… widget as part of their extensive pre-approval hype. You can tell from the demos that Opera put a huge amount of work into polishing Mini before submitting it, to remove as many potential objections as possible, and to get users excited before it ships. A high-profile rejection now would erase any goodwill that Apple has built up recently.

    I know some developers are nervous with openly discussing or blogging about their relationship with Apple, but I think more people should follow Opera’s lead. By being vocal on the App Store’s strengths and shortcomings, we force Apple to be more transparent. Bad press has a proven history of leading to overturned rejections. The narrative of the last few months, to me, is that the App Store is getting better, and I don’t think it would be happening without the critics.

    → 11:34 AM, Mar 25
  • Clipstart is not iPhoto

    I get a lot of great feedback about “Clipstart”:www.riverfold.com/software/… There’s value in almost every feature request, even the ones I don’t plan to directly implement. Some people also suggest that I should copy more from iPhoto. While I understand this — they want a familiar interface — it has always been my goal to be different than iPhoto. Why?

    Two main reasons:

    • iPhoto never quite worked for me, and only by being different can you hope to be better. I took a few things that iPhoto did poorly (like tagging, video playback, and upload) and built the entire interface around them.

    • If I just created a clone of iPhoto but for videos, Apple could expand the video support in iPhoto one day and I would be left with nothing. If my app grows in a completely different direction, however, then even if they add video support to iPhoto my app will still appeal to people who aren't satisfied with iPhoto's approach.

    I know I'm on to something because when I show the app to a certain type of person (who has thousands of short videos, or no quick way to share them) their eyes light up. It's now just a matter of pumping out new versions to refine the interface and fill in the missing pieces. I have major features planned for the next few dot release (1.4, 1.5, and 1.6) to try to give customers as much value as I can, and execute on the potential for the application.

    Both Aperture 3 and Lightroom 3 now have video support, but I’m not too worried. There’s plenty of room between iLife and $199/$299 for Clipstart to carve out a customer base.

    → 7:35 AM, Mar 24
  • iPad ships next week

    With the iPad set to ship in just a week and a half, I’ve been quietly reshuffling some of my projects around it. I’ve written critically of the iPhone and App Store a couple times, such as how the iPhone is a gold rush distraction that “doesn’t need me”:www.manton.org/2009/09/i… I also stand by “earlier opinions”:www.manton.org/2009/11/t… of how unfixable the App Store is, especially now when it’s obvious that any effort trying to convince Apple to open the store is completely wasted. They never will.

    But I really like what I’ve seen of the iPad platform so far and I think it represents a big shift for everyday computing in a way that a cell phone can’t. So I renewed my membership in the iPhone developer program.

    I’m working on 2 apps for the iPad. The first is just a minor iPad refresh of an existing iPhone app at VitalSource called “Bookshelf Noteview”:itunes.apple.com/us/app/bo… (iTunes link). It’s for reading notes and highlights synced from our e-book platform.

    I’m not ready to announce the next app yet, but it’s a personal project which I had originally written for the Mac over a year ago. I shelved it at the time because I wasn’t sure there was demand, the backend web services weren’t mature, and I wasn’t ready to take it to completion. For the iPad though, it might be perfect.

    And that’s ultimately where I see the most interesting potential for the iPad. New middle-ground apps that we haven’t even thought of yet, not ports from another platform. Apps that would feel small or distracting or wrong on the Mac, yet equally oversized for a relatively underpowered iPhone. Maybe the never-tested-on-a-real-device launch day apps will be buggy and the overall quality low, but I can’t wait to try them anyway.

    → 7:48 AM, Mar 23
  • 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.

    → 3:02 PM, Mar 11
  • Check in here

    I started this blog exactly 8 years ago today, right before SXSW, so I thought I’d post about something related to the event. This year Gowalla and Foursquare are going to be huge. I was a little late to the location-based game party, initially being turned off by Foursquare when it asked for my phone number just to register, but over the last 6 months I’ve been thoroughly enjoying using Gowalla.

    “Jeff Croft has a detailed breakdown”:jeffcroft.com/blog/2010… of the differences between Gowalla and Foursquare:

    "Gowalla is capable of having spots which are not addressable, and which are very precise points on the Earth's surface. This, again, points to its geocaching nature. You can create a spot for that really wicked tree in your favorite park, or your mailbox, or the trash dumpster where your favorite bum spends most of his days."

    This is one of Gowalla’s best features. I also prefer its design, and the playful personality they’ve baked into the app. While I agree with Jeff that there doesn’t need to be one winner, I’m not interested in checking in with more than one application every time I visit a spot, so I use Gowalla exclusively. And because I have friends at Gowalla, I want them to succeed.

    My message to Foursquare users who are coming into town for SXSW: Gowalla is an Austin-based company and they are “doing fun stuff for SXSW”:gowalla.com/sxsw. Why not give Gowalla a try for the weekend?

    → 9:11 AM, Mar 9
  • iPad commercial

    When “the iPad commercial”:www.apple.com/ipad/gall… popped up during the Oscars, I thought it captured the power and elegance of the device extremely well. But as I commented on Twitter, after repeat viewings you can see that it’s probably faked. The iPad must have been filmed on a stand or table and then composited into the shot later.

    Contrast this to “Cabel Sasser’s”:www.cabel.name/2006/03/n… video of the Nintendo DS Lite, which was a faithful presentation of how the game system feels to use and yet still “sold people on the device”:twitter.com/shauninma…

    Apple stretches the truth with all the iPod and iPhone ads and it never bothered me before, but this one seems wrong. How it feels to hold an iPad will be the difference between a good product and a great one. Can you hold it still with one hand? How easy is it to rotate it? What is the angle like when propping it on your legs?

    This is a pretty minor complaint — I’ll be pre-ordering my iPad this Friday regardless and couldn’t be more excited — but I wish Apple didn’t feel the need to lie about such an important part of the product.

    → 11:28 AM, Mar 8
  • iPhone patents

    “Wil Shipley on Apple’s decision”:wilshipley.com/blog/2010… to be aggressive on their iPhone patents:

    "But when you sue someone for doing something you do yourself, you become one of the bad guys. Can you name a company _you_ admire that spends its time enforcing patents, instead of innovating? Remember the pirate flag you flew over Apple's headquarters when you were building the Mac?"

    And “my tweet on this”:twitter.com/manton/st… from yesterday:

    "This iPhone preemptive patent war is going to backfire. You're losing the battle for our hearts and minds, Apple."

    Whether Apple wins this patent lawsuit or not doesn’t even matter; the old Apple many of us fell in love with is dead and maybe never coming back. I still want to think of Apple as the company that fights the good fight, innovating and putting user experience first. But you have the App Store exclusivity and rejections, and now you have the patents.

    It’s a shame they’ve gone so far off course. Regardless of market share and billions in revenue, I’ll always hold Apple to a higher standard than every other mega corp, and hope not just for better products but also for leadership and doing what’s right.

    → 1:31 PM, Mar 3
  • 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.

    → 1:29 PM, Feb 27
  • I don&#039;t use Core Data either

    “Brent writes a fair post”:inessential.com/2010/02/2… on when Core Data is great and when it’s a performance bottleneck:

    "I optimized as much as I could, spent tons of time in Shark, went all multi-threaded with Core Data, switched away from my own queuing system to NSOperationQueue, optimized the XML parsing, etc. But performance and memory use on my first-generation iPod Touch (my development test device) was still not nearly good enough with a big unread count (of around 10,000 items)."

    If I had been writing that post I probably wouldn’t have praised Core Data as much as he did, although admittedly because I rarely use it, and not at all in any shipping applications. Its approach always seemed slightly wrong to me.

    My main reason for sticking with SQL directly is that I know by coding at this lower level — with my own lightweight model objects on top of FMDB and utility methods for working with the Clipstart database — that if something is slow it’s my fault. I can fix things that are my fault. I can’t fix fundamental design problems in Apple’s code.

    → 12:49 PM, Feb 27
  • iPad

    My quote from “Cult of Mac”:www.cultofmac.com/i-have-be… sums up my feelings about the iPad from a business perspective:

    "I was so annoyed with the closed nature of the App Store that I stopped developing for the iPhone. The iPad will still have those frustrations, but the large screen opens up a whole new class of applications. It's impossible to resist."

    Will there be a “Clipstart”:www.riverfold.com/software/… for iPad? I hope so. This platform will be the future for plenty of customers. Apple lived up to the hype not because of the hardware or distribution or anything entirely revolutionary, but because of the software. Splitviews and popovers. Keynote and Pages. These apps are just as competent as their desktop versions.

    Daniel and I talked about the iPad for most of “Core Intuition 26”:www.coreint.org/2010/02/e…

    → 11:54 AM, Feb 8
  • ParseKit (and Clipstart search)

    The first couple versions of “Clipstart”:www.riverfold.com/software/… had a very basic search feature. You could enter keywords and it would search filenames, tags, and video titles. You could also enter special terms such as tags=christmas or imported=today, but you couldn’t mix and match different terms together.

    When I started working on a more advanced search parser, I realized that I was about to write a bunch of code that surely someone had already generalized and shared with the world. Tada! “ParseKit”:parsekit.com by Todd Ditchendorf is that framework.

    Clipstart 1.3 now supports these kind of searches:

    christmas and (@julian or @kids)

    also…

    (uploaded=no and flagged=yes) or (date=2010 and @vacation)

    I use ParseKit’s tokenizer to take these apart and then I translate to SQL myself for SQLite. New in 1.3, Clipstart also allows saving any search as a “smart tag” for quick access. I’m very happy with how well it’s working.

    Why not use “NSPredicate”:developer.apple.com/mac/libra… and friends? I wanted more control over the parser, for example for the @kids shorthand for tags. Eventually I’ll have a more traditional NSPredicateEditor-like UI for managing searches, but I find that text input is a much quicker way to find things in my video library.

    → 2:05 AM, Feb 8
  • Removing features

    “Lukas Mathis writes”:ignorethecode.net/blog/2010… about removing features:

    "You don't _have_ to try to please everybody and eventually create an application that is liked by nobody. In fact, since your users are in all likelihood in a situation where they can switch applications easily, and since they probably are not locked in by the need to open a specific file format in its native application, it might be a really bad idea for you to go down the 'simply add up all the requested features' route of application design."

    He also links to “my Wii Transfer survey”:www.manton.org/2009/07/w… so I thought I’d post a quick follow-up. I eventually did remove a feature, and the survey to customers served as a nice sanity check that the feature wasn’t heavily used. The interesting part, to me, is that the feature I removed was the entire 1.0 product for Wii Transfer. Literally everything that 1.0 did is now gone.

    It’s been two weeks so far without any complaints. I like to think that it removes a distraction from the app — one less place in the app that could lead the customer down the wrong path. And hopefully it’ll eliminate a tiny part of my support load, as no one can ask me questions or have problems with that feature again!

    On an internal company mailing list I once wrote:

    "Products that don't exist yet have a way of attracting new features because everyone sees the potential in something that has no form".

    I was talking about resisting the urge for everyone on the team to pile on their favorite features before 1.0, but I think this applies to apps with a minimal design as well. A simple app shows promise. A cluttered app with too much going on looks “done”, and sends a message that it is mature and maybe going in a different direction than what the user wants. In that way, the irony is that removing features (the wrong features) may actually make an application more appealing to new users.

    → 3:03 PM, Feb 3
  • Bodega bootstrap

    I wrote the following before the iPad was announced. The world may have changed since then, but I’m posting it anyway. Enjoy.

    I like the content but not the title in “John Casasanta’s blog post about the so-called death of Mac software”:www.taptaptap.com/blog/ipho… He shares some great stats and lays out the case for why iPhone development is more appealing and successful for him, but that doesn’t make the Mac dead. What he really meant and says later is that it’s dead to him.

    For those of us who love writing Mac software and who don’t feel the pull of get-rich-quick blockbuster apps, the Mac is alive and remains just as healthy as it was before the iPhone was announced.

    That’s not what I want to write about, though. The real question is how do we learn from the App Store and expand the market for Mac software. Compared to the iPhone, the Mac has a fragmented application discovery and an inconsistent purchasing experience.

    When Keith Alperin and Rick Fillion “talked on the MDN Show”:www.mac-developer-network.com/shows/pod… about a possible Mac app store, Rick revealed some interesting numbers from “Bodega’s”:appbodega.com installed base: 80,000 downloads and 10,000 active users. They’re not 1.0, and I don’t see anything wrong with these numbers, but it’s not big enough yet to make an iPhone-like impact on how we buy Mac software.

    What Bodega does have is a technology head start. “My products”:www.riverfold.com have been listed there since launch, and they have a polished application and feature-rich backend for tracking releases and collecting usage metrics. The key is solving the chicken-and-egg problem of getting the Bodega app in everyone’s hands.

    There are two approaches: either get people excited about installing Bodega because it’s useful for updating existing apps (which it is), or sneak a copy of Bodega on to many more Macs (which is what this post is about). This solution isn’t perfect, but short of Apple building a real Mac App Store or a marketing giant like MacHeist getting involved, it’s the only idea I can see working.

    First, start with “PotionStorefront”:github.com/potionfac… There are a few of these in-app purchase frameworks out there, but I like the “Potion Factory’s aesthetic”:www.potionfactory.com/thehitlis… and Potion Store is popular. The web service used to submit orders could be supported by other custom store backends, including Bodega’s own purchasing system when they have it.

    On top of this in-app purchase foundation, you bundle a subset of the Bodega application discovery UI directly into the framework. Users can download and install demo versions of new apps without leaving the catalog. Think of it as a “lite” version of Bodega, streamlined to fit inside everyone’s app. You also include the full Bodega application so that it can be launched and optionally installed in the user’s applications folder.

    What you’ve effectively done here is give everyone who buys a third-party app access to a new store where they can discover other apps. It’s compelling for developers because the more companies that participate, the wider their reach becomes. And it’s great for users because over time it starts to create a consistent user experience, and familiarity reduces the effort in buying Mac software.

    Some tricky issues remain, though. You don’t want to distract users from buying their first application, or muddle that app’s branding, and you want to later encourage users to find or be notified about new applications without it looking like an advertisement. The challenge is in finding a balance that most developers would want to use.

    Back to the iPhone’s success, from a post by “Guy English”:kickingbear.com/blog/arch…

    "People, lots and lots of people, people who have no idea what software even is, will download Apps like they're snacking on potatoe chips. What's my proof? Well, two million downloads of an App in a week supports that and I'd argue that a total of three billion Apps downloaded backs up my argument too."

    We’ve never seen anything like it, and I’m really happy for my friends who have had success on the iPhone. Luckily, the iPhone and Mac don’t actually compete. The App Store can sell ten thousand times the amount of software as the Mac does and it doesn’t change the fact that Mac users need software too. It’s our job as developers to continue to provide solutions for users and help those users find us.

    → 11:24 PM, Feb 2
  • Macworld Expo 2010

    I haven’t been to a Macworld since the late 90s. I’ve had it in my head for a couple years that I’d like to go back, but with so many developer-focused conferences it’s been hard to justify an extra trip for Macworld. At the same time, my “indie apps”:www.riverfold.com need a nice marketing refresh. So why not exhibit at Macworld and get to see the show again while reaching a new audience of potential customers?

    I knew I’d regret it this year if I didn’t take advantage of the “small indie pavilion kiosk”:macworldexpo.com/indiespot… So with frighteningly little planning so far, I’ve booked the expo, flights, and hotel. I’ll be at the show and I’ll be demoing the just-released Wii Transfer 2.7 and the unannounced Clipstart 1.3. The rest of the details… not so clear.

    But I’m pretty excited about the conference and hope to see many of you there. The expo runs February 11th - 13th, and you can “get a free expo pass here”:rcsreg.com/macworld/…

    → 3:49 PM, Jan 22
  • 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!

    → 1:52 AM, Jan 20
  • Wii Transfer 2.7

    I finally took the time to give “Wii Transfer”:www.riverfold.com/software/… some much-needed attention, releasing version 2.7 of the application tonight. It’s got the usual bug fixes and some small visual improvements, but the most important change is better video streaming. The biggest mistake I ever made with Wii Transfer was to buy an Apple TV instead of forcing myself to use my own application.

    For this release, I sat down with Wii Transfer and a ripped copy of Star Trek, and I just watched it over and over, experimenting with different Flash Video conversion settings and tweaking networking code. I wasn’t going to release this until I could watch a 2-hour movie without any rebuffering. The quality is never going to be as good as a console or set-top box with dedicated video streaming features — this is Flash on the Wii we are talking about — but I’m happy with what I came up with.

    Wii Transfer is still only $19, and version 2.7 is a free upgrade for any customer who ever bought the application going back to 1.0 over three years ago. Also an important reminder: all sales go to charity starting tomorrow, January 20th, as part of “Indie Relief”:www.indierelief.com/.

    → 10:43 PM, Jan 19
  • Unrealized projects

    Seth Godin on an “exhibit for Tim Burton”:sethgodin.typepad.com/seths_blo…

    "Here's the guy who's responsible for some of the most breathtaking movies of his generation, and the real surprise is this: almost every year over the last thirty, he worked on one or more exciting projects that were never green lighted and produced. _Every year, he spent an enormous amount of time on failed projects._"

    This is the kind of thing I’ll try to remember when I look at the apps I’ve started but never shipped, even as they sit very close to finished for a year or more. Almost everyone I know who has successful products also has experiments and failed prototypes and unfinished work you’ve never heard of. That’s okay as long as it doesn’t stop you from shipping the best and making those real.

    I have a lot to announce this week. Posts on a new Wii Transfer, the Indie Relief effort, and Macworld all coming up.

    → 10:35 AM, Jan 18
  • MDN Community Award

    “The MDN Show episode 16”:www.mac-developer-network.com/shows/pod… reveals the winner of the MDN Community Award: a tie between Matt Gemmell and Jonathan “Wolf” Rentzsch, with Mike Ash as runner-up. Looking back on 2009 there should be no surprise over these top three. Matt has been sharing great code with the community for years and is now a fixture of the MDN podcast; Wolf started the successful C4 conference and won a Macworld Eddy for ClickToFlash; and Mike Ash has packed more technical information into a year of his weekly Q&A series than would fit in many Mac programming books.

    (This also seems like a good time to link to nominee Daniel Jalkut, who got “his own version of a community award”:www.red-sweater.com/blog/1074… last month.)

    I had a tough time singling out a specific developer among a dozen or more fantastic people, many who I consider my friends. But for me it was an opportunity to reflect on something at C4 that I didn’t get a chance to write about earlier, and since he won anyway I’ll include the email I sent to Scotty here.

    "There are so many worthy candidates for the "MDN Community Award":[www.mac-developer-network.com/news/mdn-...](http://www.mac-developer-network.com/news/mdn-community-award-2009-update-the-nominations-so-far/) — people who are helpful to the Mac developer community by writing books, blogging, and sharing code — but when I heard about this award I thought about leadership. My pick is Jonathan 'Wolf' Rentzsch.

    “A leader sets the tone and attitude of the community. For example, at the C4 conference when some attendees used the Twitter backchannel to turn against and openly mock a presenter, Wolf shamed the audience instead of glossing over or ignoring the event. It was a community course-correction and a reminder that Mac OS X developers come from many different backgrounds: old-school classic Mac programmers, NeXT developers, Linux and Windows users, even designers and web application developers.

    “The community went through a rough transition point migrating to Mac OS X over 10 years ago, and is in the middle of another transition to embrace everyone excited about the iPhone platform. What I learned from Wolf is that we should never be afraid to welcome ‘outsiders’ to the community even if they haven’t yet caught up on the history and conventions of the platform."

    I have nothing but great things to say about everyone listed on the MDN page. Congrats again to Matt, Wolf, Mike, and the rest of the nominees.

    → 2:52 PM, Jan 9
  • 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.

    → 10:17 AM, Jan 6
  • Clipstart 1.2.4

    Clipstart 1.2.4 is done! It’s a minor bug fix update but includes dozens of small improvements (and some not so small, if you’re measuring not with new UI but in number of lines of code changed). I’m very happy with this release and excited to move on to some other new features in the works for 1.3 and beyond. “Download and more info”:www.riverfold.com/software/…

    And because I don’t have anything else of substance related to Clipstart to talk about yet, I’ll leave you with “this Buzz Andersen quote”:log.scifihifi.com/post/1598… about quality:

    "Shipping quality is a longer, tougher road than just shipping whatever to be first to market, and its benefits tend to be realized more slowly, but if you want users to love your software as a brand, and not merely use it as a commodity, it's the only way."

    I’m not there yet, but yeah, well said.

    → 3:59 PM, Dec 31
  • Indie payment processing

    This story about “PayPal screwing over a Mac indie business”:blog.apparentsoft.com/business/… should be a real concern to anyone relying on PayPal. These kind of things come up from time to time, often with frozen accounts because too much money was suddenly flowing into or out of an account, but I’ve always stuck with PayPal because they have low rates and I haven’t run into any problems. There’s nothing fancy about the way I sell “my products”:www.riverfold.com/, but it works, and I hate to change things that aren’t broken.

    As a user, I’ve gone from avoiding PayPal to preferring it. I’m less likely to use a credit card with online shops that I’ve never heard of before (although more because of the hassle of entering all my information than for any security concerns). It’s also convenient for me to have small expenses like hosting and software purchases all in one place under my PayPal account.

    But it’s time to get serious about this, so I’ve decided to use “FastSpring”:www.fastspring.com as a backup. I like FastSpring’s admin interface, testing mode, templates, and focus on customer support. I’m impressed with the “Atebits custom store”:sites.fastspring.com/atebits/i… hosted on FastSpring, and the “reasons Justin Williams chose for switching”:carpeaqua.com/2009/11/0… The fees are a little high for everyday use (8.9% vs. PayPal’s 3.9%), but it’s perfect as a secondary payment processor, waiting for me to flip the switch if anything goes wrong with my PayPal account.

    → 12:27 PM, Dec 28
  • Healthcare fallback plan

    In the software world, the best strategy is to ship early and often. Get something out there that solves a real problem, then fill in the missing pieces and continue to improve it. Iterate. In politics, though, we often only have one chance in years or decades to get it right.

    The healthcare bill passed the Senate and is on its way to becoming real, even if it’s a shadow of what it could have been. We should be thankful that we got anything — the changes do matter — but at the same time I can’t help thinking it was a missed opportunity.

    Who’s to blame? I wish Democrats had fought harder; I wish they’d framed the debate correctly from the start. I still like George Lakoff’s focus on calling the public option the American Plan, but I also like John Neffinger’s point that maybe the real mistake was in not starting with a single-payer plan so that the public option would look like a moderate compromise. It feels like many Democrats were resigned to failure early on.

    In an unrelated tweet a few weeks ago, from comic artist Kazu Kibuishi: “If you have a fallback, you will fall back.” My failures reflect that too. To shoot for greatness you have to put everything you’ve got into your first effort.

    I keep coming back to something Hillary Clinton said in a debate with Obama early in the Democratic primaries of 2008. It struck me as so true at the time that I wrote it down:

    If you do not have a plan that starts out attempting to achieve universal healthcare, you will be nibbled to death.

    And that’s what happened.

    → 1:29 AM, Dec 27
  • iPhone giveaway wrap-up

    I was reminded by “Nick Bonatsakis on Twitter”:twitter.com/nickbonas that I never wrote about how giving away the iPhone worked out. The short answer is: pretty well! The longer answer follows.

    I’ve conducted 3 giveaways for Riverfold Software now:

    • Nintendo Wii, back when they were in short supply. You could enter by sending a message to "@wii":[twitter.com/wii](http://twitter.com/wii) or by entering your email address and sharing the link with a friend.

    • iPhone 3GS, plus year of Vimeo Plus and Flickr Pro. That's what I'll talk about below.

    • New Super Mario Bros Wii game. Probably the simplest giveaway, all I asked is that you give me your email address and optionally sign up for my newsletter.

    In all cases I had two goals: do something fun for potential customers, and give the press an excuse to write about my products. By that metric all the giveaways were successful.

    I noticed when originally giving away the Wii that most of the entries were Windows users — people who couldn’t even use my application! So for the iPhone giveaway I made a change: you could only enter by downloading the app and choosing a special menu item, which loaded a simple webview with the entry form. Pretty straightforward, and no complaints. The total number of entries was lower, but they were targeted to existing or potential customers.

    In additional to sending news about the giveaway to a few contacts who I hoped would pick up the story, I also wrote a formal press release for it, which “went out through prMac”:prmac.com/release-i… This is so inexpensive that it’s hard to find fault with it, but I think the main outcome was getting contacted for advertising on sites that I had never heard of before.

    Another thing to remember is to set up a “system to track referrers”:www.manton.org/2008/09/t… through to sales, so that you can judge the effectiveness of these giveaway-style marketing efforts. I could tell right away that it paid for itself, but it wasn’t a significant bump in overall weekly stats. I do believe it helps long-term though.

    The final part I took pride in was shipping quickly. Growing up we all had the wind knocked out of our sails by the “allow 6-8 weeks for delivery” fine print on cereal box prizes or other mail-in gimmicks. If nothing else, I made an effort to ship the next day if possible, and I paid for express shipping.

    Giving away stuff is fun. Until I get sued for not following some obscure rule on contests because I didn’t hire a lawyer, I’ll plan for more giveaways in 2010.

    → 2:52 PM, Dec 23
  • 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.

    → 3:17 PM, Dec 22
  • The Princess and the Frog

    Walt’s nephew “Roy Disney died this week”:www.cnn.com/2009/SHOW… In 2003 I blogged about “Roy leaving the company”:www.manton.org/2003/12/r… I said:

    "It's a shame that Roy is the one to leave. It's clear that Disney (the company) has lost its way, and Eisner has no vision for what the company could be."

    Luckily for us, since that time a lot has changed, and the animation division does have leadership in John Lasseter. One of the most visible changes just opened in theaters last weekend: The Princess and the Frog. I’ve seen every theatrical release out of Disney feature animation since I could afford the few bucks to go to a theater, so I wasn’t likely to miss this return of 2d animation.

    My daughters and I really loved this movie, not just because of my love for hand-drawn animation, but for a story that works and characters that are rooted in something real — singing Cajun fireflies and voodoo magic aside, of course. There are some really touching scenes here. “Sandro Cleuzo says”:inspectorcleuzo.blogspot.com/2009/12/m… the animation was rushed, but I think they did a heck of a job.

    The credits are almost as if nothing has changed — Eric Goldberg, Andreas Deja, Mark Henn, Nik Ranieri. “The reality is slightly different”:www.dreamonsillydreamer.com/, but there’s a mix of new animators among the familiar names. A lot is riding on the success of this film, and it managed a respectable $25 million over the weekend.

    Great job, Disney. I’m glad Roy got to see the beginning of the next 2d comeback.

    → 1:20 PM, Dec 18
  • Decentralization and no-SQL

    I’ve been meaning to link to this since it was posted earlier in the year. “Jens Alfke hopes”:mooseyard.com/Jens/2009… for a decentralized future Web 3.0:

    "Centralization creates concentrations of power, and that's dangerous. The people who run the servers have total control over your (and everyone's) data. They can snoop at it (however private it's supposed to be), they can sell it to advertisers, they can accidentally lose it, they can accidentally expose it to hackers."

    I agree. Even for the best-loved centralized companies, like Twitter and Flickr, I want a copy of my data. If the first set of desktop tools to interface with web services were all about sharing and publishing, the next software generation will need to also effortlessly download and backup that data. Even usually careful programmers “sometimes get it wrong”:news.ycombinator.com/item

    Jens goes on to talk about CouchDB, including a link to “this intro book”:books.couchdb.org/relax/. Looks good. Couch and “other no-SQL database systems”:nosql-database.org like Mongo are interesting technologies that I’d probably come up with an excuse to use if MySQL wasn’t such a workhorse already. Related, for the Ruby fans in the audience: “Phil Burrows on logging with Mongo”:blog.philburrows.com/articles/…

    → 5:32 PM, Dec 12
  • Worthless apps

    I like “this article on Mobile Orchard about the relationship between price and ratings”:www.mobileorchard.com/app-store…

    "Customers with some skin in the game carry a psychological pressure to feel that they've been wise in their purchases; they'll tend to over emphasize their positive feelings."

    This makes sense to me, and the other side of pricing that’s so important is the message you send. The perceived value of a product is connected to the published price. This is especially true in the App Store, where there’s no way to try the software before purchasing it. The price sets expectations.

    So to take the Mobile Orchard analysis a little further: no one feels guilty judging a free app harshly with a 1-star rating because even the developer thinks the app is literally worthless.

    Sure, there are good reasons to have a free app. To complement another paid service or desktop app, as a demo for a game or full version, or to “make $125,000/month in ad revenue”:fingergaming.com/2009/12/0… In fact half the ideas I had for iPhone apps would have been free. But I don’t think any of that changes the truth of what Mobile Orchard said, that free stuff isn’t respected as much as something the customer is personally invested in.

    → 10:17 AM, Dec 10
  • New blog design

    I’ve been blogging here since 2002, and I started Riverfold in 2006, but it’s taken me a while to realize something pretty obvious: traffic flows back and forth between my personal blog and the company site, and I should stop fighting it. Today I’m embracing that in a small way by adapting the “riverfold.com”:www.riverfold.com design to this blog, and linking more prominently to my indie products.

    I’ll still post about things that have nothing to do with software. I don’t want to give that up, and some of my favorite posts wouldn’t exist if I stuck to programming or business topics. Some non-software favorites I found while surfing “the archives”:www.manton.org/archives…. include “Ollie Johnston died”:www.manton.org/2008/04/o… “Perfection”:www.manton.org/2005/08/p… “The Great Scott”:www.manton.org/2005/02/t… “Bush veto”:www.manton.org/2007/11/b… and “50,136 words”:www.manton.org/2005/12/5… But hopefully by unifying things a little it’ll be more consistent, and encourage visitors coming to my blog for the first time to also buy some Mac software.

    Thanks for your support over the years. Even when the referrers dry up and the click-throughs aren’t worth graphing, I’ll still write here, and maybe every once in a while it’ll be something good.

    → 11:08 PM, Nov 24
  • The only 2 fixes for the iPhone platform

    I let my iPhone developer account expire last week. Even though I had already stopped development on my iPhone projects, officially letting go of even the temptation to build for the iPhone platform has really helped me focus.

    The Rogue Amoeba rejection for Airfoil Speakers Touch has been covered on Twitter and at Daring Fireball, but I think it’s easy to get distracted by legal technicalities and not the heart of the matter: as long as Apple is the gatekeeper, there will be bad decisions and apps that deserve to be approved will be rejected instead. For this reason the App Store cannot be fixed with incremental improvements.

    There are only two possible solutions:

    • Accept all applications. Joe Hewitt, the developer of the Facebook application who this week also quit the App Store, has written well on this solution.
    • Allow applications to be installed on the phone without being listed in the App Store. Both Android and the Palm Pre support this model.

    There is no third or fourth solution. There is no compromise or small improvement to the review process. Better transparency or tiered support options won’t help either. Without either of the above two changes, rejections will continue because in a subjective review process there will always be bad judgement calls. Some percentage of indie developers will abandon the iPhone either because the risk is too great or based on principle alone.

    Let me take the second one (allow applications to be installed without being listed) because it plays directly to this Rogue Amoeba rejection. Rogue Amoeba is one of my favorite Mac companies, and Daniel Jalkut and I record Core Intuition using their Audio Hijack Pro app. It’s universally regarded as great software.

    It might surprise you to find out that Audio Hijack Pro is not listed in the Apple Downloads site, though other Rogue Amoeba products such as Fission, Nicecast, and Airfoil are. I’m not sure Rogue Amoeba has ever spoken on the record about this, but Apple apparently doesn’t like the app and won’t list it. Maybe because you can use it to record copyrighted music? Who knows.

    But it doesn’t matter because being rejected from Apple Downloads doesn’t mean you can’t make Mac software! It just means you have to market the software yourself. Rogue Amoeba has to work extra hard to get the word out about the app, but their business won’t fail just because Apple doesn’t give it their blessing.

    This is so important for a small company. I want my software to fail because it sucks, or is buggy, or doesn’t have the right features, not because Apple can shut me down over a minor difference of opinion.

    There are a lot of well-intentioned suggestions for improving the App Store, but the result will always be the same until we acknowledge the root problem. The only fix is for Apple to remove itself as gatekeeper, or let us route around them.

    → 3:07 PM, Nov 13
  • Feedback about lost sales

    “Great post by Jason Cohen”:blog.asmartbear.com/blog/put-… on why you need feedback about the real reason people aren’t buying your product:

    "You need to talk with the people who were interested enough to find your website, read your marketing copy, download your product, and then _give up without even an email_. That's the low-hanging fruit; those are the people who are _in your grasp_, who should be buying _today_, but aren't."

    I fall into this trap quite often, of pretending I know what the product needs for sales to finally take off. So I’ll add all the features I hope customers want, or I’ll make a small change and see if sales improve. But the truth is that there are so many variables in this system that it’s difficult to know which change made the difference.

    As an example, I decided recently that I was being too generous with the demo limits in “Clipstart”:www.riverfold.com/software/… so in the 1.2.1 release I turned them down a little. Instead of letting you tag 30 videos and upload 3 for free, it’s down to 20 videos and 2 uploads. The idea is to just do a little bit more to encourage users to buy the software when they are first trying it out and like it, rather than waiting a month until they decide to use it again.

    Sales have been up the last week, so this worked, right? Maybe not. Clipstart has a review in this month’s print edition of Macworld, so it’s possible the sales are up because of that. Or because a couple of my blog posts have been linked more heavily recently. Or for any number of other reasons.

    Unless you measure why the product doesn’t sell, success will be based on luck and intuition, which only go so far. I’m looking forward to reading Jason’s next post.

    → 5:05 PM, Sep 21
  • It&#039;s okay to ignore the iPhone

    I talked in “Core Intuition episode 22”:www.coreint.org/2009/08/e… about how I’ve stopped working on my indie iPhone apps. Mike Ash is also done with it. “He writes”:www.mikeash.com

    "I have abandoned the platform. Apple's nonsense is just too much for me. There's no joy in iPhone development, and an enormous amount of frustration."

    Reading through the comments got me thinking. I’m not abandoning the iPhone just because the App Store is such a frustrating environment to run a business in, or that I have a bunch of real work I could be doing instead of playing games with Apple. It’s also because most of the apps I would write have already been done, and in some cases done very well.

    I love having a small computer in my pocket and mine is full of third-party apps. I’m thankful for the developers who are coming from other platforms and focusing all of their attention on the phone. And they are thrilled to be an a platform that is such a step up from traditional mobile development. The financial success stories of developers hitting on a great idea and it just taking off in the App Store are real and inspiring.

    But the iPhone doesn’t need me.

    As a user there’s no way I’ll give up the phone, but as a developer I can focus my time on “things that I have control over”:www.riverfold.com/, and add value to places where no one else has a good solution. Perceived gold rush or not, stretching myself too thin with both iPhone and Mac development is a great way to fail at both.

    Imagine for a moment that “Yellow Box for Windows”:www.cocoadev.com/index.pl wasn’t killed off — that we could build Windows apps using Cocoa. Should I make my apps cross-platform just because it’s Objective-C? No. Writing software for a platform I don’t use would be like still supporting Mac OS X 10.2; there’s no way I’m going to boot into that thing to test and fix my app.

    If you’re a Mac developer, my message to you is the same: just because the iPhone is awesome and runs on Objective-C does not mean you are required to build software for it. Maybe your time would be better spent refining old apps or building new ones on the Mac. Maybe… the iPhone doesn’t need you, either.

    → 8:02 AM, Sep 18
  • VoodooPad help update

    Somehow it’s been a couple years since I wrote about “using VoodooPad for authoring help”:www.manton.org/2007/01/f… I always meant to update the post with more information, and I still receive occasional follow-up emails from developers who are trying this for themselves. My workflow is virtually unchanged since then, and the help for “Clipstart”:www.riverfold.com/software/… is built the same way.

    Here is the Clipstart VoodooPad document in case it’s helpful to other developers: “Clipstart_Help.vpdoc.zip”:manton.org/misc/Clip… The important parts are the special pages WebExportPostflightScript and WebExportPageTemplate.

    Meanwhile, “Philippe Casgrain wrote a great blog post”:developer.casgrain.com that is nearly identical to what I do, but with more detail and steps for triggering an export from Xcode. Lately I’ve been pointing people to his post since it’s more technical than mine was.

    “Mark Dalrymple also posted”:borkwarellc.wordpress.com/2009/09/0… a time-saving SVN script for VoodooPad today. I’ve been needing this!

    VoodooPad is just a really good fit for this stuff. (Also see “Macworld’s 4-mice review”:www.macworld.com/article/1… for VoodooPad 4.1.) Or if you are more of an OmniOutliner kind of person, check out “Omni’s Helpify tool”:blog.omnigroup.com/2008/10/0… for converting outlines to an Apple help book.

    → 6:44 PM, Sep 7
  • Image Capture API

    In “episode 21 of Core Intuition”:www.coreint.org/2009/07/e… I called the Image Capture API “quirky”. What did I mean by that? A few things.

    Refcon. This should be familiar to anyone who has built Mac OS 9 or Carbon apps. I’ve certainly written plenty of code that stuffed a pointer to an object in the refcon field of a structure or passed to a callback method. It’s an essential pattern for being able to integrate C++ or Objective-C objects with a C-based API.

    For Image Capture, the code might look like this:

      ICAGetDeviceListPB pb = {};
    
    pb.header.refcon = (unsigned long)self;
    
    OSErr err = ICAGetDeviceList (&pb, YourDeviceListCallbackHere);

    Then in the callback you cast the refcon back to your controller object and go about calling methods and accessing member variables.

      void YourDeviceListCallbackHere (ICAHeader* pbHeader)
    
    {
    
    YourController* ic = (YourController *)pbHeader->refcon;
    
    [ic doSomethingUseful:pbHeader];
    
    }

    Works fine, but what about 64-bit? The reason I noted this part of the API to blog about was because the first version of my code accidentally cast my pointer to a UInt32. Luckily for us, the refcon is actually declared as an unsigned long instead, so it should share the same pointer size in 64-bit land, where long and void* are both 8 bytes. Other data types in Image Capture, such as ICAObject, are declared to be UInt32.

    (What would we do if the refcon was UInt32? The solution is not terribly difficult: use a simple lookup table that maps a random ID or incrementing number stored in the refcon to your 64-bit compatible pointer. But this just doesn’t seem to be necessary very often.)

    No delete function. I found this one strange, and had to dig in example code to find the solution. There is no first-class function in Image Capture for deleting objects off of a camera. Apparently this isn’t a feature that is supported by all devices, but nevertheless it seems common enough that it deserves something more than an enum constant hidden in a secondary header file.

    Here’s how you go about deleting a video off of the iPhone:

      ICAObjectSendMessagePB pb = {};
    
    pb.header.refcon = 0;
    
    pb.object = (ICAObject)your_movie_id_here;
    
    pb.message.messageType = kICAMessageCameraDeleteOne;
    
    OSErr err = ICAObjectSendMessage (&pb, NULL);

    Bad delete on success design. Related to the above, Image Capture has this trick that seems clever at first but which I don’t think could be used for most applications. You can set a flag to tell Image Capture to delete a video after it imports. Maybe this also explains why there’s no standalone delete function, but the design feels dangerous to me; if an import fails halfway through importing 10 videos, the first 5 will still be deleted. I much prefer to examine the imported files to make sure they were saved correctly, and then after everything was successful go back and delete the imported objects.

    It’s been a couple months since we recorded Core Intuition 21, but there are some other segments worth noting. Daniel and I talked about the WWDC 2009 session videos, a plug for “rooSwitch”:www.roobasoft.com/rooswitch… beta testing MarsEdit 3, and a listener question about working for non-developer managers. Listen at coreint.org or “subscribe in iTunes”:phobos.apple.com/WebObject…

    → 10:50 PM, Sep 6
  • 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.

    → 10:56 PM, Sep 5
  • Crippled iPhone LGPL

    I mentioned on the “latest Core Intuition”:www.coreint.org/2009/08/e… that I no longer have any plans to release my own iPhone software. While that decision is mostly based on my unwillingness to give Apple so much control over my business, and frustrations with the App Store process in particular, there are a handful of technical reasons why iPhone development is not a good fit for me. Here’s one: open source.

    “Daniel Jalkut’s essay on the GPL”:www.red-sweater.com/blog/825/… hits all the points about how the GPL can hurt developers by discouraging commercial participation. I’ve used LGPL projects in both “Clipstart”:www.riverfold.com/software/… and “Wii Transfer”:www.riverfold.com/software/… and I am careful to use them correctly. But iPhone development presents an interesting problem.

    Can’t run command line tools. Separating the GPL code into a command line tool that is inside your application bundle is a common way to get around licensing issues. This is not allowed in the iPhone SDK.

    Can’t replace dynamic libraries. The LGPL says that you can also link to libraries at runtime, but the catch is that the user must be able to replace an LGPL library with a newer version of their choosing. There is no way for normal users to do this on the iPhone.

    Can’t use private frameworks. Oh, that point above about dynamic libraries? Actually it’s a moot point because Apple requires everything to be statically linked anyway. So you are blocked at every pass; you can’t ship an app that loads code dynamically even if the user could touch it.

    The only solution I’ve seen so far is to release a special version of your Xcode project, with most of your application split into compiled libraries instead of source code, and allow developers with the iPhone SDK to relink your application with a different copy of whatever LGPL code you used. I stopped researching this when I put my own iPhone projects on hold, though. It’s just another example of how the closed nature of the platform creates an unnecessary burden in the software development process.

    → 5:04 PM, Sep 5
  • Better is the best marketing

    “Gus Mueller”:gusmueller.com/blog/arch… in response to a post from Joel Spolsky:

    "If no one is buying your app then you've either got a dud and you need to focus on something else, or you need to improve your app so it's worth paying for."

    I hinted at this in “my last post about new Clipstart features”:www.manton.org/2009/08/c… When Clipstart 1.0 launched and sales were lower than I had secretly hoped, the feedback was still so encouraging that it was obvious I had to keep rolling out new versions. Release 1.1, a month later. Release 1.2, which is “shipping today”:www.riverfold.com/software/…

    Some products are just easier to sell than others. For Wii Transfer, people enter “music wii mac” in Google and then a few minutes later they are clicking the Buy button on my web site. But with Clipstart, even though I believe it to be a superior product, it’s going to take work and marketing and word-of-mouth and demo coaxing and making it so good that you’d be nuts to shoot video and not have it installed.

    → 8:29 AM, Sep 3
  • Go without food

    For the last couple of years, I’ve been squeezing work out of every free moment I have to build Clipstart and Wii Transfer, and every six months or so I’m just completely burned out and need to take a break. I was in North Carolina for work meetings last week and after coming back I took the opportunity to sleep 10 hours a night for 3 days. I seriously needed rest and to spend some quality time with family away from the computer.

    And now I’m making some coffee and ready to get back to work.

    A lot of people ask me how I’ve been able to dedicate time to side projects when my life is already pretty full with a regular job and kids. The truth is that most of us have small pockets of free time, and it’s just about how we prioritize and use that time.

    Gus Mueller says that the secret to building VoodooPad 1.0 was simple: he didn’t own a television. Gary Vaynerchuk, in his upcoming book Crush It, puts it this way: “Someone with less passion and talent and poorer content can totally beat you if they’re willing to work longer and harder than you are.”

    So it’s about setting priorities and pushing yourself. Pretty straightforward. But recently I ran across a forum post on the community site ConceptArt.org that took this even further — that success comes not just from priorities and working hard but also with real sacrifice. The members of ConceptArt are passionate about improving their art and helping others, and there’s an obvious pride there that comes from the shared challenge of becoming a better artist.

    In a comment on attending a $95 painting workshop, the first commenter said:

    "I honestly don't care if I have to go a week with practically no food to be able to afford it."

    There is something in that extreme comment that just nails it. Go without food? We’re still having trouble with the trivial sacrifice of not watching TV over here!

    The advice I’ll give to myself and to anyone else who needs inspiration on finding time: rewrite that comment for yourself, replacing “week”, “food”, and “afford it” with what your sacrifice is going to be. Examples:

    "I honestly don't care if I have to go for a year without watching TV to be able to build my product."
    "I honestly don't care if I have to go for a week without sleeping more than 5 hours a night to be able to ship on time."
    "I honestly don't care if I have to go for a month without reading blogs to be able to focus on my own ideas."

    New projects aren’t going to magically finish themselves. If we’ve been tinkering with a project for a year and it seems like it’s never going to be done, the reality is that it probably cannot be finished without making a scheduling change. Even a tiny sacrifice to open up an extra hour a day might be enough to make it happen.

    → 9:53 AM, Aug 30
  • Clipstart 1.2 ships soooon

    Now that I’m done “giving away a free iPhone”:twitter.com/manton/st… I can move on to the next phase of my marketing plan: release new and better software! Crazy, huh? Clipstart 1.2 is nearly ready and I’m very proud of this release. There’s so much new stuff I could have called it 2.0.

    Batch export. Select multiple videos and convert them to H.264, or optimized for iPod, iPhone, and Apple TV, and optionally run a script on the results. It can even create an HTML 5 web site and export in Ogg Theora format for Firefox and Opera users.

    Twitter upload. Works with Yfrog to upload a video and post to Twitter. To include a custom tweet, use the “Upload with Options” command, just as you would add a description to a Flickr, Vimeo, or YouTube upload.

    New tagging interface. Easy way to tag multiple videos from the keyboard. You can also now drag videos to an existing tag to apply that tag to the selection.

    iSight capture. I wasn’t planning on adding this until later, but I think it complements the Twitter support well. Capture from the iSight and it records as H.264 and adds the video to your Clipstart library.

    New toolbar and button style. I shouldn’t have used the round rectangle scope button style in Clipstart 1.0, so I decided to roll my own that fit well with the toolbar. It’s still not a standard toolbar but I hope to transition to one in a future version of Clipstart.

    Change date for multiple videos. You can update the date for multiple videos at once, with the flexibility of changing specific portions of the date, such as just the year or month. Great for correcting dates from cameras.

    AppleScript support. Just the basics for now, but you can get a list of videos, with tags and other metadata for each.

    Plus some other fixes and Snow Leopard compatibility. I plan to release it in the next couple days, just in case Snow Leopard is released on the 28th as rumored. If you are interested in trying a beta and submitting some last-minute feedback, drop me an email at “support@riverfold.com”:support@riverfold.com.

    → 1:27 PM, Aug 22
  • 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.

    → 11:01 AM, Jul 30
  • Dreamhost scale

    I get a lot of funny looks when I tell people I host everything on Dreamhost. It’s not a great fit for everything — I have some ideas for projects that would be better suited to Amazon EC2, and who knows, maybe I’ve just been on a lucky server — but it has generally been more reliable than any previous hosting company I’ve used, including when I used to run my own server.

    Dreamhost succeeds because of scale. They have so many servers, and such low prices, that they are forced to automate everything. This means they can more quickly deploy new software, rebuild servers, or restore a broken installation, and that their panel interface has to provide access to every feature a customer might want.

    “This post from their status blog”:www.dreamhoststatus.com/2009/07/1… is revealing. There are over 600 machines on that list, but it must be only some fraction of their customer base, because my server name isn’t on there. “According to WebHosting.Info”:www.webhosting.info/webhosts/… Dreamhost hosts about 875,000 domains.

    I strongly believe that “being small is a competitive advantage”:www.manton.org/2007/02/c… but anyone who’s played the role of sys admin knows that automation means everything, and that’s what Dreamhost seems to get right.

    → 5:38 PM, Jul 24
  • It&#039;s like iTunes for...

    Sometimes it seems like every app is trying to be “the iTunes for <insert subject here>”. I’ve worked on “an app that fits into this category”:www.vitalsource.com/software/… and there are countless more. iTunes 1.0 represents one of the biggest shifts in Mac user interface design we’ve seen — single window, source list, and smart groups.

    While the iTunes UI is great for music, I’m not convinced it’s automatically great for all workflows.

    “Clipstart”:www.riverfold.com/software/… goes out of its way to do something different, by twisting the traditional source list a little to promote tags as the most important part of the UI. At first I feared that some customers would find it worse, that the UI would fail and I would be forced to become more iTunes-ish for the next version. But I think only by trying something different can you hope to be better. I’ve been using Clipstart to manage my movies all year and the tag-focused UI really works, especially when you start building up your library and can search and find related tags across all your videos.

    I released Clipstart 1.1.1 a few days ago with a bunch of bug fixes, and an “iPhone 3GS giveaway”:www.riverfold.com/software/…press/3gs.html too.

    → 2:26 PM, Jul 23
  • Macworld review for WebSentinel

    This month I’ve been lucky to have “Clipstart”:www.riverfold.com/software/… featured in both the US and UK print editions of Macworld. It’s great to see the product in print.

    Around 1996 to 1998 I worked for a small Mac software company called Purity Software. When “Ned Holbrook tweeted”:twitter.com/nedley/st… that he had a collection of old Macworld print magazines, combined with having Clipstart’s review fresh in my mind, it jogged a memory that one of my products from Purity was reviewed in Macworld and I had always wished I had kept a copy. WebSentinel was a C++ PowerPlant app with a great UI for server products of that era (“screenshots here”:www.purity.com/websentin… — warning, Mac OS 8), though in hindsight it suffered from some annoying bugs and had trouble scaling. It turns out that 10 years later the review is nearly impossible to find online, but by following a series of broken links I eventually got a copy from the Internet Archive’s Wayback Machine.

    I’m archiving it below. It ran in the December 1998 issue.

    –

    WebSentinel 2.0

    Master of the Realms

    By Jeff Davis

    For Macintosh Webmasters who find their server’s built-in security limited and tedious, Purity Software’s WebSentinel 2.0 promises relief. This WebStar API (W*API) plug-in provides support for multiple database mechanisms and an attractive interface for an array of security services, including new features such as support for workstation restrictions, HTML log-in forms, and account expiration.

    WebSentinel 2.0 extends the realms model of Web security common on Macintosh Web servers. Rather than applying permissions to a folder (such as the Logs folder), you set permissions for a group of URLs (the realm) that share some specific text (any URL that contains .log, for example). This method can be very powerful, allowing administrators to secure like files regardless of their location on the server.

    In addition to standard HTTP authentication for realms, WebSentinel 2.0 supports HTML-forms-based authentication, allowing you to present personalized log-in screens. Webmasters can designate customized forms and no-access files for each realm. WebSentinel 2.0 even offers Redirection realms, so requests for certain URLs can be automatically sent to another page.

    Once realms are defined, you grant access to users, groups, and workstations. In addition to simple user names and passwords, administrators can define expiration criteria for each user, consisting of a date, a number of days, or even a number of accesses.

    WebSentinel 2.0 supports multiple “data targets” (back-end databases); you can save your information to more than one type of outside database, including those in Purity’s own Verona format and those in FileMaker Pro.

    It took me about 60 seconds to install WebSentinel 2.0 on a Mac server running StarNine’s WebStar 3.01. After another five minutes, I had my users, groups, and realms up and running. Both the administrative application and Web-browser interface are attractive and usable, but a few very minor interface glitches exist. Although assigning access to users and groups is quite simple, WebSentinel 2.0 needs to offer an easier way to display all users and groups assigned to a given realm within a single window.

    The security options all worked nicely, and there was no noticeable performance hit with ten users and realms. I did encounter problems when trying to use the plug-in with WebTen, due to an inconsistency with Tenon’s W*API implementation. Tenon has a patch that addresses these problems.

    Macworld’s Buying Advice

    Macintosh Webmasters will definitely find that WebSentinel 2.0 offers an elegant extension of WebStar’s realms-based security. But those dissatisfied with the whole realms concept should look to other options, such as Tenon’s WebTen, which offers built-in file and folder security.

    RATING: 3 1/2 mice PROS: Elegant interface; authentication forms; multiple data targets. CONS: Lack of file and folder security; no easy way to view access by realm. COMPANY: Purity Software (512/328-2288, www.purity.com). $199 (upgrade from 1.0, $79).

    December 1998 page: 62

    → 5:34 PM, Jul 16
  • $999 hope

    “Huge post from Craig Hockenberry”:furbo.org/2009/07/1… on the App Store. Lots of good points. I especially like the insight comparing it to the music store, the need for upgrade revenue, and ideas for improving discoverability.

    Where I have a problem is at the $999.

    Not for support or early access to new versions of the iPhone OS, that’s fine. ADC Select and Premier members are used to paying for non-essential bonuses. The issue is whether we should pay extra to work around a problem that Apple has created for themselves and developers.

    And I totally respect that Craig is just throwing out a bunch of possible solutions, hoping that something will stick, that Apple will start to pay attention and draw inspiration from the community. “As he said on Twitter”:twitter.com/chockenbe… “I just want to put money where my mouth is.” I think the $999 figure speaks to just how painful this process has become. Luckily developers are also natural problem-solvers, forever hopeful even when desperate.

    But just as the $99 fee to become an iPhone developer didn’t filter out the junk apps and unserious developers new to the platform, neither will throwing more money at the problem make it go away. The gold rush is still on, and we should expect app submissions to only accelerate.

    Most importantly, let’s take a step back and remember: it was Apple’s choice to build a closed system, one in which they alone could approve and deny apps. The idea that we should pay extra because they underestimated how much work it would be to approve thousands of apps really bothers me. It would be punishing developers for Apple’s own failure.

    “Colin Barrett pointed out”:twitter.com/cbarrett/… that Apple loses money on free apps, when you consider server overhead and review staff. I find it difficult to believe that Apple is doing anything except raking in the cash from the App Store. After all, they are used to giving away bandwidth for a number of products: Safari and QuickTime downloads, iLife and iWork software updates, not to mention updates to Mac OS X itself.

    From an article back in May, “Techcrunch also assumes”:www.techcrunch.com/2009/05/1… that Apple is doing quite well off the App Store:

    "$1 million a day means that Apple would be making $300,000 a day (its 30% cut). Extrapolated out over 10 months (the approximate age of the App Store), that would be about $90 million."

    I want to believe that there is a solution to this. A quick reading of “AppShopper.com”:www.appshopper.com shows that on some days up to 100-200 apps go live on the store. That’s a lot of apps. But Apple is a large company, and they’ve surely dealt with more difficult staffing problems than hiring some people who know how to use an iPhone.

    Other than a handful of exceptions in the jailbreak community, iPhone developers are playing by the rules Apple created. The burden is on Apple to deliver fast reviews, and it’s something that all developers deserve, not just a select few with extra cash to burn.

    → 2:41 AM, Jul 14
  • 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)”.

    → 2:27 PM, Jul 10
  • A fan for your unreleased app

    Every product needs a believer. Not on the product team, but outside. A champion beta tester. Someone who sees the potential and will offer such constructive criticism and feedback early on that if you don’t make the app perfect you will be personally letting them down.

    This is so critical, that many products succeed or fail to reach 1.0 on this point alone. Without inspiration from your peers, it becomes difficult to push through “the dip”:sethgodin.typepad.com/the_dip/, the rough times in development when everything goes wrong and you can’t imagine how your app will ever see the light of day. Seek out that one person — friend, spouse, blogger, anyone — who will light a fire under you to ship a quality product.

    Yes, I want to hear how much you like my app, but I also want to hear where it fails and frustrates you.

    The feedback I’ve received for “Clipstart”:www.riverfold.com/software/… is astonishingly well thought out and helpful. I like to think the app is attracting the best kind of customers: articulate and experienced enough to know what they want. If I could only implement half the suggestions to improve the app it will evolve into something great.

    Of course, great beta testers only go so far. We still have to work really hard. “Merlin Mann said it best”:www.43folders.com/2009/03/1… “The only person who can sit on your ass is you.”

    → 10:20 AM, Jul 9
  • Clipstart file actions

    “Clipstart 1.1”:www.riverfold.com/software/… is out, with support for the iPhone 3GS, YouTube, and more. I’m really happy with the response I’ve received so far. The 3GS is such a convenient device for video that even people who weren’t taking lots of clips before now find themselves with a bunch of videos. That deserves a dedicated management app.

    “Ryan Irelan”:ryanirelan.com asked me the other day if Clipstart would support a simple email option, for quickly sharing a video with family without uploading to a web site. This is a pretty good candidate for using Clipstart’s file actions, which allow you to process the selected video files with a script.

    I liked how “Acorn handled this kind of thing”:flyingmeat.com/wikka/Aco… so I essentially lifted its file actions feature directly and put it into Clipstart, even down to the ACShortcutKey shortcut comments. Even though Acorn is for still images and Clipstart for videos, it seemed similar enough that you could conceivably take lightly-modified scripts from one app and use it the other, if they did not deal with the file’s contents.

    Here’s the email script that will be included in Clipstart 1.1.1:

    #!/usr/bin/osascript

    on run argv

        set filepath to item 1 of argv

        set old_delims to AppleScript’s text item delimiters

        set AppleScript’s text item delimiters to {"/"}

        set path_items to text items of (filepath as text)

        set AppleScript’s text item delimiters to old_delims

        set filename to last item of path_items

        tell application “Mail”

            set new_msg to make new outgoing message with properties {subject:filename, content:"" & return & return}

            tell new_msg

                set visible to true

                tell content

                    make new attachment with properties {file name:filepath} at after the last paragraph

                end tell

            end tell

            activate

        end tell

    end

    Running scripts has been in Clipstart since 1.0. The implementation is pretty simple. I parse the available file action files to extract the executable path and any shortcut keys and modifiers, then dynamically create the menu items. When it’s time to run an action I use NSTask and friends to execute the program and pass the script file and selected movie path to it.

    Instead of this:

    /path/to/myscript.sh /path/to/movie.avi

    Clipstart does it like one of these:

    /usr/bin/bash /path/to/myscript.sh /path/to/movie.avi

    /usr/bin/osascript /path/to/myscript.sh /path/to/movie.avi

    I did this to not require setting +x on the file, but it also seems to be a more convenient way of processing command line arguments when run from osascript.

    → 12:31 AM, Jul 3
  • Clipstart for iPhone?

    You know it has been a good conference when you come back inspired, with ideas and tools to build new things. No surprise that WWDC was like that for me, as it is pretty much every year.

    Even before the keynote was over I was getting questions — which continued all week — about whether I had iPhone plans. At the very least, Clipstart 1.1 needs to be able to import videos off of the 3GS. “That’s in beta now”:www.riverfold.com/forums/to… But what about a native phone app?

    I’ve convinced myself over the last couple weeks, after listening to what people are doing with their phones and evaluating the existing applications in the App Store, that Clipstart for iPhone would be a very useful app. Video on the 3GS is a big deal. Eventually I can see a new top-level Video category in the App Store, and whoever is in that list is going to do very well.

    “Neven Mrgan”:mrgan.tumblr.com/post/1240… sums up the urgency:

    "I'm sure Phil Schiller's prediction of iPhone 3GS quickly becoming the most popular video-capable phone — if not the most popular consumer video device period — is right on the money. A message for those working on apps that help us shoot, edit, organize, and share quick, casual video clips: get ready to get busy."

    I’ll admit that after WWDC I panicked, thinking for a moment that I had to deliver Clipstart for iPhone immediately, and drop everything I’m doing to make that happen. I no longer believe that. The Mac version of Clipstart has a lot of potential and I can’t get too distracted from following up on that. But at the same time I will be expanding what I do on the phone, so we’ll see where that goes.

    → 1:01 PM, Jun 29
  • FastScripts 2.4

    What I like most about the “FastScripts 2.4 release”:www.red-sweater.com/blog/823/… is that Daniel was willing to completely change the product evaluation terms to give new life to the product and get it out to more users.

    "I have been thinking for some time of eliminating FastScripts Lite. Customers found it confusing to differentiate between the versions, and I found it tedious to artificially maintain two versions. With the new, liberal evaluation terms in FastScripts 2.4, all of the old Lite functionality and much more is now included for free in the full version.

    It’s always a risk to make a pricing or demo limit change. Whether accurate or not, I imagine the financial side of product development as a delicate tower of blocks, where the slightest change could cause your whole sales structure to come crashing down. For that reason I tend to not touch anything if it is working, but I recognize that I am probably holding my business back at the same time by not being more flexible.

    → 9:10 AM, Jun 28
  • Rogue Amoeba at Macworld

    “Paul Kafasis of Rogue Amoeba”:www.rogueamoeba.com/utm/2009/… on exhibiting at Macworld 2010:

    "I'm delighted to be able to plant a flag and say that in 2010, Rogue Amoeba will again be exhibiting at Macworld. We still believe in Macworld and all that it provides. We believe it's relevant, useful, and worth having. We believe that meeting new customers, talking to existing ones, and sharing a great time with all manner of Mac friends, is still worth doing."

    I like companies that make decisions based not just on spreadsheet numbers, but on belief and instinct too. It’s a shame Apple didn’t show more of that when weighing whether to continue exhibiting at Macworld. Because Rogue Amoeba doesn’t sell on the show floor, the conference has to be less about directly recouping costs and more about connecting with customers and building goodwill and name recognition. See also “Should I Exhibit At Macworld”:www.rogueamoeba.com/utm/2007/… from Paul Kafasis in 2007.

    I haven’t attended or exhibited at a Macworld since the late 90s, and every year I miss it.

    → 12:43 PM, Jun 5
  • Introducing Clipstart

    Last week I looked at the SVN log for my application in development and realized that I had started it exactly 1 year ago. While I wasn’t actively working on it every day or week during that time, that’s still a very long time for me to work on an application before shipping it. I knew I had to call the 1.0 done and push it out.

    I was falling into that infinite 1.0 cycle where I could continue to improve the application forever without releasing it. The sooner I noticed that trap, the sooner I was able to correct course and get the app into the hands of real users.

    The app is called “Clipstart”:www.riverfold.com/software/… It’s for importing, tagging, and uploading home movies. I have high hopes for the app and a lot of fun stuff planned for the future.

    As usual, a lot of people talked about the product even before I did. My thanks to Dan Moren of Macworld for “covering the launch”:www.macworld.com/article/1… before I even had a chance to spam him with a press release; to John Gruber for “posting about how he uses it”:daringfireball.net/linked/20… and to “Duncan Davidson”:journal.duncandavidson.com/post/1024… and “Mike Zornek”:blog.clickablebliss.com/2009/05/0… for their write-ups. I also very much appreciate “all the retweets”:search.twitter.com/search and goodwill from my friends on Twitter. Those meant a lot.

    → 9:58 PM, May 4
  • Apple competition in iPhone 3.0

    There’s always the risk when developing for Mac OS X that Apple will compete directly with your product. iTunes, Mail, and Safari are high-profile examples, as well as the “lightning strikes twice” hit of Watson/Sherlock and Sandvox/iWeb. That history is “well documented”:www.karelia.com/news/smal… so I won’t repeat it here.

    But when listening to the “Macworld podcast”:www.macworld.com/weblogs/m… a week ago (the episode with Dan Moren and Jason Snell back from the iPhone 3.0 announcement) it struck me that iPhone software is a little unique. They made the point, which I think is true for most software, that Apple’s offering is usually simple, full of holes that could be filled with new features from third-party developers. There is usually room for a developer with a unique twist on an idea to market and sell his solution to like-minded users, even if Apple ships a default good-enough app for most people.

    Except there’s one pretty significant problem, especially on the iPhone. Apple cheats.

    Third-party apps cannot run in the background. So it doesn’t matter how many features a recording app has that Apple won’t bother to implement, background recording is the killer feature that will always remain out of reach for developers.

    Put another way, if the Apple app didn’t record in the background and a third-party app could, that third-party app would likely be worth $5-10 to many people for that one feature alone. But give Apple background recording and it doesn’t matter how many features another app adds — syncing music, FTPing to a server, multiple tracks, sound effects, more file formats — it’s going to be a challenge to convince users they need two recording apps. I expect some audio developers to overcompensate by adding every feature listed above and more to make up for the one feature they can’t have.

    → 10:19 AM, Apr 17
  • MacHeist, roofing, and making it up on volume

    I wasn’t going to write about MacHeist this year, but after a hail storm damaged nearly every roof in our neighborhood, I noticed something kind of obvious: there are a lot of business that make it up on volume.

    This is the new MacHeist promise, right? Not just exposure, although that’s part of it, but selling so many tens of thousands of copies that the developers do very well regardless of their tiny underpriced cut of the profits per sale.

    We don’t get hail in Austin very often. I took the Flip out and “filmed a little bit of it”:www.flickr.com/photos/ma… as golf-ball sized balls of ice blanketed the yard. Afterwards every roofing company in Texas descended on Austin offering steep discounts, in some cases even covering an insurance deductable of $2000 or more. Depending on who you ask, such practices may or may not be considered insurance fraud, but like MacHeist it does come with ethical considerations. The roofing companies knew that they could do so much business in the next 2 weeks that they will easily make up for reduced profits by the sheer volume of work.

    There’s another kind of discount shared between roofing companies and MacHeist. Users promote the package they just purchased in exchange for further discounts. For MacHeist it’s spamming your Twitter followers (I get a free Delicious Library!). For roofers it’s spamming your neighbors with a yard sign (I get $250 off!).

    I’ve learned a few things from all of this that I think will help me make “my own indie business”:www.riverfold.com stronger, or at least more consistent. I gladly give free licenses to reviewers, bloggers, and small Mac user groups. I also routinely do 10-20% off discounts that anyone who knows how to search Twitter or “RetailMeNot.com”:www.retailmenot.com can use.

    But I’m just going to have a default “no thanks” answer for big promotions and mass giveaways. It’s consistent with what I believe about keeping prices fair to sustain a Mac business, and it takes the guess work out of which promotions harm the Mac ecosystem and which are a great deal for everyone.

    → 8:44 PM, Apr 14
  • Twitter @wii

    Last week my “@wii”:twitter.com/wii account on Twitter passed 3000 followers and seems to finally be growing strong after a year of neglect. I now try to post once every couple days with Nintendo news, and I’ll eventually throw in a tweet on new Wii Transfer updates. That was my evil plan from the beginning: have some fun with the account but also use it to build an audience and promote my own projects.

    I view @wii as a gift. I don’t know how long it will be under my control. As Twitter continues to go mainstream, eventually I expect Nintendo will want my little 3-character Twitter name for themselves, and I might just be glad to hand it off. Twitter works best with a personal voice, and I’ve already all but closed some of my secondary accounts.

    I’m more conflicted about what to do with the “Wii Friend Codes site”:wiitransfer.com/codes/. At one time I imagined it as a full Riverfold product, with integrated Mac and iPhone apps, but now I find that I lack the passion to really take it to new places. And to be honest, it works as is.

    → 9:46 PM, Mar 30
  • Open source regression

    On a previous episode of “Core Intuition”:www.coreint.org/, number 14, Daniel and I talked about open source. One LGPL tool I use in Wii Transfer is called FFmpeg, a very popular video conversion project that forms the base of many video web sites, as well as the Mac QuickTime component, Perian.

    In the latest Wii Transfer I updated to a new version of FFmpeg, which it turns out had a major bug: “broken audio for 8-bit input sources”:roundup.mplayerhq.hu/roundup/f… Of course I am including the fix in a bug fix update to Wii Transfer (still “beta in the forums”:www.riverfold.com/forums/), but not before many customers were hit by the problem.

    Not to look a gift horse in the mouth, but it reminds me of one annoyance with FFmpeg: no releases. You basically just follow trunk, and if there’s a bug, sorry. This is understandable. It’s open source, after all, and the developers don’t owe you anything. But at the same time, it’s one of the reasons I’ve moved to Perian-only in my new app, and left the FFmpeg trunk and other similar open source command line tool projects behind. With Perian I can track specific major releases and know that someone has tested them. QTKit is good enough now on Leopard that I feel comfortable basing on app on it.

    Daniel also mentioned in passing that violators of open source licenses are likely to get away with it. I think that’s largely true, but I found that the FFmpeg developer base has a pretty keen eye to this issue. If they notice that commercial software is using FFmpeg or MEncoder or other portions inappropriately, they will list the software in their “hall of shame”:www.ffmpeg.org/shame.htm…

    → 3:11 PM, Mar 23
  • 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.

    → 9:28 AM, Mar 10
  • Brent Simmons on Git, plus blog anniversary

    “Brent Simmons is still looking”:inessential.com/2009/03/0… for the perfect version control system:

    "People talk about how wonderful are features like re-writing history — and I read that stuff and think, 'Wow, Git's really cool and powerful.' But then I know it could suck me in and take away time from _real_ work. It's _already_ more work — _for me_ — than when using Subversion."

    I haven’t used Git much since Daniel and I discussed it on an early “Core Intuition”:www.coreint.org episode. Like Brent I just don’t see a big win for single-person projects, although it’s fascinating to watch how open source projects are using “Github”:github.com/.

    I like what Brent did a few months ago with his blog redesign, how both inessential.com and ranchero.com complement each other. He also wrote “more about his publishing system”:inessential.com/2009/01/3… including a bit in passing about the tool I used to start my blog, Radio Userland.

    I mention it because this blog is 7 years old today. Happy birthday to manton.org.

    → 8:33 AM, Mar 9
  • Ugly reminders

    In my “last post about family pricing”:www.manton.org/2008/10/f… I mentioned that I modified my PayPal scripts for backend order processing to support family packs, but I left out that the whole system is a hack. A hack that processes a nice chunk of money, but a hack nonetheless. Hard-coded PayPal buttons and coupons, PHP that would make even newbie web developers cringe, too few lines of code to really be taken seriously.

    I refactored it a few months ago, but kept some ugliness in there to remind myself that I should move to a “mature store solution”:www.potionfactory.com/potionsto… Sometimes we build systems that are flawed from the start, and it’s wasted effort to invest time into something that will be replaced. Instead, let the thing stand out like a sore thumb.

    It’s a complement to doing things simply and taking shortcuts even when it’s tempting to overengineer and build the perfect system.

    This ugliness trick works for other things too. For example, the Wii Transfer product page is /software/wiitransfer/ instead of just /wiitransfer. I gave this URL more thought and second-guessing than it deserved, and every time I type /software/ or see the link I cringe a little. But I did it for a purpose: one day I hope to sell or promote things other than software. For example, when I registered riverfold.com I was working on an independent animated film which I planned to sell on DVD direct to customers. (I’ve had that shelved for years now, though, as I’ve recently discovered there are only 24 hours in a day.)

    Others will say that you shouldn’t mix such different projects under the same brand, and that makes a lot of sense. But I also know it to be true that if you want to build a strong blog following, you should stick to one subject and become a respected voice in that field, and I didn’t do that either. I made a conscious decision with my personal blog to keep it loose and cover several different things that I am passionate about, and because of that I’ll likely never have tens of thousands of readers as other popular Mac development blogs have.

    So maybe one day Riverfold will sell something other than Mac software. When that time comes, it won’t matter what the URLs are, but until then, the /software/ URL won’t let me ever forget that I have other things in mind.

    → 11:02 AM, Feb 27
  • Defending Safari 4 tabs

    The first reaction most people had to Safari 4 — especially the new tabs interface — was negative. I’m here to defend it.

    But first, let’s get the mistakes out of the way, because they are substantial. Safari 4 tabs have several new usability problems:

    Clicks to close or drag in inactive tabs should not be allowed. As Daniel Jalkut pointed out on Twitter, these “landmines” decrease the available space to click when dragging a window. And the problem only gets worse as you add more tabs. It requires too much thinking before being able to drag a window. (You can bet Apple has research that shows most people only have 1 or 2 tabs open at a time, but nevertheless you are going to sometimes have a bunch.)

    Click-through should not be enabled. Same point as above, but don’t allow closing tabs or clicking the drag handle when Safari is not the frontmost app. John Gruber has written extensively on this issue, and this post from 2003 is a good place to start.

    Title bar font is different than every other app. I understand this decision, but it’s unnecessary for small numbers of tabs. If you have 1 or 2 or even 3 tabs open, there’s no reason not to use the full font size so that Safari’s title bar is consistent with other apps. It’s distracting.

    Too subtle. Because nothing in the content area of the window changes, it’s easy to miss the tabs. They are in a more prominent place but somehow fade into the background. I’m not sure whether this is a good or bad thing yet, but I’m leaning toward bad.

    There are other largely aesthetic complaints about the new tabs, such as how the default wider tabs look odd compared to previous versions of Safari, but a lot of that is just unfamiliarity and doesn’t point to a specific usability problem.

    So why do I like what Apple is doing here? Because I’m hopeful that this is the first experiment to bringing system-provided tabs to applications.

    Here’s what I wrote about this issue in 2005:

    "Instead, Apple should have built upon Exposé to offer system-wide window grouping state, so that in any document-based application the user is in control of how windows are tabbed. Actions like dragging to rearrange tabs could be implemented once and work consistently across all applications."

    In the last 4 years the problem has only gotten worse. Developers are rolling their own tab solutions and there is no consistent behavior or keyboard shortcuts that I have seen. Worse, coding fully-featured tabs with the ability to drag windows in and out of a tab group is very difficult, and most apps don’t go that far.

    The Safari 4 tabs are conceptually the right way to go. It’s not “tabs” at all. Instead, think of it as an efficient way to dock multiple windows together.

    Getting the tabs out of the content area of the window is also the first real step to making this available to other developers. While I don’t think you should stamp this on to all applications, certain classes of document-based applications could “opt-in” to this new system and get it mostly for free, with consistent UI and behavior provided by the system. Developers who had special requirements or wanted a custom tab look-and-feel could continue to build their own tabs without worry that their UI would be interfered with.

    I have no idea if this is the direction Apple is going in, but the Safari 4 design makes me think that at least someone at Apple has this in the back of their head.

    → 11:27 AM, Feb 25
  • Coraline

    While not a major blockbuster, Coraline seems to be quietly doing pretty well. It has recouped about half of its production costs, and according to “Box Office Mojo”:www.boxofficemojo.com/weekend/c… actually added a few theaters in its second week of release.

    One of the artist blogs I follow is by Matt Williames. I didn’t realize “until he posted about it”:handdrawnnomadzone.blogspot.com/2009/02/c… that he worked on facial expressions for the film:

    "A couple years ago I got a call from this new studio called 'Laika'. They were doing a new Henry Selick film called Coraline and needed someone to design and animate the facial expressions (including design mouth shapes for dialogue) for all the characters in the film. And they wanted it ALL to be 2D upfront (it would later be modeling in the computer then molds would be made from that). It was a sweet gig-- I lived in Portland for 6 weeks, all expenses paid and was scared to death every day of failing miserably."

    Cartoon Brew also links to a collection of “YouTube clips from an artists panel”:www.cartoonbrew.com/feature-f… about Coraline. It’s a shame the “art of” book seems so incomplete.

    I thoroughly enjoyed the movie. A packed theater and applause when the credits rolled only added to my impression that this movie is something special that is being carried by word of mouth.

    → 10:44 AM, Feb 16
  • Better software, less support

    A few months ago “Ars carried a story”:arstechnica.com/journals/… about Apple canceling a call center in Colorado. This part stuck out to me:

    "Somewhat surprisingly, the iPhone 2.1 update was also named as one of the reasons for the cancellation. The software update has apparently been so successful at resolving iPhone 3G problems that its release has caused a noticeable drop in support calls."

    In this case it was just bug fixes, but it reminded me of “Getting Real”:gettingreal.37signals.com/. Make software easy to use and simple and then there are fewer things that can break and users are less confused. I have been obsessed with following this advice lately. Some of the limitations I’ve put in a couple recent projects:

    • No preferences (for Mac, no prefs window; for web, no options or settings screen).

    • Single toolbar (no status bar or need to look in multiple places, e.g. both the top and bottom of the window).

    • Minimal toolbar buttons (only the absolute basics are exposed outside of menus).

    • Opinionated defaults (no customization, similar to others above).

    On a few occasions this has hurt my ability to add features, but on others it forces me to see a user interface problem from a new angle, something I wouldn't have done if I hadn't had these limits to work in.

    Limiting features in an app does not come naturally to me, but the more I embrace it, the more value I see in it. I “tweeted a bonus side effect”:twitter.com/manton/st… to this approach last week: “Maybe another reason why simple software succeeds: customers see in it all the possible features to come, implemented just right for them.”

    → 8:26 AM, Feb 7
  • Five stages of podcasting

    “Daniel”:www.red-sweater.com/blog/ and I have now recorded 13 episodes of Core Intuition. Each time I go through these stages of denial and acceptance:

    During recording. Great! This will be our best show yet.

    Hours later. I wish I had said "X" instead of "Y".

    The next day. Disappointed. Maybe I won't even bother to edit it.

    Listening. Hey, this isn't bad stuff.

    Editing. Pretty good! We made some good points, had a few laughs. Success!

    Our latest episode is out now on the “Core Intuition web site”:www.coreint.org/. We talk about getting started, making mistakes, business, pushing to 1.0, and the upcoming “NSConference”:www.nsconference.com/.

    A special thank you to our listeners. The feedback is very encouraging.

    → 5:31 PM, Feb 6
  • Software product myth

    “Rob Walling has a good post”:www.softwarebyrob.com/2009/01/0… about all the expenses it’s easy to overlook when starting a software business. The most insightful line is this:

    "The point of The Software Product Myth is that at some point you are going to have too few sales to support yourself monetarily, yet too much work to fit comfortably into your evenings and weekends."

    This rings true for me. Wii Transfer is too successful to abandon, but not successful enough that I can retire to a beach house. Luckily I love the “people I work with”:www.vitalsource.com/, but I’ll admit that running Riverfold on the side is making me a little bit nuts.

    I guess the “good news” is that I’m pretty used to too much work and too little sleep.

    → 3:47 PM, Jan 24
  • 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.

    → 9:12 AM, Jan 23
  • App Store new version UI

    Centralized app update notifications on the iPhone were a great idea, right? Turns out, maybe not. My App Store icon has a “26” badge on it. I have no idea which apps have a new version available until I click and scroll through the list, or use iTunes. The reality is that at least 3/4 of them are for apps I downloaded but don’t use very often. I now have to set aside some time to weed through this list of apps.

    I’d much rather get a friendly reminder of a new version when I launch the app itself — maybe even outside the app’s control, near the top of the screen just like when a phone call is in the background. There are a few apps I use every day that were updated weeks ago, but I continued to use an old version because the notification was lost in the noise of dozens of other junk apps.

    → 9:11 PM, Jan 19
  • Stan Sakai

    The 5th annual “STAPLE! indie comics expo”:www.staple-austin.org is coming up in 2 months, and I’m happy to say that one of my favorite comics artists growing up will be headlining the show: Stan Sakai of “Usagi Yojimbo”:www.usagiyojimbo.com fame. If you are in Austin in March, please plan to attend. (And say hi if you see me. I’m usually helping sell t-shirts or milling around somewhere.)

    There’s also a “new short Usagi story”:www.myspace.com/darkhorse… on MySpace’s Dark Horse page.

    → 4:58 PM, Jan 16
  • Core Intuition 12: Macworld

    “Daniel Jalkut”:www.red-sweater.com/blog/ and I have wrapped up episode 12 of Core Intuition, available now on the “Core Intuition web site”:www.coreint.org/. If you are a Mac or iPhone developer, or even if you are just interested in what two developers think about current Mac news, please subscribe and give it a listen.

    This time we talk about Macworld 2009, including announcements in the keynote, third-party developers “Fraser Speirs”:speirs.org and “BusyMac”:www.busymac.com/, future iPhone devices, and the Macworld user conference. Plus: I spill more details on my new indie app and Daniel shares a tip for refactoring NIBs.

    Got feedback? We’ve love to hear from you at “feedback@coreint.org”:mailto:feedback@coreint.org.

    → 4:46 PM, Jan 13
  • 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.

    → 11:42 AM, Jan 12
  • JSCocoa in Acorn

    I like this KVC mini-rant from Gus Mueller’s post about writing “Acorn plug-ins in JavaScript”:gusmueller.com/blog/arch…

    "While KVC hacks can be awesomely cool and amazing and generally useful... it is possible to go a bit too far. So don't use that sample code, or I'll come looking for you and slam your toe in a door or something equally painful for you and very satisfying for me."

    Gus has been posting to both his personal and company blogs lately. Another neat script over on the Flying Meat blog is “this one about drop shadows”:flyingmeat.com/blog/arch…

    I still get a lot of mileage out of Flying Meat’s other product, VoodooPad. I’ll be writing a follow-up to my “authoring help post”:www.manton.org/2007/01/f… in the next week or so, this time with an example document.

    → 5:54 PM, Jan 11
  • 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…

    → 12:01 PM, Jan 10
  • Will paginate for food

    As I mentioned in my “Rails rant last week”:www.manton.org/2009/01/r… I have an unhealthy distrust for Rails plug-ins and monkey-patching gems. In addition to often breaking when you upgrade Rails, too many high-level abstractions can make it difficult to understand and debug the code later when things go wrong. For those reasons I will sometimes roll my own solution instead of using someone else’s. (As an aside, I rarely do this with Mac development, perhaps because I understand the internals of Mac frameworks much better than I do for the Rails core.)

    But I’ve just been so impressed with the “will_paginate”:wiki.github.com/mislav/wi… plug-in. It’s fast and there are no obvious compromises — good out-of-the-box defaults and enough hooks that it can be customized.

    If you are doing any Ruby on Rails work and haven’t checked it out yet, I think you’ll find that will_paginate is a very elegant solution to something every web app is going to need.

    → 3:19 PM, Jan 9
  • Get Rich Slowly

    I started reading the “Get Rich Slowly”:www.getrichslowly.org blog last year and it has quickly become one of my favorites. Don’t let the name fool you — it’s really just about practical advice for paying off debt, keeping a budget, and saving money for retirement. The author hits that perfect blogging voice that feels very authentic, as if he and his readers are peers.

    “This recent post”:www.getrichslowly.orgblog/2009/01/05/9-methods-for-mastering-your-money-in-2009/ to start off 2009 covers all the major goals of the site. Here’s a snippet from budgeting:

    "There are a variety of budgeting methods you can choose, from Andrew Tobias' three-step budget to the 60% budget. My recent favorite (and a favorite of GRS readers) is Elizabeth Warren's balanced money formula: 50% to Needs, 20% to Savings, and everything else to Wants. Simple but effective."

    I think there’s something for just about anyone in his blog, whether you are paying off a mountain of credit card debt or starting as an entrepreneur who wants to keep enough cash in the bank to cover those slow months.

    → 3:12 PM, Jan 8
  • 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
    → 11:04 PM, Jan 7
  • Macworld 2009

    I liked today’s Macworld keynote. In many ways it was a return to pre-iPhone keynotes, with a few good announcements but nothing crazy earth-shatteringly amazing how-can-we-ever-top-this-again. Solid upgrade to iLife. Good news on iTunes. Impressive battery life on the refreshed 17-inch MacBook Pro.

    At first I was worried that new versions of iPhoto and iMovie would obsolete my new app before its 1.0 even ships, but I think I’ve narrowly escaped the knife.

    “Ryan at 37signals had this to say”:www.37signals.com/svn/posts… about iPhoto ‘09:

    "Now iPhoto '09 has kicked their language up a notch further. In addition to Events there are also Faces and Places. Apple has made a few new slices into the photo organization cake, and they've opened up a new field of possibilities for people to find and enjoy their photos."

    The new iPhoto does look amazing, but I’m not convinced that adding these new concepts improves the usability of the app significantly. Even in iPhoto ‘08, it’s not often clear when to use an Event vs. an Album. Tagging in Flickr and other popular web apps has proven that a fast, generic one-size-fits-all approach to categorizing can not only work, but is more flexible and requires less mental overhead to churn through images, movies, or what have you.

    → 2:55 PM, Jan 6
  • Dave Winer rethinks auth

    “Dave Winer proposes”:www.scripting.com/stories/2… a simple solution to revoking authentication in web services:

    "Now imagine that Twitter had a page that showed all the IP addresses that have used your login in the last 30 days, with a start date for each and a count of calls made. I bet you could figure out which one was The Greasy Spoon Group, pronto. Further suppose there was a checkbox next to each IP address. You could uncheck that one, click Submit, and voila, no more spam from your account."

    There are important things missing here, such as not sharing your credentials, but I have to admit I do like the simplicity. If the hostnames were grouped by user agent, the UI wouldn’t even be half bad. If nothing else, maybe this will light a fire under OAuth implementors to get moving. (And I count myself in that group too, since I’m involved with some services that need OAuth pretty badly.)

    If you “string together tweets from Alex Payne”:search.twitter.com/search it makes for an interesting narrative about OAuth too.

    → 1:09 PM, Jan 5
  • Dan Benjamin turns it up

    Dan Benjamin did something interesting several weeks ago: he took his popular blog Hivelogic, where he’s been posting since 2001, and rebranded the content under a new domain, “danbenjamin.com”:danbenjamin.com/. Apparently that was just the kick he needed to “get even more serious”:twitter.com/danbenjam… about blogging, because he’s been on a roll lately.

    A couple of my favorite recent posts over there include “Apologize”:danbenjamin.com/articles/… and “Fake Amazon”:danbenjamin.com/articles/… The latter is a must-read that finally puts a name to what may be the beginning of the end of the Amazon we all know and love:

    "By offering these services, Amazon has created a gigantic marketplace, while simultaneously making even the most obscure or hard-to-find items available to anybody. Just type some text into Amazon search, and you'll get results. Lots of results. Too many results, it seems, even for Amazon."

    I’ve also been enjoying the “Tack Sharp podcast”:tacksharp.tv/, even though I hope to never pay more than $300 for a camera.

    → 6:00 PM, Jan 4
  • Mike Ash on private APIs

    Mike Ash has been rocking with his weekly Friday Q&As. From the “latest about using private APIs”:www.mikeash.com

    "Remember that the cost is not just to you, but to your users. If you're really unlucky the break will be so bad that it's not even obvious that it's your fault, and they'll figure it out only after much head-scratching. Once they do figure it out, they will hate you if your fix doesn't come really fast."

    My new app (not officially announced yet — more later) currently uses Quick Look as a significant part of the user interface. Quick Look is a private API on 10.5, but my hope was that surely it would be made public by 10.6. If I coded correctly for both cases (I have a 10.6 seed running here I can test against), then I could safely release the product and be reasonably certain that nothing would be break.

    I’m now rethinking that, both because it looks increasingly like Quick Look will remain a private API even in Snow Leopard, and because I’ve gotten feedback that it’s not a perfect fit for how I’m using it anyway. At the very least I will turn Quick Look into a secondary option, something that wouldn’t be missed if it went away, and roll my own preview UI to be the default.

    → 10:01 AM, Jan 3
  • Rails 4 years later

    Blog archives don’t lie. It’s been nearly 4 years since I first “blogged about Ruby on Rails”:manton.org/2005/02/t… (Three years and 10 months, but I’m not patient enough to wait until February to post this.) Here’s a portion of what I said back then:

    "But the PHP people will switch, easily, and with the apparent momentum of Ruby right now, maybe it's already happening. Forget the enterprise for now. Rails is a perfect fit for anyone who develops for the web on its own terms, and the people behind apps like Basecamp, 43things, and the upcoming Odeo match that profile."

    In that time I’ve increase my use of Rails. At “VitalSource”:www.vitalsource.com we have a bunch of Xserves running Rails applications. Mac developers have embraced Rails in the form of “PotionStore”:www.potionfactory.com/potionsto… Cheap shared hosts have been replaced with virtual servers, “many”:www.railsmachine.com with an emphasis on Rails hosting.

    The community is huge now. What’s not to like?

    Plenty! Here are my top gripes about Ruby on Rails.

    Deployment. Ask anyone — even its biggest fans — and they will complain about deploying Rails applications. This stems from two points: the overhead to initializing a Rails application, meaning multiple instances have to be fired up and ready, unlike PHP which can process a script at a moment’s notice; and the path of ever-changing deployment strategies littered with the corpses of FCGI, Mongrel, Passenger, Thin, and more.

    Upgrades. Rails matured quickly and is constantly improving. That’s great for features, great for best practices, and great for a clean API. The downside is that methods and entire chunks of the framework are deprecated and removed every major release. Forget about backwards compatibility. If you aren’t reading the blogs and keeping up with the latest changes, you’ll pay a price when it comes time to upgrade your application.

    Attitude. David Heinemeier Hansson and the Rails core team have been outspoken in their lack of concern for end users. It’s because Rails is not actually a product. It was released and is open source to benefit the community and to grow the framework, but average developers should have no misconception that anyone with Git commit access is looking out for their application. I have great respect for Hansson, as well as the other high-profile developers of Rails, but it helps set expectations to underscore that Rails is not a supported product.

    Java. Developers new to Rails generally come from the two other most popular web development languages: PHP and Java. Many leaders in the community come from that latter group, some of whom I count among my friends. Chad Fowler, in his “interview with Pragmatic”:www.pragprog.com/podcasts/… spoke to the baggage that developers bring to a new platform. I think some of this baggage from a more “serious” architecture is leading to new complex abstractions, such as Capistrano. Whether fair or not, I also largely blame the Java developers for using tabs-as-spaces, which is evil. ;-)

    Extensibility. The Rails team wisely made a conscious effort to limit the number of features in the core of Rails, instead preferring new optional features to be implemented as gems or plug-ins. The problem is that there are limited hooks to extend the framework. Ruby is great at dynamically extending classes that weren’t designed with extensibility in mind, but there is no gaurantee that one plug-in’s monkey-patch will continue to work in future versions. Ironically, “merging Merb”:weblog.rubyonrails.org/2008/12/2… into Rails 3 will bring better supported APIs for plug-in authors while no doubt breaking a bunch of old stuff.

    Speed. I put this one last because I don’t actually think it’s as big of a show-stopper as many people think. Still, it’s true that Ruby is one of the slowest languages out there, falling behind Python, Perl, PHP, Java, and enormously behind compiled languages. ActiveRecord is great, but it also makes developers lazy and requires tweaking the defaults to achieve the same performance as hand-rolled SQL. Projects like “Rails Metal”:weblog.rubyonrails.org/2008/12/2… look very cool, though, so that’s a good sign for the platform.

    Even with all these critiques, there is something special about Rails and I will continue to use it for many applications. But at the same time, any shame I used to have at using PHP is gone. If I need to do something simple, I will use a simple solution. As a sort of backlash against my frustrations with Rails, I built everything that powers Riverfold (order processing, admin interfaces, the “Wii Codes application”:wiitransfer.com/codes/ and Twitter services) off of PHP.

    → 6:45 PM, Jan 2
  • Sita

    As we start 2009, I continue to be inspired by what independent artists and developers are able to create with limited resources. Here’s one example.

    Roger Ebert recently “posted a thoughtful review”:blogs.suntimes.com/ebert/200… of animator Nina Paley’s independent feature Sita Sings the Blues. Paley is still in a small bit of copyright trouble with the songs and is trying to “creatively find a way out”:blog.ninapaley.com/2008/12/2… The copyright problem was news to me. I subscribe to Paley’s blog but haven’t been keeping up with it lately.

    Early in 2008 I invited Paley to screen her films at “STAPLE!":www.staple-austin.org/, but she was busy finishing Sita and preparing for its premiere in Europe. She has some great older shorts too, including one of the first Flash to QuickTime animated shorts I remember seeing, Fetch, which was linked years ago off Hotwired’s defunct animation site.

    (Speaking of STAPLE!, “Stan Sakai”:www.staple-austin.org/guests/ will be our guest in March. If you are in the Austin area, please stop by.)

    Sita Sings the Blues will find an audience eventually. I gave some money as Paley was soliciting donations to finish the feature, and I know I’m not the only one inspired by what she’s created. Making an indie feature film is an amazing accomplishment.

    → 6:11 PM, Jan 2
  • The Wii fad, 2 years later

    Video game console sales numbers for November are in. Two years after the Nintendo Wii was introduced — you know, the console that was derided as a gimmick, a fad, just a faster GameCube — the little white console still outsells the Xbox 360 over 2 to 1. It outsells the PS3 over 4 to 1. (“Here’s a 4cr post”:www.4colorrebellion.com/archives/… with official numbers.)

    The doubters were so wrong about this one. The fans and industry experts who were quick to sell Nintendo short kept waiting for a fail that never happened. If you go into a Best Buy right now the video game section is completely owned by the Wii and DS.

    Not everyone can take a risk and have it pay off so well, but it’s at least important to acknowledge that conventional wisdom and focus groups (what “everyone” knows) would have doomed Nintendo. The trick is being able to tell when you’ve got an idea that is truly special, and not just something you are clinging on to out of a stubbornness to be different.

    In related news, I imported a “Nintendo DSi”:www.nintendo.co.jp/ds/series… from Japan last month and it’s a great rev to the portable system. It would be even better if I could read Japanese.

    → 2:03 PM, Dec 14
  • The 99-cent message

    Forget the developer perspective for a minute. Even as a user I find the race-to-the-bottom iPhone price drops completely maddening. I’ve bought apps for $5 and $10, and now many of those prices have either been cut in half or lowered to 99 cents. I felt like I got my money’s worth at the higher price, so I’m not complaining that I was ripped off. Instead, I just feel like a fool.

    But I’ve learned my lesson. The message from developers could not be more clear. Apparently the way to buy iPhone software is just to wait a month for the price to drop.

    I realized this week that I don’t consider myself an iPhone developer. Technically I’ve paid my $99, but I’ve scrapped all my ideas except a prototype I’m working on for “VitalSource”:www.vitalsource.com/, and even that I expect someone else to finish and bring to market. If I was an independent iPhone developer I’d be furious at the instability of pricing on the App Store. Even to users it looks like chaos.

    → 11:15 PM, Dec 12
  • 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.

    → 9:02 AM, Dec 11
  • Family packs

    I rolled out “family pack” pricing for “Wii Transfer”:www.riverfold.com/software/… over the weekend. I had to make changes to my custom PayPal integration scripts to support it, and I also modified the product page to use a simplified checkout (no standalone store page). Pretty straightforward.

    I was less sure about pricing. A quick survey of other Mac developers yielded results like these (normal price / family price — all of these are for 5 users):

    “Radioshift”:www.rogueamoeba.com/: $32 / $59

    “Yojimbo”:www.barebones.com/: $39 / $69

    “Hazel”:www.noodlesoft.com/: $21.95 / $39.95

    “iLife”:www.apple.com/ilife/: $79 / $99

    “Bento”:www.filemaker.com/products/… $49 / $99

    “TextExpander”:www.smileonmymac.com/: $29.95 / $44.95

    “MoneyWell”:nothirst.com/: $39.99 / $69.99

    Additionally, some companies don’t have a family pack, but offer discounts for multiple copies:

    “Acorn”:www.flyingmeat.com/: $49.95 / 2+ (20% off)

    “On The Job”:www.stuntsoftware.com/: $24.95 / 2+ (20% off)

    “BusySync”:www.busymac.com/: $25 / 5+ (10% off)

    “Transmit”:www.panic.com/: $29.95 / 10+ (10% off)

    So 5 copies is the standard for family packs. My original idea was 3 copies for $29, so I threw that out. Five copies for only 50% more seemed way too cheap, especially since Wii Transfer is already the least expensive software of any company I found. True, this is “free” money — most customers don’t buy more than 1 copy anyway — but on the other hand they are getting 5 separate serial numbers. Unlike Apple’s iLife (which has no serial numbers), or Radioshift and BusySync (which allow a special serial number to be used on multiple computers), Wii Transfer’s URL bookmarking feature requires each copy of Wii Transfer to have a unique serial number to identify the computer.

    I think customers buying a family pack are exceptionally honest. They are going out of their way to do the right thing. But at the same time, it needs to be a fair enough price that I’m not losing anything if a few customers decide to share their “extra” serial numbers with a friend.

    In the end I settled on $39 for the 5-copy family pack, essentially double the normal price of $19. The Bento pricing model convinced me that it was doable, even if percentage wise it’s slightly higher than other products. I’ll be watching stats over the next month to see how well it works. “Decisions are temporary”:gettingreal.37signals.com/ch06_Done… I’m not afraid to change the family price or drop it altogether if it doesn’t meet my expectations.

    → 11:02 PM, Oct 27
  • Slow-growing trees

    We planted some trees in our front yard recently. They take decades to grow, and we are under no illusion that they’ll provide meaningful shade before our children have families of their own. It’s easy to say: “Why should I bother? It will take too long before we can see results.”

    But it’s like anything — the sooner you start, the less time you have to wait until that thing is mature.

    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.

    In other words, don’t let the weight of potential work stop you from doing the right thing.

    → 2:48 PM, Oct 20
  • Campaign Monitor

    Last month, on the 7th episode of Core Intuition, we talked about promotion. In particular I had good things to say about Campaign Monitor, and the folks who built it heard the episode and wanted to ask a set of follow-up questions to use on their own blog. “That mini-interview with me”:www.campaignmonitor.com/blog/arch… about how I used the service is now online.

    In closing out that blog post, Mathew Patterson of Freshview suggests a couple things I agree with, including sending a newsletter more frequently than once a year. In fact I would love to send another one soon, to link up a survey to get some more information about why customers are purchasing Wii Transfer.

    Unfortunately my hands are tied with yearly. When I put together the Wii giveaway promotion, I specifically told users opting in that it would be about once a year. I did this to encourage people to sign up without wondering if they would be spammed all the time. And also, I doubted that I would have the time to send a newsletter much more often than every year. So it’s not ideal, but there it is.

    Since then we’ve recorded 2 more shows. The latest “Core Intuition”:www.coreint.org hits the lifting of the NDA, the iPhone Tech Talk Tour, and Apple’s stock price.

    → 11:54 PM, Oct 15
  • Favorite essays

    The best essays are the ones that contain some truth or insight that doesn’t go out of style months or years later. As I return to regular blogging (12 posts in September compared to about the same number of posts between all of May through August), I sometimes stumble upon older posts that have held up pretty well.

    Here are 10 of my favorites over the last 6 years with brief comments on why I like them. If you’ve only recently started reading my blog, maybe you’ll find one of these interesting.

    “Understanding Comics”:www.manton.org/2003/01/u… January 2003. Probably the first of several essays where I write about art and software. Since I wrote it, Scott McCloud has finished his third book on comics.

    “Perfection”:www.manton.org/2005/08/p… August 2005. Doing our best work, inspired by Tufte and the golden age at Disney.

    “Set unreasonable deadlines”:www.manton.org/2005/12/s… December 2005. Code more in less time, three years ago, but still very much inspired by 37signals. I like how this post mentions my favorite animation autobiography.

    “Limitations in toys and software”:www.manton.org/2006/01/l… January 2006. I connected LEGOs and toy utility with user interface design in this one.

    “Smart software bloat”:www.manton.org/2006/02/s… February 2006. In a general sense, how to add features without burdening the user interface. Discoverability in context.

    “Mediocrity is the new application platform”:www.manton.org/2006/03/m… March 2006. About web, native, and hybrid applications, and when to choose one or the other.

    “Customer support”:www.manton.org/2007/02/c… February 2007. Sparked by a post from Ryan Carson, I write about my own experience with Wii Transfer support.

    “Bush veto”:www.manton.org/2007/11/b… November 2007. I’m pretty sick of partisan politics right now, a month before the election. This post reminds me of the passion I had just a year ago.

    “Fancy-pants productivity”:www.manton.org/2008/03/f… March 2008. A little bit of a rant, reacting to the opinion that code must always be beautiful.

    “Ollie Johnston”:www.manton.org/2008/04/o… April 2008. Where I comment on the death of a master animator. I should re-read this one every year.

    → 3:09 PM, Oct 8
  • 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.

    → 4:49 PM, Oct 4
  • Gruber on The Fear

    I don’t link to Daring Fireball much anymore. Everyone who cares about the Mac and reads my blog, also likely reads his. I will link or write about obviously redundant topics that everyone else is also writing about only when I feel like I can add some kind of value. I felt that way with “my short NDA post”:www.manton.org/2008/10/n… putting it in the context of customers.

    But John Gruber’s latest, “The Fear”:daringfireball.net/2008/10/t… is just too good not to link to. Many developers and professional bloggers can write passionately about rejected iPhone apps, but no one connected that to the default dock and its significance in the original device introduction by Steve Jobs. Whether the theory is true, we may never know, but man is it a good read.

    → 11:17 PM, Oct 2
  • NDA and overnight optimism

    Last week I blogged about “my experience with a late Amazon order”:www.manton.org/2008/09/a… commenting that I was a happy customer again after they apologized. Even after being mistreated, customers will forgive everything if only the company does the right thing in the future. It’s the same way an angry customer will fire off a support email rant but then become an advocate for the company if the company responds quickly and honestly.

    Thank you, Apple. “Lifting the NDA”:developer.apple.com/iphone/pr… has turned the whole developer community into optimists overnight.

    → 1:55 PM, Oct 1
  • Ajax as a scaling tool

    When “MobileMe”:www.me.com launched with a beautiful new design, the web application suite was essentially unusable because of terrible performance. Timeouts and slow page refreshes were the norm. At the time, I didn’t think too much of this. I just waited a couple of weeks until they had either improved their backend infrastructure or until traffic had died down enough to make the site work again.

    But one thing that did catch my eye is the insane number of Ajax hits from the SproutCore-based UI. Even “Cappuccino”:cappuccino.org/, which I praise as brilliant to everyone I talk to, seems to join Gmail’s progress bar with this same loading overhead cruft.

    Maybe I’m reading too much into it, but I think as work shifts from the server side to JavaScript there is the potential for waste and chattiness. It’s like the countless pixel spacers from the 1990s table-based designs all over again.

    Now there’s a counter-argument to this, that you can cut down on the weight of hits by just sending snippets of JSON or some other lightweight format without the baggage of too many HTML tags, but in practice I think the overhead of the large JavaScript libraries and resources to construct modern app-like UIs overshadow potential gains.

    Unavoidable? Maybe. Or maybe most applications will still benefit from “traditional” Ajax. “Twitter recently redesigned”:blog.twitter.com/2008/09/c… and made their web site faster in that way. Instead of a completely new client-driven interaction model, they just take pieces of the web site and load content without requiring a full page refresh. Easy wins. Web 3.0 not required.

    → 1:05 PM, Sep 30
  • Cuts in Core Intuition

    When producing “Core Intuition”:www.coreint.org we generally record more than we need, giving us flexibility to cut out the rambling tangents, technical errors, and frequent “uhms” that threaten to destroy any kind of pacing or interest in the show. The decision of what to leave out is just as important as the original source work — being able to recognize the best parts that add value vs. the fluff that can be dropped to make the whole thing stronger. It’s that way with any product, not just podcasts.

    For episode 8, posted this morning, we ended up recording even more than usual, so we cut a batch of insignificant things but also a few good points in an effort to bring the podcast down to something closer to 30 minutes. I wanted to gather a few of those lost topics here.

    Politics. We recorded the show Friday before the first presidential debate, so it only made sense to discuss the campaign. Core Intuition started before the Democratic primaries were officially over, during which time Daniel and I were quite vocal on Twitter and blogs about the election. It still surprises me that we haven’t let politics get into the show. Probably for the best.

    SXSW. I talked more about the SXSW Interactive festival, from its beginnings in the 1990s as a multimedia show to the current mix of web, social media, and design. Some of the most interesting talks in the last couple of years trended away away from “5 experts on a panel” sessions to more formal talks, by speakers who love SXSW and don’t want to see it fall into mediocrity. While it’s not a developer conference, there has been a steady attendance increase from web application developers and even Mac developers.

    TED. Daniel commented on the 20-minute sessions at “TED”:www.ted.com/, and how any conference would benefit from this focused approach. Imagine how much more useful sessions at WWDC would be if the speakers cruised through their technical slides in 20 minutes and then left much more time for Q&A.

    So those were a few of the segments we left out. The final show included a wrap-up of the C4 conference, insight from Daniel’s “Shush” iPhone app, and rants on Google Android and user experience. “Check it out”:www.coreint.org.

    → 9:21 PM, Sep 29
  • Ship it, software and newsletter

    I’ve been meaning to link to “this post by Justin Williams”:log.carpeaqua.com/post/3266… on shipping his Today app quickly:

    "I'm a big fan of foundation releases. In other words, release the bare minimum you possibly can to constitute a 1.0 and then let your users help decide the direction your application ships."

    There is always more to do, a never-ending stream of features you could implement for 1.0, and the same can be set for other non-software projects. When I started preparing a newsletter last month, the features crept on: I should have a coupon code, and maybe a special URL to track links, or a survey, or HTML email design instead of plain text.

    I explored most of these options before finally realizing it was more important that I send the newsletter than wait for it to be perfect and solve every problem. In the end I’m glad I didn’t spend much time on it, because overall the newsletter was not very successful, providing just a blip in web site traffic and negligible increase in sales.

    → 8:41 AM, Sep 26
  • Almost-right Amazon response

    I placed an order on Amazon last week and chose Amazon Prime overnight shipping, something I do pretty often. The package was late. Even on Saturday, when the package was nowhere near Texas, the Amazon order page still showed estimated delivery for Friday.

    I emailed support asking for a refund of the $3.99 overnight charge since they failed to ship on time, and the answer I got back surprised me. They would refund it “this one time”, but in the future I should know they don’t do Saturday delivery. All the details I had provided in my email had been glossed over, and instead they had essentially called me an idiot.

    The refund itself was irrelevant. It’s just 4 bucks. But please don’t blame the customer. Even if it’s not your fault, but especially when it is!

    (A second email with Amazon cleared up the matter and they apologized. I’m a happy customer again.)

    I’ve blogged before about “refunds in the context of customer support”:www.manton.org/2007/02/c… and this Amazon situation just underscores that how you treat your customer is actually more important than the money. I would have been much less upset if they had refused to refund the shipping, but at least acknowledged that I was right about the order date and expected delivery.

    → 4:59 PM, Sep 25
  • Developer-hostile platform

    “Paul Kafasis writes”:www.rogueamoeba.com/utm/2008/… on the Rogue Amoeba blog:

    "I certainly feel like I've been talking about the iPhone a lot, particularly for a company that doesn't currently have any iPhone software available. There are many reasons for that, but perhaps most important is that we believe the iPhone is a fantastically promising platform, and we don't want to see that promise squandered."

    In some ways it feels like nothing has changed since March when I “posted here about the iPhone NDA”:www.manton.org/2008/03/i… I guess I’m disappointed that there hasn’t been more public conversation about building iPhone apps until now, but there’s definitely an attitude change just in the last few weeks — one in which fear of Apple’s lawyers is replaced with something closer to rebellion: posting sample code, blogging extensively, and abusing ad-hoc distribution. It’s right and healthy for developers to become as distrustful toward Apple as Apple has been hostile to developers.

    → 1:26 PM, Sep 25
  • Wil Shipley on bugs

    From a “Wil Shipley post”:wilshipley.com/blog/2008… a few months ago:

    “Software is written by humans. Humans get tired. Humans become discouraged. They aren't perfect beings. As developers, we want to pretend this isn't so, that our software springs from our head whole and immaculate like the goddess Athena. Customers don't want to hear us admit that we fail.
    “The measure of a man cannot be whether he ever makes mistakes, because he will make mistakes. It's what he does in response to his mistakes. The same is true of companies.”

    I’ve been thinking about mistakes and bugs as I beta test “Sifter”:www.sifterapp.com/. Since it’s not ready for launch yet I won’t comment on it specifically, except to say that despite many bug systems becoming very mature (in some cases, too mature) every developer still has a different set of needs. There will always be a new bug system promising to fix all your problems, and for many of us we have to keep reminding ourselves not to code our own. Been there done that.

    → 1:59 PM, Sep 22
  • River of news

    No, I don’t mean “Dave Winer’s thoughts”:www.reallysimplesyndication.com/riverOfNe… on RSS reader design exactly, although that’s part of it. It’s more the way we in the technology community interact with the world. Hundreds of news feeds, company chat, external IRC channels, private AIM, email dinging every 5 minutes, and the constant flow of tweets. At home, we’re connected essentially 24/7; on the road, the iPhone brings it all with us. Plus there’s the never-ending pile of work to do on too many projects.

    Technology news or politics or development moves too fast and doesn’t slow down. It’s easy to feel like you’re being pulled down the river, one hand struggling to hold on to the raft and the other deep in the current, information overload all around.

    Since coming back from C4 I’d been fighting a cold, which developed into a cough and sinus infection and fever and whatever worse. I finally hit the doctor up last week and just unplugged, checking email twice a day for emergencies only. I spent the rest of the day sleeping, reading, and with family — a self-imposed vacation for my brain as much as my body.

    Four days later I’m feeling quite a bit better, and trying to think about what changes to make in my schedule so as to not wind up insane or dead before I’m 35. But even as I say that I acknowledge that it’s stretching the truth, because I’ve never been happier.

    → 11:24 AM, Sep 22
  • Tracking sales referrers

    The primary way to track marketing and word-of-mouth about your product is to look at web site referrers. Easy. Just install “Mint”:www.haveamint.com and you’re done.

    But not all referrers are created equal. A prominent link on Digg might lead to sales or it might lead to dozens of “wish it was free” comments on your blog. To really judge the effectiveness of referrers (and in turn give a better idea about where resources should be placed in the future) take it one step further to track the initial referrer link all the way through to purchase. You want to know where the customer first learned about your product.

    This isn’t a new idea and I’m certainly not the first to do it. Wil Shipley spoke at length about this technique during “his C4 talk”:www.viddler.com/explore/r… in 2007, in the context of online advertising. In talking with other developers it became clear to me that most people don’t do this, even though it can be achieved in about a dozen lines of code.

    The basics are pretty simple:

    • When a link comes in to your site, see if a special cookie is set. I called mine "WiiTransferRef".

    • If the cookie is set, you have a repeat visitor. Nothing to do at this point.

    • If the cookie is missing, this user is likely visiting your site for the first time. Put the referrer value in the cookie.

    • After a purchase is complete, check for this cookie and add an entry to the database with the referrer value and timestamp for the order.

    You can add more intelligence as suits your requirements and available time, but the basics don't need to be any more complex than this. For bonus points and slightly improved security, you could add a database entry that tracks the referrer value and use the cookie as a session that simply points to that row, updating the database to show completed orders, but I chose not to do that to keep the database uncluttered.

    Here’s the PHP source for my main product page:

    And then the source for the final “thanks!” page after a purchase is complete:

    Note that because I am using simple PayPal buttons, not all customers actually reach the last page, because they can ignore the “return to seller” link after a completed transaction and instead go wherever they chose. This limitation goes away if you have rolled your own store or used something like “PotionStore”:www.potionfactory.com/potionsto…

    I’ve been tracking these for over a year now. I’ll share some stats about what I’ve learned in a future blog post.

    → 7:12 PM, Sep 15
  • C4[2]

    There will be many C4 wrap-up blog posts, but “Fraser Speirs hit the spirit of the conference”:speirs.org/2008/09/0… very well:

    “I thought C4 was incredibly reflective. If you imagine it as a smaller WWDC, it's really nothing like that. The amount of code shown on-screen is really quite small, and the conversation is really about the art, craft, business, science and lifestyle of Mac development.”

    I had a great time at C4. As always I met a bunch of new folks and caught up with everyone I hadn’t seen since WWDC or the previous C4. It was especially wonderful to hear the positive feedback about “Core Intuition”:www.coreint.org in person. Thanks!

    I also participated from the stage, as Wolf called me up to be on Saturday night’s panel literally minutes before it started. I have a feeling I came off as a bit of an oddball — I managed to shrug off software pirates, decry moving away from Subversion, suggest a “crap” label for the App Store, and actually recommend Dreamhost — but I hope there was value in it for attendees, even if it was less exciting than last year’s panel. Wil Shipley did a great job guiding questions for the panel.

    For a view into what the conference was like, “check out the C4 Flickr pool”:www.flickr.com/groups/c4…

    → 10:59 PM, Sep 11
  • Promoting Core Intuition 7

    The latest episode of “Core Intuition”:www.coreint.org is up. Daniel and I focus on promotion and marketing in this show — releasing a new version, sending email newsletters to customers, and promoting your brand on a blog. We also hear from Daniel about development life with the new baby and talk up C4, which starts tomorrow in Chicago.

    The web site now includes links for products and topics mentioned in the podcast. We’ll be transitioning the site to a full blog with listener comments soon. In the meantime, send an email to “feedback@coreint.org”:mailto:feedback@coreint.org with thoughts about the latest episode or suggestions for future topics. Thanks for listening!

    → 10:55 AM, Sep 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.

    → 9:59 PM, Sep 2
  • BBEdit 9

    “BBEdit 9 is out”:www.barebones.com/products/… and it’s a solid upgrade. A recently came across an old BBEdit 4 CD, which Rich Siegel gave me back in the mid 90s when I was helping run the WebEdge Mac web developer conference. Good times! Bare Bones is one of the only “old indies” to make the transition so strongly to Mac OS X. Rich is also “speaking at C4”:rentzsch.com/c4/twoOpe… this coming weekend.

    → 10:51 AM, Sep 1
  • Palin

    I made a comment on “Dave Winer’s points”:www.scripting.com/stories/2… about McCain VP pick Sarah Palin that I feel like I should republish here. I’ve commented on dozens of blogs and news sites through the primaries, but I haven’t posted here on this blog, instead preferring to let off steam on Twitter. I think this comment serves as a nice snapshot in time of the race, at least from my perspective, so here it is:

    Some of your points may end up being true, but let me just address number 6. Since you didn’t vote for Hillary, there are 18 million people who know more about this point than you do.

    Every day this week at the convention, the main news story was Hillary and party unity. What would she say, would Democrats unite? Well she hit it out of the park with her speech, and Bill Clinton did too, and then Biden followed strong and it was easy to be excited about being a Democrat, about the story of Obama and Biden and how hopelessly lost the Republicans were by comparison. Even those Democrats who were frustrated with the party, and disappointed with Obama in general, started to warm up to the ticket.

    When McCain picked Palin, it was like none of the week had happened. Everything was reset back to the primaries, in how Hillary had been treated by the press, party, and Obama supporters, and how Obama had passed her over for VP.

    On the issues, Palin is no Hillary. But every day for the next 2 months, Palin will be a reminder to disgruntled Democrats that Obama messed up.

    → 2:28 PM, Aug 30
  • Buzz on software entrepreneurship

    “Buzz Andersen responds”:log.scifihifi.com/post/4759… to some of Mike Lee’s recent blog posts:

    "We're living in the 'anyone can play guitar' era of software entrepreneurship. Because of the confluence of increasingly accessible developer tools and the Internet, it's now reasonable to think that one or two talented people, with little to no investment, can make anything from a good living to a fortune by bringing their idea to life. What kills me about the outmoded Silicon Valley gold rush mentality that I feel has entered the Mac developer community for the first time because of the iPhone is how much it fundamentally ignores the significance of Apple's App Store as a field leveler."

    Although I was at first disappointed that I had no time (either at VitalSource or for my own projects) to have an iPhone app at launch, as the weeks and months pass since the App Store opened I find myself less and less sure about what the App Store market actually looks like. Everything is changing very quickly. While there is no doubt a huge opportunity in iPhone development — and with another 30-40 million iPhones hitting next year, each of those new customers will have their own impulse buys and novelty purchases, to say nothing of the real apps that people need on their phone — at the same time I wonder when iPhone development will be as mature and stable as the Mac software market is.

    This isn’t a direct comment on what Buzz is saying. His blog and comments on “Mike’s post”:www.atomicwang.org/motherfuc… are right-on as usual.

    → 10:42 AM, Aug 27
  • 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.

    → 12:57 AM, Aug 11
  • I Am Rich

    I wasn’t going to give the silly $999 “I Am Rich” iPhone application any more attention after the initial laugh, but the more that everyone reacts to what went wrong the more clear it becomes that there is something to learn here. “Kottke thinks Apple shouldn’t restrict”:www.kottke.org/08/08/the… based on taste; “Ryan Irelan points to no shopping cart”:www.ryanirelan.com/blog/entr… as the problem; “Dan Benjamin mostly agrees”:hivelogic.com/articles/… but with some more analysis; and “John Gruber hits the same points”:daringfireball.net/linked/20… and mentions (in passing) what I think is the real problem: refunds.

    iPhone developers have wondered for months how refunds were going to be handled. Although demo and trial versions (if added) will be used by many more customers, refunds to unhappy customers represent an extremely important part of the relationship between developer and customer. I’ve written before about “my philosophy with refunds”:www.manton.org/2007/02/c… and customer support, an opinion that is shared pretty universally in the Mac community. Just yesterday I gave a refund to a customer who purchased the software over a year ago, but apparently didn’t get around to actually using it recently and found it did not meet his needs.

    If there were a proper way for developers to send App Store refunds — because of unmet expectations (app crashes or doesn’t work as advertised) or accidental purchases (my son bought this without asking me) — then this issue just goes away. It doesn’t matter whether I Am Rich is worth $999 or whether the shopping cart should be an option in iTunes. The core issue is refunds because it fixes several problems at once, and removes Apple’s personal judgement about what is good or bad for iPhone users.

    → 1:20 PM, Aug 8
  • Core Intuition 6

    I’ve really been neglecting this blog. I’m not sure what it is — I have plenty of posts in draft form and it’s not particularly hard to hit the “Send to Weblog” button.

    Speaking of people who wrote MarsEdit, our sixth episode of “Core Intuition”:www.coreint.org is out. Daniel and I spend a good chunk of the show on bug tracking, thoughts on running a software business while preparing for a new baby, staying inspired and getting distracted, and a bunch more. Plus we put out a call for good artists to contact us.

    We had a lot of fun with the show and I hope you enjoy listening to it. If you have feedback, send an email or “post a comment on Daniel’s blog”:www.red-sweater.com/blog/544/…

    → 12:15 AM, Aug 7
  • WWDC 2008 wrap-up

    Yes, this post is a month and a half late. I could probably just re-post what I wrote in 2007 and it would almost pass for this year’s WWDC review. Just insert more iPhone and more beer.

    Instead of a formal write-up, I wanted to piece together the week from Twitter posts, but that proved tedious enough that I had to write a little app to help me out. I started by adding my own relevant tweets for WWDC week, then threw in a dozen people I follow and selectively picked the tweets that were significant or about events for which I didn’t directly post.

    So here you go. How I remembered WWDC 2008, in 95 tweets.

    manton: Totally forgot about partitioning my MacBook for potential 10.6, but (surprise!) it’s still partitioned from last time. Now packing. Sat 06:14 PM

    manton: Woke 20 minutes before my alarm. Making coffee for my taxi driver / wife. Sun 03:52 AM

    manton: Migas in AUS while waiting for my plane to get here. As usual arrived way too early. Sun 06:26 AM

    manton: I brought a Wiimote with me for testing and the lights are blinking. Suddenly paranoid about Bluetooth on planes, so taking batteries out. Sun 06:28 AM

    manton: San Diego airport. Slightly delayed flight. Never been here but it looks like the worst place for a layover. Sun 10:15 AM

    manton: Landed at SFO. Sun 01:08 PM

    willie: bart Sun 01:25 PM

    manton: Still surprised to run into other devs in person. Almost adjusted from online to real world. Sun 03:03 PM

    duncan: Bumped into @willie @manton and @phi Sweet!!!!! Sun 03:39 PM

    dmoren: en route to sfMacIndie via Moscone West… Sun 05:16 PM

    brentsimmons: At Jillian’s – Tommy’s next. Sun 07:45 PM

    dmoren: chilling with @clint and @ejacqui. I do not know where in SF they have taken me. Hope I make it to the keynote tomorrow. Sun 08:38 PM

    bmf: Tommy’s’d! http://snipurl.com/2en8i Sun 10:47 PM

    ccgus: chiefton! Sun 11:34 PM

    gruber: Fucking-A, @nevenmrgan, @seoulbrother, @manton, not a bad scene at all. Mon 12:21 AM

    danielpunkass: I’m so not going to Denny’s. I am at home away from home in my sweet friends' guest room. Final tweets then good night. Mon 02:21 AM

    rtmfd: Running on fumes, tequila fumes. Mon 06:35 AM

    manton: Set my alarm for 9am. Woke at 7 with the sun streaming through the windows. Aeiii. Mon 07:34 AM

    chockenberry: I will be happy to demo [REDACTED] apps during WWDC. You can touch it. Mon 08:07 AM

    manton: And I’m in. Mon 09:53 AM

    moonshark: in the WWDC keynote, good view considering the crowds Mon 09:56 AM

    atomicbird: Al Gore is here Mon 10:02 AM

    gruber: Holy shit $199 for 8GB Mon 11:48 AM

    twelvelabs: Happy to finally get to see several months of my work shared with the rest of the world. Mon 12:07 PM

    manton: Apple published a Snow Leopard press release before even showing developers? Not cool. Mon 01:28 PM

    manton: Graphics and Media, don’t let us down. I’m hovering dangerously between disappointed and satisfied from this morning and early afternoon. Mon 04:58 PM

    brentsimmons: Heading for buzz’s party. Mon 06:57 PM

    manton: Dinner and good "best of the day" discussion with @willie, @moonshark, and work folks. Heading to Buzz party. Mon 08:31 PM

    manton: Choosing sleep. Tue 12:24 AM

    manton: Forget 3G, forget GPS. You know what I would pay $199 for? Flagging messages in MobileMail. Tue 12:35 AM

    buzz: Well, I think we can call the party a success. Tue 12:45 AM

    manton: Guessed i picked the wrong session. Mostly new people based on the show of hands. Tue 10:40 AM

    manton: Session hopping is much better than seeing yet another intro to Xcode demo. Tue 11:07 AM

    ashponders: @manton is not carrying anything today. I am jealous. Tue 11:24 AM

    manton: iPhone view controllers. Nice thing about only playing with the SDK a little is that I’ll learn more this week. Tue 01:43 PM

    brentsimmons: CocoaHeads tonight. 7-9 Apple Store. Presentations + Q&A. Tue 01:59 PM

    manton: Almost the end of day 2, and I’m not sick of the iPhone yet. Tue 04:46 PM

    manton: W too busy. Grabbing quick noodles at Metreon before CocoaHeads. Tue 06:30 PM

    louielouie: At CocoaHeads WWDC - getting to hear about Objective-J first-hand woohoo Tue 07:05 PM

    ccgus: I just realized I didn’t demo acorn in my pres Tue 07:45 PM

    brentsimmons: Heading to Ars party. Tue 09:21 PM

    manton: Good presentations at CocoaHeads. Outside full Ars party wondering what’s next. Tue 09:43 PM

    brentsimmons: Tempest. Yest. Tue 11:31 PM

    macdevnet: Back from Cocoaheads and Ars Party, I think I’m getting to old for this. Great to spend some time getting to know @manton though Wed 12:10 AM

    manton: Why can’t I sleep in? This is annoying. It’s as if my kids are here virtually, waking me up across time zones. Wed 07:14 AM

    manton: Pixar session is always good, got in early. Wonder what @SenorDanimal is up to. Wed 12:06 PM

    ccgus: I lost manton Wed 12:08 PM

    manton: Push stuff is elegant, but the team doesn’t seem to understand the scale of what they are building. Wed 03:04 PM

    manton: Grand Central Dispatch. Cool stuff. Looking forward to randomly using blocks a lot before the fun wears off. Wed 04:06 PM

    manton: Apple Design Awards. I didn’t enter, so I’m almost relaxed. Good luck to all. Wed 07:33 PM

    willie: At ADA. We didnt enter because our lack of superfluous shiny technologies Wed 07:37 PM

    manton: Congrats to @nevenmrgan on the ADA win! Wed 08:09 PM

    manton: Twitterific won! Congrats @chockenberry, well deserved. Wed 08:14 PM

    atomicbird: Best iPhone productivity app: OmniFocus Wed 08:15 PM

    manton: Going to stay for at least part of Stump to support @willie’s addiction. Wed 08:50 PM

    manton: I don’t usually sit this close to the front. Scared. Wed 09:05 PM

    willie: Involved in 2 stump points for the crowd this year. Rock. James Brown and the Quadra 840av. Wed 10:15 PM

    manton: A surprising number of people I know are winning Stump t-shirts this year. Wed 10:28 PM

    brentsimmons: At chieftain. 5th and Howard. Wed 10:47 PM

    brentsimmons: Tempest now, folks. Thu 01:02 AM

    manton: Using the iPod dock in the hotel room. Strange, but the first time I’ve actually ever used a radio dock. Sounds good! Thu 07:57 AM

    manton: Wish there were Apple t-shirt sizes between kids 7 and adult small. Preferably in pink. Thu 09:48 AM

    manton: Sitting in on Advanced Ajax for a change of pace. Thu 10:20 AM

    manton: Typing lyrics into Google on iPhone to expand my WWDC music playlist. Thu 10:29 AM

    manton: @atomicbird Tom Dowdy. It was a great tribute. Thu 10:36 AM

    manton: Wasn’t going to see Dinosaurs, but intrigued after hearing a better description. Thu 12:26 PM

    manton: Just passed @schwa talking enthusiastically to a trash can. Then noticed the earbuds. Thu 03:34 PM

    manton: Debugging with WebKit session. Inspector just keeps getting better. Still like CSSEdit, buy may use it less. Thu 04:01 PM

    danmessing: Apple bash time. Thu 06:48 PM

    gruber: Thirsty Bear with Buzz Andersen and other malfeasants. Thu 09:05 PM

    buzz: Drinking a Golden Vanilla beer with assorted Mac noteables at the Thirsty Bear. Thu 09:16 PM

    willie: Barenaked Ladies - http://snaptweet.com/20fd8 Thu 10:09 PM

    moonshark: Bare Naked Ladies - Apple WWDC Bash - http://snaptweet.com/3d7d5 Thu 10:11 PM

    dmoren: totally just film-geeked out with @nevenmrgan. Hitchcock, bitches. Thu 11:23 PM

    brentsimmons: Heading to Tempest. Thu 11:56 PM

    danielpunkass: Tempest tonight was perfect crowd. Could have used several more hours of that scenario. ‘Tis a shame. Fri 02:27 AM

    bmf: Dan M. wrote the "e" and ate the shit out of some toast. Fri 03:01 AM

    danielpunkass: I got my ride home thanks to @manton’s cab allowance. Thanks! Fri 03:06 AM

    manton: Last WWDC session. It’s been a great week but can’t wait to be home. Fri 01:58 PM

    manton: Dropped my badge at the hotel and going to wonder around. To everyone I missed saying goodbye to: safe travels and seeya next time! Fri 03:17 PM

    manton: @brentsimmons @rtmfd I’m going to take a raincheck on last drinks until the next conference, need to go shopping. Was good to hang out. Fri 03:30 PM

    manton: The Ms Pac-man in the W lobby doesn’t need quarters. Fun. Fri 03:43 PM

    manton: Visiting the Cartoon Art Museum. Fri 04:04 PM

    manton: Walking to Chinatown in search of gifts. Fri 05:24 PM

    manton: Walking back to the hotel using the longest possible route. Feel very relaxed. Fri 06:08 PM

    duncan: Taking @willie @manton @phi Daniel and crew to Luce. Oh yeah. Celebration of a long week. Fri 07:01 PM

    willie: dining with @pinar @duncan @moonshark @manton & others. Good times. Fri 07:23 PM

    willie: Pantade - http://snaptweet.com/dc8bd Fri 07:41 PM

    willie: Bisque - http://snaptweet.com/d901c Fri 07:41 PM

    ccgus: A great WWDC photo set: http://tinyurl.com/5rtwpu Fri 08:33 PM

    willie: Study of Chocolate - http://snaptweet.com/04f07 Fri 08:41 PM

    danielpunkass: I’m committing to never beat myself up again for missing lots of sessions at WWDC. The social contacts are priceless and inspirational. Fri 09:45 PM

    manton: Great dinner with the work folks + @duncan, @pinarozger, and Daniel Steinberg (no twit?). @willie has the food photos. Fri 10:08 PM

    manton: And that’s it. Catching a taxi to SFO. WWDC review: worst keynote, best conference week. Sat 06:27 AM

    manton: Landed in Austin. Pretty funny flight crew made the trip back easier. Sat 01:31 PM

    → 10:03 AM, Aug 2
  • Second episode

    “Daniel Jalkut”:www.red-sweater.com/blog/504/… and I just posted the 2nd episode of “Core Intuition”:www.coreint.org/. I’m not sure which is a bigger milestone: starting the podcast to begin with or sticking with it for at least two shows. I think the podcast is coming together well and the feedback we’ve received so far backs that up.

    This episode feels a bit more content heavy than the previous one. We talked about what it’s like to work while traveling, tech books and some thoughts on the 3rd edition of Cocoa Programming by Aaron Hillegass, and then dedicated most of the last half to distributed version control systems such as Git. Even though it is just days before WWDC, we only touched on WWDC indirectly. I expect there will be enough to talk about after next week to fill more than a few shows.

    Editing the show continues to be a challenge but it’s so rewarding, just being able to slowly craft the episode from the recordings. You tell a little lie every time you tweak the original source audio, but hopefully the end product feels more authentic or at least fresh. It makes me appreciate even more the work Ryan does on “The Talk Show”:www.thetalkshow.net/. Our goal is to improve the quality each episode until we reach a point we are happy with, so if you have any feedback I’d love to hear it. After WWDC I’m going to invest in some real headphones. I was shocked how different the show sounds between my speakers, cheap headphones, and iPhone.

    If you haven’t subscribed yet, you can now find the “listing on iTunes”:phobos.apple.com/WebObject… and get it synced to your iPod or iPhone in just a few clicks. Enjoy!

    → 10:10 PM, Jun 5
  • Core Intuition

    Like many new tech endeavors for 2008, it was announced first on Twitter. Core Intuition is a new podcast from Daniel Jalkut and me, with a focus on the daily life of a Mac developer and whatever related subjects are going through our heads. There was so little time between the “let’s do it” idea to recording and edit and web site and Twitter account that I might not have believed it actually happened if I had blinked, but here it is. Expect the traditional iTunes page, blog, and other formalities to follow soon.

    Daniel’s blog post has more on the announcement. He also has comments enabled, so feel free to jump over there and post feedback, unless it’s the angry, negative kind of feedback in which case please send a private email to feedback@coreint.org. :-)

    Thanks for listening. We’ll be doing these regularly so please subscribe in iTunes if you want to catch the next episodes.

    → 4:04 PM, May 30
  • Wii friend codes from Twitter

    As most Nintendo Wii owners know by now, Mario Kart for Wii shipped last week. I put together yet another friend code database to track and share codes, but this one is unique because it builds on Twitter. Just follow “@wii”:twitter.com/wii and send your friend code in a reply. No registration, no data entry. All your friends on Twitter who also use the system will automatically be linked, so you can quickly get a view of which friend codes to add. It’s also a great way to discover new Twitter users.

    I’m pretty happy with how the implementation has worked out. It’s build on essentially three background scripts:

    • Parsing replies every minute looking for the friend code pattern (1234-1234-1234 for game codes, with dashes or spaces).

    • Taking queued users and pulling everyone they are following into the database.

    • Generating and caching the RSS feed for recently tweeted friend codes.

    The system currently only pulls the first 300 followers, but it's running smoothly enough that I will bump that up to 500 this week. Over 150 people are currently using it, and the database has about 10,000 records to keep track of friends. I feel like it's architected well enough to grow significantly from here, so I may do some casual promotion of the service this week.

    If you own a Wii and use Twitter, “give it a try”:wiitransfer.com/codes/. If you have any questions or feature requests, please send me an email or reply on Twitter. Enjoy!

    → 10:32 PM, May 4
  • Flip Ultra

    I first heard of the “Flip”:www.theflip.com/products_… a few months ago, but it wasn’t until “this 37signals post”:www.37signals.com/svn/posts… that I started paying attention. I was attracted to the simplicity of the video camera: few buttons, decent quality, and kid-proof design. Here is my mini-review.

    Speed. This is where the Flip shines. It is compact enough to take anywhere, and simple enough that you can take it out of your pocket and start shooting video in seconds. I’ve already shot way more video than I would with my traditional DV camcorder.

    Battery. It runs on two AA batteries. I was able to record a ton of video before replacing them, accumulating 3 GB of files over several weeks. This is unheard of compared to any other still camera or video camera I’ve owned.

    Transfer. The Flip saves as the Xvid flavor of MPEG-4, which is not supported natively by QuickTime. Luckily a quick “Perian install”:www.perian.org later and you can view and edit them in QuickTime Player or any app that supports QuickTime. Just mount the camera and copy them over, or convert to H.264 with something like VisualHub. The “Wii Transfer 2.6”:www.riverfold.com/software/… beta also supports Xvid to convert and share to your Wii.

    Quality. I wanted to do a side-by-side comparison with Motion JPEG used on most digital still cameras, but this isn’t a video hardware review site so an in-depth analysis is beyond the scope of what I need or have expertise in. To my eyes it looks pretty good though. Make sure to get the Ultra, not the regular Flip Video which has a lower bitrate.

    Complaints. You need to give the power slider and record buttons some real pressure, and on a few occasions I’ve clicked record only to realize 1 minute later that it didn’t start. I understand that the designers didn’t want us turning it on or recording unintentionally, but this negates some of the speed advantage mentioned above.

    In a nutshell: The Flip isn’t for everyone, but at just $140 it’s hard to argue with its strengths. I take it everywhere now. One pocket for iPhone, one pocket for Flip.

    → 8:07 AM, Apr 24
  • Wii Transfer serial numbers

    The search phrase “wii transfer serial numbers” (or “wii transfer serials”) is consistently one of the top referrers from Google to this blog, usually pointing to “my post about the first 75 days”:www.manton.org/2007/02/f… I figure I get enough traffic that I should dedicate a page to this. (I’m the developer, by the way.)

    Here are the best ways to get Wii Transfer:

    • "Buy a copy":[www.riverfold.com/software/...](http://www.riverfold.com/software/wiitransfer/!) Just $19. Simple checkout with PayPal and you'll get an automatic email within minutes.

    • Write a review for a blog or magazine. "Email me":mailto:support@riverfold.com first and I'll give you a full license, even if it's just your personal blog.

    • Become a "beta tester":[www.riverfold.com/software/...](http://www.riverfold.com/software/wiitransfer/beta/.) From time to time, I need people to test the latest in-progress features. Free copy if you send any useful feedback on a beta.

    Thanks for your support! I hope one of these options appeals to you.

    → 8:57 AM, Apr 23
  • Unite the Party

    After Hillary won Ohio, Texas, and Rhode Island last month, I decided it was time to think less about actively supporting my own candidate, who clearly wasn’t going away, and more about the future of the Democratic Party and what it would take to come together when a nominee is chosen. I had been quick to defend Hillary on Twitter and in blog comments, but the more I considered the close race and the long month until the next primary in Pennsylvania, now finally here, the more convinced I became that a joint ticket is the answer to a unified party.

    Rather than bicker with my friends who support Obama, I changed my tone to emphasize our shared values and launched a new site: “unitetheparty.com”:www.unitetheparty.com/. I’ve been posting there regularly since March, and hope to build a group of like-minded Democrats to write on this topic, as well as a list of supporters who want to see a joint ticket happen.

    Thinking about the endgame of the race in this context provides an excellent backdrop for discussing the real issues important to voters. There’s still an opportunity to use these campaigns for good: setting the right tone against McCain and bringing awareness of the Democratic agenda to everyone.

    → 11:06 PM, Apr 21
  • Ollie Johnston

    Last week Traci asked me if I had heard about the animator who had died. Now of the 220 feeds I subscribe to in NetNewsWire, a full 60 of those are in a group called “Animation and Comics”, so I should have heard about any news from a variety of artist blogs or industry sources. But I’ve had my head down working on a number of programming projects – both Rails and Cocoa and just keeping up with the never-ending flood of email and Basecamp messages – so that NetNewsWire group was closed, and I was sadly ignorant.

    My first question to her: “Was it Ollie?”

    And of course it was. Ollie Johnston passed away at the age of 95, the last of Disney’s “Nine Old Men”. See the epic Cartoon Brew post for more. I had blogged about the death of his friend Frank Thomas in 2004, and also of colleague Ward Kimball in 2002.

    For those who don’t know me very well, and even many who do, I’ll let you in on a little secret. One day my boss is going to wonder why I don’t answer his emails, and it will be because I’ve thrown the computer in the trash, set my USB devices on fire, and returned to the first passion of my life.

    Sure, I have an old-school animation desk (old office 2005 and new office this year, next to computer stuff) and a bunch of paper and sharpened pencils to play with. Sure, I’ll still always love building software, designing user interfaces, and am grateful for the friends I have at work and in the Mac development community. Sure, I can’t support a family and giant mortgage doing silly portraits on the street corner.

    But damn it. Ollie Johnston died.

    → 8:59 AM, Apr 21
  • 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.

    → 12:29 AM, Apr 20
  • Fancy-pants productivity

    There are a few things in this post by “Ryan Norbauer”:notrocketsurgery.com/articles/… (via 37signals) that bother me. One is this idea that “code is meant to be read by humans first and computers only secondarily”. I understand what he is getting at, but even though I respect new advances in productivity, we have to be very careful to keep our core priorities. There’s a word for when the balance shifts away from the user and more to us as programmers: selfishness.

    Imagine two programs: one is ugly and hard to read, but it compiles and is bug-free; the other is beautiful and readable, and it also compiles and is bug-free. To the user they are identical. They both succeed.

    Now take those two and give them both identical beauty and readability, but accidentally break one so that it either does not compile or runs so horribly buggy and slow that it is useless to everyone. Writing code for other programmers to read isn’t enough. You have to start with code that works before you get all fancy-pants.

    This growing trend to raise beautiful code and programmer productivity above the performance or functionality of the final product is dangerous. The final product is what counts. Not how you build it, but what you’ve built: how it scales, how it performs, how it solves a particular problem.

    And sure, there are many times when I write slow, lazy code that doesn’t work well. But that’s a compromise you make when you have to meet a deadline, or because you aren’t sure how to optimize yet, not because you start out by deprecating user experience. If you believe Ryan, it sounds like there is a whole “movement” of programmers who toss any potential performance achievements out the window before they even get started.

    You can say that great products are complex, and so you need to focus attention on how the software is built and maintained. That is true. When I ported a large application from Carbon to Cocoa a few years ago I made the decision to do so because of future productivity.

    You can say that happy programmers create high-quality products. That is also true. When I am feeling most productive I am usually enjoying myself because the work environment I’m in is encouraging.

    But don’t put the practice of software development above the actual result, because to do so means you care more about writing code than solving problems.

    → 12:38 PM, Mar 14
  • iPhone SDK and NDAs

    “Craig Hockenberry half-joked on Twitter”:twitter.com/chockenbe… about the iPhone SDK non-disclosure agreement and it reminded me of one of my personal annoyances in the development community: we tend to take NDAs very seriously. I’ve always been impressed by how Scott Stevenson in particular can write thoughtful articles about Mac software development that go out of their way to tiptoe around unannounced APIs. In his “latest excellent introduction”:theocacao.com/document…. to the iPhone SDK, there are no less than 3 mentions of the NDA in the original post and comments:

    "Until that time, the SDK is under NDA and the apps cannot be distributed to the general public." (Scott Stevenson)
    "The iPhone SDK is very well done (can't say more because of the NDA)" (Florent Pillet)
    "To answer without getting into NDA stuff, let's talk about Mac OS X in general." (Scott Stevenson)

    I’ve also been hit by this community-killer. At WWDC last year I posted to Twitter about new .Mac features and it remains the only tweet I have ever deleted. I had this sudden paranoia that conference staff would kick me out of Moscone and revoke my ADC account. Silly.

    But let’s look at reality. Over 100,000 people have downloaded the SDK. This couldn’t be more different than WWDC, which effectively encourages discussion only while in San Francisco by requiring an investment of at minimum $2-3k between conference, hotels, food, and travel. The SDK by comparison is totally free to download.

    Put simply, how can Apple expect us to take an NDA seriously while at the same time they spread the applications and documentation covered under this NDA to every corner of the Mac universe?

    I’m not a lawyer, but this one seems legally ridiculous. There are a few issues handled by the license:

    • Don't distribute apps created with the beta SDK. That's fine, because there's no good way to do that anyway and giving everyone a level "June launch" playing field makes sense for both Apple and developers.

    • Don't rip-off Apple's ideas and use them in your own phone before the SDK ships. That's also fine, because I don't care about other phones and generally think Apple already has a insurmountable development platform advantage.

    • Don't talk about confidential capabilities of the SDK. This is the one I have problems with, because I question if something can be considered confidential if it is shared with 100,000 people.

    For years Mac developers have asked Apple for an official, closed mailing list to discuss APIs still under NDA. Maybe things would be different now if Apple hadn't refused that request, but with a release as mainstream as the iPhone SDK it's too late to try to control the conversation. I expect a healthy discussion of APIs and business practices to happen on blogs and Twitter and IRC and email, and that's how it should be.

    → 12:21 AM, Mar 13
  • STAPLE! in Austin today (year 4)

    Like independent comics and art? “STAPLE! is in Austin today”:www.staple-austin.org at the Monarch Event Center, off I-35 and 2222. I’ve been on the STAPLE! planning committee for four years now and have enjoyed watching our little show grow from its humble beginnings, but it’s still a completely non-profit, volunteer-led endeavor and we need your support to make it a success. Come join us anytime between 11am and 7pm (or “check the schedule”:www.staple-austin.orgguests/ for our featured session times), and then come back downtown later tonight for the after-party and live-art show at Red’s Scoot Inn (“flyer”:www.staple-austin.orgpromote/staple2008_afterparty.jpg).

    → 10:30 AM, Mar 1
  • Hillary podcast

    About once a year I like to put together a podcast episode around a theme, and this weekend that subject is Hillary Clinton. I think I’ve prepared it with fairness and respect, so even if you disagree please do the same. It’s both a personal expression and a way of capturing a moment.

    » Download (MP3, 6.2MB)

    » Subscribe in iTunes

    It’s about 13 minutes long. Enjoy.

    → 7:23 PM, Feb 18
  • Don&#039;t give up, shipping takes time

    I love the passion in “this comment from Wil Shipley”:theocacao.com/comment/5…

    "This app is all I'm working on. My entire reputation, my 25 years in the industry, my company is all riding on this release. I'm not going to just suddenly give up one day for no reason."

    I’m one of those people who will upgrade to “Delicious Library”:www.delicious-monster.com 2 on the first day and I know I won’t be disappointed. Although my indie app has a tiny fraction of the users Delicious has, I’m currently going through the same kind of delays.

    After months of quick, focused “Wii Transfer”:www.riverfold.com/software/… releases, I decided in November to skip a minor bug fix release and roll up all the outstanding issues into a bigger release with several important user interface improvements. You reach a point in this process where there is no turning back, and for every refinement to the product you see just how much more you could do. I think it’s that kind of constant, iterative polishing that Wil is going through now.

    If you are curious about the business of software development, don’t miss his “talk from C4”:www.viddler.com/explore/r… last year. In many ways I’m glad it took so long for the videos to go up; I’ve already forgotten half of the content so it will be fun to review the sessions.

    → 4:44 PM, Feb 9
  • Animation podcasts for a Super Tuesday

    Need something to listen to on your iPod while waiting in line to vote today? Try out these fantastic recent episodes of two of my favorite podcasts for animators and animation fans.

    “Spline Cast with Ed Catmull”:splinedoctors.blogspot.com/2007/11/o… I’ll be honest, I’ve followed the careers of John Lasseter and Steve Jobs a lot closer than I have for Ed Catmull, but this podcast shows pretty clearly the depth of impact Ed Catmull has had on the computer industry and the Pixar culture. It’s a great listen not just for anyone who cares about animation, but also for entrepreneurs who want a look into how you stay successful year after year.

    “Animation Podcast with James Baxter”:animationpodcast.com/archives/… There are many great animators, from well known independents who receive Oscar recognition to those who work 12-hour days in relative obscurity at a big studio, but there are only a handful of true masters of the art form. Baxter is one of my favorites. The powerful sequence with Moses and the burning bush and the mannerism of Belle fixing her hair were both always really memorable for me.

    Enjoy! Happy Super Tuesday.

    → 9:51 AM, Feb 5
  • MacBook Air and Europe trip

    The MacBook Air is the first Apple product to come along in years that I don’t want to buy. It looks great, the multi-touch trackpad is cool and unexpected, and I like Remote Disk. But it’s just not significantly different than a MacBook to me, and I don’t travel enough to make the thinness or weight really matter. To “upgrade” from a regular MacBook to an Air just seems wasteful.

    The “new Apple” has been doing a great job of eliminating duplicates in their product line (only one tower, only one of each size of iPod). If the Air had an 11-inch or 12-inch screen it would be a much easier sell because it becomes clear why the product exists: buy this if you want something small.

    For two months in 1999, my wife and I travelled through Europe with only a backpack each and a PowerBook 520c to share between us. That machine was very small (just a 9.5-inch screen), yet she did contract work for Apple on it and I coded and released new versions of Mac software, dialed up to the net via modem from hotel rooms and hostels in the days before wi-fi. It was much heavier than an Air but for traveling light it was still a great choice.

    It feels like Apple missed an opportunity at Macworld yesterday. I’m not particularly disappointed, though, since I wasn’t one of those hoping for a sub-notebook.

    → 3:38 PM, Jan 17
  • Give us a tablet already

    I’m going to skip the usual Macworld predictions and cut straight to the good stuff: Apple needs a tablet for the huge numbers of artists and creative professionals who have stuck with the Mac for so long, or who are finally coming back to the platform. I hope for this every year, but the evidence is starting to mount that yes, Apple is working on something.

    John Gruber doesn’t see a tablet happening:

    "But why force software UI's designed for traditional hardware form factors upon a totally different device? A successful tablet-like device from Apple, I think, would clearly be designed as a secondary computing device — a satellite attached and synched to a Mac or PC (probably, of course, through iTunes)."

    I think his reasoning is exactly correct if you think about a tablet as just a Newton or large iPhone, but as I say above I don’t think that’s the market at all. Honestly as much as I loved the Newton, the iPhone works great as a replacement. The primary market for a Mac tablet is the millions of people who look at the Wacom Cintiq and drool. An Apple tablet has to run full Mac OS X because it has to run Photoshop, Acorn, and Painter.

    (Both Gruber and Dan Benjamin also discuss predictions during the latest The Talk Show episode, just posted. While you’re listening, also check out the Hivelogic comprehensive podcasting guide.)

    So what about this: what if the MacBook sub-notebook and the tablet are one and the same? Imagine a beautiful slim MacBook with a detachable keyboard and touch-sensitive display, for example. Avoid the weird connections by making the keyboard Bluetooth only, with all the guts of the machine (including flash-based hard drive) behind the screen. I have a first-generation Toshiba Tablet PC and the hardware design is just bulky and terrible because they tried to make it all things to all people. A MacBook Nano-Tablet-Air could embrace “thin” and “tablet” and ignore everything else to achieve a truly great design.

    But who knows. We’ll see in about 30 minutes.

    → 11:31 AM, Jan 15
  • New and old posts about NetNewsWire

    “NetNewsWire is free”:inessential.com (congrats again Brent!) and reaction is coming in from other indie developers.

    “Rory Prior”:www.thinkmac.co.uk/blog/2008… “It’s hard to compete with a product that’s as well known and frankly as good as NNW, it’s damn near impossible to compete with it when it’s free.”

    “Paul Kafasis”:www.rogueamoeba.com/utm/posts… “When something is given away for free, its perceived value is lowered. If software is treated as valueless, it becomes much, much harder to sell.”

    Ultimately I don’t think it’s going to have a significant negative impact as far as devaluating other software (except of course other news readers) because most people paying attention should connect that it supports Newsgator’s core business model. But rather than debate the issue I searched my archives to see what else I had said about the product. It must be one of the most-blogged-about apps ever, right? I’m limiting it to 1 post per year.

    2002: “Moving to NetNewsWire”:www.manton.org/2002/09/m…

    2003: “NetNewsWire as a platform”:www.manton.org/2003/03/n…

    2004: “Google and the great apps to come”:www.manton.org/2004/12/g…

    2005: “Tabs are a hack”:www.manton.org/2005/05/t…

    2006: “Time for thinking”:www.manton.org/2006/07/t…

    2007: “New software releases (plus screencast)":www.manton.org/2007/06/n…

    2008: “New and old posts about NetNewsWire”:www.manton.org/2008/01/n… (you’re reading it!)

    → 2:29 PM, Jan 11
  • More on Kindle

    I received a lot of feedback after “I first wrote about the Kindle”:www.manton.org/2007/11/k… so here’s an update. I admit I’m still trying to understand the device; it has not immediately fallen into a spot in my routine the way the iPod and iPhone did.

    “Dan Benjamin”:www.hivelogic.com pointed out that it’s wrong to compare the Kindle and iPhone because they are two completely separate kinds of devices, and that’s true. But the fact remains that Amazon could have partnered with AT&T and required a monthly fee for connectivity. Instead they chose to eat that cost to provide a seamless user experience.

    “Willie Abrams”:willie.tumblr.com bought a Kindle and then returned it, unhappy with both the contrast on the device and the slow page turns. As I pointed out in my original post, the page turns are annoying, but they won’t ruin the device for most people.

    “Andy Ihnatko”:ihnatko.com wrote glowingly about the Kindle and spoke at length on MacBreak Weekly about the free wireless and adequate web browser. Personally I have found the web browser to be extremely poor and the slow refresh inappropriate for modern, interactive sites. I didn’t even realize it came with a browser when I ordered it, though, so I consider it a nice bonus.

    When I left town to take a week and a half holiday road trip with my family, I decided to leave the Kindle at home. After all, I already had my MacBook, iPhone, Nintendo DS, and a hardback book that would easily fill the week. The Kindle is small but it would just be wasted clutter in my backpack.

    This turned out to be a mistake. For one, I had spotty Edge coverage in middle-of-nowhere West Texas, and it would have been an interesting experiment to see how the Kindle’s EVDO faired in other cities. But more importantly, while checking blogs someone recommended a book that I was interested in. I clicked through to Amazon and noticed that it was available in Kindle format. It would have been the perfect opportunity to buy it and start reading right away.

    That is what the Kindle brings to the table. The hardware design is not an improvement over the Sony Reader (the Kindle’s keyboard remains a definite mistake), but the integration with Amazon and the convenient downloads from anywhere are both well implemented. I think Amazon has a history of tinkering in public view (home page design, shipping experiments), and the Kindle is no exception. They’re no doubt already working on version 2.

    → 8:20 AM, Jan 11
  • Rails on shared hosts

    “David Heinemeier Hansson writes in detail”:www.loudthinking.com/posts/21-… on the problems with Rails in shared hosts:

    "Most Rails contributors are not big users of shared hosting and they tend to work on problems or enhancements that'll benefit their own usage of the framework. You don't have to have a degree in formal logic to deduce that work to improve life on shared hosting is not exactly a top priority for these people, myself included."

    Although I’ve been building Rails apps for a couple years, and will continue to do so, I made the choice with “Riverfold”:www.riverfold.com to go PHP-only so that I could deploy on inexpensive shared hosts and easily move my sites. Fact is, you need to dedicate a significant portion of your time to being a system administrator if you run a Rails site.

    I find the general “we don’t owe you anything” attitude in the Rails community off-putting. What it means is quite simple: Rails is not a product, despite what it might look like when you “visit the web site”:www.rubyonrails.com/. This is fine and consistent with the opinionated nature of Rails (which from a design perspective is what makes Rails excellent), but it also means that features like backwards compatibility are not just ignored but actively discouraged. The message this sends is that the core team values their own personal productivity over the productivity of the general Rails userbase.

    Also, make no mistake, the performance questions surrounding Rails are directly related to the web shared host issue. Rails can’t be hosted in the same way that PHP is hosted because it takes so long for a Rails application to be initialized, requiring dedicated long-running app instances and an ever-changing array of “best practice” solutions starting with mod_ruby to FCGI to Mongrel to “Thin”:code.macournoyer.com/thin/.

    My friends and “co-workers”:www.vitalsource.com are no doubt sick of me bashing Rails (see “this post on the priorities of the community”:www.manton.org/2007/09/r…), but I still admire Rails and do want to see these problems solved. I would love to use “PotionStore”:www.potionfactory.com/potionsto… to power the Riverfold site, or to base my registration database and sales tracking in Rails.

    → 9:52 AM, Jan 10
  • Why I support Hillary

    Obama is passionate, thoughtful, centrist enough for broad appeal, and a brilliant speaker. If he’s the nominee I’ll support him fully with every bit of strength I have. There is something special about him, and it comes around rarely in a candidate.

    “Dave Winer wrote”:www.scripting.com/stories/2… “Obama, like Carter in 1976, may be our pennance for having re-elected Bush in 2004. We’re taking the medicine we deserve for having been crazy enough to re-elect someone who was so bad for us.”

    But what about Hillary? She’s part of the establishment, and I volunteered heavily for the Howard Dean campaign. Could I support someone as traditional as Hillary? As “Mike Cohen said”:mcdevzone.com/2008/01/0… “I oppose her very strongly, not only because of all the baggage she brings, but for her anti-progressive record.”

    And yet.

    “I posted to Twitter”:twitter.com/manton/st… on election night that something had changed between the Iowa vote and New Hampshire: Hillary had found her voice, and it surprised me. Turns out she knows what is at stake. I always knew she was a fighter; after 2000 and 2004, we need the Democrats to show some backbone again. But I think she’s been underestimated even more deeply than that, in her ability to speak to the core Democratic base while drawing upon her new experience and record in the Senate that most people aren’t familiar with yet.

    And then there is the woman factor. Some people will say this matters but they don’t really understand unless they have daughters of their own, daughters who will grow up and become teenagers, the defining moment of their lives, during a woman presidency. This is both personal and huge and it could spread like wildfire. For me, it tips the balance.

    My family is throwing its support — our money for donations, our phones for getting out the vote, and our voice — behind Hillary. Thank you New Hampshire for making this a real primary election again.

    → 10:08 AM, Jan 9
  • 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!

    → 6: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.

    → 12:41 AM, Dec 19
  • Holiday Wii Giveaway and Twitter

    A few months ago I was in Target and they had some Wiis in stock, so on an impulse I bought one. I’ve owned a Wii since launch day, but I had this idea to give one away for Christmas as an experiment to help promote Wii Transfer. I sat on the idea for a while, listened to feedback from others, and finally “rolled it out this morning”:www.riverfold.com/software/… with two methods to enter: web form (with field to notify a friend about the giveaway) and via Twitter (by sending a reply to @wii).

    Unfortunately there was a major snag with the Twitter idea. It turns out that @wii replies won’t show up in my Replies tab (or RSS feed) in Twitter unless the user posting the tweet is already following “twitter.com/wii”:twitter.com/wii. I now regret not making that a requirement, but I also know that it would have hurt the simplicity of entering via Twitter.

    So what’s the solution? For now, a combination of things. I am now tracking every tweet that contains “wii” (try it, there are some fun ones), which I will aggregate with the standard replies as well as results from a search on “Terraminds”:terraminds.com/twitter/ to fill in any of the tweets I missed. It’s all a bit cumbersome because the tracking results come through IM (luckily iChat transcripts are XML now).

    It feels very fragile, but hopefully I won’t miss any entries. There’s no cost to submitting multiple times, so consider sending another @wii tweet next week or entering with the web form to guarantee you’re in the drawing. If in doubt, re-read the “last line on the fine print”:www.riverfold.com/software/….

    → 12:18 AM, Dec 5
  • Kindle

    All we do at “VitalSource”:www.vitalsource.com is e-books, from working with publishers on converting their content to our format, to managing the delivery of digital files and building the web-based infrastructure to support it, and finally to designing and coding the Mac and Windows applications for reading and annotating books. My “Kindle”:www.amazon.com/Kindle-Am… arrived on Tuesday, the day after it was released, and here are my initial thoughts after using it over the Thanksgiving weekend.

    Out-of-box experience. Amazon really nailed the first-use experience. The Kindle came in a nice box and was pre-configured with my Amazon account. No syncing or setup necessary; you can start reading books immediately.

    Screen. If you haven’t seen an e-ink device — actually held one in your hands, like the Sony Reader — don’t bother “reviewing” it. The iPhone screen is beautiful and I would love to have a small Mac tablet, something even a little bigger than the Kindle, but for reading books, nothing beats e-ink. It’s in a whole different class, and this is one of the areas where the Kindle shines. (It says a lot that the first FAQ item in the Kindle manual is about how the screen “flicker” when flipping pages is normal, though. It’s a little distracting but not a show-stopper.)

    Connectivity. Amazon has been innovating with free shipping for years, so in a way it’s perfectly consistent to also offer free wireless connectivity. As a long-time Apple fan, I’m a little disappointed that Amazon is the one innovating with service plans, while Apple is stuck in the past with service contracts and high monthly fees with silly text message caps. I pay about $80/month for the privilege of using my iPhone; with the Kindle, I pay only for purchased content.

    Purchasing. You can buy books from Amazon on your computer or from the Kindle itself, and I’ve tried both. My first purchase was using Safari on my Mac, and less than a minute later the book “magically” appeared on my Kindle. Again, no cables or sync necessary; the Kindle notices a book purchase and downloads it wirelessly.

    Hardware. It couldn’t all be good news, could it? The button design is where the Kindle just falls on its face, and it’s bad news for both major areas of the device: the keyboard and the page navigation buttons. I just don’t see how they justified taking up so much room for the keyboard, because in truth you almost never need to use it. For the page buttons, try handing someone a Kindle for the first time and the first thing they do is accidentally hit next or previous page. It takes a while to train yourself on the best way to hold the Kindle.

    There are other things I could say — about DRM (unavoidable) or emailing documents to the device (clever) or the book cover (clunky) — but I want to keep this short. Despite it’s flaws, the Kindle is a good device, and it goes beyond being the first usable e-book reader to offer seamless purchasing and book delivery from Amazon’s large selection. It’s not as polished a 1.0 as the iPhone release was, but it’s a solid offering and more innovative in some ways. I’m looking forward to both reading books on it as a user and experimenting with ways to get other content on the device as a developer.

    → 10:10 AM, Nov 26
  • Scully, 1997 - 2007

    Scully
    → 10:01 PM, Nov 11
  • Android and getting real

    “Steven Frank”:stevenf.com/2007/11/t… on Google’s phone announcement:

    "Find someone, ONE person, with a unique vision. Lock them in a room with some programmers and a graphic designer. Twenty people, tops. Change the world. Quit re-hashing the same old bullshit and telling me it's new, exciting, or in any way innovative. Be ready to fail, many times, but for love of all that is holy take a stand on something."

    I heard about the Google phone consortium pretty much exclusively through Twitter, and the reaction seems about universal from the folks I follow (admittedly, half of them are total Mac geeks). I’m honestly not sure how the Google phone is relevant to me, but then again, I don’t like Gmail.

    Although this week’s “37signals post on personas”:www.37signals.com/svn/posts… isn’t about Android, some of the points are relevant to committee-led design:

    "I don't think you can build a great product for a person that doesn't exist. And I definitely don't think you can build a great product based on a composite sketch of 10 different people all rolled into one (or two or three)." [...] "Every product we build is a product we build for ourselves to solve our own problems."

    Not using your own product can turn into a real problem, and I realized after I bought an Apple TV that “Wii Transfer”:www.riverfold.com/software/… suffered from it. So I forced myself to use my own product instead, and that made all the difference. Plus, it was easy to unplug the Apple TV because the thing got so hot I was worried it would burn the house down while I slept.

    → 8:45 AM, Nov 9
  • Ironcoder (now with prizes!)

    A new “Ironcoder launches today”:ironcoder.org/blog/2007… with a longer hacking period and a nice iPod touch as the prize. I’ve come close to participating in the past and just haven’t had time. Although I don’t expect that to change this week, I’ll be keeping an eye on this one to see what the theme is. It could be a great opportunity to get more hands-on with some of the new Leopard APIs.

    → 8:38 AM, Nov 9
  • Five days, one paragraph

    So I am 5 days or 700 characters in to my Story 140 experiment. Even though separation between each tweet is only implied, this is the end of the first paragraph, and on the web site I will be formatting it that way.

    If you were to put the ideas you have in life into two buckets – and I don’t meant the little one-off ideas, I mean the big ones you care about and could passionately defend – you might divide them into ideas which are truly great, and ideas which sound great. The key here is to avoid the ideas which are neither great nor which sound particularly good at all. It’s too early to know which one of these idea types Story 140 is, but at this point I’m leaning toward the “sounds great” side.

    Put simply, writing something 140 characters at a time is exactly opposite to the way I normally write. It is much more challenging than I thought, and after 2 days I immediately wanted to start cheating and writing a bunch ahead, so that the story flowed properly.

    I’ll keep at it, but I did realize that I have to at least partially plan what the story is about. I have only a vague idea in my head, but as I give it some more thought I will probably jot down notes so that when it comes time to write the tweet each day I know a little bit about where it is going. Even so, please don’t expect greatness from this work of fiction. You will be disappointed.

    On the plus side, I have received feedback (see “Ryan Irelan’s post”:www.ryanirelan.com/past/2007…) that it would be great for multiple people to contribute. As I said about NaNoWriMo, what makes some of these projects work is the community. I’d love to open up this concept, and I can turn the web site into more of an aggregator of sorts. If anyone has suggestions, please email me.

    → 2:34 PM, Nov 6
  • MarsEdit guilt trip

    In which I am the last person to point to the “MarsEdit 2.0 release”:www.red-sweater.com/marsedit/… I figure if James Duncan Davidson is “just now purchasing MarsEdit”:duncandavidson.com/archives/… I don’t feel bad waiting so long to say good things about 2.0. (Rumor has it Duncan used to post to his blog with a set of Ant XML build files that he would run with custom Lua scripts as part of his Lightroom workflow.)

    Seriously, though, it’s easy to believe that Daniel is right when he “talks about the potential for Mac desktop clients”:www.austinheller.com/2007/11/i… MarsEdit had a great start back in the early NetNewsWire days, and 2.0 shows that it has a strong future as well.

    At lunch with “Brent Simmons”:inessential.com and the “Rogue Sheep”:www.roguesheep.com guys after C4, just before I left Chicago, we joked that what MarsEdit really needs is a Dock badge with the number of days since you’ve last posted to your blog. A big red guilt trip icon staring you in the face: “25 days since you last blogged, slacker!”

    → 12:39 AM, Nov 5
  • Story 140

    November is National Novel Writing Month (NaNoWriMo), but I’m way too busy to participate this year. (See “my wrap-up post from 2005”:www.manton.org/2005/12/5… for the last time I did it.) I would love to write something, though. Maybe I should consider “Ficlets”:ficlets.com or a similar site, but I’ve had Twitter on the brain lately. Why not take the embracing constraints approach and write a story through Twitter?

    Introducing “Story 140”:www.story140.com/, a new web site and “Twitter account”:twitter.com/story140 where I will be writing a short story in 140 characters a day for 140 days. To make things interesting I set a few rules for myself (listed on the site), including that every tweet must be written the day it is posted and be reasonably grammatically correct while still exactly 140 characters. (I say “reasonably” because there will be the occasional use of incomplete sentences, and some people may question my spelling of dialog without the ending “ue”. That must be influenced by years of programming the old Mac toolbox.)

    Even though it is extremely serialized, my hope is that the resulting story will actually be readable. We’ll have to see how successful I end up being at that goal. It’s already more challenging than I expected; the first tweet took me about 10 minutes to write, and the second one even longer.

    → 3:06 PM, Nov 3
  • How I use Twitter

    “Twiterrific 3.0”:iconfactory.com/home/perm… is out, with a new price of $15 or free to use with ads. The ads are very effective and difficult to ignore, but really they don’t take anything away from the Twitter experience. The new version is great, though, and I’ll be sending my $15 to Icon Factory sometime in the next few days. “As Fraser Speirs said”:speirs.org/2007/11/0… it’s a small price to pay to be connected to friends and colleagues.

    I post to Twitter much more often than I blog now, and I think I owe some of my followers an explanation. I made a rule for myself early on to only follow people who I have met in real life. I’ve only made a couple exceptions to this, and none recently. It keeps the flow of tweets easier to manage and relevant.

    So if you follow me on Twitter and wonder why I don’t return the favor, that is why. You probably have interesting things to say, so say hi to me at some future conference so I can add you to my list. I’ve actually been thinking about taking it one step further and protecting updates, because I tend to post about what (to this blog) have been traditionally private matters. Jury is still out on that decision.

    The following numbers are interesting, though. I only do very basic Mint stats for this blog (I just care about referrers, not number of readers), but it does make me wonder how many people read this blog. If you’re reading this, add a comment to this post. (Haha, gotcha! I don’t have comments.)

    → 11:20 PM, Nov 2
  • Bush veto

    Yes, it’s a politically-themed post. Probably the only one before 2008, so don’t run away just yet.

    The Bush veto of the bipartisan children’s health care plan a few weeks ago really made me angry, but it wasn’t until “Justin Miller responded”:twitter.com/incanus77… to “my tweet”:twitter.com/manton/st… that I started to think about why. Here’s the reason.

    When Bush was elected in 2000, I expected this kind of stuff from him. Vetoing stem cell research? Killing children’s health care funding? Sure, par for the course for this Republican. But then 9-11 happened and everything changed. The war. Our president’s priorities changed.

    Bush got a free ride from the media during the 2000 election, and again after 9-11. He would make the most incompetent and clumsy mistakes and yet be cut slack because, frankly, expectations are just so much lower for him than any other president in recent history.

    At some point in 2004, opinion started to shift, led by folks like Howard Dean (who I’ve “written about before”:www.google.com/search). Eventually, after Bush won re-election, there would be enough anti-war momentum to matter. And that brings us up to now and this veto.

    Everyone is focused on the war. Everyone understands the significance, the mistakes. Most of the country wants it over but we know that it’s complex, and the consequences for any given action will be felt for a decade. Compared to the lives lost in Iraq and the harm done to the stability of the Middle East, the rise of a new generation of terrorists – what does a health care bill matter? Is it worth fighting for?

    Democrats in power by a slim majority probably think they have to choose their battles, have to give in on some issues so they can hold on to the important ones, like the war. But I say no. The only thing that works against this stubborn ass in the White House is to take the fight to him. Cut him off at every turn. Don’t give him a freakin' inch. Call for an override vote again and again.

    Every. Single. Day.

    That’s how you win. You put people on the ground in every state – organizing, protesting, getting out the vote. You put letters in the hands of our representatives – email, blogs, editorial, flyers. You put a loud voice to what you feel and never, ever back down.

    → 9:48 AM, Nov 1
  • Wii Transfer 2.5.2 and Leopard

    Happy Halloween! “Wii Transfer 2.5.2”:www.riverfold.com/software/… is now available. This is probably one of the most difficult bug fix releases I’ve done. Full changes are in “the release notes”:www.riverfold.com/software/…releasenotes/, but the biggest stuff includes fixed Leopard UI glitches and a new 2-pass encoding that should result in much more consistent movie streaming quality. Along the way I touched most of the corners of the product, including many hours of trial-and-error debugging the Flash FLV player component.

    While testing Wii Transfer on my TV the other day I had a moment to reflect on how this product has evolved. What started as a one-weekend hack has grown into something quite a bit more complex. It has a few rough edges, sure, but I’m proud of this little app and how I’ve been able to put a simple UI on all these different technologies (embedded web server, HTML/JavaScript/Flash UI, MP3 and FLV conversion, iLife integration, etc). I have a few new features planned and in various stages of development, but I think the just-released 2.5.2 is going to start a trend of refinement; there’s a lot I could do to improve the movie conversion and streaming experience before introducing anything radically new.

    So, Leopard. I had originally planned to just wipe my old Leopard seed partition on the MacBook and test the GM, but at the last minute I dove full in and did an upgrade install on my primary machine, the Mac Pro. I have nightly SuperDuper clones just in case, but the upgrade was completely smooth. It’s a great OS foundation and I can’t wait to see what other developers have been working on.

    → 10:54 PM, Oct 31
  • Wii Transfer on macZOT

    After I shipped Wii Transfer 2.5 I decided to start spending a little time promoting the product. Every month or so I’ll do some small thing to improve sales. Last month that was a “press release”:www.riverfold.com/software/… followed by the “ad on The Talk Show”:www.manton.org/2007/10/t… and next month I’ll be giving away a brand new Nintendo Wii as a holiday promotion.

    Today Wii Transfer is on sale at “macZOT”:www.maczot.com for the incredibly low price of just $9 (half off!). To be honest I have mixed feelings about these kind of promotions, and the first time macZOT approached me about it I declined. I worry that it can reinforce a message that all software should be cheap – that even $19 is too expensive – but on the other hand it’s great exposure to an audience that might not otherwise hear about Wii Transfer.

    Lisa at macZOT has been great to work with, letting me set the price (even though I get a small fraction of what a normal sale would be, I felt it was important to do the promotion to its fullest and go below $10), and making sure macZOT pings my backend script so that serial numbers go out to customers right away. I know people can be frustrated if they have to wait to receive the product, and I also have a new serial number lookup form on the site that ties into all of this quite nicely.

    It’s a fun experiment. If you’ve been thinking about purchasing Wii Transfer but thought it was too expensive, head over to macZOT to pick up your copy. The “discussion page”:maczot.com/discuss/ will probably have some comments too.

    → 9:01 AM, Oct 17
  • Lowbrow Monster Mash

    Late notice, but I’ll have a watercolor piece in tonight’s Monster Mash art show at the Lowbrow Emporium on South Lamar. If you’re in Austin, drop by between 7 and 11pm and say hi. (Address and other details on “the poster by Jason Chalker”:austinsketchsquad.blogspot.com/2007/09/t…) The art is from participants and friends of the Austin Sketch Squad, some of whom will be doing live art at the show. There will also be free beer and candy!

    I snapped a “photo of my desk with art stuff”:www.flickr.com/photos/ma… while I was preparing for the show. I forgot to scan the final art, which sadly didn’t come out nearly as nice as my first sketch, but I’ll get a picture of that tonight. It was fun to work on and a nice break from late-night programming this week.

    → 9:08 AM, Oct 13
  • Welch on iPhone ringtones

    Ambrosia Software’s “Andrew Welch in a TUAW interview”:www.tuaw.com/2007/10/0…

    "The tack they are taking with the ringtones, though, is not 'We'll provide such great ringtones that you'll want to buy from us' but rather 'This is all you're ever going to be able to use, too bad if you want to use something else.' I think they took a winning formula, and got it entirely backwards."

    This is the most disappointing part of what Apple is doing. Even with the iTunes Store, when they had to lock down the songs to appease the music industry, they still thought about the user: songs on 5 machines, unlimited iPods, multiple iTunes accounts on the same machine, great selection, and effortless buying experience. I can wait for a real iPhone SDK (WWDC 2008 please Apple kthxbye), but Apple of all companies should not let corporate deals needlessly cripple the ringtone user experience.

    → 10:38 AM, Oct 3
  • The Talk Show ad and porting to Windows

    Episode 11 of “The Talk Show”:www.thetalkshow.net is up, and I’m happy to say that “Wii Transfer”:www.riverfold.com/software/… is this week’s sponsor. Even if you’ve been subscribed since the first show, click over to see the new site design by “Airbag Industries”:airbagindustries.com/. It’s beautifully done and I tried to create an ad graphic that feels at home there.

    For the Wii Transfer ad text I included “Only for Mac”, partly to discourage any Windows listeners from clicking and to set expectations that Wii Transfer is not a web site, but also because after a decade of being ignored I think Mac users like to be reminded that there is a bunch of great software just for them.

    Earlier this month “Daniel Jalkut wrote about the unlikelihood of MarsEdit for Windows”:www.red-sweater.com/blog/394/…

    "I love writing software for the Mac. If I had to write software for another platform, I probably wouldn't be nearly as interested in doing it. Heck, I might work more on becoming a musician, or a designer, or one of the other many trades that I have an interest in. For that reason, the chances of MarsEdit for Windows are almost nil."

    I love that Mac indies are receiving so many “what about a Windows version?” requests. I get similar emails every couple weeks about Wii Transfer for Windows, and luckily there are a couple Windows or open source alternatives that I can point people to. (Some of them are even cross-platform and available for Mac, but they are of the “double click this Java .jar file” variety, so I don’t generally consider them direct competition.)

    It used to feel strange getting these requests. I would respond with “maybe” and “unlikely”, suggesting that it’s probably not going to happen but leaving open the possibility, as Daniel did when he said “almost nil”. Then I realized — who am I kidding? — I’m never going to port this to Windows regardless of demand. Never. “With the right team”:www.vitalsource.com I enjoy working on cross-platform apps, just as I appreciate meetings, planning, and the other formalities (in moderation) that come with a more corporate environment. But Wii Transfer isn’t about any of that; it’s my vacation from the real world, and on my time I use and build for Macs.

    Also read the Airfoil for Windows section of “Ars Technica’s interview with Paul Kafasis”:arstechnica.com/journals/… from February.

    → 1:28 AM, Oct 1
  • Using Acorn

    I have a copy of CS3. Photoshop, Illustrator, and Flash are all permanently in my Dock. If you do any graphics or animation work, you pretty much need these tools, in the same way that anyone who does any kind of corporate writing needs Word.

    But truthfully, I haven’t had Microsoft Office installed for about a year (I use Pages or Leopard’s QuickLook to read other people’s Word documents), and I see a similar fate for some of the big Adobe apps. Despite “what some people have said”:theocacao.com/document…. over the years, there will never be a permanent replacement for Photoshop – it is too powerful, does too much – but there could be a healthy market of smaller, focused tools that tackle one piece of the Photoshop puzzle.

    “Flying Meat’s Acorn”:www.flyingmeat.com/acorn/ is the first of those tools that actually delivers. For the most part I can use Acorn as if I was using Photoshop. Keyboard shortcuts for switching tools, selection, basic layer manipulation – it all works.

    I’ve been testing Acorn by working on some new UI mockups, a task it seems particularly well-suited for. One of the most refreshing things has been using a text tool that renders text just as it would look in a normal NSTextField control. Photoshop has a few anti-aliasing settings, but nothing that exactly matches the normal Mac OS X rendering, which makes mockups that mix and match screenshots from Interface Builder and new text look out of place.

    As a 1.0, this is a very solid app, and most importantly it gets all that non-delicious stuff right. It would be easy when writing a Photoshop competitor to focus on the fun stuff – Core Image filters or whatnot – so it’s nice to see Gus didn’t gloss over the basics.

    So what’s missing? After using it for a couple weeks for real work, the only things I am particularly missing are layer groups (totally understand why he left those out for now), Save for Web (which I hear is coming shortly), and Copy Merged (did I miss it?). And the big one: Open/Save for Photoshop files. It doesn’t need anything fancy in the .psd files, just the same features of a .acorn file to allow a designer to move between the apps if necessary.

    Right as I’m about to post this, “Pixelmator finally ships”:www.tuaw.com/2007/09/2… I’ve only spent a few minutes with it, but it also looks pretty competent. Time will tell whether it holds up for real work as well as Acorn has for me.

    → 1:18 PM, Sep 25
  • Wii Transfer 2.5

    This morning I finally rolled out “version 2.5 of Wii Transfer”:www.riverfold.com/software/… the most significant release of the product yet. It probably deserved a 3.0 label slapped on it, but I like how all the 2.x releases revolve around the sharing features (sending movies, music, and pictures to the Wii via the Opera browser). Besides, I have a special set of entirely new stuff planned for 3.0.

    So what’s new? Movie streaming is the big one. You can now drag and drop movie files to convert to Flash Video format, which Wii Transfer’s web server will happily stream up to your Wii. It works surprisingly well considering the Wii has such limited memory and no hard drive. Last night I even tested with feature-length movies.

    Other new features include background music for picture slideshows (both MP3 and AAC) and bookmark sharing, so that you can browse your Safari or Firefox bookmarks on your Wii to easily visit those sites. The “release notes”:www.riverfold.com/software/… page has more of the details.

    I’ve also bumped the price up to $19, where I expect it to stay for some time. One way I like to think about the price of Wii Transfer is in relation to another common purchase from Wii owners: games. It’s still less than half the price of a new Wii game.

    Special thanks to the beta testers who provided feedback. There are still a number of things about movie sharing that I’d like to polish up, so additional minor updates are likely. I often use the “Wii account on Twitter”:twitter.com/wii to post these and other announcements.

    → 11:41 PM, Sep 20
  • Rails and Mac dev communities

    “Damon Clinkscales has a write-up”:damonclinkscales.com/past/lone… of the Charity Workshop that took place before the Lone Star Ruby Conference in Austin a couple weekends ago. I skipped the conference and attended these tutorials instead, enjoying some great talks by Marcel Molina, Bruce Williams, and 6 other speakers all packed into 4 hours. I definitely picked up a few good tips on Ruby blocks and ActiveRecord, but I was not-so-secretly relieved that I didn’t attend the full conference.

    “Since brunch on Sunday”:www.flickr.com/photos/di… after the conference, where I got to hear another wrap-up from co-workers, I’ve been thinking about why. Why did I sell my RailsConf ticket and book a flight to Chicago for C4 instead? Why skip a cheap Ruby conference practically in my own backyard? Why have I whittled my Ruby-themed blog subscriptions down to just a few from dozens?

    Now I know: it’s about the difference in the communities. The Mac developer community is all about building unique apps, crafting an excellent user experience, and the “indie culture”:www.al3x.net/2007/08/c… of building something small and useful. The Rails community by contrast seems focused on how few lines of code a controller method is. I’m lucky to work with people who care about that stuff, because it often does yield better applications, but I just don’t wake up in the morning excited about rewriting code, so why would I leave my family for a few days to hear someone talk about it?

    There are many kinds of programmers. People who have hacked their whole life, dropping out of school to sell software; traditional developers with a CS degree and big company background; and even fine arts majors who fell into programming by accident as a way to build web sites. Based on that background, or what direction their passion takes them, I believe there is a balance between joy for the act of writing code vs. the pride in seeing the final product, and each programmer leans to one way or the other.

    For Rails developers, at least many of the leaders in the industry who came from or were inspired by the extreme programming methodology and test-driven development, it’s the former: the art is found in the lines of code – how efficient can the logic be, how DRY, how RESTful.

    For Mac developers, not just the “Delicious Generation”:www.rogueamoeba.com/utm/posts… but old school Mac developers as well, it’s the latter: the art is how the final product looks and behaves – being inspired to build something simply because you used another application that was great.

    Cutting it this way allows me to see two things very clearly that were confusing before. It puts specifics to why I’ve drifted further away from the Rails cutting edge, and it explains why I get so annoyed with some of the newer crop of Mac developers who proclaim “bindings”:cocoadevcentral.com/articles/… and garbage collection as beautiful gifts for programmer productivity even though they have no added value for the user experience.

    Rails is a great framework, and I will continue to enjoy switching gears to write web apps in between my Mac projects. But I’m not going to tune back into that community until there is an equal focus on the bigger picture as it impacts the user (more scaling, more UI best practices), or whatever the next big thing to hit web apps ends up being.

    → 1:11 PM, Sep 17
  • Not a C4 wrap-up post (iPhone!)

    Soundtrack for this blog post: “The Touch”:phobos.apple.com/WebObject… from the 1980s Transformers feature.

    Yesterday Apple announced new iPods, plus cool stuff like the Starbucks integration and iTunes Wi-fi Store. I was out at lunch and errands, so I followed the announcements on my iPhone with Safari and Twitter. If the new store had been available, I probably would have bought some music too.

    “Dave Winer had mixed feelings about the new stuff”:www.scripting.com/stories/2… but likes how the iPod is evolving to be its own full-featured client:

    "They are interesting if only because they illustrate so clearly that it's possible to get content onto the iPod directly, without synching, without tethering to a laptop or desktop computer. I think the users will love this, and it will quickly become the primary way music gets on the device."

    The $200 price drop on the iPhone was a surprise. My first thought: Apple is totally playing to win. With such an aggressive price drop, they plan to own the high-end market, and maybe some of the middle too. It never crossed my mind that I was ripped off paying $599 until I started reading “comments in this TUAW post”:www.tuaw.com/2007/09/0… These are the same kind of people who say “I like your software but I wish it was free” to indie Mac developers.

    The iPhone was expensive at $599 but worth it, and the new price doesn’t change that fact. It’s allowed me to work even more remotely, stay connected to friends, get unlost using maps in a new city, and greatly improve how I use a mobile phone.

    (I wrote most of the rest of this blog post a couple weeks ago. It was originally titled “1000 emails in your pocket”, but that was before I saw Craig Hockenberry’s excellent “Benchmarking in your pants”:furbo.org/2007/08/1… blog post, which while not as directly accurate to Apple’s original iPod marketing, was much more funny.)

    I’m not going to post specifically about the sessions at C4 yet, because anything I say would be redundant against posts from “Alex Payne”:www.al3x.net/2007/08/c… “John Gruber”:daringfireball.net/2007/08/c… and “Mike Zornek”:blog.clickablebliss.com/2007/08/1… among others. Instead I want to follow up “my original iPhone report”:www.manton.org/2007/07/i… with how the phone performed during travel.

    There were a lot of iPhones at last month’s C4 conference. I had such good luck using the iPhone at the airport and on the train and walking around Chicago, I took my MacBook’s dead battery as a sign to stick to the iPhone all weekend, using it exclusively for email, Twitter, blog reading, and general web surfing. I responded to a handful of emails, used SMS for sending tweets, and hit the iPhone version of Newsgator Online (synced from my NetNewsWire subscriptions) for news and blogs.

    Sure, I was jealous of everyone running Twitterific while I had to refresh m.twitter.com manually, but overall the experience was great. As “Matt Haughey has blogged about”:a.wholelottanothing.org/2007/07/0… the iPhone is a computer, and 3 full days of use proved to me that it’s extremely competent.

    Fast-forward to two weeks ago and I went on a weekend road-trip to Dallas with only the iPhone, confident I could respond to email if needed. Same thing over the long Labor Day holiday: drove 7 hours both ways for 2 nights in Louisiana, easily able to follow up on bugs from a recent software release without my MacBook.

    Of course there are a few rough edges: I don’t do significant server-side spam filtering, so deleting spam on the iPhone is getting tedious; paying a premium for SMS is annoying and counter to the unlimited web bandwidth; and my typing is only now to the point of pretty good. But otherwise any limitations with the built-in software are quickly becoming solved with new 3rd-party offerings, which have blossomed faster than most of us expected in no small part thanks to “Nullriver’s excellent installer”:iphone.nullriver.com/beta/.

    Now the the only question is: what do I do with my “free $100”:www.apple.com/hotnews/o…

    → 2:21 AM, Sep 7
  • Wii Transfer in PMC auction bundle

    Seth Dellingham is “auctioning off a bunch of great Mac software”:www.truerwords.net/fundraisi… for the Pan-Mass Challenge, raising money for cancer care and research. “Wii Transfer”:www.riverfold.com/software/… is included in the 2nd bundle, full of games and useful utilities. Some of the gems I noticed in the list include Black Ink, SketchFighter 4000 Alpha, Fission, Tangerine, BetterZip, FlySketch, Knox, Overflow, Pukka, and SuperDuper, among 40 others. “Click over to the eBay auction”:cgi.ebay.com/ws/eBayIS… for the complete list before the auction ends tomorrow.

    → 8:50 AM, Aug 21
  • Ta-da List export to TaskPaper

    I’ve been using “Ta-da List”:www.tadalist.com for the last couple of years for all my to-do lists. I have about 100 lists and love the speed of adding new items and some of the subtle smarts it applies to sorting recent lists and cleaning up completed ones.

    But I’ve been on the lookout for a desktop app. OmniOutliner has become a bit bloated and all the Getting Things Done apps seem so structured. Along comes “TaskPaper”:hogbaysoftware.com/projects/… today and there’s a lot to like. The plain text file format is refreshing and nicely open.

    I wrote a Ruby script to export all my lists from Ta-da into TaskPaper so that I can give it a proper workout. It makes a new document (with a single project) for each list it finds. Make sure to install “Hpricot”:code.whytheluckystiff.net/hpricot/ first – there’s no official Ta-da List API so we need to parse HTML a little.

    Download: “tadalist_taskpaper.rb”:www.manton.org/software/…

    Instructions:

    • Open the file in your favorite text editor and change TADALIST_HOST to whatever your account is.

    • Make sure Safari is running and you have logged into Ta-da. The script reads the cookie value from Safari's Cookies.plist so that it doesn't need to simulate a real sign-in.

    • Run from the command line. It will create the new files in the current directory.

    • You will see short status messages for what it is doing. It's broken if there are any Ruby exceptions.

    Enjoy!

    → 1:38 AM, Aug 4
  • 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.

    → 9:28 AM, Aug 3
  • Professional email app

    Ignore that this post is a week late. While I was out sick last week there was a great discussion across blogs about email clients, starting with “Brent Simmons”:inessential.com and then to “Paul Kafasis”:www.rogueamoeba.com/utm/posts… while passing through several good blogs in between.

    Some of my additional gripes about Mail:

    • Text editor is terrible for text-only email, especially when quoting.

    • UI refresh glitches with mailbox unread counts.

    • Sluggish showing new smart folders.

    • Search is not powerful enough without making smart folders.

    • Overall stability problems.

    I started writing an email client last year and worked on it in my spare time for a couple of months before abandoning it. It added a few new twists that other clients don't have, including a server component in an attempt to embrace the benefits of both Gmail (access anywhere, automatic sync) and a native Mac client (better UI). No one I described it to thought they needed it, and I gave up before the UI was polished enough to actually show. Turns out the server piece was too complex and no matter how I juggled the numbers, it just didn't seem a profitable endeavor.

    The recent discussions really make we want to take some of the core pieces (great performance for huge amounts of mail and a tag-based filing system), rebuild it on top of IMAP instead of my custom web services gateway, and see what happens. But I probably won’t. Email clients are a tricky thing to get right, and I don’t have time right now to make it perfect.

    I have no doubt that there is a market waiting for a great email client. You don’t need to compete with Mail.app, you just have to appeal to anyone who has been burned by an email client before. People who are serious about email.

    → 3:42 PM, Jul 13
  • 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.”

    → 11:58 AM, Jul 2
  • Wii Transfer 2.3

    I finally released “Wii Transfer 2.3”:www.riverfold.com/software/… late last night. This is the version I demoed in “my interview with The Unofficial Apple Weblog”:www.tuaw.com/2007/06/1… The most notable changes are AAC support, an improved music player interface, and better use of the Wii remote buttons.

    This release sports a new icon, designed by Jordan Langille of “OneToad.com”:www.onetoad.com/. As much as I enjoy tinkering with Photoshop and Illustrator, I knew I didn’t have time to do a quality icon. I wanted something fun that still captured a part of the original icon, and this concept has really grown on me since it was finished almost 2 months ago.

    I also took this opportunity to refresh the “Riverfold web site”:www.riverfold.com/software/… design a little. Just don’t tell anyone that it still uses HTML tables.

    → 8:05 AM, Jun 20
  • 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.

    → 7:50 AM, Jun 18
  • New software releases (plus screencast)

    Today is a good day to release software. “MarsEdit gets a nice update”:www.red-sweater.com/blog/346/… and “NetNewsWire 3.0”:ranchero.com ships. At VitalSource we also just released “Bookshelf 4.6”:www.vitalsource.com/index/boo… today, which lays the foundation for media-rich textbooks and adds a highlighter rating UI for any subscribed highlighters you have. This data will bubble up in a few places in the future to allow you to discover people and books, although for now it’s one-way.

    Here’s a “short screencast of the rating interface”:www.manton.org/screencas… (12 seconds, 700k). The star widget is a simple Cocoa control that hits a web service in the background. It was fun to write and surprisingly not very much code.

    → 8:20 PM, Jun 5
  • The /Applications social network

    Brent Simmons, from a “TUAW interview”:www.tuaw.com/2007/06/0…

    "One of the things I love about being a Mac developer is getting to meet the folks who make the apps I use. In a way, my /Applications folder is also my social network. Which is cool."

    I never thought about it that way, but it’s definitely a great aspect of the Mac developer community. I hope to add a few more people to my /Applications social network next week at WWDC.

    I’ve been to a bunch of WWDCs now, but I’m particularly excited this year because it will be the first time I’ve attended as representing both a “large-ish company”:www.vitalsource.com and an “independent one-man shop”:www.riverfold.com/.

    I will be carrying VitalSource business cards in my wallet, but I also hope to have a printed batch of Wii Transfer serial numbers to hand out. I know a lot of Mac developers have a Nintendo Wii and it’s a shame I haven’t given out more copies. If you have a Wii and see me (I look “something like this”:www.manton.org/me/), please get my attention so that I can correct this oversight.

    → 1:59 PM, Jun 5
  • Learning from Rails design

    Since version 2.0, “Wii Transfer”:www.riverfold.com/software/… has had a built-in web server for serving music and photos to the Nintendo Wii. The server was written in Cocoa and the code became very unwieldy as I continued to add features. Dozens of methods for processing different parts of the URL, and many if statements for conditionally branching based on the URL, splitting the URL parameters, and more.

    The code looked something like this (only worse):

    
    
    if (path startsWithSubstring:@"/albums") {
    
    [self processAlbumsRequest:path];
    
    }
    
    else if (path startsWithSubstring:@"/artists") {
    
    [self processArtistsRequest:path];
    
    }
    
    else {
    
    // ...
    
    }
    
    (void) processAlbumsRequest:(NSString *)inPath
    
    {
    
    // split out the parameters and request extensions from the URL path
    
    // ...
    
    if ([e isEqualToString:"xml"]) {
    
    // ...
    
    }
    
    else if ([e isEqualToString:"html"]) {
    
    // ...
    
    }
    
    }
    
    

    Multiply that times 10 for all the different URLs that Wii Transfer knows how to process, and you can see how it worked fine for a couple simple things, but quickly became a mess as I added features.

    For the upcoming version 2.3, I redesigned most of the URLs to follow a common structure, patterned after the default URL syntax that Rails uses: /controller/action/id. Now, instead of if statements, I dynamically route the URL requests using NSSelectorFromString() and performSelector:withObject:.

    Consider this code (as above, simplified from the real thing):

    
    
    // extract the values from /controller/action/id URLs
    
    NSArray* pieces = [[path stringByDeletingPathExtension] pathComponents];
    
    NSString* controller = [pieces objectAtIndex:1];
    
    NSString* action = [pieces objectAtIndex:2];
    
    NSString* param_id = [pieces objectAtIndex:3];
    
    // call a method named controller_action, passing it the id
    
    NSString* sel_name = [NSString stringWithFormat:@"%@_%@:", controller, action];
    
    SEL method = NSSelectorFromString (sel_name);
    
    [self performSelector:method withObject:param_id];
    
    

    Now if I need to invent a new URL, say “/tracks/play/1234.mp3”, all I have to do is write the implementation for that method:

    
    
    - (void) tracks_play:(NSString *)inParamID
    
    {
    
    // ...
    
    }
    
    

    The web request calls through to this new method without any additional glue code, in this case passing “1234” in the single parameter.

    (The underscored method signatures aren’t very Cocoa-ish, but this is actually a plus because I can quickly spot the chunk of the controller that processes a set of requests, and I like that they read just like the URLs. I’m also currently using a single controller instead of having separate controller objects for the different types of requests, but I may expand that later.)

    This convention has also allowed me to simplify all the URLs that Wii Transfer uses. Other examples include “/covers/search/U2” or “/artists/show/5”. I’ve eliminated a bunch of code, and it fits nicely with how I serve application resources and the start of a HTML template system.

    Could it be taken further? Sure. I remember in the Mac OS 9 days building a web interface for a product using only compiled AppleScript scripts stored in the resource fork. Lately, folks like “Gus Mueller”:gusmueller.com/blog/ and Adobe’s Lightroom team have been doing interesting things with “embedding Lua”:www.sqlabs.net/blog/2006… I don’t want that level of extensibility yet, but it seems like a logical next generation when I outgrow even this new web architecture in Wii Transfer.

    → 12:46 AM, Jun 4
  • Apple announcements and Flash video

    If you are wondering why I haven’t posted here in over a month, it’s because I’ve been getting my writing fix “over on Twitter”:twitter.com/manton, in 140 characters or less a couple times a day. Still trying to figure out the best way to integrate that experience into this site. I also have the usual queue of blog post drafts that will roll out here when I have time.

    Meanwhile…

    A bunch of really interesting things hit today. Microsoft Surface (can’t wait for the multi-touch iPhone); iTunes Plus (already upgraded my songs); and YouTube on the Apple TV (welcome if unexpected).

    I have actually been dreading the iTunes Plus announcement because I am behind in “Wii Transfer”:www.riverfold.com/software/… development, and I had hoped to coincide version 2.3 with the DRM-free AAC files on iTunes. It should be ready for a private beta in a few days. (Want in on the beta? Just email support@riverfold.com.)

    But it’s the YouTube feature that is really fascinating to me. I’ve long thought that Apple has all but given up on web video, somehow content to let Flash dominate. The Apple movie trailers site as the last pocket of QuickTime content isn’t quite good enough. Apple could have created something on the scale of YouTube but hooked into the iApps, .Mac, and built on QuickTime. Maybe even as an extension of the iTunes Store around video podcasts.

    (The great thing about podcasts is that they are decentralized, but it makes it a little more difficult when you are trying to build a community. The iTunes Store also does a great job for discovery but nothing to help content creators. There is no one-step upload.)

    The Apple TV announcement is weird because while on the surface it looks like a confirmation that Flash video wins, it might just be the first sign of Apple fighting back. Every video on YouTube will get the H.264 treatment. The web video revolution (of sorts) has been great, but the pieces are coming together for truly useful broadband video. Perhaps YouTube sees that they could be a major player not just for silly webcam videos but as an infrastructure for high quality distribution, with content in some categories that will rival the networks.

    That future is especially believable the first time you sync up near-HD video podcasts to the Apple TV. It’s a great experience and definitely exceeded my expectations.

    → 11:09 PM, May 30
  • Essays about the web

    Paul Graham thinks “Microsoft and desktop apps are dead”:www.paulgraham.com/microsoft…

    "Gmail also showed how much you could do with web-based software, if you took advantage of what later came to be called 'Ajax.' And that was the second cause of Microsoft's death: everyone can see the desktop is over. It now seems inevitable that applications will live on the web -- not just email, but everything, right up to Photoshop. Even Microsoft sees that now."

    He’s definitely off the mark with that statement. Luckily “Martin Pilkington has a counter-rant”:pilky.mcubedsw.com/index.php

    "There seems to be a slightly delusional section of web developers who seem to believe that in a few years time all of our applications and data will be online, while our computers run little more than a browser. Of course this is complete bull."

    As someone who builds both desktop software and web apps, I’m very much interested in what happens in the middle. Next generation Mac software in particular can mix local HTML interfaces, web services, and syncing with a traditional rich UI to build something that is the best of both offline and online worlds.

    I had an interesting conversation with “Willie Abrams”:willie.tumblr.com the other day about why the Flickr UI is better than iPhoto, even if you take away all the social parts of Flickr. The reason is that Flickr introduces extra layouts specific to certain types of activities, such as the excellent calendar view for archives. Another example of a web app UI innovation is the Backpack reminder UI that “John Gruber recently wrote about”:daringfireball.net/2007/03/d…

    Web apps are usually able to iterate on features and interfaces much quicker than desktop software, but that doesn’t make web apps inherently better. Put another way, iCal sucks because it hasn’t been seriously updated in 5 years.

    I have other thoughts on this topic, but already I’ve extended this blog post 3 paragraphs more than intended.

    → 1:20 AM, Apr 9
  • WiiTransfer.com

    After I “blogged last month”:www.manton.org/2007/01/i… about the very small number of domain names I own, I got some good feedback from people I respect. They basically said: “You’re an idiot. Domain names are cheap.”

    And the more I thought about it, the more they were right. So last week I made an offer to buy the wiitransfer.com domain from its current owner, and after just about 48 hours I had the domain and was updating Wii Transfer to use it. Now all registered users can use the simpler bookmark URL wiitransfer.com/username to point to their shared music.

    I’m also finally rolling out a bug fix update tonight (version 2.2.1, “available here”:www.riverfold.com/software/…). The most important change is that some MP3s that would not play will now work. Some customers never saw this, but for some people a large percentage of their music library was unusable. It turned out to be that certain kinds of embedded cover album artwork in the MP3 would break the Flash player on the Wii. The work-around I used is to load the MP3 into memory and clear all its ID3 tags before sending it over the wire.

    It feels good to be working on Wii Transfer again. The next version is already underway and should make a lot of people happy.

    → 9:52 PM, Mar 22
  • TwitterConf 2007

    It’s been over a week since SXSW Interactive wrapped up, and I can’t bring myself to post anything interesting about it. Don’t get me wrong, I had a great time. But I missed more sessions than usual this year (I’m trying to ship software here!), skipped half the parties (Traci was sick all weekend), and I didn’t notice any big themes that unified the conference.

    Except Twitter. Which just underscores that it is about the people, and what they are doing, and being inspired.

    I had a great time meeting new folks and catching up with old acquaintances: talking independent Mac development with Buzz Andersen and Justin Miller; software pricing with John Gruber; Rails and cities with Jamie Stephens and Sergio Rabiela; bumping into old school Mac web guys Carl de Cordova, Raines Cohen, Bill Christensen, and Wes Felter; co-workers and former co-workers Damon Clinkscales and Ryan Irelan respectively; lunch in a pub as a storm came down with Austinites Ben and Sara Brumfield; seeing my old friend John Brauer from high school who needs to email me (hint!); and finally meeting Shaun Inman and a bunch of other people whose names I can’t recall at the moment and whose business cards are buried somewhere, but no one is quite sure where.

    My only regret is that there were a few people I wanted to say hi to that I literally saw from a distance on the first day of the conference and then never saw again. Maybe they took the wrong escalator and are still trapped in the void of that 3rd floor.

    Of all the kajillion SXSW posts that have come through my fresh not-even-a-beta copy of NetNewsWire, I liked “Peter Merholtz’s write-up”:www.peterme.com the best:

    "What I realized, and what I need to do if I return to SXSW, is that in order to enjoy what SXSW Interactive has become (and boy, has it changed since 1999) I have to take a more Zen-like approach, ignoring all the Things I Could Be Doing, and focus on simply getting the most out of whatever I Am Doing."

    Seeya next year.

    → 12:55 AM, Mar 22
  • Weblog 5th Year

    Ten minutes until midnight as I type this. I started this blog 5 years ago. There have been just 329 posts in those 5 years, but there are some good ones in there. One thing I’ve noticed is that over the years I’ve switched from collecting links and providing short commentary, to more thoughtful longer posts. I’m hoping in this next year to go back to more of the earlier style.

    My weblog anniversary also means that SXSW is starting. I don’t plan to blog this weekend, but will instead be updating through my Twitter account. To be honest I’m not sure what to expect from this year’s conference. I’m looking forward to a few sessions, but with RailsConf and WWDC and another work trip all lined up for the coming few months, I’m feeling a little conferenced-out before I’ve even begun.

    Here are the previous anniversary posts: 2006, 2005, 2004, 2003, and 2002.

    Also checked out the new Apple Store at The Domain today, which is a couple miles from my house. Was 250th in line without really trying, and the weather was nice enough to work under the oak trees outside Starbucks. Took pictures with my camera phone which I don’t have the energy to post right now. Tonight I headed back downtown for the opening of Jason Chalker’s art show.

    → 12:58 AM, Mar 10
  • STAPLE! 2007 weekend wrap-up

    “STAPLE! The Independent Media Expo”:www.staple-austin.org was last Saturday and it turned out great. The “animation panel I wrote about last week”:www.manton.org/2007/02/a… was a lot of fun and didn’t seem to suffer too much from my amateur moderating abilities. The projector worked, the films were great, and we filled an hour and a half with questions from the audience. Special thanks to “Damon”:www.damonclinkscales.com for working the lights and providing feedback afterwards.

    My only regret is that I didn’t take a few minutes to snap photos or set up a video camera in the back to capture it. I left my camera in the car the whole day. Luckily other attendees took pictures of the rest of the show. Here are Flickr sets from “Freddie Avalos”:www.flickr.com/photos/fr… “Toby Craig”:www.flickr.com/photos/it… and “Marianne Ways”:flickr.com/photos/mw… Update: Damon “snapped a picture”:flickr.com/photos/di… after all!

    Sunday night was the “Animation Show”:www.animationshow.com at the Paramount and Don Hertzfeldt answered questions afterwards. His latest film may be my favorite of his yet. I worked with Robert at the Animation Show on cross-promotion between their show and STAPLE!, and they were so great to work with I hope we can join forces again next time.

    I came away from the whole weekend inspired. Monday a new idea for an animated short film hit me. I think it’s time to dust off the animation table again.

    → 12:00 PM, Mar 7
  • 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.

    → 10:40 PM, Feb 27
  • Animation panel and web site for STAPLE! 2007

    “Chris”:ycrtft.rethunkmedia.com and I headed over to Northcross Mall yesterday to take a final look at the conference center rooms before next week’s STAPLE! Expo. Although I’ve been on the planning committee since the very beginning of the conference over 3 years ago and actively involved for each of the previous 2 shows, this year is a little special because I’ve been organizing a panel on animation to complement the mostly comic book focused show. We have three great local animators this year: Aaron Romo, Evan Cagle, and Lance Myers. See the “STAPLE! guests page”:www.staple-austin.org/guests/ for more information on their work and our other featured speakers.

    I also redesigned the web site last week, late Thursday night. In order to accommodate some CSS improvements and images from our new program, I had to abandon a few things from last year’s excellent design by “John Rubio”:www.johnrubio.com (who also did the logo). I hope to bring back elements of the old design for next year, though. There’s just not enough time in the day, and March is days away. I hate you February, for being so short.

    → 12:30 AM, Feb 26
  • Customer support

    One of the most interesting (and difficult) parts of running an independent software business is responding to support email. It is very time-consuming and often more frustrating than writing code because the solutions can be illusive. You want to help the customer, but it’s not always obvious how.

    Two blog posts in the last week take entirely different approaches to customer support. The first is from Ryan Carson, who is well known for DropSend and The Future of Web Apps conference. Here’s a snippet from his response to a customer:

    I am now marking your email address as spam and your communication will no longer get through. If you don't want to use our service any more, please cancel your account.

    I was relieved to read the comments, which are more sane. I think Ryan made a mistake in how he dealt with the customer, and wasted a bunch of time in the process. Adding a customer to your spam filter? Yikes. I would have refunded the customer their $5 immediately.

    (I actually like a lot of what Ryan writes and the events he puts on, but lately I find myself noticing the differences. As another example, his post about outsourcing programming work to Russia left me puzzled.)

    Joel Spolsky also wrote an essay on support, and it’s just about perfect. I especially like his section on memorizing awkward phrases:

    It's completely natural to have trouble saying "It's my fault." That's human. But those three words are going to make your angry customers much happier. So you're going to have to say them. And you're going to have to sound like you mean it.

    For almost every support email I get, I start by responding like this:

    Hi Bob, Thanks for purchasing Wii Transfer. I'm sorry to hear it was not working correctly for you.

    This does three things right away that I think are important:

    • Greet the person by their name. Kind of like making eye contact. And it's respectful without being overly formal.

    • Thank them for using the product. If they haven't bought it yet, replace "purchasing" with "trying."

    • Apologize that the software gave them trouble. This is mostly equivalent to Joel's "it's my fault" phrase.

    Although I could probably respond faster by using some macro shortcuts that do this for me, I actually type this out every time, varying it slightly as is appropriate for the question. I then move on to the actual solution or follow-up question about their issue.

    This is more than just trying to be nice to people. As someone in the comments to Ryan Carson’s post said: you need to show the customer that you are on their side. Going negative demonstrates that you care about receiving their money but not actually building something useful that makes their life easier.

    Here’s a portion of 37signals take on being on the customers side, from Getting Real:

    At 37signals, all of our support emails are answered personally by the people who actually build the product. Why? First off, it provides better support for customers. They're getting a response straight from the brain of someone who built the app. Also, it keeps us in touch with the people who use our products and the problems they're encountering. When they're frustrated, we're frustrated. We can say, "I feel your pain" and actually mean it.

    Most people who buy Mac software from independent developers know that it’s only 1-5 people behind the company. We can’t compete with the Microsofts and Adobes of the world on application size, but we can compete on quality customer service. Being small is a competitive advantage.

    I’ve exchanged at least a couple hundred emails in the last few months with customers or potential customers. (I don’t actually distinguish between users who have bought the product or who are just trying it out. They all get the same level of support.) Have I handled each one perfectly? Probably not. There are a few people who are still experiencing problems. But my hope is that just writing this blog post will serve as a guide and reminder of why taking support seriously is worth it.

    → 12:38 AM, Feb 21
  • Reflecting on a beta release and server testing

    Wii Transfer 2.2 is taking longer to get ready than I had planned, so I’ve decided to post a public beta while the last pieces are polished up. You can “grab it from the news section”:www.riverfold.com/software/… of the Riverfold site (lower right). It is very close to being done, but giant chunks of code have been completely rewritten. I hope the extra testing will help make 2.2 an extremely solid release, and get some of the new features in the hands of users as soon as possible.

    So what’s new in 2.2? iTunes playlists and several new preferences to control picture sharing top the list, but there are at least a dozen changes underneath the hood.

    The web server built into Wii Transfer has seen some work in particular. Music browsing now uses the iTunes Music Library.xml file for everything rather than look at directory contents, and you can change the port number on the fly without restarting Wii Transfer if there is a conflict with any other applications.

    I’ve also added reflections to the album cover art! You can see a “screenshot here”:www.manton.org/images/20… and another one of “the collage for playlists here”:www.manton.org/images/20… (these are from Safari, but it looks mostly the same on the Wii). This was really fun to do, but unfortunately it somehow introduced a subtle double-release bug that I spent hours fixing. It would only happen if the album art could not be found in iTunes and while multiple connections were hitting the server (i.e. it was ultimately a threading issue), and maybe only every dozen requests.

    I tracked it down by using ab (Apache Bench), pointed at Wii Transfer. I had a shell script with a bunch of lines that looked like:

    ab -n 200 -c 4 “localhost/m/Beatles…

    This URL asks Wii Transfer to grab any album art from iTunes for The Beatles, apply the reflection and return the JPEG data. It is flexible because you can send it any search strings. Other examples might be: Evanescence%20Door.cover or Zoo%20Station.cover. I was a little surprised that my little server was actually pumping out pages fairly quickly considering all the AppleScript and Quartz stuff going on. 10-20 requests per second isn’t much for a real web application, but for an app that is by definition single-user, it’s perfect.

    The reflection code was made even easier by “BHReflectedImage”:bithaus.com/2006/11/0… which I modified to work with black backgrounds and then wrapped up in other helper methods to composite the cover and reflection together. When I first ran across this code I didn’t even notice it was written by Jeff Ganyard, who I’ve known for years and still run into at WWDC. Thanks Jeff! This goes in the about box credits with a bunch of other mentions. There is a really active Mac developer community that contributes source pretty freely, and I hope to add a few things to that collection one of these day as well.

    → 12:23 AM, Feb 10
  • Spoiled by iTunes, and the future of music

    I have been “iTunes-free for four weeks now”:www.manton.org/2007/01/g… and I hate it. It must be like quitting smoking, except without the fear of dying always at your back. I stopped by a Best Buy the other day and couldn’t find any CDs to buy. How do you shop for music without listening to it first? How do you find new artists without “customers also bought…” sidebars? Years ago I might listen to the radio to discover new music, but that was before the dial was permanently stuck on NPR.

    “Steve Jobs dropped the bomb”:www.apple.com/hotnews/t… while I was at lunch yesterday, and I furiously read and re-read it and watched the fallout. Blog entries in NetNewsWire lit up like clockwork. As “I posted to Twitter”:twitter.com/manton, when the balance tips again to user control we’ll look back at this as a real shift in thinking. And the reason you know it’s true is because it sounds redundant to say the words.

    But today… I browsed for music on iTunes and then ordered CDs from Amazon.

    → 12:37 AM, Feb 8
  • I hate domains

    There is a story behind the name “Riverfold”:www.riverfold.com/, but it’s probably not a very good one and I won’t go on a tangent by telling it here. What I will say is that I hate domain names.

    Maybe it’s because I remember when domain names used to be free (I do), or maybe it’s because I get some thrill out of typing in IP addresses (I don’t), or maybe it’s because I think domains should last forever, like a printed book in wide circulation. But in any case I decided not to register WiiTransfer.com when I first named the product. Five days after announcing and shipping 1.0, someone else registered the domain, for their own presumably evil purposes.

    I’ve owned just a handful of domains over the years. During the dot-com days I registered MyEdit.com and started building a web-based note filing system (sort of like “Stikkit”:stikkit.com/, but not as good). Then there were the family web site and related domains.

    I let all of them expire, except manton.org. I kept riverfold.com for “everything else”, and I’m pretty comfortable with the simplicity of that decision right now. It was probably foolish to pass up the domain for my own product. But how many people type in photoshop.com to go anywhere? No one who matters.

    There is a thread on the MacSB mailing list about the rise of product-oriented web sites (the “DiscoApp.com”:www.discoapp.com/’s of this new era of glitzy Mac shareware), and it really made me second-guess my decision to not register everything. But at the end of the day, it’s one less thing I have to worry about, and I can focus on stuff that is more interesting.

    → 12:21 AM, Jan 30
  • Bookshelf note sharing

    I’ve blogged a lot about my side project Riverfold lately, but it’s time to show my “real” job some love as well. Internally at VitalSource last week we rolled over to beta status for the upcoming Bookshelf 4.5, and I’m really excited about what is coming. I’ve been working on the note sharing and syncing feature off and on for over a year now.

    What’s it all mean? In a nutshell, create highlights and notes in your digital textbooks and have them flow to other users or to any of your computers. As Steve Jobs said with a totally straight face at the iPhone introduction: It works like magic.

    (That was one of my personal favorites from Macworld. Rewatch the keynote and see the expression on his face. This magic is serious stuff.)

    At least, magic is the goal. If it was that easy we would have shipped by now. Behind the scenes it gets a little tricky, and the cross-platform C++ code that powers the client (the server piece is written in Ruby on Rails) is in its third major rewrite. Which like all good refactoring, is simpler and probably uses fewer lines of code than the previous two attempts.

    But first, some screenshots: Subscribed highlights and Sharing

    The architecture is based on the Simple Sharing Extensions (SSE) for RSS and OPML. On top of that we have added a VitalSource namespace and a few extra XML elements and attributes to keep track of Bookshelf-specific data, such as highlighter color and selected text within a book. The goal is to keep it as open as possible, so that in the future we can both consume other sources of user notes, and allow third-parties to also hook into the data in interesting ways.

    We (computer users in general) are all writing bits of notes and data in various applications and for the most part, it’s a mess. We switch applications frequently, databases and file formats change, and there’s no good way to move data between applications. Imagine instead that you could have bookmarks and short snippets of text easily sync between apps like Del.icio.us, NetNewsWire, Yojimbo, Flickr, and Bookshelf. Ultimately the only requirement is that each item is RSS-like (it has a URI, some text, and maybe another piece of specialized data just for that app). Anyone who has been programming for the web for a few years knows that after a while, everything starts to look like RSS.

    The key is simple, flexible standards. Less Software if you will. Mac OS X’s Sync Services by comparison is too complicated, too closed, and too narrowly tied to specific applications.

    What I like best about SSE is that it provides a roadmap of sorts. It makes some assumptions about how you want to sync data and that frees you to work on more important things. Wondering how to deal with GUIDs, versioning, and deletions? Don’t reinvent the wheel, that’s in the spec.

    I’ll post again when we actually ship the software, of course. Anyone else using SSE yet? If so, drop me an email. I’d love to hear how people are using this stuff.

    → 11:25 PM, Jan 28
  • Wii Transfer takes over internet

    Okay, not really. But this has been a crazy and surprising week for my “little” application, Wii Transfer. Putting 8 hours each day into “VitalSource”:www.vitalsource.com (I have a post coming about that tomorrow, by the way) and then juggling home responsibilities, putting out various other fires, and sitting down to work on Wii Transfer until 3am is just not healthy.

    Luckily I slept great last night and took a 3-hour nap today. So time to blog again. :-)

    Over a week ago I released Wii Transfer 2.0 and made a big mistake, and since I’ve been programming for the Mac for over a dozen years now, I really should know better. It was buggy. And not just a few minor cosmetic problems, but at least two serious crashers. I simply had not tested enough. It’s difficult (sometimes impossible) to regain a user’s trust after their first experience with an application is a bad one, so I got to work that weekend fixing problems and releasing beta builds to customers to get a few extra eyes on the software.

    Then Monday came, and all hell broke loose.

    Links from “Daring Fireball”:daringfireball.net/linked/20… “Ranchero”:www.ranchero.com and “The Unofficial Apple Weblog”:www.tuaw.com/2007/01/2… were followed by “Jostiq”:joystiq.com/2007/01/2… “Infendo”:infendo.com/2007/01/w… “4 Color Rebellion”:4colorrebellion.com/archives/… and a bunch of others. Ironically one of the only gaming sites I read that never linked to Wii Transfer was the only one I had actually sent an announcement to (“GoNintendo”:www.gonintendo.com). Traffic and sales were way up (“here’s a Mint screenshot”:www.manton.org/images/20… from one day last week).

    But meanwhile, the application was just not that stable. I started rewriting most of the web server inside Wii Transfer and fixing lots of issues with iTunes and iPhoto libraries stored on external drives. Then I made my second mistake: I added a feature (album cover artwork!). Obviously, adding a feature in the middle of bug fixes just delays the original fixes and introduces new problems.

    I also quickly realized how many things could go wrong with how music and picture sharing works. It relies on the Nintendo Wii and your Mac being on the same local network. Because Wii Transfer pings a bookmark server to register your IP address, you also have to make sure the app picks the right IP if your Mac is on both ethernet and wireless networks. Worse, many people have the Mac OS X built-in firewall enabled, so users are required to manually open up port 9000.

    At one point on Tuesday when sales were coming in, every time I received a PayPal notification email I literally groaned. “Stop buying this software until I can make it work reliably,” I would say to the computer. The thing that got me through was that all customers who sent in support email were extremely helpful and patient. The other good news is that with version 2.1.1, it’s looking pretty solid, and the next update should wrap up any remaining fringe issues.

    To everyone who gave Wii Transfer a try, thanks! I think you’ll like what comes next.

    → 1:40 AM, Jan 28
  • Wii Transfer 2.0 featured on Apple Downloads

    I finished “Wii Transfer 2.0”:www.riverfold.com/software/… late Thursday night. This version is an interesting milestone for the application because it goes beyond just using the SD card to shuttle data back and forth between your Mac and Wii. There is a small Cocoa web server embedded inside Wii Transfer that can serve up MP3s and JPEGs directly to the Wii using the Internet Channel. I think this could be the basis for some really fun stuff in the future.

    One of the things I added at the last minute is to try to simplify how you connect to your Mac from the Wii. IP addresses are difficult to memorize for most people and may change depending on how your home network is setup. To solve this, Wii Transfer will optionally create a permanent URL for you on bookmark.riverfold.com. You can then add that URL as a favorite for your Wii and it will always redirect to your local machine. Wii Transfer will ping the Riverfold server on startup and update the bookmark database with your current IP address. You can think of it as a simplified version of “Dynamic DNS”:en.wikipedia.org/wiki/Dyna…

    I just noticed that Wii Transfer is the featured download and staff pick in the “video section of Apple’s download site”:www.apple.com/downloads… That is a nice surprise. It will be interesting to see what that does to download stats.

    One last thing. Starting next month the price will go up to $14 for version 2.0 (free upgrade for all existing users). I usually work on Wii Transfer at night, so the increase will help offset all the sleep I lost. :-) Even at $14 it may be underpriced. Remember the “Brent Simmons rule”:www.red-sweater.com/blog/168/… anything less than $20 won’t be taken seriously. In this case though I think it’s just about right. I’m also finding a large percentage of purchases from Europe, despite no localization, probably because the US dollar is so weak now. Enjoy!

    → 2:12 AM, Jan 20
  • You had me at scrolling

    Last week I said I wasn’t interested in an iPod phone, unless it was something no one had even thought to expect. Well, it is. I am blown away by the iPhone. The thing runs Mac OS X.

    The iPhone is really inspirational in terms of UI design polish. You can tell they put some years into it. I was playing with Tiger’s NSAnimation the other night (sort of a poor man’s Core Animation), and it reinforced for me the fact that UI effects are no longer optional pieces of software design. They can both visually supplement the user interaction and just make the application experience more enjoyable. Disco, for all the criticism as a glorified Disk Recording framework wrapper, is fun to use. Same goes for the just-released Snapshot 2.0, which has a really thoughtful single-window UI.

    This is going to be another great year to be a Mac developer. And we haven’t even seen the rest of Leopard yet. Only bump in the road will be if iPhone is a closed platform. The comments over at Theocacao provide some interesting commentary on that question.

    → 11:59 PM, Jan 9
  • Falling in love with VoodooPad again

    A few years ago I used “VoodooPad Lite”:www.flyingmeat.com/voodoopad… extensively. Every note, to-do list, and feature description went into it. At some point I migrated away from VoodooPad to a combination of text files and “Ta-da list”:www.tadalist.com/, perhaps fearing I would have too much data in a weird format that would be difficult to get at later.

    But I was always on the lookout for a problem that would best be solved with VoodooPad again. With our localized help files for “Bookshelf 4.1”:www.vitalsource.com/, I tried for most of a day to use VoodooPad to manage the help. I even experimented with Gus’s dead “project for remote wiki editing”:www.flyingmeat.com/fs/flysta… thinking I would write my own web-based help-specific wiki system and plug “Boomerang”:www.flyingmeat.com/fs/flysta… into it. In the end it was too difficult to force the existing static help files into VoodooPad.

    Fast-forward to a few nights ago. “Wii Transfer”:www.riverfold.com/software/… 1.5 has no Apple Help at all, and it needs some. A perfect opportunity for VoodooPad, and I’m happy to report that the solution works beautifully. I knew I could make it work because clearly VoodooPad’s own help files are managed with VoodooPad. After a bit of experimentation I bought a new VoodooPad license and all was well in the world.

    Here’s how it works:

    • I manage the help content in VoodooPad, creating pages for different help sections and generally just typing away and getting stuff done.

    • The HTML export template lives inside the VoodooPad document itself, so everything is in one place.

    • Also inside the VoodooPad document is a post-processing script (written in Ruby) that looks for a comment in index.html and inserts the appropriate AppleTitle and AppleIcon meta tags that Apple Help needs to get its work done.

    The only part I haven't finished yet is that the script should also send the files off to Help Indexer to update the search index. I coded that part but it doesn't work yet -- there is something different about how VoodooPad executes these scripts that prevents other applications from launching. (Maybe. I'll sort it out eventually.)

    You can “watch a screencast of the process here”:www.manton.org/screencas… I add a new page, enter some filler text, export the VoodooPad document, then re-run the Xcode project and view the changes in Apple Help. Fun!

    → 1:21 AM, Jan 6
  • The Hivelogic Podcast

    Watching from the sidelines as Dan Benjamin prepared his first podcast really made me want to get out “the microphone”:www.flickr.com/photos/ma… again. Creating a podcast is a great experience, and I always tell myself I’ll do them more frequently. There have been a few recent events that I’ve wanted to capture as podcast episodes, including the experience waiting in line for the Wii, but it just hasn’t come together.

    Enough about me. Go listen to “The Hivelogic Podcast with Dan Benjamin”:www.hivelogic.com/articles/… interviewing “John Gruber”:daringfireball.net about the upcoming Macworld announcements. The Macworld keynote is this coming Tuesday at 9am Pacific, but I haven’t heard word yet on whether it will be streamed live or a delayed rebroadcast.

    → 5:49 PM, Jan 5
  • Macworld 2007 predictions

    Dan covers his Macworld predictions in great detail. Instead of predictions, since mine will probably be wrong, I’m going to list what I want to see:

    Tablet. I tend to agree with Steven Frank’s analysis more than this former Apple exec but either way it remains pretty unlikely that a tablet is going to happen under Steve Job’s watch. At WWDC once Steve Jobs called the Newton a “little scribbly thing” or something similar, and it wasn’t long before he officially gave that division the axe.

    Numbers. Some people still insist on sending me Excel documents. We need a simple application in the iWork suite that can natively read/write Excel documents and handle the basics.

    Finder. I’m pretty sure Leopard will sport a new Finder, as well as user interface candy paint applied across the operating system. The only question is whether they’ve rewritten it from scratch and in the process introduced even more problems. I’m optimistic on this one, though, and expect an elegant UI evolution from the Finder team.

    What I don’t care about:

    iTV. See previous post about DRM If I want to watch a movie, I’ll put in a DVD. However, I do hope to draw some inspiration from whatever they do and apply it to Wii Transfer development.

    iPod Phone. I have no doubt it will be well designed, but it will also be at least $299 (guess). I have only owned a couple mobile phones in my life, and they were free or nearly free. The iPod Phone will have to be something no one’s even thought of yet for me to consider it. It’s kind of like Nike + iPod a luxury that I don’t really need.

    Anyway, should be a fun Macworld. I haven’t been in years and I’m a little jealous of those who are attending this year. (But not jealous enough to want to get on a plane next week.) Part of me misses the old days, having a booth and talking with users or seeing what was new on the show floor. I was at the first Macworld keynote after Steve Jobs came back to Apple, while Gil Amelio was still in charge, and I’ll always remember it as something pretty special.

    → 8:27 AM, Jan 5
  • Goodbye iTMS

    When I started on the “music sharing feature”:www.manton.org/2007/01/h… in the upcoming 2.0 release of Wii Transfer, I knew it couldn’t support protected songs from the iTunes Music Store. Still, it was disappointing when I started using it and such a big chunk of my favorite music was inaccessible. The only DRM problem I’ve ever run into before now is forgetting to deactivate old machines and hitting the 5-machine limit, but that’s easily solved, and I have been quick to defend iTMS and promote its convenience to others.

    No longer. Overnight my music library has become much less valuable, just because I chose to use it in a different way. Almost all the music I’ve bought in the last couple of years is from iTunes. I created two smart playlists, one to show protected and one not. Apparently of the 5000 songs on this computer, 500 of them are from iTunes. 10%.

    I’m not sure what is going to replace my use of iTunes yet, but for now I think I’ll lean on Amazon Prime’s free 2-day shipping and just order and rip CDs to good old fashioned high-bitrate MP3s. Too bad, because I do love the iTunes experience. Just gotta keep repeating to myself: text files, JPEGs, and MP3s are forever. Everything else is suspect.

    → 12:36 AM, Jan 4
  • Holiday hacking on Wii Transfer 2.0

    I got sick (the flu?) shortly after Christmas, but nevertheless managed to sneak in some coding on Wii Transfer 2.0, which I hope to release this weekend. The big new feature for 2.0 is music and picture sharing. Essentially, there is a web server built into Wii Transfer. You can use the Wii’s Opera web browser to connect directly to your Mac running Wii Transfer and pull up MP3s or iPhoto albums. I’ve licensed “Jeroen Wijering’s Flash-based tools”:www.jeroenwijering.com for listening to MP3s and browsing photos. The interface isn’t perfect yet (the buttons should be bigger for easy TV viewing), but I think it’s pretty good for a first shot at this. The web server portion is based off of “Jürgen Schweizer’s Cocoa example code”:culturedcode.com/cocoa/.

    “Check out this screencast”:www.riverfold.com/software/… to see what most of it looks like. The first part shows the new Wii Transfer main window UI with a source list for switching features, and the second part shows what it looks like from the actual Wii. I just setup a tripod and filmed off the new HDTV with my digital camera.

    I also started back on “real work”:www.vitalsource.com today. We have some neat stuff shipping later this month that I’ll be blogging about more once it’s ready to show. I knew I could easily get lost in inconsequential stuff on the Tuesday after a long break, so I spent a bit of time yesterday reviewing to-do lists and getting my head on straight. Got some real coding and design done today, so no complaints there either.

    All in all, 2007 is starting off great. (Except that I still seem to be sick, but I’m going to try to ignore that for a bit longer.)

    → 1:02 AM, Jan 3
  • MacSanta and Wii Transfer 1.5

    “Wii Transfer”:www.riverfold.com/software/… is now listed as part of the “MacSanta promotion”:www.macsanta.com/. Only $7 through Christmas day!

    I also released Wii Transfer 1.5 late last night. The major change in this version is support for automatically backing up saved game data files from an SD card. The Nintendo Wii by default does not save games to SD cards, but it’s easy in the Wii settings interface to copy your saved games to an SD card or restore later. If Wii Transfer is running when you insert an SD card into your Mac, it will automatically copy the saved games to your hard drive (in Application Support), organizing them by date. Then there’s a simple UI for restoring the games back to an SD card. “Here’s a short screencast”:www.riverfold.com/software/…screencast_backup.mov if you are curious what it looks like.

    One neat part of this that I was able to do – and this is consistent with the whole point of Wii Transfer, improving the experience of transferring Wii data – is to show the real game names in the restore list. The data files actually use a 4-character code, but “WiiSave.com”:www.wiisave.com is maintaining a list of codes to real names. I’ve baked a portion of that list into Wii Transfer 1.5, and the application also automatically downloads an updated list from the Riverfold web site so that as new games are released, Wii Transfer will know about them.

    Now head over to “MacSanta”:www.macsanta.com and pick up some great Mac applications, all 20% off.

    → 8:40 PM, Dec 20
  • Re-introducing Wii Transfer

    I guess it’s a sign I’m not blogging very often when I don’t even announce my own product! A big thanks to “Dan Benjamin”:hivelogic.com and “John Gruber”:daringfireball.net for linking up “Wii Transfer”:www.riverfold.com/software/… a little application I quietly rolled out last night. (I’d thank the other links too but I’m still sorting through referrers for today. Maybe it’s time to buy “Mint”:www.haveamint.com/.)

    Wii Transfer started as a weekend hack to make the process of converting QuickTime movies to more Wii-friendly codecs much smoother. Not many hours into it I realized there are a bunch of useful features I could build around the Wii. Rather than work on it for a few months leading up to a big 1.0 release (all the while not knowing if it would be well-received), I borrowed a little “less software”:gettingreal.37signals.com/ch02_Buil… and brought it to the point that it was generally useful and worth paying for.

    This kind of quick iteration is great because it means tonight I can announce version 1.2. There are a handful of minor improvements, but the two big new features are AppleScript support and an interface for quickly opening video podcasts from iTunes.

    Overall this has been a really fun process and I’m interested to see where it goes from here. I will write more about Riverfold, the company, in a later blog post.

    → 9:45 PM, Dec 14
  • 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!

    → 11:11 AM, Nov 23
  • NaNoWriMo 2006 attempt

    Last year I participated in NaNoWriMo and successfully “completed a 50,000 word novel”:www.manton.org/2005/12/5… in one month. It was a great experience, but when someone conducted an informal survey on 43things of who would be doing it again this year, I answered that it was just something I wanted to do once in my life, like running a marathon, and I wouldn’t be doing it again.

    And yet, before November rolled around again, the idea for a novel started growing in my mind. I had pretty much decided to go for it again. On the 1st of the month I wrote the opening and started organizing notes for the characters and plot.

    But that same night I was sketching with friends at a coffee shop instead of writing. “Paul Adam”:www.untameduniverse.net and I talked about 24-Hour Comic Day, NaNoWriMo, and side projects. That conversation made me realize that I have a bunch of stuff I want to work on right now, and writing a novel which I have no immediate plan to publish just can’t fit into my schedule right now. NaNoWriMo is an all-consuming thing – you have to drop everything to finish it.

    The story and characters I came up with have some potential, though. Instead of cramming it into a month, I may work on it a bit over the next year or two.

    → 10:48 AM, Nov 9
  • The 50-state strategy

    I started writing this post yesterday afternoon. Worried that I would jinx a victory, I wrote two versions: one for a narrow loss and one for what really happened.

    Two years ago, after Kerry lost, “I wrote”:www.manton.org/2004/11/a… “We almost won, and all the hard work of the last 18 months will pay off big in two short years.”

    Well, it’s two years later, and we did it. DNC chairman Howard Dean’s “50-state strategy”:democrats.org/a/party/a… worked. The media will tell you that the election was just about Iraq and Bush, but it goes deeper than that – voters are sick of Republican corruption, tired of half-hearted attempts at health care, and longing for a real vision for public education. You can see the patterns by looking at the progressive wins in state races and on local propositions too.

    There are “20 posts in the politics category”:www.manton.org/category/… of my blog, and they include some of my favorites from the last 4 years. It’s nice to be on the winning side again after too long. The next part of the job is for Democrats to show everyone in America that real progress can be made in Washington. Deliver. Then keep organizing and make it all happen again in 2008.

    → 4:41 PM, Nov 8
  • 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.

    → 4: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.

    → 11:14 PM, Nov 5
  • The Prestige

    I saw The Illusionist when it came out a couple months ago and thoroughly enjoyed it. I love magic. The film was well told, the ending a surprise for me. Edward Norton was really good in it too. I re-watched Fight Club a week later, for the first time since the theatrical release.

    Last night, I saw The Prestige. How lucky are we to have two movies about magicians in the same year? The Illusionist was really good, but The Prestige sidesteps direct comparison and just creates a new league for itself. My head was still buzzing an hour after the film was over, unraveling the different layers of the film, what it all meant for the characters and their actions. It was one of those rare works that inspires, both from the flawless filmmaking and the dedication of the fictional characters as well. I was literally on the edge of my seat and completely captivated.

    Even as the credits started to roll I wanted to see it again. It’s that good.

    → 11:39 AM, Oct 30
  • 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.

    → 3:17 PM, Oct 29
  • I didn&#039;t go to C4

    C4 was last weekend and looked like a lot of fun. Unfortunately I was about travelled-out this year with RailsConf and WWDC. Perhaps next time.

    Daniel Jalkut was the first I saw with nice write-up. He provides “a speed-through of sessions”:www.red-sweater.com/blog/213/… and closes with what is probably the biggest draw for attendees:

    "As inspiring and as much fun as the scheduled speakers were, the unstructured social time both between sessions and in the evenings were just as much fun, and probably just as educational."

    I subscribe to a couple dozen Mac developer blogs, and keeping an eye on Flickr and Technorati tags for C4 is another great way to see what developers are up to. Mr. Rentzsch himself has a “set of links here”:rentzsch.com/c4/zeroLi… and Mike Zornek just posted some “short videos of the room”:clickablebliss.com/blog/2006… that give another view of the show.

    When I go back through my older Mac programming posts, I’m reminded that I don’t really blog about Mac development as much as I used to. Perhaps that is because there are so many other good Mac guys blogging now.

    → 9:47 PM, Oct 25
  • Da Vinci book, companion, and short film

    The Da Vinci Code appealed to me and many others because it successfully mixes pieces of both art history and code breaking. The book captures in fiction the same fascination I had first cracking open Applied Cryptography.

    A few months ago “Damon”:www.damonclinkscales.com completed a “companion to the book and film”:www.davincicc.com/, containing images and links to concepts organized by chapter. It uses the VitalBook digital book format, and is viewable in the software I helped write, “VitalSource Bookshelf”:www.vitalsource.com/. I’m working on some fun new stuff for Bookshelf at the moment that uses web services and “SSE”:msdn.microsoft.com/xml/rss/s… something I hope to post more about in the future.

    In other Da Vinci news, story artist and animator Jim Capobianco has completed animation on his short film “Leonardo”:leoanimation.blogspot.com/. I saw a preview of this at “2d Expo two years ago”:www.manton.org/2004/07/c… and I can’t wait to see the finished product. Even in storyboards and rough pencil animation it was great.

    → 9:47 PM, Oct 11
  • 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
    → 11:29 AM, Oct 10
  • Lost season 3

    The 2-hour season finale for Lost last year was some of the best television you’ll ever see. I re-watched it a few days ago and it was great stuff. And yet, I had a feeling that season 3, which premiered this week, would reset the clock again. Introduce a few more characters, change all the usual assumptions, but leave more questions instead of answering the existing ones.

    Turns out it was even worse than that. Frankly, the start of season 3 was junk. Clearly the writers are making stuff up as they go along, and that drives me nuts.

    When I think of epic story, perfectively woven together from beginning to end, I think of JRR Tolkien. After reading the collection of original manuscripts and commentary by his son Christopher Tolkien, I was surprised that for the first half of Fellowship of the Ring, Tolkien really didn’t know where he was going with it. It was chapter by chapter, and characters changed or story points were rewritten as he went along. But there came a point where I think the vision must have clicked for him, and at that point everything came together and the result was a work of fiction that will hold up for centuries.

    The suspension of disbelief works on me better than many people. If I feel like the creator of a novel or film has a real vision I’ll overlook the small problems and fall in love with the story and characters. For Lost, the dialog and pacing of each episode is technically brilliant, but the overall vision is missing, and I don’t think it will resolve in any meaningful way. Instead, the ratings will slowly decline until the show disappears in the same pattern of X-Files or Alias before it.

    So I may have to sign-off of Lost for a while. I did the same thing in the middle of season 2 when it got slow. Perhaps I’ll just read the synopsis and then join back in for the season finale every year. I’m afraid every time I watch it I’ll compare it to what it could have been, and only think of executives trying to milk the show for as many seasons as possible. I don’t want to be dragged along with them. Thanks anyway.

    → 11:03 AM, Oct 6
  • Enrico Casarosa interview

    In my “San Francisco podcast”:www.manton.org/2006/09/s… I mentioned Enrico Casarosa and “Sketchcrawl”:www.sketchcrawl.com/. I really wanted to interview him, but there just wasn’t time to contact him and arrange it. Luckily, Illustrationmundo’s Iconic podcast has conducted an “interview with Enrico”:www.illustrationmundo.com/audio/art… and they discuss Sketchcrawl at great length.

    Also, check out Enrico’s ongoing watercolor comic, “The Venice Chronicles”:enricocasarosa.com/wordpress… He just posted page 11 and 12.

    → 10:18 AM, Oct 3
  • Cars

    There are a lot of computer animated films out this year. It was inevitable, with Disney shutting down its 2d division a few years ago and all of Hollywood getting on the 3d bandwagon. Some will be successes, some failures – just like their live-action counterparts – and that’s fine.

    I’ve seen Cars twice now. Perhaps it’s because a certain 2-year-old I know says “zooma!” more than any word in his limited vocabulary, but this little Pixar film is really growing on me.

    Meanwhile, it looks like “2d is officially back at Disney”:www.laughingplace.com/News-ID51… Can’t wait.

    → 10:25 AM, Sep 13
  • Five years later

    I couldn’t let the 5th anniversary of September 11th pass without saying something. On Friday the Senate intelligence committee released a report showing that there was no link between Saddam Hussein and 9/11. That isn’t news. What is news is the details: that Saddam actually distrusted Al Qaeda and tried to capture Zarqawi. The simple truth is that terrorist organizations are a threat to any government, even ones we have disagreements with.

    If that doesn’t make you sick, here’s another one that I haven’t heard mentioned yet. Sometime next year the number of U.S. soldiers killed in Iraq will surpass the civilian deaths on September 11th. (September 11th = 2973, Iraq as of today = 2661)

    The level of incompetence in our President, Cheney, Rumsfeld, and their advisors reaches new heights. What can we do? Five years ago we were uneducated and scared, and even two years later we could easily be led by fear alone. Now, just stay angry. Change starts in November.

    → 10:49 PM, Sep 11
  • San Francisco podcast

    My third podcast is about San Francisco. Download it here or subscribe to the podcast feed in iTunes.

    » Download (MP3, 16.8MB)

    » Audio-only RSS feed (drag to iTunes)

    I had a lot of fun putting this together, recording sounds in and around San Francisco. I used my MiniDisc RH-910 and Audio-Technica AT822 microphone. Turns out the MiniDisc was a pretty bad investment, though. It has been a real hassle to use, and I am eyeing the new Edirol R-09 as a replacement.

    Go buy the music used in this podcast from Magnatune: Cargo Cult, Phoebe Carrai, and Arthur Yoria. They are building a great modern label that embraces what the internet is about instead of fighting it.

    Also special thanks to the Marin County Free Library for permission to use a portion of the Arthur Giddings interview. Check out their site on the 1906 earthquake.

    Other resources: Point Reyes, San Francisco Police 9-1-1 Tapes, 19th-Century California Sheet Music, WWDC 2006 Keynote.

    Update: How could I leave out a link to Sketchcrawl.com? Also: Eadweard Muybridge, Enrico Casarosa, and Dorothea Lange.

    → 2:16 AM, Sep 8
  • Animation history, worth the wait

    I received two great surprises this week. In the mail came the 9th issue of “Animation Blast”:www.animationblast.com/, Amid Amidi’s magazine on the art and history of animation artists. This started as a smaller quarterly magazine, but the latest issue has grown to over 100 pages. It’s an extremely high quality, ad-free book. I think I placed an order for Animation Blast #9 over 3 years ago, and it was continually delayed due to Amid’s other responsibilities. No worries, though, because the book is beautiful.

    The other related surprise was a new episode of the “Animation Podcast”:www.animationpodcast.com/. The last one was over 2 months ago, but again, the quality is so high and the information so valuable that it makes my day when a new one drops into iTunes. The 17 episodes so far, if taken together, represent a huge wealth of animation history, rivaling most DVDs and books in my collection. They are probably the only podcasts I subscribe to that I would archive to audio CDs to make sure I always have access to them.

    → 9:35 AM, Sep 7
  • Copyright law

    Copyright law is a major thorn in the side of creativity. Of course I knew this, and supported the work that “Lawrence Lessig”:www.lessig.org/blog/ was doing including the “Eldred case”:en.wikipedia.org/wiki/Eldr…Ashcroft, but it wasn’t until I actually needed to _use copyrighted material that I realized just how horribly broken the law is. Several nights this week I’ve spent hours reading about copyright and making sure I have my ducks in a row, and the results are very depressing. Especially bad is that even very old works are automatically renewed. Some of the stuff I might want to use is impossible to find to begin with, so locking it under copyright with no revenue stream going anywhere is a huge disservice to society.

    That’s not to say I don’t appreciate that we need protection for our creative works – of course we do – but the retroactive nature of some of the recent copyright extensions means that content is unreachable even long after it has been left to gather dust in the internet byte bin.

    Anyway, hopefully this concludes my short series of rants, started last week about the void of good digitized archives of historical documents. This all comes from a podcast or two I am working on. The good news is that today I received permission from a web site to use a small portion of their audio, giving me new hope that given a chance people will usually act sensibly. I am still maneuvering through what is acceptable “fair use” for other sources, but I think I am generally making reasonably defendable decisions.

    Unfortunately I made a big mistake in my first podcast, using commercial music. At the time I didn’t think much of it, because I was experimenting, but as I start to podcast more I plan to go back and remix the old show with licensed music. “Magnatune”:www.magnatune.com has done a very smart thing here, allowing use of their music for non-commercial podcasts. I use three tracks from Magnatune on my next podcast to be posted this Friday.

    Wrapping this up, I should point out that this weblog has always been licensed under the “Creative Commons Attribute License”:creativecommons.org/licenses/… This includes any text, images, or audio I might post, except of course those I include or link to that were not created by me. The license is extremely liberal, allowing pretty much unlimited use as long as I am credited, even for commercial purposes. Enjoy!

    → 8:53 PM, Sep 6
  • The web is incomplete

    When we use Google everyday and mostly work with technology and related topics that are well indexed, it’s easy to forget the truth: the web is horribly incomplete. I’ve been doing some research for an upcoming podcast and it’s very frustrating to encounter huge gaping voids in the internet where history, audio recordings, and photographs should be. Somewhere out there is an audio cassette tape recording that I’d like to hear, but it will probably gather dust in an attic for the next decade instead. It needs to be even easier for anyone to put everything they have online so that it can be preserved and shared. Already I think the current generation raised on instant messaging and the web may not realize that there’s a whole world out there that is outside the reach of our keyboards. At least I know I sometimes forget.

    The other part of the problem is linkrot. And not just 404s, but old links to obsolete file formats that can no longer be accessed. I can’t even count how many links to .ram files I’ve clicked that result in an error. When your content requires a special server (RealAudio streaming server software, in this case), it’s only a matter of time before that content itself will die.

    Now, the good news is that a simple MP3 file and static HTML file with JPEG images will be around forever. It requires no special server software, no dynamic processing of any kind, and client software is so widespread and open that it’s a guarantee you can access it 10 years later. The only missing piece of the puzzle is reliable non-expiring domain registration and hosting.

    The bad news is the rise of centralized web applications and data stores. What happens when YouTube shuts down? Remember they burn through huge amounts of cash for bandwidth each month and seem to have few options for becoming profitable. I feel better about Flickr, because they get it, but “Yahoo! has been known”:www.manton.org/2002/07/y… to not treat data longevity seriously.

    → 10:34 PM, Sep 2
  • Reflecting on WWDC 2006

    WWDC 2006 was great. (Yes, it was two weeks ago. Finally making time to blog again.)

    I won’t dwell on the announcements too much, but I generally agree with some that there was nothing earth-shattering. We have only seen a part of what Leopard will become (an improved Finder and some unification of window and control types seem inevitable). The most exciting stuff is new APIs for developers, not flashy end-user features.

    I had a great time hanging out, catching up with people and meeting new folks too. Buzz Anderson’s “Monday night party”:weblog.scifihifi.com/2006/07/2… was excellent.

    In addition to the new Leopard goodness (hello Core Animation and Interface Builder), I also came back with new excitement for a side project that I have been working on: an email client. I had stopped active development until hearing what Apple had planned for Mail.app in Leopard, but now I can safely say that they are going in a completely different direction than what I want to focus on.

    Threads like “this one on Hawk Wings”:www.hawkwings.net/2006/08/2… (via “Steven”:stevenf.com/mt/2006/0…) also confirm that there are a number of users out there who want the same kind of things I want in an email client. Of course it has to be fast and scale, but I think I have a few twists on the old formula as well.

    In San Francisco we also stayed an extra day and visited the Oakland museum, drove up to Point Reyes, and saw a great musical Friday night: “Putnam County Spelling Bee”:www.spellingbeethemusical.com/. I recorded a bunch of audio for an upcoming podcast, although not as much as I probably should have. There were a few times in particular I wish I had taken my microphone out.

    → 1:00 AM, Aug 25
  • San Francisco walk

    It’s Sunday before day 1 of WWDC 2006. Willie and I took a walk this afternoon, down Market Street to the bay, following the water around to Pier 39, then up Lombard and meandering through quiet San Francisco back streets until we come through the middle of Chinatown and back to the hotel. Along the way I recorded some pieces of audio, hoping I could use them for a podcast I’m preparing about the city. Willie snapped pictures, almost all of which came out looking really good. I like this one of me trying to get the sound from underneath the cable car track.

    I accidentally left the MiniDisc recorder going for a part of our trek, wasting a bunch of disc time. The UI is so bad on these devices that I don’t know how to cut out just part of a track, so I went off searching for a new disc. Over lunch Daniel Steinberg had showed me his M-Audio, which I had considered earlier and now pretty much regret not purchasing. Maybe I’ll eBay the MiniDisc recorder at some point.

    Tomorrow morning is the keynote.

    → 10:20 AM, Aug 6
  • WWDC 2006 coming up

    “John Siracusa rants a bit”:arstechnica.com/staff/fat… about the lack of access to WWDC for non-attendees. I agree that the session DVDs, sample code, and other resources should be made available to everyone. But there is so much to the conference that can’t be bottled up for later.

    I have been extremely lucky to have been able to attend WWDC for each of the last 5 years with “VitalSource”:www.vitalsource.com/, and a few years off and on before that. I think my first WWDC was 1996, which also makes next week my 10th anniversary of attending.

    1996 was “Copland”:en.wikipedia.org/wiki/Copl… the middle of the dark years for Apple. It was strange to be a Mac developer back then, to stay optimistic in the face of a barrage of bad press. I think it helped that I was “part of a small team”:www.purity.com that was passionate about this stuff. We couldn’t imagine building Windows software, although we did dabble in BeOS pretty extensively.

    So, on to my hopes for this year. First, I have no idea what will be in Leopard. Like many people, I hope for some Finder improvements and an effort to bring the fragmented window and control types back together. I also assume that Leopard will have nice new features, and that those features will have developer APIs to go along with them.

    Second, for the last couple of years I’ve believed that a Mac tablet is forthcoming. Tiger introduced two core pieces to this: handwriting recognition and portrait mode. “Patent rumors”:www.macsimumnews.com/index.php… continue to hint at such a device. Judging by how many designers and animators have embraced the Windows-based Tablet PCs (for which the hardware mostly still sucks), I think an Apple-designed tablet could be extremely popular. This is the only piece of hardware I would literally buy on day 1.

    Going to WWDC? Say “hi” if you see someone who “looks like this”:www.manton.org/me/293.jp…

    → 3:39 PM, Aug 4
  • 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.

    → 12:35 AM, Aug 3
  • 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
    → 9: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!

    → 1:20 AM, Jul 29
  • Video Games podcast

    My second podcast episode is about video game music. You can download it here, or subscribe to the new podcast feed in iTunes.

    » Download (MP3, 13.4MB)

    » Audio-only RSS feed

    I started working on this last year but it quickly became too ambitious and stalled. I picked it up again just a couple of days ago, simplified it considerably, and got it done. As usual, I learned a bunch, and look forward to improving a few things for the next one. Enjoy!

    And some related links for the topic covered:

    Buy at Amazon: Lumines, Electroplankton, Katamari Damacy

    All games at Gamespot: Zelda, Tetris, Super Mario World, Super Metroid, Ys Book I & II, Myst, Electroplankton, Ocarina of Time, Lumines, Myth, Katamari Damacy

    Remix credits: Super Mario World by Jason Cox, Super Metroid by The Wingless

    Game history: TurboGrafx-16, Ys I and II (Classic Gaming) Ys I and II (PC Engine Bible)

    Music archives: VGMusic.com, Zophar’s Game Music Archives

    More links: Composing with Electroplankton, Video game music emulators, Bungie’s Myth, Myth II demo, Ocarina instrument

    → 12:43 PM, Jul 25
  • Comic-Con, Scanner, and independent shorts

    Comic-Con San Diego has started. For a humorous look at the kinds of people you might see walking the show floor, check out the excellent series of “recent sketches on the Story Boredom blog”:storyboredom.blogspot.com/2006_07_0… I’ve never been to the convention, but have some friends who go most every year. Some of those people also worked on “A Scanner Darkly”:www.scannerdarklymovie.com/, which opened last weekend in wider release, banking an impressive $5000 per theater with a #9 opening at the box office. I saw the film last weekend and enjoyed it, especially the last half which seemed less burdened by unnecessary Linklater-ish dialog. In general I’m not a big rotoscoping fan, but the style held my attention and was well-executed.

    In other animation news, the National Film Board of Canada has “put many of their classic films online”:www.nfb.ca/animation… (via “Peter Merholz”:www.peterme.com/archives/…). Also see “this beautiful little film”:www.skyvu.net/film/tree… by CalArts student “Ian Worrel”:ianworrel.blogspot.com/. Despite what the big studios do, I love that traditional animation is thriving at schools and with independent animators.

    → 3:49 PM, Jul 21
  • RailsConf 2006

    Airport sketch I attended RailsConf in Chicago last month. There’s a lot of excitement in the Rails community right now, and it was nice to be there for the first year before it explodes to the even bigger event that the conference will be next year when O’Reilly takes over.

    The talks were a mix of great to just okay. Damon Clinkscales provided a solid introduction to migrations, and even though he had previewed the talk for me the night before I still picked up some useful tips. I was finally able to hear first hand what a fantastic speaker Mike Clark is. James Duncan Davidson rounded out the weekend with a high-level vision for deployments. I also enjoyed presentations by Paul Graham, the music and brilliance of Why, the closing Rails core team panel, and of course DHH on REST and embracing CRUD. One of the nice things about open source is that soon after announcing the new ActiveResource framework, David checked in his code so you can immediately see what he has been working on and play along.

    As I look back on the schedule, there were many talks I missed completely, so I’m looking forward to catching the audio or video of some of those. Still, you could get a lot out of the conference just by talking to people between or during sessions.

    While at the Austin airport, I filled a sketchbook page with random people waiting for the delayed flight. This man on the right was leaning against an abandoned ticket counter.

    → 9:31 AM, Jul 20
  • More gaming, year 2

    At the beginning of last year “I wrote about my new Game Boy Advance”:www.manton.org/2005/01/n… and how it was finally the system that pulled me back into gaming, something that consoles and computer games could not do. A year later, the PSP is out, the DS is selling well (I own one), and the Xbox 360 is off to a solid start. So what happened with the questions I raised, in particular in regards to 2d games and Game Boy Advance games?

    Sadly, earlier this year Nintendo hinted that there may never be a successor to the Game Boy Advance. Their “three pillar” strategy sounded good last year, but the DS turned out much better than anyone had hoped. With the DS Lite fixing all the major design problems with the original DS, it now seems more likely that Nintendo will focus on the Wii and let great DS games drive the handheld market until a next-gen DS becomes needed.

    2d games, on the other hand, have seen something of a resurgence. Sonic Rush for the DS has the same feel as the Genesis games. New Super Mario Bros is also fantastic. The PSP has a beautiful if quirky 2d game coming soon in the form of “RocoLoco”:locoroco.com/index.htm… Even the Xbox 360 has its share of 2d games on Xbox Live, and at E3 Nintendo announced a “2d GameCube game set in the Paper Mario universe”:www.n-sider.com/articlevi… Nintendo’s Wi-Fi Connection has breathed new life into that original Game Boy game, Tetris; 4-player internet play with “items” is a completely new Tetris and more fun than I would have imagined.

    Peterb’s essay “Design of Everyday Games”:www.tleaves.com/weblog/ar… has some great insight into game design complexity, using Advance Wars and other 2d games in several examples.

    From the October 2005 Nintendo Power, Castlevania producer Koji Igarashi says:

    bq. “2-D gaming can provide such a great game design–games with definite and solid gameplay. From a presentation standpoint, it may lack what 3-D can do, but let me yell once again, what games need are fun and exciting elements! 2-D games offer these things.”

    No question, 2d is here to stay, and it’s only getting better. The Game Boy Advance had a good run, but now it’s time to say goodbye. See Modojo’s “The GBA’s Last Stand”:www.modojo.com/features/…

    → 10:31 AM, Jul 19
  • 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
    → 10:23 AM, Jul 18
  • An Inconvenient Truth

    I saw the Al Gore documentary “An Inconvenient Truth”:www.climatecrisis.net last month. It’s a very important movie, and I hope everyone has a chance to see it.

    They handed out copies of Seed Magazine at SXSW this year. There were a few articles on global warming, including “this depressing quote from James Lovelock”:www.seedmagazine.com/news/2006… the environmental scientist responsible for the Gaia hypothesis:

    bq. “The prospects for the coming century are pretty grim: If these predictions are correct, it means that all of the efforts that have been made, like the Kyoto and Montreal agreements, are almost certainly a waste of time. They should have been done 50 or 100 years ago. It’s too late now to turn back the clock, so to speak.”

    What are we supposed to do with that? If we are scared and powerless, nothing will change.

    The Bush administration agenda too is based on fear. Fear led us to IRAQ, to no-warrant wiretapping. Instead, with An Inconvenient Truth you leave the movie theater inspired, with a new sense of urgency. This is beautifully woven together – personal highlights from Gore’s life with his talk with facts with videos.

    And as a Mac user, it’s nice to see “Keynote played such an important part”:www.apple.com/hotnews/a… in the production of his talks (via “James Duncan Davidson”:www.duncandavidson.com).

    Also, this on YouTube: “A Terrifying Message from Al Gore”:youtube.com/watch (Futurama!)

    → 2:03 PM, Jul 17
  • RubyCocoa

    I write Mac software, but over the last year I’ve increasingly been building Ruby on Rails web apps as well. Today I finally took a look at “RubyCocoa”:www.rubycocoa.com/. I wanted to whip up a quick Cocoa app that would involve some text parsing, and a dynamic scripting language like Ruby is a much better fit for text processing than C, C++, or Objective-C.

    It turns out RubyCocoa works amazingly well. I have only scratched the surface with a small test app, but I was blown away by its ease-of-use, Xcode integration, example projects, and apparent maturity. You have full access to AppKit from Ruby-based controllers and views, and a single NIB file can even reference both Objective-C and Ruby classes. Fantastic stuff.

    I don’t know if it’s ready for commercial software use yet. For distribution, I tested including the RubyCocoa.framework inside the application package and the app launches and runs correctly on a system without the full RubyCocoa install. There may be issues with requiring a recent version of Ruby, but otherwise it’s a fully native app.

    My only disappointment was in the Objective-C calling conventions. There are two versions to choose from: a style using underscores to separate named values, and a slightly easier Ruby syntax using symbols and extra parameters. Here they are:

    Objective-C:

    [my_window setFrame:r display:YES animate:YES]

    Ruby Underscores:

    my_window.setFrame_display_animate(r, true, true)

    Ruby Symbols:

    my_window.setFrame(r, :display, true, :animate, true)

    In my opinion, a better approach would be to take advantage of Ruby’s trick of allowing the last parameter to be a hash supplied without the curly braces. This feels more readable to me and more closely matches the Objective-C equivalent.

    Better:

    my_window.setFrame(r, :display => true, :animate => true)

    In any case, that’s a minor complaint and doesn’t take much away from the beauty of writing native Mac apps in Ruby.

    → 10:08 PM, Jul 16
  • Creative professionals

    My friend “John Rubio”:www.johnrubio.com has launched a new site: “CREATEaPro”:www.createapro.com/. A steady flow of good essays is already filling up the site. His latest, “10 Essential Tips to Becoming a Successful Creative Pro”:www.createapro.com/2006/07/1… is equally applicable to a wide range of disciplines, not just designers, illustrators, animators, or other artists the site is aimed at.

    I like this paragraph from his introductory post:

    "If I could go back, I would have paid more attention. I would have started my education not then, but at 8, when I first discovered the blackroom they had stashed behind my uncle Richard's light table. I would have spent more time studying the racks of lead type before dismissing them as just things that got my hands and homemade clothes covered in ink."

    It underscores what seems to be the main theme of the site: get working and stay confident.

    Sometimes I worry that I wasted too much time with trivial stuff, pushing away time for what is really important. But then I’ll encounter an artist or visionary who got a late start and still made the best of it. It’s never too late.

    Unless you listen to “John Kricfalusi”:johnkstuff.blogspot.com/2006/05/a… “After 24 if you haven’t already become really good, you will stagnate and your powers of learning and your rebellious youthful attitude will have died.”

    → 8:43 AM, Jul 11
  • Time for thinking

    “Gillian Carson talks about vacation time”:www.barenakedapp.com/misc/vaca… on the Amigo blog:

    "A holiday is a time for thinking, for relaxing your mind, for drinking beer and laughing and... for having ideas. The last time we went on holiday we came up with the idea for Carson Workshops, so I have great faith in letting your brain run free."

    I agree. Late last night I was working on a problem, something I had been struggling with in my spare time for a couple of weeks. I went back and forth between staring at an empty text editor and reading NetNewsWire. In other words, wasting time. I went out after midnight to get some milk and food for breakfast, and on the drive to the store I let my mind wander until my brain randomly struck upon an elegant solution to my coding problem. Back at my desk I implemented it in 10 lines of code and went to bed.

    Have a happy July 4th everyone.

    → 1:05 PM, Jul 4
  • 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.

    → 3:13 PM, May 29
  • Hello Saturday

    I had a busy week coding. Long days and longer nights. Deadlines are fast approaching. The last few weeks of a project are always the most stressful, but also the most rewarding as all the pieces start to fall into place. The user interface tightens up and the bugs are found and worked out.

    I shut my computer off last night and didn’t look at it again. Spent a great morning out shopping and at lunch. It’s a lazy Saturday afternoon – a holiday weekend, even – but I have a bit more code to knock out. The new Dixie Chicks CD is playing, iChat is safely in the “off” position, and for another hour or so, everything in the world is just fine.

    → 2:53 PM, May 27
  • 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
    → 9:08 PM, May 7
  • United 93

    When I first heard about the “United 93 movie”:www.united93movie.com I had just about the “same reaction as Matthew Haughey”:a.wholelottanothing.org/2006/04/b… Hollywood only wants to make some quick cash off of other people’s tragedy. The movie is going to be painful to watch, it won’t be accurate anyway, and it will be full of sappy, exaggerated nonsense meant to pull at our emotions and our wallets.

    I probably said about as much to my television. I only watch a couple hours of TV a week, and a significant portion of that is yelling at advertisements or the local news crew.

    But then a few things changed:

    • I heard that the desire to make this movie was more driven by the director than executives.

    • Reviews coming in seemed "very positive":[www.rottentomatoes.com/m/united_...](http://www.rottentomatoes.com/m/united_93/.)

    • I realized that I couldn't ignore this movie just because of my overwhelming fear of flying.

    • I remembered that after September 11th, I wanted to make a film about it too. (My story was not a "docu-drama", but a short animated film with a fantasy spin on real events in New York City.)

    Anyway, I saw the movie Friday night. As surprising as it may seem, it is very good. I don't think I'll say anymore than that.

    → 9:42 PM, Apr 30
  • Three text editors

    I love reading about the setup for other Mac users: what kind of desks, computers, and software they use. The full list of applications usually overlaps quite a bit with my own Dock, but every once in a while there is some new app that I am not using, but should be. And there are always the two killer apps that provide the most insight into how a user works: email and text.

    Are they a long-time Mac user who can’t live without BBEdit? Do they use Mail.app but secretly wish that it was better?

    “Dan starts off his post”:hivelogic.com/articles/… with TextMate, which has quickly taken over the Mac Rails community. Despite a rocky 1.0, I gave TextMate a second try with 1.5 and have enjoyed using it. There is some very powerful stuff in it, some of which never clicked for me until I watched “this screencast of snippets in action”:macromates.com/screencas…

    But I can’t use TextMate for everything. There are three text editors always running on my machine, and I don’t see that changing anytime soon:

    • TextMate: My new default for general-purpose editing, and Ruby on Rails projects.

    • Xcode: Needed for C++ and Objective-C because of the integration with the debugger.

    • BBEdit: Great for batch grep processing and multiple-file diff.

    On a whim a few nights ago I tried to use TextMate for editing even C++ and Objective-C. It's trivial enough to configure Xcode to use TextMate as its default editor (in Xcode, look under Preferences → File Types), and I was happily surprised that you can even run builds from within TextMate out of the box. If you have a TextMate project in the same directory as your Xcode project, the build will just work. If not, you can manually point TextMate to your Xcode project by clicking the "i" icon in the drawer when no files are selected, then add the shell variable TM_XCODE_PROJECT that points to a full path to your project.

    Unfortunately I could only keep this setup for one night before I had to abandon it. Without breakpoint support or any integration with the debugger (impossible), it breaks the workflow cycle of testing and fixing bugs quickly.

    → 11:13 PM, Apr 20
  • 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
    → 1: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.)

    → 9:21 PM, Apr 16
  • Mediocrity is the new application platform

    Today marks the 4-year anniversary of this weblog. What better way to celebrate than with a discussion of web applications.

    Willie Abrams said in a recent Campfire chat: “Web applications automatically have sync.” He hits on the fundamental principle of web applications popularity, and of course that has always been true. But the difference now is that some web apps are actually fast and usable too. (Gasp!)

    The rise of rich web applications that seamlessly mix Flash or Ajax while still staying true to the roots of web architecture (REST design, open standards) has upset the traditional desktop market. I first wrote about this in “To-do lists and embracing the network”, which was in a sense a subtle wake-up call to Mac developers: adapt to the always-on internet or any college drop-out with a shared server will obsolete your app after a few late nights of Rails hacking.

    But it frustrates me to see such praise given to web applications that, were they traditional, native apps, they’d be laughed away to obscurity or ignored. Ajax is a huge advancement, but that doesn’t mean that every application works well for the web. I’m sure Google engineers spent an incredible amount of work on Google Pages, but compare it to Apple’s iWeb and it becomes obvious how weak web application interfaces still are.

    Luckily some people are working through the really tough problems. Ray Ozzie’s Live Clipboard may be the start of a whole new shift in web app functionality, allowing data to move between web sites and even out of the browser. But true drag-and-drop of structured data between a native app and a web site is still a long way off.

    Let’s make some lists, starting with the good.

    • Good web applications are data-driven, multiuser, and use URLs everywhere.
    • There is some key component that is about the browsing experience. That might be sifting through large amounts of data, viewing old logs, finding people.
    • The kind of data requires an adaptable user interface, not something with a strict set of traditional widgets. HTML is perfect for this.

    On the other side are web applications that might be built by a team of smart people and with a great technology backend, but the application concepts are confused. They don’t know if they belong in a web browser or on the desktop.

    • Mediocre web applications think that a single web browser window is an entire windowing system with movable child windows.
    • No features that actually have anything to do with the web. The result is that it adds no value to the web as a whole.
    • Trying to replace the whole Microsoft Office suite.

    Something else is changing in the HTML/CSS/JavaScript platform. In 2004, Joel Spolsky wrote about how instead of picking Mac, Windows, or Linux APIs, developers are building for the web platform and can deploy to any user’s desktop. Cutting-edge web applications push that claim to its breaking point, as differences between Safari, Mozilla, and Internet Explorer often cause headaches for developers. It’s no surprise when Microsoft’s set of Office Live applications require Internet Explorer, but it is note-worthy when Google’s chat interface does not work in Safari. There is now a whole set of web applications that require the latest version of Mozilla and won’t work in anything less.

    Five years ago we accepted that web applications were going to be useful but ultimately unfulfilling, joyless experiences. Now most web apps have risen from bad to simply mediocre. The truly great ones have a foundation and design that would still be unrivaled in a desktop app. These amazing apps are not content to reimplement an old application as a web app just to allow use from any machine, but they take it to the next step: rethink the problem, stay agile, and redesign so that it’s not just web-based, but it’s actually better.

    → 10:41 PM, Mar 9
  • STAPLE! 2006

    It’s not often that I get out of the house early on a Saturday, but STAPLE! The Independent Media Expo is today. If you are anywhere in the central Texas area, check out the web site for the schedule and location info. This week’s Austin Chronicle also ran a story on the show. Last night’s pre-party at Austin Books was great, but it’s still difficult to tell how many people will show up today. It’s one day only, so if you love comics or just want to support independent artists, please stop by.

    → 9:34 AM, Mar 4
  • 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
    → 10: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.

    → 5:09 PM, Feb 21
  • Campfire Beep

    I’ve been living in Campfire quite a bit over the last few days. It’s a great app, well designed and very fast. But it suffers from a problem that iChat and other AIM clients do not have: it’s easy to forget about a chat room while working on something else because there’s no audio or visual notification that you missed a message.

    I whipped up a tiny AppleScript that monitors the chat and beeps if there have been any changes. It’s simple but it works fine for me, and should make do until someone writes a full WebKit-based Campfire client app with more options, or until 37signals releases a supported public web services API.

    Requirements and how it works:

    • Requires Safari. Does not work with Firefox or Camino.
    • Campfire must be in its own web browser window, or the front tab in any window.
    • Every 2 seconds, it grabs the HTML from the <div> that Campfire uses for the chat messages. If it has changed since the last time, it beeps.
    • Only beeps if Safari is not the frontmost application.
    • If you are in multiple chat rooms, only works if they are in their own window and visible on screen.

    Download: Campfire_Beep.dmg (90K)

    Just open the application in Script Editor to edit it. Or view the full source.

    Comments? Email manton@manton.org. Enjoy!

    Update: I updated the script so that it doesn’t display errors, more correctly identifies URLs, and supports multiple open Campfire chat windows.

    This just in: 37signals added sound notification to Campfire today! So this little AppleScript is officially obsolete. I’d like to take credit for convincing them that such a feature was needed, but we all know how they love to build features that won’t roll-out until the 2nd week after launch. :-)

    → 1:35 PM, Feb 18
  • Disney buys Pixar

    It was made official today. The rumor only surfaced a week ago, but in that time many people have gone from surprise and skepticism to hope that maybe it could be great for both companies. For Pixar, it might mean more creative control over their characters and sequels, plus not having to worry about distribution or settling for a partner without the reach into merchandising and vacation spots that Disney has. Interestingly, John Lasseter will also advise on new theme park attractions.

    In the old days under Walt, it was common for artists to move between short films, features, and Disneyland design. Walt had a knack for seeing the best skills in people and using them wherever they could be most effective. He also had an instinct for story, a relentless pursuit of quality, and of what people would want to see, or how to sell it. Steve Jobs shares more than a few of these qualities, even if his management style at Pixar has been to delegate more than micromanage. Could Jobs pull another NeXT and infuse Disney with Pixar management and culture, or will he be content to sit on the board and coordinate deals with Apple for video content? Who knows.

    For Disney, the benefits of the deal are pretty obvious, since all of the Pixar films have been huge money-makers. What’s less clear is what will happen to all the films currently in production at Disney. We have to assume they will continue mostly unchanged. Disney had a rough and controversial transition to 3d, with many layoffs and studio closures, but they did make the transition and this deal will probably upset that just a little.

    There is also still that dream that with a leader (Lasseter) who appreciates traditional 2d animation, Disney might even buy back some of those old animation desks and give 2d another try. Although some of the great directors of the 2nd golden age at Disney have left (such as Ron Clements and John Musker of The Little Mermaid and Aladdin), Disney still has many 2d-trained directors, and now so does Pixar (Brad Bird), with enough 2d fans throughout both companies to form another studio branch entirely.

    I read a bunch of weblogs by artists at Disney and Pixar now, so hopefully their views will start to trickle in too. Good luck to everyone at both studios.

    → 6:52 PM, Jan 24
  • Limitations in toys and software

    One of the first things you notice when you have kids is how bad the toys are. Everything is electronic, makes too much noise, and is quickly discarded when the batteries run out or when everything you could possibly do with the toy is exhausted. The great toys are the ones that allow an infinite number of possibilities. Each game experience is different, whether it’s building something new with blocks, or play-acting a different story with dolls.

    How do you tell the difference between a great toy and a bad one? 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. Even better, toys should interoperate with one another, something that feels forced if the types of toys are so specifically designed that they don’t fit well together.

    This is especially true for younger children. Visiting the Waldorf School last year they used the example of a silk scarf. It can be a cloak, hat, river, cloud, hair, bed, rope, or the wind. A scarf seems so limited, but it’s the extreme simplicity that gives it life through a child’s creativity.

    Keith Lango discusses limitations in animating a scene: “The next time you have a scene and you’re told all the limitations that come with it find the thrill of making it work great anyhow. […] Let the limitations be your friend.”

    No one knew whether the original Star Wars (episode 4) would be a success or not. George Lucas used what cheats he could to make the special effects work, forcing himself to be creative within the confines of the budget and limitations of technology at the time. Instead the focus was on the characters and on the story. Twenty years later, with the huge budget of the prequel films, one could argue that he was so distracted with what he could do that the important lessons of what made the first film a success were forgotten.

    37signals talks about constraints and doing more with less. I agree with that, but there’s something else. Some of the greatest software out there is designed in such a way that it can be used for purposes that the designers and programmers did not intend. The software introduces simple concepts that can be stacked and rearranged not unlike those LEGOs. There may be an implied workflow but it is not enforced. Instead maybe the interface flows around documents, which can be named anything and stored in any structure. Or maybe there is an editer that was written for one general purpose but which is simple enough that it also allows editing of other formats.

    Microsoft has been pushing for what they call an inductive user experience. It is task-based, context-specific interfaces that attempt to remove the bloated menu and toolbar clutter that the Office apps are known for. The latest phase of this is the Office 12 user interface, which introduces ribbon controls. Microsoft has been going down this path for years though, trying to expose features to the user that would otherwise be lost and buried. They are learning from what works about the discoverability of web applications.

    But you want to be careful to not force a certain workflow on the user in these cases, because by doing so the abstract usefulness of the software could be crippled. You don’t want to go too modal or too restrictive. That’s one of the reasons wizard-like interfaces were annoying. It’s not just the idiot-proofing that bugs people, it’s that there may be some truly useful features hidden behind those “easy to use” screens, waiting for a UI to come along and let users use the features on their own terms.

    On the other hand, GarageBand is a good example of a focused app (create or record music) that also had broader uses (edit and mix any audio file), which allowed Apple to go one step further and embrace what the rest of us without guitars and keyboards were using it for (podcasts). Basecamp is another flexible app that works because 37signals made the conscious decision to make communication the center of project management, above timelines and charts. Flickr, Odeo, 43 Things, and other so-called Web 2.0 apps will be successful not because of a string of buzzwords, but because they take a very simple concept (“upload photos”, “write goals”), mix in some communication and sharing, and build it in a way that encourages many different uses.

    Most software is just like poorly designed children’s toys. It might solve one problem well for a time, but it is eventually discarded when it fails to evolve with the user’s needs. Simple software that solves broad problems can be used for a variety of tasks, and is small enough that it can continue to be improved or integrated well with other applications.

    → 5:24 PM, Jan 17
  • New year drawing resolution

    For me, one of the best sources of motivation is when I know other people are paying attention. So, my new year’s resolution is going to be to draw more and post at least one drawing a week to this weblog, either standalone or to illustrate a post.

    Happy new year!

    → 10:37 PM, Jan 1
  • 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
    → 11:15 AM, Dec 17
  • Bring me the head of Charlie Brown

    Tonight ABC aired the original Charlie Brown Christmas special yet again. That thing never gets old. The animation is limited and the characters always off model from one scene to the next, but it has great voices and characters and heart.

    This seems a perfect opportunity to link to Bring Me the Head of Charlie Brown, a hilarious CalArts student film that I first saw linked from Jim Hull’s excellent blog, Steward Street. Every person who has hosted the movie has been shutdown by their web host due to bandwidth usage. Luckily it’s now up on ifilm.com. The short is made even more amusing if you contrast it with the animation style of the original Charlie Brown specials: the CalArts film has much fuller animation and better lip-sync. Even so, I wouldn’t want anything about Charlie Brown Christmas changed.

    → 12:58 AM, Dec 17
  • Randal and Rebecca

    Okay, I admit it. I’ve been watching The Apprentice this year. I hate being addicted to it. It’s not even entertaining for me because it’s so stressful just to watch. I’m probably more nervous sitting on my couch then they are in the boardroom.

    (Spoiler warning for those of you who do not watch live television.)

    Traci predicted he would hire both of them, and I was leaning toward a Rebecca pick, but either choice would be fine. Then Trump totally sets it up to hire both of them with the two potential jobs, until Randal slaps Rebecca in the face with the “There can only be one Apprentice” line. Unbelievable. I’m still obsessing over how wrong that was.

    Hopefully writing this blog post will allow me to move on and think about something else.

    → 12:25 AM, Dec 16
  • CGContextSelectFont is slow

    We’ve heard it countless times: Before you spend any time optimizing, profile your code. And yet we always think we know where the performance problems are without testing.

    Earlier this year I started some extra work to help a company port their Windows software to the Mac. It turned into a large project, and when the app ships I will write more about it here. But for now let’s just say that it involves a lot of Windows bitmaps.

    Performance had been a problem almost from the start. It is a very drawing-intensive application, and I spent time optimizing the path to Quartz. Eventually everything goes through a CGImage, but there is some overhead getting there. I knew more could be done.

    Eventually I bothered to run Shark on it. Within 30 seconds it revealed that almost 50% of the application time was being spent inside CGContextSelectFont, which was called very frequently for the very basic text drawing that was needed. I had not even suspected that code. I rewrote it to use ATSUI and all the performance problems immediately melted away. And it wasn’t even optimized ATSUI — just brain-dead create a text layout, font size, and draw.

    It was not obvious to me that CGContextSelectFont would be so slow, so I’m posting this one for Google to pick up. Happy coding!

    → 6:41 PM, Dec 14
  • Set unreasonable deadlines

    Damon and I have been discussing how time constraints can encourage creativity. I hinted at this in my first NaNoWriMo post, and it’s something I’ve been trying on other projects at work. Of course the concept is all through what 37signals is doing.

    A few weeks ago there was a web application I wanted to write. I estimated it would take a couple of weeks to knock in the basic functionality. A small project, but big enough that it would have to be juggled with other priorities. And the requirements would need to be discussed with other members of the team, which might mean a quick death at the hands of committee-led design.

    Encouraged by Willie over that weekend, we said let’s just do it and see what happens. Monday morning I asked myself: could I implement most of the application… before lunch? Because if I couldn’t, the project would still probably be sitting at zero lines of code. Luckily the app was a simple discussion system, and Rails was a particularly good fit for it.

    In the latest The Writing Show podcast, J Wynia talks about why NaNoWriMo works. He said the biggest problem writers are faced with is the blank page. NaNoWriMo forces you to start writing immediately, because otherwise you won’t have a chance of finishing 50,000 words in a month. And something magic happens when you’ve written the first sentence: before you know it stories and characters are flowing and you’ve got a half dozen pages or more. If you waited until the first page of the novel had been fully thought out in your mind, you’d still be looking at a blank page.

    Kathy Sierra wrote about creativity on speed, but I take issue with part of her post. I see speed in development work (C++, Ruby, whatever) as a good thing when it forces you to do something you would not otherwise be able to do because the task was too daunting. But speed in art is something else entirely. The latter is the whole subject of Betty Edwards’ classic book Drawing on the Right Side of the Brain. The idea is that by working quickly (gesture drawing, for example), you draw on instinct and what you are seeing, and less on what you think you know about how something looks.

    I was first introduced to this concept in animation through the books of Shamus Culhane. It resonated with me immediately not just because I knew it was true — it matched my own experience with life drawing — but because he first discovered this while working on an old 1930s Mickey and Pluto short (Hawaiian Holiday) that I remember fondly as a kid (I still have the VHS copy). In some ways the high-speed drawing technique works even better in animation because you are already talking about time. The faster you work the closer the process itself resembles the final product on screen.

    While building software is definitely an art — especially the process of crafting the user interface, or just bootstrapping an idea from nothing through brainstorming — I don’t think programming benefits from speed in the same way that art does. With software development the main benefit you get from working fast is breaking through roadblocks, simplifying, and getting things done. The creativity is a result of forcing yourself to think of things in a new way.

    → 2:12 PM, Dec 11
  • I found my cell phone

    So a couple of months ago a 1-year-old who shall remain nameless tossed my cell phone into the toilet. I thought surely I would have to buy a new phone, but after taking it all apart, cleaning it, and letting it dry in the sun — good as new. (Except for the screen. Wow, that thing has seen better days.)

    Then, a few weeks later, the phone disappeared altogether. Again, I’d probably have to drop some $$$ and buy a new one. But you know what? I stopped looking for it. I could borrow Traci’s if I really needed one, I haven’t been traveling recently, and there is something strangely liberating about going to the store or whatnot and being impossible to contact. (Except for pigeons. They will always work in a pinch.)

    The phone turned up yesterday. I’m not sure how I feel about that yet.

    → 12:25 PM, Dec 11
  • 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!

    → 1:11 AM, Dec 8
  • Music to drive back to

    The U2 concert in Houston a few weeks ago was great. I drove back late at night, with The Killers album on repeat to keep me awake. In the era of single-click pop song purchases on iTunes, it’s not often that I buy a full album. Then again, it’s not often that a band releases an album that has 10 good songs on it.

    The other day I found an old Converse shoe box taped closed, hidden behind some old VHS tapes. Opening it revealed a bunch of CDs I hadn’t listened to in many, many (many) years. Arrested Development, Pearl Jam, Gals Panic, Rollins Band, The Nixons, Temple of the Dog, Van Halen, Primus, New Order. It’s fun to think back on what I was doing, how a given song might have effected my mood or my life so long ago. It’s a lot like video game music: usually catchy, and maybe more importantly, listened to over and over again. I’m still trying to get a podcast out about that, hopefully before the end of the year.

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

    → 10:43 AM, Dec 1
  • Harry Potter book 4

    So I finished rereading Harry Potter and The Goblet of Fire in anticipation of the 4th film, which we just saw last night. (Thanks Damon for remembering to buy tickets a month early.) The film did a great job of capturing the important points of the book, while pushing the plot along at a very quick pace. The first half dozen chapters seemed to slip by in only five minutes of screen time. I was wondering how they were going to squeeze 800 pages into two and a half hours, but they did it.

    Overhead while Traci was reading the book: “It’s weird… Hermione seems so much more like a Hufflepuff.”

    → 3:32 PM, Nov 20
  • Mario Kart DS

    It’s all about the games. I picked up Mario Kart DS yesterday and it doesn’t disappoint. The Nintendo WiFi network was a little flaky last night, but things are running smoothly today. And it’s been fun to watch friend codes start showing up in my news reader, from blog sites that would otherwise restrict their postings to non-game topics.

    Here’s mine: 180448 143525. If you add it, ping me yours via email or AIM.

    → 4:41 PM, Nov 16
  • 10,302 words

    A few weeks ago I heard about NaNoWriMo, a month-long “contest” to write a novel. You start November 1st, end at midnight November 30th, and if you’ve amassed 50,000 words, you win. Of course there are a lot of winners, and no prizes, but it’s a great idea and I think really helps push people in ways they didn’t think possible.

    I wasn’t planning on entering, even though I’ve tinkered with trying to write a novel before now. It’s hard work, and it’s easy to get stuck up on plot problems or run out of ideas and abandon the whole thing. That’s the last thing I have time for. I brought up NaNoWriMo in discussion a few days ago and I talked about it as something that other people were doing, not something I was crazy enough to try.

    But three days into the month, I added it to my 43things and started writing. I’m way behind the recommended quota already, but I’ve just crossed the 10,000 word mark so I wanted to mark the milestone.

    Most of the novels, especially mine, won’t be very good. They have plot problems, weak characters, and half of them are made up as they go along. I’m 8 chapters into it and only have a vague idea of what will happen from one chapter to the next. I did absolutely no planning upfront.

    But that’s fine. It’s like a marathon. It doesn’t matter if you look good when you cross the finish line.

    It’s about setting unreasonable deadlines. They force you to stop procrastinating and work your heart out to finish something.

    → 2:05 AM, Nov 9
  • iPods, videos, and U2

    Steve Jobs in yesterday’s special event, discussing the white iPods:

    “It’s been a huge success for us, and therefore it’s time to replace it.”

    The new iPods look great. At first I was disappointed by the $1.99 price for music videos and TV shows, but when you do the math it is only a little more than buying DVDs. And what about the small quality, only 320x240? In the name of science I dropped $2 to test it.

    Last week, thanks to eBay, I became the proud owner of 2 tickets to see U2 in Houston at the end of the month. I’ve seen every U2 tour since ZooTV over a decade ago, so I wasn’t about to let little things like “too busy” and “money” stand in the way this time. Our seats are fairly horrible, but the price was right and all that matters is that we are there.

    So buying a U2 music video was a natural choice. The download time was reasonable. I clicked it to full-screen on my Cinema Display and sat down 6 feet away. It actually looked good. 30 frames per second doesn’t hurt either. I could definitely watch TV shows this way.

    Another interesting tidbit from the Apple event. Disney’s new CEO Bob Iger was introduced quite warmly by Steve Jobs, and Iger even joked that he still hoped an agreement could be reached between Disney and Pixar for continuing distribution of their films. Sounds like that could happen after all.

    → 2:50 PM, Oct 13
  • 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.

    → 2:52 PM, Oct 12
  • Corpse Bride

    Finally I had a chance to see Corpse Bride last night. Caught it at the Alamo Drafthouse, which is the only theater smart enough to show short films and other theme-appropriate clips before shows. Last night they played Vincent (Tim Burton’s stop-motion film before he left Disney), and Devil Went Down to Georgia, among others we probably missed.

    Corpse Bride is thoroughly Tim Burton. And while it may not become a classic like The Nightmare Before Christmas, it is still an enjoyable film and contains some really great moments. Interestingly the Corpse Bride herself probably has the most depth of any of the characters.

    Next up to see is Wallace and Gromit, which was number one at the box office this weekend. I bet the execs in Hollywood are wondering how there could be two back-to-back stop-motion successes when everyone else “knows” computer animation is the future. (Yawn.) In related news, the Aardman Animations studio appears to have burned down! Tragic. Not sure what the extent of damage really was yet, but it doesn’t sound good. Update: BBC has the story now.

    → 8:49 AM, Oct 10
  • 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?

    → 4:34 PM, Oct 5
  • Hurricane Katrina

    Last Wednesday I wrote a rant destined for this space, I was so saddened and then upset by what was happening in Louisiana. But I let the post sit unpublished, and by the end of the week others were voicing my frustrating much better than I could have. Randy Lander used profanity, Michael Moore raised the National Guard question, and the New York Times criticized the lack of leadership from our President.

    It was particularly refreshing to read some of my everyday weblogs and see personal stories. Keith Lango, an animator from Dallas, broke from his usual animation topics to describe what his church was doing to help evacuees.

    Last week you could feel the frustration as people wanted to reach out but didn’t know how. Some of Traci’s family in southwestern Louisiana took their boats to New Orleans to help in the rescue effort, but were turned away, despite the call going out earlier for exactly that kind of help.

    While leaders were still making promises of troops or doctors or buses two days into the aftermath, MoveOn.org had built a brand new web application for helping shelters and people now homeless to connect with others who are offering spare bedrooms: HurricaneHousing.org. It’s working.

    We sent baby stuff to family in Louisiana, gave to the Red Cross, and then yesterday loaded up a bunch of clothes and bedding to take to the central drop-off location here in Austin. Driving down the highway today my eyes searched for the location. We needn’t have worried about missing it. There was a huge line of cars entering to donate, with several police cars and many volunteers directing traffic. Just about every level of the several-story parking garage was loaded with items — bags of clothing, beds, and baby toys stacked high and stretching across the whole area of the garage. It was being sorted pretty well, and it was heart-warming to see that it wasn’t just going to sit there for weeks — some of the most important items, like diapers, bottled water, and suitcases, were already piled up on slats and wrapped up, ready to be picked up by trucks and taken to shelters. A daunting task was slowly being whittled away and you could feel that efforts were paying off.

    This disaster will likely rival the World Trade Center in terms of lives lost and damage done. And yet television stations didn’t suspend normal coverage as they did on September 11, nor did advertisers pull ads (unbelievably, we saw several for cruise ships and gas generators). I don’t think it’s a conspiracy, just that the shock took a couple of days to build up rather than the immediacy of an airplane crash. And I’m glad photographers and television crews got in, since this was very hard to visualize otherwise.

    There’s going to be a lot of blame thrown around in the coming weeks and months. Some of it justified and some just politics. Personally, I see this as a national security failure. Just a week after the storm hit, protests are already being organized. People are angry.

    I’d like to end on an uplifting note, with some message of hope and perseverance, but really, that seems a little naive. Still, great work is being done, and it’s inspiring to see it.

    → 9:48 PM, Sep 6
  • Trains podcast

    This is my first podcast, called Trains. If you subscribe to the main RSS feed using a podcast-aware newsreader like NetNewsWire 2.0, you may already have the MP3 in your copy of iTunes. If not, here it is for download:

    » Trains (MP3, 10MB)

    Update: There’s a separate podcast feed here.

    Related links for topics in this podcast:

    Frank and Ollie DVD

    The Iron Giant Special Edition DVD

    Dumbo DVD

    The Incredibles DVD secret menu (Jim Hull)

    Animators and Railroads (Jan-Eric Nystrom)

    The Caboose Who Got Loose (Bill Peet)

    South Side (Moby and Gwen Stefani)

    Trainfare (Toni Price)

    City of Blinding Lights (U2)

    → 3:02 PM, Aug 29
  • Podcast coming

    There is a place for text, and a place for sound. If you are like me, you read and write text all day. Whether it’s email, chat, html, code. For those times, music is all the sound you can take — it fits your mood and fades into the background. You don’t want to necessarily listen to someone speaking — it’s hard to concentrate on reading text and listening to someone else read text at the same time, and most people can read faster than they can listen anyway.

    But for the times when we are away from our desk, sound can play a different role. Taking a walk or in the car your mind is free to either wander, or pay attention. I believe podcasts are for those times.

    Tomorrow I will post my first podcast. If it is well received (or even if it’s not — this is blogging after all) I hope to create a podcast every few months. Because it will be so infrequent, there probably won’t be a separate RSS feed for podcasts. The MP3 files will be included directly in the main feed for this weblog. Feedback of course is welcome at manton@manton.org. Thanks!

    → 1:24 PM, Aug 28
  • New office

    I have been officially kicked out of my office by a 1-year-old. Such is life in a three bedroom house with 5 people, I guess. We packed up over 10 boxes of books and other junk, which will sit in the garage and attic until we move someday.

    Here’s a photo of my new space in our bedroom, with annotations.

    → 2:41 PM, Aug 23
  • Perfection

    I don’t consider myself a perfectionist. In fact, I can often be downright lazy. I write sloppy code sometimes. I am hasty with my artwork instead of thorough. I am always impatient to see the end result, regardless of what I am doing. (Oh, and my office is usually a mess.)

    But when it comes to things that really matter, I have pretty high standards. When focused I can solve problems well and my attention to detail usually pays off. I am self-critical, which means I can improve.

    I attended a Tufte talk earlier this year, and one thing that struck me was how dedicated he is to perfection. He phrases it in a different way, though, less assuming. “Do no harm.”

    When creating something — art, code, prose — there is an immediate personal attachment to that thing. Not only is it difficult to see mistakes in it, it seems almost impossible to throw it out and start again. But you have to. The trick is to see the investment in time not as wasted, but as a necessary first step in getting to the final place.

    Write half the novel and then rip it apart, let go of the parts that you know aren’t working and try again. Refactor, redesign, redraw.

    One of the revolutions at Disney in the 30s and 40s wasn’t just incredible talent, it was things like paying the extra money to film pencil tests, so that animators could see their work as it would appear on screen and fix mistakes instead of shipping it off blindly to the distributor. No one else was doing that because it didn’t seem to make business sense. That is, until you saw the improved results. (Software usability testing is a lot like that, too.)

    In a recent interview with Animated News, Andreas Deja talks about Walt and his high standards:

    “It’s good to inspired by Walt and what he did, and his standards. He just had these high standards, he would just give the audience something that they didn’t expect, that was beyond what they thought they would get, always aiming higher. And that’s one of his traits, that’s something to really shoot for, to go the extra mile, do even better than people would expect of you. I think it goes along with being a good artist, you’re never satisfied. It’s never good enough. That’s just the way it is. I think with that attitude you learn.”

    And with that, I’m off to create something instead of sleeping.

    → 10:48 PM, Aug 20
  • VitalSource Store

    One of our big projects at work just launched: the VitalSource Store. James Duncan Davidson and Mike Clark have posted about what it was like working on this project. My favorite posts include this one about the Rails development sandbox, and this one about RESTful web services.

    Ryan also chimed in earlier this week about the project. It feels good to write about work in this space for me too, something I have rarely done but will likely do more as our company becomes well known.

    Although the software is now freely available like iTunes, we’ve all been hard at work on this stuff for a while now. In fact the current Mac and Windows clients started life over 4 years ago, and there is a bunch of shared code in there from our internal tools that is older still. We’ve been shipping product to customers the whole time, but it feels good to now open things up to anyone.

    If you look below the surface, there is a pretty incredible foundation that we can build good stuff on top of. Comments like this one from Anarchogeek hit on exactly what we are trying to do:

    “What’s amazing to me is how the vital bookshelf is a slick mix of a web / desktop application. It uses html, javascript, and css, but it also uses native windows and interface elements. It’s very nicely done.”

    Thanks to everyone who is posting their thoughts. You can see more by searching Technorati for VitalSource.

    → 8:53 AM, Aug 19
  • Alison Krauss

    Friday night we saw Alison Krauss & Union Station at The Backyard. At one time far outside Austin, suburbia has now claimed most of the land around this uniquely Austin venue. We parked outside what will shortly be a Bed Bath & Beyond, or maybe a Barnes & Noble, or another of the too familiar cookie cutter retail shops that spring up around new neighborhoods. Walking over the dust, wire, and new concrete of the construction site, we were thankful for a chance to see a show at The Backyard before the landscape changes entirely, invaded by 24-hour parking lot lights and noisy cars.

    Inside none of that could be seen or mattered, though, and the stars came out midway through the set on a clear sky above the open-air venue. Alison’s voice was beautiful and effortless. Songs from the O Brother Where Art Thou soundtrack, other great tracks like The Lucky One and Restless, and a bunch of incredible songs that were new to me. For the encore, her voice soared as if she hasn’t even really been trying before. The audience was moved and in the span of an hour I went from being a little familiar with a few songs, to a life-long fan.

    Need some music? The Alison Krauss iTunes Essentials is a good place to start.

    → 8:20 PM, Jun 26
  • Howl&#039;s Moving Castle

    I saw Howl’s Moving Castle last night. When we showed up at the theater, I was surprised that they accidentally had the subtitled version, not the dub. It was great to see the original Japanese, and I look forward to comparing it to the English on subsequent viewings or when it hits DVD. The subtitles were very good — not the broken English you’d expect from a cheap dub, so I expect the dialog is from the translation handled by Disney.

    I should describe my first Hayao Miyazaki experience. I consider myself fairly knowledgeable about the history of animation, of a range of genres, styles, and studios, but my first exposure to Miyazaki actually came late, with the Disney dub of Kiki’s Delivery Service. I knew there was something special about this film before I saw it, but finding a copy proved difficult due to lackluster marketing and poor distribution. I went to a few video stores in search of a rental before I finally found a VHS copy for sale and bought it.

    Now, many of Miyazaki’s earlier films are definitely geared more toward children, and this is especially true with Kiki. But I was completely blown away by the innocence and total sincerity in this film, and at the climax I was near tears. It is a masterpiece that I’ve enjoyed watching over and over again now that I have my own children. Every second of film is there for a reason, with perfect pacing, dialogue, and emotion. From then I’ve enjoyed his other films over the years, including a side trip while passing through Houston to see Princess Mononoke in the theater, since it was in very limited release, and of course Spirited Away, last year’s Porco Rosso premiere in Austin, Totoro, and most of the rest.

    So Howl’s Moving Castle. I’m not sure it was my favorite of his films, but it was very enjoyable, full of both originality and familiar Miyazaki themes. When it wants to be, the animation is beautiful, and the visuals stunning throughout. The acting of the lead character Sophie as a young and old woman is very believable, the movement and walk obviously well studied. Good work all around.

    Watching a film like this, with at times such power and intensity, you’d never believe that 2d animation has been written off by most decision-makers in this country. It’s simply impossible to make a film like this in 3d, either now or 5 years from now, which means that the kinds of stories that can be told in U.S. feature animation are limited right now. As long as audiences are being entertained, few people will complain about this unnoticed drought, but the risk is that over time animation will be even more pigeon-holed than it already is.

    → 9:14 AM, Jun 20
  • Nintendo DS

    Alright I gave in and bought a DS. The newly bundled Mario 64 was too much for me to resist. I justified it as an early father’s day present to myself.

    It became increasingly obvious after E3 that Nintendo does not have a plan for a next-generation Game Boy, and instead they are putting most of their resources into the DS. The Game Boy Micro is a sweet little device, though.

    What can I say about the DS after a few days use? It is at the same time flawed and brilliant. So much more bulky than the GBA SP, and a single screen alone is no bigger. The huge win is in the touch screen, which encourages innovative games that let you tinker, explore, or control your character in a new way. This system is just fun to use.

    I picked up Kirby Canvas Curse today and I’m loving it. As Nick from 4 color rebellion said: “I here and now declare KCC the first true DS killer app. Combining elements of some of the best games of all time, Hal has created something totally fresh that sets the example of how to make a DS game.”

    Indeed. This looks like the first in a string of nice DS titles. Before now, I thought the PSP could actually do the impossible: beat Nintendo’s decade-long dominance of handhelds. But by the end of this year I think we will see quite a different story, with both DS and PSP clearly co-existing for some time to come.

    And of course it comes down to the types of games that are being developed. The audience for Halo is not necessarily the same as for Nintendogs. But if you are trying to create for the hardcore and casual gamers, you need something from both on your platform.

    From the Wired interview with Shigeru Miyamoto:

    “What’s happening with video games is the same thing that happens with anything new and interesting. At the beginning, everybody wants to see what it is. They gather around and check it out. But gradually, people start to lose interest.

    “The people who don’t lose interest become more and more involved. And the medium starts to be influenced by only those people. It becomes something exclusive to the people who’ve stuck with it for a long time. And when the people who were interested in it at first look back at it, it’s no longer the thing that interested them.”

    I found this very insightful — just that a game company is thinking about these things at that level — and it brings into focus my own “return” to gaming.

    → 12:32 AM, Jun 19
  • WWDC 2005 highlights

    Briefly, highlights from WWDC include: great Automator, .Mac, and WebKit sessions; time with James Duncan Davidson, Mike Clark, and small chats with Brent Simmons and other developers; seeing the impressive work Rich Kilmer is doing on ActionStep; the Michael Johnson Pixar talk; another software review with John Gelenyse; and hearing The Wallflowers at the Apple Campus Bash. We took 7 people from work this year, so we had a great mix of session coverage (not to mention good restaurant choices). Look forward to next year.

    → 9:41 AM, Jun 16
  • Decade

    I saw three people I haven’t seen in over a decade last week. The first two from high school — Heather, at Magnolia Cafe in Austin before leaving, then Joel randomly on Market Street in San Francisco. I wondered who I’d run into next, and the answer came a few days into WWDC when I spotted Bob Pudell, who hired me for an internship at Apple my second semester at UT, and from which I can trace just about every job I’ve landed since.

    → 9:41 AM, Jun 16
  • Collaboration and Goodbyes

    The .Mac SDK session here at WWDC was interesting. First, it was forward-looking, not something we’ve seen much this year with the exception of Intel. Also, it wasn’t covered under NDA (hence this blog post).

    The 2.0 kit will be Tiger-only when it ships next month, but it will provide some really powerful features such as publish-and-subscribe and secondary user accounts that live off a paid .Mac account. Lots of fun applications surely to come. Apple wants to enable deep collaboration across applications.

    Meanwhile, it’s been a few days and many developers have already brought their apps up on Intel. The general consensus now seems to be that this will be a smooth and very fast transition. If there are new Intel-based PowerBooks ready in January, there will be a wide-variety of popular apps ready for it.

    I use CodeWarrior for most projects, but I was still surprised to hear Apple say that almost half of Mac developers have also yet to switch to Xcode. That will be the biggest chore for most people.

    Thanks for all the good times Metrowerks. CodeWarrior was a great development environment, and in its time PowerPlant was a great framework. The Mac OS X transition has always been a mix of steps forward and back, and Xcode will be no different.

    → 9:50 AM, Jun 9
  • Transitions

    Even before I arrived in San Francisco, and even before the rumors surfaced of Apple switching to Intel, this WWDC looked to be a unique one. For the first time since I can remember, the conference was mostly going to cover a shipping OS. Steve Jobs mentioned Leopard only in that we would hear about it more next year.

    On the BART from the airport I met some fellow WWDC attendees (the Apple and Mac-hack 1995 t-shirts were an easy giveaway). We discussed the ramifications of Intel, what else might be in store. I still hoped for a new product line, maybe a tablet or something interesting and different as the first step to Intel.

    And then everything changed, the rumors were true. It was a bold move, but as Steve Jobs said, Apple is strong right now. They know what they have to do to pull this transition off.

    → 12:18 AM, Jun 7
  • Madagascar

    Madagascar is easily the best of Dreamworks’ (or PDI’s) recent animated films. The animation is filled with great character poses, holds, and snappy movement, and the designs and composition are fresh in a way that makes Shrek look only mediocre. And really, those penguins are hilarious.

    While Madagascar was thoroughly entertaining, Dreamworks’ first film, Prince of Egypt, still holds a special place for me. It was risky and dramatic in a way that few films were before or since. We are now clearly in the era of Pixar-inspired buddy comedies. Maybe audiences won’t grow tired of that formula, as they did 10 years ago when every studio was attempting to mimic Disney’s musicals, but I’m still hopeful that a traditional studio will seize the opportunity to reinvent the artform, again.

    → 8:37 AM, May 31
  • Re-evaluating the PSP and DS

    After a colleague bought a PSP, I decided to re-evaluate the PSP and DS. I did some more research, looked at the available games, pricing, and features. I still enjoy my Game Boy Advance SP, and stand by what I wrote earlier in the year.

    But I didn’t place enough importance on how it is the games that sell a platform. Forgetting the price tag or the cool non-game features (internet and movies), the PSP’s initial game lineup wasn’t that appealing to me. If I wanted those games I would own a PS2. There are definitely a few gems in there, though — Lumines looks very good.

    Not surprisingly when you consider the unique pen input option on the DS, the DS games are going in another direction entirely, and for the most part I like it. This video of an upcoming Kirby game looks fun, similar to the new Yoshi. And then there’s Electroplankton, a bizarre title that is less game than musical experiment.

    4 color rebellion on casual gamers:

    “Many gamers are so emersed in the medium, or have been at it so long, that they dont look at the casual market with open eyes. All of those new gamers Nintendo is talking about? This is where they are. They dont know what Final Fantasy is. They havent beaten Super Mario 64. Its the simple, enjoyable games that get them interested.”

    I fall somewhere in between casual and hardcore gamer. I want games that I can learn fairly quickly, and that I can just as easily play for 10 minutes as 2 hours. I also enjoy old games (lately I’ve been mixing Advance Wars 2 with Super Mario Bros 2).

    Getting back to the PSP vs. DS debate. Would I trade in two screens for a single screen the size of the PSP’s? Probably so. A next-generation Game Boy would ideally fit somewhere in the middle, with a larger screen than the current GBA but maybe not as big as the PSP, to keep that easy “in your pocket” advantage.

    This illustrates the challenge Nintendo faces with their three-tier strategy. Although the DS can play GBA games, a new Game Boy is unlikely to play DS games. Nintendo is the unquestioned king of backwards compatibility, but it’s unclear how they are going to solve this puzzle.

    After I wrote the above, Nintendo announced the Game Boy Micro. This is not the next-generation device that some were expecting, but it sure looks cool. It is lighter than an iPod mini and just a little bigger. If the price is right (and I expect it will be), and it works with the Play-yan for music and movies, this could be a killer little device.

    → 9:08 PM, May 26
  • Integrating web applications

    We all use web apps. Google Maps or Mapquest, Yahoo! Mail or Hotmail, Basecamp and FogBugz. The ubiquity of these services has reached the point where it is increasingly useful to point to them from other applications, web or native. Mac OS X’s Address Book and Dashboard Yellow Pages both point to Mapquest.

    Mac OS X Hints has a hack to point Dashboard at Google Maps instead, but what I’d really like is system-wide settings for important classes of web applications. My default search engine, maps, or photo management apps could all benefit from this.

    Sadly, even on the desktop — where native apps can easily register for protocol handlers and play nice with others — the situation is often closed. The “Lookup in Dictionary” command in Tiger’s Safari is hard-coded to Dictionary.app, instead of checking what other app might have registered to handle dict:/// URLs. If dict:/// was replaced by http://www.dictionary.com/, it becomes even more extensible. But in Tiger, third-party developers who have a great dictionary application or web site are obsoleted without a user choice.

    This problem will only become more exagerated over time. Every app that could potentially exchange data, whether web-based or not, should have an integration story. If the OS doesn’t want to help this effort, perhaps an open framework in the spirit of the original Internet Config can fill the need.

    → 8:32 PM, May 17
  • WebTV in the trash

    The other day I went for a walk and on the way back picked up a candy wrapper on the sidewalk, to throw away when I got home. If I pick up other people’s trash (not a frequent activity, but not that uncommon either), I don’t expect a thank-you or for anyone to notice. But this time I did receive a thanks, of sorts.

    I opened our outside garbage can and staring at me from the bottom was a pile of cables and an original WebTV. I had bought the WebTV years ago. The reasons given for this strange purchase ranged from “browsing the web in your living room is neat” to “it’s for my mom” (she didn’t end up liking it). The ancient and mostly-useless device almost made it into one of our garage sales, on Traci’s request, but I’d always feel guilty even trying to sell it. It was obvious she had thrown it away, giving up on me and my often unreasonable tendency to keep everything.

    Rummaging through the technology junk, I salvaged a Firewire cable, audio/video cables, a power cable, and a Laserdisc remote control. It felt good to finally close the lid on the WebTV. Who knows, maybe the Laserdisc will be next.

    → 12:04 AM, May 9
  • 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.

    → 9:16 PM, May 2
  • Experience before animating

    Kelly is studying in Paris. She writes about animating from your experiences after talking with Pixar animator Bolhem Bouchiba:

    "But it made me realize something about good animation. It dosen't come from studying other films. Or live action. Or acting. It comes, first and formost, from living life. From being hurt, being ecstatic, being bored, being in love, suffering, moments joyful and rich, things you can't describe. It comes from experiencing them, and shoving them onto the paper. I don't think you can animate something truthful if you've never felt it yourself."

    Meanwhile, in the first Animation Podcast interview, Andreas Deja talks us through his early childhood in Germany, from the first time he experienced Disney animation up to the beginning of his career at the mouse studio. This is a must-have podcast feed for animation fans.

    My own podcast episode should be done in another week. It also touches on animation, with excerpts from a few films and my own audio recordings during a trip last month.

    → 12:38 PM, May 2
  • Tabs are a hack

    I don’t like Safari-style tabs. Sure, I use them — and in NetNewsWire if you want to use the built-in web browser, there is no choice) — but I’ve always thought that there should be better ways to manage windows, and it should be built into the operating system. As left to third-party developers, each application implements tabs in a slightly different way. Everything from the visual appearance of tabs, to where they are attached to a window (drawer, sidebar, or toolbar), to how the close box works, to the keyboard shortcuts for opening and closing tabs, to the persistence of tabs.

    Instead, Apple should have built upon Exposé to offer system-wide window grouping state, so that in any document-based application the user is in control of how windows are tabbed. Actions like dragging to rearrange tabs could be implemented once and work consistently across all applications.

    Of course with Tiger now shipping, it’s probably too late. By the time 10.5 is announced a year from now the damage will be all but permanent. It always impressed me that Apple was so quick to roll out a standard toolbar implementation in both Cocoa and Carbon, and I think we would have seen similar gains from a tabs framework.

    → 8:04 PM, May 1
  • The Animation Show 2005

    The Animation Show’s 2nd year show came to Austin last weekend, and I was lucky enough to see it Sunday evening with Don Hertzfeldt taking questions afterwards. He discussed traditional animation, the dying art of shooting on actual film, and the four-year process of making his latest film, The Meaning of Life.

    One of the things that struck me about this year is the running time of some of these shorts. 10 minutes is fine if it’s brilliant work, as many of these are, but I was surprised that a couple films didn’t hold my interest. Overall it was a great show, though. Some of the highlights for me were Guard Dog (Bill Plympton), When The Day Breaks (rotoscoping as style instead of cheat), Hello (only animation can do this), and Pan With Us (stunning innovation in stop-motion).

    The Man With No Shadow was also a favorite. Don Hertzfeldt likes to talk about how real innovation in animation usually happens in short films, so it was appropriate that this film took an element that is usually the first thing to be removed from low-budget television or feature animation — shadows — and built a whole film around it.

    Don’s latest itself was good, but probably not equal to Billy’s Balloon or Rejected. From his weblog:

    “there’s a lot going on in there, tho on one level i think the film is sort of like a painting and what you take is going to be very personal and very different than the guy next to you.”

    In 2003 I posted my review of the first show.

    → 11:19 AM, Apr 20
  • How podcasting saved RSS 2.0

    Dan Cederholm asks the relevant questions about weblog syndication formats:

    “Will we forever continue to support multiple RSS formats as well as Atom? Is Atom succeding as a successor to RSS? Will this stop people from using the term ‘RSS’ to describe an Atom feed? It’s all very confusing — and that’s coming from someone who actually understands some of this stuff.”

    The competition between Dave Winer and the Atom folks seemed pretty intense a year ago. Six Apart has pretty much shunned RSS from the beginning, preferring RDF and then Atom. Blogger made the controversial move from RSS 0.9 back in the Blogger Pro days, to Atom-only, and switched to the Atom API instead of the widely-deployed Blogger API that they developed. Atom gained a bunch of momentum, and steps to make it an official standard were well underway.

    But then something interesting happened that no one expected, and it happened almost overnight: Atom was obsoleted.

    RSS 2.0 won not because of the enormous number of major RSS 2.0 sites (although that helped), or because it was better (it’s not, really). It won because of podcasting. It all came together for me when I read Evan Williams post about podcasting and RSS, and he didn’t mention Atom at all.

    It’s clear by all the wp-rss.xml files out there that many of the Movable Type 2.x users are migrated to WordPress. The price of Movable Type 3.0 is hard to justify for personal sites, or even business ones for that matter.

    The influence that Six Apart and Google had on syndication formats is vanishing. In the end it wasn’t even about politics at all.

    → 7:59 PM, Apr 15
  • Where are the 2d animators

    It’s always interesting to see where 2d artists have gone after the decline of traditional, hand-drawn animation for feature films. That might seem an odd thing to say considering that recently a hand-drawn Pooh movie opened in theaters, but also keep in mind that it was animated in Disney’s Japanese studio, which has since closed.

    The documentary Dream on Silly Dreamer follows this and similar tales as they unfolded in California and Florida. It will be making the festival rounds, and hopefully will show up in a city near you soon.

    Masa Oshiro, who worked on July Films’ My Little World, is probably typical of many animators who have left the industry for a while, or for good. I found this snippet from his bio particularly revealing, a strange unintended mix of humor, hope, and sadness: “As the industry shifted from traditional to 3d animation, Masa left to pursue designing and sculpting small collectables.” (Those are cute turtles, though.)

    And then there’s Andreas Deja, perhaps the last of the master animators at Disney who refuses to give up his pencil. He’s working on the direct-to-video Bambi II, trying to infuse as much quality into it so as not to shame the creators. Surprisingly, early stills from the film don’t look half bad, even if the mere concept should be cause for concern. Keep up the good fight, Andreas.

    Don Hertzfeldt is in a category all by himself. His latest Animation Show festival hits Austin this weekend and will be a must-see.

    → 12:19 PM, Apr 14
  • NetNewsWire unread count

    Or: How I learned to stop worrying and ignore the blogosphere guilt trip.

    nnw_dock.jpg
    → 12:11 PM, Apr 14
  • SXSW: Wrap-up

    Leaving SXSW I think I noticed two major themes at the conference this year:

    Software development. Jason Fried’s talk on small teams set the tone here. Get close to your users, start building the real thing early, and keep it small so you can change easily. In “How to Inform Design”, Jeffrey Veen took part of that one step further. Instead of user-centered design, he strives for self-centered design. If you become the user, you’ll know how to build it.

    Thinking about software development approaches — especially when they take an extreme position — is useful to me because you can take those statements and stamp them onto past successes or failures to see whether there is any connection. Many interesting work conversations followed.

    Metadata. Tags, folksonomies, and the lowercase semantic web. There were at least four sessions on this topic, from Eric Meyer’s introduction on XHTML-based microformats to the panel of RDF skeptics lead by Matt Haughey. These problems are hard to solve. When I was originally interested in an internet of rich metadata it never occurred to me that the solution might come from the grassroots, a virtual community of taggers bringing structure with nothing more than keywords and a few smart pieces of software.

    Ultimately it’s a UI issue. Flickr and Del.icio.us are successful because they make it easy and provide a clear incentive (the ability to find things again). Other distributed metadata initiatives are simple to use because they work within the existing web we know (XHTML and URLs), but we still need applications that will provide that same incentive for users to care. Maybe Rubhub is a start.

    → 2:56 AM, Mar 17
  • Podcast Shuffle

    Discovering new podcasts is still an awkward process, despite some great podcast support in newsreaders such as NetNewsWire 2.0. I thought it would be interesting to randomly pick individual podcasts and aggregate their latest posts into a special feed. After a little bit of hacking I came up with Podcast Shuffle. Perhaps the name is too gimmicky, but it’s a fun little feed that may even surprise you.

    → 2:32 PM, Mar 14
  • SXSW: Simplicity, Ta-da, and XFN

    Jason Fried has been talking a lot lately about keeping your product simple. His SXSW session on Saturday continued this theme of doing more with less — “constraints encourage creativity.” One example he cites is how Ta-da List’s lack of due dates or responsibility assignment forces people to find a human solution to the problem, often something as simple as appending a date to the to-do item. Later, if patterns emerge in how users are working around true limitations in the software, then that is the time to add an interface and make it a real feature.

    Tantek makes a similar point when discussing XFN. Rather than create a complex format that attempted to solve several different problems (some of which may not even exist yet), they simply looked at one thing (blogrolls) and paid particular attention to how users were working around the limitations of a simple list of links. Adding “*” next to people a web site author had met is the same idea as adding a date in the text of a to-do item in the 37signals example. They could then extract the true semantics behind those existing practices into XFN and similar microformats, building on top of XHTML to embrace the way users currently publish for the web.

    → 1:44 PM, Mar 14
  • Year three

    It’s now been three years since I started this weblog. Here’s last year’s post, the one a year before that, and the first post. I like that the anniversary date falls around SXSW. It serves as a convenient reminder, and is also a good time to reflect on blogging in general.

    Since 2002 I’ve posted 219 times. A small number compared to many blogs, but sufficient for me. When I first started this blog with Radio Userland, it couldn’t separate each post into its own HTML file unless each post fell on separate days. I found the use of anchors annoying, so I limited myself to posting once a day. With Movable Type that limitation was gone, but I still don’t post more than once a day, and usually less often than that. With so many bloggers to read, some of my favorites are those who only post once a week, but when they do it’s their best stuff.

    → 2:22 PM, Mar 9
  • Elements 7

    If you’ve been wondering what all the podcast hype is about, Ryan’s latest Elements episode has a few of the things that make podcasts great: music, interviews, uniquely non-mainstream, and told with a fresh perspective that you can only get from listening to normal people talk. Another thing I like about Elements — and this applies to both weblogs and podcasts — is the consistent length and post frequency. It’s nice to look forward to an under-30-minute audio show synced to your iPod every Sunday.

    This weekend I spent some time (not much) on a little podcast-related service that I’ll unveil this week. (And by “unveil” I mean upload a couple files and call it shipped.) I’ve also got a podcast in the works, although (contrary to what I said above) it will not be a regular fixture of this site. Instead it will be more like the occasional photo album — a supplement to the text and delivered in a way that fits the content.

    → 11:15 AM, Mar 7
  • Staple!

    For comics fans in Texas, the Staple! Expo will be held in Austin this Saturday. The Austin Chronicle has a story on it. Congratulations to Chris Nicholas for organizing the event since mid-2004. It should be a fun time.

    John Rubio did a fantastic job on the logo, and I tweaked the web site design and handled the HTML and programming maintenance. The news weblog in particular seemed to work out very well, because it allowed Chris to keep the information on the web site current.

    I’ve discussed artist-driven businesses before on this site, especially as it relates to the comics and animation industries. I think conferences like Staple have an important role to play in that.

    → 2:48 PM, Mar 3
  • The Ruby end-run

    It was fun while it lasted, but PHP’s time may have come and gone. The benefits of PHP in the early days (extremely fast prototyping, embedded in HTML) outweighed the problems (haphazard function naming, poor object-oriented features, and difficulty designing large applications).

    PHP Everywhere discusses the move to more robust object-oriented features to compete directly with Java. But some of the old design decisions cannot be swept under the rug. They will remain, leaving an awkward architectural mess.

    Web applications are not like traditional applications, where you make an investment in a programming language and source code that makes it all but impossible to change. Web apps are constantly evolving, being rewritten. Or they are obsoleted, shelved. A new domain name is registered and the process starts again.

    Enter Ruby on Rails, simple and elegant, drawing the best from the PHP and Java camps. There’s been a lot of criticism from the Java world, but many of those people write code like it was a traditional application anyway — big, complex, connected to legacy systems. They are too invested to switch, and that’s fine.

    But the PHP people will switch, easily, and with the apparent momentum of Ruby right now, maybe it’s already happening. Forget the enterprise for now. Rails is a perfect fit for anyone who develops for the web on its own terms, and the people behind apps like Basecamp, 43things, and the upcoming Odeo match that profile.

    Update: Dan responds with further exploration of PHP, Java, and Ruby, focusing on why Ruby may not be well suited as an introductory programming language.

    → 9:25 PM, Feb 25
  • Blogging full time, and Cartoon Retro

    I hope Kottke’s decision to blog full time without advertising will be a success. He’s got a large reader base. I stopped reading Kottke for most of 2004 but have re-subscribed so I can follow his progress.

    The interesting question is whether this approach scales to more than a small number of weblogs. On one hand, I think it does, because even obscure subject matter can find an audience (see Wired’s The Long Tail). But on the other hand, it doesn’t matter. Personal, independent, no-income weblogs will always be important.

    I also wondered whether some kind of bloggers cooperative would work. You donate money to the group as a whole and read whatever blogs you like from the list of members. Sort of like contributing to a public radio station, not to a particular show. But I’m not sure that really solves anything, and introduces new problems (bureaucracy, larger initial donation, and paying for weblogs you don’t read). Better to sell directly from creator to consumer.

    Last year I subscribed to Shane Glines’ Cartoon Retro experiment. He posts sketches every day, writes about classic art and cartoons he is studying, and occasionally updates his site with full features. The eventual goal will be to produce entire short films, outside the studio system, funded by fans. This is an effort I can fully support. Unlike Kottke or John Gruber, there is no free content from Shane Glines, so that $5 a month goes a long way.

    → 10:36 AM, Feb 23
  • Ajax, Flash, and web standards

    We should all be weary of new acronyms lest we promote and give significance to half-baked ideas and fads. But Jesse James Garrett’s Ajax essay is a good read — a concise, high-level look at how JavaScript and XML will upgrade the web browser for fast, dynamic web applications.

    Perhaps purposefully, he leaves out the role (if any) of HTML + Flash applications, which Macromedia has been promoting for some time as Rich Internet Applications. It is essentially the same concept, but basing your app on HTML, JavaScript, and XML can solve the major problems of Flash-based apps. Flickr, for example, integrates Flash, not DHTML or Ajax. Don’t misunderstand me, I think Flash-based web apps negate the benefits of the web infrastructure, such as good REST design, but a thorough analysis of asynchronous interactive web apps needs to include Flash at some level.

    Jeffrey Veen mentions the significance to Flash apps, and Matthew Haughey covers the KnowNow connection.

    Another new Ajax site is the Panic t-shirt store. How many web apps use drag-and-drop at all, let alone so effectively? It’s so simple and elegant, by the time you get to the checkout page and see yet-another-web-form, the change is almost jarring.

    The interesting thing will be whether the web standards folks embrace Ajax. You won’t find a spec for XmlHttpRequest at the W3C. Look at the Google source, and you’ll probably see conditions for Firefox or Internet Explorer (Safari isn’t even supported). But Ajax has something going for it: it brings some of the power of native apps to the web, but unlike the old promise of Java or even Flash, it’s zero-install and quick-load. We’ve got to drop this “web standards” holy war and just get on with building next generation apps.

    There wasn’t an acronym when embedded images and HTML tables hit the web. The web just changed, seemingly overnight. The same thing will happen with more interactive, less page-driven applications. It’s just the new web.

    → 2:51 PM, Feb 22
  • 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.

    → 9: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.

    → 9:44 PM, Jan 18
  • Back to politics

    Thursday is the presidential inauguration, as well as Not One Damn Dime Day. Every year or so you hear about one of these attempts to effect the economy, and of course they usually have no noticeable effect. But you never know — one day one of these virtual protests will catch fire.

    “On ‘Not One Damn Dime Day’ those who oppose what is happening in our name in Iraq can speak up with a 24-hour national boycott of all forms of consumer spending.”

    Meanwhile, I’m almost at the point where I can listen to the news again. For years I’ve listened to NPR every day, the Sunday talk shows, and frequently Nightline or (when I had cable) The Daily Show at night. But after the election I shut down everything except weblogs. It was just too painful to listen to the media.

    Howard Dean is receiving strong support in his run for DNC chair. It shouldn’t surprise anyone who read what I wrote during the Democratic primaries last year that I support him 100%. Hopefully there will be a way to help — it doesn’t have the same grassroots feel as a presidential run because there are so few people who will vote.

    → 1:00 PM, Jan 18
  • Pat Smith&#039;s secret

    From the journal of Pat Smith:

    “it's strange to start a new animated film. it seems so far away that i'll be sitting in a theater watching it. but there's a big secret about animation: it's a series of steps, none of which are all that daunting. and sooner or later, there's no more steps to take, and BANG, your film is done! at least that's how it works with me.”

    I got the same feeling watching the extras on The Return of the King DVDs last week. The task was too enormous for most of the crew to comprehend in it’s entirety.

    I guess that’s the way it is with a lot of things. You keep doing it and doing it. Sometimes I catch myself thinking too much — staring at a software interface instead of writing code, or reading art blogs instead of lifting a pencil. Better to just try something, and save the thinking for walks or long drives.

    → 1:52 AM, Jan 17
  • 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.

    → 1: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.

    → 11:52 AM, Dec 13
  • Google and the great apps to come

    Google Desktop Search is a neat app. The integration of local and global results is brilliant. But it’s not the future of desktop search.

    David Galbraith said something interesting in a post titled “Google lock in”:

    “Whatever Microsoft do, Google have shown the way forward, their desktop search makes your desktop just one more search tab. It brings your desktop to the web rather than the web to the desktop and this seems like a much more logical UI experience.”

    Maybe. I’m not sure I totally disagree with that point, given Google’s dominance of web search. But one thing I do believe is that a native application user interface always has the potential to be better than a web-based one. If you buy into that opinion, it means that we aren’t done. In fact, it means Google’s monopoly as it currently exists is vulnerable.

    Let’s take a step back. In general, there were three things that allowed web-based apps to win out in the late 90s:

    • Ease of development. Building interfaces in HTML is fast and very flexible.
    • Speed and storage. Fast databases, lots of memory, and load-balanced web servers.
    • Cross-platform. New companies put their resources on web-based apps instead of traditional ones. (Also see Joel Spolsky’s “How Microsoft Lost the API War”.)

    Native apps can’t compete on those points. Instead, they can win with thoughtful interfaces constructed to fit on the platform alongside other native apps. As an example, lately I’ve been using Ranchero Software’s MarsEdit for weblog writing, and it’s a huge step forward from the Movable Type web interface. And that’s not because the Movable Type interface is particularly bad (it’s actually slightly above average). It’s just that a web-based app, even running locally, is a black box that cannot play nice with the rest of the system.

    Tim O’Reilly likes to talk about how little apps such as Apple’s Address Book and iChat provide base features that other apps can build upon (a Friendster-like social app should hook into your buddy list). That kind of integration is difficult with web-based apps because user data tends to be stored locally, and if published to the web, it could be to one of any number of services. Instead of two platforms (Mac OS X and Windows), you may have dozens of individual web-based platforms (Yahoo!, MSN, AOL, Friendster, Mapquest, Fandango, and more). Those services are designed to take your data and keep it; there is not likely to be a standard API to share information between them anytime soon.

    The potential of a native app is even stronger in this era of web services. Web developers are going back to their roots, building REST design into their applications from the ground app instead of exposing complex SOAP calls on the top as an afterthought. A recent example of this is Del.icio.us, it’s API, and the still-evolving Cocoalicious client, which already has hooks from PulpFiction and NetNewsWire. Another example is 1001, a Flickr client.

    To bring this back to search, Google rose to the top because they were fast, accurate, and valued the user enough to know when to get out of his or her way. Google is still all of those things, because they had unique leadership that recognized those strengths from the very beginning.

    So why, especially given Google’s strong brand, are there still new competitors investing in search? Because there is room for improvement. Users will move to new applications for the same reason they moved to the iPod: it was that much better. Snap adds sorting, for example. Teoma added a refine feature.

    But unfortunately for the competition, they are trying to do things that are simply best left for outside the browser. Gmail was widely acknowledged as a breakthrough app that could hold it’s own against native email apps, but that’s only because native email apps are so notoriously bad. With the limited number of emails most people have, the “speed and storage” advantage of most web applications was not a critical factor.

    Enter Apple’s spotlight technology. It integrates with the Finder or any application that wants to play. It’s extensible by third-party developers to accommodate file types that Apple does not support out of the box (this was a quick complaint from Dave Winer about Google Desktop Search). It has a fast, polished user interface that is built around finding local files and dealing with their metadata in an appropriate way. It’s just better.

    This won’t be the first time Apple has stepped into search and metadata (remember R.V. Guha’s MCF and the HotSauce fly-through browser? Remember Sherlock?). But it will be the first time it’s really clicked in the UI.

    As Wes Felter said: “If I just had the Web browser UI I would feel totally crippled.”

    And at some level, Google gets this fully. Take for example their Picasa photo application. Or the Google Deskbar.

    Don park sees the problem in terms of metadata and less about user interface:

    “The core problem here is that search engines like Google throws everything into one pot.  For web search, all the web pages on the Net gets thrown into that pot.  Thankfully, hyperlink-based pageranking pulls the good stuff to surface with minimal hassle.  With desktop search, all of your documents gets thrown into the pot without an equivalent of page ranking to measure relevance.  IMHO, there aren’t enough metadata on the desktop to achieve the same level of utility Google web search offers.”

    More to the point, Dan Wood commented on the accidental integration between Watson and Delicious Library:

    “In fact, I recently read that Watson’s Amazon.com tool integrates quite nicely with Delicious Library via drag and drop. A lot of this has to do with the support we had put into Watson for integrating with other applications, including your browser and Spring. If Delicious Library hooks up with PriceGrabber, we may find similar compatibility between the two applications as well, either through luck or through design.”

    Two simple things made this possible: Apple providing a recommendation for how drag-and-drop of URLs should work, and the REST-style URLs of a traditional web app like Amazon.

    A final conclusion, to a post that’s already too long. Newsfire is a lightweight news reader with a clean interface that is a hybrid of native controls and HTML, backed by useful metadata (RSS). And Delicious Library is more than a book catalog app, it’s an Amazon UI stripped to just the essentials. Both these applications are at the peak of a shift that has been a couple years in the making — the convergence of web services, post-iTunes UI design, and system services such as Address Book, drag-and-drop, and metadata. Future apps will be judged by these standards.

    → 9:57 PM, Dec 10
  • Tiger Tech Talk

    I didn’t know exactly what to expect when I signed up for Apple’s Tiger Tech Talk. It looked like a sort of mini WWDC event, and since the first stop on their tour was here in Austin, it was a no-brainer to sign up. But would it be just a marketing-filled event with little real substance? Or maybe just rehashing of WWDC slides but given by less prominent developers?

    I’m happy to report that it was a high-quality event. Apple was represented by such familiar faces as Xavier Legros, John Geleynse, Travis Brown, and George Warner. Extra perks included free continental breakfast (I should have shown up earlier), lunch, dinner appetizers, and drinks. The Tiger compatibility lab had about 10 G5s.

    Most of the sessions were essentially repeats from WWDC, but the informal nature of the setting allowed for good questions. Apple said about 120 people registered, and there were four concurrent sessions after the overview talks.

    Speaking of Mac developers, Panic describes the history of their Audion product.

    → 11:43 PM, Nov 11
  • 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.

    → 4: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.

    → 3:49 PM, Nov 5
  • What just happened?

    Based on the exit poll numbers and the supposedly record turnout, I fully expected that we’d know within a couple hours after polls closed that Kerry was the decisive winner. I was bewildered when Florida, Ohio, Pennsylvania, and Wisconsin still weren’t called, so I went to bed.

    I woke up off and on in the middle of the night, dreaming that I was browsing news web sites. At 5am I couldn’t stand it any longer and got out of bed for good, and now I’ve been deciphering what happened since last night.

    The turnout was up, but even the current numbers seem low considering all the people who waited several hours in line to vote. And where was the young vote? I wasn’t the only one to predict they’d make the difference. Is the Republican get-out-the-vote effort just that much better?

    Once again, the networks (specifically NBC and Fox) called states too soon. By giving Ohio to Bush, they were left in the sticky 269 situation, not daring to give any more states (like Nevada) to him lest they completely undermine the vote counting process. The networks promised more transparency in how they project a winner, but I didn’t see it.

    → 6:51 AM, Nov 3
  • 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.

    → 10: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.

    → 11:49 PM, Oct 28
  • Polls, Dean, and how Kerry will win

    In the 2000 presidential election, Gore was behind in all the national polls before election day. I remember that night, listening to the radio in a fast food drive-in lane when NPR called Pennsylvania for Gore. I cheered to no one in particular, because it was the first confirmation that Gore could win.

    If you believe the polls today, Bush has a few point lead, and the election will be decided in a handful of battleground states. I no longer believe the polls, except as an indicator for overall trends. Kerry will win by a solid margin. Here’s how:

    Youth

    Last Monday morning I was in the Austin airport waiting to catch a flight, watching the local news. They were covering University of Texas students who had stayed up all night outside the early voting location on campus to vote. They were all Kerry supporters.

    Now, a week later, the local news is reporting some numbers from UT. There are three times the number of early voters on campus compared to 2000. For the most part these voters are not even included in polls because they all use cell phones as their primary number.

    Republicans

    It takes a lot to abandon years of straight-party voting, but it’s happening this year. Sometimes it takes enormous respect for the candidate (such as Democrats who could easily vote for John McCain). This year it’s the opposite: Republicans are baffled by Bush’s misjudgments in war and his abandonment of fiscal conservatism.

    Also see: Republican switcher ads

    The undecided

    Apparently there is a large percentage of voters who are just confused about how politics work in this country. Personality means more to them than terms like liberal and conservative. Instead, there are usually a few key issues that turn these voters to any one candidate. Two of those issues this year are the economy (lean to Kerry) and fear (lean to Bush).

    The debates help people choose, and Kerry outperformed Bush in all three. Kerry wasn’t totally immune to criticism, though. The flip-flop nonsense tends to stick because there is a little bit of truth to it (ignoring for the moment that Bush has more than his fair share of major policy reversals). Mathew Gross pointed to a <a href=“http://www.time.com/time/magazine/article/0,9171,1101041004-702123,00.html

    “>Time Magazine article second-guessing the outcome in the Democratic primaries:

    “Democratic voters should stick to their day jobs. With just five weeks until Election Day, there’s reason to believe they guessed wrong — that Dean would be doing better against Bush than Kerry is.”

    Despite the scream, I still believe that Dean would have been a strong candidate. He distinguished himself from the other candidates by a real desire to effect change: even today, he is a powerful force for local and state-level candidates. He showed the Democrats how to win when they had lost their voice.

    So there you have it. My prediction: Kerry by 3 percent nationally, with important wins in Florida, Colorado, and Pennsylvania giving him the electoral college. Record numbers of young voters.

    → 5:09 AM, Oct 27
  • Voice recording

    I bought a Griffin iTalk earlier this week. Not entirely an impulse buy, but I did drive over to the local Apple Store instead of ordering online. I’ve been wanting the ability to record on my iPod since I received my first generation one. I find myself walking and driving a lot lately, so it’s a great way to record random thoughts while away from the computer. For personal use, not for broadcasting.

    The quality is acceptable, but not what I’d like it to be. I tried to record a lecture in a large auditorium, with poor results. Might try again with a better position, or even an external microphone.

    The software interface is the expected Apple high standards. Plug the thing in and it works, nothing to install. Yes, that’s right — Apple built recording software into all iPods (except the minis), knowing that only a very small fraction would have the hardware necessary to record. And that philosophy comes from the top. Here’s what Steve had to say in an interview with BusinessWeek:

    “It’s because when you buy our products, and three months later you get stuck on something, you quickly figure out [how to get past it]. And you think, ‘Wow, someone over there at Apple actually thought of this!’ And then three months later you try to do something you hadn’t tried before, and it works, and you think ‘Hey, they thought of that, too.’ And then six months later it happens again. There’s almost no product in the world that you have that experience with, but you have it with a Mac. And you have it with an iPod.”

    Jon Udell frequently talks about audio techniques. I liked this section from today’s blog post on personal productivity:

    “How many times have you heard this? ‘Your call may be recorded in order to assure quality customer service.’ Lately I’m starting to repeat the line back to them and then start recording on my end too. If you can pinpoint what an agent said on a previous call, you can alter the balance of power.”

    It’s been a while since I bought a new gadget for myself. We’ll have to see whether it ends up being useful or not.

    → 2:36 PM, Oct 14
  • Superman

    The death of Christopher Reeve will hit a lot of people pretty hard. He worked with so much determination to regain movement and he stayed optimistic. It’s an inspirational story, and it’s a shock that the story is now over. As my wife said, “He wasn’t supposed to die.” He vowed to walk again, and we believed it.

    In the second presidential debate last week, Kerry brought up Reeve as an example of who we can help and why stem cell research could be so important. Here’s the quote, from the official debate transcript:

    “You know, I was at a forum with Michael J. Fox the other day in New Hampshire, who’s suffering from Parkinson’s, and he wants us to do stem cell, embryonic stem cell. And this fellow stood up, and he was quivering. His whole body was shaking from the nerve disease, the muscular disease that he had.

    “And he said to me and to the whole hall, he said, ‘You know, don’t take away my hope, because my hope is what keeps me going.’

    “Chris Reeve is a friend of mine. Chris Reeve exercises every single day to keep those muscles alive for the day when he believes he can walk again, and I want him to walk again.”

    Nancy Reagan, Ron Reagan, Michael J. Fox, and Christopher Reeve have done a lot of good as activists, because they are respected and admired by the public. But there are thousands more who are not well-known, and those people are equally worth fighting for.

    It’s appropriate that Christopher Reeve, the man forever known as Superman, would fight so hard to overcome the limitations of his crippled, human body. Superman is an icon, not just an old comic. The idea speaks to a generation of kids who dream to be something more, and it’s the reason that that memorable scene in Iron Giant can bring an adult to tears.

    → 12:58 PM, Oct 11
  • Frank Thomas passes

    Frank Thomas has passed away. His life-long friend Ollie Johnston is now the sole remaining master animator from the classic days of the Walt Disney studio.

    For more on this duo, watch “Frank & Ollie”, or read Canemaker’s book, “Nine Old Men”, or their book on Disney animation, “The Illusion of Life”.

    Perhaps a post on the Animation Nation discussion board (also from an old-timer) said it best:

    “I really get the feeling that we’ve come to the end of a wonderful era. You can wait around and hope, but you’ll never see the likes of this again.”
    → 2:18 PM, Sep 9
  • Olympics, genetics, and giving everything you have

    More Olympics this weekend. First the U.S. basketball team, ahead most of the game and playing well, then losing in the last few minutes. Next, the women’s marathon, the heartbreak for England’s Paula Radcliffe as she couldn’t finish the race after leading the runners for the first dozen miles, then the come-from-behind bronze metal finish for the U.S.’s Deena Kastor.

    Last week, Matt Haughey wrote about the genetic lottery:

    Every sport favors genetics to some extent, but I’ve always discounted them and held that anyone of any shape could rise towards the top if they trained hard enough. But at the absolute upper reaches of a sport, falling outside the norm becomes a liability and when the margin of error grows thin, you’re going to fall behind the best.

    I always think of Gattaca. Sure it’s fiction, but I think there’s some real truth to it — the power of the human spirit. The two brothers are far out in the water, and Anton asks Vincent how is he doing it, how can he swim further and do these great things when he is genetically inferior and all stats point to a heart that is long overdue for beating its last. The answer: “You wanted to know how I did it? That’s how I did it, Anton. I never saved anything for the swim back.”

    Give it your all this week.

    → 10:13 PM, Aug 22
  • Lowercase web

    Wired News will no longer capitalize internet, web, or net:

    “But in the case of internet, web and net, a change in our house style was necessary to put into perspective what the internet is: another medium for delivering and receiving information. That it transformed human communication is beyond dispute. But no more so than moveable type did in its day. Or the radio. Or television.”

    This is a good thing. Years ago, I remember arguing quite passionately with People Who Had Some Kind of Related College Degree that “web” should not be capitalized. I lost that battle, and have since occasionally capitalized it myself, for conformity’s sake.

    → 12:07 PM, Aug 20
  • Television feature request

    I rarely watch TV anymore. When I do, like for the ongoing Olympics coverage, I quickly become frustrated with commercials (especially those not appropriate for 4 year olds, even if the main show is). I want a “visual mute” feature for my television. One click on the remote kills the sound and dims the picture, down to 15% or so. Forget high-definition, how about something I can use? (Patent pending.)

    → 1:59 PM, Aug 16
  • 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.

    → 12:52 AM, Aug 10
  • High School Reunion

    Saturday night was my 10-year high school reunion (more specifically the Anderson High School reunion class of 1994 from Austin, which I say only for Google’s reference, even if it dates me). As recent as two months ago I had considered not attending, but I ended up having a really good time, more than I ever thought I would. It was great to see everyone.

    I took some pictures. Only a handful came out, so my apologies to everyone who will only remain a blurry image in my copy of iPhoto. Perhaps that’s for the best. But I’ve posted the better ones here with brief annotations for anyone who was at the event. Most of the time I forgot I had the camera with me. (Whoops.)

    Luckily I didn’t show up alone, so the nervousness and “I don’t belong here” feeling that I was bracing for was diminished. Afterwards, though, came a sort of melancholy that I did not expect, a vague emotional conflict between the few folks I’ll see again and the larger number that I probably won’t. Five minutes of conversation over drinks is not an adequate way to catch up on 10 years. Truthfully, I share more in common with some of them now than I do the people I see on a more regular basis. All Sunday I found myself thinking about it, and just sort of marveling at how our lives diverge and then criss-cross again, and how that same web is played out on a larger scale for everyone we meet.

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

     
     
     
    → 3: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.

    → 11:24 PM, Jul 4
  • Work, non-work, and A Scanner Darkly

    I’ve routinely been working past midnight the last couple of weeks as we make a final push to get our software finished. Although it’s just coincidence that we usually ship right before WWDC, it reminds me of the old days of trying to get betas ready to demo before Macworld Expo or one of the other yearly conferences.

    I took a break from that on Sunday, my third Father’s Day. Big breakfast with the family, mowing the lawn with some iPod tunes, putting together a baby crib, lunch, then headed down to the Austin Sketch Group meeting and talked animated films and art while sipping a chocolate coffee drink which had entirely too much caffeine in it. Bob Sabiston came by to recruit folks for Richard Linklater’s upcoming film, A Scanner Darkly (based on the Philip K. Dick book). It will employ the same rotoscope technique used for Waking Life, but perhaps favoring a more consistent style rather than the individual inventiveness of that previous film. Should be fun to see the result, and in the wake of Shrek 2 box office numbers it’s good to see some investment in creative, lower-budget animated films.

    → 3:19 PM, Jun 24
  • Comic Book Idol

    I can’t say that I’m a big comic book person anymore, at least not the way I was as a kid, eagerly awaiting the weekly shipment of comics to the local shop. Recently I’ve read books like Understanding Comics that helped awaken my appreciation for the form. There are some good things happening in the comics world, too, especially from independent artists. The Internet is changing distribution and how artists connect with readers, of course.

    My friend John Rubio is one of 10 finalists in the Comic Book Idol competition. His first submission was knocked out in just a few days, but it’s a quality, finished piece. Voting is once a week (starting now) for 24 hours only. Go read some free 3-page comics, then register and vote.

    → 11:31 AM, Jun 9
  • Apple Design Guidelines

    Last week Apple released the Apple Software Design Guidelines document. I’ve only just skimmed it, but it looks like the best document from Apple in years.

    Take this little bit of advice:

    “When saving files of your own document types, include a file type, creator type, and filename extension for your file. It is best to include all three of these identifiers to ensure maximum compatibility with other platforms.”

    Well, yeah. Finally some solid, practical recommendations from Apple that take into account the whole system, not a narrow set of APIs.

    A couple of years ago I read the Microsoft article “Inductive User Interface Guidelines”. The principles from the document showed up extensively in Windows XP and will be even more prevalent in Longhorn as Microsoft attempts to cloud the difference between web and traditional applications. It struck me as an interesting approach, one that clearly has benefits for some types of users and some applications. I wrote about it a little last year in a post called “Inductive vs rich user interface design”.

    Now take that feedback in the context of this article from AskTog:

    “Usability and learnability are not mutually exclusive. First, decide which is the most important; then attack both with vigor. Ease of learning automatically coming at the expense of ease of use is a myth.”

    Apple has almost completely ignored the user interface principles that Microsoft is pushing. Here’s a quote from the new Apple design guidelines document:

    “Allow the user, not the computer, to initiate and control actions. Some applications attempt to assist the user by offering only those alternatives deemed good for the user or by protecting the user from having to make detailed decisions. This approach mistakenly puts the computer, not the user, in control.”

    The Apple document doesn’t contain anything “new”, but it’s a great set of principles and suggestions gathered from other sources and put in a succinct format. The new Apple is not without it’s recent user interface stumbles, but it’s nice to know that overall they have the best grasp of the big design picture that they’ve ever had.

    → 9:50 PM, Jun 1
  • Lorenzo

    If you’d have asked me last week whether I would see Raising Helen on opening night, I’d have given you a puzzled look and maybe said something about looking forward to Harry Potter. But that was before I realized that the short film Lorenzo will be shown before that new Kate Hudson flick.

    Lorenzo makes extensive use of computers but is still a traditionally animated film. I was immediately captured by the visuals of this film since I first saw stills and clips from it. In the age of Pepsi commercials, trailers, and “The Twenty”, theatrical short films are all but dead. I jump at the chance to see one, especially one as visually innovative as Lorenzo.

    A technical summary of the animation process for Lorenzo can be found in this PDF from a Siggraph lecture. Also check out this article from VFXWorld.

    → 2:03 PM, May 28
  • The Triplets of Belleville

    I’m listening to track 3 of the Finding Nemo soundtrack on repeat. Something very soothing about that opening music.

    I finally got to watch the Triplets of Belleville DVD special features, and I only wish there was more (full director’s commentary would be nice). When I left the theater last month, there was no question in my mind but that Sylvain Chomet in a brilliant artist and director. The death of 2d animation in Hollywood is a blessing in disguise. Small, modest-budget, completely artist-driven productions could flourish right now. New and different stories could be successful in a way that was impossible when Disney owned the screen in the 1990s.

    From an AnimWatch interview with Evgeni Tomov, the Triplets of Belleville art director:

    “Animation has its charm and qualities. It delivers different aesthetic and emotional experience. It is not just about telling a story the fastest and the cheapest way. The Triplets would have not been nearly as interesting and unique if it was a live action film. The hand made, drawn feel that comes from the screen, the stylization of the characters (you can not find actors with this kind of bizarre physics) resonate quite well with the equally bizarre story we are witnessing.”

    Think big and keep drawing.

    → 12:59 PM, May 21
  • Flowdelic and Frontier

    Mason Hale of frog design started a weblog last week, and already he’s got some great posts and discussion. Mason and I worked together around 1995. You know, back when the Internet was still fun.

    At the time, Mason had been building a CGI framework inside Frontier. This coincided with Frontier’s time as a free application and helped jump start Dave Winer’s push to build Internet-related applications around Frontier. I built a number of web applications in Frontier, wrote some cool un-shipped software that used an embedded Frontier database, and even helped host and maintain the Frontier-Talk mailing list for a time. After a few years, Frontier and I went our separate ways. (Bonus in the previous link: The web server plug-in mentioned in the slides from 1996 was called Rendezvous.)

    Yesterday Dave Winer announced that the Frontier kernel’s source code will be released for the first time. This is a really interesting move and, like all good ideas, probably could have had more of an impact if done earlier. AppleScript dominates desktop automation now, but a focused set of Frontier tools could still be very useful. I don’t think this effort will fizzle like the MacBird release did, in part because Frontier is already Carbonized (see Brent’s comments about that) and in use by developers.

    Mason and I still bump into each other every once in a while, but now it’s more as parents than as geeks. To Dave, Mason, Brent, Wes, and everyone else that contributed to Frontier’s history: congrats.

    → 1:06 PM, May 18
  • iTunes follow-up

    Not 5 minutes after I posted yesterday’s iTunes piece, Ryan tells me I’m asking for too much. “My fear is that too many features will render iTunes a useless and unusable app,” he writes, and he’s absolutely right to be concerned.

    I will admit that my list contains some less-than-great ideas, only loosely organized around the idea of discovering new music (something I’ve been trying to do lately). I do think RSS support would be interesting, though, because it would allow iMix-like functionality but distributed across anyone’s web site and created using any software.

    The important point, I guess, is that iTunes still has room to grow, and that’s not by accident. Smart Playlists and Party Shuffle are two examples of great features that fit well inside the existing interface.

    Update: Kathleen wants something similar with RSS, but sort of the other way around: RSS generated from the published iMixes.

    → 3:36 PM, May 13
  • The iTunes Platform

    It’s no secret that iTunes is one of Apple’s best apps. Of all the iApps, iTunes remains the only one I have no critical feature requests for. With version 4.5, Apple adds to what was already a solid app, and they continue to do so in a way that fits well inside the two foundation pieces they’ve created: the basic music library interface and the iTunes Music Store.

    I noticed the other day that they now have trailers and music videos inside of iTunes. The investment they made in the old trailers site was initially just to showcase QuickTime, but it ties perfectly in with the store soundtrack collection.

    So what’s next? Here are some more random ideas for the iTunes platform:

    • Movie showtimes. Can they give this a good/fast UI? Sherlock 2 isn’t so bad, but I never have the app running. iTunes is always there.
    • Music magazine. Both original articles and syndicated articles from major magazines and even weblogs.
    • RSS reader. What app couldn’t use a little RSS? I’d like music feeds (which Apple already provides) directly in iTunes instead of NetNewsWire. Double-click a news item to hear a song preview, of course.
    • Recommendations from library. This has been suggested before: An option to feed local playlists to iTMS servers to improve recommendations. This is different than publicly shared iMixes, but maybe could be an extension of that feature.
    • Amazon integration for CDs. Not all music is available in iTMS. I’d like a simple Amazon interface off of their search results, for those times I can’t find what I’m looking for in iTMS.

    In “What if Mail.app were like iTunes?”, Rui Carmo rattles off a dozen features that would be nice in Mail, but he only hints at the real question. What makes iTunes such a great app? Clearly some of it is interface design. Then there’s the incredible speed, which also affects usability. iTunes is the only iApp still written in Carbon, is that a relevant distinction? Does iTunes (because of the music store and iPod) simply get more resources within Apple? Maybe. But even with all of these things, you can’t continue to build and ship a great app without a smart team and tight integration between related groups (UI, WebObjects, etc), and ultimately I think that’s what makes any product a success.

    I can’t wait to see what the iTunes folks come up with for 5.0.

    → 3:54 PM, May 12
  • Breadcrumb navigation

    There has been a fascinating discussion among information architects and web designers about the usefulness of breadcrumb trails. Mark Hurst of Good Experience talks about the page paradigm, Peter Merholz mostly disagrees, and Christine Wodtke offers her two cents. Here’s part of what Steve Krug had to say about the topic in his book, “Don’t Make Me Think”:

    “For most sites, I don’t think Breadcrumbs alone are a good navigation scheme. They’re not a good replacement for showing at least the top two layers of the hierarchy, because they don’t reveal enough. They give you a view, but it’s like a view with blinders. It’s not that you can’t make your way around using just Breadcrumbs. It’s that they’re not a good way to present most sites.

    “Don’t get my wrong. Done right, Breadcrumbs are self-explanatory, they don’t take up much room, and they provide a convenient, consistent way to do two of the things you need to do most often: back up a level or go Home.”

    Mark might argue that “back up a level” is more often accomplished with the browser’s back button, eliminating one of the points above. (Although the book actually has a whole chapter on this stuff, to be fair to Mr. Krug.)

    Yesterday, Andrei Herasimchuk wrote that navigation doesn’t actually exist. Instead, he argues, there are only ways of finding things, and some of them have nothing to do with conveying the user’s position. He does a good job of framing the different needs of large collections of web pages vs. web applications. Clearly there is a “where am I” to hierarchical sets of data. Users feel as if they are moving between pages that have relationships, and making those relationships clear in the interface (via category lists or breadcrumb trials) minimizes how much the user is required to think about where they are, and how to get someplace else.

    Amazon, on the other hand, is a web application. While there are clear navigation elements (browsing category pages, or using the primary navigation to jump between books and DVDs), most of the time the user doesn’t get lost because they aren’t moving. Instead of saying “I am on the search results page”, they might say “I am searching for a book”. The experience is dominated with tasks: “I’m adding something to my shopping cart”, “I’m buying this book”, “I’m changing my credit card information.”

    Or maybe they are just randomly clicking on featured products. It all feels effortless to the user because Amazon has done such a great job with their search and recommendation system.

    Brenda Laurel gave an interesting keynote address at SXSW Interactive this year, one which I have trouble summarizing in any meaningful way, and thankfully has nothing to do with this discussion. But a dozen years earlier, she edited a compilation of essays on user interface design from the perspective of the teams at Apple. The book is called “The Art of Human-Computer Interface Design”, and one essay by Abigail Sellen and Anne Nicol hits to the heart of this issue of navigation. Here’s a snippet:

    “The number of questions concerning navigation is very much application-dependent. Typically they arise most frequently with applications that are structurally complex and that contain a large amount of information. Hypertext-based software is one obvious example; hierarchically structured systems are another. Users tend to make heavy use of spacial metaphors: they report feeling ‘lost,’ speak of going ‘up’ and ‘down’ between levels or going ‘in’ and ‘out’ of situations.

    “Users often spontaneously construct spacial mental models or mental ‘maps’ in order to move easily from one context to another. This has obvious implications for design. Reducing the memory lead on the user is one benefit of making these mental ‘maps’ explicit. Users can refer to the map instead of trying to retrieve information from memory to tell them ‘where they are.’ Another benefit is that a map can form the basis of a mental model on which the user relies to infer how to get from point A to point B without having to keep in mind a set of procedures for navigation. Thus, by exploiting spatial metaphors and allowing the user to make the inference, designers can help users avoid having to ask the question, ‘How do I get from point A to point B?’”

    Good points to think about. Instead of attempting to wrap this up with some insightful comment, I’m going to go build stuff.

    → 2:47 PM, Apr 8
  • Usable software, and just shipping it

    A few loosely connected weblog posts I read today…

    John Gruber, “Ronco Spray-On Usability”:

    “UI development is the hard part. And it’s not the last step, it’s the first step. In my estimation, the difference between:
    • software that performs function X; and
    • software that performs function X, with an intuitive well-designed user interface

    isn’t just a little bit of extra work. It’s not even twice the work. It’s an entire order of magnitude more work. Developing software with a good UI requires both aptitude and a lot of hard work.”

    Rick Roe, “The Good, the Bad, and the Tog”:

    “The whole point of graphical user interfaces is that they balance efficiency with intuitiveness. An intuitive interface may make some tasks take longer to complete than they could in an interface designed for maximum efficiency, but you can learn it on the spot instead of having to take time digging through documentation.”

    Andre Torrez, “Even You Can Do It”:

    “Stop talking about it an just build it. Don’t make it too complicated. Don’t spend so much time planning on events that will never happen. Programmers, good programmers, are known for over-engineering to save time later down the road. The problem is that you can over-engineer yourself out of wanting to do the site.”
    → 5:09 PM, Apr 3
  • Eternal Sunshine

    Saw Eternal Sunlight for the Spotless Mind tonight. An incredibly great film. Then I wanted to order Beck’s song from the film soundtrack. I have an extra Pepsi bottle top that had been gathering dust in the kitchen for a couple weeks, but apparently the song isn’t on iTunes yet.

    → 12:36 AM, Mar 21
  • Thank you Radio, and TypeKey

    After two years of using Radio Userland, I decided to migrate this weblog to Movable Type. I wrote a UserTalk script to export my data for importing into Movable Type, and everything went about as well as could be expected. I’m making small tweaks to the design, and I added some category pages (still filing old posts in the appropriate categories, since that wasn’t preserved in the migration). Otherwise it’s the same site for now. I originally purchased Radio thinking I would customize it, having done a fair bit of Frontier programming back in the day. I haven’t had time, so for now I’ll give Movable Type a try.

    The Six Apart folks have something interesting planned for weblog comments, sort of a single sign-on system with (presumably) a central user registration server. More information is up at TypeKey.com. It will be interesting to see how open their system is, and what other services could potentially be build on top of it.

    → 12:27 AM, Mar 21
  • SXSW Day 4: Fun, fun, and designing for people

    The last day of SXSW tends to be less about substance and more about winding down after the long weekend and leaving on a positive note. In the morning I listened to Gabriel Jeffrey talk about his success with Group Hug. It was a fun session. He is also doing some interesting things with his weblog, such as linking each person’s name in the comments to a Wiki page. The other hilarious panel of the day was about online dating. The mix of backgrounds among the panelists made for a lively session, and with the tension between the panelists, topped off when Jonathon Abrams (Friendster) tried to hook up with fellow panelist Courtney Johnson (Tickle), you had to wonder if it was all an act. Somehow Lane Becker kept it all together.

    The session by Jason Fried of 37signals was the exception to the above. For readers of their weblog, Signal vs. Noise, the content was familiar. It was a more formal presentation than their game show session from two years ago. I had to leave halfway through, but picked up good notes from Damon and the full slideshow is now online. Also check out the sample chapter from their new book.

    Jason just posted some thoughts on the conference, specifically challenging the dominance of CSS and Web Standards this year.

    “There’s way too much talk about CSS and XHTML and Standards and Accessibility and not enough talk about people. CSS and Standards Compliant Code are just tools — you have to know what to build with these tools. Great, I’m glad your UI doesn’t use tables. So what? Who cares if it still doesn’t let people achieve their goals. Web standards are great, but people’s own standards include getting things done (and that’s still too hard to do online).”

    I agree 100%, and it’s something I joked about in my last post. I made the point more fiercely in an early draft of my day 1 post, but ended up editing it out. I’m looking forward to reading the comments on Jason’s post, and the other blog posts that will fall out from it.

    → 10:53 AM, Mar 18
  • SXSW Day 3: Design, user experience

    Weather changes. The first two days of SXSW were marked with light rain, but today was a beautiful day. Leaving the EFF party tonight, we saw lightning off in the distance. Now, as I write this back at my house, a thunderstorm is passing overhead. A hard rain fell. Lightning flashes and a lingering thunder echoes as it continues eastward.

    Several very good sessions today, including an excellent afternoon session by Jeffrey Veen on user-centered design and the Adaptive Path process. The morning was back-to-back CSS panels. Nothing particularly new was discussed in those, but I found it interesting to hear how the different designers represented on the panel approach design.

    Dave Shea: “We don’t care about usability.” He sees CSS as a way for designers to expand the possibilities of their work. (Witness Zen Garden.)

    Doug Bowman: “CSS is beautiful.” Not just what the user sees but the structure and underlying code, and the craft that brings it all together. (Review slides.)

    Jeffrey Zeldman wasn’t there, but he might as well have been. There is a great trick that modern web developers are playing. When justifying their work, they replace any mention of “CSS” with “Web Standards.” But wait – wasn’t HTML 3.2 and table-based layout a “web standard”? :-) Of course what they really mean is modern web standards, but this accidentally shorthand aids their cause tremendously, I think. And when I say their cause, I really mean our cause. (Resist bad browsers.)

    → 12:55 AM, Mar 16
  • SXSW Day 2: Ideas, Joe Trippi

    One of the things I like about SXSW is that it’s a time to just think about new ideas without necessarily trying to relate them directly to a particular work project. When I take notes, I write down interesting quotes or concepts that the speakers are presenting, but I also intersperse my own opinions. It’s important to capture ideas at the time they spark, and today there were enough to fill a book. Instead of summarizing the day I will take some of the themes and work through them in later posts this week.

    I should at least note that it was great to hear Joe Trippi speak, though. Ryan posted some photos from that session and the MoveOn.org keynote.

    → 12:56 AM, Mar 15
  • SXSW Day 1: Web design accessibility, Frog party

    I almost skipped the accessibility panel but I’m glad I didn’t. As usual Jeffrey Veen did a great job of putting the current web practices into perspective with stories from the old school of web design. It used to be that every day was a battle with designers who were taking what they learned from the print or traditional multimedia worlds and trying to stamp it on to web design, whether it fit or not. But the new crop of designers look at building for the web as a craft. Veen says it’s about “designing for the web natively.” Exactly. He sees it now as a business case – that good design just tends to lead to degradable and accessible sites.

    Ironically, just a year ago Veen shared the stage at SXSW with Kevin Lynch of Macromedia. Kevin was talking about rich Flash-based applications that often see the web as more of a networking infrastructure than a platform in its own right. Now we see other pieces of Macromedia’s strategy: their Central product by-passes the web browser entirely. Granted, they are doing some very interesting stuff, but it’s not entirely relevant to designing for the web. The new reality of web development that Veen spoke about is that designers are embracing what the web is about rather than fighting against it or trying to control it.

    The next panel continued the accessibility discussion. James Craig brought up Veen’s “Business Value of Web Standards” essay, and Jim Allan mentioned the needs of Palm devices as another business case to help sell accessibility standards.

    And then there’s usability. Why is it that many standards-based and accessible web sites are more usable than others? I think there are two reasons.

    First, adhering to standards is not just conforming to the specification but also following the recommendation of those standards. For example, use the alt attribute on images to specify a text version. But as Jim Allan said in the session, “you can’t just blindly follow the guidelines.” The second part is the education of this new class of web people. What tools do they use? BBEdit and HomeSite. They are hand-coding this stuff which means they’ve built dozens or hundreds of web sites. You have to build up a level of experience with what works and what doesn’t to make progress on usability, and you have to be a veteran web user to know the existing best practices.

    After dinner we went to the Frog party, where I met up with Mason Hale and even ran into Carl de Cordova, who was a co-founder of WebEdge, the Mac web developers conference I was a part of years ago. I have a bunch of old photos and archives of the old WebEdge site that I should post one of these days (the domain was unfortunately taken over by a car company). Also met Dan Cederholm, chatted with Eli Pariser of MoveOn.org, and received the Jakob Nielsen playing card (collect all 8) from the OK/Cancel folks. A good day.

    → 12:56 AM, Mar 14
  • Almost SXSW

    SXSW Interactive officially begins tomorrow. I met with Ryan and Damon this afternoon to discuss the design for a project at work, eat lots of food, and finish round 2 of my effort to convince Ryan that fixed-width layouts are usually a bad thing. Light rain fell as we made the short walk over to the convention center with Sam Ruby, who has a session on Wikis this Sunday. Lane Becker is also on the panel, so it should be an interesting one. (At least I think they are on the panel. The PDF schedules don’t list either one of them.)

    Other sessions that look good:

    • Democracy in Action: MoveOn.org
    • Joe Trippi presentation
    • Weblogs and Emergent Democracy
    • Replacing Billboard, Bestseller Lists and Editors with Robots: Paul Bausch, Cameron Marlow, Erik Benson (Amazon)
    • Hi-Fi Design with CSS: Doug Bowman, Dan Cederholm, Dave Shea, Chris Schmitt
    • The Frontiers of User Experience: Jeffrey Veen
    • Ridiculously Easy Group Forming: Adam Weinroth (Easyjournal), Tantek, David Sifry, Pete Kaminski, Sam Ruby
    • The Three Little Things: Jason Fried
    → 12:14 AM, Mar 13
  • Reading, ASCII, and PDF

    I started reading the electronic version of Eastern Standard Tribe. Hoping to get through some of it by SXSW and pick up a hard-copy there. I’ve also been reviewing my Cocoa books, since I’ve been porting the user interface of an application to Cocoa (still lots of Carbon and cross-platform C++ underneath). More on all that some other time.

    For now, here are two somewhat contrasting quotes from the authors of those books, on file format standards:

    James Duncan Davidson: “I’m pretty sure that I’ll always be able to open a PDF file.”

    Cory Doctorow: “ASCII is the new PDF!”

    → 9:46 PM, Mar 10
  • Two years blogging

    Today marks the two year anniversary of this weblog. It’s been a good experience, and even if the content is not always fresh it’s still a worthwhile endeavor and will continue. Expect the posts to ramp up to at least one a day through SXSW this weekend. Here’s the post from one year ago, also during SXSW.

    It’s also voting day here in Texas. On the one hand it will be annoying to vote after the Democratic nomination has already been wrapped up, but on the other hand I’m not voting for a candidate so much as an idea. We can do better.

    → 7:11 AM, Mar 9
  • 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!


    → 2:00 AM, Mar 8
  • Oscars, Pixar, and Triplets

    Happy leap day.

    I was a little surprised that Finding Nemo wasn’t nominated for the Best Picture Oscar this year. Clearly it was the most successful movie of the year, also a huge audience favorite, and arguably a near-perfect film execution. But it was a comedy.

    It is likely to win in the Animated Feature category. If last year’s Spirited Away win is any indication of what the Academy is looking for, Triplets of Belleville also stands a chance. I’ve been eagerly awaiting that film for over a year and it has finally arrived in Austin.

    In the animated short film category it could be either Pixar’s Boundin’ or Destino, perhaps Roy Disney’s last mark on the Disney studio.

    Other films I’m rooting for include Lost in Translation and Whale Rider.

    Related old news, Pixar and Disney talks end:

    “‘After 10 months of trying to strike a deal with Disney, we’re moving on,’ Pixar chief Steve Jobs said in a statement. ‘We’ve had a great run together — one of the most successful in Hollywood history — and it’s a shame that Disney won’t be participating in Pixar’s future successes.’”

    This is the best thing for Pixar. I’m not the only one who has said that Pixar is the new Disney — what Disney was during their golden years, when story mattered more than focus groups. Disney has stumbled before and come back, but it could be years before they can recover from killing off their 2d division.

    → 4:09 AM, Feb 29
  • 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
    → 5:13 PM, Feb 24
  • Fight for it

    I’ve written a few posts about technology, and about the upcoming Oscars, but I can’t bring myself to post them. They seem so insignificant compared to the political process in front of us.

    The Democratic Party has lost its way. I’ve never been more disillusioned with government and the people’s power to effect change for our common good than I am right now.

    Congress has failed us. We need someone with real backbone in the November election, someone who can bring this party back on track. That person is not John Kerry.

    I’ve never given money to a politician before, but I did last week. I’ve never written letters to undecided voters in another state urging them to support a candidate, but I did last night. I’ve never made the leap from disgruntled voter to political activist, but I am right now.

    Say what you think, believe what you say, fight for what must be done.

    → 11:47 AM, Jan 29
  • 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.

    → 1:13 PM, Jan 26
  • Iowa Caucus

    I was watching C-Span.org’s live broadcast from the Iowa caucus in Dubuque County. Watching online because my cable went out today (“a fiber line was cut”). It’s laughing at me because we’re keeping cable primarily to watch the campaign!

    This caucus is one of the most fascinating things I’ve ever witnessed. It’s funny, really – an elaborate game with some politics thrown in for good measure. People are making arguments trying to get people to change sides. Organizers are running around with calculators doing the math to determine total delegates for each candidate.

    Peter Jennings just came on ABC with a brief message that entrance polls suggest Kerry with the win and Dean/Edwards close for second.

    Checked the CNN web site which showed Kerry with 37%, Edwards with 33%, and Dean with just 18%.

    The C-Span coverage for Dubuque precinct 20 wrapped up with 6 delegates for Kerry, 3 for Edwards, 2 for Dean, and none for others. Wow.

    The last few days I’ve subscribed to the main Dean blog, the BloggerStorm blog, and Dave Winer’s new Channel Dean. Plus the Edwards blog and a handful of other news sources. The flow of information coming in from the ground in Iowa is amazing. I think the talk of how blogs are changing news reporting is even more of a reality for an event like this. First-person blogger accounts of news as it happens is only a small part of the full picture, but it’s a really interesting one. For this race you have hundreds of bloggers, and together there is the potential to not just see all the interesting personal accounts but also to see the trends across all the posts from different bloggers.

    I’m not sure where the Kerry win is coming from, but I’m sure it will be analyzed to death until New Hampshire votes.

    → 9:33 PM, Jan 19
  • Productive week

    I think I do some of my best work when we first start development on a project. No one is paying particular attention, the user interface is flexible, and bugs are inevitable and okay. As we get closer to shipping I always slow down and am hesitant to make major changes. At that point it’s all about testing and cleaning out any quirks in the final product. But right now I have no problems ripping up the code and trying new things.

    So the last few weeks I’ve been very productive. That is, I was until GarageBand arrived today.

    → 4:51 PM, Jan 16
  • Jakob Nielsen, Sun, and 3d interfaces

    I like Jakob Nielsen. He was practically the lone voice of reason when Flash web sites, splash pages, and graphics-heavy design seemed poised to take over the Internet and render it useless.

    But lately I’ve been ignoring his Alertbox columns. This quote from one of his latest really annoyed me:

    “Judging by many of the messages we tested, email design is often a side effect of the software implementation and consists of copy written by the programmer late at night.”

    Really? Late at night, eh? It’s bad enough that programmers are writing email copy, but when they do it late at night… Whew.

    Meanwhile, some good UI observations on Sun’s Java Desktop from Buzz Andersen:

    “I’m not formally trained in human/computer interaction, but to me it’s simply common sense that any UI design should be judged both on its ease-of-use and its heuristic value to the user. Put another way: a large part of the responsibility of any interface design is to stay out of the user’s way while helping him or her perform an action or get to a piece of information as quickly as possible. Usually, slavish emulation of the real world isn’t the best way to achieve this goal (otherwise, what’s the point of using computers at all?).”

    And this is what I had to say in a comment on his post:

    “Great post, Buzz. At least Sun correctly called it a prototype. (But then they also called it a ‘revolutionary evolution’, whatever that means.)

    “And I agree with Jon — the mouse is not the right device to interact in 3d space anyway.

    “Expose works so well because it actually solves a real problem (managing too many open windows). Sun appears to be reinventing things that already have good solutions (e.g. iTunes live search).”

    Another comment on Buzz Andersen’s site connects this all back to Jakob Nielsen. In The Anti-Mac Interface, Nielsen and Don Gentner outline how tempting it can be to get lost in the metaphor-ness of interface design.

    But the main layer of problems with Sun’s 3d experiment is something that Nielsen has hit upon many times, the most famous being his Flash 99% Bad article: that increasing eye-candy often decreases usability. I’m also reminded of the HotSauce experiment that R.V. Guha developed at Apple to show off MCF, a predecessor to RDF. In hindsight, is “flying” a web site really such a great idea?

    Don’t answer that. I’ll leave the MCF trip down memory lane for another day.

    → 11:38 PM, Jan 1
  • Watterson and the New Year&#039;s Eve blog post

    The way I blog, I gather bits of news stories or other blog posts and write up an opinion on them for later blogging. Then when I feel like posting something, I go through the queue of things I’ve written and pick one out, or take several related stories and put them together. I used to use BBEdit for this. Then I started using NetNewsWire’s notepad. Lately I’ve been trying out VoodooPad. The interesting thing about this approach is that I end up writing about a lot of things that never get published. After a certain period of time they are no longer relevant or interesting.

    For this last post of 2003, I went through the queue of a dozen or more recent things I could blog about. This thoughtful article about Calvin and Hobbes and creator Bill Watterson stood out:

    "The pressure on Watterson must have been enormous, but he steadfastly refused to sell out, even a little bit. 'I look at cartoons as an art, as a form of personal expression. That's why I don't hire assistants . . . and why I refuse to dilute or corrupt the strip's message with merchandising,' he said in his Festival of Cartoon Art speech. 'Characters lose their believability as they start endorsing major companies and lend their faces to bedsheets and boxer shorts.'"

    So I guess maybe the advice for the new year is to stay true to what you are doing. Focus on the real problem and don’t compromise your vision for the wrong reasons.

    Happy new year.

    → 11:38 PM, Dec 31
  • Control drag hidden constant

    I’m blogging this so it will be indexed by the great search engine in the sky, and perhaps save some Mac programmer out there a little time. The new control drag-and-drop Carbon Events are only partially documented. In addition to returning noErr from your kEventControlDragEnter Carbon Event, you need to set the kEventParamControlLikesDrag parameter to true if you want to receive the drag. Unfortunately this constant is missing from the headers. The correct value is: ‘cldg’.

    Your code should look something like this:

    Boolean t = true;

    SetEventParameter (inEvent, ‘cldg’ /kEventParamControlLikesDrag/, typeBoolean, sizeof(Boolean), &t);

    These new events were introduced in Mac OS X 10.2, and they are quite convenient. Happy coding.

    → 11:15 AM, Dec 30
  • XHTML Friends Network

    After SXSW earlier this year, I posted that Tantek wanted a way to add meaning to blogrolls, something with less complexity than FOAF. Apparently he and others have been churning away at this idea since then, and the resulting specification is called XHTML Friends Network (XFM). It’s refreshingly simple.

    P.S. Happy holidays, everyone. Enjoy the weekend.

    → 6:58 PM, Dec 26
  • Feed protocol

    NetNewsWire 1.0.7 adds support for the feed protocol. Wes has suggested that MIME types and helper apps are the correct way to handle this, but modern browsers seem to have practically given up on good integration between MIME types and other apps.

    I took a few minutes to read the feed protocol specification. It needs a little refinement, particularly the part about extensions (sending commands and parameters with the URL). For feed URLs with no commands, I don’t like that feed://http://example.org/rss.xml is the same as feed:example.org/rss.xml, but if you introduce a command, the real protocol (“http” or “ftp”) seems to be required. The “how to process a feed URL” section continues this confusing by saying that the real part of a URL is denoted by either “:” or “.”, but all the examples always include “http://”, which implies that feed://command/example.org/rss.xml would not be valid. Even more confusing would be an example like feed://command/localhost/.

    A minor gripe, perhaps. Anyway, we’ll see whether it catches on.

    Another smart experiment with making subscription easier (or at least not as disconcerting for new users) is the work done by Jason Shellen to apply CSS to the Atom XML file. The addition of a proposed “info” element helps describe what the user is seeing.

    Update: Brent points to Dare Obasanjo’s pre-draft feed URI spec. On first glance it appears to be a more formal but less complete spec (not necessarily a bad thing). Apparently this is a somewhat unorganized effort.

    → 1:08 PM, Dec 24
  • Stopdesign on CSS layout options

    Doug of Stopdesign discusses fixed vs. liquid layouts in CSS:

    "Truth be told, table-based layouts are currently more capable of handling this issue than CSS layouts are. I'm certainly not advocating a move back to tables for layout. But unless dimensions are heavily manipulated by CSS, tables do work well at 'containing' any objects placed within their cells. This, without needing to worry about content from one cell overlapping another, or a cell suddenly getting re-positioned below a cell instead of beside it. With the current abilities of CSS, I can see why some designers have chosen fixed-width layouts."

    It’s refreshing to hear him admit the advantage that table-based layouts still have. I would have expected CSS to be in a better state by now. Designers shouldn’t have to choose fixed-width layouts just because it’s easier.

    Meanwhile, the <a href=“http://www.w3.org/TR/2003/WD-css3-page-20031218/

    “>CSS Paged Media specifications (which I’d never heard of before) are nearing completion. Maybe CSS will fulfill its promise after all.

    → 1:20 PM, Dec 23
  • Why Cocoa text drags are broken

    Apple still hasn’t fixed text drag-and-drop in Cocoa. In addition to going against how drag-and-drop has worked in previous versions of Mac OS for a decade, I believe it is based on a flawed concept. Has it seen any usability testing within Apple?

    I guess the argument for this behavior goes something like this: Because selecting text is more common than drag-and-drop, dragging over a previously selected run of text should take precedence. If you really want to drag the text itself, merely hold the mouse down for a half-second after the click and then drag. Simple, right?

    Not at all, for three reasons:

    1. It is counter to how drag and drop works in the rest of the system.
    2. It is slower.
    3. It is difficult for a new user to "learn" this Cocoa behavior.

    The first is easy enough. If you can drag most “things” (a file in the Finder, or a window, or an object in a graphic design application) by clicking and dragging right away, why should dragging selected text be any different?

    And it’s slower not just because you have to click and hold, but because you have to think too much. How long do I hold? Half second? Full second? Us humans never know exactly, and it’s easy to make a mistake and get a selection when you wanted a drag.

    To illustrate what I mean by the last reason, let’s go over how someone would learn to make selections and use text drag-and-drop.

    The Cocoa way: User makes a selection. They want to drag that selection, but instead the app keeps making a new selection where they clicked. User tries a few more times, then gives up, thinking that the app doesn’t support dragging of text. They use copy-and-paste instead.

    The Carbon and old Mac way: User makes a selection. They drag that selection and it works as expected. If they are a new user, they might try to make a selection inside an existing selection, but without meaning to drag it. In this case they get the wrong behavior – the text starts to drag and they are momentarily confused. The next time this happens, they realize that they should single-click to remove the selection before making a new one in the same run of text.

    See the difference? With the original Mac drag-and-drop behavior, the user might make a mistake once but that process teaches them how selection and drag-and-drop works. With the Cocoa behavior, the user might never learn how text drag-and-drop works!

    Luckily, Mac developers using Cocoa can override this behavior in their application (which speaks to the power of those frameworks), but I have yet to see an application that does.

    → 9:32 PM, Dec 22
  • Running Mac OS X

    Congratulations to James Duncan Davidson, whose Running Mac OS X Panther has gone to press just in time for him to enjoy the holidays. I had the opportunity to review the book, and it’s a solid achievement. He covers many topics that will be useful to new and long-time Mac OS X users alike. Even in the most basic chapters there was nuggets of goodness, little tricks that will make working with your system easier. I particularly like how he covers the command-line tool equivalents for many features, which makes the book a good resource to turn to later.

    Mike Clark has a fun review which will surely make the back cover. The official web site is also now up.

    → 10:14 AM, Dec 12
  • Independent comics

    I’ve been digging back into comics lately, hence some of the comic-related posts. One of the things that fascinates me is the abundance of great web comics out there. Tons of artists who haven’t quite found the right business model, but are producing incredible stuff anyway.

    Chad Townsend pointed me to Kazu’s work at BoltCity.com. His latest there is a quality monthly one-page comic called Copper.

    I went shopping in the real world the other day, and came back with the Adventures of Mia, by Pixar story Enrico Casorosa; The Red Star, colored by Animation Nation member Snakebite; and a few issues of Bone, the award-winner from Jeff Smith.

    What will the future hold for independent comic artists? Who knows. Here’s a semi-related excerpt from a Dave Sim speech from 1993:

    "The critical difference with Spawn is that Todd McFarlane recognized that he is hot NOW, while he was working on Spider-man. He recognized that he was making an enormous amount of money for Marvel Comics and that the percentage of that money that he was being paid was minuscule. He recognized that there was a window of opportunity NOW to make his future financially secure and to take control of his career. He recognized that at Marvel, his career was out of his control. A change of editor, of editorial policy, of company ownership, any number of things could throw him out in the street at a moment's notice. If Marvel could throw Chris Claremont away after fifteen years, refusing even to let him write a farewell note on the letters page of the book he had made into the industry standard, what security is there? Todd McFarlane recognized that there is no security. There never has been and there never will be."

    Over a decade ago I bought most of Todd McFarlane’s Spidey comics, as well as the first few issues of Spawn. Fast-forward to today: Spawn is drawn by someone else and McFarlane is a millionaire. And Dave Sim is a few months shy of wrapping up the entire 300 issue run of his independent comic, Cerebus. (He started 26 years ago.)

    → 1:21 PM, Dec 8
  • 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.)

    → 12:54 PM, Dec 7
  • Roy leaves Disney

    The New York Times covers Roy Disney’s resignation:

    "Roy E. Disney, a nephew of the founder of the Walt Disney Company, said on Sunday that he was leaving the board of directors and called for the resignation of the chairman and chief executive, Michael D. Eisner."

    Animated-News.com has a reprint of the full letter to Eisner and the board:

    "I have and will always have an enormous allegiance and respect for this Company, founded by my uncle, Walt, and father, Roy, and to our faithful employees and loyal stockholders. I don't know if you and other directors can comprehend how painful it is for me and the extended Disney family to arrive at this decision."

    Big news. It’s a shame that Roy is the one to leave. It’s clear that Disney (the company) has lost its way, and Eisner has no vision for what the company could be.

    → 12:02 PM, Dec 1
  • Mac files, volumes

    While looking for something else the other day, I ran across this Apple technote. I think it illustrates quite nicely the kind of sacrifices that were made to put Mac OS on top of unix. In the end the rewards are worth it, but the way volumes are handled is a step backwards. Seems like they could have created a small root partition, just for links to standard unix directories (usr, lib, etc), and mounted volumes in their own directories /My hard drive, /My apps, etc. This “/Volumes” business is silly. It’s another example of the fragility of the new system.

    We used to brag that you could rename your System Folder and the Mac would still boot. Those days are long gone.

    Related: John Siracusa reviews Panther.

    → 3:23 PM, Nov 24
  • HorseBack Salad

    The Austin Chronicle profiles HorseBack Salad Entertainment:

    "In February 2001 -- working out of their homes -- the four formed HorseBack Salad, a 'ground up' animation and multimedia firm whose chief claim to fame was and is its ability to generate unique results fast, whether the project is a music video, an animated pilot for the Cartoon Network, or a piece of educational software -- you know, for kids. With an animation style that occasionally echoes Jamie Hewlett's work for Brit hip-hop popsters Gorillaz and encompasses everything from their own projected animated shorts and series (this is where the kung-fu robots and Kabuki snowmen come in) to more serious (but not too serious) outings like their bouncy animated segment in local singer-songwriter Andrea Perry's 'Simple' video, HorseBack Salad has initiated or had a hand in 44 separate projects: a whopping record considering they're the new kids on the block."

    I first saw their name when the Question Authority interactive game showed before the Matrix at the Alamo Drafthouse. It was immediately obvious that these guys had talent, with some traditional animation know-how that is absent from a lot of online content.

    → 5:01 PM, Nov 22
  • Peppercoin and web comics

    It’s been a few years since Scott McCloud’s Reinventing Comics was published. In that time, a couple digital cash companies have probably closed their doors, and thousands of web comics have been created by artists with little expectation of even covering their costs.

    Peppercoin is the latest company trying to solve this problem (not just for web comics, but for any small purchase, such as music downloads). An article on Technology Review covers the details, and I have to admit it’s a pretty clever idea:

    "One transaction out of a hundred, selected at random, is sent to Peppercoin. After Peppercoin pays the seller 100 times the value of that transaction, it bills the customer for all of her outstanding purchases from all sites that use Peppercoin. Since about one out of a hundred purchases is processed, her last bill will have come, on average, a hundred purchases ago. That's the trick: by paying the seller and charging the customer in lump sums every 100 purchases or so, Peppercoin avoids paying the fees charged by credit card -- roughly 25 cents per transaction -- on the other 99 purchases."

    But it still requires the user to install new software. The content will have to be extremely compelling for people to install new software they’ve never heard of just to access it. Even BitPass, a competing service just getting started, is completely browser based. As is PayPal, for that matter.

    Meanwhile, we recently resubscribed to the local paper. (You know, the physical one that shows up on our driveway every morning.) Imagine my surprise that the comics section is now a full one-and-a-half pages, not just the one page when I was growing up. Now that’s progress.

    → 5:07 PM, Nov 18
  • VoodooPad

    Something interesting is going on with VoodooPad, winner of O’Reilly’s Mac OS X Innovators Content. It’s the best front-end to a Wiki I’ve seen, but more than that, the implementation for talking to servers is XML-RPC based and open (overview and more documentation).

    The API is simple, and you could probably use it as a front-end for other custom content-management systems, not just Wiki. But it is yet another API. I wonder if they considered building off of one of the existing weblog APIs, or the Atom project.

    I’m going to give VoodooPad a try for general purpose note taking. I’ve always liked the idea of a Wiki but have never been able to successfully use one for anything meaningful.

    → 10:36 AM, Nov 17
  • G5 vs. Power Mac 9600

    My new G5 arrived last week. This machine replaces (supplements) my old TiBook, which was really showing signs of age even with Panther. It is an understatement to say the G5 is a fast machine, and it makes programming a joy again.

    Of all the machines in my office now, the new G5 most resembles another machine I got just a few months ago: an old Power Mac 9600. That machine was a monster in its day too. As a Linux server, it does the job quite nicely. I finally finished migrated this site and email to it last night. (If you’re wondering why I would move this site to such an old machine, I should point out that this site used to run on a Power Mac 7600, even more ancient and running an extremely old Linux Kernel. Both run Yellow Dog Linux.)

    In the process I learned something valuable: Webmin is your friend. I had heard of this web-based unix administration suite years ago, but finally tried it yesterday. I configured a bunch of stuff that I didn’t know how to touch before now. I like the power of the command line, but using Webmin probably shaved two hours off of what I was doing. The only real problem I ran into was with Postfix, and I had to do a little troubleshooting with netstat and friends. Overall the migration went very well.

    → 10:36 AM, Nov 15
  • New York City and Al

    After visiting family in Louisiana last week (wait, 2 weeks ago), we took a trip to New York City for a few days vacation. It was great New York City weather: cold, and a little rain one night. We did the usual tourist sites, Broadway show, and walks in Central Park. We covered the city on foot, by taxi, and in the subway. All great experiences, and even though I’m back at home I catch myself jaywalking. Oops.

    The night we arrived, Al Franken was signing books. I finished his “Liars” book a few nights ago. It’s mostly good stuff, and I found myself laughing out loud at 1am, trying not to wake the sleeping three-year-old next to me. But there’s a darker side too. There’s only so much “funny” you can put in September 11, and he puts very little.

    Of course ripping apart conservative talking heads is fine, but the problem is not just with the right. Cable news in general has spiraled down into so much sensationalist garbage that there’s little or no time for real journalism. Even so, most of Franken’s arguments are pretty dead-on and well researched. (Disclaimer: I don’t actually have cable anymore, so what do I know.)

    One of the unfunny chapters is a moving description of the memorial service for his friend, Senator Paul Wellstone. Now Al Franken is contemplating a run for senator in Minnesota:

    "Driving him as well has been his distaste for the Bush presidency, he said. 'I felt like after 9/11 this president had a chance. We were united in a way that I had never seen, and he had a chance to take this country forward in a spirit of mutual purpose and mutual sacrifice. Instead, he just hijacked it and used it to his own political ends.'"

    Some people look to 2004 and ask, “How can a Democrat hope to win against Bush?” But this president’s credibility has been weakened, and the uphill battle right now is his. Wait to see the turnout on election day. Democrats hate this guy, maybe even more than many Republicans hated Clinton.

    Semi-related: George Soros gives $5 million to MoveOn.org, attacks Bush.

    (Don’t worry, politically-themed posts to this blog will be very rare.)

    → 10:39 AM, Nov 14
  • Porco Rosso

    Earlier this week, the brand new English dub of Hayao Miyazaki’s Porco Rosso was screened at the Paramount Theater as part of the Austin Film Festival. I bought a full pass to the festival to make sure I wouldn’t get cheated out of seeing this film, and I thought I could catch a few other films and the pass would pay for itself. No luck, I haven’t made the time to see any other films. But who cares. This is Miyazaki for crying out loud, and the only chance to see it on the big screen before it hits DVD next year.

    As John Lasseter said on some of the Miyazaki’s DVDs: “You are lucky. You get to see (insert great film here).”

    The film was fantastic, and the audience loved it. Funnier than his other films, but also with that sincere Miyazaki touch – beautiful sky scenes, not afraid to pause and appreciate a moment.

    Cindy and Donald Hewitt answered questions afterwards. They did the English dialogue for Porco Rosso and also for last year’s Academy Award winning Spirited Away. Sounds like they enjoy working on these films, even though they have a short time to get the screenplay done (2-3 weeks). They are also playing a bigger role in directing the voice actors.

    To see how potential voice actors will fit the part, they use Final Cut Pro to take audio clips from other movies and play it over the animation. When working on the English version, they just practice the dialogue while watching the movie, trying to get the lip sync right (lots of rewinding). They use the direct translation and also other existing dubs as a guide.

    Miyazaki’s next film, currently in production, is Howl’s Moving Castle.

    → 9:32 PM, Oct 17
  • Apple and Pepsi

    Today: Apple and Pepsi to Give Away 100 Million Free Songs

    Two decades ago, Steve Jobs to John Scully of Pepsi:

    "Do you want to sell sugar water for the rest of your life, or do you want to come with me and change the world?"
    → 6:27 PM, Oct 16
  • Rustboy book

    My copy of the Rustboy book arrived the other day. It is an incredible achievement, one of the best “making of” books I’ve seen. Like the upcoming film, it was put together by one guy, a Mac with off-the-shelf software, and some good design sense.

    Much of the book contents can also be found on the main Rustboy web site, but there is new stuff in the book too, plus some great insight. And hey, it even comes with 3d glasses.

    I only hope that he can finish the film itself relatively soon. Yesterday I caught myself saying that he would never finish it at this rate, or that it would take 5 years, but the truth is that I can see it being completed in another year or two. My only concern is that the story might not be strong enough to engage an audience for 25 minutes, but his work is beautiful so it hardly matters. And he has been such a perfectionist up to this point, it’s better to give him the benefit of the doubt.

    → 9:09 AM, Oct 13
  • Hackers and Painters

    Paul Graham’s Hackers and Painters essay surprised me. I put off reading it for months, because I assumed I knew what it was about – that programmers are artists, that their work today is just as important an art form as that of painters during the Renaissance. And sure, there’s some of that in there, but that’s not really the point at all. By looking for patterns between two seemingly unrelated subjects, Paul attempts to better understand the strengths or weaknesses of different approaches to programming. In the process I think he also defines what a hacker is – a tinkerer, a designer, but also someone who jumps in and starts coding. Not all programming projects should be tackled this way, and that’s fine too.

    "If universities and research labs keep hackers from doing the kind of work they want to do, perhaps the place for them is in companies. Unfortunately, most companies won't let hackers do what they want either. Universities and research labs force hackers to be scientists, and companies force them to be engineers.

    "I only discovered this myself quite recently. When Yahoo bought Viaweb, they asked me what I wanted to do. I had never liked the business side very much, and said that I just wanted to hack. When I got to Yahoo, I found that what hacking meant to them was implementing software, not designing it. Programmers were seen as technicians who translated the visions (if that is the word) of product managers into code."

    → 3:11 PM, Oct 7
  • Dreams quote

    Andy Murdock, of Lots of Robots:

    "If you sit around waiting for permission to follow your dreams then you are just sitting around waiting to die."
    → 11:45 AM, Oct 6
  • Old life drawings

    The human figure is complicated and beautiful and impossibly hard to draw well. If you can master it, the quality of the rest of your work will improve. When I have time, I go to an open life drawing session on Saturday mornings to practice. I don’t have anything recent scanned in yet, but here is some stuff from a few years ago (nudity).

    For some people, drawings appear to just flow off their pencil. They’ve also usually been carrying a sketchbook their whole life. For others, it is a constant struggle to improve their drawing skills. When I was young, I fell into the former category. But right now, it’s work, and I think it will take drawing regularly for a few more years for it to become easier. On the other hand, fighting over a drawing or piece of animation (and winning) is good too.

    Richard Williams, animation director for Roger Rabbit and author of the excellent Animator’s Survival Kit, writes:

    "I've never understood why some people in animation are so desperate to save work. If you want to save work, what on earth are you doing in animation? It's nothing but work!"

    Kelly is an animation student beginning her second year at CalArts, and writes one of a handful of LiveJournal weblogs that I’ve run across. I think she would agree with Williams, but she says it as only a passionate student artist can.

    "I wanna be struck by my unknown story with anvil force, thrown against the wall by more than I can handle, smashed and lightheaded on concepts I don't understand but must master, and grinding my pencil through my desk as I carve the lines of the living character into the paper. I want it to be messy and painful. Because there lies the beauty."
    → 9:20 AM, Oct 3
  • 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!
    → 6:05 PM, Oct 2
  • Doubting Cocoa

    TidBITS, iMovie 3 Tips and Gotchas:

    "Although the program introduced a number of welcome new features, performance was sluggish, the program crashed for no reason, and exporting data was problematic. iMovie 3 had become the new Word 6 (for those who remember that giant step backwards)."

    I still wonder about performance sometimes. Why is iCal so slow anyway? And why is the rewritten-in-Cocoa iMovie 3 slower than iMovie 1 and 2? No doubt that it is design decisions more than the language or framework that makes an app slow. OmniOutliner and Keynote are two examples of fast Cocoa apps.

    I spent several weeks last month working on Cocoa experiments – small test applications and new features in a Carbon application. It’s clear that the Cocoa framework is very powerful. If I started a new application from scratch I would probably use Cocoa, but for an existing Carbon application the choice is more difficult.

    Look at apps like iTunes. It’s still all Carbon, even the new music store. Or Final Cut Pro. These are some of Apple’s best apps. Not to mention Photoshop and Illustrator. Why should I abandon Carbon if it produces apps like these?

    And there’s something else: I trust the Carbon team at Apple. They know the Mac better than most – not just the APIs but what it takes to build solid apps, and what the essence of Mac UI is all about.

    I need to think about this more. Contrary to my previous post, mixing Cocoa and Carbon windows in the same application is problematic. Window focus doesn’t always work correctly, and dealing with menu commands in two different ways complicates the app. A better approach would be to stick with one framework for the UI (Cocoa or HIToolbox), and mix-and-match Cocoa and Carbon as needed under the hood.

    → 11:04 AM, Oct 1
  • Kali

    You always think that these are the kind of things that happen to other people, until it happens close to you. I went to the funeral service for Kali Sansone today, someone I saw practically everyday from kindergarten to 8th grade, but had not seen at all since.

    Some people are lucky to live to an old age and have their accomplishments written about in history books, but for the rest of us, it’s about what we leave to the world through our children, and in those who remember us. Many people will remember and be inspired by Kali.

    I don’t usually post this kind of personal stuff here, but I met up with some old friends and wanted to note that. If you’re Googling and find this site, send me an email. I’d be interesting in hearing about what you’ve been up to these last 12 years. :-)

    → 4:34 PM, Sep 27
  • New and old web standards

    Jeffrey Veen argues for the practical advantages of new web standards:

    "Huge interfaces squeezed through plodding modem connections have been a plague since the Web's inception. The increasing dominance of broadband has only helped a bit. A hotel phone line plugged into a business traveler's laptop may be the only tenuous link you've got to a new customer. Adopting clean, standardized code gives users a shortcut to accomplishing their goals at your site."

    And, in tribute to HotWired and the old school of web design, I present a list of things I miss from when the web was young:

    • webmaster@hostname email addresses
    • "best viewed in Netscape 2" buttons
    • colored bullet images
    • rainbow divider lines
    • that under construction digging guy
    • no .htm
    • h1, h2, h3 (making a comeback thanks to CSS)
    • background patterns (also back in style)
    → 11:14 AM, Sep 19
  • Futurama over

    The series finale of Futurama aired last month. It was a great show that ended too soon (thanks Fox execs). I had only seen a handful of episodes until last month, when I rented the first season disc 1 on NetFlix. I had forgotten how great the show was, so I bought the first season box set and ordered season 2, which I’ve been enjoying since.

    The commentaries on the DVDs are some of the best I’ve ever seen. Completely unscripted, funnier than the episodes themselves in many ways.

    Now that Fox has pulled the plug on the series, Futurama is enjoying a popular run on Cartoon Network. The fanbase is there, and there could be a movie version some day. But chances of Cartoon Network funding new episodes seems pretty slim, given the cost of each episode. Producer David Cohen has done a few interviews lately, here’s one.

    I guess anything’s possible, since apparently a Family Guy movie is in the works as well [via BoingBoing]. I never watched the television show, but it had a shorter run than Futurama yet strong DVD sales.

    → 9:30 PM, Sep 15
  • 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.

    → 2:37 PM, Sep 12
  • Whale Rider

    We saw Whale Rider last night, and I was pulled into it from the very beginning. There were few big surprises, but the story was moving, especially for all of us with daughters. It was told in a uniquely honest way that made the whole feel special. The scenes had a thoughtful timing and flow to them that really worked, and you could tell each shot was carefully composed. As Traci said as we left the theater, it was one of those rare films that you want to see again soon.

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

    → 9:34 PM, Aug 18
  • Carbon and Cocoa sitting in a tree

    John Gruber counters anti-Carbon arguments from Andrew Stone, again:

    Apple’s original plan more or less boiled down to replacing the Mac OS with NextStep; Mac developers had the crazy idea that it should be replaced with a new version of the Mac OS. Apple listened, the plan was revised, and six years later, here we are.

    Apparently, no one sent Stone the memo.

    The good news is that most of this Carbon vs. Cocoa stuff has died down by now. Developers realize that there are strengths in both APIs.

    Over the last few weeks I’ve been experimenting with adding Cocoa functionality to an entirely Carbon app. It turns out this is fairly straight forward. In fact the hardest part was making the move to mach-o and an application package. At that point you can drop NIB files in to the project, and mix and match Objective-C with C++. All using CodeWarrior.

    The integration is mostly seamless. For example I have drag-and-drop working between a Data Browser control in a Carbon window and an NSTableView in a Cocoa windows. The Cocoa code knows nothing about the Carbon window and the Carbon code knows nothing about Pasteboards. Another surprise was menu integration: NSTextView properly enables and responds to menu items in my Carbon Edit menu!

    → 2:14 PM, Aug 5
  • Veen and cycling

    I often subscribe to a weblog because I trust that person’s opinion on a certain subject. I know that they worked at a company I have respect for, or wrote software that I like, or created some art or film that is interesting.

    But many go further than that. They open up another part of their life that in many ways is much more interesting. A great example of that is Jeffrey Veen. Forget web design, his posts on cycling have been great. He also blogs in a pattern that I have come to appreciate: infrequent posts but each one actually says something. Too many bloggers now post 10 times a day, and it’s all useless stuff. You have to read a week’s worth of garbage to get something insightful.

    Here’s Veen on Pain and Cycling:

    "I crawled back to the city, wobbling across the Golden Gate into 30mph winds. My vision blurred and a cramp in my hamstring knotted and released with each pedal stroke. When I finally got home, I was unable to lift my bike up the stairs. I rolled it around to the garage and stumbled into the house. Leslie looked at me and said, 'Oh no.' I took a 30 second shower and fell into bed with a bowl of pasta."
    → 12:01 PM, Jul 25
  • The Animation Show premiere

    Friday night’s premiere of The Animation Show here in Austin was a lot of fun. An excellent collection of shorts. Many of them I had never heard of, and most I had never seen.

    Afterwards Don Hertzfeldt and Mike Judge took some questions. Here are two quotes from Don:

    "Really the point of this is to give back to the artists."
    "We've done this before -- we hope we can help them get through the door."

    Basically, he made two points on the purpose of the show:

    • To get good animation to audiences. Not just a few cities but into the midwest and all over the country. Apparently they are booking more shows than is usual for Spike and Mike.
    • To help artists get their work out there, help them make money. Don feels that short films should be a viable pursuit in themselves, not just as a way to land a feature job at a big studio.

    Other points:

    • It's not a competition. Spike and Mike and The Animation Show can co-exist. Mike Judge pointed out that in the 80s there were several shows (International Tournee, etc). Don remarked that it doesn't have to be like the big features, where there can only be one player for a given movie weekend.
    • Every year there will be a new show, with both brand new shorts and also older classics. New submissions will be considered for the 2004 show.

    The big surprise in the program was the inclusion of Ward Kimball’s 1957 film, “Mars and Beyond.” Kimball, one of Disney’s Nine Old Men, passed away earlier this year.

    Some more highlights (incomplete list):

    • "Strange Invaders", from the National Film Board of Canada
    • "Mt.Head", a great piece from Japan
    • "Cathedral", CGI with great backgrounds, really well done
    • "Parking", Bill Plympton
    • "Vincent", Tim Burton
    • "Das Rad", neat idea and well executed
    • "Huh?" and "Office Space" by Mike Judge
    • "Billy's Balloon" and "Rejected", plus the 3 new shorts for this show by Don Hertzfeldt

    The Animation Show web site now has a complete program list, and a schedule for cities the tour will hit over the next year.

    → 10:22 AM, Jul 22
  • 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
    → 5: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.

    → 10:47 AM, Jul 2
  • Email mistakes

    John Gruber: “The elephant in the middle of the room, of course, is Apple Mail.”

    For a while now I have regretted switching to Apple Mail. But this is not unusual, because I have regretted switching to every single email client I have tried since the Eudora days. Let’s face it – Eudora’s ugly, but it was a rock-solid app.

    The first big mistake was moving to CyberDog. There was a lot to like about that app, and I was a big fan of OpenDoc, but even today I have a bunch of mail stuck in its proprietary formats. I need to boot into Mac OS 8 and extract that stuff one of these days.

    Then I moved to Mailsmith. Unfortunately I lost mail due to corrupted databases. I have no idea how to get that stuff out. Even so, the 2.0 release sounds nice, and I’d be willing to give Mailsmith a another try. I’m stupid that way.

    Back to Apple Mail. If you are ever confused enough to think it’s a great app, try this: delete a single email message in a folder containing 2-3 thousand emails. On my TiBook, the OS locks for a good 5+ seconds.

    The saving grace of Apple Mail is that it is easy (presumably) to get out of it – they use standard unix mbox files for everything. Thank you Apple.

    Now I’m at WWDC, and Steve Jobs just demoed the new Apple Mail. Pretty nice stuff, but no mention of performance. I’ll wait to dump Apple Mail until trying Panther, which I’ll install on an external drive sometime this week. Or maybe I’ll just get a G5 desktop and not worry about performance anymore.

    It’s going to be a fun week.

    → 1:38 PM, Jun 23
  • 2d animation in a Pixar world

    I believe in traditional (2d) animation. But watching Nemo, for a moment I almost believed the hype – that 2d just can’t compete with 3d anymore. To remind myself that it’s not true I looked at the great drawings in the Art of Finding Nemo book, and remembered the fish sequence from the original Fantasia. Both mediums are appropriate for their own stories, and any great idea with strong characters can be embraced by audiences. You only have to look at last year’s successes Lilo & Stitch and Spirited Away as proof. The thing that makes Pixar great is the story artists and the hands-off management, not the render farm.

    There will be great 2d films to come, and to be successful they will need to embrace what makes 2d special: drawings. It’s clear that Disney (the company) has never understood what Walt believed in. Jim Hill thinks that many top artists, rather than submit to 3d re-training, may leave to build a new traditional animation company, taking over the art form that Disney pioneered.

    "And -- since WDFA execs now seem genuinely reluctant to greenlight a new traditionally animated feature -- that's why many Disney Animation vets are now reportedly talking about '... pulling a Bluth.'"

    Don Bluth, tired of the cheap production process compared to the classic Disney films, left the company and took many senior animators with him. They made The Secret of Nihm, and then the financial successful An American Tail.

    Although I don’t know the political climate at the studio, it is clear that there was a division among the animators, and Bluth left many young recruits behind. One of them, Glen Keane, is among the most respected animators in the business. He has supervised the characters Ariel, Beast, Alladin, Pocahontas, Tarzan, and Long John Silver. Now he wants to direct Rapunzel with charcoal animation, or 2d with 3d hair, but the project is being forced into an all-CG production.

    Getting back to Jim Hill’s point, would Glen leave rather than make a completely CG film? Maybe not. Ironically, he worked closely with John Lasseter before Lasseter left for Pixar, and then closely with Eric Daniels on the computer/traditional hybrid Long John Silver in Treasure Planet.

    Witold Riedel:

    "The writers at Pixar are somehow always able to think outside of one age group and so I think that even if Pixar decided to make movies with paper-napkin-puppets exclusively, they would still be able to turn them into wonderful classics. Their storytelling sits at the beginning and in the centre of the process and this really shows."
    → 9:37 PM, Jun 16
  • Nemo box office

    Happy Father’s Day!

    Finding Nemo – about a father, among other things – set a new record for biggest animated film opening with $70 million, and another record for fastest animated film to $100 million. Now, in its third weekend, it is still the number one movie, and will likely pass $200 million total in a few days. Congratulations Pixar!

    More on this subject tomorrow.

    → 11:18 PM, Jun 15
  • WWDC coding frenzy

    It’s appropriate that I’m in a coding frenzy for the next few weeks. WWDC e-ticket in hand, and at work we go GM on a major version of our software just a week before the conference.

    This will be my fifth WWDC, and I think it will be a good one. It’s great to work for a company committed to this conference. Lots of mysterious TBA sessions, which probably means they will cover new Panther technology. Unfortunately the session map puts some of the good Carbon sessions on the last day. Every WWDC I have to wonder if Apple will fully support Carbon development.

    The code I’m working on now will be the last for Mac OS 9. Since I use a custom C++ framework, we’ve been expanding it over the last few months. Wrappers for Carbon Timers, network transfer, and QuickTime. OS X-specific stuff, like sheets. More advanced UI controls, custom buttons, and a search box. A minimal toolbar class, which looks like the OS X toolbar at first glance, but works on OS 9 and doesn’t support customization.

    When we finally say goodbye to OS 9, some of this code can be replaced. WWDC is a good turning point. Without worrying about shipping a product, I can dive into the new Carbon HIToolbox APIs. And Cocoa. Based on what Apple says at the conference I will decide whether moving to a hybrid Carbon/Cocoa app is the way to go.

    It should be fun.

    → 10:08 AM, May 28
  • Reloaded and Animatrix

    The Matrix double-feature last night was fun (thanks Damon). Five hours of movies and food, yikes. I enjoyed the movie, and my only complaint was when they started replacing Keanu with a CG character in some of the fight scenes. It started to look more like a video game then a film, but given the nature of the Matrix world, maybe that was the point.

    Kottke was also annoyed by the effects: “The completely computer-generated effects (e.g. in the Neo vs. 100 Agent Smiths fight) looked, well, completely computer-generated.”

    Before and between the features they screened 3 of the new Animatrix shorts. I had seen part of one online, but was waiting until the DVD came out so I could watch them all. Now I’m not so sure. I’ll probably still get the DVD, but I hope the subject matter in the other shorts is better than The Second Renaissance. Not that it was bad – it was brilliantly done, with a great blend of CG and hand-drawn – but it sure was a depressing little film. Sort of like Grave of the Fireflies: a beautiful and moving film, but not something I want to watch over and over.

    IGN: Interviewing the Animatrix

    → 10:06 AM, May 15
  • The battle for RSS

    At SXSW I told Mena Trott that RSS 1.0 was dead or dying, because it was too complicated. Turns out I was partially wrong – it’s very much alive, but perhaps only because it’s the default in Movable Type. Six Apart has signed up for the semantic web vision, and they are tool builders so they look for ways to make their products spit out semantic goodness.

    I used to feel the same way. I wanted to build tools to help web designers use meta data effectively, provide meaningful structure to their site, put their template-driven pages in a database, and a whole host of other tricks that in 1995 seemed like noble work. I’m too tired for that now. I just want to use the web, and build good software, and do a few other things.

    You reach a point where you no longer want to tinker with things that work. Could RSS 2.0 be better? Sure, but so could any number of standards. You need stability to build new tools on top of.

    The RSS profile discussion on Sam Ruby’s blog makes me want to set fire to my computer. As do all the competing approaches for putting HTML into RSS.

    Ben Trott chimes in with “RSS for Weblogs”. I still think there’s a division in the RSS community between people that want a simple format and people that want to evolve it, embracing RDF and a handful of upcoming weblog-related specs. As such, the battle for RSS standards is going to suck. Of course maybe I’m wrong, maybe this work does need to happen, to “finish” RSS. To all involved, good luck!

    <a href=“http://diveintomark.org/archives/2003/04/24/zeldman_has_an_rss_feed.html

    “>Mark Pilgrim:

    "Zeldman maintains this feed by hand, like he maintains the rest of his site. Let's keep this in mind the next time someone claims that it's OK for a data format to be complex because it'll only ever be produced and consumed by machines."

    In the TypePad announcements comes word that they will be pushing FOAF (friend of a friend). According to the Guardian article, “instantly taking an experimental standard and taking it to the mainstream.” Is that a good thing?

    Let’s not forget the little guy who has to code this stuff by hand. And don’t push formats that no one wants. Where possible, give choices. When a product takes off like Movable Type has, the formats that it spits out have a big influence.

    I’ll end with a few RDF articles. Hopefully this will be my last blog post about blogs for a while.

    IT World: “RDF and other monkey wrenches”

    Jon Udell, <a href="The Semantic Blog:

    "But we'd hate to be saddled with the rigorous data preparation that the Safari production teams slog through. That's the Semantic Web dilemma in a nutshell. Where's the sweet spot? How can we marry spontaneity and structure? Recent trends in blogspace, plus emerging XML-savvy databases suggest a way forward."
    → 9:42 PM, May 10
  • Time for a better Finder

    A few weeks ago John Siracusa wrote a great summary of the Finder, with specifics on why the OS X Finder is a step back from the OS 9 Finder. In the second half he provides suggestions for improvement that return what was good about the old Finder, plus a general architecture and guidelines for adding features.

    And Tog writes that Apple has been squandering the advantage it used to have. Some of the interface innovations he wants include piles, file cabinets, and scrapbooks, all to help better organize documents. Just the names alone carry a lot of meaning.

    eWeek hints at possible Jaguar “user at the center” features, including piles that Tog mentions in the link above:

    "According to the patent, piles comprise collections of documents represented graphically in stacks. Users can browse the "piled" documents dynamically by pointing at them with the cursor; the filing system can then divide a pile into subpiles based on each document's content. At the user's request, the filing system can automatically file away documents into existing piles with similar content."
    → 1:43 PM, Apr 22
  • NetNewsWire as a platform

    There’s an opportunity for Ranchero if they act soon. We are still in the early stages of RSS readers and aggregators, both web-based and desktop apps. Over the next year, we are going to see even more tools for managing weblog subscriptions and discovering new blogs.

    <a href=“http://www.dashes.com/anil/index.php?archives/005631.php

    “>Anil Dash wants to follow many, many weblogs:

    "The second idea that I really believe in, despite the fact that nearly everyone who heard it thought I was either being crazy or facetious, was that in 2 or 3 years, many of us will be reading 10,000 weblogs. It's a hard statement to justify literally unless you factor in how software and platforms are going to evolve."

    At SXSW, he made the comparison to the New York Times. Instead of hundreds of writers and editors at a newspaper, you have thousands of bloggers focused on topics they know something about, and smart software that brings it all together.

    Impossible today. At least two things are needed: Better ways to discover new blogs, using blogrolls and FOAF-like formats to connect bloggers that share common interests; and filtering systems that allow unimportant entries to be hidden, or special topics flagged and brought to your attention.

    Back to NetNewsWire. It has a good UI, it’s built on a nice database (SQLite), it knows network stuff and RSS, and it will soon integrate a good rendering engine (WebKit). Why not use that infrastructure to build other tools on. Plug-ins could hook into the application at different levels, such as filtering incoming RSS feeds, providing search services, or making changes to the subscription list. NetNewsWire has great AppleScript support, but this would go a step beyond that.

    Now would be a great time for Ranchero to start thinking about this, before everyone starts writing their own aggregator. The last thing I want is 10 applications with incomplete features. I’d rather have a couple good ones that are compatible and can be extended.

    → 11:33 PM, Mar 27
  • Spirited Away to get new theatrical release

    I was out of the house Sunday night so I set the old VCR timer to record the Oscars. Unfortunately I programmed it with the wrong channel. I guess that’s an argument for Tivo. But it was probably just as well, since I was able to catch up on the winners and speeches in 10 minutes instead of 3 hours.

    The big news for me – more than Michael Moore’s rant, or Adrien Brody’s win for The Pianist – was that Spirited Away beat out Lilo & Stitch for Best Animated Feature. Now comes word that Disney will keep its promise to re-release Spirited Away to 800 theaters this week. Hopefully it can find an American audience.

    Update: Box Office Mojo shows a 700-theater opening tomorrow. At least two theaters here in Austin.

    → 12:32 PM, Mar 25
  • Google UI

    After SXSW I made a point to seek out new blogs. One is Micah Alpern, who writes about Marissa Mayer’s talk, “The How and Why of Google UI”:

    "Marissa is involved in UI, Usability, and Project Management at Google so she's had a big effect on how Google.com has evolved. It was an insightful talk with great examples of how a user centered design processes can lead to successful products."

    Also on the Google UI front today, 37signals enhances Google’s default design by exposing similar search terms and their hit counts:

    "Our idea for 37BetterGoogle was to go beyond Google's standard search and offer alternatives based on the words you originally entered. By searching for different forms of the same words and comparing those results to your initial query, Google does the legwork for you, helping you see results you may never have discovered the first time around.

    Interestingly, 37signals has placed the entire design into the public domain using a Creative Commons license, essentially giving the idea to Google free of charge. Good for them.

    → 11:34 PM, Mar 20
  • scriptingNews format to RSS

    Dave Winer from 1999:

    "Compare RSS with scriptingNews format, which is richer, it includes enough information to do an elegant syndication-based search engine (coming later today). Netscape's and Slashdot's formats are basically equivalent, neither is as rich as our format."

    At some point Dave stopped evangelizing the scriptingNews format, but Userland tools still support it. Manila’s RSS output is actually often incomplete compared to the scriptingNews version. This annoyed me enough with Hack the Planet that I wrote a little Python script to convert scriptingNews to RSS. (NetNewsWire doesn’t support scriptingNews subscriptions.)

    I had never coded in Python before, but I’ve read a little from Learning Python and Dive into Python. Even so, the script is mostly an unenlightened mess. The usual disclaimers apply: do whatever you want with it, don’t blame me, feel free to send improvements back to me, etc.

    I’m running it from cron on my Mac OS X laptop with curl -s wmf.editthispage.com/xml/scrip… | python sn2rss.py > wmf_rss.xml, and then I point NetNewsWire at the local generated file.

    You can download it here: sn2rss.py.txt.

    For those wondering why I didn’t just use XSLT, I did try that first. But doing string replaces didn’t seem to be available in the old version of XT I was testing with.

    A final warning: Python’s XML parser on Mac OS X 10.2 is broken. I had to install PyXML, which also had a broken install script that required tweaking. Too bad I threw away my changes.

    → 8:41 PM, Mar 17
  • Flash vs. web apps, again

    Macromedia is fortunate to have two things going for it: Kevin Lynch, who seems like a smart guy, and Dreamweaver, which won’t let the company forget about HTML.

    My expectations were very low for the Macromedia.com beta report, but truthfully there is some good stuff in there. Macromedia will not be successful pushing their Rich Internet Application strategy without educating customers when to use Flash, when to stick with HTML and core web technologies, and when to combine both. The report feels honest. Here’s the take-home point:

    "Content and applications should coexist. The most successful sites will walk the delicate balance of using Macromedia Flash and HTML together to create engaging, effective experiences."

    Anil Dash said at SXSW, about why audio blogs suck: “They break the web to me in all the ways Flash does.” How does Flash break the web? Used poorly, it’s a glorified JPEG – no links, no URIs, no back/forward button in the browser, no user control. Ironically, Macromedia was held up as a good example in Jesse James Garrett’s user-centered URL design essay, and that URL consistency remains on the new site. Obviously there are people at Macromedia who get it. When the report says “Internally, there was a lot of debate about the home page”, you can read between the lines and imagine the different camps fighting it out in meetings.

    I had a great lunch conversation with Trei Brundrett of Handwire last week about Flash vs. traditional web applications. He had experimented with a completely Flash front-end for a previously web-based content management system, with disappointing results (slow load times and decreased usability). Other web developers that go down this path might also find themselves questioning their decision, depending on the project. There are small studios producing entire animated television series using Flash! You have to wonder if the same tool is also appropriate for building software user interfaces.

    It’s great to see Macromedia eating their own dog food. I wonder if it will change their rhetoric on Rich Internet Applications a year from now.

    → 12:34 AM, Mar 17
  • Implementing TrackBack

    After the panel Tuesday I commented to Mena that TrackBack is still sort of Movable Type-only and maybe needs simplifying if it is to gain acceptance in other tools. Turns out I was wrong, in part. TrackBack is a pretty good specification. As far as how pinging works, it’s about simple as it could be.

    I started implementing TrackBacks for my blog tonight. I’m using Radio Userland, which has it’s own centralized comment system that I don’t use. For a couple of reasons I prefer the idea of TrackBack. It adds a little bit of accountability (you need your own weblog), and also allows the poster more control over his or her own comments.

    However, not everyone knows how to issue TrackBack pings, which is really the part about the system that needs some usability help. So I also want to eventually add support for detecting in-bound links using referrers, which would be gathered into the same database and co-exist alongside TrackBacks. All the coding will be in PHP, included as necessary from the static HTML files that Radio generates.

    Another one of my goals is to have simple TrackBack Ping URLs. My first idea here was to use the permalink itself, but right now I think I’ll use a variation like /trackback/2003/03/15. When I have it working, I’ll add the URL below each post.

    Matt Haughey is also doing interesting things with TrackBack: “So Winamp is now sending trackbacks to my blog, and every time a new song comes on, a new ping goes out, and my site changes.”

    Earlier this year Timothy Appnel suggested changes for the next generation to TrackBack.

    → 12:41 AM, Mar 13
  • Simple friendly formats

    SXSW has wrapped up for me, although many others will still be out partying long after I post this. I’ve had the chance to meet some interesting people. Some of them I have names and URLs for, some just faces and conversations.

    The Future of Blogging panel was good. Tantek Çelik asked a question about the complexity of Friend of a Friend (FOAF), and whether a more human-readable/writable format was needed. The question was not well received by the panel, which took the view that tools (like Movable Type) will be able to hide the sometimes messy details from the user.

    But remember that if nothing else, the weblog movement has proved that it is the simple formats that will be successful. RSS 1.0 (RDF-based) was interesting, but it’s dead, and it’s dead because it was too complicated. Similar situation with XML-RPC vs. SOAP. To get to the point of having great tools that hide the protocols, you need to go through a period of hand-coding. The easier a spec is to understand and implement, the more people will adopt it, the more momentum it will have, and the more tools that can build on it.

    I took a bunch of notes in some of the more interesting sessions. Originally I had planned on posting them to the SXSWblog Notes Exchange, but alone their value is questionable; they are so interspersed with my own thoughts which need more exploration. Over the next few days I’ll unravel them and post my view on the topics that have threaded through the conference.

    Justin Hall on note taking:

    Now that I’m practicing more professional journalism, I see less value in a straight recitations of events. I want a summary, with key glowing thoughts brought out, hyperlinked and put in context. Notes are good for article building, but they don’t make much of an article in and of themselves.

    → 10:29 PM, Mar 11
  • Still at SXSW, 2 links

    Mike Clark is thinking about blogging:

    "My weblog is still relatively new, and yet once in a while I find myself reading through some old entries just to see where I was at mentally (and physically). Indeed, I use this form of reflection, and others, as a learning tool. Over time I'll continue to study the history embodied in this weblog as a yardstick for measuring personal and professional improvement."

    girlwonder.com might be outgrowing SXSW:

    "it's safe to assume that everyone's got some understanding of the more basic issues around these micromedia. could we instead talk about the deeper whys, the implications, the social issues? could we look outward a few years and try to envision the world we're going to be in, as it pertains to us and the aims of this conference?"
    → 12:48 AM, Mar 11
  • At SXSW thinking about weblogs

    I turned this web site into a blog one year ago today. More on that in a few paragraphs.

    This afternoon I was sitting in the hall at SXSW trying to organize some notes, and charge up my PowerBook battery. A convention center employee told me and others that we can’t use the wall outlets. He forwarded us to Regina at the utility services booth in the trade show hall, who confirmed that she “owns all the power outlets” in the convention center. Apparently she’d loose money if a few laptop batteries were charged on her watch. She kindly told me about the iMacs in the corner where I could check email. (No thanks.)

    I’ve been taking notes and writing up a few thoughts to post later. It’s been a good show so far. David Weinberger gave a great talk yesterday afternoon – well-timed after his and Doc Searls' “World of Ends” essay. It started the conference on the right foot, and I found myself making connections between his view of the web and other sessions.

    In the “Doing Good Online” panel, Chris Mandra from NPR Online said: “If you do the best thing you can do, and satisfy yourself, you will satisfy other people.” The web allows communities to form across existing boundaries (nothing new here, but worth repeating). Being on the web is fine, but by itself has little meaning; it’s about adding to the value of the web. Something as simple as posting about your washing machine in a site’s discussion forum, or writing a weblog on wireless networking, or politics, or whatever – all these things add value, if they can be linked (and indexed) into the whole. Do something as well as you can and put it out there.

    Maybe the most valuable weblogs, then, are the ones that can focus on a set of topics. Where individual posts or groups of posts can stand by their own when read a year from now. In response to a question from the audience, Weinberger said he didn’t believe that most bloggers include personal information in their writing, as they would in a private journal. A few trips to LiveJournal or a random Blog*Spot site might lead to a different conclusion. But somewhere in all that rambling there will be some great stories, and they have the potential to connect on some level with someone, somewhere.

    I wrote most of the above paragraphs during the conference today. When I got home I went to re-read Meg’s “What We’re Doing When We Blog”, only to find out that I had never actually read it. Probably just skimmed. There’s good stuff in it, and the best parts of the “Journalism: Old vs. New” panel today echoed some of it: about weblogs enabling conversations, involving the reader. Dan Gillmor: “My readers know more than I do, and that’s not a threat, it’s an opportunity.”

    One year ago I wrote: “Seems an appropriate time to start a weblog, as if there weren’t enough in the world already.” Since then, thousands more have surely been added to the web, and there are still not enough blogs. The challenge for the next year will be finding readers for those new voices – building software to help discover new sites and connect people.

    → 10:57 PM, Mar 9
  • Almost ready for SXSW Interactive

    SXSW Interactive kicks off tonight. Wes, against his better judgement, is going to the Linux Top Gun contest. I decided to skip out on the opening night for a variety of reasons, mostly to stay home with family, and because driving downtown just for an hour seemed a little silly.

    SXSW is a weird mix of sessions. Here are some of the ones I plan to hit during the conference (my comments in parenthesis):

    • David Weinberger, Small Pieces Loosely Joined (I haven't read the book)
    • The Future: User-Centered Design Goes Mainstream (the future design process, with Jesse James Garrett)
    • Doing Good Online: Innovative Ideas From Non-Profits on the Internet (moderated by Adaptive Path's Lane Becker, with Cory Doctorow)
    • Journalism: Old vs. New (weblogs weblogs weblogs)
    • Lawrence Lessig, Building a Layer of Sanity Into the World of IP (superhero)
    • Conceptual Firewalls (inequalities and blogging)
    • Computers vs. Blackboards: Net Learning or Not Learning? (almost too related to my work)
    • Organizing the World's Information (Google employee)
    • Deconstructing the Rich Interactive Experience (Flash MX blah)
    • Beyond the Blog: The Future of Personal Publishing (Trott and more)
    • Bruce Sterling, Tomorrow Now (haven't read this book either, but a fun way to close out the conference)
    → 12:06 AM, Mar 8
  • To the crazy ones

    There has been some excellent critique of Apple’s UI experiments on Irate Scotsman, Daring Fireball, and NSLog. While moving some books last night I found the following, which you may recognize from Apple’s Think Different ad campaign. Reading it I couldn’t help but think of the posts above.

    Here's to the crazy ones.
    The misfits.
    The rebels.
    The troublemakers.
    The round pegs in the square holes.
    The ones who see things differently.They're not fond of rules.
    And they have no respect for the status quo.

    etc…

    The important thing here is that you want to be different and better, not just different. Lately, Apple has been better. The recent failures are so annoying because they got the hard things right (new design approaches to old problems) and the easy things wrong (UI widget consistency).

    → 10:38 AM, Feb 20
  • 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.

    → 3:08 PM, Feb 19
  • Andy Serkis, animators, and the Oscars

    Slashdot points to a Salon article about Andy Serkis (voice and motion reference for Gollum in The Two Towers) missing an Oscar nomination:

    "In the end, the answer is no, not because his talents are less significant than those of the supporting actor nominees, but because the work that he has done here is not equivalent. It would be a disservice to the other nominees to compete against the computer-enhanced Serkis, just as it would be a disservice to Gollum to be written off as an accomplishment of acting."

    The article is disappointing. While Andy Serkis did a great job, giving him sole credit for the performance would be forgetting all the animators who also brought that character to life. Much of the performance used motion-capture, but many of the most important scenes (such as the “split personality” scene that cuts back and forth between the two faces of Gollum) were entirely keyframed by animators, with just a glance at the actor’s performance for reference.

    The real problem is that the Oscar categories need to be updated to include roles that don’t fall into the traditional actor/actress ones. The Annie Awards (for animated films and television) have long had a best voice actor category. The Oscars could embrace that category, and add others such as best lead animator or best character, to pay tribute to the whole team that brought a digital character to life.

    → 5:53 PM, Feb 18
  • Reading list

    I’ve added a list of books I am reading or have recently read to the right column of this web site. Just a friendly reminder to stick your head over the walls of RSS-land every once in a while.

    → 1:12 PM, Feb 12
  • Konfabulator

    Of all the things I should be doing, staying up late hacking Konfabulator widgets is not one of them. I started building one to display select headlines from NetNewsWire. It wasn’t until this morning that I noticed there were already some RSS-related widgets available. Still, it could be a fun little hack. The platform Konfabulator is building is interesting, and the app is polished.

    Konfabulator is from Perry Clarke and Arlo Rose, whose name you might recognize from Apple and the Kaleidoscope project.

    Still, I have to wonder if Konfabulator as a shareware product will be successful. There would have to be a few really compelling widgets to justify the $25 price. See Joel’s Chicken and Egg problems.

    → 1:00 PM, Feb 11
  • 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.

    → 3:31 PM, Feb 8
  • Inductive vs rich user interface design

    Boxes and Arrows article by David Heller: “Ultimately, I don’t see a long term future for HTML as an application development solution.”

    Meanwhile, there has been a steady integration of HTML interface behavior into traditional applications. Two years ago, Microsoft published a document titled “Inductive User Interface Guidelines” that made this case in a strong way. It was a result of lessons learned from years of building web applications.

    The idea is simple. Despite the lack of mature interface components for web based apps, people understand hyperlinks. (Remember Steve from last month’s Macworld keynote: People only use what they understand.)

    Of course it’s more than just hyperlinks – it’s about taking the tasks that you need to do right now out from their hidden places in the menu bar and displaying them in context. No more digging, and it’s text instead of obscure toolbar icons.

    But I wonder if something else is going on here. In the studies that Microsoft cites, there is an increased success in solving tasks, but the long-term usability is not measured. I’m talking about the satisfaction that comes from using a well designed piece of software every day. The web style is easy to understand, but it is also heavy on the clicks (repetitive and modal).

    Furthermore, the idea can easily be taken too far, and in doing so it jeopardize the consistency of the rest of the interface. Take the Visual Studio .NET installer, which I recently had the pleasure of using. (I’m sure this is true for other Microsoft product installers as well.) It uses HTML-like links for things that buttons are perfectly good for, such as “Continue” on the bottom of a wizard screen.

    Jeffrey Veen on links:

    "I've often referred to the links in Web pages as windows -- little glimpses out to other destinations. And, as users scan a page while hunting for their next click, they use these windows to make their decisions. The more context you can offer them, I've often said, the more effective their browsing will be."

    Contrast this with David Heller’s article promising the end of HTML. As the Veen quote suggests, HTML can be effective and powerful when used properly. Throwing out accepted web interface conventions in favor of Flash front-ends would leave a mess of “fancy” but otherwise non-standard and unusable interfaces until new best practices could evolve. Likewise, merging HTML-like interfaces into traditional applications probably only makes sense for a minority of applications.

    → 12:10 PM, Feb 4
  • NASA loses shuttle

    Oh no.

    AP: NASA Loses Touch with Shuttle Columbia:

    "NASA declared an emergency after losing communication with space shuttle Columbia as the ship soared over Texas several minutes before its expected landing time Saturday morning."

    CNN: Columbia shuttle breaks up over Texas:

    "Police in Nacogdoches, Texas, reported 'numerous pieces of debris' both inside the city limits and in Nacogdoches County."

    Listening to NPR this morning: “Eerie quiet at Kennedy Space Center.”

    I remember a few years ago, seeing the shuttle pass over Austin. We went outside, and it seemed half the neighborhood was also out in the streets, looking up. I wondered aloud if we’d be able to see anything. We squinted at the clouds, and other imagined dots in the sky. And then, the sky lit up – a huge streak across the sky as the shuttle passed. An amazing sight.

    → 10:02 AM, Feb 1
  • 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.

    → 9: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.

    → 1:34 AM, Jan 30
  • Long time no blog

    It’s been two weeks since I last posted, and with every passing day it becomes more difficult to post something. Why? Because with such a delay I feel that I need to somehow justify it with a great blog post. Just wait another day – then I’ll hit my readers (all 2.5 of them) with something great.

    Well, something great hasn’t happened. Instead, I fooled around and added a blogroll to the site, tested Movable Type and Blosxom as possible Radio replacements (not yet), and took notes on things that I’d like to blog about.

    I’ve also been thinking about what to do with my recently reacquired domain, metacontent.org. I’ve been looking at TrackBack closer, and the metacontent.org site might make a good general index of recent metadata-related blog posts. It would use the standalone TrackBack implementation and could be pinged by anyone.

    In my old NetNewsWire subscriptions, I had a group named “Natural Born Bloggers”. These were mostly old-school bloggers who defy classification, such as Meg with topics that range from web design to cooking, or Dave with technology to life lessons. Apparently I’m just not cut out for that elite group.

    The flipside, though, is that I’ve been getting a great amount of real work done.

    → 3:47 PM, Jan 29
  • 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.

    → 9:56 AM, Jan 15
  • Macworld and new apps

    Macworld was a week ago today. A few fun quotes from Steve Jobs:

    "This jacket is wicked."
    "We put the antennas where they belong."
    "You only use what you understand."

    Almost every weblog I read has been buzzing about Apple’s new web browser, Safari, but this Macworld also saw updates to iMovie and iDVD. iDVD has has some great new themes, and iMovie has apparently been rewritten in Cocoa (which explains the delay between the last release and now).

    It used to be that part of an argument between a Mac person and a PC person might go something like this: “There are way more applications available for PCs than for Macs.” Response: “Well, that’s true, but all the ones that matter are on both platforms.”

    In the last two years we have seen a different situation emerge. Innovative apps that are well-designed and focused on a single purpose are appearing for the Mac that have no good counterparts in the Windows world. NetNewsWire, OmniOutliner, and OmniGraffle come to mind. And Apple is continuing to lead the way by bringing a lot of power to users in the form of iMovie and iDVD. I don’t have numbers to back this up but I think bundling these apps can only help sell machines.

    I’ve been using Safari since its release. I don’t miss tabbed browsing, but I do miss Chimera’s ability to store web site passwords in the system keychain. And for no good reason I’ve changed the color of the toolbar icons.

    → 12:04 PM, Jan 14
  • HTML 3.2 forever

    In My Experience: “I still use html tables”:

    "Fully abstracting your UI from its content takes skill and time. If you don't follow thru, you can negate much of the benefit you seek to create. Now stop and think. Do you even know what the benefit is that you are attempting to create? Will that value be worth the effort?"

    Mark Pilgrim: “Semantic obsolescence”:

    "I bought into every argument the W3C made that keeping up with standards, validating, and using semantic markup now would somehow 'future-proof' my site and provide some mystical 'forward compatibility'. How about some fucking payoff now? How about some fucking compatibility?"

    There are some good points in both of these. Like many things, there is the “right way” to do something, the way that makes you smile and feel good inside when you leave work, and there is the way that actually works and allows you to implement a solution quickly and move on to what is really important (adding content to a site, improving application features, etc). I tried an all-CSS layout for an Intranet project many years ago where the browser version could be mandated. Sure, that was before Mozilla was done, but even so it’s not an experience I’d like to return to any time soon, just for the sake of doing things the “right way”. There has to be a real need, and that differs from project to project.

    → 11:56 AM, Jan 13
  • Pepys Diary

    A great new blog to start off 2003: The Diary of Samuel Pepys. What an innovative use of the weblog format.

    "This site is a presentation of the diaries of Samuel Pepys, the renowned 17th century diarist who lived in London, England. A new entry written by Pepys will be published each day, with the first appearing on 1st January 2003."

    This is also perfect timing for my new year’s resolutions, one of which is to write in my own journal more. (That’s the old cloth-bound, hand-written kind.) I filled the first one up a few years ago, a good portion of that on a 2-month trip to Europe, but my current journal has remained mostly blank.

    Congratulations to the site creator for producing such an excellent site. Very polished, clean design, putting hypertext to great use. RSS feeds are also available, under “Other formats” on the about page.

    → 3:40 PM, Jan 3
  • Still digging

    Wow, Dave Winer is applying for a new job:

    "As I've been talking with people about this, it's been hard for them to separate me from UserLand, but that's what I want to do. I'm going to get a new job with a new title, and it's going to be quite different from being the CEO of a commercial software company. It's time to set my life in a new direction."

    Good luck, Dave. Still digging! :-)

    → 9:58 AM, Jan 2
  • Video games for a new year

    Salon has an article on Tolkien-inspired video games:

    "'Immersion does not necessarily require photo-realistic rendering at 60 frames per second and Dolby Surround sound,' says Singleton. 'Imagination can play a huge part, too. Witness how immersive Tolkien's books themselves are. In some ways, the lack of concrete images can be even more evocative.'"

    Over Christmas I talked with a relative (who is writing about cell phone gaming) about the possibilities of networked, collaborative games. Without the graphics features of the modern computer, maybe the cell phone will be the perfect place for a new innovative game to emerge. Building a game for a cell phone does not require the army of programmers, designers, and animators that is commonplace for PC games, so a few creative developers could create something unique.

    Meg on holiday video gaming: “I was stealing motorcycles and punching cops and doing all sorts of other nefarious things I would never ever do in real life.”

    → 4:04 PM, Jan 1
  • Awaiting The Two Towers

    A couple of hours from now I should be firmly planted in my seat with popcorn and drink for The Two Towers. I didn’t get to finish re-reading the book this week as I had planned, but from what I’m hearing there are enough differences that maybe it wouldn’t have mattered. These films have a way of intruding on our own version of the story. After seeing the film, it’s sometimes hard to remember how you first imagined things.

    Not to mention the plot changes. There was one subtle change that annoyed me about Fellowship, and as far as I can tell there was no reason for it. In the last chapter of Fellowship and the opening of Two Towers, Aragorn is busy running around and makes a crucial decision as the Orcs attack to not continue to find Frodo, and so Frodo and Sam leave unnoticed with the ring. By the time Aragorn realizes what has happened, he admits to himself that it’s probably best for Frodo to go the rest of the journey alone, and he can focus on rescuing the other hobbits.

    But in the film, Aragorn and Frodo have a little talk, and Aragorn lets Frodo go to Mordor alone. This is definitely wrong for Aragorn’s character, since after Gandalf disappeared he was responsible for seeing the journey to it’s conclusion. He would never have willingly let Frodo go alone, and my guess is that Tolkien spent some time crafting the right situation that would allow Frodo to go by himself.

    Meg: “I’m most looking forward to seeing the Ents.”

    I’m both looking forward to and dreading the Ents. In the early trailers, there was no sign of Treebeard or his friends, so I assumed they had been given the ol' Tom Bombadil (cut). Of course it will be computer animation, but I wonder if they can pull it off in a believable way.

    → 6:08 PM, Dec 20
  • 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
    → 10:16 AM, Dec 19
  • Metadata seven years later

    Aaron Swartz talks at the Creative Commons launch party:

    "Right now you can only ask a search engine one question: 'What pages have these words in them?' When pages include RDF metadata, you will be able to ask more advanced questions like 'What's the current temperature in California?'"

    Aaron, thank you for being optimistic. Someone still needs to be.

    Back in 1996, when RDF was more an idea than an acronym, I worked on a side-project with my friend Travis Weller. It was based on RV Guha’s MCF and hosted at the domain metacontent.org. We demoed the first part of the software at Mactivity/Web, and I still have the slides for the presentation (click the logo to advance). It was a web server plug-in that served a site from an object database (the prototype used an embedded version of Userland’s Frontier database, but the idea was to eventually provide object-relational mappings to other more common databases). We called the web server portion Rendezvous, because it gathered pieces of content and metadata and assembled them together to serve a page. Apple likes that name too.

    We also designed parts of the admin interface, which was to be the killer app to enable thousands of web designers to make metadata an integral part of their web site. You sell users on the product by providing a great interface for managing an entire site’s content, and then handle organizing the metadata behind the scenes.

    Somewhere along the way, we realized the magnitude of our goals and grew disillusioned. Or maybe we just found better day jobs. Either way, the metacontent.org domain expired and was taken by someone else, we never shipped any software (although I still have the code on a backup disk somewhere), and the W3C’s Semantic Web effort eventually emerged with a ton of smart people trying to solve this problem.

    Yesterday I noticed that the metacontent.org domain was available again, so we took it back. Maybe I still have some optimism left in me after all.

    → 11:37 AM, Dec 18
  • Reading and typography

    The weather turned cold here yesterday, and that just contributes to my blogging apathy after the Thanksgiving weekend. I’m just too lazy to blog, and the backlog of unread items in NetNewsWire was over 150 this morning. Time to trim the subscriptions again. There’s too much to read, and hardly any of it really matters.

    Reading text on the screen continues to be a challenge for most people. A recent newsletter article from Human Factors discusses optimal line length:

    "What can we conclude when users are reading prose text from monitors? Users tend to read faster if the line lengths are longer (up to 10 inches). If the line lengths are too short (2.5 inches or less) it may impede rapid reading. Finally, users tend to prefer lines that are moderately long (4 to 5 inches)."

    Aaron Swartz reviews “The Elements of Typographic Style”:

    "What I've realized since reading it is that publishing documents on the Web, no less than preparing them for publication as a book, is typography and deserves the same care as that noble craft. There are some differences, to be sure, but the core it's about making the meaning of the text shine through the words, a craft that has been practiced for ages."

    He’s also put some excerpts from the book online.

    → 4:01 PM, Dec 5
  • Being a generalist

    John Lim of PHP Everywhere:

    "I'm actually a generalist. I can code a bit in Javascript, I know some C++, PHP and a thousand other useless languages. A generalist is pretty good thing to be in technology, because computers and software changes so fast and if you spend too much time specializing you're already a dinosaur before you turn 40."
    → 12:39 PM, Nov 27
  • Personalization vs. customization

    Adrian Holovaty describes the BBC’s ‘intelligent’ design personalization. By keeping track of what links you follow, sections of the home page are given darker backgrounds to draw your attention to those you visit most often. Sounds like a great idea, but I wonder if it is too subtle to work well in practice. Is it better than increasing the number of news items I see on the home page if I always click on the “News” section? How long before every major web site is as personalized as Amazon?

    Either way, it’s good news. Web sites that automatically adapt to the user’s browsing habits will succeed over those that need manual customization. Remember the my.yahoo.com and my.netscape.com portals? The personalization burden was placed on the user, and the UI was awkward and limited at best. Those sites need to be smarter. When I go to tv.yahoo.com, the only thing I ever do is click on “show me what’s playing now”. Why not save me a click and put the current TV schedule on the home page, plus a list of shows that I frequently see the detailed descriptions for.

    A related article from 1998: Jakob Nielsen’s “Personalization is Over-Rated”.

    → 12:16 PM, Nov 25
  • Amazon usability

    Odd that I had never heard of Good Experience, a newsletter by Mark Hurst. Just discovered it today via Tomalak’s Realm. Here’s an excerpt from an interview with Maryam Mohit of Amazon:

    "For example, quite awhile ago we developed the 'similarities' feature - the one that says 'people who bought this also bought that.' In focus groups, no customer ever specifically requested that feature. But if you listened to customers talk about how they buy things, they'd say, my friend bought this, and I like what they like. In other words, they get recommendations from people they trust. There was a cognitive leap, based on those comments, to realizing that we could create something like that based on the data we had."
    → 4:46 PM, Nov 22
  • Peter on IA

    Peter Merholz, “Thoughts on AIfIA and Information Architecture”:

    "As information architects know, explaining what they do, even to smart people in related fields, is difficult. Once given a clue as to what user experience is, folks can understand that improving the user experience of a product will be valuable. That will never be true of information architecture, which, by nature, is more abstract and subtle."
    → 12:29 PM, Nov 18
  • Late night with user interface web sites

    Best of chi-web and sigia-l: “Using the archives for each mailing list, I’ve compiled a list of the summary postings from useful threads, and a few personally selected favorite postings.” [via WebWord]

    Also on UIWEB, Reasons ease of use doesn’t happen on engineering projects: “The focus on features for features sake typically results in mediocre features, and a product that is difficult for people to use.”

    While re-reading parts of Joel Spolsky’s User Interface Design for Programmers, it occurred to me that I had never actually used any Windows software written by Joel’s team. So I downloaded a copy of CityDesk and started clicking. Although it was mostly straightforward to use, there were a few glaring problems. First, some of the windows support control-W for File -> Close, some do not. There’s no obvious reason for this inconsistency. Second, when I went to publish my new site, I expected to be prompted to enter FTP info so that CityDesk could contact my server. Instead, previewing on the local machine was the only option available. It took a trip to the documentation to realize I had to turn on “Designer Mode” to show the FTP settings. Whoops.

    → 12:36 AM, Nov 17
  • Morality for and against war

    From the BBC: “The international community has a ‘moral responsibility’ to avoid war with Iraq, the Catholic Church has warned.”

    Meanwhile, Bob Kerrey (former Democratic senator) makes the moral case for war in Iraq:

    "We know what a terrible thing we did after the Gulf War to encourage Iraqis to rise up and then not follow through in helping them. But you can't take the worst America has done and then cite it as reason not to try and do anything good."
    → 9:17 AM, Nov 15
  • Zopey OpenDoc

    Jeffrey Shell is building an OpenDoc-inspired framework on top of Zope.

    → 10:29 AM, Nov 12
  • Leaky Abstractions

    Joel on Software, “The Law of Leaky Abstractions”:

    "If a large UFO on its way to Area 51 crashes on the highway in Nevada, rendering it impassable, all the actors that went that way are rerouted via Arizona and Hollywood Express doesn't even tell the movie directors in California what happened."
    → 10:28 AM, Nov 12
  • Futurama, Oscars, and Ward Kimball

    I haven’t seen Futurama since it first aired – the time slot doesn’t work for me, but I wonder why I haven’t been taping it. The fourth (and final) season started last night, so I finally made time to watch it again. What a great show. It was especially funny that the Al Gore character was voiced by the former Vice President himself. I guess it helped that one of his daughters was on the Futurama writing staff.

    Associated Press:

    "Gore's head is introduced at a global-warming convention as 'the inventor of the environment and first emperor of the moon.' He's also known as the author of 'Earth in the Balance,' and the 'much more popular Harry Potter and the Balance of Earth.'"

    And on the big screen… Disney has submitted Spirited Away (in addition to Lilo & Stitch, and the upcoming Treasure Planet) for Oscar consideration, but only in the Best Animated Feature category, not for Best Picture. This increases my concern that it will be difficult for animated features to ever compete with live-action films for best picture, now that they’ve been relegated to a separate category. Other likely contenders will be Dreamworks' Spirit and Fox’s Ice Age. It’s not clear yet whether there will be enough films to trigger five nominees or just three, but either way I’d be surprized if Lilo didn’t take the win.

    And finally… Animation Blast unveils their tribute to Ward Kimball:

    "Ward Kimball has always struck me as being the quintessential animator. When I read about artists who played gags on each other and the crazy studio atmosphere of the Golden Age, I can't help but conjure up the image of the impish bushy-eyebrowed Kimball running amok and causing all sorts of mayhem."
    → 1:59 PM, Nov 11
  • Election Day

    Today is the big day, and you should vote. Even though you can’t stand all the negative ads. Even though it’s hard to tell who’s the Democrat and who’s the Republican because they all move to the center for their campaign. Even though they just give us the buzzwords we want to hear (“education”, “health care”, “drugs for seniors”, “social security”) without telling us what they plan to do about it. Even though it doesn’t appear that half of them truly believe in anything anymore.

    Even so, you should vote.

    I voted last week on the eSlate, the replacement for the paper ballot in this county. It’s not a perfect interface, but good enough, and there was one convenient feature that I wasn’t expecting: when you vote straight party, it automatically marks all the candidates of that party and you can just page through the ballot reviewing and making changes as needed.

    The only real concern I have is that people who have little or no experience with computers will be scared away from the polls, even though the system is easy to use. Luckily they had a demo station dedicated to showing people how it worked while we waited in line. I saw at least one person take them up on the offer.

    Apparently the turnout this year has been higher than usual. The line was conveniently positioned along the donuts in the bakery (it was at a grocery store), and everyone joked about how tempting it was to grab a dozen glazed and make a party out of it.

    Houston Chronicle: “Stakes high for eSlate voting”.

    Associated Press: “Scrutiny of High-Tech Voting System”.

    Austin American-Statesman: “Travis GOP reports problems at polls”.

    → 3:03 PM, Nov 5
  • Crufty interfaces and file paths

    Matthew Thomas' “When good interfaces go crufty” is a fun read. It’s nothing we don’t already know, but sometimes it’s helpful to be reminded that some of the interfaces that we are so used to are still confusing for new users. His talk on the evils of using file paths to reference files and applications is resurfacing in the Mac world, as a new crop of Cocoa-based applications generally ignore using aliases (not alias files in the Finder but the AliasHandle toolbox type to keep track of files that might be moved or renamed out from under the application). Try this test in BBEdit, then in Apple’s TextEdit:

    1. Make a new document and save it on the desktop.
    2. While the document is still open, rename it in the Finder.
    3. Go back to the open document, type some more text, and click save again.

    When I tried this with OmniOutliner, I expected it to perform as poorly as TextEdit. Instead, OmniOutliner does recognize the change and updates the document’s title bar with the new name. But then it ruins this intelligence by asking the user whether they are sure they want to save with the new name. It’s as if OmniOutliner is bragging – “Hey look at me, I’m so smart I noticed that you renamed my file”. Applications shouldn’t need to show off, and the ones that just work as expected will usually be more enjoyable to use.

    → 10:28 AM, Nov 1
  • 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”.

    → 1:14 PM, Oct 28
  • Cocoa/Carbon opinions from Applelust

    Brent Simmons responds point by point to the misinformation in the Applelust.com article, “Going Native: The Attraction of the Cocoa Interface."

    Although the article is a mess, there are a couple of valid observations in it:

    "Still, at this point in the evolution of Mac OS X, it is quite possible, as an end user, to perceive a very real difference between Cocoa and Carbon applications with respect to their interfaces and the way they interact with their users."

    Sadly, I agree. I think one of the reasons is this: most Carbon developers still support Mac OS 9, which makes adopting X-only features (drawers, toolbars, and sheets) more difficult because of the need to maintain two separate pieces of code. But as more users move away from OS 9, Carbon developers will give their apps a good facelift and release X-only versions, possibly even Jaguar-only versions in some cases.

    → 11:08 AM, Oct 16
  • Spirited Away

    Last night I saw Spirited Away. I first heard about the film shortly before its release in Japan, and finally it is getting a limited release here. It opened in Austin at 3 theaters, which is more than I expected. Our showing had a good attendance, and one earlier in the day had even sold out.

    That Spirited Away is original and brilliant shouldn’t surprize anyone who has seen Miyazaki’s previous films. I have only seen 3 others (Kiki’s Delivery Service, My Neighbor Totoro, and Princess Mononoke). There is a lot to take in from this one. In fact, after a few failed attempts at writing a critique where you see this sentence, I’m going to wait on giving my personal interpretation and instead just say: go see it.

    From an Animation World Network profile of Miyazaki:

    "With Spirited Away he had noticed that some of his granddaughter's friends, girls about 10 years old, seemed very apathetic, only interested in passively watching modern popular culture, unaware of Japan's rich cultural past. He felt that he should make a film for 10-year-old girls that would both introduce them to their heritage and encourage them to develop a sense of self-reliance and responsibility."

    AWN also has an interview with husband-and-wife writing team Cindy Davis Hewitt and Donald H. Hewitt on adapting Spirited Away to English.

    → 10:10 AM, Oct 14
  • Cocoa, Carbon, and iDVD

    The comments for Slashdot’s “Which Coding Framework for Mac OS X?" are frustrating. I have been experimenting with Cocoa lately, and I really like it. Objective-C is slick and the UI frameworks are good. But I’m so tired of seeing Carbon discounted as just a transitional technology and not as “native” as Cocoa. Now that it is possible to mix-and-match Cocoa and Carbon windows in the same application, hopefully we will see both technologies used where appropriate.

    As big a Carbon fan as I am, though, I would probably recommend Cocoa for first-time programmers looking to write a simple X-only app. But it’s not appropriate for all apps. Photoshop and similar cross-platform apps will stay Carbon and C++ for some time to come, and many have their own internal frameworks to make life easier between the two platforms.

    Unsanity.org has a good Cocoa vs. Carbon article that discusses the speed issue. Many people have noticed that recent Cocoa apps from Apple such as iPhoto and iCal are sometimes painfully slow, while iTunes and iMovie (both Carbon apps) have always been speedy even on Mac OS 9.

    And then there’s iDVD. I used it for the first time last week, and it’s a great piece of software.

    It took me a little while to figure this out, but the DVD Enabler that used to be distributed with OWC’s DVD-R drives does not work under Mac OS 10.2. I had to install 10.1.5 on a second drive and boot from that to use iDVD on my TiBook. But it’s well worth the trouble. iDVD is one of those rare apps that takes something that was impossible to do before (mastering DVDs for home movies and pictures on the cheap), and not only makes it possible but makes it easy. That iDVD is a Cocoa app speaks to the power in the Cocoa frameworks when used effectively.

    → 3:18 PM, Oct 13
  • Nobel Prize to Carter

    The first thing I saw when I woke up this morning, from the BBC News: Former US President Jimmy Carter wins the Nobel Peace Prize for “decades of untiring effort to find peaceful solutions to international conflicts, to advance democracy and human rights, and to promote economic and social development.”

    The Nobel site has a long history on the Nobel Peace Prize, including this bit on the first award to a US president:

    "[Roosevelt] received the prize for his successful mediation to end the Russo-Japanese war and for his interest in arbitration, having provided the Hague arbitration court with its very first case. Internationally, however, he was best known for a rather bellicose posture, which certainly included the use of force. It is known that both the secretary and the relevant adviser of the Nobel Committee at that time were highly critical of an award to Roosevelt."

    And the second, to Woodrow Wilson:

    "In 1919, the Peace Prize was awarded to the President of the United States, Thomas Woodrow Wilson for his crucial role in establishing the League [of Nations]. Wilson had been nominated by many, including Venstre Prime Minister Gunnar Knudsen. In a certain sense the prize to Wilson was obvious; what still made it controversial, also among committee members, was that the League was part of the Versailles Treaty, which was regarded as diverging from the president's own ideal of 'peace without victory.'"
    → 8:19 AM, Oct 11
  • Mr. Swartz Goes to Washington

    Aaron Swartz has an excellent write-up of his trip to Washington for the Eldred case. Also covered is Brewster Kahle and the Bookmobile:

    "Brewster talks about how he sat down with book industry executives. He points out that they have thousands of out-of-print books, which they aren't selling and are making no money off of. He pulls out his checkbook. 'How much do I have to pay to be able to make these books and give them to children?' he asks. They refuse, they will not let him make their books for any price."
    → 4:23 PM, Oct 10
  • More Lessig v. Ashcroft

    Every week or so the tech weblog world (or at least the portion that I view) aligns on one issue. This week it’s the Lessig arguments in the Eldred case before the Supreme court.

    Matthew Haughey, “Copyright and the Commons”:

    "As the law currently stands, this very piece I've written here and the image I made to accompany it are protected from someone trying to sell it and pass it off as their own, and that's great for me as an artist/writer. Yet that also means neither will be available for reprinting, repurposing, or any other use without my permission for a very long time. If I die on my 75th birthday, you'll be free to reuse the above image or this text in 2117. Is that what copyright was intended for?"

    Another timely piece I enjoyed was a Salon article titled “Riding along with the Internet Bookmobile”. Boing Boing summarized it well:

    "Brewster's Bookmobile is a van with a sat dish, a duplexing printer, and access to thousands of public-domain children's books. As a dramatic demonstration of the value of the public domain -- which Larry Lessig is arguing today before the Supreme Court -- Brewster is driving the Bookmobile across the country, stopping in working-class neighborhoods and printing books on demand for school libraries."

    And then there’s this ridiculous headline from the United Press International web site: “Case could strip Disney of Mickey”. File that one under oversimplification or misinformation, your choice.

    → 8:06 AM, Oct 10
  • Electronic Voting

    Slashdot reports on Brazil’s electronic ballots.

    Early voting here in Austin this month will use the eSlate system, which has already been tested in some surrounding counties. It will be used by everyone in Travis County for the general election next year. It looks like an okay interface: a wheel for scrolling through candidates and a big red button to submit your ballot. The final screen shows a summary of your choices so you can correct any mistakes.

    → 10:19 AM, Oct 6
  • Mirror Project

    Peter Merholz writes about his first contribution to the Mirror Project:

    "I went to the mirror, and saw I could frame myself in between the two brothers talking, and snapped the photo you see on the site. My dad is older than Bertin, and in infinitely better shape. I wondered just what dad was *thinking* as he was looking at his little brother, who probably tagged along with him on the streets of Cleveland, who probably looked up to him in that way that younger brothers do, and now, as they enter twilight years, the younger brother is clearly going to pass long before the older."

    I submitted a photo to the Mirror Project earlier this year, too, but it doesn’t have an interesting story behind it. I had browsed through the Mirror Project site earlier that day or week, and afterwards whenever I saw my reflection in something I thought about the site. It’s a cool idea. If you like what you see, you can even subscribe to an RSS feed of the latest submissions.

    → 11:08 PM, Oct 4
  • Mac OS X Conference blogs

    It’s fun watching the posts come in to the Mac OS X Conference “Trackback” feed. Hopefully more people will hook into it before the conference is over. It’s a good way to learn about other blogs that share a common interest.

    MacCentral has a short write-up on James Duncan Davidson’s Cocoa talk at the OS X conference. One quote that stood out for me: “Project Builder was the first IDE I actually liked”. That’s funny – the more I use Project Builder, the less I like it.

    There’s also some coverage at the O’Reilly site.

    → 10:42 PM, Oct 1
  • Falling asleep over RSS

    James Duncan Davidson echoes a complaint I have also raised:

    "The most annoying thing from a user perspective is the different ways that RSS feeds work. Some provide just a few sentences of the post. Others a paragraph, and yet others provide the whole thing. As far as I'm concerned, if you're not providing the whole post, then you are doing a disservice to those people who have clients like NNW."

    Meanwhile, the praise for NetNewsWire continues on many sites. The most amusing of all is Mac Net Journal, which feels compelled to notify us every time Brent posts a new beta (as if users of NetNewsWire don’t already subscribe to Ranchero’s feed).

    However, seeing links to NetNewsWire doesn’t make me fall asleep as fast as reading more arguments about RSS 2.0 and namespaces. Yet.

    → 10:59 PM, Sep 29
  • Jason&#039;s day

    Kottke.org, “A Day”:

    "A small chat on the phone with my mom, birthday wishes, etc. Then off to the store for dinner supplies. Meg has offered to cook whatever I want for dinner. I decide on some fettucini with roasted mushrooms. And what the hell, a small bottle of good champagne because when am I going to turn 29 again?"

    A different format, but nice. He should do that every week or so.

    → 4:12 PM, Sep 28
  • iSync and Yahoo RSS

    Apple releases the iSync beta. I’ve never seen an Apple software release with so many warnings. Must still be buggy.

    Speaking of buggy, Yahoo’s RSS finance feeds were pulled just a week after Jeremy Zawodny announced their availability. Maybe Yahoo thinks they’ll loose clicks into the ad-supported web site? Hopefully the big guys can continue to find ways to make RSS profitable for their business. News stories are easy – just provide a snippet and link to the full article – but it becomes trickier as RSS is used as a more general notification system.

    → 3:46 PM, Sep 28
  • Moving to NetNewsWire

    I finally made the jump from Radio Userland’s news aggregator to NetNewsWire last night. It’s good software, and it’s been fun watching how quickly it has matured. I have about 40 RSS subscriptions, but I migrated to NetNewsWire in just a few minutes by dragging the XML links from Radio into NetNewsWire’s subscriptions pane. The app has really embraced interoperability. Brent has also proposed a common RSS clipboard and drag-and-drop format.

    → 10:55 AM, Sep 26
  • Web browsers on the Mac

    Web browsers on the Mac since Mosaic have stored bookmarks in an HTML file. Chimera apparently breaks this long tradition and uses it’s own simple XML format. Is this progress? No. Sure, they do fun things like type=“toolbar”, but the same extensibility could have been achieved with XHTML and some new elements or attributes under their own namespace. Now, we have a politically correct file format that cannot be viewed in a web browser or parsed by existing bookmarks-parsing code. Oh well.

    → 3:00 PM, Sep 22
  • Last week, Joel wrote about

    Last week, Joel wrote about Mac software developers:

    "There are very few conditions under which it is actually the right business decision to develop software for the Macintosh. Developing for the Mac is not a whole lot different than creating a web site that only works on Netscape."

    Of course he gets some things wrong and misses the point on others. Luckily the comments in his discussion forum provided a good balance to his argument. Even Dave Winer jumped into the game this morning, bringing his perspective as a long-time Apple developer who embraced Windows development while Apple was suffering from vision and profitability problems in the 90s.

    And then there’s Brent Simmons: “Why I develop for Mac OS X." There’s also some good stuff in the comments below the essay. The essence of his argument is simple: Windows programming is boring.

    → 10:49 AM, Sep 20
  • Dave Winer, on his health

    Dave Winer, on his health and the RSS 2.0 flame wars:

    "I want to keep working, but if the choice is between my health and work, health is going to win. If your body is healthy here's a chance for you to learn. Some day it won't be. You may ask other people to cut you some slack because of that, as I am now. I believe that offering a kindness comes back in the form of kindness; and that being cruel comes back as cruelty."

    Thankfully most of the RSS discussion that I’ve seen has been constructive, such as Rael’s post that provided a good perspective of the RSS 1.0 effort.

    → 11:16 PM, Sep 18
  • Bill Plympton has started work

    Bill Plympton has started work on his next animated feature film, “Hair High”. You can watch him draw live from a webcam pointed over his desk. Great idea, especially for an independent filmmaker with a limited/non-existent budget for promotion. It uses a Java applet that updates every second or so, which unfortunately doesn’t do the artist’s skill justice – he draws like a madman, seemingly taking any point on the character and meandering around it until it’s complete, as if he can see the drawing on the paper and is just tracing over it.

    → 11:18 AM, Sep 16
  • Here are some sketches from

    Here are some sketches from one year ago by New York animator Pat Smith.

    Everyone finds there own form of comfort. For some, it’s a doodle.

    → 12:55 PM, Sep 11
  • John Siracusa has an excellent Jaguar article

    John Siracusa has an excellent Jaguar article over at Ars Technica. A long read, but worth it. One highlight:

    "And forget about any truly forward-looking features akin to Copland's saved searches or BeOS's metadata-powered custom views. Put simply, the Finder, once the crown jewel of the Mac user interface, no longer seems to be a priority at Apple."

    And don’t miss this gem:

    "I'll be damned if I'm going to use antialiased text or anything larger than a 9pt font on a Unix command line. [...] Is there a special MAKE_SPACING_NOT_LOOK_LIKE_ASS flag that they're using?"
    → 10:37 AM, Sep 6
  • Jeffrey Veen: Standards Still Matter.

    Jeffrey Veen: Standards Still Matter. “Will there ever be a day when we can just assume that browsers will render our code correctly? Can we imagine a future in which we don’t budget an extra 40 percent to ensure our Web projects work on multiple browsers?”

    Matthew Thomas: “Microsoft are, still, five years ahead on the road to the perfectly designed browser. But they’re parked by the side of the road, and having a picnic.”

    → 1:31 PM, Sep 5
  • PHPeverywhere: &quot;When things turn sour,

    PHPeverywhere: “When things turn sour, Open Source is not about open minds, but naked egos and pride. That’s why the key to really successful Open Source projects is leadership, not merely technical skills. And this holds true in life too.”

    Krzysztof Kowalczyk: “So remember, kids: source code is useless if you don’t have skilled people to work on it.”

    → 2:04 PM, Sep 4
  • James Duncan Davidson, author of

    James Duncan Davidson, author of the upcoming Learning Cocoa (2nd edition), has a new blog. He’s already started rolling with thoughts on preserving his blog posts:

    “As long as I can make sure that my data migrates to long lasting media at some point, I can protect them and read them far into the future. However, when that migration happens, I may have all my data, but I’ll have no idea when I wrote it. You see, all those filebase time information will be blasted away when I move the data onto a new filesystem.”

    I’m using Radio for this site, and it can automatically archive blog posts to XML files. That is definitely a step in the right direction, and more than most other products will do. It is particularly tricky to get data out of Blogger.

    And I still have too much email stuck in old proprietary formats that I may never be able to retrieve completely. Sigh.

    → 10:54 PM, Sep 3
  • Last night I finally saw

    Last night I finally saw Michael Dudok de Wit’s short film masterpiece “Father and Daughter”, as part of Spike and Mike’s classical animation festival. It’s a beautiful film, well deserving of its 2001 Oscar win. Not needing dialogue, each shot in the pencil and charcoal film is brilliantly composed and reads perfectly. Even if the big studios turn their back on traditional animation, there will always be a place for it in the hands of independent artists with compelling stories.

    → 10:36 AM, Aug 30
  • My WWDC 2002 DVDs arrived

    My WWDC 2002 DVDs arrived yesterday, just in time to be useful.

    → 12:54 PM, Aug 29
  • 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.

    → 9:55 AM, Aug 28
  • News.com: &quot;More than 100,000 copies

    News.com: “More than 100,000 copies of Apple Computer’s OS X 10.2 operating system were sold worldwide during its first weekend, the company said.”

    Back in 2001: Microsoft Windows XP sold 300,000 copies over its weekend launch.

    → 11:06 AM, Aug 27
  • No Sense of Place points

    No Sense of Place points to a great collection of early 20th century animated films at the Library of Congress. Includes Krazy Kat and The Katzenjammer Kids, among others. But no Mickey.

    The movies section at Internet Archive also has some great stuff, but it takes a little bit of searching to find the good ones (look for John Hubley).

    And finally, when you’re tired of squinting at small QuickTime movies, stop by Oscars in Animation: 7 Decades of Animation Art if you live in the LA area. Can’t beat looking at the real thing.

    → 3:41 PM, Aug 25
  • Kottke has the same NetNewsWire

    Kottke has the same NetNewsWire gripe that I do, and a mockup to go along with it. I submitted this as a feature request in Ranchero’s bug database earlier this week. The software is maturing quickly, but the 3-pane approach and the inability to easily get rid of news items you have read have made me stick with Radio Userland for now.

    → 4:49 PM, Aug 23
  • Brent Simmons: &quot;If you&#039;re not

    Brent Simmons: “If you’re not syndicating your site as RSS it might as well not exist.” So true. The non-RSS sites I read now can be counted on one hand.

    → 8:44 AM, Aug 22
  • While skipping around through my

    While skipping around through my MP3 collection, it’s easy to forget why I don’t run out and buy CDs frequently. But I bought one a few days ago, which brought back the memory. It’s not that they are too expensive (which they are), it’s that those stupid plastic wraps are impossible to open!

    → 8:17 AM, Aug 21
  • Kottke.org increases the text in

    Kottke.org increases the text in RSS files to around 80 characters per post. Excellent. It’s as if he read my mind.

    → 11:01 PM, Aug 20
  • This site was down for

    This site was down for a server move over the weekend… Thanks to David and the Interactive Ensemble gang for their generous help and bandwidth.

    → 12:05 PM, Aug 20
  • I hate what smileys have

    I hate what smileys have become. Just look at all these from the latest Yahoo Messenger! What’s the point? Give me the :-) and ;-) and I’m fine.

    → 4:40 PM, Aug 15
  • Doug Baron points to an

    Doug Baron points to an article on Schlotzsky’s plan for free wireless around their restaurants. They’re also looking into providing access for other areas such as libraries and schools.

    There’s a Schlotzsky’s about a mile from here, so I’ll have to check it out once they get an antenna up. For a year or more, most of the chain in Austin has provided iMacs for surfing, and now I guess I can check email while waiting in the drive-thru. But more than that, it’s nice to see a company that understands the benefits of doing something for their customers – and the community – without thinking about every cent they are going to make charging people for access.

    Good sandwiches, too.

    → 1:16 PM, Aug 10
  • I registered on BlogTree. Hey,

    I registered on BlogTree. Hey, everyone else was doing it. :-)

    In other blog news… There are very few sites that I read now that don’t have RSS feeds. Two on that short list were PeterMe and Kottke.org, which in the last week have both put up RSS versions. Unfortunately they trim the post so you only get the first sentence or two in your RSS reader. Ugh. I think this may be a Movable Type default.

    I also think that Blogger made a mistake when they chose to only support RSS in Blogger Pro (not in the regular free version of Blogger). There are a lot of Blogger sites out there. With the huge momentum behind RSS, and as more good RSS readers emerge, the way people are browsing news and blog sites is changing. Sites without an RSS feed risk being ignored. (I have paid for both Blogger Pro and Radio Userland.)

    → 10:21 AM, Aug 6
  • Hey Apple, can we use

    Hey Apple, can we use those fancy colored checkboxes from iCal in our apps, too?

    iCal
    → 10:57 PM, Jul 22
  • Yahoo Mail reset

    I have used Yahoo for almost a decade. It wasn’t long ago that I pointed to Yahoo and Google as great successes – sites based on the idea that a simple, functional interface is what users want rather than some fancy Flash application or graphics-heavy site.

    But as of today I will avoid yahoo.com like the plague.

    Late yesterday I logged into Yahoo Mail and almost dropped to the floor in shock. Instead of seeing my email, a message stared back at me stating that I had not logged in for at least 4 months. My account was disabled and all my mail was deleted! Unbelievable. I regularly log into other sections of Yahoo (the calendar, for example), and it never occurred to me that they would pull something like this on their customers.

    Reading over the Terms of Service, all I could find was a vague statement that Yahoo “reserves the right to log off accounts that are inactive for an extended period of time.” First of all, my account was not inactive, since I regularly log in with my Yahoo ID and do other non-email things, and secondly, I hardly consider 4 months an “extended” period of time. I usually use Yahoo Mail when out of town, so it might be months between trips without my PowerBook.

    So why do I care? While traveling in Europe a few years ago, I used Yahoo Mail frequently, at Internet cafes, hotels, and hostels. Much of my communication with people back home went through Yahoo’s servers. It’s all gone now.

    (Yes, I should have gotten the important stuff off of Yahoo Mail before now, but they don’t make that easy.)

    In the unlikely event that someone working at Yahoo is reading this, hook me up with someone in the data center that can pull backups for me. I need that email back!

    → 4:41 PM, Jul 18
  • I love Amazon Light already.

    I love Amazon Light already. Great for when you want to lookup something quickly. I wonder how long it will be before native apps start providing features that use Amazon’s API (or Google’s, for that matter). I’d love a simple OS X app to catalog all my books, for starters. Leveraging the Amazon database would provide instant categorization, etc.

    → 4:35 PM, Jul 17
  • Ward Kimball, one of Disney&#039;s

    Ward Kimball, one of Disney’s legendary animators, passed away today. Tom Sito sent an email out that reads:

    “Please pause to recall one of the giants of Animation who passed away this morning. WARD KIMBALL- artist, animator, designer, filmmaker, trombone and model train aficionado. He was 88 and had been in poor health from pneumonia since early this year. His achievements as one of the Nine Old Men are the stuff of legend- Jiminy Cricket, The Three Caballeros, Pecos Bill, Toot- Whistle- Plunk and Boom and many, many more. His free spirit and nonconformist attitude in very conformist times demonstrates to generations to come how to work in a administered corporate climate yet remain an artist. I heard that when he was in hospital the other day he was still making jokes about the golf course nearby. He will be missed but he will live on in our collective memory.”

    → 4:01 PM, Jul 8
  • From a thoughtful Kottke.org post:

    From a thoughtful Kottke.org post:

    “Elastic sites work well because they embrace the ‘Webness’ of the Web…they allow people to interact and communicate with each other as they prefer to do in the real world. Human relationships are elastic in nature. Like a clingy friend, nothing is worse than a needy Web site sucking all of your time away and not letting you spend any time on other sites.”

    → 3:26 PM, Jul 8
  • 37signals has a beautiful mockup

    37signals has a beautiful mockup for what the future of a web-based car interface might look like. But unlike 37signals usual stuff, it’s not grounded in reality. Car companies need to focus on real innovations like cars that get 100 miles to the gallon before implementing any of this fancy stuff.

    Having said that, though, we test drove a wagon with a built-in DVD player yesterday. Not a requirement, but it sure beats trying to find a place to prop up the PowerBook to watch a movie on those long trips.

    → 5:32 PM, Jun 25
  • I got sucked into mc.clintock.com

    I got sucked into mc.clintock.com for 30 minutes today. Oops.

    → 5:24 PM, Jun 25
  • As most bloggers on the

    As most bloggers on the planet know by now, Dave Winer has been in the hospital this week. Rogers Cadenhead organized a quick passing of the PayPal hat to buy Dave an engraved iPod. I have to admit I got a chill when I read the quote. The ability for online communities to hook up like this and make a big difference is very powerful. Also today, the K5 fundraising drive has almost reached $35,000.

    → 2:04 PM, Jun 20
  • Last night, Traci stayed up

    Last night, Traci stayed up late researching a question on Google Answers about Disney’s use of television and what influence it had on the other major studios. It was an interesting question, and she was able to look through books we have here as well as link to articles she found online. Today, as I’m reading through my daily RSS flow of blogs, I hit upon a post from Cory on BoingBoing that is talking about the same topic. Then I get to the end of the post, and it turns out he was the one who asked the question on Google Answers! I guess it’s a small web after all. :-)

    → 1:45 PM, Jun 13
  • Mark Pilgrim has a great

    Mark Pilgrim has a great idea for RSS auto-discovery: use the <link> tag to point to the XML version of the page. I’ve made the change on the template for this site. Hopefully it won’t be long before we see smart news aggregators that can pay attention to this extra bit of metadata, or search engines that can automatically find sites with an RSS feed.

    → 2:04 PM, May 31
  • A few days ago I

    A few days ago I took Paper Dreams off my bookshelf and read a few chapters that I hadn’t looked at before. One was on Bill Peet, storyman from Disney on some of their classics, including most of Song of the South, 101 Dalmatians, and Sword in the Stone. Yesterday I picked up another book that I have owned for years, Storytelling in Animation, and noticed a panel discussion from 1988 conducted by John Canemaker that included Bill Peet. What an interesting coincidence. I made a mental note to look for his biography and maybe get a few of his children’s books for my kids when they are older.

    Today I see that Bill Peet had passed away just two weeks ago.

    It seems that all the great ones are passing on. When I finally discovered Shamus Culhane’s books a couple of years ago, I found that he had died already too.

    When news of Chuck Jones' death came, I flipped through Chuck Amuck, remembering when I first received it as a gift. In the inside cover an inscription dated Christmas 1989 reads: “For Manton, budding cartoonist.” That brought a smile. Still not quite there yet, though. :-)

    → 6:02 PM, May 29
  • I saw Enigma a week

    I saw Enigma a week ago. We’ve seen many movies about technology come and go, but so far only Enigma deserves a place next to Sneakers as one of the best ever. Some may be bothered that the characters are fictional, but the rest of the movie was so true to the spirit and technology of the time that I easily fell into the story without a thought to Alan Turing’s absence until I left the theater. From the dials and plugs on the Enigma machine, to the explanation of cryptanalysis and the handwritten notes as the code breakers worked out a problem – it all felt real, a refreshing break from the fake computer interfaces usually designed by Hollywood.

    That Turing’s story could be great on the big screen, I have no doubt. But Enigma’s story – romance, cryptography, war – also has its place. The look of the film is perfect, and with dialogue to match. You might recognize Tom Stoppard in the screenplay credit; his other credits include Shakespear in Love, Rosencrantz and Guildenstern Are Dead, and Empire of the Sun.

    When I got home, I searched my bookshelves for other crypto books to supplement the film. Here’s a paragraph from The Code Book, detailing the “weather report” code which was referenced in the film but not entirely explained:

    “…experience showed that the Germans sent a regular enciphered weather report shortly after 6 a.m. each day. So, an encrypted message intercepted at 6.05 a.m. would be almost certain to contain wetter, the German word for ‘weather’. The regorous protocol used by any military organisation meant that such messages were highliy regimented in style, so Turing could even be confident about the location of wetter within the encrypted message.”

    You gotta love this stuff.

    → 10:03 PM, May 23
  • WWDC 2002 was a great

    WWDC 2002 was a great week. Apple has a lot of great stuff coming. It’s real, it works. Now that the migration to X is behind them, they are really firing on all fronts. Very focused.

    → 7:03 PM, May 13
  • Yesterday I finished reading Steven

    Yesterday I finished reading Steven Johnson’s Emergence: The Connected Lives of Ants, Brains, Cities, and Software. It was one of those rare books that leaves you with a dozen different things to think about.

    It’s a fascinating book, and the topics are woven together beautifully. I get the feeling that Johnson did thorough research, planned out the entire structure of the book, but then wrote many sections straight through without stopping to edit – it flows with a rhythm and pace that makes for an easy read.

    A related ant story in the news two weeks ago: “A supercolony of ants has been discovered stretching thousands of miles from the Italian Riviera along the coastline to northwest Spain.”

    → 11:29 PM, May 3
  • Mac OS X users have

    Mac OS X users have yet another browser choice in the works: Chimera, based on Mozilla but with a beautiful interface that removes the clutter and extraneous features of the full Netscape browser. David Hyatt, one of the main people behind Chimera, provides some background on Chimera development.

    Matthew Thomas, also of Mozilla, has some things to say about “Why Free Software usability tends to suck” (also see part 2).

    From Joel last Saturday: “It usually takes a lot more code to make a simpler interface.”

    → 2:40 PM, Apr 29
  • Jeff Veen from Dec 1999:

    Jeff Veen from Dec 1999: “My prediction remains as it always has: The fastest Web sites, regardless of end-user bandwidth, will be the most successful… I’m looking for a page loading experience of under one second. Period.” [From EVHEAD]

    Google Features: “Google examines more than 2 billion web pages to find the most relevant pages for any query and typically returns those results in less than half a second.”

    → 6:47 PM, Apr 24
  • Everyone's talking about web services

    Everyone’s talking about web services this week.

    Megnut: “All this talk about APIs and web services warms my heart. We’ve passed the nadir of the dot-com hype and we’re coming back to the Web in interesting and important ways.”

    Kottke: “Google is betting that a free teaser of their API (only 1000 searches/day currently allowed) will demonstrate to developers the power of Google in their applications and hope that they upgrade to a more industrial strength version (at least, that’s what they should be thinking).”

    Brent Simmons: “I like web services. And I’m glad when they’re implemented and adopted, even when they’re SOAP interfaces. Something is better than nothing. The trend is good. But while XML-RPC is a thing of beauty, SOAP should have been named COAP–Convoluted Object Access Protocol.”

    Yet, some people still don’t get it. From a copy of Java Developer’s Journal that has recently started showing up in my mailbox unasked for: “I’m not too excited about the whole Web services revolution. Personally, I think it’s just a marketing gimmick to repackage old products and technology.”

    For me, the question of whether to adopt web services is a no-brainer. We’ve all been developing web-based applications for so long that we breathe HTTP and SQL. Connecting systems over HTTP is an obvious solution, because it works on top of the same backend that our web application uses, whether its PHP and MySQL or Java and Oracle. Simple, open, cross-platform, and we can use any of the tools we are comfortable with.

    → 1:57 PM, Apr 19
  • Hack the Planet has a

    Hack the Planet has a long thread on publish and subscribe, OpenDoc, Microsoft, and the new Apple. From Paul Snively: “It’s a commonplace among folks I know that Microsoft doesn’t get anything right until it’s at 3.0, but implicit in that observation is that Microsoft is willing to field a product, have that product fail in the marketplace, find out from the marketplace why it failed, and then try again, until, mirable dictu, they own that market category.”

    → 9:58 AM, Apr 16
  • Joel Spolsky, on Picking a

    Joel Spolsky, on Picking a Ship Date: “Generally, people who buy “off-the-shelf” software don’t want to be part of a Grand Development Experiment; they want something that anticipates their needs. As a customer, the only thing better than getting feature requests done quickly is getting them instantaneously because they’re already in the product.”

    Userland’s Instant Outliner Beta Notes: “First, let me apologize for inflicting such an unfinished and inadequate piece of software on such unsuspecting and good-natured people.”

    Steve Jobs, sometime before 1984: “Real artists ship.”

    → 8:18 AM, Apr 15
  • Alan Cooper&#039;s &quot;The Inmates Are

    Alan Cooper’s “The Inmates Are Running the Asylum” had been gathering dust on my bookshelf for a couple years before I finally picked it up again. I finished it last week, and I only wish I had read it sooner. There is good stuff in it for everyone involved in software development, from managers to designers, and yes, even programmers. Although Cooper describes a world where software development companies will have a dedicated team of interaction designers, and programmers won’t be actively creating user interfaces, the reality for small companies is that programmers need to be involved in many aspects of product design, including interface and feature definition. The book contains some great tools for changing the way we approach interface design, though, and even just implementing some pieces of his approaches would improve the design process at most companies.

    → 9:21 PM, Apr 9
  • Until now, most sites creating

    Until now, most sites creating their own UI widgets in DHTML have been slow, not to mention distracting – the non-standard scrollbars and buttons clash with the rest of your system. Oddpost.com changes that, creating an incredibly dynamic application that raises the bar for acceptable DHTML work. Frankly, it makes many of our page-based web applications look juvenile. But it comes at a cost: Windows MSIE 5 only.

    Which brings the question: Is this a good thing? With Oddpost, MSIE 5 becomes the platform for your application, and many of the advantages of what we traditionally consider a web application are gone (any machine, any operating system, any browser). Which is fine. But at that point would Flash, with its richer interfaces and broader platform support, be a better choice?

    From a technology standpoint, traditional web applications haven’t changed much since the CGI days. With sites like Oddpost, and all the Flash MX interfaces that are sure to come our way in the near future, maybe we will see a gradual shift. The work that KnowNow has been doing is relevant, also.

    → 6:14 PM, Apr 5
  • Peter Merholz: &quot;I believe the

    Peter Merholz: “I believe the degree of security folks are forced to place on their own system is far too draconian.”

    Jacob Nielsen, from November 2000: “In reality, users simply write down difficult passwords, leaving the system vulnerable.”

    → 3:06 PM, Apr 4
  • From the Six Degrees weblog:

    From the Six Degrees weblog: “Disorganized or Just Disorderly?", on the mess that we’re in with email filters and the hierarchical file system. I’ve been eagerly awaiting a look at their product since I heard Joel mention it, but it’s not clear when they will ship. A few screenshots are available.

    It amazes me that email programs still don’t learn at least a little from our behavior. As an example, if I subscribe to a mailing list, the email program should help me out by noticing several messages with the same to/cc address and “Precedence: bulk” headers, and create a folder to file those messages in automatically. Why is this so hard?

    → 11:43 AM, Mar 29
  • Anyone care to guess what

    Anyone care to guess what the difference between the OK and Cancel buttons is?

    Confusing memory warning dialog
    → 11:39 AM, Mar 28
  • Meg talks about her experience

    Meg talks about her experience using personas at Pyra in a new article on Boxes and Arrows.

    Evan Williams, from Jan 31 2001: “And Then There Was One”, on the breakup of the Pyra team.

    → 10:53 AM, Mar 27
  • I saw Revolution OS at

    I saw Revolution OS at the Alamo Drafthouse here in Austin on Saturday. A really great film, and very approachable – it doesn’t matter if you’ve never heard of Richard Stallman or don’t know what a kernel is. Certainly the filmmakers didn’t entirely know the culture before starting the documentary, and I think that’s what makes the film work: It doesn’t take itself too seriously, and it’s not invested in the open source movement’s success or failure. They’re just showing a slice of time in which the landscape of server operating systems was completely changed, and having some fun in the process.

    → 10:36 PM, Mar 25
  • Dave Winer mentions some of

    Dave Winer mentions some of the thought his team put into making Radio Userland respond quickly to the user. Thank you. The thing that makes this possible (that most other apps don’t have, whether they are web-based or not) is the events page, a human-readable log of events and actions taken on your behalf by Radio. Instead of interrupting the user with error messages or “your blog has been published” notifications, those messages are hidden until asked for.

    It would be nice if the user could tell at a glance if there were any fatal errors, though. On the desktop web site home page, add a more useful summary to the events area: “Events: 23 since midnight (1 fatal error)”, with a hyperlink to the specific problem events. (Maybe the software already does this?)

    → 7:38 PM, Mar 24
  • 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
    → 6:38 PM, Mar 22
  • Martijn van Welie has some

    Martijn van Welie has some concise descriptions of web design patterns and types of navigation that have become common over the years. They are things we intuitively know from building and using web sites, presented together in a clean way.

    But then, after I wrote the above, I see an article on Boxes and Arrows in which Jacob Nielson says: “Intuition is completely the wrong word to use – it’s not a matter of intuition. It’s a matter of being very good at pattern matching, being able to spot small things, and hold together the big picture of what that really means.”

    → 6:02 PM, Mar 21
  • Slides from the Veen and

    Slides from the Veen and Lynch SXSW keynote are up. Also includes links to sites mentioned in the keynote and to Jeff’s notes. Very useful – more panelists should do this sort of thing, especially since its unclear whether video or audio from any of the panels will be made available.

    → 11:41 PM, Mar 19
  • First in a series of

    First in a series of new Megnut columns for the O’Reilly Network: Attendee-Centered Conference Design.

    → 11:10 PM, Mar 19
  • Went out to Home Depot

    Went out to Home Depot this evening to get paint supplies. On the counter was a hand-written sign that read: “Can’t do paint color matching because of computer death.”

    → 10:25 PM, Mar 18
  • Notes from the Simplicity in

    Notes from the Simplicity in Web Design panel at SXSW are now online. “Someone suggested that tooltips were always useful, but someone else shot that down because of the time required.” I was that someone else. After the session I couldn’t remember whether I had made any sense or was just babbling. Apparently some if it got through. Although I may not have articulated it very well, my point was really this: Good icons are hard to design. Even the big guys like Apple and Microsoft frequently get it wrong. Icons can serve as a visual aid that guides the user in a certain direction, but don’t rely solely on your icons for meaning. Use labels, or get rid of the icons completely if they are distracting.

    → 3:43 PM, Mar 17
  • In the latest CRYPTO-GRAM, Bruce

    In the latest CRYPTO-GRAM, Bruce Schneier weighs in on the factoring breakthrough covered recently on SlashDot. While reading all the SlashDot posts – that could best be summed up as “everyone update their PGP key sizes, quick!” – I knew I would have to wait until Schneier responded to make sense of the issue. While giving credit to Dan Bernstein’s work as good research, he says: “The improvements described in Bernstein’s paper are unlikely to produce the claimed speed improvements for practically useful numbers”. And: “it will be years before anyone knows exactly whether, and how, this work will affect the actual factoring of practical numbers.” Whew.

    → 4:36 PM, Mar 16
  • It turned into a really

    It turned into a really beautiful day in Austin. I’m sitting outside on the deck with my TiBook. No cars, no phone – just the wind chimes and a few birds. To everyone who was in town for SXSW: You should have stayed through the weekend. :)

    → 6:29 PM, Mar 15
  • A few years ago, a

    A few years ago, a friend gave me a copy of Alan Cooper’s The Inmates Are Running the Asylum. For some reason I never finished it. I saw it recommended yesterday and dug up my copy. A great book on the need for interaction design.

    Which leads into… Next week is the User Interface 6 West Conference in San Francisco. (I won’t be going.) Peter Merholz was interviewed before the conference about his work with PeopleSoft.

    → 11:33 AM, Mar 15
  • At the SXSW keynote the

    At the SXSW keynote the other day, Jeff Veen pointed at his slides and said that they’d all be online by the next day. I smiled, thinking to myself there is no way those will be online within a week, if ever. So far that prediction has been correct. But as he was giving his talk, I recognized some of the slides from other Adaptive Path presentations.

    A Pattern Language, a book mentioned in Veen’s slides, is also on the just updated Joel Spolsky book recommendations. It seems everywhere I look I see this book now. Maybe I should finally read it.

    → 11:17 PM, Mar 13
  • Cam writes: &quot;The cool thing

    Cam writes: “The cool thing is that Kevin was very receptive to my concerns and actually echoed some of them, which tells me that Macromedia is very aware of how their products, especially the Flash Player, are perceived among both the end user and the developer crowds.”

    I too got the impression that Kevin understands the issues. But he was still pitching Flash for some types of web applications. The question becomes if Macromedia can educate Flash users on when it’s appropriate to use Flash and when it’s counter to the way the web works. I don’t have high hopes that this will happen.

    → 11:20 PM, Mar 12
  • In the weblogs panel Doc

    In the weblogs panel Doc asks: “How many people are blogging this live?” At least three or four hands went up.

    → 1:41 PM, Mar 12
  • I brought my PowerBook to

    I brought my PowerBook to the conference today. A big thank you to Wes Felter and Cory Doctorow for the AirPort connectivity. Cory mentioned that an extra hub and power strip will make things easier, so I might bring my little 4-port switch tomorrow morning.

    Speaking of Cory, he will speak with Bruce Sterling in the keynote tomorrow. I’ve read and enjoyed most of Sterling’s novels, but I have to admit to being out of the loop on Cory’s work, other than the occasional trip to BoingBoing.

    → 10:50 PM, Mar 11
  • SXSW was a mixed bag

    SXSW was a mixed bag today. Although it’s always good to hear Mike Erwin talk about security, the first panel really wasn’t so useful as a technical discussion (despite my lame attempt to steer it that way with a question about FTP). The second panel followed with the same result. Yawn. I can only take so much mention of Interactive TV in one weekend.

    It was good to hear Jeff Veen speak at the keynote, though he seemed a little too accepting of Kevin Lynch’s “replace your entire site with a Flash interface” demo. That’s not the Veen I’ve read.

    The best session of the day was Lane Becker’s “Everything New is Old Again.” It was great to connect with Lane again, who I hadn’t talked to since our brief encounter at a web development company back in 1996. I left my PowerBook at home, but to my right Wes and Doc were blogging away on their’s.

    → 10:52 PM, Mar 10
  • Ernest Kim and Jason Fried

    Ernest Kim and Jason Fried of 37signals ran a great panel yesterday: “Simplicity in Interface Design: A Game Show.” A lot of fun, with some good discussion at the end on icon design and designing for speed. Ernest and Jason really get it – I hope they inspire some designers to think about web sites in a new way, and finally start focusing on usability and page load time and cut the fancy graphics, roll-overs, and animations.

    → 9:39 AM, Mar 10
  • RSS
  • JSON Feed
  • Surprise me!
  • Tweets