👓 Building a Community | THE OU CREATIES

Read Building a Community (wpcampus18.johnastewart.org)
*This site was put together for sharing during a presentation at WPCampus 18. I hope the site provides the same narrative as what I presented, but you can also watch the recorded feed or download this rather large pdf of my presentation from the conference. The great challenge of educational technol...

👓 WP Campus 18 First Notes | John Stewart

Read WP Campus 18 First Notes by John Stewart (johnastewart.org)
This week, I’m attending WP Campus 18 in St. Louis, MO. For the conference, presenters are encouraged to create some sort of online artifact (usually a WP site) to share their slides and resources. Here’s mine.

Reply to Brad Enslen about Blogrolls in WordPress

Replied to No Good WordPress Blogroll Plugins by Brad EnslenBrad Enslen (Brad Enslen)

Feh. Apparently there are no good blogroll plugins for WordPress.   I did look extensively through the WP plugins directory but didn’t find anything interesting. Most plugins were way out of date for my version of WP.

Might be an opportunity there for the Indieweb movement to aid discovery.

Apologies Brad. I just saw your follow up post and had meant to reply to your earlier one when I saw it last week, I just didn’t have the time to write a quick response. I had hoped you might have found something even better than what I’ve put together previously or perhaps started building a newer and shinier edifice.

There is actually an excellent and solid “plugin” for creating a blogroll, but it’s actually been hiding in WordPress core for ages: the original Link Manager. Use of it declined so much it was programatically “removed”, but all the code is still in core, it still works wonderfully, and it only requires a single line of code (or the simplest plugin ever written) to re-enable it.

It was very solid and didn’t need much iteration, so it should work fine with current versions of WordPress–it certainly does on mine.

I’ve written up a bunch of details on how and what I did (as well as why), so hopefully it’ll give you a solid start including some custom code snippets and reasonably explicit directions to make some small improvements for those that may be a bit code-averse. Hint: I changed it from being a sidebar widget to making it a full page. Let us know if you need help making some of the small code related changes to get yourself sorted.

Even if you just want a plug and play plugin, there are details for that in the post as well, you’ll just be stuck with putting the blogroll into a traditional sidebar position. (With conditional statements in the sidebar widget, you  could restrict the blogroll widget to only displaying on a “Following” page, for example.)

I do think there is still a more IndieWeb way of doing this, potentially by making follow posts with mark up that could be parsed by microsub readers perhaps? Certainly dovetailing something with microsub seems to be a laudable goal. I would like to eventually dive into the Link Manager code and add some additional microformats as well as update the OPML to v2, but there’s enough back compatibility that the older version is fine for most use cases I’ve run across. I know David Shanske has some ideas about some changes he’d like to see in the future as well. You could always also go super low tech the way Greg did and have a blogroll post that you update over time, though perhaps a page is a better way to go? Updating things to be more automated is certainly a reasonable goal though.

Give it a spin and see what you think. Here’s my Following page (aka blogroll) with details at the very bottom for subcategories of OPML subscription. I’ll try to update the IndieWeb blogroll page with some of these details to make them more imminently findable as well.

👓 Any Good Blogroll Plugins for WordPress? | Brad Enslen

Read Any Good Blogroll Plugins for WordPress? by Brad EnslerBrad Ensler (Brad Enslen)
Does anyone have a recommendation for a good blogroll plugin for WordPress? I’ve looked at Indieweb blogroll solutions and there are some really good implementations.  I really like Colin Walker’s directory of people who have commented via webmention.  It would be great to aid blog discovery a...

👓 Wrapping My Head Around Webmentions Pt 2 | Interdependent Thoughts

Read Wrapping My Head Around Webmentions Pt 2 by Ton ZijlstraTon Zijlstra (Interdependent Thoughts)
I very much appreciate how Sven Knebel extensively responded to my previous posting on some Webmention issues I came across. Some of his responses do make me have new questions. About the wrong URL, i.e. not the source of the webmention, showing up in a Webmention, Sven writes: …. There’s a href...

IndieWeb Summit 2018 Recap

