Domains, power, the commons, credit, SEO, and some code implications

How to provide better credit on the web using the standard rel=“canonical” by looking at an example from the Open Learner Patchbook

A couple of weeks back, I noticed and began following Cassie Nooyen when I became aware of her at the Domains 2019 conference which I followed fairly closely online.

She was a presenter and wrote a couple of nice follow up pieces about her experiences on her website. I bookmarked one of them to read later, and then two days later I came across this tweet by Terry Green, who had also apparently noticed her post:

https://platform.twitter.com/widgets.js

But I was surprised to see the link in the tweet points to a different post in the Open Learner Patchbook, which is an interesting site in and of itself.

This means that there are now at least two full copies of Cassie’s post online:

While I didn’t see a Creative Commons notice on Cassie’s original or any mention of permissions or even a link to the source of the original on the copy on the Open Patchbook, I don’t doubt that Terry asked Cassie for permission to post a copy of her work on his site. I’ll also suspect that it may have been the case that Cassie might not have wanted any attention drawn to herself or her post on her site and may have eschewed a link to it. I will note that the Open Patchbook did have a link to her Twitter presence as a means of credit. (I’ll still maintain that people should be preferring links to their own domain over Twitter for credits like these–take back your power!)

Even with these crediting caveats aside, there’s a subtle technical piece hiding here relating to search engines and search engine optimization that many in the Domain of One’s Own space may not realize exists, or if they do they may not be sure how to fix. This technical subtlety is that search engines attempt to assign proper credit too. As a result there’s a very high chance that Open Patchbook could rank higher in search for Cassie’s own post than Cassie’s original. As researchers and educators we’d obviously vastly prefer the original to get the credit. So what’s going on here?

Search engines use a web standard known as rel=“canonical”, a microformat which is most often found in the HTML <header> of a web page. If we view the current source of the copy on the Open Learner Patchbook, we’ll see the following:

<link rel="canonical" href="http://openlearnerpatchbook.org/technology/patch-twenty-five-my-domain-my-place-to-grow/" />

According to the Microformats wiki:

By adding rel=“canonical” to a hyperlink, a page indicates that the destination of that hyperlink should be considered the preferred or definitive version of the current page. This helps search engines avoid duplicate content, and is useful for deciding how to link to a page when citing it.

In the case of our example of Cassie’s post, search engines will treat the two pages as completely separate, but will suspect that one is a duplicate of the other. This could have dramatic consequences for one or the other sites in which search engines will choose one to prefer over the other, and, in some cases, search engines may penalize one site for having duplicate content and not stating that fact (in their metadata). Typically this would have more drastic and averse consequences for Cassie’s original in comparison with an institutional site. 

How do we fix the injustice of this metadata? 

There are a variety of ways, but I’ll focus on several in the WordPress space. 

WordPress core has built-in functionality that should set the permalink for a particular page as the canonical one. This is why the Open Patchbook page displays the incorrect canonical link. Since most people are likely to already have an SEO related plugin installed on their site and almost all of them have this capability, this is likely the quickest and easiest method for being able to change canonical links for pages and posts. Two popular choices for this are Yoast and All in One SEO which have simple settings for inputting and saving alternate canonical URLs. Yoast documents the steps pretty well, so I’ll provide an example using All in One SEO:

  • If not done already, click the checkbox for canonical URLs in the “General Settings” section for the plugin generally found at /wp-admin/admin.php?page=all-in-one-seo-pack%2Faioseop_class.php.
  • For the post (or page) in question, within the All in One SEO metabox in the admin interface (pictured) put the full URL of the original posts’ location.
  • (Re-)publish the post.

Screenshot of the AIOSEO metabox with the field for the Canonical URL outlined in red

If you’re using another SEO plugin, it likely handles canonical URLs similarly, so check their documentation.

