Some sketch thoughts about OER to come back and revisit

Does anyone/organization maintain a wiki or centralized repository of OER textbooks? (Especially a consortium of institutions which provide financial support).

It should contain a list of people/departments who’ve adopted (an indicator of quality).

It could maintain lists of people with technical expertise that can help to reshuffle pieces or allow customization? Maybe create easier methods for customization with related UI.

How to best curate resources and put them into a searchable repository for easy later use?

Can we create an organization that somewhat models the instutionalization of traditional textbook publishers that organize and track their assets? This institution should be supported by a broad array of colleges and universities as a means of supporting the otherwise invisible labor that is otherwise going on.

How can we flip the script to allow students to choose their own materials instead of allowing professors to do this? Their economic pressure alone will dramatically help the system. (Especially the hidden labor issues.)

 

 

Read Posts with Read Status via PESOS using GoodReads and Micropub

Today I accidentally realized that both the WordPress Micropub server and the Post Kinds plugin support read-status values of “to-read”, “reading”, and “finished”. I’ve managed to tweak my PESOS work flow with Goodreads.com to also include these experimental pieces using the following additional snippets of code appended to the “Body” fields I’ve described before:

&read-status=to-read
&read-status=reading
&read-status=finished

I’ve added one of the three snippets to the appropriate IFTTT.com recipes for  Goodreads feeds to create the appropriate output. Here’s the first post I’ve made using the new recipe for bookmarking a book I’d like to read: https://boffosocko.com/2020/02/15/meditations-marcus-aurelius/.

Previously I’ve been using simple notes to create read posts for books and just adding a “read” category to give me more control over the data in the posts. (I only used read posts previously for online articles.) Now that I’ve got the ability to provide some better differentiation for my progress, I think I’ll switch to using read posts for all my reading (books and articles).

Incidentally following IndieBookClub.biz and Indigenous for Android which added support for these earlier today, my method may be the third to use these microformats in the wild. Thanks to gRegor Morrill, Kristof De Jaeger, David Shanske, Ryan Barrett, and Charlotte Allen for their prior work, experimentation, code, and examples for allowing me to get this working on my website. 

Indicating Introversion / Extroversion at Conferences and Public Meeting Spaces

While I was at Innovate Pasadena’s Friday Morning Coffee Meetup on the topic of design this morning, I saw a woman wearing a large decorative flower in her hair. It reminded me of the social custom of Hawaiian women wearing flowers in their hair and what that indicates socially in terms of their wanting to be approached or not.

This made me begin wondering about the less gregarious or introverted people at meetings or conferences who can become overwhelmed by the sights, sounds, and interactions that it becomes so burdensome that they need to take a break and get away for a bit. What if there were a way to easily indicate at conferences that one wanted to be approached, pitched, or engaged in conversation? While some are sure to still need quiet spaces or breaks, perhaps there’s a way to leverage external indicators to generally diminish the additional social, mental, and emotional burdens of interacting in large crowds of strangers?

I might suggest using the position of one’s name tag as the indicator, but in the United States, generally etiquette has been to wear the name tag on the right hand side and at many conferences it’s almost more common that one wears a lanyard which prevents explicit positioning of a name tag in any case. I might also suggest using different sides of a name tag or lanyard, but experience with the physics and design of these indicates they would be poorly suited for this.

The second method that comes to mind is to use the placement on the right/left of other conference paraphernalia? Perhaps pronoun badges might serve this secondary function? It’s a bit Western-oriented to suggest, but perhaps following the existing pattern of wedding rings on the left hand (or flowers above the left ear in Hawaiian culture) to indicate that one is “unavailable” or would prefer not to be bothered, pitched, or interacted with at the moment? Wearing them on the right indicates I’m open for conversation, pitches, or interaction. Using this also has the potential side benefit of encouraging more conferences to explicitly advertise pronouns and normalize these sorts of behaviors and cultural conventions.

Multi-colored pronoun buttons for she (orange), he (yellow), they (green), and ask (red) as well as an IndieWebCamp button
Image courtesy of the IndieWeb.org wiki via Aaron Parecki (with a CC0 license)

Have other event organizers considered this sort of system before? Are there other examples of it occurring in the wild? What other external indicators could one use and simultaneously be easy for both organizers and participants?

Microsub reader clients and unread entries

I’ve become inextricably ensnared by the wealth of awesome Microsub feed readers out there. However, one small piece of UI keeps rearing its ugly head as I move variably from one to another either to move from mobile to desktop or just to enjoy the variety of user interfaces available.

While they all do a fantastic job of keeping track of what I’ve read or left unread, many of them are missing the ability to explicitly ask for just the unread items in particular channels. Invariably, I’ll find one or two pieces that I want to leave unread to revisit later, but then finding them in a stream of hundreds later becomes an impossible task.

Aaron Parecki‘s model version in Monocle has a handy menu item to request just the unread items in a channel.

Screencapture of the Monocle UI
Monocle has a simple dropdown to allow me to see just the unread entries.

 

Either it’s missing or I’m not able to easily find the same functionality in Kristof De Jaeger‘s Indigenous for Android or Grant Richmond‘s Together. (I’ve yet to have time to try out some of the others.)

I suppose I should simply start bookmarking those pieces I still want to read later and rely on my site for the memory. Of course this also then makes me itch for having private feeds in these readers to find my unpublished bookmarks for reading via my favorite Microsub clients on a future date.

Read settings page in Indigenous

I’ve noticed that Indigenous for Android does have the ability to create an additional channel for all unread items. This seems useful while I’ve only got a few dozen feeds and a handful of channels, but I don’t expect it to be quite as useful when I’ve moved over several dozen channels with hundreds of feeds. The benefit is that it does replicate the sort of functionality that most social silos like Facebook and Twitter have of an unending stream of unread posts. 

Indigenous also allows one to either manually mark items as read individually or automatically mark them read a page at a time. The page at a time seems to clear out the entire channel rather than marking things read as they’re scrolled, so it’s a bit too broad for my taste. Monocle does a much better job at this marking read while scrolling functionality. Indigenous also says it has a “Mark all read” button per channel, but somehow I’m not seeing it in the UI despite the many ways I toggle the options.

