Bookmarked OERxDomains Conference (alt.ac.uk)
Online - 21-22 April 2021
Organised by the Association for Learning Technology and partnership with Reclaim Hosting’s Domains Conference, this special edition of the much loved event is the 12th annual conference for Open Education research, practice and policy. We are proud to incorporate a special strand hosted by the Domains Conference - bringing our two communities closer together in 2021.

OER AND Domains?! I’m totally in for this.

Anyone want to collaborate on a slate of IndieWeb-related topics to submit for this? Proposals are due in late January and it would be interesting to have a handful of IndieWeb tech and some of our experiments discussed at this conference.

Who’s game? Greg McVerry, William Ian O’Byrne, Kimberly Hirsh, Mark Aaron Davis, Cathie LeBlanc, Kathleen Fitzpatrick, Ken Bauer, Davey Moloney, Will Monroe?

Replied to a tweet by Stian Håklev (Twitter)

We totally need to schedule a follow up to the IndieWeb Gardens & Streams session from early 2020 to discuss the efflorescence of platforms in this space. I’d love to see more of them supporting Webmention for garden-to-garden interactions.

My poor little website passed 23,000 comments/replies/reactions yesterday. This is in tremendous part due to webmentions and the ability to collect the conversation about my content across social spaces.

I’m wondering when comments will pass the number of posts (currently 27,648)?

Automating syndication of reply contexts in Twitter Cards using OGP metacrap and plugins in WordPress

A Metacrap Problem

It’s metacrap–I know, I know–but I’ve been thinking about easy ways to use Open Graph Protocol meta data to add contextual Twitter cards to some of my content when syndicating posts to Twitter. My goal is to leverage the speed and ease-of-use of Micropub clients while doing as little as possible manually, but achieving as much parity between posts on multiple sites. 

I’m particularly keen to do this to syndicate/share more of the articles I read and post about on my site without adding additional manual work on my own part.

Outline of Some Resources

The Post Kinds plugin for WordPress parses URLs for me and pulls in data to create reply contexts for a variety of posts like bookmarks, reads, watches, listens, etc. Since Post Kinds doesn’t display featured images (yet), I’ve also been using the External Featured Image plugin to display the featured images from the original to add to the reply context of my posts as well. 

In addition to all these I’ve been using the All in One SEO plugin to easily add an SEO layer to posts without having to do much thinking about it. AIOSEO recently upgraded their UI and features in the last year, and yesterday I upgraded to the newest v4.0+. One of the new features it’s got is the ability to add default fields or pull in pre-existing custom fields to output OGP meta data. 

Start of a Solution

So I got the idea that since Post Kinds and External Featured Image plugins are pulling in and displaying the sort of data I’d like to show in Twitter cards, I figured why not use them? While metacrap is a DRY violation, the fact that it’s automated for me and is based on data I’m actually showing visually on my website makes it feel much less dirty. It also has the benefit that it helps make some of my syndicated content look and feel on Twitter, more like it does on my website. This is also a problem since Twitter hampers how much data I can syndicate in a single post.

I’ve still got some issues about how to deal with the Post Kinds data, but after a bit of digging around, I discovered the image URL for External Featured Image plugin is hiding in the _dcms_eufi_img field. So I can make the default Twitter settings in AIOSEO pull the external image by setting Default Post Image Source to Image from Custom Field and set the Post Custom Field Name to _dcms_eufi_img

Since a lot of my posts are reads, bookmarks, etc., this works well, but I can easily override the settings for articles or other custom posts which I make less frequently. 

Hopefully I can figure out the settings for Post Kinds to get the rest of the default fields to map across. I’m happy to hear ideas on what field names I’d need to use to get the Post Kinds Name and Summary/Quote fields to map over for the og:title and og:description respectively. Ideally I can manage to get it done without needing to get a subscription to the pro version of AIOSEO which also has support for custom taxonomies which is how Post Kinds works.

Since my theme has relatively solid microformats support, and I have plugin infrastructure to allow easy syndication from my website to Twitter through micropub clients, this last bit for creating Twitter reply contexts helps close some of the loop for me in my syndication workflow while keeping as much context across platforms.

Example