For aggregation websites, like the Open Learner Patchbook, there’s also another solid option for not only setting the canonical URL, but for more quickly copying the original post as well. In these cases I love PressForward, a WordPress plugin from the Roy Rosenzweig Center for History and New Media which was designed with the education space in mind. The plugin allows one to quickly gather, organize, and republish content from other places on the web. It does so in a smart and ethical way and provides ample opportunity for providing appropriate citations as well as, for our purposes, setting the original URL as the canonical one. Because PressForward is such a powerful and diverse tool (as well as a built-in feed reader for your WordPress website), I’ll refer users to their excellent documentations.

Another useful reason I’ll mention for using rel-canonical mark up is that I’ve seen cases in which using it will allow other web standards-based tools like Hypothes.is to match pages for highlights and annotations. I suspect that if the Open Patchwork page did have the canonical link specified that any annotations made on it with Hypothes.is should mirror properly on the original as well (and vice-versa). 

I also suspect that there are some valuable uses of this sort of small metadata-based mark up within the Open Educational Resources (OER) space.

In short, when copying and reposting content from an original source online, it’s both courteous and useful to mark the copy as such by putting a tag onto the URL of the original to provide it with the full credit as the canonical source.

Domains, power, the commons, credit, SEO, and some code implications was originally published on Chris Aldrich

Advertisements

Domains 2019 Reflections from Afar

My OPML Domains Project

Not being able to attend Domains 2019 in person, I was bound and determined to attend as much of it as I could manage remotely. A lot of this revolved around following the hashtag for the conference, watching the Virtually Connecting sessions, interacting online, and starting to watch the archived videos after-the-fact. Even with all of this, for a while I had been meaning to flesh out my ability to follow the domains (aka websites) of other attendees and people in the space. Currently the easiest way (for me) to do this is via RSS with a feed reader, so I began collecting feeds of those from the Twitter list of Domains ’17 and Domains ’19 attendees as well as others in the education-related space who tweet about A Domain of One’s Own or IndieWeb. In some sense, I would be doing some additional aggregation work on expanding my blogroll, or, as I call it now, my following page since it’s much too large and diverse to fit into a sidebar on my website.

For some brief background, my following page is built on some old functionality in WordPress core that has since been hidden. I’m using the old Links Manager for collecting links and feeds of people, projects, groups, and institutions. This link manager creates standard OPML files, which WordPress can break up by categories, that can easily be imported/exported into most standard feed readers. Even better, some feed readers like Inoreader, support OPML subscriptions, so one could subscribe to my OPML file, and any time I update it in the future with new subscriptions, your feed reader would automatically update to follow those as well. I use this functionality in my own Inoreader account, so that any new subscriptions I add to my own site are simply synced to my feed reader without needing to be separately added or updated.

The best part of creating such a list and publishing it in a standard format is that you, dear reader, don’t need to spend the several hours I did to find, curate, and compile the list to recreate it for yourself, but you can now download it, modify it if necessary, and have a copy for yourself in just a few minutes. (Toward that end, I’m also happy to update it or make additions if others think it’s missing anyone interesting in the space–feedback, questions, and comments are heartily encouraged.) You can see a human-readable version of the list at this link, or find the computer parse-able/feed reader subscribe-able link here.

To make it explicit, I’ll also note that these lists also help me to keep up with people and changes in the timeframe between conferences.

Anecdotal Domains observations

In executing this OPML project I noticed some interesting things about the Domains community at large (or at least those who are avid enough to travel and attend in person or actively engage online). I’ll lay these out below. Perhaps at a future date, I’ll do a more explicit capture of the data with some analysis.

The largest majority of sites I came across were, unsurprisingly, WordPress-based, which made it much easier to find RSS feeds to read/consume material. I could simply take a domain name and add /feed/ to the end of the URL, and voilà, a relatively quick follow!

There are a lot of people whose sites didn’t have obvious links to their feeds. To me this is a desperate tragedy for the open web. We’re already behind the eight ball compared to social media and corporate controlled sites, why make it harder for people to read/consume our content from our own domains? And as if to add insult to injury, the places on one’s website where an RSS feed link/icon would typically live were instead populated by links to corporate social media like Facebook, Twitter, and Instagram. In a few cases I also saw legacy links to Google+ which ended service and disappeared from the web along with a tremendous number of online identities and personal data on April 2, 2019. (Here’s a reminder to remove those if you’ve forgotten.) For those who are also facing this problem, there’s a fantastic service called SubToMe that has a universal follow button that can be installed or which works well with a browser bookmarklet and a wide variety of feed readers.

