Your “Following” page (here’s mine) now also lists, somewhat bluntly, your followers. With #pants being a distributed system, implementing this wasn’t entirely trivial since followers may be on other servers than yours. Life can be so simple if everything happens in the same database; but obviously, this is not the case with #pants. Here’s how it works:
- When someone on another server follows you, they will list you on their Following page (nothing new here), with your entry tagged with rel-following markup.
- They will also send you a Webmention, referencing their Following page.
- Your server will now fetch and parse that page. If it finds a rel-following link to your site, it will mark the remote user as your follower in your local database.
- A couple of times per day, your server will check if known remote followers are still following you.
I apologize if this makes your head spin, it’s actually a lot simpler than it sounds. It should be noted that if you make your Following page private (which you can do in the settings), remote users won’t be able to see that you’re following them, since the above mechanism requires the page to be accessible.
Site admins: I’m going to spend a day or two watching for bugs before I tag a new #pants release, but feel free to update to HEAD if you feel brave enough.
#pants r103 is mostly a maintenance release with a bit of cleanup, trimming and refactoring to make #pants more stable and use less memory. No user-facing changes in this release, but if you’re running your own server, please update.
All-improved service classes: #pants has a number of useful service classes that perform little, but important tasks like polling other users for updates, sending webmentions for your own posts, and lots more. In r103, these service classes have been completely refactored to use a common base class implementing much cleaner logging and error reporting. Most importantly, each service class now has its own log file; if you want to know what’s going on under the hood of your #pants (uh, that was weird), just
tail -f log/* from within your app’s directory.
Improved web logs: the
production.log file has been made significantly more useful, reducing each request to a single line, including the requested host.
Dependency reduction: #pants now needs less stuff to start up, so it should also consume somewhat less memory. Yay!
There’s also some movement in the development wiki, with people contributing installation instructions for their favorite hosting environments and operating systems. @pants.fooforge.com contributed this documentation for Ubuntu 12.04; I haven’t tried it myself, but if you’re using Ubuntu 12.04 LTS, please give it a whirl!
Just tagged r102, which contains the following changes:
Improved Replying: when you’re replying to another #pants post that’s already available in your server’s database, your reply will be pre-filled with a quoted version of that post’s body.
More indieweb markup: your site’s header now contains h-card markup, and the users you’re following are markup up with rel-following.
- The usual amount of fixes, refactoring and cleanup; in this release, mostly in the code that deals with incoming webmentions.
If you’re hosting your own instance, please also note the following changes:
config/pants.rb is gone; I’m trying to make everything configurable through environment variables. This mostly means that you now have to set
PANTS_FALLBACK_URL if you’ve been using the two options previously available in this file.
- You can now configure your #pants instance to email you error notifications. Simply configure
EXCEPTION_NOTIFICATION_RECIPIENTS. Please note that you’ll probably also want to configure ActionMailer for this to work.
I’ll try to set up a page in the development wiki with all available configuration options soon.
It’s hot in Hamburg while I’m slaving away at some fresh #pants updates!
Releases: First and foremost, #pants now has actual releases with actual release versions. Isn’t that amazing? You can track everything over at the Github releases page. I have decided against semantic versioning in order to keep things simple; #pants releases should be small, incremental, light-weight and painless, so they will simply be numbered sequentially (you’re looking at r101, yay!)
Design tweaks: The focus in this release was on design tweaks. I’ve simplified (both visually and technically) all the stuff around the actual posts quite a bit; information about the post is now above it, and available interactions below.
Quoted Posts: Even more importantly, I’ve tweaked how the original post is automatically rendered in replies. Instead of always rendering a big, scrollable box containing the full original post, I’m now rendering it as a simple blockquote – unless the reply contains a blockquote itself. This gives you complete control over just how much effort you want to put into quoting the text you’re replying to without increasing the complexity of the post form (which is still a single field. Which is awesome.)
referenced_guid, posts are now also saving (and serving in their JSON) the original
referenced_url. This is mostly in order to preserve the original URL’s scheme (ie.
@mentions: You can now mention another user just like you know it from, cough, Twitter. Check it out: @hmans.io! Hooray! Note that this currently doesn’t do any checks if the referenced domain name is actually a #pants user, but your #pants will send the mentioned domain a Webmention ping (just like it will for any other link included in your post.)
Push tweaks: When you post something new, your #pants will no longer send pings to the users you’re following. This mostly means that for users that are not following you back, in order to push your post to their incoming timelines, you’ll need to @mention them like described above.
ATOM tweaks: Posts that are replies to other posts will now indicate this in your #pants’ ATOM feed.
Improved #IndieWeb standards support: the overall goal is to make #pants interoperate happily with non-#pants sites, so your #pants will now display incoming Webmentions from all sources (see http://hmans.io/oqq524 for an example of what this looks like.) Also, your posts are now fully marked up with
h-entry microformats, allowing the #IndieWeb-enabled interwebs to fetch and process your posts in a structured fashion (example). If you’re interested in details on #IndieWeb, check out @indiewebcamp.com.
In addition to all this, if you’ve been hacking around with the #pants API, please note the following changes:
slug fields have been removed from the post JSON data as they’re now pretty much obsolete. The post JSON still has
guid, which should be enough to extract domain and path (slug) from.
data attributes have been added to the post JSON data. I rambled about
data for a bit yesterday; these fields don’t do much yet, but they’ll play a central role in a lot of things that are to come.
title, of course, is the post title (which, as you know, is being auto-extracted from the post body.)
- “Friends” is now “Following”: the “Friends” tab has now been renamed to “Following” to better reflect what it means to add a user to that list. #pants now uses a similar terminology to Twitter; you follow someone, becoming their follower.
- Public Following page: the same page is now publicly visible by default. If you don’t like this, you can hide it from within your Settings page.
A side note: “Following” now uses
rel=following markup for tools that can deal with these microformats. More microformat stuff coming up soon! Enjoy.