Here’s a visual example of a native post on my site and the corresponding syndicated copy on Twitter. There are some differences, mostly because I don’t have as much control of the appearance on Twitter as I do on my own site, but they’re about as close as I can get them with minimal work.

screen capture of a tweet with my thought at the top and a Twitter card underneath it including the reply context of the article I'm responding to

screencapture of a read post on my website for a Slate article with a reply context at the top and my response to it just below

I just ran across Contently, a silo-based service specifically made for journalists, freelancers, and writers to aggregate their content into a portfolio as well as to help them with their careers. An intriguing concept that can use some additional UI research for integrating into an author platform.

Michael Marshall in Stories by Michael Marshall : Contently ()

Non-technical IndieWeb: Fun, Creativity, Community, and “Content”

I resemble that remark.

rakhim
–Credit: Rakhim

Um…

Er… I mean…

I resent that remark. 😉 

The point of having a website is putting something interesting on it right?

The IndieWeb wiki does tend toward the technical, but many of us are working toward remedying that. For those who haven’t found them yet, there are some pages around a variety of topics like poetry, crafts, hobbies, music, writing, journalism, education, and a variety of other businesses and use cases. How we don’t have one on art (yet) is beyond me… Hopefully these might help us begin to use our sites instead of incessantly building them, though this can be a happy hobby if you enjoy it.

If you’ve got an IndieWeb friendly site, why not use it to interact with others? Help aggregate people around other things in which you’re interested. One might interact with the micro.blog community around any of their tagmoji. (I’m personally hoping there will be one for the stationery, pen, and typewriter crowd.) One might also find some community on any of the various stubs (or by creating new stubs) on IndieWeb.xyz

For more practical advice and to borrow a proverbial page from the movie Finding Forrester, perhaps reading others’ words and borrowing or replying to them may also help you along. I find that starting and ending everything from my own website means that I’m never at a loss for content to consume or create. Just start a conversation, even if it’s just with yourself. This started out as a short reply, but grew into a longer post aggregating various ideas I’ve had banging around my head this month.

Rachel Syme recently made me think about “old school blogs”, and as interesting as her question was, I would recommend against getting stuck in that framing which can be a trap that limits your creativity. It’s your site, do what you want with it. Don’t make it a single topic. That will make it feel like work to use it.

The ever-wise Charlie Owen reminds of this and suggests a solution for others reading our content. 

Of course if building websites is your passion and you want to make a new one on a new platform every week, that’s cool too. Perhaps you could document the continuing refreshing of the process each time and that could be your content?

Of course if this isn’t enough, I’ll also recommend Matthias Ott‘s advice to Make it Personal. And for those with a more technical bent, Simon Collison has a recent and interesting take on how we might be a bit more creative with our technical skills in This Used to be Our Playground.

In any case, good luck and remember to have some fun!

Crediting your own website when syndicating to Mastodon with WordPress plugins

I’ve been tinkering around with methods to automatically syndicate (POSSE) content from my personal website to Mastodon. I’ve been working at making a custom plugin which is far from finished. But a test post I made the other day, caught a few people’s attention[1][2]

I was trying to syndicate from my website so that the post on Mastodon would credit my website for the post and link back to my homepage as the application that made the post. You’ll notice at the bottom of the post there’s the post date and a globe icon, which indicates the post is public, followed by my website name ‘BoffoSocko.com’ and details about replies, reposts, and favorites.

screen capture of a Mastodon post which gives credit to Boffosocko.com at the bottom of the post.

I assuredly won’t release a public plugin for WordPress that does this. But since some have asked how I did it, I thought I’d share some of the internals of a few WordPress plugins that one can quickly modify to achieve the same thing.

That I can currently see, there are three plugins in the repository that will allow one to syndicate content to a variety of Mastodon instances. They are Mastodon Autopost, Mastodon Auto Share, and Share on Mastodon. The first two are closely related and essentially replicate the same codebase.

Similar to using Twitter’s API to crosspost, Mastodon is looking for two bits of information when an application is registered: a client name and a website URL. 

Mastodon Autopost and Mastodon Auto Share, both have a file called client.php which define these two variables. 