Indigenous also has the ability to set a Read later channel, which seems useful. There is another setting for “Move items” that indicates one can move posts from one channel to another, but when choosing individual posts to move, the UI reads “Select channel to add the feed to”. I was leery at first because I didn’t want to move my entire feed to the new channel, but after  trying it there’s a pop up that said “Post moved to channel X”. Perhaps Kristof might change the word “feed” to “post” in that part of the interface? Sadly though, I have to report that looking at my Unread items channel doesn’t actually show the things that were to have been moved.

 

 

Extra Feeds Plugin for WordPress

David Shanske has built a simple new IndieWeb friendly plugin for WordPress.

For individual posts, the Extra Feeds plugin will add code into the <header> of one’s page to provide feed readers that have built-in discovery mechanisms the ability to find the additional feeds provided by WordPress for all the tags, categories, and other custom taxonomies that appear on any given page. 

Without the plugin, WordPress core will generally only provide the main feed for your site and that of your comments feed. This is fine for sites that only post a few times a day or even per week. If you’re owning more of the content you post online on your own website as part of the IndieWeb or Domain of One’s Own movements, you’ll likely want more control for the benefit of your readers.

In reality WordPress provides feeds for every tag, category, or custom taxonomy that appears on your site, it just doesn’t advertise them to feed readers or other machines unless you add them manually or via custom code or a plugin. Having this as an option can be helpful when you’re publishing dozens of posts a day and your potential readers may only want a subsection of your posting output.

In my case I have a handful of taxonomies that post hundreds to thousands of items per year, so it’s more likely someone may want a subsection of my content rather than my firehose. In fact, I just ran across a statistician yesterday who was following just my math and information theory/biology related posts. With over 7,000 individual taxonomy entries on my site you’ve got a lot of choice, so happy hunting and reading!

This plugin also includes feeds for Post Formats, Post Kinds (if you have that plugin installed), and the author feed for sites with one or more different authors.

This is useful in that now while you’re on any particular page and want to subscribe to something on that specific page, it will be much easier to find those feeds, which have always been there, but are just not easily uncovered by many feed reader work flows because they weren’t explicitly declared.

Some examples from a recent listen post on my site now let you more easily find and subscribe to:

  • my faux-cast:
    <link rel="alternate" type="application/rss+xml" title="Chris Aldrich &raquo; listen Kind Feed" href="https://boffosocko.com/kind/listen/feed/rss/" />
  • the feed of items tagged with Econ Extra Credit, which I’m using to track my progress in Marketplace’s virtual book club:
    <link rel="alternate" type="application/rss+xml" title="Chris Aldrich &raquo; Econ Extra Credit Tag Feed" href="https://boffosocko.com/tag/econ-extra-credit/feed/rss/" />
  • the feed for all posts by an author:
    <link rel="alternate" type="application/rss+xml" title="Chris Aldrich &raquo; Posts by Chris Aldrich Feed" href="https://boffosocko.com/author/chrisaldrich/feed/rss/" />

Manual Backfeed in the Blogosphere

Forcing webmentions for conversations on websites that don’t support Webmention

Within the IndieWeb community there is a process called backfeed which is the process of syndicating interactions on your syndicated (POSSE) copies back (AKA reverse syndicating) to your original posts. As it’s commonly practiced, often with the ever helpful Brid.gy service, it is almost exclusively done with social media silos like Twitter, Instagram, Flickr, Github, and Mastodon. This is what allows replies to my content that I’ve syndicated to Twitter, for example, to come back and live here on my website.

Why not practice this with other personal websites? This may become increasingly important in an ever growing and revitalizing blogosphere as people increasingly eschew corporate social sites and their dark patterns of tracking, manipulative algorithmic feeds, and surveillance capitalism. It’s also useful for sites whose owners may not have the inclination, time, effort, energy or expertise to support the requisite technology.

I’ve done the following general reply pattern using what one might call manual backfeed quite a few times now (and I’m sure a few others likely have too), but I don’t think I’ve seen it documented anywhere as a common IndieWeb practice. As a point of fact, my method outlined below is really only half-manual because I’m cleverly leveraging incoming webmentions to reduce some of the work.

Manually syndicating my replies

Sometimes when using my own website to reply to another that doesn’t support the W3C’s Webmention spec, I’ll manually syndicate (a fancy way of saying cut-and-paste) my response to the website I’m responding to. In these cases I’ll either put the URL of my response into the body of my reply, or in sites like WordPress that ask for my website URL, I’ll use that field instead. Either way, my response appears on their site with my reply URL in it (sometimes I may have to wait for my comment to be moderated if the receiving site does that).

Here’s the important part: Because my URL appears on the receiving site (sometimes wrapped as a link on either my name or the date/time stamp depending on the site’s user interface choices), I can now use it to force future replies on that site back to my original via webmention! My site will look for a URL pointing back to it to verify an incoming webmention on my site.

Replies from a site that doesn’t support sending Webmentions

Once my comment appears on the receiving site, and anyone responds to it, I can take the URL (with fragment) for those responses, and manually input them into my original post’s URL reply box. This will allow me to manually force a webmention to my post that will show up at minimum as a vanilla mention on my website. 

The manual webmention box and button that appear on all my posts.

(Note, if your site doesn’t have a native box like this for forcing manual webmentions, you might try external tools like Aaron Parecki’s Telegraph or Kevin Mark’s Mention.Tech, which are almost as easy. For those who are more technical, cURL is an option as well.)

Depending on the microformats mark up of the external site, the mention may or may not have an appropriate portion for the response and/or an avatar/name. I can then massage those on my own site (one of the many benefits of ownership!) so that the appropriate data shows, and I can change the response type from a “mention” to a “reply” (or other sub-types as appropriate). Et voilà, with minimal effort, I’ve got a native looking reply back on my site from a site that does not support Webmention! This is one of the beautiful things of even the smallest building-blocks within the independent web or as a refrain some may wish to sing–“small pieces, loosely joined”!

This method works incredibly well with WordPress websites in particular. In almost all cases the comments on them will have permalink URLs (with fragments) to target the individual pieces, often they’ve got reasonable microformats for specifying the correct h-card details, and, best of all, they have functionality that will send me an email notification when others reply to my portion of the conversation, so I’m actually reminded to force the webmentions manually.

An Illustrative Example

