Publishing on the web really is quite marvellous:
…an endless thrill, a sort of everlasting, punk-rock feeling and I hope it will never really go away.
{
"type": "entry",
"published": "2018-11-08T08:26:07Z",
"url": "https://adactio.com/links/14498",
"category": [
"writing",
"sharing",
"publishing",
"indieweb",
"communication",
"connection",
"text"
],
"bookmark-of": [
"https://robinrendle.com/notes/what-do-you-want-to-do-when-you-grow-up-kid/"
],
"content": {
"text": "What do you want to do when you grow up, kid? \u2022 Robin Rendle\n\n\n\nPublishing on the web really is quite marvellous:\n\n\n \u2026an endless thrill, a sort of everlasting, punk-rock feeling and I hope it will never really go away.",
"html": "<h3>\n<a class=\"p-name u-bookmark-of\" href=\"https://robinrendle.com/notes/what-do-you-want-to-do-when-you-grow-up-kid/\">\nWhat do you want to do when you grow up, kid? \u2022 Robin Rendle\n</a>\n</h3>\n\n<p>Publishing on the web really is quite marvellous:</p>\n\n<blockquote>\n <p>\u2026an endless thrill, a sort of everlasting, punk-rock feeling and I hope it will never really go away.</p>\n</blockquote>"
},
"post-type": "bookmark",
"_id": "1373429",
"_source": "2",
"_is_read": true
}
{
"type": "entry",
"author": {
"name": null,
"url": "https://www.manton.org/",
"photo": null
},
"url": "https://www.manton.org/2018/11/07/microblog-mastodon.html",
"name": "Micro.blog + Mastodon",
"content": {
"html": "<p>For some time, we have been considering how we could open up compatibility between <a href=\"https://micro.blog/\">Micro.blog</a> and <a href=\"https://joinmastodon.org/\">Mastodon</a>. Any feature that could be disruptive needs to be approached carefully. In this post I want to talk about how Micro.blog supports Mastodon, why I think it\u2019s useful, and anticipate some questions that we\u2019ll get about this feature.</p>\n\n<p>We\u2019re launching 2 major features today:</p>\n\n<ul><li>Micro.blog can now cross-post to a Mastodon user account, in the same way we cross-post to Twitter, Facebook, Medium, and LinkedIn. This takes a copy of your blog posts and sends them to a specified Mastodon account.</li>\n <li>Your custom domain on Micro.blog can now be ActivityPub-compatible, so that you can follow and reply to Mastodon users directly on Micro.blog. This also means someone can follow your blog posts by adding @you@yourdomain.com on Mastodon. (This username is configurable. Mine is @manton@manton.org.)</li>\n</ul><p>These 2 features are separate and either can be enabled if you want. I have tried to be very deliberate in how ActivityPub is implemented. It is off by default, and to keep the focus on blogging and content ownership, it only works with custom domain names.</p>\n\n<p>One of the most important goals for Micro.blog is to encourage more people to blog. I wrote last year that <a href=\"https://www.manton.org/2017/01/14/key-for-microblog.html\">it\u2019s a success if more people blog</a>. Based on the feedback we\u2019ve received from the Micro.blog community, we are making great progress toward that goal.</p>\n\n<p>We have a lot of things we want to help solve with Micro.blog, but blogging is a core part of the foundation. It\u2019s not about being the most popular social network. It\u2019s not about competing with every platform that launches. It\u2019s much better for the mission of Micro.blog for us to embrace other platforms (as we\u2019ve always done with the <a href=\"https://indieweb.org/\">IndieWeb</a>) rather than put up walls between APIs.</p>\n\n<p><a href=\"https://manton.org/2018/09/07/the-way-out.html\">I recently published a post with 4 parts</a> to how we get out of the current mess with today\u2019s big social networks. I mentioned Mastodon in that post because while I don\u2019t think Mastodon tackles all 4 parts of fixing this, I do think it has a role to play.</p>\n\n<p>More compatibility with Mastodon lets us support the good things that Mastodon has accomplished, while still carrying forward what I think are the unique strengths of Micro.blog. It also opens up the Micro.blog community to interact with a much larger user base.</p>\n\n<p>Sometimes in the Mastodon world your identity can get fragmented across multiple instances. You might start on mastodon.social but then move to another instance, effectively breaking the link between your readers and your posts each time you move, with no way to migrate posts between instances. By supporting Mastodon and ActivityPub in Micro.blog, you can consolidate your identity and posts back to your own blog at your own domain name.</p>\n\n<p><a href=\"https://manton.org/2018/03/23/indieweb-generation-and.html\">As I wrote earlier this year</a>, content ownership on the web is about domain names:</p>\n\n<blockquote>\n <p>When you write and post photos at your own domain name, your content can outlive any one blogging platform. This month marked the 16th anniversary of blogging at manton.org, and in that time I\u2019ve switched blogging platforms and hosting providers a few times. The posts and URLs can all be preserved through those changes because it\u2019s my own domain name.</p>\n</blockquote>\n\n<p>If you already have your blog on Micro.blog at yourdomain.com, we can build on that to allow @you@yourdomain.com or @whatever@micro.domain.com. This focus on domain names will continue to guide new features in Micro.blog.</p>\n\n<p>Let me answer some questions:</p>\n\n<ul><li><strong>How is Mastodon support enabled on my account?</strong> In Micro.blog on the web, click Account \u2192 ActivityPub. You will be prompted to select a username. A paid hosted microblog is required so that Micro.blog can use your custom domain name.</li>\n <li><strong>How can I find Mastodon users to follow on Micro.blog?</strong> As more Micro.blog users interact with Mastodon users, some of those users will naturally show up in conversations or even be featured in our Discover timeline. You can also add a specific Mastodon user by searching for their full username.</li>\n <li><strong>Will Micro.blog now start showing follower counts?</strong> No, it\u2019s important to me that we don\u2019t change the Micro.blog user experience to resemble every other social network. When you follow a Micro.blog user from Mastodon, an individual Mastodon instance will have its own follower count just for that instance. Any follower count shown in Mastodon for a Micro.blog user will be wrong. This isn\u2019t ideal, but it\u2019s the best we can currently do with how Mastodon works.</li>\n <li><strong>What about Content Warnings?</strong> Micro.blog does not support them. I\u2019ve heard from Mastodon fans who like Content Warnings, but I\u2019m concerned about introducing extra friction in both the posting and reading experience. We\u2019ll reevaluate this feature later.</li>\n <li><strong>What happens to direct messages sent from Mastodon to Micro.blog?</strong> Micro.blog does not have any private posts by design. Direct messages sent from Mastodon are converted into a private email.</li>\n <li><strong>Is this going to make Micro.blog just like Mastodon?</strong> No, this is not a clone of Mastodon merged into Micro.blog or running alongside it. It\u2019s a from-scratch implementation of a few common APIs that Mastodon uses so that both systems can talk to each other.</li>\n <li><strong>Will third-party Mastodon clients work with Micro.blog?</strong> Not currently. We might consider this later, but because of the UI differences, I think it\u2019s a better fit to have third-party apps designed for either Micro.blog or IndieWeb standards.</li>\n <li><strong>What will happen to the Micro.blog community?</strong> I hope that this will help grow the community, without taking away from what has worked well on Micro.blog. While you might see some Mastodon posts, and those Mastodon users can interact with Micro.blog users, users from other Mastodon instances won\u2019t know about our community guidelines or expectations for Micro.blog. The community will remain predominantly Micro.blog users who share our goals for the platform.</li>\n <li><strong>How does Micro.blog\u2019s mute feature work with Mastodon?</strong> Muting in Micro.blog has been expanded to support muting individual Mastodon users, or entire Mastodon instances based on their domain name. We have also preloaded a common <a href=\"https://github.com/tootcafe/blocked-instances\">list of Mastodon instances that are muted automatically</a> because of code of conduct violations.</li>\n</ul><p>This is a really big feature. I hope you enjoy it! This is just the baseline. I\u2019ll be working on bug fixes and improvements to make this integration work as smoothly as possible. If you have any feedback, let me know at <a href=\"mailto:help@micro.blog\">help@micro.blog</a>.</p>",
"text": "For some time, we have been considering how we could open up compatibility between Micro.blog and Mastodon. Any feature that could be disruptive needs to be approached carefully. In this post I want to talk about how Micro.blog supports Mastodon, why I think it\u2019s useful, and anticipate some questions that we\u2019ll get about this feature.\n\nWe\u2019re launching 2 major features today:\n\nMicro.blog can now cross-post to a Mastodon user account, in the same way we cross-post to Twitter, Facebook, Medium, and LinkedIn. This takes a copy of your blog posts and sends them to a specified Mastodon account.\n Your custom domain on Micro.blog can now be ActivityPub-compatible, so that you can follow and reply to Mastodon users directly on Micro.blog. This also means someone can follow your blog posts by adding @you@yourdomain.com on Mastodon. (This username is configurable. Mine is @manton@manton.org.)\nThese 2 features are separate and either can be enabled if you want. I have tried to be very deliberate in how ActivityPub is implemented. It is off by default, and to keep the focus on blogging and content ownership, it only works with custom domain names.\n\nOne of the most important goals for Micro.blog is to encourage more people to blog. I wrote last year that it\u2019s a success if more people blog. Based on the feedback we\u2019ve received from the Micro.blog community, we are making great progress toward that goal.\n\nWe have a lot of things we want to help solve with Micro.blog, but blogging is a core part of the foundation. It\u2019s not about being the most popular social network. It\u2019s not about competing with every platform that launches. It\u2019s much better for the mission of Micro.blog for us to embrace other platforms (as we\u2019ve always done with the IndieWeb) rather than put up walls between APIs.\n\nI recently published a post with 4 parts to how we get out of the current mess with today\u2019s big social networks. I mentioned Mastodon in that post because while I don\u2019t think Mastodon tackles all 4 parts of fixing this, I do think it has a role to play.\n\nMore compatibility with Mastodon lets us support the good things that Mastodon has accomplished, while still carrying forward what I think are the unique strengths of Micro.blog. It also opens up the Micro.blog community to interact with a much larger user base.\n\nSometimes in the Mastodon world your identity can get fragmented across multiple instances. You might start on mastodon.social but then move to another instance, effectively breaking the link between your readers and your posts each time you move, with no way to migrate posts between instances. By supporting Mastodon and ActivityPub in Micro.blog, you can consolidate your identity and posts back to your own blog at your own domain name.\n\nAs I wrote earlier this year, content ownership on the web is about domain names:\n\n\n When you write and post photos at your own domain name, your content can outlive any one blogging platform. This month marked the 16th anniversary of blogging at manton.org, and in that time I\u2019ve switched blogging platforms and hosting providers a few times. The posts and URLs can all be preserved through those changes because it\u2019s my own domain name.\n\n\nIf you already have your blog on Micro.blog at yourdomain.com, we can build on that to allow @you@yourdomain.com or @whatever@micro.domain.com. This focus on domain names will continue to guide new features in Micro.blog.\n\nLet me answer some questions:\n\nHow is Mastodon support enabled on my account? In Micro.blog on the web, click Account \u2192 ActivityPub. You will be prompted to select a username. A paid hosted microblog is required so that Micro.blog can use your custom domain name.\n How can I find Mastodon users to follow on Micro.blog? As more Micro.blog users interact with Mastodon users, some of those users will naturally show up in conversations or even be featured in our Discover timeline. You can also add a specific Mastodon user by searching for their full username.\n Will Micro.blog now start showing follower counts? No, it\u2019s important to me that we don\u2019t change the Micro.blog user experience to resemble every other social network. When you follow a Micro.blog user from Mastodon, an individual Mastodon instance will have its own follower count just for that instance. Any follower count shown in Mastodon for a Micro.blog user will be wrong. This isn\u2019t ideal, but it\u2019s the best we can currently do with how Mastodon works.\n What about Content Warnings? Micro.blog does not support them. I\u2019ve heard from Mastodon fans who like Content Warnings, but I\u2019m concerned about introducing extra friction in both the posting and reading experience. We\u2019ll reevaluate this feature later.\n What happens to direct messages sent from Mastodon to Micro.blog? Micro.blog does not have any private posts by design. Direct messages sent from Mastodon are converted into a private email.\n Is this going to make Micro.blog just like Mastodon? No, this is not a clone of Mastodon merged into Micro.blog or running alongside it. It\u2019s a from-scratch implementation of a few common APIs that Mastodon uses so that both systems can talk to each other.\n Will third-party Mastodon clients work with Micro.blog? Not currently. We might consider this later, but because of the UI differences, I think it\u2019s a better fit to have third-party apps designed for either Micro.blog or IndieWeb standards.\n What will happen to the Micro.blog community? I hope that this will help grow the community, without taking away from what has worked well on Micro.blog. While you might see some Mastodon posts, and those Mastodon users can interact with Micro.blog users, users from other Mastodon instances won\u2019t know about our community guidelines or expectations for Micro.blog. The community will remain predominantly Micro.blog users who share our goals for the platform.\n How does Micro.blog\u2019s mute feature work with Mastodon? Muting in Micro.blog has been expanded to support muting individual Mastodon users, or entire Mastodon instances based on their domain name. We have also preloaded a common list of Mastodon instances that are muted automatically because of code of conduct violations.\nThis is a really big feature. I hope you enjoy it! This is just the baseline. I\u2019ll be working on bug fixes and improvements to make this integration work as smoothly as possible. If you have any feedback, let me know at help@micro.blog."
},
"published": "2018-11-07T14:24:01-06:00",
"post-type": "article",
"_id": "1369047",
"_source": "12",
"_is_read": true
}
{
"type": "entry",
"author": {
"name": "<span class='p-author h-card'>Kh\u00fcrt Williams</span>",
"url": "https://islandinthenet.com/",
"photo": null
},
"url": "https://islandinthenet.com/indiewebring/",
"published": "2018-11-07T14:50:32+00:00",
"content": {
"html": "<p>Added IndieWebring code to the title header for blog posts.</p>",
"text": "Added IndieWebring code to the title header for blog posts."
},
"name": "IndieWebRing",
"post-type": "article",
"_id": "1365437",
"_source": "242",
"_is_read": true
}
{
"type": "entry",
"published": "2018-11-06T23:18:52+0000",
"url": "https://seblog.nl/2018/11/06/3/exploring-queries-for-private-feeds",
"category": [
"indieweb",
"private posts"
],
"syndication": [
"https://news.indieweb.org/en/seblog.nl/2018/11/06/3/exploring-queries-for-private-feeds"
],
"name": "Exploring queries for private feeds",
"content": {
"text": "One of the discussions this weekend in Berlin was on the topic of private feeds. Martijn and Sven made great progress by implemeting a flow to fetch private pages using various endpoints for tokens and authentication.\nApart from the question how to fetch private feeds, there is also the question how to present private feeds. The easiest way is probably to give every user their own feed, containing only the private posts for them. They can separately follow your public feed, and your queries are easier.\nBut in line with Silo\u2019s like Twitter and Facebook, I think I would prefer presenting one feed, with both public and private posts, scoped for the authenticated user. When I described this to Aaron he said that he liked it, but that he didn\u2019t know where to begin with writing code that does that. I didn\u2019t either, but it made me want to explore the possibilities.\nOn a sidenote: this feed design also raises another problem, of how to signal to the user that they can see this post but no-one else. I leave that one for another time.\nDrawing rough lines around boxes\nBorrowing from Facebook, there are roughly four categories you can share content in:\n\npublic \u2013\u00a0These posts can be seen by anyone. This is the default on nearly all IndieWeb sites today.\n\nauthenticated \u2013 These posts can only been seen if you sign in, but, anyone can sign in. Facebook has this category and we can mimic that with IndieAuth, but it might not add that much value.\n\nfriends only \u2013 This is a big category on Facebook, and made possible by the friendslist, which is also a big feature on Facebook.\n\nselected audience \u2013\u00a0Facebook also allows you to pick your audience on a per-post basis. This can be done by either selecting individual users, or selecting lists, which can contain users.\nThere is also the possibility of excluding specific people or lists from posts, but that one is even more advanced, so I put it out of scope for this exploration.\nThe first category is easy, for we already have it. The second category is harder, but once you got past the authentication it\u2019s easy again. One could query a database for visibility = 'authenticated' OR visibility = 'public', that would work.\nThe third category would require us to keep a list of friends. The fourth category could also require us to keep lists of people, so it might be better to merge them.\nThrow in some tables\nThis brings us to a simple database schema. I see three main tables: entries, people and groups, with a pivot table between all of them: entry_group, entry_person and group_person. I have chosen \u2018people\u2019 over \u2018users\u2019, because I might not want to give these people write access to anything, but they could be users as well.\nIt should work like this:\nEntries have a field for visibility, which can me marked public, authenticated or private.\nPeople can belong to groups, which have names. Think \u2018Friends\u2019, \u2018Family\u2019 and \u2018Coworkers\u2019.\nEntries can be opened up to individual people, or for a whole group.\nThere might be better ways of naming these, but I like the simplicity of this model. With private posts and audiences, I will always have to manage some form of lists, and this is the most simple way of doing it.\nEnter the monster query\nSo, with some trial and error, PHPUnit tests, and a lot of Laravel magic I came to the following monster query for these tables:\n(\n select `entries`.* \n from `groups` \n inner join `group_person` \n on `groups`.`id` = `group_person`.`group_id` \n inner join `entry_group` \n on `groups`.`id` = `entry_group`.`group_id` \n inner join `entries` \n on `entries`.`id` = `entry_group`.`entry_id` \n where `group_person`.`person_id` = ?\n) \nunion \n(\n select `entries`.* \n from `entries` \n inner join `entry_person` \n on `entries`.`id` = `entry_person`.`entry_id` \n where `entry_person`.`person_id` = ?\n) \nunion \n(\n select * \n from `entries` \n where `visibility` = 'public'\n) \norder by `published_at` desc\n... which is way shorter when expressed in with Laravel\u2019s Eloquent:\nclass Person extends Model\n{\n public function timeline()\n {\n return $this->groups()\n ->join('entry_group', 'groups.id', '=', 'entry_group.group_id')\n ->join('entries', 'entries.id', '=', 'entry_group.entry_id')\n ->select('entries.*')\n ->union($this->entries()->select('entries.*'))\n ->union(Entry::whereVisibility('public'))\n ->orderBy('published_at', 'desc');\n }\n\n public function groups()\n {\n return $this->belongsToMany(Group::class);\n }\n\n public function entries()\n {\n return $this->belongsToMany(Entry::class);\n }\n}\nSince the method timeline() returns the Query object, other where-clauses can be appended when needed.\nI am in a bit of a fight with Laravel still, for it adds\n\n'`group_person`.`person_id` as `pivot_person_id`, `group_person`.`group_id` as `pivot_group_id`' to the first query, which makes it blow up, but the raw query works!\nThere is possibly a better way of doing it, but this is a start! Feel free to steal or improve, but if you improve, let me know.",
"html": "<p>One of the discussions this weekend in <a href=\"https://indieweb.org/2018/Berlin\">Berlin</a> was on the topic of private feeds. <a href=\"https://vanderven.se/martijn/\">Martijn</a> and <a href=\"https://svenknebel.de\">Sven</a> made great progress by implemeting a flow to fetch private pages using <a href=\"https://indieweb.org/2018/Nuremberg/autoauth\">various endpoints for tokens and authentication</a>.</p>\n<p>Apart from the question how to fetch private feeds, there is also the question how to present private feeds. The easiest way is probably to give every user their own feed, containing only the private posts for them. They can separately follow your public feed, and your queries are easier.</p>\n<p>But in line with Silo\u2019s like Twitter and Facebook, I think I would prefer presenting one feed, with both public and private posts, scoped for the authenticated user. When I described this to <a href=\"https://aaronparecki.com\">Aaron</a> he said that he liked it, but that he didn\u2019t know where to begin with writing code that does that. I didn\u2019t either, but it made me want to explore the possibilities.</p>\n<p>On a sidenote: this feed design also raises another problem, of how to signal to the user that they can see this post but no-one else. I leave that one for another time.</p>\n<h2>Drawing rough lines around boxes</h2>\n<p>Borrowing from Facebook, there are roughly four categories you can share content in:</p>\n<ol><li>\n<em>public</em> \u2013\u00a0These posts can be seen by anyone. This is the default on nearly all IndieWeb sites today.</li>\n<li>\n<em>authenticated</em> \u2013 These posts can only been seen if you sign in, but, anyone can sign in. Facebook has this category and we can mimic that with IndieAuth, but it might not add that much value.</li>\n<li>\n<em>friends only</em> \u2013 This is a big category on Facebook, and made possible by the friendslist, which is also a big feature on Facebook.</li>\n<li>\n<em>selected audience</em> \u2013\u00a0Facebook also allows you to pick your audience on a per-post basis. This can be done by either selecting individual users, or selecting lists, which can contain users.</li>\n</ol><p>There is also the possibility of excluding specific people or lists from posts, but that one is even more advanced, so I put it out of scope for this exploration.</p>\n<p>The first category is easy, for we already have it. The second category is harder, but once you got past the authentication it\u2019s easy again. One could query a database for <code>visibility = 'authenticated' OR visibility = 'public'</code>, that would work.</p>\n<p>The third category would require us to keep a list of friends. The fourth category could also require us to keep lists of people, so it might be better to merge them.</p>\n<h2>Throw in some tables</h2>\n<p>This brings us to a simple database schema. I see three main tables: <code>entries</code>, <code>people</code> and <code>groups</code>, with a pivot table between all of them: <code>entry_group</code>, <code>entry_person</code> and <code>group_person</code>. I have chosen \u2018people\u2019 over \u2018users\u2019, because I might not want to give these people write access to anything, but they could be users as well.</p>\n<p>It should work like this:</p>\n<ul><li>Entries have a field for <code>visibility</code>, which can me marked <code>public</code>, <code>authenticated</code> or <code>private</code>.</li>\n<li>People can belong to groups, which have names. Think \u2018Friends\u2019, \u2018Family\u2019 and \u2018Coworkers\u2019.</li>\n<li>Entries can be opened up to individual people, or for a whole group.</li>\n</ul><p>There might be better ways of naming these, but I like the simplicity of this model. With private posts and audiences, I will always have to manage some form of lists, and this is the most simple way of doing it.</p>\n<h2>Enter the monster query</h2>\n<p>So, with some trial and error, PHPUnit tests, and a lot of Laravel magic I came to the following monster query for these tables:</p>\n<pre><code>(\n select `entries`.* \n from `groups` \n inner join `group_person` \n on `groups`.`id` = `group_person`.`group_id` \n inner join `entry_group` \n on `groups`.`id` = `entry_group`.`group_id` \n inner join `entries` \n on `entries`.`id` = `entry_group`.`entry_id` \n where `group_person`.`person_id` = ?\n) \nunion \n(\n select `entries`.* \n from `entries` \n inner join `entry_person` \n on `entries`.`id` = `entry_person`.`entry_id` \n where `entry_person`.`person_id` = ?\n) \nunion \n(\n select * \n from `entries` \n where `visibility` = 'public'\n) \norder by `published_at` desc</code></pre>\n<p>... which is way shorter when expressed in with Laravel\u2019s Eloquent:</p>\n<pre><code>class Person extends Model\n{\n public function timeline()\n {\n return $this->groups()\n ->join('entry_group', 'groups.id', '=', 'entry_group.group_id')\n ->join('entries', 'entries.id', '=', 'entry_group.entry_id')\n ->select('entries.*')\n ->union($this->entries()->select('entries.*'))\n ->union(Entry::whereVisibility('public'))\n ->orderBy('published_at', 'desc');\n }\n\n public function groups()\n {\n return $this->belongsToMany(Group::class);\n }\n\n public function entries()\n {\n return $this->belongsToMany(Entry::class);\n }\n}</code></pre>\n<p>Since the method <code>timeline()</code> returns the Query object, other where-clauses can be appended when needed.</p>\n<p>I am in a bit of a fight with Laravel still, for it adds<br />\n'`group_person`.`person_id` as `pivot_person_id`, `group_person`.`group_id` as `pivot_group_id`' to the first query, which makes it blow up, but the raw query works!</p>\n<p>There is possibly a better way of doing it, but this is a start! Feel free to steal or improve, but if you improve, let me know.</p>"
},
"post-type": "article",
"_id": "1367147",
"_source": "1366",
"_is_read": true
}
Yesterday: Great speakers @a11yclub (8/9 with blog, 7/9 on own #indieweb site)
Informative & thought provoking #a11yclub talks.
Thanks @LeonieWatson @hdv for posting slides, especially Leonie with HTML slides: http://decks.tink.uk/2018/a11yclub/
#HTMLfirst #a11y #2018_309
{
"type": "entry",
"published": "2018-11-06 09:05-0800",
"url": "http://tantek.com/2018/310/t2/great-speakers-a11yclub-talks",
"category": [
"indieweb",
"a11yclub",
"HTMLfirst",
"a11y",
"2018_309"
],
"content": {
"text": "Yesterday: Great speakers @a11yclub (8/9 with blog, 7/9 on own #indieweb site)\nInformative & thought provoking #a11yclub talks.\nThanks @LeonieWatson @hdv for posting slides, especially Leonie with HTML slides: http://decks.tink.uk/2018/a11yclub/\n#HTMLfirst #a11y #2018_309",
"html": "Yesterday: Great speakers <a class=\"h-cassis-username\" href=\"https://twitter.com/a11yclub\">@a11yclub</a> (8/9 with blog, 7/9 on own #<span class=\"p-category\">indieweb</span> site)<br />Informative & thought provoking #<span class=\"p-category\">a11yclub</span> talks.<br />Thanks <a class=\"h-cassis-username\" href=\"https://twitter.com/LeonieWatson\">@LeonieWatson</a> <a class=\"h-cassis-username\" href=\"https://twitter.com/hdv\">@hdv</a> for posting slides, especially Leonie with HTML slides: <a href=\"http://decks.tink.uk/2018/a11yclub/\">http://decks.tink.uk/2018/a11yclub/</a><br />#<span class=\"p-category\">HTMLfirst</span> #<span class=\"p-category\">a11y</span> #<span class=\"p-category\">2018_309</span>"
},
"author": {
"type": "card",
"name": "Tantek \u00c7elik",
"url": "http://tantek.com/",
"photo": "https://aperture-media.p3k.io/tantek.com/acfddd7d8b2c8cf8aa163651432cc1ec7eb8ec2f881942dca963d305eeaaa6b8.jpg"
},
"post-type": "note",
"_id": "1357027",
"_source": "1",
"_is_read": true
}
As well as graciously hosting Indie Web Camp Berlin on the weekend at Mozilla’s offices, Yulia has also drawn this super-cute comic.
{
"type": "entry",
"published": "2018-11-06T17:45:41Z",
"url": "https://adactio.com/links/14492",
"category": [
"indieweb",
"comic",
"primer",
"explanation",
"drawing",
"illustration",
"webmention",
"microsub",
"relme"
],
"bookmark-of": [
"http://hag.codes/social/2018/11/05/indieweb-comic.html"
],
"content": {
"text": "How to get on the #indieweb!\n\n\n\nAs well as graciously hosting Indie Web Camp Berlin on the weekend at Mozilla\u2019s offices, Yulia has also drawn this super-cute comic.",
"html": "<h3>\n<a class=\"p-name u-bookmark-of\" href=\"http://hag.codes/social/2018/11/05/indieweb-comic.html\">\nHow to get on the #indieweb!\n</a>\n</h3>\n\n<p>As well as graciously hosting Indie Web Camp Berlin on the weekend at Mozilla\u2019s offices, Yulia has also drawn this super-cute comic.</p>"
},
"post-type": "bookmark",
"_id": "1355867",
"_source": "2",
"_is_read": true
}
Beautiful comic by @ioctaptceb!
“How to get on the #indieweb”
http://hag.codes/social/2018/11/05/indieweb-comic.html
{
"type": "entry",
"published": "2018-11-06 03:29-0800",
"url": "http://tantek.com/2018/310/t1/beautiful-comic-indieweb",
"category": [
"indieweb"
],
"in-reply-to": [
"http://hag.codes/social/2018/11/05/indieweb-comic.html"
],
"content": {
"text": "Beautiful comic by @ioctaptceb!\n\u201cHow to get on the #indieweb\u201d\nhttp://hag.codes/social/2018/11/05/indieweb-comic.html",
"html": "Beautiful comic by <a class=\"h-cassis-username\" href=\"https://twitter.com/ioctaptceb\">@ioctaptceb</a>!<br />\u201cHow to get on the #<span class=\"p-category\">indieweb</span>\u201d<br />http://hag.codes/social/2018/11/05/indieweb-comic.html"
},
"author": {
"type": "card",
"name": "Tantek \u00c7elik",
"url": "http://tantek.com/",
"photo": "https://aperture-media.p3k.io/tantek.com/acfddd7d8b2c8cf8aa163651432cc1ec7eb8ec2f881942dca963d305eeaaa6b8.jpg"
},
"post-type": "reply",
"refs": {
"http://hag.codes/social/2018/11/05/indieweb-comic.html": {
"type": "entry",
"url": "http://hag.codes/social/2018/11/05/indieweb-comic.html",
"name": "hag.codes\u2019s post",
"post-type": "article"
}
},
"_id": "1352525",
"_source": "1",
"_is_read": true
}
Marty McGuire
{
"type": "entry",
"published": "2018-11-06T04:02:28-05:00",
"url": "https://martymcgui.re/2018/11/06/040228/",
"category": [
"IndieWeb",
"comic"
],
"content": {
"text": "Oh gosh this IndieWeb comic by yulia is simply delightful:\nhttp://hag.codes/social/2018/11/05/indieweb-comic.html",
"html": "<p>Oh gosh this IndieWeb comic by <a href=\"http://hag.codes/\">yulia</a> is simply delightful:</p>\n<p><a href=\"http://hag.codes/social/2018/11/05/indieweb-comic.html\">http://hag.codes/social/2018/11/05/indieweb-comic.html</a></p>"
},
"author": {
"type": "card",
"name": "Marty McGuire",
"url": false,
"photo": "https://aperture-proxy.p3k.io/8275f85e3a389bd0ae69f209683436fc53d8bad9/68747470733a2f2f6d617274796d636775692e72652f696d616765732f6c6f676f2e6a7067"
},
"post-type": "note",
"_id": "1352003",
"_source": "175",
"_is_read": true
}
{
"type": "entry",
"published": "2018-11-06T02:53:56+0000",
"url": "http://known.kevinmarks.com/2018/sending-webmentions-for-all-links-in-mentiontech-indieweb-yesvember",
"name": "sending webmentions for all links in mention.tech #indieweb #yesvember",
"content": {
"text": "A while back I built\u00a0mention.tech\u00a0which is a webmention sending tool with a couple of differences - you\u00a0can set it as your webmention endpoint, and it will pass through webmentions, but it will also cache the mentions itself, in case the linked URL doesn't have an endpoint.What it didn't have was a way to look for all outbound mentions and send them for a post, so I added that tonight. It may need to work more carefully wiht h-feeds, but with an h-entry it should be OK.Try it out at\u00a0mention.tech/mentionall\u00a0",
"html": "<p>A while back I built\u00a0<a href=\"https://mention.tech/\">mention.tech</a>\u00a0which is a webmention sending tool with a couple of differences - you\u00a0can set it as your webmention endpoint, and it will pass through webmentions, but it will also <a href=\"https://mention.tech/listmentions?target=https%3A%2F%2Fmention.tech%2Fmentionall\">cache the mentions itself</a>, in case the linked URL doesn't have an endpoint.</p><p>What it didn't have was a way to look for all outbound mentions and send them for a post, so I added that tonight. It may need to work more carefully wiht h-feeds, but with an h-entry it should be OK.</p><p>Try it out at\u00a0<a href=\"https://mention.tech/mentionall\">mention.tech/mentionall</a></p><p>\u00a0</p>"
},
"author": {
"type": "card",
"name": "Kevin Marks",
"url": "http://known.kevinmarks.com/profile/kevinmarks",
"photo": "https://aperture-proxy.p3k.io/ed7979fd10a648fc253eae0b54e66fb36e57d3d4/687474703a2f2f6b6e6f776e2e6b6576696e6d61726b732e636f6d2f66696c652f3932353536353636363931373362373836376162383339656536353536663965"
},
"post-type": "article",
"_id": "1350046",
"_source": "205",
"_is_read": true
}
{
"type": "entry",
"author": {
"name": "Kh\u00fcrt Williams",
"url": "https://islandinthenet.com/",
"photo": null
},
"url": "https://islandinthenet.com/2018-11-05-20-40-51/",
"published": "2018-11-06T01:40:51+00:00",
"content": {
"html": "<p>Test 1 Test 2 Test 3 Test 4 Test 5 Test 6 Test 7 Test 8 Test 9 Test 10 Test 11 Test 12 Test 13 Test 14 Test 15 Test 16 Test 17 Test 18 Test 19 Test 20 Test 21 Test 22 Test 23 https://webmention.rocks/update/1/part/2</p>",
"text": "Test 1 Test 2 Test 3 Test 4 Test 5 Test 6 Test 7 Test 8 Test 9 Test 10 Test 11 Test 12 Test 13 Test 14 Test 15 Test 16 Test 17 Test 18 Test 19 Test 20 Test 21 Test 22 Test 23 https://webmention.rocks/update/1/part/2"
},
"name": "2018-11-05 20.40.51",
"post-type": "article",
"_id": "1349419",
"_source": "242",
"_is_read": true
}
No matter what happens tomorrow, the next day there will still be work to do on Micro.blog and the IndieWeb. Join us Wednesday for Homebrew Website Club in Austin. 6:30pm at Mozart’s Coffee!
{
"type": "entry",
"author": {
"name": null,
"url": "https://www.manton.org/",
"photo": null
},
"url": "https://www.manton.org/2018/11/05/223922.html",
"content": {
"html": "<p>No matter what happens tomorrow, the next day there will still be work to do on Micro.blog and the IndieWeb. Join us Wednesday for Homebrew Website Club in Austin. 6:30pm at Mozart\u2019s Coffee!</p>",
"text": "No matter what happens tomorrow, the next day there will still be work to do on Micro.blog and the IndieWeb. Join us Wednesday for Homebrew Website Club in Austin. 6:30pm at Mozart\u2019s Coffee!"
},
"published": "2018-11-05T14:39:22-08:00",
"post-type": "note",
"_id": "1349072",
"_source": "12",
"_is_read": true
}
{
"type": "entry",
"author": {
"name": "Kh\u00fcrt Williams",
"url": "https://islandinthenet.com/",
"photo": null
},
"url": "https://islandinthenet.com/testing-webmentions-2/",
"published": "2018-11-05T23:19:48+00:00",
"content": {
"html": "<p>Testing 1, 2, 3. Test 1 Test 2 Test 3 Test 4 Test 5 Test 6 Test 7 Test 8 Test 9 Test 10 Test 11 Test 12 Test 13 Test 14 Test 15 Test 16 Test 17 Test 18 Test 19 Test 20 Test 21 Test 22 Test 23</p>",
"text": "Testing 1, 2, 3. Test 1 Test 2 Test 3 Test 4 Test 5 Test 6 Test 7 Test 8 Test 9 Test 10 Test 11 Test 12 Test 13 Test 14 Test 15 Test 16 Test 17 Test 18 Test 19 Test 20 Test 21 Test 22 Test 23"
},
"name": "Testing Webmentions",
"post-type": "article",
"_id": "1348478",
"_source": "242",
"_is_read": true
}
{
"type": "entry",
"author": {
"name": "Kh\u00fcrt Williams",
"url": "https://islandinthenet.com/",
"photo": null
},
"url": "https://islandinthenet.com/testing-webmentions/",
"published": "2018-11-05T23:02:56+00:00",
"content": {
"html": "<p>Argh!</p>",
"text": "Argh!"
},
"name": "Testing Webmentions",
"post-type": "article",
"_id": "1348479",
"_source": "242",
"_is_read": true
}
{
"type": "entry",
"author": {
"name": "Kh\u00fcrt Williams",
"url": "https://islandinthenet.com/",
"photo": null
},
"url": "https://islandinthenet.com/2018-11-05-17-57-53/",
"published": "2018-11-05T22:57:53+00:00",
"content": {
"html": "<p>Jacky, if you abandon Isso, how will your new website support comments for people who don\u2019t have their own website or who are not using a platform (blogger, Tumblr, wordpress.com) that supports webmentions?</p>",
"text": "Jacky, if you abandon Isso, how will your new website support comments for people who don\u2019t have their own website or who are not using a platform (blogger, Tumblr, wordpress.com) that supports webmentions?"
},
"name": "2018-11-05 17.57.53",
"post-type": "article",
"_id": "1348480",
"_source": "242",
"_is_read": true
}
At #IndieWebCamp @MozillaBerlin, coded some archive navigation in @Falcon: sequential previous/next navigation across day archives. More to do, like link from home page to more entries, skip days without posts, but happy with progress.
Next steps: https://indieweb.org/Falcon#archive_pages
Related #indieweb pages:
* https://indieweb.org/navigation
* https://indieweb.org/pagination
* https://indieweb.org/archive_navigation
{
"type": "entry",
"published": "2018-11-04 08:00-0800",
"url": "http://tantek.com/2018/308/t2/indiewebcamp-archive-navigation-day-archives",
"category": [
"IndieWebCamp",
"indieweb"
],
"content": {
"text": "At #IndieWebCamp @MozillaBerlin, coded some archive navigation in @Falcon: sequential previous/next navigation across day archives. More to do, like link from home page to more entries, skip days without posts, but happy with progress. \n\nNext steps: https://indieweb.org/Falcon#archive_pages\n\nRelated #indieweb pages:\n* https://indieweb.org/navigation\n* https://indieweb.org/pagination\n* https://indieweb.org/archive_navigation",
"html": "At #<span class=\"p-category\">IndieWebCamp</span> <a class=\"h-cassis-username\" href=\"https://twitter.com/MozillaBerlin\">@MozillaBerlin</a>, coded some archive navigation in <a class=\"h-cassis-username\" href=\"https://twitter.com/Falcon\">@Falcon</a>: sequential previous/next navigation across day archives. More to do, like link from home page to more entries, skip days without posts, but happy with progress. <br /><br />Next steps: <a href=\"https://indieweb.org/Falcon#archive_pages\">https://indieweb.org/Falcon#archive_pages</a><br /><br />Related #<span class=\"p-category\">indieweb</span> pages:<br />* <a href=\"https://indieweb.org/navigation\">https://indieweb.org/navigation</a><br />* <a href=\"https://indieweb.org/pagination\">https://indieweb.org/pagination</a><br />* <a href=\"https://indieweb.org/archive_navigation\">https://indieweb.org/archive_navigation</a>"
},
"author": {
"type": "card",
"name": "Tantek \u00c7elik",
"url": "http://tantek.com/",
"photo": "https://aperture-media.p3k.io/tantek.com/acfddd7d8b2c8cf8aa163651432cc1ec7eb8ec2f881942dca963d305eeaaa6b8.jpg"
},
"post-type": "note",
"_id": "1337007",
"_source": "1",
"_is_read": true
}
{
"type": "entry",
"published": "2018-11-04 05:25-0800",
"url": "http://tantek.com/2018/308/b1/received-webmention-update-source-redirect",
"in-reply-to": [
"https://github.com/w3c/webmention/issues/"
],
"name": "Received webmention update with source redirect should update comment link",
"content": {
"text": "In 3.2.4 Updating existing Webmentions, there needs to be a step to keep track of a source redirect e.g. for a new slug, or updating http to https, and to save and use that new URL instead of the original source in places like linking a received comment back to its original.",
"html": "<p>\nIn <a href=\"https://webmention.net/draft/#updating-existing-webmentions\">3.2.4 Updating existing Webmentions</a>, there needs to be a step to keep track of a source redirect e.g. for a new slug, or updating http to https, and to save and use that new URL instead of the original source in places like linking a received comment back to its original.\n</p>"
},
"author": {
"type": "card",
"name": "Tantek \u00c7elik",
"url": "http://tantek.com/",
"photo": "https://aperture-media.p3k.io/tantek.com/acfddd7d8b2c8cf8aa163651432cc1ec7eb8ec2f881942dca963d305eeaaa6b8.jpg"
},
"post-type": "reply",
"refs": {
"https://github.com/w3c/webmention/issues/": {
"type": "entry",
"url": "https://github.com/w3c/webmention/issues/",
"name": "GitHub project \u201cwebmention\u201d",
"post-type": "article"
}
},
"_id": "1337009",
"_source": "1",
"_is_read": true
}
Really happy to have my database cache auto-updating bugs fixed so that my posts are now instantly indexed in my website 🙂 Now if I can just switch my TV Show and Movie "watch" posts to use Micropub, because all of this logic is tied to my Micropub endpoint and the way I currently log tv shows and movies circumvents my Micropub endpoint. 🤦♂️
{
"type": "entry",
"published": "2018-11-04T13:33:53-05:00",
"url": "https://eddiehinkle.com/2018/11/04/10/note/",
"category": [
"tech"
],
"syndication": [
"https://micro.blog/EddieHinkle",
"https://twitter.com/eddiehinkle"
],
"content": {
"text": "Really happy to have my database cache auto-updating bugs fixed so that my posts are now instantly indexed in my website \ud83d\ude42 Now if I can just switch my TV Show and Movie \"watch\" posts to use Micropub, because all of this logic is tied to my Micropub endpoint and the way I currently log tv shows and movies circumvents my Micropub endpoint. \ud83e\udd26\u200d\u2642\ufe0f"
},
"author": {
"type": "card",
"name": "Eddie Hinkle",
"url": "https://eddiehinkle.com/",
"photo": "https://aperture-proxy.p3k.io/cc9591b69c2c835fa2c6e23745b224db4b4b431f/68747470733a2f2f656464696568696e6b6c652e636f6d2f696d616765732f70726f66696c652e6a7067"
},
"post-type": "note",
"_id": "1336929",
"_source": "226",
"_is_read": true
}
{
"type": "entry",
"published": "2018-11-04T16:19:51+0000",
"url": "http://known.kevinmarks.com/2018/rel-me-mastodon-and-browser-plugins",
"category": [
"indieweb",
"yesvember"
],
"name": "Rel-me, mastodon and browser plugins",
"content": {
"text": "If you go to an account on mastodon.social, like\u00a0mastodon.social/@kevinmarks\u00a0you can see that it now verifies rel=me links:However not all mastodon instances have updated to 2.6.1 yet, eg\u00a0xoxo.zone/@kevinmarksHelp is at hand though - with the\u00a0verify-me\u00a0chrome plugin\u00a0it will check when you click the green tick:And if you go try this on the mastodon.social version, you can check their checkmarks should be checked:Which is helps see if aral is being sneaky.#indieweb #yesvember",
"html": "<p>If you go to an account on mastodon.social, like\u00a0<a href=\"https://mastodon.social/@kevinmarks\">mastodon.social/@kevinmarks</a>\u00a0you can see that it now verifies rel=me links:</p><p><img src=\"https://aperture-proxy.p3k.io/169095d61be6b646d04d42a63ed489b78498097f/687474703a2f2f6b6e6f776e2e6b6576696e6d61726b732e636f6d2f66696c652f3865633264333939363136663330376433623939626135663333656630323439\" alt=\"\" width=\"656\" height=\"724\" /></p><p>However not all mastodon instances have updated to 2.6.1 yet, eg\u00a0<a href=\"https://xoxo.zone/@kevinmarks\">xoxo.zone/@kevinmarks</a></p><p><img src=\"https://aperture-proxy.p3k.io/0da4999b75c9fa1b510bce0c098c0e5df474e8d5/687474703a2f2f6b6e6f776e2e6b6576696e6d61726b732e636f6d2f66696c652f6538633532663836313934336661313661386237326466643833633137336236\" alt=\"\" width=\"624\" height=\"642\" /></p><p>Help is at hand though - with the\u00a0<a href=\"https://chrome.google.com/webstore/detail/verify-me/nnefkajddpfponfnmaflddipljfdlcjb/related?hl=en-GB&gl=GB\">verify-me\u00a0chrome plugin</a>\u00a0it will check when you click the green tick:</p><p><img src=\"https://aperture-proxy.p3k.io/f7105954cfd48531f6f81ac4664ae1aaaf5eb22e/687474703a2f2f6b6e6f776e2e6b6576696e6d61726b732e636f6d2f66696c652f6430383763376661303038396162643637336336313433623665303262616632\" alt=\"\" width=\"628\" height=\"634\" /></p><p>And if you go try this on the mastodon.social version, you can check their checkmarks should be checked:</p><p><img src=\"https://aperture-proxy.p3k.io/49e80a1bdf2f82c2628be24a542e2ca4817ba44f/687474703a2f2f6b6e6f776e2e6b6576696e6d61726b732e636f6d2f66696c652f3032623339343735323462323535656630333636656338626635613134616361\" alt=\"\" width=\"648\" height=\"758\" /></p><p>Which is helps see if <a href=\"https://mastodon.ar.al/@aral/100996368149632908\">aral is being sneaky</a>.</p><p><a href=\"http://known.kevinmarks.com/tag/indieweb\" class=\"p-category\">#indieweb</a> <a href=\"http://known.kevinmarks.com/tag/yesvember\" class=\"p-category\">#yesvember</a></p>"
},
"author": {
"type": "card",
"name": "Kevin Marks",
"url": "http://known.kevinmarks.com/profile/kevinmarks",
"photo": "https://aperture-proxy.p3k.io/ed7979fd10a648fc253eae0b54e66fb36e57d3d4/687474703a2f2f6b6e6f776e2e6b6576696e6d61726b732e636f6d2f66696c652f3932353536353636363931373362373836376162383339656536353536663965"
},
"post-type": "article",
"_id": "1335754",
"_source": "205",
"_is_read": true
}
{
"type": "entry",
"published": "2018-11-03T21:13:06-04:00",
"url": "https://eddiehinkle.com/2018/11/03/17/article/",
"category": [
"indieweb",
"tech"
],
"syndication": [
"https://micro.blog/EddieHinkle",
"https://news.indieweb.org/en",
"https://twitter.com/eddiehinkle"
],
"name": "Thinking through the IWC Berlin displaying responses session",
"content": {
"text": "I remotely attended the Displaying Responses session of IndieWebCamp Berlin 2018. It was very interesting and they made some good progress thinking though how to deal with how and when to display responses received to posts on your website.\nThey came to the conclusion that there are four groups of people that you want to treat their responses differently:\nAccepted / Immediate Connections\n2nd level connections\nEveryone\nMute or Blocked\nAccepted / Immediate Connections\nThese are essentially your friends on Facebook or your follow list on Twitter. These are people that you have chosen to connect with in some way and this logical conclusions can be drawn around the level of interactions you're willing to have.\nMy plan is to display these responses completely (name, photo and content of response). This list will be generated for me by adding anyone I follow, as well as anyone I have sent a reply to. This will NOT add people to whom I have liked, emoji reacted, quoted, or bookmarked. Those are lower level responses that do not indicate a deeper level of a desire to connect with that person.\n2nd Level Connections\nThese are \"friends of friends\". You can assume they won't do anything TOO bad, but you might not want them posting all over your site. There is a deeper level of trust here because of mutual connection but still some care should be taken. This can be determined through different ways. One way that has been brainstormed in the IndieWeb is Vouch.\nI don't currently track 2nd level connections but I liked how Tantek thought this through, so my plan is for replies to display their photo and name as \"other people that have responded to this post\", but not display the content of their reply. I also think if they send a like, emoji reaction or quote, I'll display it just like I would an Immediate Connection.\nEveryone\nThis is the World Wide Web, and anyone could send anything to my website via webmention. So this is a category you likely want to moderate.\nMy initial thought is I will accept likes, quotes and emoji reactions from them but I won't list attribution of who did it while moderated, just the reaction itself. For replies I am considering potentially listing the url of the author of the post under \"other people who have replied\" but no name, photo or content while moderated.\nMute or Blocked\nThese are people who you do not trust for whatever reasons have happened for you. You don't want to associate with them in any way.\nResponses are not displayed from these people and they are not listed in the moderation queue.\nSome thoughts on moderation\nThis means I'll need a moderation queue. Anything from a 2nd level connection or from the Everyone group will enter the moderation queue. Responses from 2nd level connections should appear higher in the queue than responses from the Everyone group. From there I can choose to:\napprove a response (display it like an immediate connection)\napprove response and accept author (makes this author an immediate connection so they aren't moderated anymore)\nignore response (this leaves the response as is, it leaves the queue but doesn't display additional details)\nremove response (this removes the response from my storage)\nremove response and block author (this both removes the response from my storage and makes sure I don't receive responses from them in the future)\nAll in all, it was a great session that I really enjoyed and I'm looking forward to actually working on implementing some of these features into my site.",
"html": "I remotely attended the <a href=\"https://etherpad.indieweb.org/responses\">Displaying Responses session</a> of <a href=\"https://indieweb.org/2018/Berlin#Sessions\">IndieWebCamp Berlin 2018</a>. It was very interesting and they made some good progress thinking though how to deal with how and when to display responses received to posts on your website.\n<p>They came to the conclusion that there are four groups of people that you want to treat their responses differently:</p>\n<ul><li>Accepted / Immediate Connections</li>\n<li>2nd level connections</li>\n<li>Everyone</li>\n<li>Mute or Blocked</li>\n</ul><h2>Accepted / Immediate Connections</h2>\n<p>These are essentially your friends on Facebook or your follow list on Twitter. These are people that you have chosen to connect with in some way and this logical conclusions can be drawn around the level of interactions you're willing to have.</p>\n<p>My plan is to display these responses completely (name, photo and content of response). This list will be generated for me by adding anyone I follow, as well as anyone I have sent a reply to. This will NOT add people to whom I have liked, emoji reacted, quoted, or bookmarked. Those are lower level responses that do not indicate a deeper level of a desire to connect with that person.</p>\n<h2>2nd Level Connections</h2>\n<p>These are \"friends of friends\". You can assume they won't do anything TOO bad, but you might not want them posting all over your site. There is a deeper level of trust here because of mutual connection but still some care should be taken. This can be determined through different ways. One way that has been brainstormed in the IndieWeb is Vouch.</p>\n<p>I don't currently track 2nd level connections but I liked how <a href=\"http://tantek.com\">Tantek</a> thought this through, so my plan is for replies to display their photo and name as \"other people that have responded to this post\", but not display the content of their reply. I also think if they send a like, emoji reaction or quote, I'll display it just like I would an Immediate Connection.</p>\n<h2>Everyone</h2>\n<p>This is the World Wide Web, and anyone could send anything to my website via webmention. So this is a category you likely want to moderate.</p>\n<p>My initial thought is I will accept likes, quotes and emoji reactions from them but I won't list attribution of who did it while moderated, just the reaction itself. For replies I am considering potentially listing the url of the author of the post under \"other people who have replied\" but no name, photo or content while moderated.</p>\n<h2>Mute or Blocked</h2>\n<p>These are people who you do not trust for whatever reasons have happened for you. You don't want to associate with them in any way.</p>\n<p>Responses are not displayed from these people and they are not listed in the moderation queue.</p>\n<h2>Some thoughts on moderation</h2>\n<p>This means I'll need a moderation queue. Anything from a 2nd level connection or from the Everyone group will enter the moderation queue. Responses from 2nd level connections should appear higher in the queue than responses from the Everyone group. From there I can choose to:</p>\n<ul><li>approve a response (display it like an immediate connection)</li>\n<li>approve response and accept author (makes this author an immediate connection so they aren't moderated anymore)</li>\n<li>ignore response (this leaves the response as is, it leaves the queue but doesn't display additional details)</li>\n<li>remove response (this removes the response from my storage)</li>\n<li>remove response and block author (this both removes the response from my storage and makes sure I don't receive responses from them in the future)</li>\n</ul><p>All in all, it was a great session that I really enjoyed and I'm looking forward to actually working on implementing some of these features into my site.\n</p>"
},
"author": {
"type": "card",
"name": "Eddie Hinkle",
"url": "https://eddiehinkle.com/",
"photo": "https://aperture-proxy.p3k.io/cc9591b69c2c835fa2c6e23745b224db4b4b431f/68747470733a2f2f656464696568696e6b6c652e636f6d2f696d616765732f70726f66696c652e6a7067"
},
"post-type": "article",
"_id": "1335053",
"_source": "226",
"_is_read": true
}
{
"type": "entry",
"published": "2018-11-04T10:38:33+0000",
"url": "http://known.kevinmarks.com/2018/the-verify-me-plugin-is-now-approved-at",
"category": [
"Indieweb",
"Yesvember"
],
"in-reply-to": [
"http://known.kevinmarks.com/2018/i-updated-the-verify-me-plugin-atindiewebverify-me-to"
],
"content": {
"text": "The verify-me plugin is now approved at the Chrome store: https://chrome.google.com/webstore/detail/verify-me/nnefkajddpfponfnmaflddipljfdlcjb/related?hl=en-G... \n\nNot sure how to get the firefox version updated. #Indieweb #Yesvember",
"html": "The verify-me plugin is now approved at the Chrome store: <a href=\"https://chrome.google.com/webstore/detail/verify-me/nnefkajddpfponfnmaflddipljfdlcjb/related?hl=en-GB&gl=GB\">https://chrome.google.com/webstore/detail/verify-me/nnefkajddpfponfnmaflddipljfdlcjb/related?hl=en-G...</a> <br />\nNot sure how to get the firefox version updated. <a href=\"http://known.kevinmarks.com/tag/Indieweb\" class=\"p-category\">#Indieweb</a> <a href=\"http://known.kevinmarks.com/tag/Yesvember\" class=\"p-category\">#Yesvember</a>"
},
"author": {
"type": "card",
"name": "Kevin Marks",
"url": "http://known.kevinmarks.com/profile/kevinmarks",
"photo": "https://aperture-proxy.p3k.io/ed7979fd10a648fc253eae0b54e66fb36e57d3d4/687474703a2f2f6b6e6f776e2e6b6576696e6d61726b732e636f6d2f66696c652f3932353536353636363931373362373836376162383339656536353536663965"
},
"post-type": "reply",
"_id": "1334012",
"_source": "205",
"_is_read": true
}