public function register_app($redirect_uri) {
  $response = $this->_post('/api/v1/apps', array(
    'client_name' => 'Mastodon Share for WordPress',
    'redirect_uris' => $redirect_uri,
    'scopes' => 'write:statuses write:media read:accounts',
    'website' => $this->instance_url
  ));

You can edit this file with a text editor to change the 'client_name' from 'Mastodon Share for WordPress' to 'Anything You Want'. If you’re in a joking mood, maybe change it to 'Twitter'?

To change the URL so that the link on the client_name directs to your website, you’ll want to change the line 'website' => $this->instance_url.

In particular change $this->instance_url to 'https://example.com' where example.com would be your website. I’ll note that $this->instance_url on this line in the original plugin is a bug. If left alone, it points the URL to your home Mastodon instance instead of to the more logical https://wordpress.org/plugins/autopost-to-mastodon/ where the plugin lives. 

If you prefer using Jan Boddez‘ excellent plugin, you’ll want to do something similar, except in that case you’ll want to change a file named class-options-handler.php in the includes folder.

Here you’ll want something like:

'client_name'   => __( 'Example.com' ),

But note that Boddez doesn’t have a similar bug, so the website line

'website' => home_url(),

is already correctly defined so that your website will automatically be linked without any changes to it.

If you’re already using one of these plugins and manually modify them, note that you’ll probably need to re-authorize the plugin so that the changes propagate.

Quoted a tweet by Amy CollierAmy Collier (Twitter)
There are some great resources and material here. Signing up today.
Replied to a tweet (Twitter)
The original Press This spun itself off as a stand-alone plugin, so look there first to recreate its functionality. If that doesn’t suit, try David Shanske’s Post Kinds plugin which incorporates a lot of Press This functionality and extends it quite a bit. You can create bookmarklets with it that work well (including mobile).

Another option is Tom Critchlow and Toby Shorin’s Quotebacks which you might leverage though they won’t necessarily create new posts on your behalf.

If you’ve got some programming experience, you might be able to do something interesting with a set of bookmarklets I just made too.

I think I’ve also shared most of my documented workflow for using Hypothes.is for some of this too, though that may require some work on your behalf.

Another good option is to add Micropub functionality and use some clients like Quill, Omnibear, or others in conjunction with the Post Kinds plugin. I think Quill may also have some useful bookmarklets you can use with it as well.

Replied to Tags vs labels by Amit (amitp.blogspot.com)

But are “labels” and “tags” the same thing?

A long time ago, I read that they're different. The distinction as described was:

  • “labels” are when you mark your own content (first party)
  • “tags” are when you mark other people's content (third party)
I like the framing you’ve made in the definition of “label” and “tag”. I wish the distinction was respected by a broader range of people and programs as it could be more useful that way.

I’ve mentioned a subtle way of doing this on my site before: 

I also find that I have a subtle differentiation using singular versus plural tags which I think I’m generally using to differentiate between the idea of “mine” versus “others”. Thus the (singular) tag for “commonplace book” should be a reference to my particular commonplace book versus the (plural) tag “commonplace books” which I use to reference either the generic idea or the specific commonplace books of others. Sadly I don’t think I apply this “rule” consistently either, but hope to do so in the future.

Now I’m wishing that I had a separate “labels” taxonomy on my site to distinguish between “mine” and “theirs”. In using the Post Kinds Plugin for WordPress, I’m passively collecting labels (though it’s called tags) others put on their content (which is currently hidden in my internal metadata) and that is separate from the metadata tags I place on it. Being able to separately search the two could be a powerful feature.

Ryan Barrett in bookmark of Amit’s Thoughts: Tags vs labels ()

The real super-power feature missing from Roam Research?

My public Roam Research notebook being able to converse with someone elses’ (or any other page on the internet for that matter). Webmention support might solve this.

#RoamCult

(See also related conversation at https://boffosocko.com/2020/12/09/55782252/)

Browser Bookmarklets for Giving Credit

I’ve been thinking more lately about giving credit on my own website, particularly in cases where the context of things I’m reading has some additional context based on where I originally saw them. I’d also like to give people I follow credit as the source by which my own content is aggregated.

Earlier today I tinkered around with some ideas relating to the old Curator’s Code which I revisit from time to time. I outlined some details, data fields, UI, and some pseudo-code to actually build it into a WordPress plugin. Then I thought I ought to check the repository where I discovered that someone had previously made one. Unfortunately it was withdrawn from the repository. I suspect its that they didn’t want to continue to support it moving into the Gutenberg era. (It still works with the classic editor.)

I don’t give credit on my site often enough in large part because it isn’t an easier thing to do when quickly posting some of the smaller bits of content. They say “manual until it hurts“, and doing this has just hurt too much for too long. Toward that end I thought I’d make a couple of quick bookmarklets for cutting and pasting text into my site. It’s not as good as a better custom UI, but it’ll work and could potentially work well for others.

These bookmarklets aren’t any great shakes and perhaps (hopefully?) someone with more JavaScript chops than I have can greatly improve upon them to add or modify some of the bits and automate things a bit better. In particular, I’m sure there’s a way to find the original publication date on a page and pull that data out, but currently I could only figure out how to find the last modified date using document.lastModified because I couldn’t find the other. I’d also prefer to have a way to automatically find the author(s) as well, but JS isn’t my best friend.

Instructions for use

Create two bookmarks in your browser’s bookmark bar. Give them convenient names like “via” and “hat tip” and add the snippets of code respectively into the URL fields. On a site you want to give credit to, highlight the name of the author of the post and click the bookmarklet. You’ll see a pop up for some text which you can then cut and paste into your post to give the credit. You can obviously edit the text if necessary.

If your site supports sending Webmention notifications, then when the post is published, the cited page will get a notification of your post.

Bookmarklet code

Below are snippets of code that the bookmarklets are running (for transparency’s sake).

javascript:(function(){let text=""; if(window.getSelection()!=''){text=window.getSelection().toString()+"\n";}prompt("Press Ctrl+C, Escape","<p><small><cite class="h-cite via"><abbr title="via">ᔥ</abbr> <span class="p-author h-card">"+text+"</span> in <a class="u-url p-name" href=""+location.href+"" target="_blank" rel="noopener noreferrer" >"+document.title+"</a> (<time class="dt-published">"+document.lastModified+"</time>)</cite></small></p>");})()
javascript:(function(){let text=""; if(window.getSelection()!=''){text=window.getSelection().toString()+"\n";}prompt("Press Ctrl+C, Escape","<p><small><cite class="h-cite ht"><abbr title="hat tip">↬</abbr> <span class="p-author h-card">"+text+"</span> in <a class="u-url p-name" href=""+location.href+"" target="_blank" rel="noopener noreferrer" >"+document.title+"</a> (<time class="dt-published">"+document.lastModified+"</time>)</cite></small></p>");})()

Example

Here’s an example of what it looks like on my site:

 Maria Popova with input from Tina Roth Eisenberg in curator’s ǝpoɔ ()

Who will you credit?

Lemmy, a clever-looking link/conversation hub

Christine’s recent note that she was only getting webmentions from Lobsters and her update with a webmention example from Maya reminded me about the coolness that is Lemmy, a link aggregator for the Fediverse. I notice that Maya often syndicates her content there. 

I haven’t looked deeply into Lemmy’s internals yet. It looks like it has a similar community/aggregation hub functionality that Lobsters and Reddit has. It also looks like it functions like news.indieweb.org or indieweb.xyz. One thing I’d be curious to know is if Maya and gang has any plans for Lemmy to allow users to receive webmentions to comments on their posts on Lemmy. Lobsters implemented this in 2018. Or, with a bit more work, they might allow people to post to Lemmy using Webmention as a syndication mechanism the way indieweb.xyz or news.indieweb.org do.

Of course it looks like they might also benefit from IndieAuth login so that other accounts in the Fediverse might allow them to log in without needing yet another account. I recall Aaron Parecki doing a video about IndieAuth and ActivityPub at the ActivityPub conference recently. This would make implementation easier.

I can’t wait to dig into Lemmy a bit more. It would be cool to have another IndieWeb friendly community hub (and particularly one in the Fediverse) for discovery, discussion, and interaction in the world. We need more projects like these to give people healthier alternatives to Facebook and Twitter.