As an example, I posted on my website that I’d read an article on Matt Maldre’s site along with a short comment. Since Matt (currently) doesn’t support either incoming or outgoing webmentions, I manually cut-and-pasted my reply to the comment section on his post. I did the same thing again later with an additional comment on my site to his (after all, why start a new separate conversation thread when I can send webmentions from my comments section and keep the context?).

Matt later approved my comments and posted his replies on his own website. Because his site is built on WordPresss, I got email notifications about his replies, and I was able to use the following URLs with the appropriate fragments of his comments in my manual webmention box:

https://www.spudart.org/blog/xeroxing-your-face/#comment-43843
https://www.spudart.org/blog/xeroxing-your-face/#comment-43844

After a quick “massage” to change them from “mentions” into “replies” and add his gravatar, they now live on my site where I expect them and in just the way I’d expect them to look if he had Webmention support on his website.

I’ll mention that, all of this could be done in a very manual cut-and-paste manner–even for two sites, neither of which have webmention support.  But having support for incoming webmentions on one’s site cuts back significantly on that manual pain.

For those who’d like to give it a spin, I’ll also mention that I’ve similarly used the incredibly old refbacks concept in the past as a means of notification from other websites (this can take a while) and then forced manual webmentions to get better data out of them than the refback method allows.

Using IFTTT to syndicate (PESOS) content from social services to WordPress using Micropub

Introduction

What follows may tend toward the jargon-y end of programming, but I’ll endeavor to explain it all and go step-by-step to allow those with little or no programming experience to follow along and use the tools I’m describing in a very powerful way.  I’ll do my best to link the jargon to definitions and examples for those who haven’t run across them before. Hopefully with a bit of explanation, the ability to cut and paste some code, or even make some basic modifications, you’ll be able to do what I and others have done, but without having to puzzle it all out from scratch.

Most readers are sure to be aware of the ubiquitous “share” buttons that appear all over the web. Some of the most common are “share to Facebook” or “share to Twitter”. In my examples that follow, I’m doing roughly the same thing, but I’m using technology called webhooks and micropub to be able to share not just a URL or web address, but a variety of other very specific data in a specific way to my website.

This “share”–while a little more complicated–gives me a lot more direct control over the data I’m sending and how it will be seen on my website. I would hope that one day more social websites will have built in share buttons that allow for direct micropub integration so that instead of only sharing to corporate sites like Facebook, Twitter, et al. they’ll let people share directly to their own personal websites where they can better control their online identity and data. What I’m describing below is hopefully a temporary band-aid that allows me to keep using common social services like Pocket, YouTube, Meetup, Goodreads, Letterboxd, Diigo, Huffduffer, Reading.am, Hypothes.is, and hundreds of others but to also post the content to my site so that I own and control more of my own online data.

An example using Pocket

Following in the footsteps of Charlotte Allen and Jan-Lukas Else, I’ve been tinkering around with improving some of my syndication workflows for a number of social silos including Pocket, a social silo that focuses on bookmarking material to read later.

I have long used IFTTT (aka If This, Then That), a free and relatively simple web service that allows one to create applets that tie a large number of web-based and social services together, to send data from my Pocket account to my WordPress-based website. I’d done this using my Pocket RSS feed to create WordPress draft posts that I could then modify if necessary and publish publicly if I desired. Since I regularly use a number of Micropub clients in conjunction with the WordPress Micropub plugin and IFTTT supports webhooks, I thought I’d try that out as a separate process to provide a bit less manual pain in mapping the data for posts to appear like I want them to on my website. 

Now I can use my Pocket account data and map most of it directly to the appropriate data fields on my website. Because Pocket has direct integration into IFTTT, I can actually get more data (particularly tags) out of it than I could before from the simple RSS feed.

Below, you’ll find what I’ve done with a quick walk through and some example code snippets. I’ll break some of it down into pieces as I go, and then provide a specific exemplar of some of the code properly strung together at the end. I’ll also note that this general procedure can be used with a variety of other silos (and either their integrated data or RSS feeds) within IFTTT to post data to your website. Those running platforms other than WordPress may be able to use the basic recipe presented here with some small modifications, to send similar data from their accounts to their sites that support Micropub as well. 

Directions for connecting IFTTT to publish to WordPress via Micropub

Preliminaries

Install and activate the Micropub plugin for WordPress. This will give your website a server endpoint that IFTTT will use to authenticate and send data to your website on your behalf.

If you don’t already have it, install the IndieAuth plugin for WordPress and activate it. This will allow you to generate an authorization token (think password) with the appropriate scopes (think permissions to do specific actions on your website) to allow IFTTT to securely post to your website. 

Within the WordPress administrative interface/dashboard go to Users >> Mange Tokens or go to the path /wp-admin/users.php?page=indieauth_user_token on your website. 

At the bottom of that page under the section “Add Token” add a convenient name for your new token. You’ll see in the following screencapture that I’ve used “IFTTT for Webhooks”. Next click the check boxes to add scopes for “create” and “media”. Finally click the “Add New Token” button.

Screencapture from the Add Token section of the User >> Manage Tokens page

On the resulting page, copy the entirety of the returned access token in a safe place. You’ll need this token later in the process and once you’ve navigated away from the page, there’s no way to retrieve the token again later. The same token can be used for multiple different recipes within IFTTT,  though one could create a different token for each different recipe if desired.

Sign up for an IFTTT account (if you don’t already have one). 

Register Pocket as a service you can use within IFTTT.

The IFTTT Applet

In your IFTTT.com account, create a new applet.

Screenshot of the "If This Then That" recipe start with "This" highlighted

For the “if” part of the applet, search for and choose the Pocket application.

Screenshot of a search for "Pocket"

Choose the trigger “Any new item” (other triggers could be chosen for different combinations of actions).

Click the “then” part of the applet, and search for and chose the Webhooks application.

Screenshot of the "That" portion with a search for Webhooks

Choose the “Make a web request” option (currently the only option on the page).

Next we’ll fill in the action fields.

Screencapture of the Complete Action Fields step

 

Fill in the four action fields with the following values, with the appropriate modifications as necessary:

URL: https://www.example.com/wp-json/micropub/1.0/endpoint

Be sure to change example.com to the appropriate URL for your website. If you’re using a platform that isn’t WordPress in combination with the Micropub plugin, you can quickly find your appropriate endpoint by looking at your homepage’s source for a <link> element with a rel="micropub" attribute.

