IndieWeb Journalism in the Wild

I noticed a few days ago that professor and writer John Naughton not only has his own website but that he’s posting both his own content to it as well as (excerpted) content he’s writing for other journalistic outlets, lately in his case for The Guardian. This is awesome for so many reasons. The primary reason is that I can follow him via his own site and get not only his personally posted content, which informs his longer pieces, but I don’t need to follow him in multiple locations to get the “firehose” of everything he’s writing and thinking about. While The Guardian and The Observer are great, perhaps I don’t want to filter through multiple hundreds of articles to find his particular content or potentially risk missing it?  What if he was writing for 5 or more other outlets? Then I’d need to delve in deeper still and carry a multitude of subscriptions and their attendant notifications to get something that should rightly emanate from one location–him! While he may not be posting his status updates or Tweets to his own website first–as I do–I’m at least able to get the best and richest of his content in one place. Additionally, the way he’s got things set up, The Guardian and others are still getting the clicks (for advertising sake) while I still get the simple notifications I’d like to have so I’m not missing what he writes.

His site certainly provides an interesting example of either POSSE or PESOS in the wild, particularly from an IndieWeb for Journalism or even an IndieWeb for Education perspective. I suspect his article posts occur on the particular outlet first and he’s excerpting them with a link to that “original”. (Example: A post on his site with a link to a copy on The Guardian.) I’m not sure whether he’s (ideally) physically archiving the full post there on his site (and hiding it privately as both a personal and professional portfolio of sorts) or if they’re all there on the respective pages, but just hidden behind the “read more” button he’s providing. I will note that his WordPress install is giving a rel=”canonical link to itself rather than the version at The Guardian, which also has a rel=”canonical” link on it. I’m curious to take a look at how Google indexes and ranks the two pages as a result.

In any case, this is a generally brilliant set up for any researcher, professor, journalist, or other stripe of writer for providing online content, particularly when they may be writing for a multitude of outlets.

I’ll also note that I appreciate the ways in which it seems he’s using his website almost as a commonplace book. This provides further depth into his ideas and thoughts to see what sources are informing and underlying his other writing.

Alas, if only the rest of the world used the web this way…

Thoughts on linkblogs, bookmarks, reads, likes, favorites, follows, and related links

Within the social media space there’s a huge number of services that provide a variety of what I would call bookmark-type functionality of one sort or another. They go under a variety of monikers including bookmarks, likes, favorites, stars, reads, follows, claps, and surely many quirky others. Each platform has created its own semantics which don’t always overlap with the others.

Because I’m attempting to own all of my own data, I’ve roughly mapped many of these intents into my own website. But because I have the ultimate control over them, I get to form my own personal definitions. I also have a lot more control over them in addition to adding other metadata to each for better after-the-fact search and use within my personal online commonplace book. As such, I thought it might be useful to lay out some definitions (both for myself and others) for how I view these on my website.

At the basest level, I look at most of these interactions simply as URL permalinks to interesting content and their aggregation as a “linkblog”, or a feed of interesting links I’ve come across. The specific names given to them imply a level of specificity about what I think exactly makes them interesting.