I was thrilled to see a few people were using interesting alternate content management systems/site generators like WithKnown and Grav. There were  also several people who had branched out to static site generators (sites without a database). This sort of plurality is a great thing for the community and competition in the space for sites, design, user experience, etc. is awesome. It’s thrilling to see people in the Domains space taking advantage of alternate options, experimenting with them, and using them in the wild.

https://platform.twitter.com/widgets.js

I’ll note that I did see a few poor souls who were using Wix. I know there was at least one warning about Wix at the conference, but in case it wasn’t stated explicitly, Wix does not support exporting data, which makes any potential future migration of sites difficult. Definitely don’t use it for any extended writing, as cutting and pasting more than a few simple static pages becomes onerous. To make matters worse, Wix doesn’t offer any sort of back up service, so if they chose to shut your site off for any reason, you’d be completely out of luck. No back up + no export = I couldn’t recommend using.

If your account or any of your services are cancelled, it may result in loss of content and data. You are responsible to back up your data and materials. —Wix Terms of Use

I also noticed a few people had generic domain names that they didn’t really own (and not even in the sense of rental ownership). Here I’m talking about domain names of the form username.domainsproject.com. While I’m glad that they have a domain that they can use and generally control, it’s not one that they can truly exert full ownership over. (They just can’t pick it up and take it with them.) Even if they could export/import their data to another service or even a different content management system, all their old links would immediately disappear from the web. In the case of students, while it’s nice that their school may provide this space, it is more problematic for data portability and longevity on the web that they’ll eventually lose that institutional domain name when they graduate. On the other hand, if you have something like yourname.com as your digital home, you can export/import, change content management services, hosting companies, etc. and all your content will still resolve and you’ll be imminently more find-able by your friends and colleagues. This choice is essentially the internet equivalent of changing cellular providers from Sprint to AT&T but taking your phone number with you–you may change providers, but people will still know where to find you without being any the wiser about your service provider changes. I think that for allowing students and faculty the ability to more easily move their content and their sites, Domains projects should require individual custom domains.

If you don’t own/control your physical domain name, you’re prone to lose a lot of value built up in your permalinks. I’m also reminded of here of the situation encountered by faculty who move from one university to another. (Congratulations by the way to Martha Burtis on the pending move to Plymouth State. You’ll notice she won’t face this problem.)  There’s also the situation of Matthew Green, a security researcher at Johns Hopkins whose institutional website was taken down by his university when the National Security Agency flagged an apparent issue. Fortunately in his case, he had his own separate domain name and content on an external server and his institutional account was just a mirrored copy of his own domain.

If you’ve got it, flaunt it.
—Mel Brooks from The Producers (1968), obviously with the it being a referent to A Domain of One’s Own.

Also during my project, I noted that quite a lot of people don’t list their own personal/professional domains within their Twitter or other social media profiles. This seems a glaring omission particularly for at least one whose Twitter bio creatively and proactively claims that they’re an avid proponent of A Domain of One’s Own.

And finally there were a small–but still reasonable–number of people within the community for whom I couldn’t find their domain at all! A small number assuredly are new to the space or exploring it, and so I’d give a pass, but I was honestly shocked that some just didn’t.

(Caveat: I’ll freely admit that the value of Domains is that one has ultimate control including the right not to have or use one or even to have a private, hidden, and completely locked down one, just the way that Dalton chose not to walk in the conformity scene in The Dead Poet’s Society. But even with this in mind, how can we ethically recommend this pathway to students, friends, and colleagues if we’re not willing to participate ourselves?)

Too much Twitter & a challenge for the next Domains Conference