Method: POST
Content Type: application/x-www-form-urlencoded

More advanced users might experiment with other content types, but this will naturally require different data and formatting in the Body section.

Body: 

The Body portion is one of the most complicated portions of the operation, because this is where you can get creative in how you fill this out and the end results you end up with on your website. You can use the available variables in the recipe to custom create almost anything you like and some services will give you a tremendous amount of flexibility. I’ll walk through a handful of the most common options and then tie them all together at the end. Ultimately the Body will be a string of various commands that indicate the data you want to send to your website and all of those commands will be strung together with an ampersand character (“&“) between each of them.

There are some small differences you may want to experiment with in terms of what you put in the Body field based on whether or not you’re using the Post Kinds plugin to create your posts and reply contexts or if you’re not. 

Depending on which pieces you choose, I recommend doing a few test runs for your applets to make sure that they work the way you expect them to. (The Micropub plugin has a setting to mark incoming posts automatically as drafts, so you’re not spamming your readers while you’re testing options if you’re testing this on a live site.) Sometimes formatting issues (particularly with setting a publish time) may cause the post to fail. In these cases, experiment to find and excise the offending code and see if you can get things working with minimal examples before adding additional data/details.

For those who would like to get into more advanced territory with the programming and methods, I recommend looking at the W3C’s Webmention specification

The first thing you’ll want in the Body will be your access token. This is similar to a password that allows the webhook to publish from IFTTT to your website. You’ll want a line that reads as follows with the AccessTokenHere replaced with the access token from your token provider which you created earlier and saved. You’ll want to keep this secret because it acts like a password for allowing remote applications to post to your website.

access_token=AcessTokenHere

Next will come the content you want to be published to your site.

&content=<<<{{EntryTitle}}<br>{{EntryPublished}}>>>

I’ll mention that the content snippet can include almost anything you’d like using the variables provided by IFTTT as well as a reasonable variety of HTML. I’ve used it to add things like <blockquotes> for annotations and even <audio> tags for making listen posts or bookmarking audio with Huffduffer!

The following snippet tells your site what kind of content it’s receiving. Unless you’re doing something more exotic than bookmarks, likes, favorites, replies, or most post kinds (except maybe events), you’ll want to use the h-entry snippet as follows:

&h=entry

If you’d like your post to contain a formal title, then you’ll want to include the following code snippet. Generally with shorter content like notes/status updates, bookmarks, reads, likes, etc., I follow the practice of publishing titleless posts when they’re not required, so I personally skip this piece in most of my posts, but some may wish to include it.

&name=<<<{{Title}}>>>

To have your website create or use the correct category or tag taxonomies on your posts, you’ll want to have something similar to the following snippet. If you want to specify more than one category, just string them together with ampersands. If your category/tag has a blank space in it you can replace the spaces with %20. The Micropub server on your site should automatically check to see if you have categories or tags that match what is sent, otherwise it will create a new tag(s).

&category[]=Bookmark&category[]=Social%20Stream

I’ve found that in practice, some silos that allow for multiple tags will actually publish them via micropub using something along the lines of the following if the  appropriate variables on IFTTT exist. In these cases, I append this to the other categories and tags I want to specify.

&category[]=<<<{{Tags}}>>>

If you’re using your Pocket account to send your bookmarked articles to read later, you’ll want to create a bookmark with the following line:

&bookmark-of=<<<{{EntryUrl}}>>>

Alternatively, if you were using your Pocket account to archive your articles once you’ve actually read them, you could have IFTTT post these archived items as “reads” to your site by choosing the “New Item Archived” element in the Pocket portion of the IF set up process. Here you’d replace the above bookmark-of line with the following:

&read-of=<<<{{EntryUrl}}>>>

If you were creating different sorts of posts you might also use the appropriate alternate verbiage: like-of, watch-of, listen-of, rsvp, etc. (find details for the appropriate mark up on the IndieWeb wiki or the correct microformats v2 property within the code for the Post Kinds plugin). If you are using the Post Kinds plugin, this is the piece of data that it receives to specify the correct post kind and create the reply context for your post and will likely preclude you from needing to send any data in the content portion (above) unless the services applet will let you send additional commentary or notes that you want to appear in the body of your post.

Next, if your site supports syndication links with a plugin like Syndication Links for WordPress, you would use the following line of code so that those are set and saved properly. (This presumes that the URL specified is the permalink of the content on the social silo. I’ll note that Pocket doesn’t provide these (easily) as most of their links are canonical ones for the original content, so I don’t use this on my IFTTT recipe for my Pocket workflow, but I do use it for others like Huffduffer and Reading.am. It conveniently allows me to find copies of my content elsewhere on the web.)

&syndication=<<<{{EntryUrl}}>>>

If you’d like to have the timestamp on your post match the time when you actually bookmarked the item in Pocket, you’ll need to add the following line of code. Without this line, the publication time will match the time of the Webhook action, which for most IFTTT things can be a delay of a minute or two up to an hour or more afterwards. In practice, I’ve noticed that most content posts to my website within about 10-15 minutes of the original, and this is based on the polling lag within IFTTT checking your triggers. (Sadly, I’ll report that I’ve never gotten this code snippet to work for me in practice, and I suspect it may be because the time format from IFTTT doesn’t match what is expected by the Micropub server on my website. Perhaps David Shanske or Ryan Barrett may have a more specific idea about what’s causing this or suggest a fix? I’ll try to dig into it shortly if I can. As a result, I generally have left this snippet of code off of my triggers and they’ve worked fine as a result. Until this issue might be fixed, if you want to have the exact timestamp, you could alternately include the data, if provided, in the content section instead and then copy it over manually after-the-fact.)

&published=<<<{{EntryPublished}}>>>

If you’ve got syndication endpoints set up properly with something like the Syndication Links plugin, you can use the following sort of code snippet. I generally eschew this and prefer to save my posts as drafts for potential modification prior to publishing publicly, but others may have different needs, so I’m including the option for relative completeness so people can experiment with it if they like.

&mp-syndicate-to[]=twitter-bridgy

This concludes the list of things that might commonly be included in the Body portion of the IFTTT applet. Tying these all together for combination in the Post Kinds Plugin one would want something along the lines of :