Last week was the 8th annual IndieWeb Summit held in Portland, Oregon. While IndieWeb Camps and Summits have traditionally been held on weekends during people’s free time, this one held in the middle of the week was a roaring success. With well over 50 people in attendance, this was almost certainly the largest attendance I’ve seen to date. I suspect since people who flew in for the event had really committed, the attendance on the second day was much higher than usual as well. It was great to see so many people hacking on their personal websites and tools to make their personal online experiences richer.

The year of the Indie Reader

Last year I wrote the post Feed Reader Revolution in response to an increasingly growing need I’ve seen in the social space for a new sort of functionality in feed readers. While there have been a few interesting attempts like Woodwind which have shown a proof-of-concept, not much work had been done until some initial work by Aaron Parecki and a session at last year’s IndieWeb Summit entitled Putting it all Together.

Over the past year I’ve been closely watching Aaron Parecki; Grant Richmond and Jonathan LaCour; Eddie Hinkle; and Kristof De Jaeger’s collective progress on the microsub specification as well as their respective projects Aperture/Monocle; Together; Indigenous/Indigenous for iOS; and Indigenous for Android. As a result in early May I was overjoyed to suggest a keynote session on readers and was stupefied this week as many of them have officially launched and are open to general registration as relatively solid beta web services.

I spent a few minutes in a session at the end of Tuesday and managed to log into Aperture and create an account (#16, though I suspect I may be one of the first to use it besides the initial group of five developers). I also managed to quickly and easily add a microsub endpoint to my website as well. Sadly I’ve got some tweaks to make to my own installation to properly log into any of the reader app front ends. Based on several of the demos I’ve seen over the past months, the functionality involved is not only impressive, but it’s a properly large step ahead of some of the basic user interface provided by the now-shuttered Woodwind.xyz service (though the code is still available for self-hosting.)

Several people have committed to make attempts at creating a microsub server including Jack Jamieson who has announced an attempt at creating one for WordPress after having recently built the Yarns reader for WordPress from scratch this past year. I suspect within the coming year we’ll see one or two additional servers as well as some additional reading front ends. In fact, Ryan Barrett spent the day on Wednesday hacking away at leveraging the News Blur API and leveraging it to make News Blur a front end for Aperture’s server functionality. I’m hoping others may do the same for other popular readers like Feedly or Inoreader to expand on the plurality of offerings. Increased competition for new reader offerings can only improve the entire space.

Even more reading related support

Just before the Summit, gRegor Morrill unveiled the beta version of his micropub client Indiebookclub.biz which allows one to log in with their own website and use it to post reading updates to their own website. For those who don’t yet support micropub, the service saves the data for eventual export. His work on it continued through the summit to continue to improve an already impressive product. It’s the fist micropub client of its kind amidst a growing field of websites (including WordPress and WithKnown which both have plugins) that offer reading post support. Micro.blog has recently updated its code to allow users of the platform the ability to post reads with indiebookclub.biz as well. As a result of this spurt of reading related support there’s now a draft proposal to add read-of and read-status support as new Microformats. Perhaps reads will be included in future updates of the post-type-discovery algorithm as well?

Given the growth of reading post support and a new micropub read client, I suspect it won’t take long before some of the new microsub-related readers begin supporting read post micropub functionality as well.

IndieAuth Servers

In addition to David Shanske’s recent valiant update to the IndieAuth plugin for WordPress, Manton Reece managed to finish up coding work to unveil another implementation of IndieAuth at the Summit. His version is for the micro.blog platform which is a significant addition to the community and will add several hundred additional users who will have broader access to a wide assortment of functionality as a result.

The Future

While work continues apace on a broad variety of fronts, I was happy to see that my proposal for a session on IndieAlgorithms was accepted (despite my leading another topic earlier in the day). It was well attended and sparked some interesting discussion about how individuals might also be able to exert greater control over what they’re presented to consume. With the rise of Indie feed readers this year, the ability to better control and filter one’s incoming content is going to take on a greater importance in the very near future. With an increasing number of readers to choose from, more people will hopefully be able to free themselves from the vagaries of the blackbox algorithms that drive content distribution and presentation in products like Facebook, Twitter, Instagram and others. Based on the architecture of servers like Aperture, perhaps we might be able to modify some of the microsub spec to allow more freedom and flexibility in what will assuredly be the next step in the evolution of the IndieWeb?

Diversity

While there are miles and miles to go before we sleep, I was happy to have seen a session on diversity pop up at the Summit. I hope we can all take the general topic to heart to be more inclusive and actively invite friends into our fold. Thanks to Jean for suggesting and guiding the conversation and everyone else for continuing it throughout the rest of the summit and beyond.

Other Highlights

Naturally, the above are just a few of the bigger highlights as I perceive them. I’m sure others will appear in the IndieNews feed or other blogposts about the summit. The IndieWeb is something subtly different to each person, so I hope everyone takes a moment to share (on your own sites naturally) what you got out of all the sessions and discussions. There was a tremendous amount of discussion, debate, and advancement of the state of the art of the continually growing IndieWeb. Fortunately almost all of it was captured in the IndieWeb chat, on Twitter, and on video available through either the IndieWeb wiki pages for the summit or directly from the IndieWeb YouTube channel.

I suspect David Shanske and I will have more to say in what is sure to be a recap episode in our next podcast.

Photos

Finally, below I’m including a bunch of photos I took over the course of my trip. I’m far from a professional photographer, but hopefully they’ll give a small representation of some of the fun we all had at camp.

Final Thanks

People

While I’m thinking about it, I wanted to take a moment to thank everyone who came to the summit. You all really made it a fantastic event!

I’d particularly like to thank Aaron Parecki, Tantek Çelik, gRegor Morrill, Marty McGuire, and David Shanske who did a lot of the organizing and volunteer work to help make the summit happen as well as to capture it so well for others to participate remotely or even view major portions of it after-the-fact. I would be remiss if I didn’t thank Martijn van der Ven for some herculean efforts on IRC/Chat in documenting things in real time as well as for some serious wiki gardening along the way. As always, there are a huge crew of others whose contributions large and small help to make up the rich fabric of the community and we wouldn’t be who we are without your help. Thank you all! (Or as I might say in chat: community++).

And finally, a special personal thanks to Greg McVerry for kindly letting me join him at the Hotel deLuxe for some late night discussions on the intersection of IndieWeb and Domain of One’s Own philosophies as they dovetail with the education sector.  With growing interest and a wealth of ideas in this area, I’m confident it’s going to be a rapidly growing one over the coming years.

Sponsors

I’d also like to take a moment to say thanks to all the sponsors who helped to make the event a success including Name.com, GoDaddy, Okta, Mozilla, DreamHost, and likely a few others who I’m missing at the moment.

I’d also like to thank the Eliot Center for letting us hosting the event at their fabulous facility.

Reply to Ian O’Bryne on annotations

Replied to a tweet by William Ian O'ByrneWilliam Ian O'Byrne (Twitter)
Ian, thanks for putting together all of these examples. I think my preference is for option three which provides the most context and seems easiest to read and understand. I like the way you’ve incorporated the blue arrow, which makes semantic sense as well.

I’m sure I’ve seen other versions, but Jon Udell has at least one example of some annotations on his own website like yours too.

When it comes to the “conversation” side of what you’re looking for, I think the biggest piece you’re really missing and which some on the Hypothes.is side (except perhaps for Nate who may have a stronger grasp of their value after the recent IndiewWeb Summit) are apt to miss is that Hypothes.is doesn’t support sending webmentions. Presently you’re putting your data out there in a one-sided manner and Hypothes.is isn’t pushing the other side or any of the follow up back to you. As a result it’s operating as a social silo the same way that sites like Facebook and Twitter do. Based on their GitHub repository, I know that they’ve considered webmentions in the past, but apparently it got put on a back burner and hasn’t been revisited.

Ideally they’d want to have webmentions work in two places. It would be great if they could send webmentions of annotations/highlights to the original page itself, so that the site owner is aware that their content is being marked up or used in this manner. This also means that Hypothes.is could be used as a full-blown and simple commenting system as well so that those who aren’t using their own sites to write replies could use Hypothes.is as an alternative. The second thing it might want to do is to send webmentions, particularly for replies, to the original page as well as to any URLs that are mentioned in the comment thread which appears on Hypothes.is. This would mean that you’d want to add the permalink to your post back to the copy you put on Hypothes.is so that you and your website stay in the loop on the entirety of the conversation. In many senses, this is just mirroring what is going on in threaded Twitter conversations that get mirrored back to your WordPress website. [I’ll note that I think I’ve got the last of the moving pieces for this Twitter/WordPress workflow properly linked up in the past week.] Since Twitter doesn’t support webmentions itself, Brid.gy is handling that part for you, but in Hypothes.is’ case you don’t have any of the details coming back for allowing you to display the discussion on your site except by doing so manually. Doing it manually for extended conversations is going to become painful over time.

From an IndieWeb perspective, you’re primarily implementing a PESOS workflow in which you post first on Hypothes.is and then send a copy of it to your own website. Naturally it would be better if you were posting all the details on your own website and using the Hypothes.is API to syndicate your copy there for additional public conversation outside of the readership of your website. Unfortunately building the infrastructure to do this is obviously quite daunting. Since they’ve got an API, you might be able to bootstrap something webmention-like onto it, but for your purposes it would obviously be easier if they had direct webmention support.

It would also be wonderful if Hypothes.is supported the micropub specification as well. Then you could ideally log into the system as your website and any annotations you made could be automatically be published to your website for later storage, display, or other use. In some sense, this is what I’m anticipating by making  explicit standalone annotation and highlight post kinds on my website. In practice, however, like you, I’d prefer to have a read, like, or bookmark-type of post that aggregates all of my highlights, annotations, and marginalia of a particular piece for easier future use as well as the additional context this provides. I suspect that if I had the additional tag within the Hypothesis Aggregator plugin for WordPress that would let me specify the particular URL of an individual article, I would have most of the front side PESOS functionality we’re all looking for. The rest will require either webmention or a lot more work.

I may have mentioned it before, but in case you hadn’t found it I’ve got a handful of posts on annotations, many of which include some Hypothes.is functionality.

Not itemized in that list (yet?) are some experiments I’d done with the Rory Rosenzweig Center’s PressForward plugin for WordPress. It allowed me to use a simple browser bookmarklet to save a webpage’s content to my personal website with a rel=”canonical” tag for the page pointing at the original page. (Here’s a good example.) Because of the way the canonical set up works within Hypothes.is, I noticed that annotations I (and others) made on the original were also mirrored and available on my website as well. In my case, because PressForward was copying the entirety of the article for me, I used the <mark> HTML tag to make the highlights on my page, but with Hypothes.is enabled, it also shows the other public annotations as well. (Use of the title attribute adds some additional functionality when the mark tagged text is hovered over in most browsers.)

In another example, I annotated a copy of one of Audrey Watters’ articles (after she’d disabled the ability for Hypothesis to work on her site, but before she changed the Creative Commons licensing on her website). But here I added my annotations essentially as pull-quotes off to the side and syndicated copies to Hypothes.is by annotating the copy on my website. If you visit Audrey’s original, you’ll see that you cannot enable Hypothesis on it, but if you’re using the Chrome extension it will correctly indicate that there are five annotations on the page (from my alternate copy which indicates hers is the rel=”canonical”).

In any case, thanks again for your examples and documenting your explorations. I suspect as time goes by we’ll find a more IndieWeb-centric method for doing exactly what you’ve got in mind in an even easier fashion. Often doing things manually for a while will help you better define what you want and that will also make automating it later a lot easier.

 

 

👓 The whole of WordPress compiled to .NET Core and a NuGet Package with PeachPie | Scott Hanselman

Read The whole of WordPress compiled to .NET Core and a NuGet Package with PeachPie (hanselman.com)
Why? Because it's awesome. Sometimes a project comes along that is impossibly ambitious and it works. I've blogged a ...

👓 What the IndieWeb on WordPress needs | Brad Enslen

Read What the IndieWeb on WordPress needs by Brad Brad (Brad Enslen)
What the IndieWeb on WordPress needs is to be much more robust.  Or it just needs to be more robust in general even without WordPress.  When it works its glorious. When it doesn’t then you get that free falling and forgot your parachute feeling. Just before you slam into the ground. It also need...

Threaded conversations between WordPress and Twitter

I’ve written about threading comments from one WordPress website to another before. I’ve long suspected this type of thing could be done with Twitter, but never really bothered with it or necessarily needed to do it, though I’ve often seen cases where others might have wanted to do this.

For a post today, I wrote on my own site and syndicated it to Twitter and got a reply back via webmention through Brid.gy. This process happens for me almost every day, and this all by itself feels magical.  The real magic however, and I don’t think I’ve done this before or seen it done, was that I replied to the backfed comment on my site inline and manually syndicated to Twitter using a permalink of the form http://www.example.com/standard-permalink-structure/?replytocom=57527#respond, where 57527 is the particular comment ID for my inline comment. (This comment ID can typically be found by hovering over the “Reply” or “Comment” button on one’s WordPress website in most browsers.)

Where to find the comment ID to provide the proper permalink to get properly nested comments backfed to your site.

When a reply to my second syndicated Twitter post came in, Brid.gy properly sent it as a comment to my comment AND nested it properly!

I’ve now got a nested copy of the conversation on my site that is identical to the one on Twitter.

I suspect that by carefully choosing the URL structure you syndicate to Twitter, you’ll allow yourself more control over how backfed comments from Brid.gy nest (or don’t) in your response section on your site.

Perhaps even more powerfully, non-WordPress-based websites could also use these permalinks structures for composing their replies to WordPress sites to have their replies nest properly too. I think I’ve seen Aaron Parecki do this in the wild.

Since the WordPress Webmention plugin now includes functionality for sending webmentions directly from the comments section, I’ll have to double check that the microformats on my comments are properly marked up to  see if I can start leveraging Brid.gy publish functionality to send threaded replies to Twitter automatically. Or perhaps work on something that will allow automatic replies via Twitter API. Hmmm…

Despite the fact that this could all be a bit more automated, the fact that one can easily do threaded replies between WordPress and Twitter makes me quite happy.

Thread onward!

For more on my IndieWeb explorations with Twitter, see my IndieWeb Research page.

I’ve had refbacks on the brain for the past couple of months after having read Why Refback Still Matters, so I figured since I’ve already got the pingbacks, trackbacks, and webmentions enabled, what’s one more way to communicate with my website from the outside? So as of this evening, just for fun, I’m now accepting refbacks too.

Besides earlier this week I joined my first webring in over a decade as well. It can’t be any more embarrassing to support old web tech can it?

 

👓 Brainstorming on Implementing Vouch, Following and Blogrolls | David Shanske

Read Brainstorming on Implementing Vouch, Following and Blogrolls by David ShanskeDavid Shanske (David Shanske)
Vouch is an extension to the webmention protocol. Webmentions usually have two parameters…source and target. Target is the URL on your website  that the Source URL is linking to. The vouch parameter is a third URL to help the target determine whether or not they should accept the webmention. This...
I like the sound of where this is going already! All these small little pieces loosely joined to build a much larger edifice is certainly interesting.

I’ve got a somewhat reasonable bookmarklet for quickly following people, though it’s not marked up with XFN data (yet) — perhaps another data field for Post Kinds? I do wish that there was either a mechanism for adding those to my Following page via the WordPress Link Manager or someone had a means of parsing lots of follow posts so I could quickly have data for both Vouch as well as for microsub readers either via my follow feed list or via OPML export and/or OPML subscription. WordPress obviously has some of the infrastructure built already, but there’s certainly a more IndieWeb way of doing it that wouldn’t require side-files like OPML.

Read The New York Times Develops a WordPress Collaboration Plugin for Editors (WPMU DEV Blog)
Earlier this year, the New York Times released a WordPress plugin that will help sites that use editors to proofread and edit others’ posts or sites where writers collaborate on the same post. The plugin, called Integrated Content Editor (or ICE), allows changes to a post to be tracked and then accepted or rejected, much like the Track Changes feature in Microsoft Word. Here’s a glimpse of the plugin in action: In an interview with Poynter.org, Chief Technology Officer Marc Frons from the Times explained why the paper first had the tool developed for their own use.
Looks like development on this has died though…

An Outline for Using Hypothesis for Owning your Annotations and Highlights

I was taken with Ian O’Byrne’s righteous excitement in his video the other day over the realization that he could potentially own his online annotations using Hypothesis, that I thought I’d take a moment to outline a few methods I’ve used.

There are certainly variations of ways for attempting to own one’s own annotations using Hypothesis and syndicating them to one’s website (via a PESOS workflow), but I thought I’d outline the quickest version I’m aware of that requires little to no programming or code, but also allows some relatively pretty results. While some of the portions below are WordPress specific, there’s certainly no reason they couldn’t be implemented for other systems.

Saving individual annotations one at a time

Here’s an easy method for taking each individual annotation you create on Hypothesis and quickly porting it to your site:

Create an IFTTT.com recipe to port your Hypothesis RSS feed into WordPress posts. Generally chose an “If RSS, then WordPress” setup and use the following data to build the recipe:

  • Input feed: https://hypothes.is/stream.atom?user=username (change username to your user name)
  • Optional title: 📑 {{EntryTitle}}
  • Body: {{EntryContent}} from {{EntryUrl}} <br />{{EntryPublished}}
  • Categories: Highlight (use whatever categories you prefer, but be aware they’ll apply to all your future posts from this feed)
  • Tags: hypothes.is
  • Post status (optional): I set mine to “Draft” so I have the option to keep it privately or to publish it publicly at a later date.

Modify any of the above fields as necessary for your needs. IFTTT.com usually polls your feed every 10-15 minutes. You can usually pretty quickly take this data and turn it into your post kind of preference–suggestions include read, bookmark, like, favorite, or even reply. Add additional categories, tags, or other metadata as necessary for easier searching at a later time.

Here’s an example of one on my website that uses this method. I’ve obviously created a custom highlight post kind of my own for more specific presentation as well as microformats markup.

A highlight from Hypothesis posted on my own website using some customized code to create a “Highlight post” using the Post Kinds Plugin.

Aggregating lots of annotations on a single page

If you do a lot of annotations on Hypothesis and prefer to create a bookmark or read post that aggregates all of your annotations on a given post, the quickest way I’ve seen on WordPress to export your data is to use the Hypothesis Aggregator plugin [GitHub].

  • Create a tag “key” for a particular article by creating an acronym from the article title followed by the date and then the author’s initials. This will allow you to quickly conglomerate all the annotations for a particular article or web page. As an example for this article I’d use: OUHOAH062218CA. In addition to any other necessary tags, I’ll tag each of my annotations on the particular article with this somewhat random, yet specific key for which there are unlikely to be any other similar tags in my account.
  • Create a bookmark, read, reply or other post kind to which you’ll attach your annotations. I often use a bookmarklet for speed here.
  • Use the Hypothesis Aggregator’s short code for your tag and username to pull your annotations for the particular tag. It will look like this:
    [hypothesis user = 'username' tags = 'tagname']

    If you’re clever, you could include this shortcode in the body of your IFTTT recipe (if you’re using drafts) and simply change the tag name to the appropriate one to save half a step or need to remember the shortcode format each time.

If you’re worried that Hypothes.is may eventually shut down, the plugin quits working (leaving you with ugly short codes in your post) or all of the above, you can add the following steps as a quick work-around.

  • Input the shortcode as above, click on the “Preview” button in WordPress’s Publish meta box which will open a new window and let you view your post.
  • Copy the preview of the annotations you’d like to keep in your post and paste them over your shortcode in the Visual editor tab on your draft post. (This will maintain the simple HTML formatting tags, which you can also edit or supplement if you like.)
  • I also strip out the additional unnecessary data from Hypothesis Aggregator about the article it’s from as well as the line about who created the annotation which isn’t necessary as my post will implicitly have that data. Depending on how you make your post (i.e. not using the Post Kinds Plugin), you may want to keep it.

As Greg McVerry kindly points out, Jon Udell has created a simple web-tool for inputting a few bits of data about a set of annotations to export them variously in HTML, CSV, or JSON format. If you’re not a developer and don’t want to fuss with Hypothesis’ API, this is also a reasonably solid method of quickly exporting subsections of your annotations and cutting and pasting them onto your website. It does export a lot more data that one might want for their site and could require some additional clean up, particularly in HTML format.

Perhaps with some elbow grease and coding skill, sometime in the future, we’ll have a simple way to implement a POSSE workflow that will allow you to post your annotations to your own website and syndicate them to services like Hypothesis. In the erstwhile, hopefully this will help close a little of the data gap for those using their websites as their commonplace books or digital notebooks.