Checked into Beyond WordPress – easy WP automation and integration with no coding
Sessions after lunch starting a few minutes late.

Sabrina Liao is looking primarily looking at Zapier, Integromat, IFTTT, automate.io.

I use a huge number of automated pieces like these, particularly IFTTT, for driving my own personal online commonplace book.

Following People on Hypothes.is

I get a LOT of value out of using Hypothes.is, but one of my favorite parts is having the RSS feeds of about a dozen interesting peoples’ H feeds piped into my reader. I get not only interesting things to read, but highlights and annotations of the best of it all.

The general format for feeds to subscribe to is https://hypothes.is/stream.atom?user=XYZ.  As an example my personal feed is at https://hypothes.is/stream.atom?user=chrisaldrich. Some of my other favorites are judell, actualham, nateangell, mpelzel, mrkrndvs, jgmac1106, and jeremydean.

(By the way, you can do a similar thing for tag topics like: https://hypothes.is/stream.atom?tag=OER.)

I wish that the system had some more social features to make discovery and following of friends and colleagues easier, but doing it the hard way sort of makes it that much more valuable.

Who are you following there? Which other interesting Hypothes.is users should I be following? Do let me know.

I’ve been seemingly “away” from my online presence for several months, but felt it’s time to come back to posting publicly a bit more frequently. Some of the hiatus has been set aside for crafting some new workflows for posting more content privately for a slightly different version of my commonplace book. 

While I’ve learned a lot in my experiment, I’ll have to ruminate on it a bit longer before writing any specific takeaways. One of my favorite portions has been some work to pull more data out of the books I’m reading in terms of highlights, notes, and marginalia for research purposes. 

In general, not much has changed here directly, but I will have to get used to the the posting interface and some of my old workflows again. I’ll also need to get around to some general updates and fixes that I’ve let slide for far too long. I’ll also have to catch up on some change logs for things that have improved since my hiatus began.

I will say that while I’ve been very productive during my hiatus, which has included stepping away significantly from other forms of social media consumption as well, I also very much miss interacting with a lot of my online friends and colleagues on a more regular basis. It’ll be good to ease back into my feed reader and see what everyone has been up to for the past several months.

Social Reading User Interface for Discovery

I read quite a bit of material online. I save “bookmarks” of all of it on my personal website, sometimes with some additional notes and sometimes even with more explicit annotations. One of the things I feel like I’m missing from my browser, browser extensions, and/or social feed reader is a social layer overlay that could indicate that people in my social network(s) have read or interacted directly with that page (presuming they make that data openly available.)

One of the things I’d love to see pop up out of the discovery explorations of the IndieWeb or some of the social readers in the space is the ability to uncover some of this social reading information. Toward this end I thought I’d collect some user interface examples of things that border on this sort of data to make the brainstorming and building of such functionality easier in the near future.

If I’m missing useful examples or you’d like to add additional thoughts, please feel free to comment below.

Examples of social reading user interface for discovery

Google

I don’t often search for reading material directly, but Google has a related bit of UI indicating that I’ve visited a website before. I sort of wish it had the ability to surface the fact that I’ve previously read or bookmarked an article or provided data about people in my social network who’ve done similarly within the browser interface for a particular article (without the search.) If a browser could use data from my personal website in the background to indicate that I’ve interacted with it before (and provide those links, notes, etc.), that would be awesome!

Screen capture for Google search of Kevin Marks with a highlight indicating that I've visited this page in the recent past
Screen capture for Google search of Kevin Marks with a highlight indicating that I’ve visited his page several times in the past. Given the March 2017 date, it’s obvious that the screen shot is from a browser and account I don’t use often.

I’ll note here that because of the way I bookmark or post reads on my own website, my site often ranks reasonably well for those things.

On a search for an article by Aaron Parecki, my own post indicating that I’ve read it in the past ranks second right under the original.

In some cases, others who are posting about those things (reading, commenting, bookmarking, liking, etc.) in my social network also show up in these sorts of searches. How cool would it be to have a social reader that could display this sort of social data based on people it knows I’m following

A search for a great article by Matthias Ott shows that both I and several of my friends (indicated by red arrows superimposed on the search query) have read, bookmarked, or commented on it too.

Hypothes.is

Hypothes.is is a great open source highlighting, annotation, and bookmarking tool with a browser extension that shows an indicator of how many annotations  appear on the page. In my experience, higher numbers often indicate some interesting and engaging material. I do wish that it had a follower/following model that could indicate my social sphere has annotated a page. I also wouldn’t mind if their extension “bug” in the browser bar had another indicator in the other corner to indicate that I had previously annotated a page!

Screen capture of Vannevar Bush’s article As We May Think in The Atlantic with a Hypothes.is browser extension bug indicating that there are 329 annotations on the page.

Reading.am

It doesn’t do it until after-the-fact, but Reading.am has a pop up overlay through its browser extension. It adds me to the list of people who’ve read an article, but it also indicates others in the network and those I’m following who have also read it (sometimes along with annotations about their thoughts).

What I wouldn’t give to see that pop up in the corner before I’ve read it!

Reading.am’s social layer creates a yellow colored pop up list in the upper right of the browser indicating who else has read the article as well as showing some of their notes on it. Unfortunately it doesn’t pop up until after you’ve marked the item as read.

Nuzzel

Nuzzel is one of my favorite tools. I input my Twitter account as well as some custom lists and it surfaces articles that people in my Twitter network have been tweeting about. As a result, it’s one of the best discovery tools out there for solid longer form content. Rarely do I read content coming out of Nuzzel and feel robbed. Because of how it works, it’s automatically showing those people in my network and some of what they’ve thought about it. I love this contextualization.

Nuzzel’s interface shows the title and an excerpt of an article and also includes the avatars, names, network, and commentary of one’s friends that interacted with the piece. In this example it’s relatively obvious that one reader influenced several others who retweeted it because of her.

Goodreads

Naturally sites for much longer form content will use social network data about interest, reviews, and interaction to a much greater extent since there is a larger investment of time involved. Thus social signaling can be more valuable in this context. A great example here is of Goodreads which shows me those in my network who are interested in reading a particular book or who have written reviews or given ratings.

A slightly excerpted/modified screen capture of the Goodreads page for Melanie Mitchell’s book Complexity that indicates several in my social network are also interested in reading it.

Are there other examples I’m missing? Are you aware of similar discovery related tools for reading that leverage social network data?

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:

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.

An annotation example for Hypothes.is using <blockquote> markup to maintain annotations on quoted passages

A test of some highlighting functionality with respect to rel-canonical mark up. I’m going to blockquote a passage of an original elsewhere on the web with a Hypothes.is annotation/highlight on it to see if the annotation will properly transclude it.

I’m using the following general markup to make this happen:

<blockquote><link rel="canonical" href="https://www.example.com/annotated_URL">
Text of the thing which was previously annotated.
</blockquote>

Let’s give it a whirl:

This summer marks the one-year anniversary of acquiring my domain through St. Norbert’s “Domain of One’s Own” program Knight Domains. I have learned a few important lessons over the past year about what having your own domain can mean.

SECURITY

The first issue that I never really thought about was the security and privacy on my domain. A few months after having my domain, I realized that if you searched my name, my domain was one of the first things that popped up. I was excited about this, but I soon realized that this meant everything I blogged about was very much in the open. This meant all of my pictures and also every person I have mentioned. I made the decision to only use first names when talking about others and the things we have done together. This way, I can protect their privacy in such an open space. With social media you have some control over who can see your post based on who “friends” or “follows you”; on a domain, this is not as much of a luxury. Originally, I thought my domain would be something I only shared with close friends and family, like a social media page, but understanding how many people have the opportunity to see it really shocked me and pushed me to think about the bigger picture of security and safety for me and those around me.

—Cassie Nooyens in What Having a Domain for a year has Taught Me

Unfortunately, however, I’m noticing that if I quote multiple sources this way (at least in my Chrome browser), only the last quoted block of text transcludes the Hypothes.is annotations. Based on prior experiments using rel-canonical mark up I’ve noticed this behavior, but I suspect it’s simply the fact that the rel-canonical appears on the page and matches one original. It would be awesome if such a rel-canonical link which was nested into any number of blockquote tags would cause the annotations from the originals

Perhaps Jon Udell and friends could shed some light on this and or make some tweaks so that blockquoting multiple sources within the same page could also allow the annotations on those quoted passages to be transcluded onto them?

Separately, I’m a tad worried that any annotations now made on my original could also be mistakenly pushed back to the quoted pages because of the matching rel-canonical without anything taking into account the nested portions of the page or the blockquoted pieces. I’ll make a test on a word or phrase like “security and privacy” to see if this is the case. We’ll all notice that of course this test fails by seeing the highlight on Cassie’s original. Oh well…

So the question becomes, is there a way within the annotation spec to allow us to write simple HTML documents that blockquote portions of other texts in such a way that we can bring over the annotations of those other texts (or allow annotating them on our original page and have them pushed back to the original) within the blockquoted portions, yet still not interfere with annotating our own original document? Ideally what other HTML tags could/should this work on? Further could this be common? Generally useful? Or simply just a unique edge case with wishful thinking made from this pet example? Perhaps there’s a better way to implement it than my just having thrown in the random link on a whim? Am I misguidedly attempting to do something that already exists?

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?

Lurking, Twitter, The Commons, and Private Posts

Lurking

Yesterday I was catching up on chat logs and ran across a stub for lurking on the IndieWeb wiki. I cleaned up the formatting a bit and added some additional material. Later Ton Zijlstra dropped a link to his excellent article from 2004 on the topic: Lurking and Social Networks (though honestly, I first came by the link courtesy of our good friend Jeremy Cherfas who added it to the wiki page).

Lurking is the quiet watching/listening that what many people of the web do in chat rooms in order to begin gauging culture, learning jargon or lingo, and other community norms or unspoken principles before diving in to interact on a more direct level with other participants.

While the word lurking can have a very negative connotation, online it often has a much more positive one, especially in regard to the health and civility of the commons. Rather than rehash what Ton has done an excellent job of doing, I won’t go into the heavy details and history of online lurking, but instead, let’s take a look at where it isn’t in today’s social media landscape.

Twitter

Since 2004, Twitter and a slew of other social media has popped up on the scene and changed many of our prior behaviors concerning lurking. In particular, Twitter’s interface has made it far easier to either like/favorite a post or retweet it.

In comparison the the preceding era of the blogosphere represented by Tons’ post, Twitter has allowed people to send simple notifications back and forth about each others’ posts indicating a lower bar of interaction than writing a thoughtful and measured comment. Now instead of not knowing about dozens, hundreds, or thousands of lurkers, a (micro)blogger would more quickly know who many more of their readers were because they were liking or resharing their content. Naturally there are still many more potential lurkers who don’t interact with one’s posts this way, but these interactions in some way are like adding fuel to the fire and prompt the writer to continue posting because they’re getting some feedback that indicates they’ve got an audience. Twitter has dramatically lowered the bar for lurkers and made it more socially acceptable for them to make themselves known.

A mid-century imagining of a Twitter company sign on the side of a commercial building, but aged to the point that the sign is rusted, broken, and decaying from neglect
Twitter image from the collection Social Decay by Andrei Lacatsu

Of course, not all is rosy and happy in Twitterland as a result of this lowering the social bar. Because it’s so easy to follow almost anyone and interact with them, naturally everyone does. This means that while before one may have lurked a blog for weeks or months before posting a response of any sort, people are now regularly replying to complete strangers without an resistance whatsoever. While this can be valuable and helpful in many instances, oftentimes it comes off as rudely as if one butted into the private conversation of strangers at a public gathering. At the farther end of the spectrum, it’s also much easier for trolls to tag and target unsuspecting victims. As a result, we have the dumpster fire that Twitter has become in the past several years for many of its users.

The problem for the continued health of the commons is how can we maintain a bar for online lurking, but still provide some feedback? How can we keep people from shouting and yelling at passer-by from their proverbial front porches or vice-versa? How might we encourage more positive lurking online before directly jumping into a conversation? 

Read Posts and Private Posts

For several years now, as a part of the IndieWeb movement, I’ve been more directly controlling my online identity and owning my content by using my own domain name and my own website (boffosocko.com). While I still use Twitter, I’m generally only reading content from it via a feed reader. When I post to or interact with it, I’m always publishing my content on my own website first and syndicating a copy to Twitter for those who don’t own their online identities or content and (sadly) rely on Twitter to do that for them. 

Within this setting, since roughly late 2016, I’ve been posting almost all of what I read online or in books, magazines, or newspapers on my own website. These read posts include some context and are often simply composed of the title of the article, the author, the outlet, a summary/synopsis/or first paragraph or two to remind me what the piece was about, and occasionally a comment or two or ten I had on the piece.

screencapture of a read post on my website
An example read post with context from my website at https://boffosocko.com/2019/06/02/lurking-and-social-networks-ton-zijlstra/

In tandem with these posts, I’m also sending webmentions to the websites of those pieces. These (experimental) read webmentions are simply notifications to the originating site that I’ve read their piece. In our prior framing of lurking or Twitter, I’m sending them the simplest notification I can think of to say, “I’m here lurking. I’m reading or looking at your work.”

I’m not saying that I liked it, favorited it, disliked it, bookmarked it, commented on it,  or anything else, but simply that I read it, I consumed it, I spent the time to interact with it. But in contrast with Ton’s older method of looking at server logs to see what kind of traffic his posts are getting, he can see exactly who I am and visit my website in return if he chooses. (Ton’s old method of sifting through those logs was certainly not a fun experience and the data was usually relatively anonymous and useless.) These newer read notifications could potentially give him a much richer idea of who his (lurking) audience actually is. Then when someone shows up with a comment or reply, it’s not completely from out of the dark: they’ve previously indicated that they’re at least somewhat aware of the context of a potentially broader conversation on his site.

These read notifications are semantically different from likes, favorites, or even bookmarks on other platforms. In fact many platforms like Twitter, which has moved from “stars” (with the semantic idea of a favorite) to “hearts” (with the semantic idea of a like), have so few indicators of reaction to a post that the actual meaning of them has been desperately blurred. Personally I’ll use Twitter’s like functionality variously to mean: “I’m bookmarking this (or the linked article within it) for reading later”, “I like this post”, “I’ve read this post”, or even “I’m acknowledging receipt of your reply to me”. That’s just too much meaning to pack into a silly little heart icon.

Because I’m using my own website over which I have complete control, I can make it do a better job of unpacking some of this semantic tom-foolery. I’ve written about it a bit in the past if you care to see some of the details: Thoughts on linkblogs, bookmarks, reads, likes, favorites, follows, and related links. See also: the read-posts tag on this site.

If they choose, some website owners display these read post notifications in one or more ways. Some sites like Aaron Parecki’s or Jeremy Keith’s will show my interactions as bookmarks. Others, primarily WordPress-based websites that support Webmention (via plugin), will actually show these interactions in their comment sections under the heading “Read” and display my photo/avatar as an indicator that I’ve interacted with that post. In the case of read posts on which I’ve written one or more comments, the receiving site also has the option of showing my interaction not as a read/bookmark intent, but could also show my comments as a reply to their post. I’ve written a bit about this and its potential for large news outlets before in Webmentions: Enabling Better Communication on the Internet for A List Apart. There are also some older legacy sites that might show my interactions as a trackback or pingback, but these seem few and far between these days, particularly as those systems are major targets for spam and the Webmention protocol has a richer interaction/display model.

screencaputure showing how Jeremy Keith displays my read post as a bookmark. The relevant section reads: "# Bookmarked by Chris Aldrich on Thursday, April 11th, 2019 at 1:31pm"
How Jeremy Keith displays shares, likes, and bookmarks (including my read post) in the comment section of his website.
Facepiled Likes, Reads, and Mentions in the comment section of the online newspaper with a heading "Reading" under which appears an avatar indicating one person has read the article.
The display of a read post on ColoradoBoulevard.net

A new itch

But as I think about these read posts, lurking, and being more civil on the internet, I have a new itch for some functionality I’d like to add to my website. I very frequently use my website as a digital commonplace book to collect links of things I’ve read, watched, and listened to. I’ll collect quotes, highlights, and even my own marginalia. As I mentioned above, my read posts sometimes have comments, and quite often those comments are really meant just for me and not for the author of the original post. In many cases, when my comments may be too egregious, sensitive, or perhaps even insulting to the original author, I’ll make these posts private so that only I can see them on my site.  Of course when they’re private, no notifications are sent to the site at the other end of the line.

Sometimes I would like to be able to send a read notification to the site, but also keep my commentary privately to myself. This allows me to have my notes on the piece and be highly critical without dragging down the original author or piece who I may not know well or the audience of that same piece which I haven’t properly lurked (in the positive community-based sense indicated above) to be as intelligently and sensitively commenting as I would otherwise like. Thus I’d like to build in some functionality so that I can publicly indicate I’ve read a piece (and send a notification), but also so that I can keep the commentary on my read private to either myself or a smaller audience.

I suspect that I can do this in a variety of meta-fields on my website which aren’t shown to the public, but which might be shown to either myself or logged in users. In some sense, this is a subset of functionality which many in the IndieWeb have been exploring recently around the ideas of private posts or by limiting the audience of a post. In my case, I’m actually looking at making a post public, but making smaller sub-portions of it private.

To begin with, I’ll most likely be looking at doing this at a small scale just for myself and my commonplace book, as I can definitely see second and third-order effects and a variety of context collapse issues when portions of posts are private, but others who may be privy to them are commenting on those pieces from the perspective of their public spheres which may not be as private or closed off as mine. i.e.: While I may have something marked as private, privy readers will always have the option of copy/pasting it and dragging it out into the public.

For those interested, I’ll briefly note that Sebastiaan Andeweg just wrote Private posts: the move of the checkins which has some useful and related background to private posts. (Of course I remember exactly when I read it.) I also highly suspect there will be a private posts related session(s) at the upcoming IndieWeb Summit in Portland in June (tickets are still available). I’m interested to see what others come up with on this front.

👓 The tools I use to be productive with ADHD | Paul Jacobson

Read The tools I use to be productive with ADHD by Paul Jacobson (Paul Jacobson)
I just read an article about how many people with ADHD rely on services like Evernote to keep their tendencies to go off chasing squirrels in check long enough to be productive. In honor of #ADHDAwarenessMonth, we asked ADHD coach @takecontroladhd how she takes control of it with Evernote. https://t...

Idea for a spaced repetition user interface for Hypothes.is

While I’m thinking about younger students, I thought I’d sketch out a bit of an add-on product that I wish Hypothes.is had.

Background/Set up

I was looking at tools to pull annotations out of Kindle the other day and ran across Readwise again. Part of its functionality pulls highlights and annotations out of Kindle and then it has some UI that uses the idea of spaced repetition to have you regularly review what you’ve previously read and highlighted and presumably wanted to remember or use in the future.

Of course this is very similar to other spaced repetition/flash card applications like Mnemosyne, Anki, or language apps like Memrise and Duolingo among many others. I also seem to recall that Amazon once had some UI like this built into their Kindle Notebook, but I’m not finding it at the moment, but I know they’ve changed that UI sometime in the last two years–perhaps it’s gone?

The Pitch

Given the number of learners who are using Hypothes.is, wouldn’t it be a fantastic bit of functionality if Hypothes.is had a spaced repetition UI that would allow students to easily go back and review over their prior highlights and annotations?! Presumably this could be targeted for quizzes and tests, but honestly as a lifelong learner I very frequently love using tools like Timehop or even my website’s built-in “On this day” functionality to look back over bits and pieces of things I’ve done in the past, which also includes my annotations, since I’m keeping copies of them on my website as well.

Naturally such a UI should be able to search or sort by tag, date range, or even by source(s) so that a student could more easily wrangle a particular number of sources over which they wanted to review their material–particularly as over months, years, or decades one could build up a huge library of annotations. If, as a student, I was tagging my material by class course number subject area or something similar (like edu522, for example) I could then easily dump that into such a UI and be able to do spaced repetition studying for that subject area. Masters, Ph.D. students, and even the professoriate might appreciate it for occasional spaced repetition to be nudged or reminded of ideas they’d had in the past, but which may need rekindling to put into a thesis or potential future papers.

The more I think about this, the more I’d love to see it in Hypothes.is. If it’s not something the main team takes on, perhaps it could be an add-on for a group like Remi Kalir’s who have done some interesting work with the API to create Crowdlaaers

I’m planning to use import/export manually with tools like Anki to do some testing this coming weekend… I wonder what open sourced code may already exist that I could simply plug my Hypothes.is data into? Hmm…

Replied to a tweet by (((Dr. Dean)))(((Dr. Dean))) (Twitter)
Boy, what I wouldn’t give to have a digital, searchable copy of every book or article I’d highlighted or annotated since I was 14! Even my handwritten commonplace books from those eras are difficult to read and search through.

Ideas for IndieWeb-ifying Hypothes.is

I use Hypothes.is regularly as part of my daily workflow. I’m also very interested in being able to “own” the data I generate with the tool and being able to keep it on my own digital commonplace book (aka website). As part of this, I’d like to be able to receive notifications from people publicly annotating, highlighting, and replying to my content and potentially display those directly on either my website in the comments section or as marginalia.

I’d promised to do a quick outline for the kind gang at Hypothes.is to outline how to make their product could be a bit more open and support some additional web standards to make it more IndieWeb friendly as well as to work toward supporting the Webmention protocol to send notifications of annotations on a page. A few weeks ago at IndieWebCamp New Haven I decided to finally sketch out some of the pieces which should be relatively easy for them to implement into the product. Below are some of the recommendations and some examples of what needs to be done to implement them into their platform to allow it to better interact with other content on the web. This post is in reply to a few prior conversations about Webmention, but primarily pertains to Microformats which will help in creating those. [1] [2] [3] [4]

Overview

To my knowledge Hypothes.is generates a hash for each annotation it has in the system and generates two separate, but related URLs for them. As an example, here are the two URLs for a response Jon Udell made on my website recently:

The first URL is where a stand-alone copy of the annotation lives on the web, separate from the content it is related to. screen capture of the content at URL https://hypothes.is/a/_tLJyA-cEemE-qPndyfQow The second URL resolves to the page on which the annotation was made and both will automatically open up Hypothesis’ side drawer UI to the annotation in question and will–on most browsers–auto-scroll down the page to show the point at which the annotation was made. Essentially this second URL shows the annotation in-situ in conjunction with the Hypothes.is user interface. I’ll note that they can also have some human readable trailing data in the URL that indicates the site on which the annotation was made like so: https://hyp.is/_tLJyA-cEemE-qPndyfQow/boffosocko.com/?p=55708991. However, in practice, one could remove or replace the boffosocko.com and trailing portion with any other URL and the correct page will still resolve.

It is great that they make the first URL available with the relevant data. This in itself is very IndieWeb friendly to have each annotation in the system have its own stand-alone URL. Sadly all the data on this particular page seems to be rendered using JavaScript rather than being raw HTML. (See also js;dr.) This makes the page human readable, but makes it much more difficult for machines to read or parse these pages. I’d recommend three simple things to make Hypothes.is more (Indie)Web friendly:

  1. Render the annotation on the first URL example in full HTML instead of JavaScript;
  2. Add the appropriate microformats classes on those pages;
  3. Add the canonical URL for the page on which the annotation is in reference to either instead of or in addition to the Hypothes.is prefixed URL which already appears on these pages. Webmention functioning properly will require this canonical URL to exist on the page to be able to send notifications and have them be received properly.

These things would make these pages more easily and usefully parseable on the open web. If/when Hypothes.is may support Webmention (aka web notifications) then all of these prerequisite pieces will already be in place. In the erstwhile, even without Hypothes.is running code to support sending Webmentions, users could force manual Webmentions using services like Telegraph, mention-tech.appspot, or even personal endpoints generated on individual posts (see the one below) or on custom endpoint pages like mine on WordPress. Aaron Parecki’s article Sending your First Webmention from Scratch is a useful tutorial for those with little experience with Microformats or Webmention.

Types of Annotations and Microformats Markup

To my knowledge there are three distinct types of annotations that might occur which may need slightly different microformats mark up depending on the type. These are:

  1. Unassigned page notes (or sometimes orphaned page notes): For all intents and purposes are the equivalent of bookmarks (and are used this way by many) though they go by a different name within the service.
  2. Highlights of particular passages: In IndieWeb parlance, these are roughly equivalent to quotations of content.
  3. Highlights and annotations of particular passages: In IndieWeb terms these again are quotes of content which also have what might be considered a reply or comment to that segment of quoted text. Alternately the annotation itself might be considered a note related to what was highlighted, but I suspect from a UI and semantic viewpoint, treating these as replies is probably more apropos in the majority of cases.

Each of these can obviously have one or more potential tags as well. Some of the examples below include the p-category microformats for how these would logically appear. Using the example URL above and several others for the other cases, I’ll provide some example HTML with proper microformats classes to make doing the mark up easier. I’ve created some minimal versions of text and mark up, though Hypothes.is obviously includes much more HTML (and a variety of divs for CSS purposes. While some of the mark up is a bit wonky, particularly with respect to adding the hyp.is and the original posts’ canonical URLs, it could be somewhat better with some additional reworking of the presentation, but I wanted to change as little as possible of their present UI. For the minimal examples, I’ve stripped out the native Hypothes.is classes and only included the semantic microformats. Because microformats are only meant for semantic mark up, the developers should keep in mind it is good practice NOT to use these classes for CSS styling.

Page note with no annotations (bookmarks)

Example from https://hypothes.is/a/_tLJyA-cEemE-qPndyfQow (but without the annotation portion)


<div class="h-entry">
    <a class="p-author h-card" href="https://hypothes.is/users/judell">judell</a>
    Public on <https://hyp.is/_tLJyA-cEemE-qPndyfQow/boffosocko.com/?p=55708991>"Chris Aldrich on the IndieWeb"</a> (<a class="u-bookmark-of" href="https://boffosocko.com/?p=55708991">boffosocko.com</a>)
    <time class="dt-published" datetime="2019-01-11 18:052:00" title="Friday, Jan 11, 2019, 6:52 PM"><a href="https://hypothes.is/a/_tLJyA-cEemE-qPndyfQow" target="_blank" rel="noopener">Jan 11</a></time>
    
<div class="p-category">tag-name1</div>
 
<div class="p-category">tag-name2</div>
 
<div class="p-category">tag-name3</div>
</div>

Page note with an annotation

(aka a reply, but could alternately be marked up as above as a bookmark) Example from https://hypothes.is/a/_tLJyA-cEemE-qPndyfQow


<div class="h-entry">
    <a class="p-author h-card" href="https://hypothes.is/users/judell">judell</a>
    Public on <https://hyp.is/_tLJyA-cEemE-qPndyfQow/boffosocko.com/?p=55708991>"Chris Aldrich on the IndieWeb"</a> (<a class="u-in-reply-to" href="https://boffosocko.com/?p=55708991">boffosocko.com</a>)
    <time class="dt-published" datetime="2019-01-11 18:052:00" title="Friday, Jan 11, 2019, 6:52 PM"><a href="https://hypothes.is/a/_tLJyA-cEemE-qPndyfQow" target="_blank" rel="noopener">Jan 11</a></time>
    
<div class="e-content">
        
<p>This is web thinking in action.</p>
<p>https://blog.jonudell.net/2011/01/24/seven-ways-to-think-like-the-web/</p>
<p>Well done!</p>

    </div>

    
<div class="p-category">tag-name</div>
</div>

Highlights (aka quotes)

Example from https://hypothes.is/a/_tLJyA-cEemE-qPndyfQow


<div class="h-entry">
    <a class="p-author h-card" href="https://hypothes.is/users/judell">judell</a>
    Public on <a href="https://hyp.is/gBZPQucmEeaPBQvYzSRo-Q/www.theatlantic.com/magazine/archive/1945/07/as-we-may-think/303881/">"As We May Think"</a> (<a class="u-quotation-of h-cite" href="https://www.theatlantic.com/magazine/archive/1945/07/as-we-may-think/303881/">www.theatlantic.com</a>)
    <time class="dt-published" datetime="2017-04-30 08:40:00" title="Sunday, Apr 30, 2017, 08:40 AM"><a href="https://hypothes.is/a/_tLJyA-cEemE-qPndyfQow" target="_blank" rel="noopener">Apr 30, 2017</a></time>
    
<blockquote>First he runs through an encyclopedia, finds an interesting but sketchy article, leaves it projected. Next, in a history, he finds another pertinent item, and ties the two together.</blockquote>

    
<div class="p-category">IAnnotate2017</div>
</div>

Annotations (replies)

Example from https://hypothes.is/a/9JrX5lf9RraeLKKn9WwmMQ


<div class="h-entry">
    <a class="p-author h-card" href="https://hypothes.is/users/jeremydean">jeremydean</a>
    Public on <a href="https://hyp.is/9JrX5lf9RraeLKKn9WwmMQ/www.theatlantic.com/magazine/archive/1945/07/as-we-may-think/303881/">"As We May Think"</a> (<a class="u-in-reply-to" href="https://www.theatlantic.com/magazine/archive/1945/07/as-we-may-think/303881/">www.theatlantic.com</a>)
    <time class="dt-published" datetime="2015-09-02 15:11:00" title="Wednesday, Sep 2, 2015, 03:11 PM"><a href="https://hypothes.is/a/_tLJyA-cEemE-qPndyfQow" target="_blank" rel="noopener">Sep 2, 2015</a></time>
    
<blockquote class="p-in-reply-to h-cite">This has not been a scientist's war; it has been a war in which all have had a part.
<blockquote>
    
   
<div class="e-content">
        
<p>It kind of blows me mind that the end of WWII is the context for these early dreams of the Internet. Is it the hope experienced in patriotic collaboration toward technological innovation? That's what Bush seems to acknowledge explicitly. It's a techno-militaristic union that haunts us to this day (#prism). But I wonder too if it's the precarious of knowledge, or perhaps the destructiveness of knowledge, that also inspires Bush…</p>

    </div>

    
<div class="p-category">tag-name</div>
</div>

I’ll also note that there’s the potential of a reply on Hypothes.is to a prior reply to a canonical URL source. In that case it could be either marked up as a reply to the “parent” on Hypothesis and/or a reply to the canonical source URL, or even both so that webmentions could be sent further upstream. (My experience in this is more limited, not having dealt with it personally in the past.) Once these pieces are implemented, they can be tested against a variety of microformats parsers to ensure they’re outputting the correct (and properly nested) information. I often find that pin13 is a pretty solid modern and up-to-date choice for this.

Additional resources with examples

I’ll also leave the caveat here, that while I’ve got a stronger grasp of Microformats than the average bear, that the above examples may have some subtle quirks that others may catch or which could be improved upon. I find that the Microformats web chat can be a good source for helps from some of the world’s best experts in the area. (Other methods for engaging in chat via IRC, Slack, etc. can be utilized as well.)

If Dan, Jon, or any of the gang has questions about any of this, I’m happy to chat via phone, video conference, or other to help get them going.

Thoughts on open notebooks, research, and social media

I remember thinking over a decade ago how valuable it would be if researchers kept open notebooks (aka digital commonplace books) like the one Kimberly Hirsh outlines in her article Dissertating in the Open: Keeping a Public Research Notebook. I’d give my right arm to have a dozen people in research areas I’m interested in doing this very thing!

The best I could hope for back in 2008, and part of why I created the @JohnsHopkins Twitter handle, was that researchers would discover Twitter and be doing the types of things that some of the Johns Hopkins professors outlined in this recent article The Promise and Peril of Academia Wading into Twitter are now finally doing. It seems sad that it has taken over a decade and this article is really only highlighting the bleeding edge of the broader academic scene now. While what they’re doing is a great start, I think they really aren’t going far enough. They aren’t doing their audiences as much service  as they could because there’s only so much that Twitter allows in terms of depth of ideas and expressiveness. It would be far better if they were doing this sort of work from their own websites and more directly interacting with their colleagues on the open web. The only value that Twitter is giving them is a veneer of reach to a broader audience, but they’re also opening themselves up to bigger attacks as is described in the article.

In addition to Kimberly’s example, another related area of potential innovation would be moving the journal clubs run by many research groups and labs online and opening them up. Want to open up science?  Then let’s really do it!  By bookmarking a variety of articles on their own websites, various members could be aggregated to contribute to a larger group, which could then use their own websites with protocols like Webmention or even simple tools like Hypothes.is to guide and participate in larger online conversations to move science communication along at an even faster pace. Greg McVerry and I have experimented in taking some of these tools into the classroom in the past.

If you think about it, arXiv and other preprint servers are really just journal clubs writ large. The problem is that they’re only communicating in one direction by aggregating the initial content, but they’re dramatically failing their audiences in that they aren’t facilitating or aggregating any open discussion around that content. As a result, the largest portion of their true value is still locked away in the individual brains of their readers rather than as commentary or even sentence level highlights and annotations on particular pieces out in the open. Often is the time that I’ll tweet about an interesting article only to receive a (lucky) reply that the results have been debunked, yet that information is almost never disclosed in or around the journal article (especially online) where it certainly belongs. Academic publishers are not only gouging us financially by siloing their content, they’re failing us far worse than most realize.

Another idea: Can’t get a journal of negative results to publish your latest research failure? Why not post a note or article on your own website to help out future researchers? (or even demonstrate to your students that not everything always works out?)

Naturally having aggregation services like indieweb.xyz, building planets, using OPML subscriptions, or the coming wave of feed readers could make a lot of these things easier, but we’re already right on the cusp for people who are willing to take a shot for doing this type of research online on their own websites and out in the open.

Want to try out some of the above? I’m happy to help (gratis) researchers who’d like to experiment in the area to get themselves set up. Just send me a note or give me a call.

Modifying some of the taxonomies on my digital commonplace book

Spent a few minutes today cleaning up the various categories and tags within my digital commonplace book (aka website). Some of the automated methods I use as well as my general carelessness and fat fingers on mobile introduce spelling errors in some of these taxonomies. I also find that sometimes when choosing them from the pre-populated lists my website’s back end makes it more difficult to choose the canonical one when there are several there by error.

These issues tend to flatten these taxonomies out and make them much more difficult to search (or for others to be able to subscribe to reliably).

As an example, having tags “Domain of One’s Own” and “Domain of Ones Own” (with and without the apostrophe) as well as the acronym “DoOO” can be difficult or frustrating to use. Things get even more complicated when I hold the mental model that these concepts are just a sub-set of the broader idea of the “IndieWeb” or what I sometimes tag things as “IndieWeb for Education”. This is all much easier for me, but may be more difficult for newcomers to the site who know what one shorthand means, but are unaware of the others and thus miss details, references, or content that may have a lot of value for them.

I’ve cleaned up and concatenated many of these troublesome tags (roughly A-D alphabetically and other sections at random), but there’s still a lot of distance to go. There are 66 categories–some are hidden or used for programmatic purposes–and nearly 7,000 tags! The top 100 tags are used 30 or more times on the site and the second century of tags are used between 20 and 30 times each. At the long end of the tail there are about 4,000 tags with either 1 or no uses.

I’m promoting the economics tag to that of a category since it’s a topic in which I have a lot of interest and content. I also have a number of other tags related to sub-areas of economics. (If you were subscribed to this individual tag, you may want to fix your feed.) Other potential considerations for promotion included the topics of history, physics, and web development. I also noticed that there’s a tag for mathematics with 70 instances despite the fact that there’s already a category for it with 315 posts already–I’ll have to figure out how that happened and clean it up another day. And look, there’s somehow a tag for “math” too. Ugh!

I also put both the Quotes and Events categories under the parent category of Social Stream, though I plan on leaving them showing in the hierarchy–unlike some post kinds–as there are many legacy posts and likely future posts that aren’t just events I’m hosting, but events that are of interest to me in general. Naturally the more important events (to me) will appear in my RSVP posts. With any good luck courtesy of WordPress, links to the old versions should still work or redirect to the new hierarchy.

The manual or even automated effort of fixing or tweaking some of these things feels problematic, and I’m just looking at just my own website. I’m curious to delve into some research on taxonomies and folksonomies to see how something like this may be better systematized and/or automated. Of course categorizing things is somethings humans really love doing, but I’m not sure how deep down the rabbit hole it’s worth going for my own work. Besides, someone far smarter than I will likely crack the discovery nut from an IndieWeb perspective. Fortunately I can use the site search queries for several search engines to more quickly find the things I’m looking for without needing these taxonomies. So perhaps I’ll put some of the exercise off to another day by filing this in my tag.