Body: access_token=AccessTokenHere&content=<<<{{EntryTitle}}<br> {{EntryPublished}}>>>&h=entry&category[]=Bookmark&category[]=Social%20Stream&bookmark-of=<<<{{EntryUrl}}>>>

Here’s another example of the code I use in conjunction with a similar applet for Diigo, a bookmarking service. The “Description” portion allows me to add a note or comment on the bookmark when I make it and that note is transported over to the post on my website as well.

Body: access_token=AccessTokenHere&content=<<<{{Description}}>>>&h=entry&category[]=Bookmark&category[]=Social%20Stream&category[]=<<<{{Tags}}>>>&bookmark-of=<<<{{Url}}>>>

Note that when the string of commands is done, you do not need to have a trailing ampersand. Most of the examples I’ve used are from the Pocket set up within IFTTT, but keep in mind that other services on the platform may use alternate variable names (the portion in the braces {{}}). The differences may be subtle, but they are important so be careful not to use {{EntryTitle}} if your specific recipe expects {{Title}}.

To finish off making your new applet, click on the “Create Action” button. (If necessary, you can test the applet and come back to modify it later.)

Finally, give your applet an appropriate tile and click the “Finish” button. For my Pocket applet I’ve used the name “Pocket bookmark PESOS Micropub to WordPress”.

Screencapture of the Review and Finish page on IFTTT

Now that your applet is finished, give it a whirl and see if it works the way you expect! Don’t feel discouraged if you run into issues, but try experimenting a bit to see if you can get the results you’d like to see on your website. You can always go back to your applet recipe and modify it if necessary.

Conclusion

Hopefully everyone has as much fun as I’ve had using this workflow to post to their websites. It may take some patience and experimentation to get things the way you’d like to have them, but you’re likely to be able to post more easily in the future. This will also let you own your data as you create it while still interacting with your friends and colleagues online.

I know that it may be possible to use other services like Zapier, Integromat, Automate.io, or other similar services instead of IFTTT though some of these may require paid accounts. I’d love to see what sorts of things people come up with for using this method for owning their own data. Can you think of other services that provide webhooks for potential use in combination with Micropub? (Incidentally, if this is your first foray into the Micropub space, be sure to check out the wealth of free Micropub clients you can use to publish directly to your website without all of the set up and code I’ve outlined above!)

Currently I’m using similar workflows to own my data from social services including Pocket, Diigo, Huffduffer, Reading.am, YouTube, Meetup/Google Calendar, and Hypothes.is. I’ve got several more planned shortly as well.

Thanks once again to Charlotte Allen and subsequently Jan-Lukas Else for the idea of using Micropub this way. Their initial documentation was invaluable to me and others are sure to find it useful. Charlotte has some examples for use with Facebook and Instagram and Jan-Lukas’ example may be especially helpful for those not using WordPress-specific solutions.

And as always, a big thank you to the entire IndieWeb community for continuing to hack away at making the web such a fun and vibrant space by making the small building blocks that make all of the above and so much more possible.

How to follow the complete output of journalists and other writers?

In a digital era with a seemingly ever-decreasing number of larger news outlets paying journalists and other writers for their work, the number of working writers who find themselves working for one or more outlets is rapidly increasing. 

This is sure to leave journalists wondering how to better serve their own personal brand either when they leave a major publication for which they’ve long held an association (examples: Walt Mossberg leaving The New York Times or Leon Wieseltier leaving The New Republic)  or alternatively when they’re just starting out and writing for fifty publications and attempting to build a bigger personal following for their work which appears in many locations (examples include nearly everyone out there).

Increasingly I find myself doing insane things to try to follow the content of writers I love. The required gymnastics are increasingly complex to try to track writers across hundreds of different outlets and dozens of social media sites and other platforms (filtering out unwanted results is particularly irksome). One might think that in our current digital media society, it would be easy to find all the writing output of a professional writer like Ta-nehisi Coates, for example, in one centralized place.

I’m also far from the only one. In fact, I recently came across this note by Kevin:

I wish there was a way to subscribe to writers the same way you can use RSS. Obviously twitter gets you the closest, but usually a whole lot more than just the articles they’ve written. It would be awesome if every time Danny Chau or Wesley Morris published a piece I’d know.

The subsequent conversation in his comments or  on Micro.blog (a fairly digital savvy crowd) was less than heartening for further ideas.

As Kevin intimates, most writers and journalists are on Twitter because that’s where a lot of the attention is. But sadly Twitter can be a caustic and toxic place for many. It also means sifting through a lot of intermediary tweets to get to the few a week that are the actual work product articles that one wants to read. This also presumes that one’s favorite writer is on Twitter, still using Twitter, or hasn’t left because they feel it’s a time suck or because of abuse, threats, or other issues (examples: Ta-Nehisi Coates, Lindy West, Sherman Alexie). 

What does the universe of potential solutions for this problem currently look like?

Potential Solutions

Aggregators

One might think that an aggregation platform like Muck Rack which is trying to get journalists to use their service and touts itself as “The easiest, unlimited way to build your portfolio, grow your following and quantify your impact—for free” might provide journalists the ability to easily import their content via RSS feeds and then provide those same feeds back out so that their readers/fans could subscribe to them easily. How exactly are they delivering on that promise to writers to “grow your following”?!

An illustrative example I’ve found on Muck Rack is Ryan O’Hanlon, a Los Angeles-based writer, who writes for  a variety of outlets including The Guardian, The New York Times, ESPN, BuzzFeed, ESPN Deportes, Salon, ESPN Brasil, FiveThirtyEight, The Ringer, and others. As of today they’ve got 410 of his articles archived and linked there. Sadly, there’s no way for a fan of his work to follow him there. Even if the site provided an RSS feed of titles and synopses that forced one to read his work on the original outlet, that would be a big win for readers, for Ryan, and for the outlets he’s writing for–not to mention a big win for Muck Rack and their promise.

I’m sure there have to be a dozen or so other aggregation sites like Muck Rack hiding out there doing something similar, but I’ve yet to find the real tool for which I’m looking. And if that tool exists, it’s poorly distributed and unlikely to help me for 80% of the writers I’m interested in following much less 5%.

Author Controlled Websites

