When I link to another blog or site that has enabled webmention, my server log should record that it received a 20* response when trying to reach a webmention end point.

Assuming this is indeed in my server log, then it should be possible to have a script that pulls the successful webmentions from the server log. From that a growing list of IndieWeb sites can grow. Especially if you’d share that list, and others do too, so you can compare and detect new additions to the list. An incremental way of mapping the IndieWeb. Might even become a new, indie Technorati of sorts. At the very least it’s a discovery vehicle to find others interested in the distributed web and outside the silos and media sites.

Or does something like that already exist?

Is this why Bridgy can’t find my web address on Twitter and returns an error when I try to post to Twitter from my WordPress blog? Bridgy expects a rel=”me” reference to my site’s URL on both my blog and my Twitter profile. I have that, but the Twitter one is a t.co shortened version and only shows my actual url as title, not as the link. Like rel=”me” href=”https://t.co/OaBGAJ7WV6″ title=”https://zylstra.org/blog”. So no 2-way confirmation of the relationship? [UPDATE It’s a missing www on my site. Tested with indiewebify.me and works now]

I switched the theme of my site to SemPress. It’s a theme that is created to properly support microformats. So I could switch off the Microformats 2 plugin that attempts to do the same as a ‘best effort’ inside other themes. This theme is by the same coder(s) as the plugin. Hopefully this fixes the microformat errors on my side. Next step is looking at the way I display webmentions.

Webmentions is what makes it possible for me to write here about someone else’s blogpost and have my response show up beneath theirs. And vice versa. Earlier mechanisms such as pingback and trackback did the same thing, but slipped under the radar or succumbed to spam. Webmention is a W3C recommendation.

The webmention itself is simple
The core of webmention is straightforward: if I write something here, my webserver will try to let every site I link to in my text know I link to them. This by checking if the sites I link to have an ‘endpoint’, an antenna basically, for webmentions. If a site does, then it will send a simple message to that antenna stating two web addresses, the source (here my blogpost) and the target (here your blogpost). When your site receives a webmention it will do some checking: does my source blogpost indeed link to your target address?

What happens next is less simple
It can quickly get confusing during what happens next.
When my site receives a webmention (this source x links to your target y), all it knows is just the URL of a page that links to me. What my site displays and how it displays that as a consequence of a webmention message depends on multiple factors:

My server will try to read the source blogpost, and see what machine readable information it contains, and what it can know about the source blogpost. These machine readable parts are in the form of microformats.
My server will store some of the information it finds.
Then my website template will show some information from what the server stored when showing the target blogpost on my site.

How well that works depends on multiple factors therefore:

  1. The available machine readable info in the source blogpost, and whether that info is properly encoded
  2. The settings of my server for what it stores
  3. The settings of my site template for what it shows

When something seems to be going wrong, it could be a problem with your site, my site template or my server settings, and it is never obvious which one it is, or if it is the aggregation of multiple issues. It also depends on how easy it is to alter any settings whether you can repair or change things when webmentions are not properly dealt with. Supposedly the Webmention and Semantic Linkbacks plug-ins I use should take care of those issues but it is not obvious that they indeed do.

An example, me and Frank’s sites webmentioning each other
Frank Meeuwsen and I have been mentioning eachother several times and we’ve seen some strange webmention behaviours. For instance in one case Frank’s blog displayed not just a short part of my posting mentioning him, but my entire page including header, footer and sidebar. Clearly something wrong, likely with some of my machine readable encoding, but maybe also something wrong on his end. I suspect my machine readable encoding is indeed faulty but there’s no clear way in which I can change how my webmention plugins deal with that. And if I alter the code, which I could, it is likely the next software update will simply overwrite it.

Yesterday Frank posted about the puzzle webmention is to him in Dutch. Here are some screenshots on how pieces of that puzzle look on my end of things.

Frank’s posting lives at http://diggingthedigital.com//Waar-te-beginnen-met-Webmentions/ In his posting he refers to a posting on my site. He did not send a webmention. But I can do that myself, using a simple form at the bottom of my posting (visible at the bottom of this page too). In that webform I pasted the mentioned url, and that sends the simple webmention message. That message has been received and stored on my server, with the correct source and target address and a timestamp:

What ended up underneath my posting is:

Or as it looks for me as the site’s owner:

A few things stand out:

  • There’s no link to the actual blogpost by Frank (the source), just to his general domain
  • There’s a link to news.indieweb.org, which is a completely different domain
  • There’s no image of the author or an avatar in absence of an image
  • There isn’t any content from Frank’s post shown as part of the mention

So what’s happening? Is this an issue at Frank’s end, is it an issue with what I store on my server, or what I show in my site template? One, two, all three of them?

Puzzling over the pieces in this example

The missing avatar. My site tries to look for an avatar in the source, and if there isn’t one, it shows a general one. Here neither happens, it’s just a blank space. The HTML source of my page reveals it does try to show an avatar, the one that Frank sets in his own blog page as the one to use. His site says in the source code:

<a href="/" class="site-avatar"><img src="/images/dtd-avatar.png" class="u-photo" /></a>

The micro format u-photo is interpreted correctly by my site, and it tries to show the linked image. When you go to that image in your browser it works, but if you try to embed it in your own page it doesn’t.

Frank’s image should be visible below this line,
Frank's avatar
and above this one, but it isn’t.

Probably Frank’s web server prevents bandwidth theft by sending back a white pixel and not the requested image.
[UPDATE] The issue, as Sven points out in the comments, is that this site is https and Frank’s is http. My browser is set-up to reject http material on an otherwise https site. A case of my browser being my castle.[/UPDATE]
Making the avatar fail because my site doesn’t try to store the avatar locally.

The link to news.indieweb.org and the absence of a link to the actual blog post by Frank. The source (Frank’s blogpost) was sent and received correctly as we saw. In the machine readable part of Frank’s site a value is set as ‘canonical’ address for his blogpost.

There is an extra / in that url, and I’m not sure what that might cause, but on my end the canonical that gets saved is very different, it’s that indieweb address.

The odd bit is that indieweb.org address is not mentioned in the source of Frank’s page. At the same time, it seems it isn’t unique to my server, as underneath a posting about webmentions by Sebastiaan Andeweg you see the same thing happening. Frank’s webmention from May 12th shows the indieweb link (and no avatar). Sebastiaan doesn’t use WordPress or the plugins I use as far as I can tell.

So where’s the actual link to Frank’s blogpost? The canonical URL Frank’s posts provides is stored on my server, in the database table for comments as the URL for the author. The indieweb URL however is stored as canonical URL in the comment metadata table in my database. And that gets used for displaying the webmention underneath my blogposting.

The same is true for the absence of the content of Frank’s mention of me. It is collected and stored in the comment table of my site’s database. Yet what is shown underneath my blogpost as mention is constructed only from the comment meta data table, and not the comment table.

Frank’s mention’s content is in my comment database, yet not shown

The metadata fields stored for Frank’s mention in my database

So what’s happening here is a mix of elements from Frank’s site, my webmention plugins and my site template. But how to influence the behaviour of my plugins without seeing that undone with the next update is not clear to me at this point. Nor is how to alter the plugins so I can improve the machine readable microformats on my site.

Hey Brad, discovery is why I started publishing the feeds I read as opml for others to explore, and some I read do so too. In 2005 I used to have photos of blog authors I read. Do you publish your feed list somewhere? Tom Critchlow also shows all the content of the feeds he follows on his site. Works well as a discovery mechanism too I found. Maybe I’ll start doing that as well from my TinyTinyRSS instance I installed earlier this week.

When I talk about Networked Agency, I talk about reducing the barrier to entry for all kinds of technology as well as working methods, that we know work well in a fully networked situation. Reducing those barriers allows others to adopt these tools more easily and find power in refound ability to act. Networked agency needs tech and methods that can be easily deployed by groups, and that work even better when federated across groups and the globe-spanning digital human network.

The IndieWeb’s principles (own your own data, use tools that work well on their own, and better when federated, avoid silos as the primary place of where you post content) fit well with that notion.

Recently I said that I was coming back to a lot of my material on information strategies and metablogging from 2003-2006, but now with more urgency and a change in scope. Frank asked what I meant, and I answered