One of the things that shocked me most at a working conference about the idea of A Domain of One’s Own within education where there was more than significant time given to the ideas of privacy, tracking, and surveillance, was the extent that nearly everyone present gave up their identity, authority, and digital autonomy to Twitter, a company which actively represents almost every version of the poor ethics, surveillance, tracking, and design choices we all abhor within the edtech space.

Why weren’t people proactively using their own domains to communicate instead? Why weren’t their notes, observations, highlights, bookmarks, likes, reposts, etc. posted to their own websites? Isn’t that part of what we’re in all this for?!

One of the shining examples from Domains 2019 that I caught as it was occurring was John Stewart’s site where he was aggregating talk titles, abstracts, notes, and other details relevant to himself and his practice. He then published them in the open and syndicated the copies to Twitter where the rest of the conversation seemed to be happening. His living notebook– or digital commmonplace book if you will–is of immense value not only to him, but to all who are able to access it. But you may ask, “Chris, didn’t you notice them on Twitter first?” In fact, I did not! I caught them because I was following the live feed of some of the researchers, educators, and technologists I follow in my feed reader using the OPML files mentioned above. I would submit, especially as a remote participant/follower of the conversation, that his individual posts were worth 50 or more individual tweets. Just the additional context they contained made them proverbially worth their weight in gold.

Perhaps for the next conference, we might build a planet or site that could aggregate all the feeds of people’s domains using their categories/tags or other means to create our own version of the Twitter stream? Alternately, by that time, I suspect that work on some of the new IndieWeb readers will have solidified to allow people to read feeds and interact with that content directly and immediately in much the way Twitter works now except that all the interaction will occur on our own domains.

https://platform.twitter.com/widgets.js

As educators, one of the most valuable things we can and should do is model appropriate behavior for students. I think it’s high time that when attending a professional conference about A Domain of One’s Own that we all ought to be actively doing it using our own domains. Maybe we could even quit putting our Twitter handles on our slides, and just put our domain names on them instead?

Of course, I wouldn’t and couldn’t suggest or even ask others to do this if I weren’t willing and able to do it myself.  So as a trial and proof of concept, I’ve actively posted all my interactions related to Domains 2019 that I was interested in to my own website using the tag Domains 2019.  At that URL, you’ll find all the things I liked and bookmarked, as well as the bits of conversation on Twitter and others’ sites that I’ve commented on or replied to. All of it originated on my own domain, and, when it appeared on Twitter, it was syndicated only secondarily so that others would see it since that was where the conversation was generally being aggregated. You can almost go back and recreate my entire Domains 2019 experience in real time by following my posts, notes, and details on my personal website.

So, next time around can we make an attempt to dump Twitter!? The technology for pulling it off certainly already exists, and is reasonably well-supported by WordPress, WithKnown, Grav, and even some of the static site generators I noticed in my brief survey above. (Wix obviously doesn’t even come close…)

I’m more than happy to help people build and flesh out the infrastructure necessary to try to make the jump. Even if just a few of us began doing it, we could serve as that all-important model for others as well as for our students and other constituencies. With a bit of help and effort before the next Domains Conference, I’ll bet we could collectively pull it off. I think many of us are either well- or even over-versed in the toxicities and surveillance underpinnings of social media, learning management systems, and other digital products in the edtech space, but now we ought to attempt a move away from it with an infrastructure that is our own–our Domains.

Domains 2019 Reflections from Afar was originally published on Chris Aldrich

From Following Posts and Blogrolls (Following Pages) with OPML to Microsub Servers and Readers

From Following Posts and Blogrolls (Following Pages) with OPML to Microsub Servers and Readers

I’m still tinkering away at pathways for following people (and websites) on the open web (in my case within WordPress). I’m doing it with an eye toward making some of the UI and infrastructure easier in light of the current fleet of Microsub servers and readers that will enable easier social reading without the centralized reliance on services like Facebook, Twitter, Instagram, Snapchat, Medium, LinkedIn, et al.

If you haven’t been following along, here are some relevant pieces for background:

Generally I’ve been adding data into my Following Page (aka blogroll on steroids) using the old WordPress Links Manager pseudo-manually. (There’s also a way to bulk import to it via OPML, using the WordPress Tools Menu or via /wp-admin/import.php?import=opml). The old Links Manager functionality in WordPress had a bookmarklet to add links to it quickly, though it currently only seems to add a minimal set–typically just the URL and the page title. Perhaps someone with stronger JavaScript skills than I possess could improve on it or integrate/leverage some of David Shanske’s Parse This work into such a bookmark to pull more data out of pages (via Microformats, Schema.org, Open Graph Protocol, or Dublin Core meta) to pre-fill the Links Manager with more metadata including page feeds, which I now understand Parse This does in the past month or so. (If more than one feed is found, they could be added in comma separated form to the “Notes” section and the user could cut/paste the appropriate one into the feed section.) Since I spent some significant time trying to find/dig up that old bookmarklet, I’ll mention that it can be found in the Restore Lost Functionality plugin (along with many other goodies) and a related version also exists in the Link Library plugin, though on a small test I found it only pulled in the URL.

Since it wasn’t completely intuitive to find, I’ll include the JavaScript snippet for the Links Manager bookmarklet below, though note that the URL hard coded into it is for example.com, so change that part if you’re modifying for your own use. (I haven’t tested it, but it may require the Press This plugin which replaces some of the functionality that was taken out of WordPress core in version 4.9. It will certainly require one to enable using the Links Manager either via code or via plugin.)

javascript:void(linkmanpopup=window.open('https://exanple.com/wp-admin/link-add.php?action=popup&linkurl='+escape(location.href)+'&name='+escape(document.title),'LinkManager','scrollbars=yes,width=750,height=550,left=15,top=15,status=yes,resizable=yes'));linkmanpopup.focus();window.focus();linkmanpopup.focus();

Since I’ve been digging around a bit, I’ll note that Yannick Lefebvre’s Link Library plugin seems to have a similar sort of functionality to Links Manager and adds in the ability to add a variety of additional data fields including tags, which Ton Zijlstra mentions he would like (and I wouldn’t mind either). Unfortunately I’m not seeing any OPML functionality in the plugin, so it wins at doing display (with a huge variety of settings) for a stand-alone blogroll, but it may fail at the data portability for doing the additional OPML portion we’ve been looking at. Of course I’m happy to be corrected, but I don’t see anything in the documentation or a cursory glance at the code.

In the most ideal world, I’d love to be able to use the Post Kinds Plugin to create follow posts (see my examples). This plugin is already able to generally use bookmarklet functionality to pull in a variety of meta data using the Parse This code which is also built into Post Kinds.

It would be nice if these follow posts would also copy their data into the Links Manager (to keep things DRY), so that the blogroll and the OPML files are automatically updated all at once. (Barring Post Kinds transferring the data, it would be nice to have an improved bookmarklet for pulling data into the Links Manager piece directly.)

Naturally having the ability for these OPML files be readable/usable by Jack Jamieson’s forthcoming Yarns Microsub Server for WordPress (for use with social readers) would be phenomenal. (I believe there are already one or two OPML to h-feed converters for Microsub in the wild.) All of this would be a nice end -to-end solution for quickly and easily following people (or sites) with a variety of feeds and feed types (RSS, Atom, JSONfeed, h-feed).

An additional refinement of the blogroll display portion would be to have that page display as an h-feed of h-entries each including properly marked up h-cards with appropriate microformats and discoverable RSS feeds to make it easier for other sites to find and use that data. (This may be a more IndieWeb-based method of displaying such a page compared with the OPML spec.) I’ll also note that the Links Manager uses v1 of the OPML spec and it would potentially be nice to have an update on that as well for newer discovery tools/methods like Dave Winer’s Share Your OPML Subscription list, which I’m noting seems to be down/not functioning at the moment.

From Following Posts and Blogrolls (Following Pages) with OPML to Microsub Servers and Readers was originally published on Chris Aldrich

Quickly making watch posts on my website

I was reading about how Cathie LeBlanc sometimes felt overwhelmed about logging the movies she’d recently seen:

I have to be better about posting my movie “reviews” more quickly. I get overwhelmed thinking that I need to write something about the movie when really the whole point of me doing these reviews is just to record what movies I’ve seen. So this month, I’m writing very little about each of these viewings.

I always had this problem too and finding quick and easy ways of posting them before I forgot became part of the solution. I’m not sure I’ve fully documented what I’ve been doing, but it’s slowly changed over time, so I thought I’d take a moment to write down some of the faster methods I use or have used.

One can always use the WordPress mobile posting app, bookmarklets in conjunction with Post Kinds, or even posting via email, but it usually takes a few minutes and can distract from conversations and family/friends when they’re around. Generally I’m looking to immediately capture the title of the film/tv show, the date/time stamp, and maybe the location. Later on, when I’ve got a few extra minutes, I’ll come back and optionally add details/context like poster art, cast, crew, etc. and a mini review with a rating. The method you use will depend on what kind of display you want and how much detail you’d like. At the end of the day, do what works best for you.

Checkin Method

I’m a relatively avid user of the Swarm app (fka Foursquare), so I’ll often take a photo of the movie poster, ticket, theater/other while I’m at the theater and then quickly checkin on my phone. Swarm typically has some interface to indicate which movie I’m seeing when I check into movie theaters. Otherwise it’s pretty easy to manually type things in while I’m waiting for the show to start. Once the movie is over I can discretely can go back to the checkin and add a few quick comments and a rating without disturbing the rest of the party, otherwise I’ll revisit it later.

To get this all on my website I’ve set up the Micropub plugin and configured OwnYourSwarm (for public/private posting–you choose), and the service takes care of posting all the data for me as a checkin so that I don’t forget. In the end it’s usually less than 10 seconds, and I’ve got the data I need as it happens.

Traditional PESOS watch method using IFTTT

This alternate PESOS method can be done using popular services like IMDb.com or Letterboxd.com and relies on using RSS feeds from them to pipe content to my site using IFTTT.com. (Other silo services may be able to do this as well.) Most often I send the URLs of movies/tv shows of what I watch from IMDb to my Reading.am account which has an RSS feed to trigger IFTTT.com that, in turn, creates a draft post on my website. (If only IMDB.com had a usable RSS feed, I could skip the Reading.am account. Typically I’ll search for the movie on IMDb, share that from my browser to may email client and email it to a custom Reading.am email address that autoposts it to my Reading.am account.) Later I can peek in on it, add a mini-review and rating if I like, and publish publicly or not. Letterboxd can be used similarly, but it has the added benefit of having a rating system built in so it can send that data as well.

Hopefully they’ll resolve with a logged in account, so here are the two IFTTT.com recipes I’m using as reference:

(If you can’t access the recipes to recreate your own, let me know, and I’ll manually delineate all the relevant settings.)

Both methods will work without it, but I’m also using the Post Kinds plugin to create explicit watch posts which have a nice contextual presentation which I kind of like. It also has the ability to parse URLs to create the context quickly, so if you put in an IMDb or Letterboxd URL, it will fetch artwork, cast, description, etc. automatically and there’s no need to cut/paste.

Examples

To get some idea, here are some interesting examples of these methods.

If others have better/faster methods, I’d love to hear them or see them documented. Perhaps one day someone (or maybe even IMDb or Letterboxd) will build a custom Micropub client specifically for watch posts (something akin to Teacup for food/drink or Indiebookclub for reading) that will automatically poll the data related to a film/television title and post it to one’s site?

Quickly making watch posts on my website was originally published on Chris Aldrich

🔖 Embedded in the Fabric: Georgetown Domains and the Master’s of Learning, Design, and Technology | Lee Skallerup Bessette, Randal Ellsworth

hat tip:

https://platform.twitter.com/widgets.js

🔖 Embedded in the Fabric: Georgetown Domains and the Master’s of Learning, Design, and Technology | Lee Skallerup Bessette, Randal Ellsworth was originally published on Chris Aldrich