Possibly the best choice for everyone involved would be for writers to have their own websites where they archive their own written work and provide a centralized portfolio for their fans and readers to follow them regardless of where they go or which outlet they’re writing for. They could keep their full pieces privately on the back end, but give titles, names of outlets, photos, and synopses on their sites with links back to the original as traditional blog posts. This pushes the eyeballs towards the outlets that are paying their bills while still allowing their fans to easily follow everything they’re writing. Best of all the writer could own and control it all from soup to nuts.

If I were a journalist doing this on the cheap and didn’t want it to become a timesuck, I’d probably spin up a simple WordPress website and use the excellent and well-documented PressForward project/plugin to completely archive and aggregate my published work, but use their awesome forwarding functionality so that those visiting the URLs of the individual pieces would be automatically redirected to the original outlet. This is a great benefit for writers many of whom know the pain of having written for outlets that have gone out of business, been bought out, or even completely disappeared from the web. 

Of course, from a website, it’s relatively easy to automatically cross-post your work to any number of other social platforms to notify the masses if necessary, but at least there is one canonical and centralized place to find a writer’s proverbial “meat and potatoes”. If you’re not doing something like this at a minimum, you’re just making it hard for your fans and failing at the very basics of building your own brand, which in part is to get even more readers. (Hint, the more readers and fans you’ve got, the more eyeballs you bring to the outlets you’re writing for, and in a market economy built on clicks, more eyeballs means more traffic, which means more money in the writer’s pocket. Since a portion of the web traffic would be going through an author’s website, they’ll have at least a proportional idea of how many eyeballs they’re pushing.)

I can’t help but point out that even some who have set up their own websites aren’t quite doing any of this right or even well. We can look back at Ryan O’Hanlon above with a website at https://www.ryanwohanlon.com/. Sadly he’s obviously let the domain registration lapse, and it has been taken over by a company selling shoes. We can compare this with the slight step up that Mssr. Coates has made by not only owning his own domain and having an informative website featuring his books, but alas there’s not even a link to his work for The Atlantic or any other writing anywhere else. Devastatingly his RSS feed isn’t linked, but if you manage to find it on his website, you’ll be less-than-enthralled by three posts of Lorem ipsum from 2017. Ugh! What has the world devolved to? (I can only suspect that his website is run by his publisher who cares about the book revenue and can’t be bothered to update his homepage with events that are now long past.)

Examples of some journalists/writers who are doing some interesting work, experimentation, or making an effort in this area include: Richard MacManus,  Marina Gerner, Dan Gillmor, Jay RosenBill Bennett, Jeff JarvisAram Zucker-Scharff, and Tim Harford

One of my favorite examples is John Naughton who writes a regular column for the Guardian. He has his own site where he posts links, quotes, what he’s reading, his commentary, and quotes of his long form writing elsewhere along with links to full pieces on those sites. I have no problem following some or all of his output there since his (WordPress-based) site has individual feeds for either small portions or all of it. (I’ve also written a short case study on Ms. Gerner’s site in the past as well.)

Newsletters

Before anyone says, “What about their newsletters?” I’ll admit that both O’Hanlon and Coates both have newsletters, but what’s to guarantee that they’re doing a better job of pushing all of their content though those outlets? Most of my experience with newsletters would indicate that’s definitely not the case with most writers, and again, not all writers are going to have newsletters, which seem to be the flavor-of-the month in terms of media distribution. What are we to do when newsletters are passé in 6 months? (If you don’t believe me, just recall the parable of all the magazines and writers that moved from their own websites or Tumblr to Medium.com.)

Tangential projects

I’m aware of some one-off tools that come close to the sort of notifications of writers’ work that might be leveraged or modified into a bigger tool or stand alone platform. Still, most of these are simple uni-taskers and only fix small portions of the overall problem.

Extra Extra

Savemy.News

Ben Walsh of the Los Angeles Times Data Desk has created a simple web interface at www.SaveMy.News that journalists can use to quickly archive their stories to the Internet Archive and WebCite. One can log into the service via Twitter and later download a .csv file with a running list of all their works with links to the archived copies. Adding on some functionality to add feeds and make them discoverable to a tool like this could be a boon.

Granary

Ryan Barrett has a fantastic open source tool called Granary that “Fetches and converts data between social networks, HTML and JSON with microformats2, ActivityStreams 1 and 2, AtomRSSJSON Feed, and more.” This could be a solid piece of a bigger process that pulls from multiple sources, converts them into a common format, and outputs them in a single subscribe-able location.

Splash page image and social logos from Granary.io

SubToMe

A big problem that has pushed us away from RSS and other formatted feed readers is providing an easy method of subscribing to content. Want to follow someone on Twitter? Just click a button and go. Wishing it were similar for a variety of feed types, Julien Genestoux‘s SubToMe has created a universal follow button that allows a one-click subscription option (with lots of flexibility and even bookmarklets) for following content feeds on the open web.

Splash image on SubToMe's home page

Others?

Have you seen any other writers/technologists who have solved this problem? Are there aggregation platforms that solve the problem in reverse? Small pieces that could be loosely joined into a better solution? What else am I missing?

How can we encourage more writers to take this work into their own hands to provide a cleaner solution for their audiences? Isn’t it in their own best interest to help their readers find their work?

I’ve curated portions of a journalism page on  IndieWeb wiki to include some useful examples, pointers, and resources that may help in solving portions of this problem. Other ideas and solutions are most welcome!

Owning my RSVP’s from Meetup.com using IFTTT and Webhooks to a Micropub endpoint

It’s a slightly circuitous set up and I may find a better way to do it eventually, but last night I was tinkering at a way to better own my RSVPs from Meetup.com. Previously it has been a completely manual set up, but it’s something I do often enough that the hour long investment was more than worth it. (I specifically want to own my data here because I’m hedging my bets for what ends up happening with Meetup.com in a post-WeWork bankrupcy world.)

Since I’ve been adding PESOS workflows using the Micropub endpoint on my website lately, I tried setting up a direct ping using IFTTT.com from the RSS feed from Meetup. Sadly the timestamps on that feed are not of the time that I RSVP’d, but the time the event was published. As a result the trigger seems like it would never actually fire to make a post. I also thought about taking a feed of all the events of the groups I’m a member of and feed that in, but alas, that feed doesn’t seem to exist. If that were possible, then I could create drafts of the data and then RSVP as yes, no, maybe, etc. for each of them in a slightly more manual (and thoughtful) way, but I’d also have the benefit of seeing all the notifications for everything pop up in my own website.