that the principles of the open web (free to use, alter, tinker, control, trust by you/your group) also apply to other techs (for instance energy production, blockchain, biohacking, open source hardware, cheap computing hardware, algorithms, IoT sensors and actuators) and methods (p2p, community building, social media usage/production, group facilitation etc.). Only then are they truly empowering, otherwise you’re just the person it is ‘done to’.

Blockchain isn’t empowering you to run your own local currency if you can only run it on de-facto centralised infrastructure, where you’re exposed to propagating negative externalities. Whether it is sudden Ethereum forks, or the majority of BTC transactions being run on opaque Chinese computing clusters. It is empowering only if it is yours to deploy for a specific use. Until you can e.g. run a block chain based LETS easily for your neighbourhood or home town on nodes that are Raspberry Pi’s attached to the LETS-members’ routers, there is no reliable agency in blockchain.

IoT is not empowering if it means Amazon is listening into all your conversations, or your fire alarm sensors run through centralised infrastructure run by a telco. It is empowering if you can easily deploy your own sensors and have them communicate to an open infrastructure for which you can run your own gateway or trust your neighbour’s gateway. And on top of which your group does their own data crunching.

Community building methods are not empowering if it is only used to purposefully draw you closer to a clothing brand or football club so they can sell your more of their stuff. Where tribalism is used to drive sales. It is empowering if you can, with your own direct environment, use those methods to strengthen local community relationships, learn how to collectively accommodate differences in opinions, needs, strengths and weaknesses, and timely reorient yourself as a group to keep momentum. Dave Winer spoke about working together at State of the Net, and 3 years ago wrote about working together in the context of the open web. To work together there are all kinds of methods, but like community building, those methods aren’t widely known or adopted.

So, what applies to the open web, IndieWeb, I see applies to any technology and method we think help increase the agency of groups in our networked world. More so as technologies and methods often need to be used in tandem. All these tools need to be ‘smaller’ than us, be ours. This is a key element of Networked Agency, next to seeing the group, you and a set of meaningful relationships, as the unit of agency.

Not just IndieWeb. More IndieTech. More IndieMethods.

How would the ‘Generations‘ model of the IndieWeb look if transposed to IndieTech and IndieMethods? What is Selfdogfooding when it comes to methods?

More on this in the coming months I think, and in the runup to ‘Smart Stuff That Matters‘ late August.

Came across this post by Ruben Verborgh from last December, “Paradigm Shifts for the Decentralised Web“.

I find it helpful because of how it puts different aspects of wanting to decentralise the web into words. Ruben Verborgh mentions 3 simultaneous shifts:

1) End-users own their data, which is the one mostly highlighted in light of things like the Cambridge Analytica / Facebook scandal.

2) Apps become views, when they are disconnected from the data, as they are no longer the single way to see that data

3) Interfaces become queries, when data is spread out over many sources.

Those last two specifically help me think of decentralisation in different ways. Do read the whole thing.

Dave Winer, one of, if not the, earliest bloggers asks what became of the blogosphere? It was a topic of the conversations in Trieste 2 weeks ago at State of the Net, where we both were on the program.

I get what he says about losing the center, and seeing that center as a corporation back then. This much in the way Tantek Celik talked about the silos first being friendly and made by the people we knew, but then got sold, which I wrote about yesterday. Creating a new center, or centers, is worthwile I concur with Dave, and if it can’t be a company at the center, then maybe it should be a network or an organisational manifestation thereof, such as a cooperative. An expression of networked agency.

Because of that I wonder about Dave’s last point “There used to be a communication network among bloggers, but that’s gone now.”

I asked (on Facebook), “What to you was that previous communications network, and what was it built on? What type of communications would you like to see re-emerge?” The answer is about being able to discover other bloggers, like Dave’s Weblogs.com platform used to do (and still does, but most updates are spam).

Blogs to me are distributed conversations. Look at the unbridled enthusiasm I expressed 11 years ago when I wrote about 5 years of blogging in this space, and the list of people I then regarded as my regular group of people I had blogged conversations with. It is currently harder to create those, and it has become harder for me to notice when something I write is reacted to as well. Much of the IndieWeb discussion is about at least being able to discover all online facets of someone from their own domain, and pulling responses to it back there too. Something I need to explore more how to do in a way that fits me.

