I 2024-02-11 21:04:10.533446+00:00 Params: [('source', 'https://snarfed.org/2024-02-11_more-words-on-webmentions-and-backfeed-chris-mcleod'), ('target', 'https://fed.brid.gy')]
I 2024-02-11 21:04:10.533794+00:00 webmention from snarfed.org
I 2024-02-11 21:04:10.584106+00:00 User: Key('MagicKey', 'snarfed.org')
D 2024-02-11 21:04:10.584328+00:00 Loading Object https://snarfed.org/2024-02-11_more-words-on-webmentions-and-backfeed-chris-mcleod local=True remote=True
D 2024-02-11 21:04:10.609812+00:00 not in datastore
D 2024-02-11 21:04:10.610664+00:00 not in datastore
I 2024-02-11 21:04:10.611057+00:00 requests.get https://snarfed.org/2024-02-11_more-words-on-webmentions-and-backfeed-chris-mcleod {'gateway': False}
I 2024-02-11 21:04:11.274915+00:00 Received 200
I 2024-02-11 21:04:11.559089+00:00 Extracted microformats2 entry: {
"type": [
"h-entry"
],
"properties": {
"name": [
""
],
"url": [
"https://snarfed.org/2024-02-11_more-words-on-webmentions-and-backfeed-chris-mcleod"
],
"published": [
"2024-02-11T13:03:59-0800"
],
"syndication": [
"https://fed.brid.gy",
"https://fed.brid.gy"
],
"author": [
{
"type": [
"h-card"
],
"properties": {
"photo": [
{
"value": "https://secure.gravatar.com/avatar/947b5f3f323da0ef785b6f02d9c265d6?s=96&d=blank&r=g",
"alt": "",
"srcset": {
"2x": "https://secure.gravatar.com/avatar/947b5f3f323da0ef785b6f02d9c265d6?s=192&d=blank&r=g"
}
}
],
"name": [
"Ryan Barrett"
],
"url": [
"https://snarfed.org/"
]
},
"value": "Ryan Barrett",
"lang": "en-US"
}
],
"content": [
{
"value": "Likes https://chrismcleod.dev/blog/more-words-on-webmentions-and-backfeed/. More Words on Webmentions (and Backfeed) \u2014 Chris McLeod",
"lang": "en-US",
"html": "Likes <a class=\"u-like-of\" href=\"https://chrismcleod.dev/blog/more-words-on-webmentions-and-backfeed/\">https://chrismcleod.dev/blog/more-words-on-webmentions-and-backfeed/</a>;..\n<div class=\"e-content\">\nMore Words on Webmentions (and Backfeed) \u2014 Chris McLeod\n</div>"
},
{
"value": "More Words on Webmentions (and Backfeed) \u2014 Chris McLeod",
"lang": "en-US",
"html": "More Words on Webmentions (and Backfeed) \u2014 Chris McLeod"
}
],
"like-of": [
"https://chrismcleod.dev/blog/more-words-on-webmentions-and-backfeed/"
]
},
"children": [
{
"type": [
"h-card"
],
"properties": {
"name": [
"Ryan Barrett"
],
"locality": [
"San Francisco"
],
"region": [
"California"
],
"photo": [
{
"value": "https://snarfed.org/ryan_profile_medium.jpg",
"alt": "Ryan"
}
],
"email": [
"mailto:public@ryanb.org"
],
"key": [
"https://snarfed.org/pubkey.txt"
],
"uid": [
"https://snarfed.org/"
],
"url": [
"https://snarfed.org/"
],
"featured": [
"https://snarfed.org/w/wp-content/uploads/2013/06/copy-cropped-iraq_bar.jpg"
]
},
"lang": "en-US"
}
],
"lang": "en-US",
"url": "https://snarfed.org/2024-02-11_more-words-on-webmentions-and-backfeed-chris-mcleod"
}
I 2024-02-11 21:04:11.834576+00:00 Wrote Key('Object', 'https://snarfed.org/2024-02-11_more-words-on-webmentions-and-backfeed-chris-mcleod') {'labels': ['activity'], 'mf2': '...', 'object_ids': ['https://chrismcleod.dev/blog/more-words-on-webmentions-and-backfeed/'], 'source_protocol': 'web', 'type': 'like', 'new': True, 'changed': False}
I 2024-02-11 21:04:11.837417+00:00 From web: Key('Object', 'https://snarfed.org/2024-02-11_more-words-on-webmentions-and-backfeed-chris-mcleod') AS1: {
"objectType": "activity",
"verb": "like",
"published": "2024-02-11T13:03:59-08:00",
"content": "Likes <a class=\"u-like-of\" href=\"https://chrismcleod.dev/blog/more-words-on-webmentions-and-backfeed/\">https://chrismcleod.dev/blog/more-words-on-webmentions-and-backfeed/</a>;..\n<div class=\"e-content\">\nMore Words on Webmentions (and Backfeed) \u2014 Chris McLeod\n</div>",
"url": "https://snarfed.org/2024-02-11_more-words-on-webmentions-and-backfeed-chris-mcleod",
"object": "https://chrismcleod.dev/blog/more-words-on-webmentions-and-backfeed/",
"actor": {
"objectType": "person",
"displayName": "Ryan Barrett",
"url": "https://snarfed.org/",
"image": [
{
"url": "https://secure.gravatar.com/avatar/947b5f3f323da0ef785b6f02d9c265d6?s=96&d=blank&r=g"
}
],
"id": "https://snarfed.org/"
},
"id": "https://snarfed.org/2024-02-11_more-words-on-webmentions-and-backfeed-chris-mcleod"
}
D 2024-02-11 21:04:12.409981+00:00 Replacing copies with originals: {}
I 2024-02-11 21:04:12.577200+00:00 Wrote Key('Object', 'https://snarfed.org/2024-02-11_more-words-on-webmentions-and-backfeed-chris-mcleod') {'labels': ['activity'], 'mf2': '...', 'object_ids': ['https://chrismcleod.dev/blog/more-words-on-webmentions-and-backfeed/'], 'source_protocol': 'web', 'type': 'like', 'new': False, 'changed': False}
I 2024-02-11 21:04:12.779755+00:00 Wrote Key('Object', 'https://snarfed.org/2024-02-11_more-words-on-webmentions-and-backfeed-chris-mcleod') {'labels': ['activity'], 'mf2': '...', 'object_ids': ['https://chrismcleod.dev/blog/more-words-on-webmentions-and-backfeed/'], 'source_protocol': 'web', 'type': 'like', 'users': [Key('MagicKey', 'snarfed.org')], 'new': True, 'changed': False}
I 2024-02-11 21:04:12.831952+00:00 Finding recipients and their targets
I 2024-02-11 21:04:12.836627+00:00 Raw targets: ['https://chrismcleod.dev/blog/more-words-on-webmentions-and-backfeed/']
I 2024-02-11 21:04:12.846033+00:00 Determining protocol for id https://chrismcleod.dev/blog/more-words-on-webmentions-and-backfeed/
D 2024-02-11 21:04:12.846561+00:00 Loading Object https://chrismcleod.dev/blog/more-words-on-webmentions-and-backfeed/ local=True remote=False
D 2024-02-11 21:04:12.865462+00:00 not in datastore
I 2024-02-11 21:04:12.865684+00:00 Trying activitypub
D 2024-02-11 21:04:12.865791+00:00 Loading Object https://chrismcleod.dev/blog/more-words-on-webmentions-and-backfeed/ local=False remote=True
I 2024-02-11 21:04:12.866133+00:00 Signing with Key('MagicKey', 'fed.brid.gy')'s key
I 2024-02-11 21:04:13.773839+00:00 requests.get https://chrismcleod.dev/blog/more-words-on-webmentions-and-backfeed/ {'data': None, 'auth': <httpsig.requests_auth.HTTPSignatureAuth object at 0x3ea7fa14de10>, 'headers': {'Accept': '...', 'Date': '...', 'Host': '...', 'Content-Type': '...', 'Digest': '...'}, 'gateway': True}
I 2024-02-11 21:04:14.098781+00:00 Received 200:
I 2024-02-11 21:04:14.101890+00:00 Received 200
I 2024-02-11 21:04:14.102202+00:00 Got 200 headers: {'Content-Type': 'text/html', 'Date': 'Sun, 11 Feb 2024 21:04:13 GMT', 'Cache-Control': 'public, must-revalidate, max-age=30', 'Content-Encoding': 'gzip', 'ETag': '"61628306"', 'Last-Modified': 'Sun, 11 Feb 2024 20:27:30 GMT', 'Transfer-Encoding': 'chunked', 'Vary': 'Accept-Encoding', 'Strict-Transport-Security': 'max-age=10886400; includeSubDomains; preload', 'Referrer-Policy': 'strict-origin-when-cross-origin', 'X-Content-Type-Options': 'nosniff', 'X-XSS-Protection': '1; mode=block', 'X-DNS-Prefetch-Control': 'off', 'Content-Security-Policy': 'upgrade-insecure-requests; block-all-mixed-content;', 'X-Frame-Options': 'DENY', 'permissions-policy': 'autoplay=(), camera=(), gyroscope=(), magnetometer=(), microphone=(), payment=(), publickey-credentials-get=()'}
I 2024-02-11 21:04:14.119494+00:00 no AS2 available
I 2024-02-11 21:04:14.121570+00:00 Trying web
D 2024-02-11 21:04:14.122247+00:00 Loading Object https://chrismcleod.dev/blog/more-words-on-webmentions-and-backfeed/ local=False remote=True
I 2024-02-11 21:04:14.122589+00:00 requests.get https://chrismcleod.dev/blog/more-words-on-webmentions-and-backfeed/ {'gateway': False}
I 2024-02-11 21:04:14.381157+00:00 Received 200
I 2024-02-11 21:04:14.401554+00:00 Extracted microformats2 entry: {
"type": [
"h-entry"
],
"properties": {
"name": [
"More Words on Webmentions (and Backfeed)"
],
"url": [
"https://chrismcleod.dev/blog/more-words-on-webmentions-and-backfeed/"
],
"published": [
"2024-02-11T13:42:00Z"
],
"author": [
{
"type": [
"h-card"
],
"properties": {
"name": [
"Chris McLeod"
],
"url": [
"https://chrismcleod.dev/"
]
},
"value": "Chris McLeod",
"lang": "en"
}
],
"content": [
{
"value": "Webmentions aren\u2019t actually the problem\nAfter my earlier post on webmentions, Cam kindly reminded me that the bit I felt uneasy about is actually backfeed. To quote the IndieWeb wiki:\n\nBackfeed is the process of syndicating interactions on your POSSE copies back (AKA reverse syndicating) to your original posts.\n\nIt\u2019s interesting reading the discussion section on the wiki page, as it acknowledges some of the concerns that have come up of late, but ultimately, skims over them.\n\nThe list of \u201cpro\u201d reasons for backfeed mentions making it easier for people to reply, particularly those who are less technical. However true this might be, I believe it\u2019s probably equally true that the less technical someone is the then less likely they will understand why their words are appearing on a different site. Their expectations[1] are almost certainly \u201cI replied/liked/whatever on Site A (more likely App A), so it\u2019s not going to appear on Site B\u201d. Is it right we\u2019re[2] subverting these expectations in an effort to make blogs and personal websites \u201cmore social\u201d?\n\nAside from the privacy and implementation concerns noted in the last post, Cam noted in his own post that another problem backfeed can lead to is context collapse. This isn\u2019t a problem I have much experience with (so can\u2019t really talk to it) but I thought it worth noting here for completeness.\nThis is not a new discussion\nTerrence wrote about the ethics of this topic in 2022. His concerns were/are pretty much identical to my own. Bix wrote similarly on the integration of ActivityPub into everything just last month. Sebastian wrote an in-depth look at the problem - particularly through the lens of GDPR - back in 2018! There will be many more posts out there about the issues - and no doubt, potential solutions - to the problems with backfeed as a concept. If you know of any good ones, please send it my way on Mastodon.\nIt\u2019s on us as webmasters\n(Yeah, I cited the deep magic. Substitute for \u201csite admin\u201d or \u201csite owner\u201d if you prefer.)\n\nHow we handle the issues that have been raised is ultimately on us: the people who build and run the websites who integrate these features. We have to be more thoughtful about these things rather than rushing to \u201coh, cool new technology\u201d. I didn\u2019t really pay the issues much heed when I first implemented backfeed in 2019, but I should have.\n\nThere might come a day when users expect their details, words, and actions could show up on other sites they weren\u2019t aware of. ActivityPub and other forms of the Fediverse and federation might herald that future. But I don\u2019t think we\u2019re there yet, and I\u2019m not convinced everyone will buy into it. I\u2019ve seen enough threads on Bluesky where someone reacts with abject horror when they learn that basically everything on Bluesky is public, and similar threads when someone learns just how far public posts on Mastodon can reach.\n\nBy all means send and receive webmentions. Even backfeed interactions onto your site. Just be mindful of how you do it and whether displaying all the data you receive is the best thing to do.\n Dr Ian Malcolm in Jurassic park: You were so preoccupied with whether or not you could, you didn\u2019t stop to think if you should A quick clarification: I \u2764\ufe0f Brid.gy\nI wrote my last post pretty quickly and late at night, immediately before going to bed. After a re-read this morning I felt that it occasionally came across as me having a go at Brid.gy. That wasn\u2019t my intent; I admire the technical feat of what Brid.gy achieves and could achieve in the future, and I respect that it is an open service helping to link disparate parts of the internet together, for free. My issues really lie with the consumption of what Brid.gy provides, rather than Brid.gy itself.\n\nYes, this is a massive generalisation, but I like to think it comes from a place of experience. \u21a9\ufe0e\n\nI\u2019ll use \u201cwe\u201d and \u201cus\u201d a fair bit in this post. It\u2019s largely the \u201croyal we\u201d. As I\u2019ve said before: I ain\u2019t the boss of you. \u21a9\ufe0e",
"lang": "en",
"html": "<h2 id=\"webmentions-arent-actually-the-problem\"><a class=\"heading-anchor\" href=\"https://chrismcleod.dev/blog/more-words-on-webmentions-and-backfeed/#webmentions-arent-actually-the-problem\">Webmentions aren\u2019t actually the problem</a></h2>\n<p>After my earlier<a href=\"https://chrismcleod.dev/blog/some-words-on-webmentions/\" rel=\"noopener\" target=\"_blank\"> post on webmentions</a>, <a class=\"u-in-reply-to\" href=\"https://campegg.com/2024/02/11/over-the-last.html\">Cam kindly reminded me that the bit I felt uneasy about is actually <em>backfeed</em></a>. To quote the IndieWeb wiki:</p>\n<blockquote>\n<p><strong>Backfeed</strong> is the process of syndicating <a href=\"https://indieweb.org/interactions\" rel=\"noopener\" target=\"_blank\" title=\"interactions\">interactions</a> on your <a href=\"https://indieweb.org/POSSE\" rel=\"noopener\" target=\"_blank\" title=\"POSSE\">POSSE</a> copies <em>back</em> (AKA reverse syndicating) to your original posts.</p>\n</blockquote>\n<p>It\u2019s interesting reading the <a href=\"https://indieweb.org/backfeed#Discussion\" rel=\"noopener\" target=\"_blank\">discussion section</a> on the wiki page, as it acknowledges some of the concerns that have come up of late, but ultimately, skims over them.</p>\n<p>The list of \u201cpro\u201d reasons for backfeed mentions making it easier for people to reply, particularly those who are less technical. However true this might be, I believe it\u2019s probably equally true that the less technical someone is the then less likely they will understand <em>why</em> their words are appearing on a different site. Their expectations<sup class=\"footnote-ref\"><a href=\"https://chrismcleod.dev/blog/more-words-on-webmentions-and-backfeed/#fn1\" id=\"fnref1\">[1]</a></sup> are almost certainly \u201cI replied/liked/whatever on Site A (more likely <em>App</em> A), so it\u2019s not going to appear on Site B\u201d. Is it right we\u2019re<sup class=\"footnote-ref\"><a href=\"https://chrismcleod.dev/blog/more-words-on-webmentions-and-backfeed/#fn2\" id=\"fnref2\">[2]</a></sup> subverting these expectations in an effort to make blogs and personal websites \u201cmore social\u201d?</p>\n<p>Aside from the privacy and implementation concerns noted in the last post, Cam noted in his own post that another problem backfeed can lead to is <a href=\"https://indieweb.org/context_collapse\" rel=\"noopener\" target=\"_blank\">context collapse</a>. This isn\u2019t a problem I have much experience with (so can\u2019t really talk to it) but I thought it worth noting here for completeness.</p>\n<h2 id=\"this-is-not-a-new-discussion\"><a class=\"heading-anchor\" href=\"https://chrismcleod.dev/blog/more-words-on-webmentions-and-backfeed/#this-is-not-a-new-discussion\">This is not a new discussion</a></h2>\n<p>Terrence<a href=\"https://shkspr.mobi/blog/2022/12/the-ethics-of-syndicating-comments-using-webmentions/\" rel=\"noopener\" target=\"_blank\"> wrote about the ethics of this topic</a> in 2022. His concerns were/are pretty much identical to my own. Bix wrote similarly <a href=\"https://bix.blog/2024/01/11/activitypub-is-to-the-indieweb-as-a-i-is-to-silicon-valley/\" rel=\"noopener\" target=\"_blank\">on the integration of ActivityPub into everything</a> just last month. Sebastian wrote <a href=\"https://sebastiangreger.net/2018/05/indieweb-privacy-challenge-webmentions-backfeeds-gdpr/\" rel=\"noopener\" target=\"_blank\">an in-depth look at the problem</a> - particularly through the lens of GDPR - back in 2018! There will be many more posts out there about the issues - and no doubt, potential solutions - to the problems with backfeed as a concept. If you know of any good ones, please send it my way <a href=\"https://mastodon.online/@mstrkapowski\" rel=\"noopener\" target=\"_blank\">on Mastodon</a>.</p>\n<h2 id=\"its-on-us-as-webmasters\"><a class=\"heading-anchor\" href=\"https://chrismcleod.dev/blog/more-words-on-webmentions-and-backfeed/#its-on-us-as-webmasters\">It\u2019s on us as webmasters</a></h2>\n<p>(Yeah, I cited <a href=\"https://thehistoryoftheweb.com/postscript/what-happened-to-the-webmaster/\" rel=\"noopener\" target=\"_blank\">the deep magic</a>. Substitute for \u201csite admin\u201d or \u201csite owner\u201d if you prefer.)</p>\n<p>How we handle the issues that have been raised is ultimately on us: the people who build and run the websites who integrate these features. We have to be more thoughtful about these things rather than rushing to \u201coh, cool new technology\u201d. I didn\u2019t really pay the issues much heed when I first implemented backfeed in 2019, but I should have.</p>\n<p>There might come a day when users expect their details, words, and actions could show up on other sites they weren\u2019t aware of. ActivityPub and other forms of the Fediverse and federation might herald that future. But I don\u2019t think we\u2019re there yet, and I\u2019m not convinced everyone will buy into it. I\u2019ve seen enough threads on Bluesky where someone reacts with abject horror when they learn that <a href=\"https://bsky.social/about/blog/5-19-2023-user-faq\" rel=\"noopener\" target=\"_blank\">basically <em>everything</em> on Bluesky is public</a>, and similar threads when someone learns just how far public posts on Mastodon can reach.</p>\n<p>By all means send and receive webmentions. Even backfeed interactions onto your site. Just be mindful of how you do it and whether displaying all the data you receive is the best thing to do.</p>\n<figure><picture><source sizes=\"(min-width: 55rem) 820px, 100vw\" srcset=\"/assets/images/_m67XhJpRc-320.avif 320w, /assets/images/_m67XhJpRc-570.avif 570w\" type=\"image/avif\"><source sizes=\"(min-width: 55rem) 820px, 100vw\" srcset=\"/assets/images/_m67XhJpRc-320.webp 320w, /assets/images/_m67XhJpRc-570.webp 570w\" type=\"image/webp\"><source sizes=\"(min-width: 55rem) 820px, 100vw\" srcset=\"/assets/images/_m67XhJpRc-320.jpeg 320w, /assets/images/_m67XhJpRc-570.jpeg 570w\" type=\"image/jpeg\"><img alt=\"Dr Ian Malcolm in Jurassic park: You were so preoccupied with whether or not you could, you didn\u2019t stop to think if you should\" class=\"\" decoding=\"async\" height=\"309\" loading=\"lazy\" src=\"https://chrismcleod.dev/assets/images/_m67XhJpRc-570.jpeg\" width=\"570\"/></source></source></source></picture></figure>\n<h2 id=\"a-quick-clarification-i-\u2764\ufe0f-bridgy\"><a class=\"heading-anchor\" href=\"https://chrismcleod.dev/blog/more-words-on-webmentions-and-backfeed/#a-quick-clarification-i-\u2764\ufe0f-bridgy\">A quick clarification: I \u2764\ufe0f </a><a href=\"http://Brid.gy\" rel=\"noopener\" target=\"_blank\">Brid.gy</a></h2>\n<p>I wrote my last post pretty quickly and late at night, immediately before going to bed. After a re-read this morning I felt that it occasionally came across as me having a go at <a href=\"http://Brid.gy\" rel=\"noopener\" target=\"_blank\">Brid.gy</a>. That wasn\u2019t my intent; I admire the technical feat of what <a href=\"http://Brid.gy\" rel=\"noopener\" target=\"_blank\">Brid.gy</a> achieves and could achieve in the future, and I respect that it is an open service helping to link disparate parts of the internet together, for free. My issues really lie with the <em>consumption</em> of what <a href=\"http://Brid.gy\" rel=\"noopener\" target=\"_blank\">Brid.gy</a> provides, rather than <a href=\"http://Brid.gy\" rel=\"noopener\" target=\"_blank\">Brid.gy</a> itself.</p>\n<hr class=\"footnotes-sep\"/>\n<section class=\"footnotes\">\n<ol class=\"footnotes-list\">\n<li class=\"footnote-item\" id=\"fn1\"><p>Yes, this is a massive generalisation, but I like to think it comes from a place of experience. <a class=\"footnote-backref\" href=\"https://chrismcleod.dev/blog/more-words-on-webmentions-and-backfeed/#fnref1\">\u21a9\ufe0e</a></p>\n</li>\n<li class=\"footnote-item\" id=\"fn2\"><p>I\u2019ll use \u201cwe\u201d and \u201cus\u201d a fair bit in this post. It\u2019s largely the \u201c<a href=\"https://en.wikipedia.org/wiki/Royal_we\" rel=\"noopener\" target=\"_blank\">royal we</a>\u201d. As I\u2019ve said before: I ain\u2019t the boss of you. <a class=\"footnote-backref\" href=\"https://chrismcleod.dev/blog/more-words-on-webmentions-and-backfeed/#fnref2\">\u21a9\ufe0e</a></p>\n</li>\n</ol>\n</section>"
}
],
"in-reply-to": [
"https://campegg.com/2024/02/11/over-the-last.html"
],
"category": [
"posts",
"indieweb",
"webmentions",
"backfeed"
]
},
"lang": "en",
"url": "https://chrismcleod.dev/blog/more-words-on-webmentions-and-backfeed/"
}
I 2024-02-11 21:04:14.554789+00:00 Wrote Key('Object', 'https://chrismcleod.dev/blog/more-words-on-webmentions-and-backfeed/') {'mf2': '...', 'source_protocol': 'web', 'type': 'comment'}
I 2024-02-11 21:04:14.555375+00:00 web owns id https://chrismcleod.dev/blog/more-words-on-webmentions-and-backfeed/
I 2024-02-11 21:04:14.555522+00:00 Skipping same-protocol target https://chrismcleod.dev/blog/more-words-on-webmentions-and-backfeed/
I 2024-02-11 21:04:14.555624+00:00 Direct targets: dict_keys([])
I 2024-02-11 21:04:14.739847+00:00 Wrote Key('Object', 'https://snarfed.org/2024-02-11_more-words-on-webmentions-and-backfeed-chris-mcleod') {'labels': ['activity'], 'mf2': '...', 'object_ids': ['https://chrismcleod.dev/blog/more-words-on-webmentions-and-backfeed/'], 'source_protocol': 'web', 'status': 'ignored', 'type': 'like', 'users': [Key('MagicKey', 'snarfed.org')], 'new': True, 'changed': False}
I 2024-02-11 21:04:14.740559+00:00 Returning 204: No targets, nothing to do ¯\_(ツ)_/¯
E 2024-02-11 21:04:14.741348+00:00 <class 'oauth_dropins.webutil.flask_util.NoContent'>: 204 No Content: No Content