Since I always immediately add my RSVP’s from Meetup.com directly to my Google Calendar anyway, I thought I’d use that as the data source and trigger mechanism instead, and lo and behold! It works!

Now I can quickly RSVP via Meetup.com, use their interface to add the event to my Google Calendar, leverage IFTTT.com’s Webhook to send a Micropub request to my endpoint, and I’ve got an RSVP post with all the details on my website! It also cleverly creates syndication links on my posts as well.

Perhaps I could now use some of the infrastructure to create an upcoming events widget in a sidebar, to the home page of my site, or even on my neglected /Now page?

Since this Webhook to Micropub process is something I’ve been working on a bit, I’ll soon have a post with a step-by-step set up and an example or two of how it works, so that others can implement it too. I’ve been using it for read posts, listen posts, watches, and even for creating annotation posts on my site. Depending on the data source, some of the process can still have some manual portions, but at least I’m getting all the data I’d like to have.

Annotation posts >> Highlight posts

Because they’re so similar, I’ve decided to discontinue the custom highlight posts my site had in lieu of the more prevalent annotation post kind. The layout and format of both as highlighted text quoted from another site was almost exactly the same with the primary difference being my additional commentary added to the highlighted text to call it an annotation. Conceptually I considered “highlight + commentary/reply = annotation”. The difference is marginal at best–pun intended.

Since I only had 13 highlight posts versus 121 annotation posts (plus various additional annotations and highlights which I’ve rolled up into the body of some of my read posts) over the last year and a half, I felt it seemed redundant and bothersome to maintain two separate, but nearly identical post kinds. Semantically one may think of a highlight on some text as an annotation anyway, thus the idea of annotation subsumes that of a simple highlight.

As of this evening, I’ve changed all the custom highlight posts to be of the annotation kind. Other than the one word visual difference of the post kind text changing from “highlight” to “annotation” this change won’t affect much except for those who may have been subscribed to the highlight feed. Going forward you may consider subscribing to my annotation feed instead.

I had created highlight posts first, but in the end annotation posts have won the day. And for those that don’t have them, fear not, because honestly annotation posts are really just glorified bookmarks with custom text in the context. (The glorification only entails a highligher icon instead of a bookmark icon and a bit of CSS to color the text yellow.) I do find having them delineated for my personal research purposes useful though.

A brief year in review of my website, domain, online identity, commonplace book, journal, diary, etc.

With this post I will have posted to my personal website every day this past year. #​​AMA

This may seem incredibly impressive in a post-blog era when some people think it’s an achievement to have written on their personal site even once this year. When the average person thinks about how they use social media in our all-new, shiny, surveillance capitalism era they’ll possibly realize that they may actually post far more. They’re just doing it in dozens or more different places generally for the financial benefit of Facebook, Twitter, Instagram, Google, LinkedIn, Amazon, Medium, Goodreads, Swarm, Youtube, Reddit, Flickr, Yelp, Pinterest, Meetup, Kickstarter, Patreon, Nextdoor, Tumblr, Mastodon, Periscope, 500px, Pocket, Flipboard, SlideShare, Disqus, FitBit, Strava, Reading.am, GitHub, BitBucket, GitLab, Last.fm, Soundcloud, Vimeo, Telfie, Letterboxd, Trakt, Soundtracking, Tripit, Conferize, Upcoming.org, Colloq.io, Noti.st, Peach, Kinja, Plurk, TinyLetter, Venmo, Beeminder, Everyday Carry, and many, many, many others.

If anything, I suspect that I may be at the low end of writers and social posters. The major difference is that I own all of my data and have it in a single place where it’s more useful and searchable for me.

It turns out I made over 7,300 posts to my personal website this year. (For comparison, just the other day, I made my 10,000th tweet–after almost 11 years on Twitter.) This year’s output averages out to about 20 posts a day and includes at least one day with 53 public posts. (Many of my posts are private, where even Facebook is unaware of them. In fact, for large portions of July-October this year I only posted privately as a personal experiment.) These posts include nearly everything I’ve read, watched, listened to, bookmarked, replied to online, and otherwise written about this year. It also includes almost all of my checkins, RSVPs, and bookmarks as well as many of the more memorable things I’ve eaten or drank and most of my major acquisitions. It’s certainly a heck of a multi-media version of how I spent 2019. Better, it hasn’t taken a lot of work to do, it’s relatively easy to use, and I refer back to a lot of it–often. As a result, I also use it dramatically differently than I do traditional social media.

Of course my site is never exactly like I’d like it to be (I’d like to have more photo collections), but it’s finally getting somewhere closer to the sort of commonplace book I’ve always wanted. I’ll keep hacking away at posting things more easily and collecting what I think are some of the more interesting data I come across on a daily basis. Fortunately while most social media platforms have broadly quit innovating to make new and interesting features, I have the ability to change things to make them the way I want them to be. This sort of agency and flexibility is incredibly invaluable.

The best part is that it’s all on a website I control, and all the data is mine in a way that a traditional social media experience has never come close to. If you have the same wish for yourself or your friends in the coming new year, do let me know –I and many others are around to help you make it a reality for yourself

Improving the WordPress documentation on the IndieWeb Wiki

I had started it in November 2018, but today I spent a several hours to do some additional documentation and finally migrate the changes and updates to the WordPress pages on the IndieWeb wiki.

The biggest set of changes is for the Getting Started on WordPress page which is hopefully simpler and clearer for the IndieWeb beginner. It was previously arranged around the somewhat jargon-y idea of IndieMark which is a much more developer-centric presentation and much more useful for developers building an IndieWeb site from scratch. This was fine for an earlier generation of IndieWeb adopter.

Now that many of the WordPress plugins have aggregated and become much more mature and robust, many thought we needed a simplified way of approaching things for people who can at least manage a WordPress install in terms of installing and updating themes and plugins. This update to the getting started page is meant to reflect this so that those with either a new site or converting a pre-existing site can get up and going as quickly as possible. As a result this page is very opinionated toward the simplest paths available for the broadest number of people. Naturally once one has a few of the bigger building blocks working and wants to delve in further, there are other pieces of the wiki that can help, and the getting started page has links to many of these.

Because WordPress gives people so much functionality out of the box, the getting started page is now focused on adding bigger building blocks of IndieWeb functionality like IndieAuth, Webmention, Micropub, WebSub, and Microsub. 