In terms of communication and connecting, it would be great if I could explore the blogosphere much as in the picture below. Created by Anjo Anjewierden and presented at the AOIR conference in Chicago in 2005 by Lilia Efimova, it shows a representation of my blog network based on text analysis of my and other people’s blogs. It’s a pretty good picture of what my blog ‘neighbourhood’ looked like then.

Or this one also by Anjo Anjewierden from 2008, titled “the big one”. It shows conversations between my and other’s blogs. Grey boxes are conversations across blogs (the bigger the box, the more blogpostings), the other dots are postings that refer to such a conversation but aren’t part of it. Top-left a box is ‘opened up’ to show there are different postings (colored dots) inside it.

Makes me want to have a personal crawler that maps out connections between blogs! Are there any ‘personalised’ crawlers out there?

When Hossein Derakshan came back on-line after a 6 year absence in 2015, he was shocked to find how the once free flowing web ended up in walled gardens and silo’s. Musing about what he presented at State of the Net earlier this month, I came across Frank Meeuwsen’s posting about the IndieWeb Summit starting today in Portland (livestream on YT). That send me off on a short trip around the IndieWeb and related topics.

I came across this 2014 video of Tantek Celik. (he, Chris Messina and Andy Smith organised the first ever BarCamp in 2005, followed by a second one in Amsterdam where I met the latter two and many other fellow bloggers/techies)

In his talk he looks back at how the web got silo’d, and talks from a pure techie perspective about much the same things Hoder wrote about in 2015 and talked about this month. He places ‘peak open web’ in 2003, just before the web 2.0 silos came along. Those first silo’s (like Flickr, delicious etc) were ‘friendly silo’s’. We knew the people who built them, and we trusted their values, assumed the open web was how it was, is and would remain.

The friendly silos got sold, other less friendly silos emerged.
The silos have three things that make them hugely attractive. One ‘dark pattern’ which is adding functionality that feeds your dopamine cravings, such as like and heart buttons. The other two are where the open web is severely lacking: The seamless integration into one user interface of both reading and writing, making it very easy to respond to others that way, or add to the river of content. And the ability to find people and walk the social graph, by jumping from a friend to their list of friends and so on. The open web never got there. We had things like Qumana that tried to combine reading and writing, but it never really took off. We had FOAF but it never became easy.

So, Tantek and others set out in 2011 to promote the open web, IndieWeb, starting from those notions. Owning your data and content, and federating to participate. In his slides he briefly touches upon many small things he did, some of which I realised I could quickly adopt or do.
So I

  • added IndieAuth to my site (using the IndieAuth WP plugin), so that I can use my own website to authenticate on other services such as my user profile at IndieWeb wiki (a bit like Facebook Connect, but then from my own server).
  • added new sharing buttons to this site that don’t track you simply by being displayed (using the GDPR compliant Sharrif plugin), which includes Diaspora and Mastodon sharing buttons
  • followed Tantek’s notion of staying in control of the URLs you share, e.g. by using your own URLs such as zylstra.eu/source/apple-evernote-wordpress to redirect to my GitHub project of that name (so should GitHub be eaten alive after Microsofts take-over, you can run your own Gitnode or migrate, while the URLs stay valid).
  • decided to go to IndieWeb Camp in Nuremburg in October, together with Frank Meeuwsen

My stroll on the IndieWeb this morning leaves me with two things:

  • I really need to more deeply explore how to build loops between various services and my site, so that for all kinds of interactions my site is the actual repository of content. This likely also means making posting much easier for myself. The remaining challenge is my need to more fluidly cater to different circles of social distance / trust, layers that aren’t public but open to friends
  • The IndieWeb concept is more or less the same as what I think any technology or method should be to create networked agency: within control of the group that deploys it, useful on its own, more useful federated, and easy enough to use so my neighbours can adopt it.

Trying to take control over URLs, I want to redirect a URL I own to a corresponding URL on github. E.g. zylstra.eu/source/projectname should redirect to github.com/tonzyl/projectname I think something like RewriteRule “^/source/(.+)” “https://github.com/tonzyl/$1” should do the trick, yet it doesn’t work. Ultimately I put the redirect not in htaccess but in the settings of cpanel on my hosting back-end.

Some links I thought worth reading the past few days