Tag Archives: wordpress

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.