In addition to a bookmark specific feed, which by itself could be considered a “traditional” linkblog, my site also has separate aggregated feeds for things I’ve liked, read, followed, and favorited. It’s the semantic reasons for saving or featuring these pieces of content which ultimately determine which names they ultimately have. (For those interested in subscribing to one or or more, or all of these, one can add /feed/ to the ends of the specific types’ URLs, which I’ve linked,  for an RSS feed. Thus, for example, http://boffosocko.com/type/link/feed/ will give you the RSS feed for the “Master” linkblog that includes all the bookmarks, likes, reads, follows, and favorites.)

On my site, I try to provide a title for the content and some type of synopsis of what the content is about. These help to provide some context to others seeing them as well as a small reminder to me of what they were about. When appropriate/feasible, I’ll try to include an image for similar reasons. I’ll also often add a line of text or two as a commentary or supplement to my thoughts on the piece. Finally, I add an icon to help to quickly visually indicate which of the types of posts each is, so they can be more readily distinguished when seen in aggregate.

In relative order of decreasing importance or value to me I would put them in roughly the following order of importance (with their attached meanings as I view them on my site):

  1. Favorite – This is often something which might easily have had designations of bookmark, like, and/or read, or even multiple of them at the same time. In any case they’re often things which I personally find important or valuable in the long term. There are far less of these than any of the other types of linkblog-like posts.
  2. Follow – Indicating that I’m now following a person, organization, or source of future content which I deem to have enough regular constant value to my life that I want to be able to see what that source is putting out on a regular basis. Most often these sources have RSS feeds which I consume in a feed reader, but frequently they’ll appear on other social silos which I will have ported into a feed reader as well. Of late I try to be much more selective in what I’m following and why. I also categorize sources based on topics of value to me. Follows often include sources which I have either previously often liked or bookmarked or suspect I would like or bookmark frequently in the future. For more details see: A Following Page (aka some significant updates to my Blogroll) and the actual Following page.
  3. Read – These are linkblog-like posts which I found interesting enough for one reason or another to have actually spent the time to read in their entirety. For things I wish to highlight or found most interesting, I’ll often add additional thought or commentary in conjunction with the post.
  4. Like – Depending on the content, these posts may not always have been read in their entirety, but I found them more interesting than the majority of content which I’ve come across. Most often these posts serve to show my appreciation for the original source of the related post as a means of saying “congratulations”, “kudos”, “good job”, or in cases of more personal level content “I appreciate this”, “you’re awesome”, or simply as the tag says “I liked this.”
  5. Bookmark – Content which I find interesting, but might not necessarily have the time to deal with at present. Often I’ll wish to circle back to the content at some future point and engage with at a deeper level. Bookmarking it prevents me from losing track of it altogether. I may optionally add a note about how the content came to my attention to be able to better remember it at a future time. While there are often things here which others might have “liked” or “favorited” on other social silos, on my site these things have been found interesting enough to have been bookmarked, but I haven’t personally read into them enough yet to form any specific opinion about them beyond their general interest to me or potentially followers interested in various category tags I use. I feel like this is the lowest level of interaction, and one in which I see others often like, favorite, or even repost on other social networks without having actually read anything other than the headline, if they’ve even bothered to do that. In my case, however, I more often than not actually come back to the content while others on social media rarely, if ever, do.

While occasionally some individual specimens of each might “outrank” others in the category above this is roughly the order of how I perceive them. Within this hierarchy, I do have some reservations about including the “follow” category, which in some sense I feel stands apart from the continuum represented by the others. Still it fits into the broader category of a thing with a URL, title, and high interest to me. Perhaps the difference is that it represents a store of future potentially useful information that hasn’t been created or consumed yet? An unseen anti-library of people instead of books in some sense of the word.

I might also include the Reply post type toward the top of the list, but for some time I’ve been categorizing these as “statuses” or “note-like” content rather than as “links”. These obviously have a high priority if lumped in as I’ve not only read and appreciated the underlying content, but I’ve spent the time and thought to provide a reasoned reply, particularly in cases where the reply has taken some time to compose. I suppose I might more likely include these as linkblog content if I didn’t prefer readers to value them more highly than if they showed up in those feeds. In some sense, I value the replies closer on par to my longer articles for the value of not only my response, but for that of the original posts themselves.

In general, if I take the time to add additional commentary, notes, highlights, or other marginalia, then the content obviously resonated with me much more than those which stand as simple links with titles and descriptions.

Perhaps in the near future, I’ll write about how I view these types on individual social media platforms. Often I don’t post likes/favorites from social platforms to my site as they often have less meaning to me directly and likely even less meaning to my audiences here. I suppose I could aggregate them here on my site privately, but I have many similar questions and issues that Peter Molnar brings up in his article Content, Bloat, privacy, arichives.

I’m curious to hear how others apply meaning to their linkblog type content especially since there’s such a broad range of meaning from so many social sites. Is there a better way to do it all? Is it subtly different on sites which don’t consider themselves (or act as) commonplace books?

Podcasts of things I’ve listened to or want to listen to

I don’t really think of it as a “podcast” per se, but since I make “listen” posts of all the various podcasts and audio I listen to and the vast majority of those posts include direct links to the audio files, my own listen feed essentially becomes a self-published podcast of all the stuff I’m listening to that others could potentially consume. Maybe I should call it a faux-cast?

Here’s the link you can use to subscribe in your favorite podcatcher: http://boffosocko.com/kind/listen/feed/

Perhaps one day I’ll do more with feed validation and submit it to various distribution channels to make searching/subscribing easier, but since I’m not really “promoting” it as anything other than a means of discovery (or extreme stalker behavior) I won’t take the time now.

As I think about creating “want” posts in the near term, perhaps I’ll create a feed of want-to-listen-to items as another discovery channel option as well. In some sense, this is how I use my Huffduffer.com account. It has a subscribe-able list of audio items I want to listen to at some point in the future. Since I can add my Huffduffer feed (or those of others) to my podcatcher, it helps enable me to easily get the content to my phone or other devices to listen to a variety of new things. There’s no reason not to do all of this on my own site explicitly.

Now if only podcatchers could support micropub for more easily creating scrobbles or “listens”…

Image credit: Text imposed on original photo: Tilt_Shift_Wallpaper_24_by_leiyagami flickr photo by Ray Che shared under a Creative Commons (BY-NC) license.

Organizing my research related reading

There’s so much great material out there to read and not nearly enough time. The question becomes: “How to best organize it all, so you can read even more?”

I just came across a tweet from Michael Nielsen about the topic, which is far deeper than even a few tweets could do justice to, so I thought I’d sketch out a few basic ideas about how I’ve been approaching it over the last decade or so. Ideally I’d like to circle back around to this and better document more of the individual aspects or maybe even make a short video, but for now this will hopefully suffice to add to the conversation Michael has started.

Keep in mind that this is an evolving system which I still haven’t completely perfected (and may never), but to a great extent it works relatively well and I still easily have the ability to modify and improve it.

Overall Structure

The first piece of the overarching puzzle is to have a general structure for finding, collecting, triaging, and then processing all of the data. I’ve essentially built a simple funnel system for collecting all the basic data in the quickest manner possible. With the basics down, I can later skim through various portions to pick out the things I think are the most valuable and move them along to the next step. Ultimately I end up reading the best pieces on which I make copious notes and highlights. I’m still slowly trying to perfect the system for best keeping all this additional data as well.

Since I’ve seen so many apps and websites come and go over the years and lost lots of data to them, I far prefer to use my own personal website for doing a lot of the basic collection, particularly for online material. Toward this end, I use a variety of web services, RSS feeds, and bookmarklets to quickly accumulate the important pieces into my personal website which I use like a modern day commonplace book.

Collecting

In general, I’ve been using the Inoreader feed reader to track a large variety of RSS feeds from various clearinghouse sources (including things like ProQuest custom searches) down to individual researcher’s blogs as a means of quickly pulling in large amounts of research material. It’s one of the more flexible readers out there with a huge number of useful features including the ability to subscribe to OPML files, which many readers don’t support.

As a simple example arXiv.org has an RSS feed for the topic of “information theory” at http://arxiv.org/rss/math.IT which I subscribe to. I can quickly browse through the feed and based on titles and/or abstracts, I can quickly “star” the items I find most interesting within the reader. I have a custom recipe set up for the IFTTT.com service that pulls in all these starred articles and creates new posts for them on my WordPress blog. To these posts I can add a variety of metadata including top level categories and lower level tags in addition to other additional metadata I’m interested in.

I also have similar incoming funnel entry points via many other web services as well. So on platforms like Twitter, I also have similar workflows that allow me to use services like IFTTT.com or Zapier to push the URLs easily to my website. I can quickly “like” a tweet and a background process will suck that tweet and any URLs within it into my system for future processing. This type of workflow extends to a variety of sites where I might consume potential material I want to read and process. (Think academic social services like Mendeley, Academia.com, Diigo, or even less academic ones like Twitter, LinkedIn, etc.) Many of these services often have storage ability and also have simple browser bookmarklets that allow me to add material to them. So with a quick click, it’s saved to the service and then automatically ported into my website almost without friction.

My WordPress-based site uses the Post Kinds Plugin which takes incoming website URLs and does a very solid job of parsing those pages to extract much of the primary metadata I’d like to have without requiring a lot of work. For well structured web pages, it’ll pull in the page title, authors, date published, date updated, synopsis of the page, categories and tags, and other bits of data automatically. All these fields are also editable and searchable. Further, the plugin allows me to configure simple browser bookmarklets so that with a simple click on a web page, I can pull its URL and associated metadata into my website almost instantaneously. I can then add a note or two about what made me interested in the piece and save it for later.

Note here, that I’m usually more interested in saving material for later as quickly as I possibly can. In this part of the process, I’m rarely ever interested in reading anything immediately. I’m most interested in finding it, collecting it for later, and moving on to the next thing. This is also highly useful for things I find during my busy day that I can’t immediately find time for at the moment.

As an example, here’s a book I’ve bookmarked to read simply by clicking “like” on a tweet I cam across late last year. You’ll notice at the bottom of the post, I’ve optionally syndicated copies of the post to other platforms to “spread the wealth” as it were. Perhaps others following me via other means may see it and find it useful as well?

Triaging

At regular intervals during the week I’ll sit down for an hour or two to triage all the papers and material I’ve been sucking into my website. This typically involves reading through lots of abstracts in a bit more detail to better figure out what I want to read now and what I’d like to read at a later date. I can delete out the irrelevant material if I choose, or I can add follow up dates to custom fields for later reminders.

Slowly but surely I’m funneling down a tremendous amount of potential material into a smaller, more manageable amount that I’m truly interested in reading on a more in-depth basis.

Document storage

Calibre with GoodReads sync

Even for things I’ve winnowed down, there is still a relatively large amount of material, much of it I’ll want to save and personally archive. For a lot of this function I rely on the free multi-platform desktop application Calibre. It’s essentially an iTunes-like interface, but it’s built specifically for e-books and other documents.

Within it I maintain a small handful of libraries. One for personal e-books, one for research related textbooks/e-books, and another for journal articles. It has a very solid interface and is extremely flexible in terms of configuration and customization. You can create a large number of custom libraries and create your own searchable and sort-able fields with a huge variety of metadata. It often does a reasonable job of importing e-books, .pdf files, and other digital media and parsing out their meta data which prevents one from needing to do some of that work manually. With some well maintained metadata, one can very quickly search and sort a huge amount of documents as well as quickly prioritize them for action. Additionally, the system does a pretty solid job of converting files from one format to another, so that things like converting an .epub file into a .mobi format for Kindle are automatic.

Calibre stores the physical documents either in local computer storage, or even better, in the cloud using any of a variety of services including Dropbox, OneDrive, etc. so that one can keep one’s documents in the cloud and view them from a variety of locations (home, work, travel, tablet, etc.)

I’ve been a very heavy user of GoodReads.com for years to bookmark and organize my physical and e-book library and anti-libraries. Calibre has an exceptional plugin for GoodReads that syncs data across the two. This (and a few other plugins) are exceptionally good at pulling in missing metadata to minimize the amount that must be done via hand, which can be tedious.

Within Calibre I can manage my physical books, e-books, journal articles, and a huge variety of other document related forms and formats. I can also use it to further triage and order the things I intend to read and order them to the nth degree. My current Calibre libraries have over 10,000 documents in them including over 2,500 textbooks as well as records of most of my 1,000+ physical books. Calibre can also be used to add document data that one would like to ultimately acquire the actual documents, but currently don’t have access to.

BibTeX and reference management

In addition to everything else Calibre also has some well customized pieces for dovetailing all its metadata as a reference management system. It’ll allow one to export data in a variety of formats for document publishing and reference management including BibTex formats amongst many others.

Reading, Annotations, Highlights

Once I’ve winnowed down the material I’m interested in it’s time to start actually reading. I’ll often use Calibre to directly send my documents to my Kindle or other e-reading device, but one can also read them on one’s desktop with a variety of readers, or even from within Calibre itself. With a click or two, I can automatically email documents to my Kindle and Calibre will also auto-format them appropriately before doing so.

Typically I’ll send them to my Kindle which allows me a variety of easy methods for adding highlights and marginalia. Sometimes I’ll read .pdf files via desktop and use Adobe to add highlights and marginalia as well. When I’m done with a .pdf file, I’ll just resave it (with all the additions) back into my Calibre library.

Exporting highlights/marginalia to my website

For Kindle related documents, once I’m finished, I’ll use direct text file export or tools like clippings.io to export my highlights and marginalia for a particular text into simple HTML and import it into my website system along with all my other data. I’ve briefly written about some of this before, though I ought to better document it. All of this then becomes very easily searchable and sort-able for future potential use as well.

Here’s an example of some public notes, highlights, and other marginalia I’ve posted in the past.

Synthesis

Eventually, over time, I’ve built up a huge amount of research related data in my personal online commonplace book that is highly searchable and sortable! I also have the option to make these posts and pages public, private, or even password protected. I can create accounts on my site for collaborators to use and view private material that isn’t publicly available. I can also share posts via social media and use standards like webmention and tools like brid.gy so that comments and interactions with these pieces on platforms like Facebook, Twitter, Google+, and others is imported back to the relevant portions of my site as comments. (I’m doing it with this post, so feel free to try it out yourself by commenting on one of the syndicated copies.)

Now when I’m ready to begin writing something about what I’ve read, I’ve got all the relevant pieces, notes, and metadata in one centralized location on my website. Synthesis becomes much easier. I can even have open drafts of things as I’m reading and begin laying things out there directly if I choose. Because it’s all stored online, it’s imminently available from almost anywhere I can connect to the web. As an example, I used a few portions of this workflow to actually write this post.

Continued work

Naturally, not all of this is static and it continues to improve and evolve over time. In particular, I’m doing continued work on my personal website so that I’m able to own as much of the workflow and data there. Ideally I’d love to have all of the Calibre related piece on my website as well.

Earlier this week I even had conversations about creating new post types on my website related to things that I want to read to potentially better display and document them explicitly. When I can I try to document some of these pieces either here on my own website or on various places on the IndieWeb wiki. In fact, the IndieWeb for Education page might be a good place to start browsing for those interested.

One of the added benefits of having a lot of this data on my own website is that it not only serves as my research/data platform, but it also has the traditional ability to serve as a publishing and distribution platform!

Currently, I’m doing most of my research related work in private or draft form on the back end of my website, so it’s not always publicly available, though I often think I should make more of it public for the value of the aggregation nature it has as well as the benefit it might provide to improving scientific communication. Just think, if you were interested in some of the obscure topics I am and you could have a pre-curated RSS feed of all the things I’ve filtered through piped into your own system… now multiply this across hundreds of thousands of other scientists? Michael Nielsen posts some useful things to his Twitter feed and his website, but what I wouldn’t give to see far more of who and what he’s following, bookmarking, and actually reading? While many might find these minutiae tedious, I guarantee that people in his associated fields would find some serious value in it.

I’ve tried hundreds of other apps and tools over the years, but more often than not, they only cover a small fraction of the necessary moving pieces within a much larger moving apparatus that a working researcher and writer requires. This often means that one is often using dozens of specialized tools upon which there’s a huge duplication of data efforts. It also presumes these tools will be around for more than a few years and allow easy import/export of one’s hard fought for data and time invested in using them.

If you’re aware of something interesting in this space that might be useful, I’m happy to take a look at it. Even if I might not use the service itself, perhaps it’s got a piece of functionality that I can recreate into my own site and workflow somehow?

If you’d like help in building and fleshing out a system similar to the one I’ve outlined above, I’m happy to help do that too.

Related posts

Enabling two way communication with WordPress and GitHub for Issues

This week, using the magic of open web standards, I was able to write an issue post on my own website, automatically syndicate a copy of it to GitHub, and later automatically receive a reply to the copy on GitHub back to my original post as a comment there. This gives my personal website a means of doing two way communication with GitHub.

This functionality is another in a long line of content types my website is able to support so that I’m able to own my own content, yet still be able to interact with people on other websites and social media services. Given the number of social sites I’ve seen disappear over the years (often taking my content with them), this functionality gives me a tremendously larger amount of control and ownership over my web presence and identity while still allowing me to easily communicate with others.

In this post I wanted to briefly sketch what I’ve done to enable this functionality, so others who are so inclined can follow along to do the same thing.

Setting up WordPress to syndicate to GitHub

I’ll presume as a first step that one has both a GitHub account and a self-hosted WordPress website, though the details will also broadly apply to just about any content management system out there that supports the web standards mentioned.

Register your GitHub account and your website with Bridgy

Ryan Barrett runs a fantastic free open sourced service called Bridgy. To use it you’ll need the microformat rel=​​​“me” links on both your GitHub account and your website’s homepage that point at each other.  GitHub will do most of the work on its side for you simply by adding the URL of your website to the URL field for your GitHub account at https://github.com/settings/profile. Next on your website’s homepage, you’ll want to add a corresponding rel=​​​​​“me” link from your website to your GitHub account.

In my case, I have a simple widget on my homepage with roughly the following link:
<a href="https://github.com/username">GitHub</a>
in which I’ve replaced ‘username’ with my own GitHub username. There are a variety of other ways to add a rel=​​​​​“me” link to your webpage, some of which are documented on the IndieWeb wiki.

Now you can go to Brid.gy and under “Connect your accounts” click on the GitHub button. This will prompt you to sign into GitHub via oAuth if you’re not already logged into the site. If you are already signed in, Brid.gy will check that the rel=​​​​​“me” links on both your site and your GitHub account reciprocally point at each other and allow you to begin using the service to pull replies to your posts on GitHub back to your website.

To allow Brid.gy to publish to GitHub on your behalf (via webmention, which we’ll set up shortly), click on the “Publish” button.

Install the Webmention Plugin

The underlying technology that allows the Bridgy service to both publish on one’s behalf as well as for the replies from GitHub to come back to one’s site is an open web standard known as Webmention. WordPress can quickly and easily support this standard with the simple Webmention plugin that can be downloaded and activated on one’s site without any additional configuration.

For replies coming back from GitHub to one’s site it’s also recommended that one also install and activate the Semantic Linkbacks Plugin which also doesn’t require any configuration. This plugin provides better integration and UI features in the comments section of one’s website.

Install Post Kinds Plugin

The Post Kinds Plugin is somewhat similar to WordPress’s Post Formats core functionality, it just goes the extra mile to support a broader array of post types with the appropriate meta data and semantic markup for interacting with Bridgy, other web parsers, and readers.

Download the plugin, activate it, and in the plugin’s settings page enable the “Issue” kind. For more details on using it, I’ve written about this plugin in relative detail in the past.

Install Bridgy Publish Plugin

One can just as easily install the Bridgy Publish Plugin for WordPress and activate it. This will add a meta box to one’s publishing dashboard that, after a quick configuration of which social media silos one wishes to support, will allow one to click a quick checkbox to automatically syndicate their posts.

Install the Syndication Links Plugin

The Syndication Links plugin is also a quick install and activate process. You can modify the settings to allow a variety of ways to display your syndication links (or not) on your website if you wish.

This plugin will provide the Bridgy Publish Plugin a place to indicate the permalink of where your syndicated content lives on GitHub. The Bridgy service will use this permalink to match up the original content on your website and the copy on GitHub so that when there are replies, it will know which post to send those replies to as comments which will then live on your own website.

Post away

You should now be ready to write your first issue on your website, cross post it to GitHub (a process known in IndieWeb parlance as POSSE), and receive any replies to your GitHub issue as comments back to your own website.

Create a new post.

In the “Kinds” meta box, choose the “Issue” option.

Screen capture of the Kinds meta box with "Issue" option chosen.
Kinds meta box with “Issue” option chosen.

Type in a title for the issue in the “Title” field.

In the “Response Properties” meta box, put the permalink URL of the Github repopository for which you’re creating an issue. The plugin should automatically process the URL and import the repository name and details.

The “Response Properties” meta box.

In the primary editor, type up any details for the issue as you would on GitHub in their comment box. You can include a relatively wide variety of custom symbols and raw html including

and  with code samples which will cross-post and render properly.

In the GitHub meta box, select the GitHub option. You can optionally select other boxes if you’re also syndicating your content to other services as well. See the documentation for Bridgy and the plugin for how to do this.

Screen capture of the Bridgy Publish meta box with GitHub chosen
Bridgy Publish meta box with GitHub chosen.

Optionally set any additional metadata for your post (tags, categories, etc.) as necessary.

Publish your post.

On publication, your issue should be automatically filed to the issue queue of the appropriate GitHub repo and include a link back to your original (if selected). Your post should receive the syndicated permalink of the issue on GitHub and be displayed (depending on your settings) at the bottom of your post.

Syndication Links Plugin will display the location of your syndicated copies at the bottom of your post.

When Bridgy detects future interactions with the copy of your post on GitHub, it will copy them and send them to your original post as a webmention so that they can be displayed as comments there.

An example of a comment sent via webmention from GitHub via Brid.gy. It includes a permalink to the comment as well as a link to the GitHub user’s profile and their avatar.

If you frequently create issues on GitHub like this you might want a slightly faster way of posting. Toward that end, I’ve previously sketched out how to create browser bookmarklets that will allow you one click post creation from a particular GitHub repo to speed things along. Be sure to change the base URL of your website and include the correct bookmarklet type of “issue” in the code.

The Post Kinds plugin will also conveniently provide you with an archive of all your past Issue posts at the URL http://example.com/kind/issue/, where you can replace example.com with your own website. Adding feed/ to the end of that URL provides an RSS feed link as well. Post Kinds will also let you choose the “Reply” option instead of “Issue” to create and own your own replies to GitHub issues while still syndicating them in a similar manner and receive replies back.

Other options

Given the general set up of the variety of IndieWeb-based tools, there are a multitude of other ways one can also accomplish this workflow (both on WordPress as well as with an infinity of other CMSes). The outline I’ve provided here is one of the quickest methods for beginners that will allow a relatively high level of automation and almost no manual work.

One doesn’t necessarily need to use the Post Kinds Plugin, but could manually insert all the requisite HTML into their post editor to accomplish the post side of things via webmention. (One also has the option to manually syndicate the content to GitHub by cutting and pasting it as well.) If doing things manually this way is desired, then one will need to also manually provide a link to the syndicated post on GitHub into their original so that Bridgy can match up the copy and the original to send the replies via webmention.

More details on how to use Bridgy with Github manually in conjunction with WordPress or other CMSes can be found here: https://brid.gy/about#github-issue-comment

Further steps

If you’ve followed many of these broad steps, you’ve given already given yourself an incredibly strong IndieWeb-based WordPress installation. With a minimal amount of small modifications you can also use it to dovetail your website with other social services like Twitter, Facebook, Flickr, Instagram, Google+ and many others. Why not take a quick look around on the IndieWeb wiki to see what other magic you can perform with your website!

I’ve documented many of my experiments, including this one, in a collection of posts for reference.

Help

If you have questions or problems, feel free to comment below or via webmention using your own website. You can also find a broad array of help with these plugins, services, and many other pieces of IndieWeb technology in their online chat rooms.​​​​​​​​

Recap of Los Angeles Area Homebrew Website Club February 21, 2018

After a relatively quiet quiet writing hour where I worked on acquisition posts a bit, people began arriving just before the 6:30 pm official start time.

I kicked off the meeting with a quick overview of IndieWeb’s concepts and principles for newcomers. As a mini-case study I talked a bit about some of my work and conversations earlier today about thinking about adding acquisition posts to my website and the way in which I’m approaching the problem.

Asher Silberman was glad to be back at a meeting. He has recently been working on more content over functionality.

Micah Cambre showed off a gorgeous development version of the new theme he’s building for his site which is a super clean and pared down theme based on the Sage platform using WordPress. He’s hoping to finish it shortly so he can relaunch his personal site at http://asuh.com. He spent some time talking about the process of using David Shanske’s IndieWebified version of the Twenty Sixteen theme as a template for adding microformats and functionality to the Sage set up.

Richard Hopp, a gen2/gen3 user who is completely new to the community and interested in learning, has a personal domain at http://www.ricahardhopp.com/ on which he’s installed WordPress. He’s currently considering whether he’d like to begin blogging soon and what other functionality he’d like to have on his site. He’s relatively new to Facebook, having only joined about six months ago. On the professional side, he does some governmental related work and has some large collections of documents that he’s also doing some research for in consideration of how to best put them on the web for ease of search and use.

I wrapped up the demo portion with a quick showing of how I leveraged the power of the Post Kinds Plugin to facetiously add chicken posts to my site as a prelude to doing a tad more work to begin adding explicit follow posts.

We took a short break to take a photo of the group.

In the end of the evening we talked over a handful of broad ideas including user interface, webactions, and Twitter interactions.

We wrapped things up with a demo of how I use the URL Forwarder app on Android to post to my website via mobile. We then used some of this documentation to try to help Asher fix his previously broken browser bookmarklets to hopefully work better with the Post Kinds Plugin. I spent a few minutes to create a similar bookmarklet to add the ability to more easily add follow posts to my website since I hadn’t done it after adding them last week.

Henninger Trailhead / Eaton Canyon Wild Fire Coverage in Altadena, CA

A helicopter buzzing a palm tree

At roughly 4:09pm I noticed an incredibly low flying Los Angeles County Sherrif’s Office water drop helicopter buzz our neighborhood nearly missing the neighbors’ 50ft palm tree. There had been helicopter noise for about 10 minutes prior, so this got my immediate attention. I went outside to see a copious amounts of white smoke coming from the neighborhood just about 2 blocks north of the house.

I put on my shoes to see where the fire was originating and walked up the street.

View North from Harding Avenue and Berendo as I walked toward the fire

A satellite map of the exact location of the blaze.

Arrival at the Scene

I walked up to the rough scene (or as close as I could get given the situation and the smoke) at about 6:22. Traffic is being stopped on Altadena Drive from roughly Canyon Close Dr. up past Roosevelt Ave.

Firefighters are connecting hoses at Canyon Close Drive and running them up the street. I suspect this is to potentially defend the homes on the top side of the street because the fire and certainly the smoke are close enough to warrant it.

Water drops in progress

As I was walking up to the scene until about ten minutes later there were about 4 or 5 water drops by LA County Sheriff’s Helicopters.

Scene on the street

Ground Troops Arrive

Water drops seem to have stopped for the moment and groups of firefighters are arriving to descend down into Eaton Canyon to finish off the blaze. By rough count there were about 50-60 firefighters down in the canyon and roughly another 30 or so additional firefighters and other first responders up on the street providing support.

Clean up time

It’s now 4:43 pm and water drops have stopped for the past 10 minutes or so. It’s now roughly 45 minutes after the firefight started. Here are some pictures from the vantage point just above the location of the fire just a few feet away from the canyon edge. Based on my guestimate the fire took up approximately 2-4 acres of space which was primarily dry scrubbrush and several trees in the middle of the arroyo.

Reporting live from the scene

With things beginning to look like they’re winding down, and with a clearer view of the scene now that the smoke has abated significantly I take a moment to do a quick video recap for the viewers at home.

Heading home

Things appear to be under control by about 5pm, so I headed home. Stopping to ask local police how long the street is likely to be closed through rush hour.

I arrive at the house and toss in the coordinates of the fire into Google Maps to discover the center of the fire was 2,426 feet from the house (roughly 2 blocks away.) It was easy to get exact coordinates given the size of the trees in the fire zone and the specificity of the images in Google’s satellite view. We definitely dodged one today, particularly given the dryness of the last year and the high winds we’ve seen all afternoon.

It also dawns on me that I took a hike through this exact portion of Eaton Canyon yesterday morning. My checkin at the time captures a photo across the canyon almost 30 hours before the incident. I’ll try to get another sometime this week to provide a direct comparison.

Facebook is Censoring My Notes

I don’t post “notes” to Facebook often, but I’d noticed a few weeks ago that several pieces I’d published like this a while back were apparently unpublished by the platform. I hadn’t seen or heard anything from Facebook about them being unpublished or having issues, so I didn’t realize the problem until I randomly stumbled back across my notes page.

They did have a piece of UI to indicate that I wanted to contest and republish them, so I clicked on it. Apparently this puts these notes into some type of limbo “review” process, but it’s been a few weeks now and there’s no response about either of them. They’re still both sitting unseen in my dashboard with sad notes above them saying:

We’re reviewing this post against our Community Standards.

There is no real indication if they’ll ever come back online. Currently my only option is to delete them. There’s also no indication, clear or otherwise, of which community standard they may have violated.

I can’t imagine how either of the posts may have run afoul of their community standards, or why “notes” in particular seem to be more prone to this sort of censorship in comparison with typical status updates. I’m curious if others have had this same experience?

We’re reviewing these posts against our Community Standards.

This is just another excellent example of why one shouldn’t trust third parties over which you have no control to publish your content on the web. Fortunately I’ve got my own website with the original versions of these posts [1][2] that are freely readable. If you’ve experienced this or other pernicious problems in social media, I recommend you take a look at the helpful IndieWeb community which has some excellent ideas and lots of help for re-exerting control over your online presence.

Notes Functionality

Notes on Facebook were an early 2009 era attempt for Facebook to have more blog-like content and included a rather clean posting interface, not un-reminiscent of Medium’s interface, that also allowed one to include images and even hyperlinks into pages.

The note post type has long since fallen by the wayside and I rarely, if ever, come across people using it anymore in the wild despite the fact that it’s a richer experience than traditional status updates. I suspect the Facebook black box algorithm doesn’t encourage its use. I might posit that it’s not encouraged as unlike most Facebook functionality, hyperlinks in notes on desktop browsers physically take one out of the Facebook experience and into new windows!

The majority of notes about me are spammy chain mail posts like “25 Random Things About Me”, which also helpfully included written instructions for how to actually use notes.

25 Random Things About Me

Rules: Once you’ve been tagged, you are supposed to write a note with 25 random things, facts, habits, or goals about you. At the end, choose 25 people to be tagged. You have to tag the person who tagged you. If I tagged you, it’s because I want to know more about you.

(To do this, go to “notes” under tabs on your profile page, paste these instructions in the body of the note, type your 25 random things, tag 25 people (in the right hand corner of the app) then click publish.)

Most of my published notes were experiments in syndicating my content from my own blog to Facebook (via POSSE). At the time, the engagement didn’t seem much different than posting raw text as status updates, so I abandoned it. Perhaps I’ll try again with this post to see what happens? I did rather like the ability to actually have links to content and other resources in my posts there.

Brief Review of The Atlantic Interview Podcast

I’ve now listened to a dozen of the opening episodes of The Atlantic Interview and am enamored. It’s officially ensconced at the top of my regular rotation.

The weekly show, hosted by Jeffrey Goldberg, The Atlantic’s editor in chief, features him doing a relatively in-depth interview of a single guest for about thirty minutes.

I almost look at this podcast as a far better version of some of the “Sunday shows” where the guest isn’t always so heavily guarded because it would be impolitic or that they’re lost in a sea of voices amongst a larger panel where they just can’t develop some longer coherent thoughts or theses.

To some extent, this podcast is starting to fill a hole in my daily schedule that was created by the disappearance of The Charlie Rose show late last year. The sad part is that, at only once a week, I’m going to wish I had a lot more when I’m done binge-listening to the short backlog I’ve got. On The Atlantic Interview I appreciate that the “thing guests may be selling” (book, article, show, film, etc.) takes a pointed back seat to the broader topic(s) at hand.

Much of the strength of what I’ve heard thus far stems from interviews with people that are slightly off the beaten path, but with serious messages and interesting viewpoints. They’ve all been journalisticly solid and almost always provide me with news, viewpoints, and subtle information that I didn’t have before. Another strength is that the show can give guests additional time and depth than they might receive on other traditional shows. The guests so far have been very smart, cogent, and interesting. Their selection has been well balanced for gender, topic, and general variety within the space the show occupies. The show has generally impeccable audio and production values.

While initial guests seem to have an air of familiarity with the host as the result of closer (disclosed) interpersonal connections, I suspect that even when the list of immediate friends in his Rolodex runs dry, the show will easily have enough value and gravitas to successfully run on long beyond this.

One of my favorite parts of these podcasts are the somewhat snarky bumpers that Goldberg puts onto the the end encouraging people to give reviews and subscribe. I kind of wish he’d let loose a bit more and inject some of this kind of snark into the interviews too. If nothing else, he’s at least having fun with a part of the show that would otherwise be typically painful to trudge through.

Suggestions

I’d love to hear more about education policy, health care, public heath, internet, and foreign policy. A few guest ideas I’d love to hear in this format: Tressie McMillan Cottom, Mike Morrell, Susan J. Fowler, César A. Hidalgo, Tantek Çelik, Ellen J. MacKenzie, and Ezekiel Emanuel. Continuing in the vein of interviewing the interviewers, which I find terrifically fascinating, I’d love to see Judy Woodruff, Fareed Zakaria, W. Kamau Bell, Trevor Noah, and John Dickerson in the future. These aside, I suspect that anyone that Mssr. Goldberg finds intriguing, I’m sure I will as well.

Additional Technical Commentary

I really wish their podcast had individual web pages for each episode so I could more easily email, share, or target individual episodes for people. It would also be nice if the main page actually had .mp3 versions of the audio embedded in them to make it easier to bookmark and share through services like Huffduffer.com. I really don’t know why podcasters insist on using third party podcasting services to hide their .mp3 files from the outside world–it’s literally their most important product! Stop it! I find the practice to be as irksome as newspapers that use Facebook as their primary means of distribution, and just like that case, they’ll regret it in the long run.

While Megaphone.fm is a nice hosting platform for the show, I’m not sure why a publication the size and scope of The Atlantic isn’t simply self-hosing their own content using their own URLs.

The content for the show is still a bit scatter-brained. The main page on The Atlantic has the best and most comprehensive meta-descriptions of episodes, while the Megaphone page has some nice individual episode artwork that The Atlantic doesn’t have or present. This is sure to cause uneven experiences for people depending on how they choose to subscribe.

I appreciate that some of the early episodes went to the trouble to have full transcripts and some additional snippet content and images. I miss these transcripts. I do know that doing this can be painful and expensive, though perhaps services like Gretta.com might have some technology to help. If they want to go crazy, it would be cool to see Audiogram functionality, which they could use instead of relying on Megaphone or some other platform.

Homebrew Website Club Meetup on February 21, 2018

Are you building your own website? Indie reader? Personal publishing web app? Or some other digital magic-cloud proxy? If so, come on by and join a gathering of people with likeminded interests. Bring your friends who want to start a personal web site. Exchange information, swap ideas, talk shop, help work on a project…

Everyone of every level is welcome to participate! Don’t have a domain yet? Come along and someone can help you get started and provide resources for creating the site you’ve always wanted.

Homebrew Website Club Meetup – Los Angeles Area

Time:  to

Location: Pasadena Central Library, 285 East Walnut Street (at Garfield), 4th floor Conference Room, Pasadena, CA

  • Parking at the library is at a premium, so please park on the street or use one of these nearby lots: Parking details
  • 5:30 – 6:30 pm (Optional) Quiet writing hour at your favorite location within the library for those interested. Use this time to work on your project or do some writing before the meeting.
  • 6:30 – 8:00 pm Meetup in 4th floor Conference Room

More Details

Join a community of like-minded people building and improving their personal websites. Invite friends that want a personal site.

  • Work with others to help motivate yourself to create the site you’ve always wanted to have.
  • Ask questions about things you may be stuck on–don’t let stumbling blocks get in the way of having the site you’d like to have.
  • Finish that website feature or blog post you’ve been working on
  • Burn down that old website and build something from scratch
  • Share what you’ve gotten working
  • Demos of recent breakthroughs

Skill levels: Beginner, Intermediate, Advanced

Any questions? Need help? Need more information? Ask in chat: http://indiewebcamp.com/irc/today#bottom

RSVP

Our space within the library is somewhat limited, so please RSVP prior to attending so we can ensure that we can accomodate as many people as possible.

Add your optional RSVP in the comments below; by adding your indie RSVP via webmention to this post; or by RSVPing yes to one of the syndicated posts below:
Indieweb.org event: https://indieweb.org/events/2018-02-21-homebrew-website-club#Los_Angeles_Area
Facebook: https://www.facebook.com/events/1841008432590283/
Meetup.com: https://www.meetup.com/IndieWeb-Homebrew-Website-Club-Los-Angeles/events/247817484/
Twitter: https://twitter.com/ChrisAldrich/status/963911115271938048

A better way to subscribe to or follow sites on the open web

Just as I was getting sick last week, Colin Walker wrote “There has to be a better way to subscribe to sites.” He’s definitely hit the nail right on the head. The process is currently painful and disorganized, it’s also working on technology that’s almost two decades old and difficult for newcomers at best.

I’ve always posited that one of the reasons that social media silos have been so successful is that they’ve built some fantastic readers. Sure their UI is cleaner and just dead simple, but to a great extent 95% of their product is an evolved feed reader while the other 5% is a simple posting interface that makes it easy to interact. To compare, most CMSes are almost completely about posting interface, and spend very little time, if any, worrying about providing a reading experience.

The IndieWeb has been making some serious strides on making cross-site interactions easier with the Webmention and Micropub protocols, but the holy grail is still out there: allowing people to have an integrated feed reader built into their website (or alternately a standalone feed reader that’s tightly integrated with their site via Micropub or other means).

For those watching the space with as much interest as I have, there are a couple of interesting tools in the space and a few on the immediate horizon that are sure to make the process a whole lot easier and create a new renaissance in the open web.

SubToMe: a Universal Subscribe Button

First, for a relatively simple one-size-fits-all subscribe button, I recommend people take a look at SubToMe which touts itself as a “Universal Follow button” because it  “makes it easy for people to follow web sites,because browsers don’t do it.” The button is fairly straightforward and has an awful lot of flexibility built in. In the simplest sense it has some solid feed detection so it finds available feeds on a web page and then provides a handful of recommended major readers to the user. With two clicks, one can pretty quickly and almost immediately subscribe to almost any feed in their reader of choice. 

For publishers, one can quickly install a simple button on their site. They can further provide a list of specific feeds they want to advertise, and they can even recommend a particular feed reader if they choose.

For consumers, the service provides a simple browser bookmarklet so that if a site doesn’t have a button, they can click a subscribe button in their browser. Then click on a provider. Done. One can also choose a preferred provider to shorten the process.

Almost all the major feed readers are supported out of the box and the process of adding new ones is relatively simple.

Microsub

Since last June there’s been a quietly growing new web spec called Microsub  that will assuredly shake up the subscription and reader spaces. In short it provides a standardized way for clients to consume and interact with feeds collected by a server.

While it gets pretty deep pretty quickly, the spec is meant to help decouple some of the heavy architecture of building a feed reader. In some way it’s analogous to the separation of content and display that HTML and CSS allows, but applied to the mechanics of feed readers and how readers display their content.

There are already a few interesting projects by the names of Together and Indigenous that are taking advantage of the architecture

I can’t wait to see how it all dovetails together to make a more integrated reading and posting interface as well as the potential it has for individual CMSs to potentially leverage the idea to include integrated interfaces into their products. I can’t wait for the day when my own personal website is compatible with Microsub, so that I can use any Microsub client to read my timeline and follow people.

I’m also sure that decoupling the idea of displaying posts from actually fetching remote feeds will make it easier to build a reader clients in general. I hope this has a Cambrian explosion-type of effect on the state of the art of feed readers.

I’d recommend those interested in a high level discussion to have a listen to the following thee short episodes of Aaron Parecki’s Percolator microcast.

Episode 3: Following

Episode 10: Microsub for Readers

Episode 17: It’s 2018!

Featured photo credit: Flock of sheep flickr photo by Jo@net shared under a Creative Commons (BY) license

Happy Fornicalia

As we coast toward the nones of February whence we’ll commence the celebration of the Fornacalia, by all accounts an Ancient Roman religious festival celebrated in honor of the goddess Fornax, a divine personification of the oven (fornax), and was related to the proper baking of bread, I thought it only appropriate to call some attention to what should be an international holiday for bakers.

While shamefully few, if any(?), now celebrate the Fornacalia, I’ve always looked at the word as a portmanteau of a festival along the lines of a bacchanalia for bread with tinges of seeming Latin cognates fornicati, fornicatus, fornicata, and fornicatae or the Greek equivalent porneia (πορνεία). Knead these all together and you’ve got the makings of a modern day besotted festival of bread immorality. And really, who wouldn’t want to celebrate such a thing?!

I’ll celebrate myself by doing some baking, listening to the bread related episodes of Eat This Podcast, while reading and looking at bread porn on Fornacalia.com. Special thanks to curio maximus Jeremy Cherfas for providing entertainment for the festival!

How will you celebrate?

 

Featured photo Bread is a flickr photo by Jeremy Keith aka adactio shared under a Creative Commons (BY) license.

Fragmentions for Better Highlighting and Direct References on the Web

Fragmentions

Ages ago I added support on my website for fragmentions.

Wait… What is that?

Fragmention is a portmanteau word made up of fragment and mention (or even Webmention), but in more technical terms, it’s a simple way of creating a URL that not only targets a particular page on the internet, but allows you to target a specific sub-section of that page whether it’s a photo, paragraph, a few words, or even specific HTML elements like <div> or <span> on such a page. In short, it’s like a permalink to content within a web page instead of just the page itself.

A Fragmention Example

Picture of a hipster-esque looking Lego toy superimposed with the words: I'm not looking for a "hipster-web", but a new and demonstrably better web.
29/1.2014 – Larry the Barista by julochka is licensed under CC BY-NC
Feature image for the post “Co-claiming and Gathering Together – Developing Read Write Collect” by Aaron Davis. Photo also available on Flickr.

Back in December Aaron Davis had made a quote card for one of his posts that included a quote from one of my posts. While I don’t think he pinged (or webmentioned) it within his own post, I ran across it in his Twitter feed and he cross-posted it to his Flickr account where he credited where the underlying photo and quote came from along with their relevant URLs.

Fragmentions could have not only let him link to the source page of the quote, it would have let him directly target the section or the paragraph where the quote originated or–even more directly–the actual line of the quote.

Here’s the fragmention URL that would have allowed him to do that: http://boffosocko.com/2017/10/27/reply-to-laying-the-standards-for-a-blogging-renaissance-by-aaron-davis/#I%E2%80%99m%20not%20looking

Go ahead and click on it (or the photo) to see the fragmention in action.

What’s happening?

Let’s compare the two URLs:
1. http://boffosocko.com/2017/10/27/reply-to-laying-the-standards-for-a-blogging-renaissance-by-aaron-davis/
2. http://boffosocko.com/2017/10/27/reply-to-laying-the-standards-for-a-blogging-renaissance-by-aaron-davis/#I%E2%80%99m%20not%20looking

They both obviously point to the same specific page, and their beginnings are identical. The second one has a # followed by the words “I’m not looking” with some code for blank spaces and an apostrophe. Clicking on the fragmention URL will take you to the root page which then triggers a snippet of JavaScript on my site that causes the closest container with the text following the hash to be highlighted in a bright yellow color. The browser also automatically scrolls down to the location of the highlight.

Note: rather than the numbers and percent symbols, one could also frequently use the “+” to stand in for white spaces like so: http://boffosocko.com/2017/10/27/reply-to-laying-the-standards-for-a-blogging-renaissance-by-aaron-davis/#not+looking+for+just This makes the URL a bit more human readable. You’ll also notice I took out the code for the apostrophe by omitting the word “I’m” and adding another word or two, but I still get the same highlight result.

This can be a very useful thing, particularly on pages with huge amounts of text. I use it quite often in my own posts to direct people to particular sub-parts of my website to better highlight the pieces I think they’ll find useful.

It can be even more useful for academics and researchers who want to highlight or even bookmark specific passages of text online. Those with experience on the Medium.com platform will also notice how useful highlighting can be, but having a specific permalink structure for it goes a step further.

I will note however, that it’s been rare, if ever, that anyone besides myself has used this functionality on my site. Why? We’ll look at that in just a moment.

Extending fragmentions for easier usability.

Recently as a result of multiple conversations with Aaron Davis (on and between our websites via webmention with syndication to Twitter), I’ve been thinking more about notes, highlights, and annotations on the web. He wrote a post which discusses “Page Bookmarks” which are an interesting way of manually adding anchors on web pages to allow for targeting specific portions of web pages. This can make it easy for the user to click on links on a page to let them scroll up and down specific pages.  Sadly, these are very painful to create and use both for a site owner and even more so for the outside public which has absolutely no control over them whatsoever.

His post reminded me immediately of fragmentions. It also reminded me that there was a second bit of user interface related to fragmentions that I’d always meant to also add to my site, but somehow never got around to connecting: a “fragmentioner” to make it more obvious that you could use fragmentions on my site.

In short, how could a user know that my website even supports fragmentions? How could I make it easier for them to create a fragmention from my site to share out with others? Fortunately for me, our IndieWeb friend Kartik Prabhu had already wired up the details for his own personal website and released the code and some pointers for others who were interested in setting it up themselves. It’s freely available on Github and includes some reasonable details for installation.

So with a small bit of tweaking and one or two refinements, I got the code up and running and voilà! I now have a natural UI for highlighting things.

How?

When a user naturally selects a portion of my page with their mouse–the way they might if they were going to cut and paste the text, a simple interface pops up with instructions to click it for a link. Kartik’s JavaScript automatically converts the highlight into the proper format and changes the page’s URL to include the appropriate fragmention URL for that snippet of the page. A cut and paste allows the reader to put that highlighted piece’s URL anywhere she likes.

text highlighted in a browser with a small chain icon and text which says "Click for link to text"
Highlighting text pulls up some simple user interface for creating a fragmention to the highlighted text.

The future

What else would be nice?

I can’t help but think that it would be fantastic if the WordPress Fragmention plugin added the UI piece for highlight and sharing text via an automatically generated link.

Perhaps in the future one could allow a highlight and click interaction not only get the link, but to get a copy of both the highlighted text and the link to the URL. I’ve seen this behavior on some very socially savvy news websites. This would certainly make a common practice of cutting and pasting content much easier to do while also cleverly including a reference link.

The tough part of this functionality is that it’s only available on websites that specifically enable it. While not too difficult, it would be far nicer to have native browser support for both fragmention creation and use.  This would mean that I don’t need to include the JavaScript on my website to do the scrolling or highlighting and I wouldn’t need any JavaScript on my site to enable the highlighting to provide the specific code for the custom URL. How nice would it be if this were an open web standard and supported by major browsers without the need for work at the website level?

Medium-like highlighting and comments suddenly become a little easier for websites to support. With some additional code, it’s only a hop, skip, and a jump to dovetail this fragmention functionality with the W3C Webmentions spec to allow inline marginalia on posts. One can create a fragmention targeting text on a website and write a reply to it. With some UI built out,  by sending a webmention to the site, it could pick up the comment and display it as a marginal note at that particular spot instead of as a traditional comment below the post where it might otherwise loose the context of being associated at the related point in the main text. In fact our friend Kartik Prabhu has done just this on his website. Here’s an example of it in his post announcing the feature.

Example of inline marginalia on Kartik Prabhu’s website “Parallel Transport”.

You’ll notice that small quotation bubbles appear at various points in the text indicating marginalia. By clicking on them, the bubble turns green and the page expands to show the comment at that location. One could easily imagine CSS that allows the marginalia to actually display in the margin of the page for wider screens.

How could you imagine using fragmentions? What would you do with them? Feel free to add your thoughts below or own your site and send me a webmention.​​​​​​​​

A Digital Food Diary on My Own Website

Food and Drink on my own website

I’ve been wanting to do it for a while, but I’ve finally started making eat and drink posts. The display isn’t exactly what I want yet, but it’s getting there. For myself and those reading, I’ll try to continue tweaking on templates, but with the start of the new year, I wanted to at least start capturing the basic data. Most of the heavy lifting will be done by David Shanske’s excellent Post Kinds Plugin.

I’m hoping that, much like the dieting advice about getting and using a clean plate for every single thing you eat, consciously posting will help me to subconsciously eat better too. I’ve already begun to notice some of the subtle effects, and not just for composing better photographs of my food.

I probably won’t post everything publicly after some time because, really, who really wants to see all this (perhaps aside from others interested in doing the same thing themselves)? Eventually it’ll probably devolve into only the more fabulous looking restaurant meals and specialty cocktails while I’m out.

🍴 Ham sandwich with muenster on rye, strawberries, oatmeal and raisin cookie with Coca-cola zero sugar

Since the ham sandwich post is so vaunted and maligned in the social media space and I can more properly support it, I’ve already made my obligatory first personal ham sandwich post.

Previous Food related posts on Silos

Back in the day, I’d used services like Eat.ly and Foodspotting. The former was bought out by the latter and development and customer acquisition seems to have died altogether. These did a reasonable job of melding eating and checkin post types, but the genre seems to have died out for lack of interest and or development. Since some of what they did was interesting and useful to me, I’m recreating portions of it on my own site.

Courtesy of David’s Simple Location Plugin, I’ll also be able to add location data to my eating-related posts to also make them checkins in a sense much like some of the functionality of these older silos.

I did like some of the health related and calorie data that Eat.ly made possible, and might consider adding some of that into my site in the future as well. I’ll have to take a look at services like WeightWatchers that I would expect might add that type of functionality as well. This also reminds me that Leo Laporte has a wi-fi scale that Tweets out his weight every time he stands on it. That sounds like useful quantified self data, though I don’t think I’d go so far as to post it publicly on my site (or syndicate it) in the future.

Feeds for these posts

I can’t imagine that anyone but potential stalkers would care, but for posterity, here are the feeds associated with these posts:
Eat: http://www.boffosocko.com/kind/eat/feed/
Drink: http://www.boffosocko.com/kind/eat/feed/
Eat & Drink (combined): http://www.boffosocko.com/feed/?kind=eat,drink

If you’re subscribed to my full feed and don’t want these in it, it’s possible to redact these posts from your stream, just drop me a line and I can help you subscribe to just the content you desire. Those subscribed to the “Food” category needn’t worry as I don’t expect to be clogging that category up with these posts.

Adding Simple Twitter Response Buttons to WordPress Posts

Back at IndieWebCamp Austin, I became enamored of adding additional methods of interacting with my website, particularly for those who weren’t already on the IndieWeb train. I’d seen these types of interactions already on Tantek Çelik’s site in the past, so naturally I figured I would start there.

Web Actions

Some basic searching revealed that in IndieWeb parlance, these types of functionalities are known as web actions. While they’re often added to make it easier for one site with the proper infrastructure to interact with another, they’re also designed for social web silos (Like Twitter, Facebook, et al.) to do this type of interaction simply as well.

As a small scale experiment, I thought I would begin manually and add some simple interface to allow Twitter users (who may not yet have their own websites to use to respond to me instead) to be able to quickly and easily reply to, repost, or like posts on my site. A little bit of reading on the wiki and Twitter’s developer site allowed me to leverage something into existence pretty quickly.

Interestingly, although there are many plugins that help users simply share a blog post to Twitter, I couldn’t easily find a WordPress plugin that already allows these other interactions as options at all. I suspect it may be because the other side of the interaction of bringing the replies back to one’s site isn’t commonly known yet.

Example

I was able to write a post, syndicate it to Twitter, upload the button images, and then inject the Twitter post ID (939650287622434816 in this example) for my syndicated copy into my post like so:

<span class="syn-text">Respond via Twitter:
<ul class="relsyn">
<li><a href="https://twitter.com/intent/tweet?in_reply_to=939650287622434816" target=""><img src="/reply-icon-16.png" alt="" width="16" height="11" /> Reply</a></li>
<li><a href="https://twitter.com/intent/retweet?tweet_id=939650287622434816" target=""><img src="/retweet-icon-16.png" alt="" width="16" height="10" /> Repost</a></li>
<li><a href="https://twitter.com/intent/favorite?tweet_id=939650287622434816" target=""><img src="/like-icon-16.png" alt="" width="16" height="16" /> Like</a></li>
</ul><script type="text/javascript" async src="https://platform.twitter.com/widgets.js"></script></span>

And voila! My new post now had some simple buttons that allow users a simple one click interaction with a popup window to reply to, repost, or like my post.

Displaying responses

Naturally, through the “magic” of Brid.gy, I’m able to collect these responses via backfeed with the Webmention protocol using the Webmention Plugin for WordPress back to my own website. In simpler and less technical terms, if you use one of these buttons, your interaction with my website as posted to Twitter comes back to live on my website. Thus users can use Twitter to write a comment or reply on Twitter and it will display in my comments section just as if they had written it directly in my comments box. Likes and reposts are sent to my site and are displayed relatively naturally as facepiles under the comment headings “Likes” and “Reposts”.

I’ll do another manual example with this particular post, so feel free to use the buttons at the bottom of this post to make your response via Twitter if you wish.

Future Improvements

Taking some of this code and abstracting into a plugin for others to use would be a nice feature. Doing this would also potentially make it available as a potential plugin in the larger IndieWeb suite of WordPress plugins. Perhaps it could be easily added into the codebase in one or another pre-existing plugins? I might think that David Shanske’s  Syndication Links plugin or Bridgy Publish plugin might make sense as they’re already adding functionality for part of the publishing half of the cycle by either publishing to Twitter and/or importing the Tweet ID back into one’s WordPress site for potential display. One or the other could do a simple if/then on the existence of a syndicated Tweet, then extract the Twitter ID, and add the buttons to the interface appropriately.

It would be interesting to add full mark up to make <indie-action> functionality possible for a broader class of web actions, particularly if it could be integrated directly into WordPress in a more interesting manner to work with the Post Kinds Plugin or the IndieWeb PressThis type of bookmarklet functionality.

Instead of having these types of interactions injected at the bottom of the post, it may make more sense to have it display in the comment block instead.

I suspect that Facebook, Instagram, and others also enable some types of functionality, so adding the ability to use them the same way would be awesome. And even more so in the case of RSVP’s to events since Brid.gy handles those relatively well between Facebook and WordPress sites. (See this example.)

Try it yourself

Go ahead and use the buttons below to interact with this post via Twitter.