It's always fun to use these milestones to take a step back and reflect on the journey so far. On previous birthdays I've talked about revenue milestones and product updates, but this year I'm going to focus more on all the things we've learned since we started.
In reading this, I took a look at downloading and self-hosting a copy of Ghost for myself, but the barrier and work involved was beyond my patience to bother with. For an open source project that prides itself on user experience, this seemed at odds. Perhaps this is playing itself out better for the paid monthly customers? But in this case, it doesn’t support many of the pieces of infrastructure I find de rigueur now: Webmention support and microformats which I understand they have no plans to support anytime soon.
Looking at their project pages and site though it does seem like they’ve got a reasonable layout and sales pitch for a CMS project, though it’s probably a bit too much overkill on selling when it could be simpler. Perhaps it might be a model for creating a stronger community facing page for the WithKnown open source project, presuming the education-focused corporate side continues as a status quo?
They did seem to be relatively straightforward in selling themselves against WordPress and what they were able to do and not do. I’m curious what specifically they’re doing to attract journalists? I couldn’t find anything specifically better than anything else on the market that would set it apart other than their promise on ease-of-use.
There were some interesting insights for those working within the IndieWeb community as well as businesses which might build themselves upon it.
Decentralised platforms fundamentally cannot compete on ease of setup. Nothing beats the UX of signing up for a centralised application.
We spent a very long time trying to compete on convenience and simplicity. This was our biggest mistake and the hardest lesson to learn.
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
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.
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.
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.
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.
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.
Homotopy type theory is a new branch of mathematics that combines aspects of several different fields in a surprising way. It is based on a recently discovered connection between homotopy theory and type theory. It touches on topics as seemingly distant as the homotopy groups of spheres, the algorithms for type checking, and the definition of weak ∞-groupoids. Homotopy type theory offers a new “univalent” foundation of mathematics, in which a central role is played by Voevodsky’s univalence axiom and higher inductive types. The present book is intended as a first systematic exposition of the basics of univalent foundations, and a collection of examples of this new style of reasoning — but without requiring the reader to know or learn any formal logic, or to use any computer proof assistant. We believe that univalent foundations will eventually become a viable alternative to set theory as the “implicit foundation” for the unformalized mathematics done by most mathematicians.
The ideas of being independent and signed are inherently contradictory, and this contradiction is what makes indie hard to define. Its ephemerality gives it both a mystique and a resistance to criticism ― after all, you can’t critique what you can’t define. And thus, using the term indie is often a great marketing move. But it’s a problematic critical move.
But the ability to work on indie projects is not available to all. The time and resources required to work indie are a sign of privilege, as is encouraging (and certainly expecting) all to work indie. As Anne Pasek writes, “all materials and practices … have a cost and thus a tollgate for participation.” (And there are many, often intersecting, forms of privilege that contribute to that “toll” ― race, gender, orientation, cultural background, economic background, able-bodiedness, etc.) So while indie work is great, and I’ve done a lot of it myself, we need to be careful about the ways in which we encourage and characterize indie work, noting in particular what it costs and who may be left behind or left out.
This is all important and certainly true.
However, as someone who knows he’s certainly privileged, I view my definition of indie as something that is also open for others to come behind me and use for free or have the ability to reuse and remix in a way that corporate interests or non-indie work wouldn’t. In a large sense, to me this means that while I may be privileged (whether that be socio-economically or even the time-encumbered), I’m helping to lower the cost and the burden for the less privileged who may come behind me to be able to do more, go further, or go faster.
In some sense too, as described, indie has such a nebulous definition. Often when I see it in a technology related space I really read it as “Open Sourced”.
As many know, for the past 6 months or so, I’ve been slowly improving some of the IndieWeb tools and workflow I use to own what I’m reading both online and in physical print as well as status updates indicating those things. 
Since just before IndieWebCamp LA, I’ve been working on better ways to own the articles I’ve been reading and syndicate/share them out to other social platforms. The concept initially started out as a simple linkblog idea and has continually been growing, particularly with influence from my attendance of the Dodging the Memory Hole 2016: Saving Online News conference at UCLA in October. Around that same time, it was announced that Pinterest was purchasing Instapaper and they were shutting down some of Instapaper’s development and functionality. I’ve been primarily using Pocket for several years now and have desperately wanted to bring that functionality into my own site. I had also been looking at the self-hostable Wallabag alternative which is under heavy active development, but since most of my site is built on WordPress, I really preferred having a solution that integrated better into that as a workflow.
I’ve been looking closely at PressForward for the past week and change as a self-contained replacement for third party services like Pocket and Instapaper. I’ve been looking around for this type of self-hosted functionality for a while.
PressForward was originally intended for journalists and news organizations to aggregate new content, add it to their newsroom workflow, and then use it to publish new content. From what I can see it’s also got a nice following in academia as a tool for aggregating content for researchers focused on a particular area.
It only took a minute or two of looking at PressForward to realize that it had another off-label use case: as a spectacular replacement for read-later type apps!
In an IndieWeb fashion, this fantastic WordPress plugin allows me to easily own private bookmarks of things I’d like to read (PressForward calles these “Nominations” in keeping with its original use case). I can then later read them on my own website (with Mercury f.k.a Readability functionality built in), add commentary, and publish them as a read post. [Note: To my knowledge the creators of PressForward are unaware of the IndieWeb concept or philosophies.]
After some playing around for a bit and contemplating several variations, configurations, and options, I thought I’d share some thoughts about it for others considering using it in such an off-label manner. Hopefully these may also spur the developers to open up their initial concept to a broader audience as it seems very well designed and logically laid out.
The developers obviously know the value of dogfooding as at least two of them are using it in a Pocket-like fashion (as they many not have other direct use-cases).
PressForward includes a beautiful, full built-in RSS Feed Reader!
This feature alone is enough to recommend using it even without any other feature. I’ve tried Orbit Reader and WhisperFollow (among others) which are both interesting in their own rights but are somewhat limited and have relatively clunky interfaces. The best part of WhisperFollow’s premise is that it has webactions built in, but I suspect these could easily be added onto PressForward.
In fact, not just hours before I’d discovered PressFoward, I’d made this comment on the WordPress Reader Refresh post announcing the refresh of WordPress.com’s own (separate) reader:
Some nice visual changes in this iteration. Makes it one of the most visually pretty feed readers out there now while still maintaining a relatively light weight.
I still wish there were more functionality pieces built into it like the indie-reader Woodwind.xyz or even Feedly. While WordPress in some sense is more creator oriented than consumption oriented, I still think that not having a more closely integrated reader built into it is still a drawback to the overall WordPress platform.
One can count clicks to ones’ own site as the referer while still pushing the reader to the original
Along with other plugins like JetPack’s Publicize or Social Networks Auto-Poster, one can automatically share their reads to Twitter, Facebook, or other social media silos. In this case, you own the link, but the original publisher also gets the traffic.
No clear path for nominating articles on mobile.
This can be a dealbreaker for some, so I’ve outlined a pretty quick and simple solution below.
No direct statistics
Statistics for gauging ones’ reading aren’t built in directly (yet?), but some scripts are available. 
No larger data aggregation
Services like Pocket are able to aggregate the data of thousands of users to recommend and reveal articles I might also like. Sadly this self-hosted concept makes it difficult (or impossible) do have this type of functionality. However, I usually have far too much good stuff to read anyway, so maybe this isn’t such a loss.
Adding the ability to do webactions directly from the “Nominated” screen would be fantastic, particularly for the RSS reader portion.
Default to an unread view of the current “All Content” page. I find that I have to filter the view every time I visit the page to make it usable. I suspect this would be a better default for most newsrooms too.
It would be nice to have a pre-configured archive template page in a simple linkblog format that filters posts that were nominated/drafted/published via the Plugin. This will prevent users from needing to create one that’s compatible with their current theme. Something with a date read, Title linked to the original, Author, and Source attribution could be useful for many users.
A PressForward Nomination “Bookmarklet” for Mobile
One of the big issues I came up against immediately with PressForward is ease of use on mobile. A lot of the content I read is on mobile, so being able to bookmark (nominate) articles via mobile or apps like Nuzzel or Twitter is very important. I suspect this may also be the case for many of their current user base.
Earlier this year I came across a great little Android mobile app called URL Forwarder which can be used to share things with the ubiquitous mobile sharing icons. Essentially one can use it to share the URL of the mobile page one is on to a mobile Nomination form within PressForward.
I’d suspect that there’s also a similar app for iOS, but I haven’t checked. If not available, URL Forwarder is open source on Github and could potentially be ported. There’s also a similar Android app called Bookmarklet Free which could be used instead of URL Forwarder.
PressForward’s built in bookmarklet kindly has a pre-configured URL for creating nominations, so it’s a simple case of configuring it. These details follow below for those interested.
Configuring URL Forwarder for PressForward
Open URL Forwarder
Click the “+” icon to create a filter.
Give the filter a name, “Nominate This” is a reasonable suggestion. (See photo below.)
Use the following entry for the “Filter URL” replacing example.com with your site’s domain name: http://example.com/wp-content/plugins/pressforward/includes/nomthis/nominate-this.php?u=@url
Leave the “Replaceable text” as “@url”
Finish by clicking on the checkmark in the top right corner.
Nominating a post via mobile
With the configuration above set up, do the following:
On the mobile page one wants to nominate, click the ubiquitous “share this” mobile icon (or share via a pull down menu, depending on your mobile browser or other app.)
Choose to share through URL Forwarder
Click on the “Nominate” option just created above.
Change/modify any data within your website administrative interface and either nominate or post as a draft. (This part is the same as one would experience using the desktop bookmarklet.)
Given the data intensity of both the feed reader and what portends to be years of article data, I’m left with the question of hosting it within my primary site or putting it on a subdomain?
For all sorts of reasons, some people have a problem with updating WordPress installs properly. I will state now that for both our free and premium plugins we do not support anything but the latest and the prior to last version. At the time of writing that’s WordPress 4.5 and WordPress 4.6 . If you’re running anything …
The camp sold out in just hours a month and change ago, in part because it was limited to about 200 people given the fantastic space provided by UC Irvine’s Advanced Innovation. There aren’t many spaces one could go with such spectacular amenities and support in addition to a huge plethora of screens, recording equipment, and audio/visual supplements. Thanks for hosting us Applied Innovation!
Sadly the limited space meant that some people missed out, and the most unrepresented group was likely new users who may not have heard about it in time to get tickets. However, this didn’t mean that anyone else was underrepresented: there were attendees of every ability, age (10 months to over 90), race, sex and creed. I was honestly astounded by the diversity of people in attendance.
One of the best programming decisions was having food trucks show up to cater lunch, which kept everyone close and socially engaged rather than dispersing everyone to the wind by means of forcing outside food options.
Sadly, even knowing that Sundays are always slower than Saturdays, there were 2-3 empty rooms with no sessions at all on Sunday afternoon. I wish there had been some type of offering to assist in putting together impromptu sessions or BoF sessions in these empty rooms. Alternately doing a beginner build track on Sunday and releasing “Sunday only” tickets might have been interesting and also better utilized the space.
Below are some thoughts on the individual sessions I attended. Most should be on WordPress.TV shortly and nearly everyone was posting slides.
This was a great quick introduction to most of the basics of WP Core and at just about the right time as I’ve been wanting to delve more directly into portions for a few projects. I’d definitely recommend the slide deck once it’s posted. This was one of my favorite sessions of the weekend.
This was one of the more entertaining sessions and had more conversation back and forth than any camp session I’ve ever attended. Sadly it stayed to the basics and in a room which seemed to have some more advanced participants, I wish it had gone further.
This was mostly what I expected, but included some additional tips that I didn’t know existed. In particular, knowing that I can provide formatting for others when they oEmbed my site is something I’ll have to look into.
This was a nice start to some intro information on talking about design patterns, but I would have preferred something at the intermediate or advanced level. In particular, it made me consider some quirky potential new visual grammars for mobile use (particularly in advertising). It also inspired me to think about creating a disorenting experience built on the visual/time grammar of the movie Inception.
Aaron was a fun and very dynamic speaker who obviously truly loves his topic. This was by far the best session I attended over the weekend. I want to try to get Elastic Search and ElasticPress set up on my site soon as it looks like what modern search should be on a website.
I’m somewhat shocked I’d never thought of doing this myself before, but just knowing the concept exists is more than half the battle. The sad part is that it sounds like for half the stuff you get for free, one needs to rebuild or re-engineer something else to get it working.
Andy is a practicing physician and a great WordPress “hobby-ist” who drove in from Palm Springs to give a great overview of the philosophy of Open Source and a broad range of tools used to help further that goal. One can’t help but be affected by his enthusiasm.
For a session meant to be primarily entertainment, I was actually surprised to learn about coding/development by hearing a panel of others critique four plugins. Condensed down, this could have been a session on the intangible things one would want to think about before building a plugin.
Since they’ve already made a Call for Speakers for the LA camp, I’ve already submitted the following talk application which focuses on the IndieWeb:
The IndieWeb is a people-focused alternative to the “corporate web” which has recently been covered in Wired, Fast Company, The Atlantic, The New Republic, Newsweek, and Slate. It encourages everyone to own their own data/content, be better connected to engage with everyone, and provide users with more control of their content and identity online. With the rise of social media silos everyone is seemingly incentivized to split up their online identity to participate in multiple various communities and a variety of platforms which are often bought out, shut down, or simply disappear, very often taking users’ data with them.
Why not allow your own WordPress site to truly be your primary hub online? Post your content on your own site/server so that you not only own it, but then, if you choose, syndicate it out to social media networks in a native and simpler fashion to take advantage of their network effects and engagement. Even better, new web specs like WebMention from the W3C (essentially a universal/internet-wide method of @mention) allow you to easily bring back comments, likes, and similar data back to your original post as native comments. You can now truly own all of the data and subsequent related data (comments) you place on most major social networks.
In this session we’ll briefly cover the basic history and philosophy of the IndieWeb movement before moving into more advanced topics like microformats, WebMention, IndieAuth, micropub, and a growing wealth of related tools which will be of interest to developers and designers alike. While primarily geared at individual users, these philosophies and techniques can be of huge value to writers/authors, bloggers, podcasters, and even businesses for drastically improving their reach and marketing efforts online while simultaneously saving them time and effort.
I spoke to a number of people over the weekend about some IndieWeb concepts and basics, but for those who can’t wait for more details, I’m happy to discuss more of the specifics at anyone’s leisure. If you’re really chomping at the bit, I’ll be at the WordPress Pasadena Meetup tonight and hopefully be setting up a Homebrew Website Club meeting in the LA area sometime in the next few weeks in anticipation of IndieWeb Camp Los Angeles in November.