Many of the pieces of the older page have been updated and migrated to the Advanced WordPress Set Up page or to other relevant pages within the broader WordPress heirarchy.

Special thanks to Michael Beckwith, Greg McVerry, and many others in the IndieWeb chat for their work and contributions toward this effort as well!

We all look forward to everyone’s thoughts, comments, and further contributions to the wiki as the suite of IndieWeb-related WordPress plugins and tools continue to improve and evolve.

Cleaning up feeds, easier social following, and feed readers

I’ve been doing a bit of clean up in my feed reader(s)–cleaning out dead feeds, fixing broken ones, etc. I thought I’d take a quick peek at some of the feeds I’m pushing out as well. I remember doing some serious updates on the feeds my site advertises three years ago this week, but it’s been a while since I’ve revisited it. While every post kind/type, category, and tag on my site has a feed (often found by simply adding /feed/ to the end of those URLs), I’ve made a few custom feeds for aggregated content.

However, knowing that some feeds are broadly available from my site isn’t always either obvious or the same as being able to use them easily–one might think of it as a(n) (technical) accessibility problem. I thought I’d make a few tweaks to smooth out that user interface and hopefully provide a better user experience–especially since I’m publishing everything from my website first rather than in 30 different places online (which is a whole other UI problem for those wishing to follow me and my content). Since most pages on my site have a “Follow Me” button (courtesy of SubToMe), I just needed to have a list of generally useful feeds to provide it. While SubToMe has some instructions for suggesting lists of feeds, I’ve never gotten it to work the way I expected (or feed readers didn’t respect it, I’m not sure which?) But since most feed readers have feed discovery built in as a feature, I thought I’d leverage that aspect. Thus I threw into the <head> of my website a dozen or so links from some of the most typical feeds people may be most interested in from my site. Now you can click on the follow button, choose your favorite feed reader, and then your reader should provide you with a large list of feeds which you might want to subscribe. These now broadly include the full feed, a comments feed, feeds for all the individual kinds (bookmarks, likes, favorites, replies, listens, etc.) but potentially more useful: a “microblog feed” of all my status-related updates and a “linkblog feed” for all my link-related updates (generally favorites, likes, reads, and bookmarks).

Some of these sub-feeds may be useful in some feed readers which don’t yet have the ability for you to choose within the reader what you’d like to see. I suspect that in the future social readers will allow you to subscribe to my primary firehose or comments feeds, which are putting out about 85 and 125 posts a week right now, and you’ll be able to subscribe to those, but then within their interface be able to choose individual types by means of filters to more quickly see what I’ve been bookmarking, reading, listening to or watching. Then if you want to curl up with some longer reads, filter by articles; or if you just want some quick hits, filter by notes. And of course naturally you’ll be able to do this sort of filtering across your network too. I also suspect some of them will build in velocity filters and friend-proximity filters so that you’ll be able to see material from people who don’t post as often highlighted or to see people’s content based on your personal rankings or categories (math friends, knitting circle, family, reading group, IndieWeb community, book club, etc.). I’ve recently been enjoying Kicks Condor’s FraidyCat reader which touches on some of this work though it’s not what most people would consider a full-featured feed reader but might think of as a filter/reader dashboard sort of product.

Perhaps sometime in the future I’ll write a bit of code so that each individual page on my site that you visit will provide feeds in the header for all the particular categories, tags, and post kinds that appear on that page?That might make a clever, and simple little plugin, though honestly that’s the sort of code I would expect CMSes like WordPress to provide out of the box. Of course, perhaps broader adoption of microformats and clever readers will obviate the need for all these bits?

 

The importance of bread in society: the etymology of Lord

In listening to The History of the English Language, 2nd Edition by Seth Lerer (Lecture 8), I came across an interesting word etymology which foodies and particularly bread fans will appreciate.

Dr. Lerer was talking about the compression of syllables at the border of Old English and Middle English circa 1100 which occurred in such terms as hlaf weard, the warden (or guardian) of the loaf.

Who is the guardian of the loaf? The hlfaf weard << The hlaweard << the laweard << the lord. This is the etymology of the word 'lord'. Lord is the guardian of the bread, the mete-er out of bread in a cereal society.

An interesting linguistic change that tells us a lot about power, structure, religion, and society surrounding bread of the time. I suppose one could also look at Christian traditions of the time which looked at the transubstantiation of the symbolic bread of the Last Supper which is ritually turned into the body of Christ–Christ, our lord.

One can’t help noting the slang use of the word “bread” to mean “money”. Perhaps it’s time to go back and re-visit Jeremy Cherfas’ excellent podcast series Our Daily Bread?

Featured image: Bread flickr photo by adactio shared under a Creative Commons (BY) license

Dr. Lynne Kelly’s research on history, indigenous people, and memory, and a dovetail with Big History

David Christian, Fred Spier, Bill Gates, Big History Institute, and other Big History researchers and thinkers, if you’re not already aware of her, allow me to introduce you to researcher Dr. Lynne Kelly. Her work dramatically expands our understanding of pre-literate societies’ learning, memory, and particularly collective learning. Further, it makes for a strong and fascinating story that could not only be integrated into Big History; it provides links between modern and pre-modern humans and ties deeply into ideas of origin stories, mythology, and early religion; and it provides actual methods for improving student’s memories and particularly that for history.

I think her work has some profound impact on the arc of Big History, particularly with respect to Threshold 6, well into Threshold 7, and continuing into the Renaissance and the Industrial Revolution. In true big history fashion, her thesis also touches heavily on a broad array of topics including anthropology, archaeology, psychology, neuroscience, history, and education.

A broad, reasonable introduction to her work can be had in CalTech physicist Sean Carroll’s  recent podcast interview.

Another short introduction is her TEDx Melbourne talk:

A solid popular science encapsulation of her work can be found in her book The Memory Code: The Secrets of Stonehenge, Easter Island and Other Ancient Monuments (Pegasus Books, 2017).

A more thorough academic treatment of her work can naturally be found in:

With some work, I think her research could become a better foundational basis for a stronger bridge from threshold 6 into threshold 7 with dramatic impact on how we view origin stories, mythology, religion. It also has some spectacular implications for improving pedagogy and memory within our educational systems and how we view and use collective memory and even innovation in the modern world.