Had a (fireball) blast running Joel and Andy of the Silver Linings Playback Podcast through some loosey goosey Dungeons & Dragons as we discussed the loosey goosey 2000 film adaptation Dungeons & Dragons.
https://www.hobotrashcan.com/2024/06/24/silver-linings-playback-213-dungeons-dragons-ft-marty-mcguire/
{
"type": "entry",
"published": "2024-06-24T10:16:46-0400",
"url": "https://martymcgui.re/2024/06/24/101646/",
"category": [
"peakslot",
"podcast",
"silver-linings-playback",
"dnd"
],
"content": {
"text": "Had a (fireball) blast running Joel and Andy of the Silver Linings Playback Podcast through some loosey goosey Dungeons & Dragons as we discussed the loosey goosey 2000 film adaptation Dungeons & Dragons.\nhttps://www.hobotrashcan.com/2024/06/24/silver-linings-playback-213-dungeons-dragons-ft-marty-mcguire/",
"html": "<p>Had a (fireball) blast running Joel and Andy of the <a href=\"https://www.hobotrashcan.com/features/podcasts/silver-linings-playback/\">Silver Linings Playback Podcast</a> through some loosey goosey Dungeons & Dragons as we discussed the loosey goosey 2000 film adaptation <em>Dungeons & Dragons</em>.</p>\n<p><a href=\"https://www.hobotrashcan.com/2024/06/24/silver-linings-playback-213-dungeons-dragons-ft-marty-mcguire/\">https://www.hobotrashcan.com/2024/06/24/silver-linings-playback-213-dungeons-dragons-ft-marty-mcguire/</a></p>"
},
"author": {
"type": "card",
"name": "Marty McGuire",
"url": "https://martymcgui.re/",
"photo": "https://martymcgui.re/images/logo.jpg"
},
"post-type": "note",
"_id": "41462342",
"_source": "175"
}
{
"type": "entry",
"published": "2024-06-23T19:51:21-0400",
"url": "https://martymcgui.re/2024/06/23/ordering-an-indieweb-webring/",
"category": [
"\ud83d\udd78\ufe0f\ud83d\udc8d",
"webring",
"indieweb",
"update"
],
"name": "\ud83d\udd78\ufe0f\ud83d\udc49\ud83d\udc48\ud83d\udc8d Ordering an IndieWeb webring",
"content": {
"text": "Are you a member of the \ud83d\udd78\ufe0f\ud83d\udc8d IndieWeb Webring? Perhaps one of many who noticed that the \"previous\" and \"next\" links were actually going to random active member sites in the ring?\nI'm pleased to announce that the \"next\" and \"previous\" links between webring member sites should now be, more or less, deterministic! For example, if you visit gRegor's site, scroll to the webring links at the bottom, and click \"next\", you'll be taken to a site like mine! (at this moment, it is mine!) From my site, if you click the \"previous\" link, you'll be taken back to gRegor's site! This should m-\nWait, did you say \"more or less\"?\nWell, uh, yeah, good spot. At a high level, the update works like this:\nEach active member site gets a pseudo-random \"sorting\" number. For a given site, the \"next\" site is the one with the next highest sorting order, and the \"previous\" is the one with the next lowest.\nWhen you click on a \"next\" or \"previous\" webring link from a member site, your browser tells* the webring where you're coming from with a \"referrer\" header. If the webring recognizes the referer as an active member site, it'll look up the next - or previous - site in the ring to redirect you.\nWoah, woah, I see that asterisk\nWay to stay sharp! Referrer headers can leak potentially sensitive information, so over time browsers have added ways to restrict how and when referrer headers are sent between sites.\nMost of the time, the webring will only see the referring URL up to the first slash after the domain. For folks whose site on the webring has a path component, the webring won't be able to match it against most referrers.\nIt's also possible that your site is configured to not send referrer headers at all - in that case, the webring has nothing to go on to figure out that the visitor came from your site.\nIf the webring can't figure out where a visitor came from, they'll just get directed to a random active site.\nThat feels kinda broken if you ask me\nWell, it's no worse than before!\nIsn't there a way to improve it?\nThere is! Or... was. The first version of the webring included unique identifiers in the webring \"next\" and \"previous\" links for each member site. These unique IDs would have made it straightforward to figure out where a visitor is coming from.\nOh, don't tell me-\n\n Yeah, I removed that feature last year. \ud83d\ude05\n \n\nThe emoji-based IDs were hard to manage, added messy unintended meaning, and made it easy to mess up the webring links (or spoof someone else's) when copy-pasting!\nYou're going to link us to some code, aren't you?\nYou bet! You can find today's updates to the code here on my git hosting.\nThanks, I guess. So, what's next?\nI'm not sure! I feel like this update has the webring in a pretty good place. It's simple enough that I understand it and it works. I might look into some updates for the directory or the site layout, or help surface more information about member sites, like whether they advertise RSS feeds.\nOkay that's it, for now! Thanks for reading, imaginary interlocutor! As always, feel free to reply to this post on your own site, or feel free to drop me a line in the #indieweb chat (I\u2019m schmarty there)!",
"html": "<p>Are you a member of the <a href=\"https://xn--sr8hvo.ws/\">\ud83d\udd78\ufe0f\ud83d\udc8d IndieWeb Webring</a>? Perhaps one of many who <a href=\"https://github.com/martymcguire/indiewebring.ws/issues/17\">noticed that the \"previous\" and \"next\" links were actually going to random active member sites</a> in the ring?</p>\n<p>I'm pleased to announce that the \"next\" and \"previous\" links between webring member sites should now be, more or less, deterministic! For example, if you visit <a href=\"https://gregorlove.com/\">gRegor's site</a>, scroll to the webring links at the bottom, and click \"next\", you'll be taken to a site like mine! (at this moment, it <i>is</i> mine!) From my site, if you click the \"previous\" link, you'll be taken back to gRegor's site! This should m-</p>\n<h2>Wait, did you say \"more or less\"?</h2>\n<p>Well, uh, yeah, good spot. At a high level, the update works like this:</p>\n<p>Each active member site gets a pseudo-random \"sorting\" number. For a given site, the \"next\" site is the one with the next highest sorting order, and the \"previous\" is the one with the next lowest.</p>\n<p>When you click on a \"next\" or \"previous\" webring link from a member site, your browser tells* the webring where you're coming from with a \"referrer\" header. If the webring recognizes the referer as an active member site, it'll look up the next - or previous - site in the ring to redirect you.</p>\n<h2>Woah, woah, I see that asterisk</h2>\n<p>Way to stay sharp! Referrer headers can leak potentially sensitive information, so over time browsers have added ways to <a href=\"https://web.dev/articles/referrer-best-practices\">restrict how and when referrer headers are sent between sites</a>.</p>\n<p>Most of the time, the webring will only see the referring URL up to the first slash after the domain. For folks whose site on the webring has a path component, the webring won't be able to match it against most referrers.</p>\n<p>It's also possible that your site is configured to not send referrer headers <i>at all</i> - in that case, the webring has nothing to go on to figure out that the visitor came from your site.</p>\n<p>If the webring can't figure out where a visitor came from, they'll just get directed to a random active site.</p>\n<h2>That feels kinda broken if you ask me</h2>\n<p>Well, it's no worse than before!</p>\n<h2>Isn't there a way to improve it?</h2>\n<p>There is! Or... was. The first version of the webring included unique identifiers in the webring \"next\" and \"previous\" links for each member site. These unique IDs would have made it straightforward to figure out where a visitor is coming from.</p>\n<h2>Oh, don't tell me-</h2>\n<p>\n Yeah, I <a href=\"https://martymcgui.re/2023/05/20/rebooting--an-indieweb-webring/\">removed that feature last year</a>. \ud83d\ude05\n <br /></p>\n<p>The emoji-based IDs were hard to manage, added messy unintended meaning, and made it easy to mess up the webring links (or spoof someone else's) when copy-pasting!</p>\n<h2>You're going to link us to some code, aren't you?</h2>\n<p>You bet! You can find <a href=\"https://git.schmarty.net/schmarty/gem-diamond/compare/d0ed04...38ac424507\">today's updates to the code here on my git hosting</a>.</p>\n<h2>Thanks, I guess. So, what's next?</h2>\n<p>I'm not sure! I feel like this update has the webring in a pretty good place. It's simple enough that I understand it and it works. I might look into some updates for the directory or the site layout, or help surface more information about member sites, like whether they advertise RSS feeds.</p>\n<p>Okay that's it, for now! Thanks for reading, imaginary interlocutor! As always, feel free to <a href=\"https://indieweb.org/reply\">reply</a> to this post on your own site, or feel free to drop me a line in the <a href=\"https://chat.indieweb.org/\">#indieweb chat</a> (I\u2019m <code>schmarty</code> there)!</p>"
},
"author": {
"type": "card",
"name": "Marty McGuire",
"url": "https://martymcgui.re/",
"photo": "https://martymcgui.re/images/logo.jpg"
},
"post-type": "article",
"_id": "41457596",
"_source": "175"
}
{
"type": "entry",
"published": "2024-06-23T16:55:21-07:00",
"url": "https://beesbuzz.biz/blog/8493-Discharged-and-at-home",
"name": "Discharged and at home",
"content": {
"text": "I\u2019m back at home. They did a CT scan but there wasn\u2019t anything too concerning, it just seems that I was coughing hard enough that I had a minor bleed in my lungs, exacerbated by the blood thinners I take due to my clotting disorder. The prognosis is to just not take my blood thinners for a few days and to do the usual hydration/plenty of rest/etc.\n\nThe CT scan did find a couple of probably-unrelated nodules on my lungs which are probably nothing but will need a followup.\n\nAnwyay tomorrow my prescription for molnupiravir should finally come through. It\u2019d have been nice if I could have started on it yesterday when it was prescribed but supplies are limited right now. But it should at least help me to recover much more quickly.",
"html": "<p>I\u2019m back at home. They did a CT scan but there wasn\u2019t anything too concerning, it just seems that I was coughing hard enough that I had a minor bleed in my lungs, exacerbated by the blood thinners I take due to my clotting disorder. The prognosis is to just not take my blood thinners for a few days and to do the usual hydration/plenty of rest/etc.</p><p>The CT scan did find a couple of probably-unrelated nodules on my lungs which are probably nothing but will need a followup.</p><p>Anwyay tomorrow my prescription for molnupiravir should finally come through. It\u2019d have been nice if I could have started on it yesterday when it was prescribed but supplies are limited right now. But it should at least help me to recover much more quickly.</p>"
},
"author": {
"type": "card",
"name": "fluffy",
"url": "https://beesbuzz.biz/",
"photo": "https://beesbuzz.biz/static/headshot.jpg"
},
"post-type": "article",
"_id": "41456519",
"_source": "2778"
}
{
"type": "entry",
"published": "2024-06-23T13:33:33-07:00",
"url": "https://nadreck.me/2024/06/not-who-i-want-to-be/",
"category": [
"social-computing",
"identity"
],
"name": "Not Who I Want To Be",
"content": {
"text": "Jay has a recent post up called \u201cNot The Sort Of Person I Want To Be Online\u201c, and it strikes pretty close to home. It\u2019s worth the click, in my opinion. It opens with:\n\n\n\n\nIt would be so so easy for me to open my blog editor every week and vent and rant about the state of the world. About how crazy everything is, how detached and divorced from reality so much of the media is, how the Internet isn\u2019t\u00a0real life. But I don\u2019t.\nJay Springett\n\n\n\n\nAnd yeah, basically. If I want to spend my time online complaining and writing scathing takedowns of one thing or another, there is no shortage of topics (and the list gets constantly refreshed). It\u2019s so easy to dwell on all the shit going on. But that\u2019s not who I want to be, online or in person.\n\n\n\nI also liked this bit:\n\n\n\n\nI don\u2019t want to be part of a negative Internet, so I choose not to add to it. I don\u2019t see any value in doing cynicism as a service. There\u2019s enough negativity out there without me piling on. Instead, I aim to post things that I think is going to be beneficial for both my readers and myself.\u00a0\n\n\n\nI want to only have things online that I can stand by. The thoughts I\u2019ve had in public should be useful to me and others 3/4/5 even 10 years down the line. Referenced, revisited, and built upon. I don\u2019t write anything here thats written specifically for clicks and likes. Which being negative an Internet cheat code for.\n\n\n\nOf course it\u2019s nice when other people do link to my writing and when people share my blog with others \u2013 it\u2019s always a thrill \u2013 and\u00a0of course\u00a0I\u2019m interested in growing my audience online \u2013 who isn\u2019t?\nJay Springett\n\n\n\n\nI\u2019ve commented before that I\u2019m not particularly interested in \u201cgrowing my brand\u201d, and how freeing it has felt to be writing here because I want to, and maybe a few folks find it useful or interesting. If there is a magic formula for building an audience and becoming an online personage, I\u2019m sure as hell not doing it \u2013 my site traffic is largely stable (low, but stable) and has been for years at this point. I get the occasional brief spike when someone more notable happens to link to me (and there was one point a few months ago where I suddenly got about a thousand times more visitors for like two days, and I never figured out why \u2013 if it was a botnet I don\u2019t know why it landed on me, if it was someone big/popular linking, they must\u2019ve had noreferrer turned on, as analytics were useless). But Jay is right that it is nice when I get linked to or new folks start reading.\n\n\n\nIt\u2019s a conscious decision and effort, you know. When the default state you see when navigating online discourse is hate and cynicism, oneupmanship and takedowns, not only yucking other people\u2019s yum but declaring them bad people for thinking it was yummy in the first place\u2026 it\u2019s easy to let that become your default as well. But it\u2019s not healthy, it\u2019s not useful, at best it may give you a quick endorphin hit if you\u2019re lucky.\n\n\n\nThere\u2019s a bit from Charlie Mackesy\u2019s The Boy, the Mole, the Fox and the Horse that has made it into a few songs and elsewhere, and I think about it sometimes:\n\n\n\n\n\u201cWhat do you want to be when you grow up?\u201d\n\n\n\n\u201cKind,\u201d said the boy.\u201d\nCharlie Mackesy\n\n\n\n\nMe too, kid. Me too.",
"html": "<p>Jay has a recent post up called \u201c<a href=\"https://www.thejaymo.net/2024/06/23/344-not-the-sort-of-person-i-want-to-be/\">Not The Sort Of Person I Want To Be Online</a>\u201c, and it strikes pretty close to home. It\u2019s worth the click, in my opinion. It opens with:</p>\n\n\n\n<blockquote>\n<p>It would be so so easy for me to open my blog editor every week and vent and rant about the state of the world. About how crazy everything is, how detached and divorced from reality so much of the media is, how the Internet isn\u2019t<em>\u00a0real life</em>. But I don\u2019t.</p>\nJay Springett\n</blockquote>\n\n\n\n<p>And yeah, basically. If I want to spend my time online complaining and writing scathing takedowns of one thing or another, there is no shortage of topics (and the list gets constantly refreshed). It\u2019s so easy to dwell on all the shit going on. But that\u2019s not who I want to be, online or in person.</p>\n\n\n\n<p>I also liked this bit:</p>\n\n\n\n<blockquote>\n<p>I don\u2019t want to be part of a negative Internet, so I choose not to add to it. I don\u2019t see any value in doing cynicism as a service. There\u2019s enough negativity out there without me piling on. Instead, I aim to post things that I think is going to be beneficial for both my readers and myself.\u00a0</p>\n\n\n\n<p>I want to only have things online that I can stand by. The thoughts I\u2019ve had in public should be useful to me and others 3/4/5 even 10 years down the line. Referenced, revisited, and built upon. I don\u2019t write anything here thats written specifically for clicks and likes. Which being negative an Internet cheat code for.</p>\n\n\n\n<p>Of course it\u2019s nice when other people do link to my writing and when people share my blog with others \u2013 it\u2019s always a thrill \u2013 and\u00a0<em>of course\u00a0</em>I\u2019m interested in growing my audience online \u2013 who isn\u2019t?</p>\nJay Springett\n</blockquote>\n\n\n\n<p>I\u2019ve commented before that I\u2019m not particularly interested in \u201cgrowing my brand\u201d, and how freeing it has felt to be writing here because I want to, and maybe a few folks find it useful or interesting. If there is a magic formula for building an audience and becoming an online personage, I\u2019m sure as hell not doing it \u2013 my site traffic is largely stable (low, but stable) and has been for years at this point. I get the occasional brief spike when someone more notable happens to link to me (and there was one point a few months ago where I suddenly got about a thousand times more visitors for like two days, and I never figured out why \u2013 if it was a botnet I don\u2019t know why it landed on me, if it was someone big/popular linking, they must\u2019ve had <code>noreferrer</code> turned on, as analytics were useless). But Jay is right that it <em>is</em> nice when I get linked to or new folks start reading.</p>\n\n\n\n<p>It\u2019s a conscious decision and effort, you know. When the default state you see when navigating online discourse is hate and cynicism, oneupmanship and takedowns, not only yucking other people\u2019s yum but declaring them bad people for thinking it was yummy in the first place\u2026 it\u2019s easy to let that <em>become</em> your default as well. But it\u2019s not healthy, it\u2019s not useful, at best it may give you a quick endorphin hit if you\u2019re lucky.</p>\n\n\n\n<p>There\u2019s a bit from Charlie Mackesy\u2019s <em>The Boy, the Mole, the Fox and the Horse</em> that has made it into a <a href=\"https://www.youtube.com/watch?v=RR1eosKq4NU\">few songs</a> and elsewhere, and I think about it sometimes:</p>\n\n\n\n<blockquote>\n<p>\u201cWhat do you want to be when you grow up?\u201d</p>\n\n\n\n<p>\u201cKind,\u201d said the boy.\u201d</p>\nCharlie Mackesy\n</blockquote>\n\n\n\n<p>Me too, kid. Me too. </p>"
},
"author": {
"type": "card",
"name": "Nadreck",
"url": "http://nadreck.me",
"photo": null
},
"post-type": "article",
"_id": "41455425",
"_source": "2935"
}
{
"type": "entry",
"published": "2024-06-23T10:24:33-07:00",
"url": "https://beesbuzz.biz/blog/11737-covid-update",
"name": "covid update",
"content": {
"text": "i\u2019m in the ER because I started coughing up blood this morning. so much for releasing my\nnew avatar today\u2026",
"html": "<p>i\u2019m in the ER because I started coughing up blood this morning. so much for releasing my\nnew avatar today\u2026</p>"
},
"author": {
"type": "card",
"name": "fluffy",
"url": "https://beesbuzz.biz/",
"photo": "https://beesbuzz.biz/static/headshot.jpg"
},
"post-type": "article",
"_id": "41454610",
"_source": "2778"
}
{
"type": "entry",
"published": "2024-06-22T02:07:15-07:00",
"url": "https://beesbuzz.biz/blog/9128-Covid-III",
"name": "Covid III",
"author": {
"type": "card",
"name": "fluffy",
"url": "https://beesbuzz.biz/",
"photo": "https://beesbuzz.biz/static/headshot.jpg"
},
"post-type": "article",
"_id": "41445142",
"_source": "2778"
}
Happy 12 years of https://indieweb.org/POSSE #POSSE and
19 years of https://microformats.org/ #microformats! (as of yesterday, the 20th)
A few highlights from the past year:
POSSE (Publish on your Own Site, Syndicate Elsewhere) has grown steadily as a common practice in the #IndieWeb community, personal sites, CMSs (like Withknown, which itself reached 10 years in May!), and services (like https://micro.blog) for over a decade.
In its 12th year, POSSE broke through to broader technology press and adoption beyond the community. For example:
* David Pierce’s (@pierce@mas.to) excellent article @TheVerge.com (@verge@mastodon.social): “The poster’s guide to the internet of the future” (https://www.theverge.com/2023/10/23/23928550/posse-posting-activitypub-standard-twitter-tumblr-mastodon):
“Your post appears natively on all of those platforms, typically with some kind of link back to your blog. And your blog becomes the hub for everything, your main home on the internet.
Done right, POSSE is the best of all posting worlds.”
* David also recorded a 29 minute podcast on POSSE with some great interviews: https://podcasts.apple.com/us/podcast/the-posters-guide-to-the-new-internet/id430333725?i=1000632256014
* Cory Doctorow (@craphound.com @doctorow@mamot.fr) declared in his Pluralistic blog (@pluralisticmamot.fr) post: “Vice surrenders” (https://pluralistic.net/2024/02/24/anti-posse/):
“This is the moment for POSSE (Post Own Site, Share Everywhere [sic]), a strategy that sees social media as a strategy for bringing readers to channels that you control”
* And none other than Molly White (@mollywhite.net @molly0xfff@hachyderm.io) of @web3isgoinggreat.com (@web3isgreat@indieweb.social) built, deployed, and started actively using her own POSSE setup as described in her post titled “POSSE” (https://www.mollywhite.net/micro/entry/202403091817) to:
"… write posts in the microblog and automatically crosspost them to Twitter/Mastodon/Bluesky, while keeping the original post on my site."
Congrats Molly and well done!
In its 19th year, the microformats formal #microformats2 syntax and popular vocabularies h-card, h-entry, and h-feed, kept growing across IndieWeb (micro)blogging services and software like CMSs & SSGs both for publishing, and richer peer-to-peer social web interactions via #Webmention.
Beyond the IndieWeb, the rel=me microformat, AKA #relMe, continues to be adopted by services to support #distributed #verification, such as these in the past year:
* Meta Platforms #Threads user profile "Link" field¹
* #Letterboxd user profile website field²
For both POSSE and microformats, there is always more we can do to improve their techniques, technologies, and tools to help people own their content and identities online, while staying connected to friends across the web.
Got suggestions for this coming year? Join us in chat:
* https://chat.indieweb.org/dev
* https://chat.indieweb.org/microformats
for discussions about POSSE and microformats, respectively.
Previously: https://tantek.com/2023/171/t1/anniversaries-microformats-posse
This is post 15 of #100PostsOfIndieWeb. #100Posts
← https://tantek.com/2024/151/t1/minimum-interesting-service-worker
→ 🔮
Post glossary:
CMS
https://indieweb.org/CMS
h-card
https://microformats.org/wiki/h-card
h-entry
https://microformats.org/wiki/h-entry
h-feed
https://microformats.org/wiki/h-feed
microformats2 syntax
https://microformats.org/wiki/microformats2-parsing
rel-me
https://microformats.org/wiki/rel-me
SSG
https://indieweb.org/SSG
Webmention
https://indieweb.org/Webmention
Withknown
https://indieweb.org/Known
References:
¹ https://tantek.com/2023/234/t1/threads-supports-indieweb-rel-me
² https://indieweb.org/rel-me#Letterboxd
{
"type": "entry",
"published": "2024-06-21 22:02-0700",
"url": "https://tantek.com/2024/173/t1/years-posse-microformats-adoption",
"category": [
"POSSE",
"microformats",
"IndieWeb",
"microformats2",
"Webmention",
"relMe",
"distributed",
"verification",
"Threads",
"Letterboxd",
"100PostsOfIndieWeb",
"100Posts"
],
"content": {
"text": "Happy 12 years of https://indieweb.org/POSSE #POSSE and\n19 years of https://microformats.org/ #microformats! (as of yesterday, the 20th)\n\nA few highlights from the past year:\n\nPOSSE (Publish on your Own Site, Syndicate Elsewhere) has grown steadily as a common practice in the #IndieWeb community, personal sites, CMSs (like Withknown, which itself reached 10 years in May!), and services (like https://micro.blog) for over a decade.\n\nIn its 12th year, POSSE broke through to broader technology press and adoption beyond the community. For example:\n\n* David Pierce\u2019s (@pierce@mas.to) excellent article @TheVerge.com (@verge@mastodon.social): \u201cThe poster\u2019s guide to the internet of the future\u201d (https://www.theverge.com/2023/10/23/23928550/posse-posting-activitypub-standard-twitter-tumblr-mastodon):\n\u00a0 \u201cYour post appears natively on all of those platforms, typically with some kind of link back to your blog. And your blog becomes the hub for everything, your main home on the internet.\nDone right, POSSE is the best of all posting worlds.\u201d\n\n* David also recorded a 29 minute podcast on POSSE with some great interviews: \u00a0https://podcasts.apple.com/us/podcast/the-posters-guide-to-the-new-internet/id430333725?i=1000632256014\n\n* Cory Doctorow (@craphound.com @doctorow@mamot.fr) declared in his Pluralistic blog (@pluralisticmamot.fr) post: \u201cVice surrenders\u201d (https://pluralistic.net/2024/02/24/anti-posse/):\n\u00a0 \u201cThis is the moment for POSSE (Post Own Site, Share Everywhere [sic]), a strategy that sees social media as a strategy for bringing readers to channels that you control\u201d \n\n* And none other than Molly White (@mollywhite.net @molly0xfff@hachyderm.io) of @web3isgoinggreat.com (@web3isgreat@indieweb.social) built, deployed, and started actively using her own POSSE setup as described in her post titled \u201cPOSSE\u201d (https://www.mollywhite.net/micro/entry/202403091817) to: \n\u00a0 \"\u2026 write posts in the microblog and automatically crosspost them to Twitter/Mastodon/Bluesky, while keeping the original post on my site.\"\n\u00a0 \nCongrats Molly and well done!\n\n\nIn its 19th year, the microformats formal #microformats2 syntax and popular vocabularies h-card, h-entry, and h-feed, kept growing across IndieWeb (micro)blogging services and software like CMSs & SSGs both for publishing, and richer peer-to-peer social web interactions via #Webmention.\n\nBeyond the IndieWeb, the rel=me microformat, AKA #relMe, continues to be adopted by services to support #distributed #verification, such as these in the past year: \n\n* Meta Platforms #Threads user profile \"Link\" field\u00b9 \n* #Letterboxd user profile website field\u00b2\n\n\nFor both POSSE and microformats, there is always more we can do to improve their techniques, technologies, and tools to help people own their content and identities online, while staying connected to friends across the web.\n\nGot suggestions for this coming year? Join us in chat:\n* https://chat.indieweb.org/dev\n* https://chat.indieweb.org/microformats\nfor discussions about POSSE and microformats, respectively.\n\n\nPreviously: https://tantek.com/2023/171/t1/anniversaries-microformats-posse\n\n\nThis is post 15 of #100PostsOfIndieWeb. #100Posts\n\n\u2190 https://tantek.com/2024/151/t1/minimum-interesting-service-worker\n\u2192 \ud83d\udd2e\n\n\nPost glossary:\n\nCMS\n\u00a0 https://indieweb.org/CMS\nh-card\n\u00a0 https://microformats.org/wiki/h-card\nh-entry\n\u00a0 https://microformats.org/wiki/h-entry\nh-feed\n\u00a0 https://microformats.org/wiki/h-feed\nmicroformats2 syntax\n\u00a0 https://microformats.org/wiki/microformats2-parsing\nrel-me\n\u00a0 https://microformats.org/wiki/rel-me\nSSG\n\u00a0 https://indieweb.org/SSG\nWebmention\n\u00a0 https://indieweb.org/Webmention\nWithknown\n\u00a0 https://indieweb.org/Known\n\n\nReferences:\n\n\u00b9 https://tantek.com/2023/234/t1/threads-supports-indieweb-rel-me\n\u00b2 https://indieweb.org/rel-me#Letterboxd",
"html": "Happy 12 years of <a href=\"https://indieweb.org/POSSE\">https://indieweb.org/POSSE</a> #<span class=\"p-category\">POSSE</span> and<br />19 years of <a href=\"https://microformats.org/\">https://microformats.org/</a> #<span class=\"p-category\">microformats</span>! (as of yesterday, the 20th)<br /><br />A few highlights from the past year:<br /><br />POSSE (Publish on your Own Site, Syndicate Elsewhere) has grown steadily as a common practice in the #<span class=\"p-category\">IndieWeb</span> community, personal sites, CMSs (like Withknown, which itself reached 10 years in May!), and services (like <a href=\"https://micro.blog\">https://micro.blog</a>) for over a decade.<br /><br />In its 12th year, POSSE broke through to broader technology press and adoption beyond the community. For example:<br /><br />* David Pierce\u2019s (<a href=\"https://mas.to/@pierce\">@pierce@mas.to</a>) excellent article <a href=\"https://TheVerge.com\">@TheVerge.com</a> (<a href=\"https://mastodon.social/@verge\">@verge@mastodon.social</a>): \u201cThe poster\u2019s guide to the internet of the future\u201d (<a href=\"https://www.theverge.com/2023/10/23/23928550/posse-posting-activitypub-standard-twitter-tumblr-mastodon):\">https://www.theverge.com/2023/10/23/23928550/posse-posting-activitypub-standard-twitter-tumblr-mastodon):</a><br />\u00a0 \u201cYour post appears natively on all of those platforms, typically with some kind of link back to your blog. And your blog becomes the hub for everything, your main home on the internet.<br />Done right, POSSE is the best of all posting worlds.\u201d<br /><br />* David also recorded a 29 minute podcast on POSSE with some great interviews: \u00a0<a href=\"https://podcasts.apple.com/us/podcast/the-posters-guide-to-the-new-internet/id430333725?i=1000632256014\">https://podcasts.apple.com/us/podcast/the-posters-guide-to-the-new-internet/id430333725?i=1000632256014</a><br /><br />* Cory Doctorow (<a href=\"https://craphound.com\">@craphound.com</a> <a href=\"https://mamot.fr/@doctorow\">@doctorow@mamot.fr</a>) declared in his Pluralistic blog (<a href=\"https://pluralisticmamot.fr\">@pluralisticmamot.fr</a>) post: \u201cVice surrenders\u201d (<a href=\"https://pluralistic.net/2024/02/24/anti-posse/):\">https://pluralistic.net/2024/02/24/anti-posse/):</a><br />\u00a0 \u201cThis is the moment for POSSE (Post Own Site, Share Everywhere [sic]), a strategy that sees social media as a strategy for bringing readers to channels that you control\u201d <br /><br />* And none other than Molly White (<a href=\"https://mollywhite.net\">@mollywhite.net</a> <a href=\"https://hachyderm.io/@molly0xfff\">@molly0xfff@hachyderm.io</a>) of <a href=\"https://web3isgoinggreat.com\">@web3isgoinggreat.com</a> (<a href=\"https://indieweb.social/@web3isgreat\">@web3isgreat@indieweb.social</a>) built, deployed, and started actively using her own POSSE setup as described in her post titled \u201cPOSSE\u201d (<a href=\"https://www.mollywhite.net/micro/entry/202403091817\">https://www.mollywhite.net/micro/entry/202403091817</a>) to: <br />\u00a0 \"\u2026 write posts in the microblog and automatically crosspost them to Twitter/Mastodon/Bluesky, while keeping the original post on my site.\"<br />\u00a0 <br />Congrats Molly and well done!<br /><br /><br />In its 19th year, the microformats formal #<span class=\"p-category\">microformats2</span> syntax and popular vocabularies h-card, h-entry, and h-feed, kept growing across IndieWeb (micro)blogging services and software like CMSs & SSGs both for publishing, and richer peer-to-peer social web interactions via #<span class=\"p-category\">Webmention</span>.<br /><br />Beyond the IndieWeb, the rel=me microformat, AKA #<span class=\"p-category\">relMe</span>, continues to be adopted by services to support #<span class=\"p-category\">distributed</span> #<span class=\"p-category\">verification</span>, such as these in the past year: <br /><br />* Meta Platforms #<span class=\"p-category\">Threads</span> user profile \"Link\" field<a href=\"https://tantek.com/#t5Xa1_note-1\">\u00b9</a> <br />* #<span class=\"p-category\">Letterboxd</span> user profile website field<a href=\"https://tantek.com/#t5Xa1_note-2\">\u00b2</a><br /><br /><br />For both POSSE and microformats, there is always more we can do to improve their techniques, technologies, and tools to help people own their content and identities online, while staying connected to friends across the web.<br /><br />Got suggestions for this coming year? Join us in chat:<br />* <a href=\"https://chat.indieweb.org/dev\">https://chat.indieweb.org/dev</a><br />* <a href=\"https://chat.indieweb.org/microformats\">https://chat.indieweb.org/microformats</a><br />for discussions about POSSE and microformats, respectively.<br /><br /><br />Previously: <a href=\"https://tantek.com/2023/171/t1/anniversaries-microformats-posse\">https://tantek.com/2023/171/t1/anniversaries-microformats-posse</a><br /><br /><br />This is post 15 of #<span class=\"p-category\">100PostsOfIndieWeb</span>. #<span class=\"p-category\">100Posts</span><br /><br />\u2190 <a href=\"https://tantek.com/2024/151/t1/minimum-interesting-service-worker\">https://tantek.com/2024/151/t1/minimum-interesting-service-worker</a><br />\u2192 \ud83d\udd2e<br /><br /><br />Post glossary:<br /><br />CMS<br />\u00a0 <a href=\"https://indieweb.org/CMS\">https://indieweb.org/CMS</a><br />h-card<br />\u00a0 <a href=\"https://microformats.org/wiki/h-card\">https://microformats.org/wiki/h-card</a><br />h-entry<br />\u00a0 <a href=\"https://microformats.org/wiki/h-entry\">https://microformats.org/wiki/h-entry</a><br />h-feed<br />\u00a0 <a href=\"https://microformats.org/wiki/h-feed\">https://microformats.org/wiki/h-feed</a><br />microformats2 syntax<br />\u00a0 <a href=\"https://microformats.org/wiki/microformats2-parsing\">https://microformats.org/wiki/microformats2-parsing</a><br />rel-me<br />\u00a0 <a href=\"https://microformats.org/wiki/rel-me\">https://microformats.org/wiki/rel-me</a><br />SSG<br />\u00a0 <a href=\"https://indieweb.org/SSG\">https://indieweb.org/SSG</a><br />Webmention<br />\u00a0 <a href=\"https://indieweb.org/Webmention\">https://indieweb.org/Webmention</a><br />Withknown<br />\u00a0 <a href=\"https://indieweb.org/Known\">https://indieweb.org/Known</a><br /><br /><br />References:<br /><br /><a href=\"https://tantek.com/#t5Xa1_ref-1\">\u00b9</a> <a href=\"https://tantek.com/2023/234/t1/threads-supports-indieweb-rel-me\">https://tantek.com/2023/234/t1/threads-supports-indieweb-rel-me</a><br /><a href=\"https://tantek.com/#t5Xa1_ref-2\">\u00b2</a> <a href=\"https://indieweb.org/rel-me#Letterboxd\">https://indieweb.org/rel-me#Letterboxd</a>"
},
"author": {
"type": "card",
"name": "Tantek \u00c7elik",
"url": "https://tantek.com/",
"photo": "https://tantek.com/photo.jpg"
},
"post-type": "note",
"_id": "41445008",
"_source": "2460"
}
{
"type": "entry",
"published": "2024-06-21T21:01:00-07:00",
"url": "https://aaronparecki.com/2024/06/21/32/",
"photo": [
"https://aperture-media.p3k.io/aaronparecki.com/2b6a122254b2fdc2d1546af58ec596565c57ed4a2861fb0bc07274a6bef770a8.jpg"
],
"syndication": [
"https://www.swarmapp.com/user/59164/checkin/66764c7cd18f703dd1a883dc"
],
"name": "at Ride App Pickup",
"author": {
"type": "card",
"name": "Aaron Parecki",
"url": "https://aaronparecki.com/",
"photo": "https://aperture-media.p3k.io/aaronparecki.com/41061f9de825966faa22e9c42830e1d4a614a321213b4575b9488aa93f89817a.jpg"
},
"checkin": {
"type": "card",
"name": "Ride App Pickup",
"latitude": "45.588696",
"longitude": "-122.592831",
"url": "https://foursquare.com/v/58efbefb8f2c1a1bac333652"
},
"post-type": "checkin",
"_id": "41443810",
"_source": "16"
}
{
"type": "entry",
"published": "2024-06-21T12:46:20-07:00",
"url": "https://aaronparecki.com/2024/06/21/17/",
"photo": [
"https://aperture-media.p3k.io/aaronparecki.com/fa3ce7c3ddbfffc472c53647d51e25e769abd7e0213eebadd79d30f6f4ffa14d.jpg"
],
"syndication": [
"https://www.swarmapp.com/user/59164/checkin/6675d88c04eee62418da174e"
],
"name": "at Googleplex - Cafe Blaze",
"author": {
"type": "card",
"name": "Aaron Parecki",
"url": "https://aaronparecki.com/",
"photo": "https://aperture-media.p3k.io/aaronparecki.com/41061f9de825966faa22e9c42830e1d4a614a321213b4575b9488aa93f89817a.jpg"
},
"checkin": {
"type": "card",
"name": "Googleplex - Cafe Blaze",
"latitude": "37.420045",
"longitude": "-122.07257",
"url": "https://foursquare.com/v/4ed9054b77c8274efb6db6ed"
},
"post-type": "checkin",
"_id": "41441338",
"_source": "16"
}
{
"type": "entry",
"published": "2024-06-20T09:16:13-07:00",
"url": "https://aaronparecki.com/2024/06/20/9/",
"photo": [
"https://aperture-media.p3k.io/aaronparecki.com/d6885f30d98d6216f6c3ba4277364ae39ee5cba26534cd9a1dd820e2911a412a.jpg"
],
"syndication": [
"https://www.swarmapp.com/user/59164/checkin/667455cd4fff000935b97fc7"
],
"content": {
"text": "W3C FedID WG/CG kickoff"
},
"author": {
"type": "card",
"name": "Aaron Parecki",
"url": "https://aaronparecki.com/",
"photo": "https://aperture-media.p3k.io/aaronparecki.com/41061f9de825966faa22e9c42830e1d4a614a321213b4575b9488aa93f89817a.jpg"
},
"checkin": {
"type": "card",
"name": "Googleplex - 1295",
"latitude": "37.420176",
"longitude": "-122.074916",
"url": "https://foursquare.com/v/5009c2bbe4b0ddfaa64f47fb"
},
"post-type": "checkin",
"_id": "41430412",
"_source": "16"
}
{
"type": "entry",
"published": "2024-06-19T16:00:55-07:00",
"url": "https://aaronparecki.com/2024/06/19/14/",
"photo": [
"https://aperture-media.p3k.io/aaronparecki.com/5d3a1d6c2adedaeaf3e9d36201e3fa235e51aca37fa91c496812cf1f75551998.jpg"
],
"syndication": [
"https://www.swarmapp.com/user/59164/checkin/66736327a4f5732f363c3c7c"
],
"name": "at Gate C12",
"author": {
"type": "card",
"name": "Aaron Parecki",
"url": "https://aaronparecki.com/",
"photo": "https://aperture-media.p3k.io/aaronparecki.com/41061f9de825966faa22e9c42830e1d4a614a321213b4575b9488aa93f89817a.jpg"
},
"checkin": {
"type": "card",
"name": "Gate C12",
"latitude": "45.589395",
"longitude": "-122.597603",
"url": "https://foursquare.com/v/4d6e415438363704f93ea5d0"
},
"post-type": "checkin",
"_id": "41424388",
"_source": "16"
}
{
"type": "entry",
"published": "2024-06-16T12:56:08-07:00",
"url": "https://aaronparecki.com/2024/06/16/8/",
"photo": [
"https://aperture-media.p3k.io/aaronparecki.com/a851e84521adead12542d2fc8ef28b843acb27d38af63e8f167832c91efefd6d.jpg"
],
"syndication": [
"https://www.swarmapp.com/user/59164/checkin/666f43587cf9cb4b9831d83c"
],
"name": "at Thai Roses",
"author": {
"type": "card",
"name": "Aaron Parecki",
"url": "https://aaronparecki.com/",
"photo": "https://aperture-media.p3k.io/aaronparecki.com/41061f9de825966faa22e9c42830e1d4a614a321213b4575b9488aa93f89817a.jpg"
},
"checkin": {
"type": "card",
"name": "Thai Roses",
"latitude": "45.486088",
"longitude": "-122.747707",
"url": "https://foursquare.com/v/4a615abbf964a5205dc21fe3"
},
"post-type": "checkin",
"_id": "41424272",
"_source": "16"
}
At work I’m setting up some documents for micro-credentials, which I call “MC” for short. I entered “MC Debugging” as the title of one without much thought, then realized that would probably be my DJ name.
{
"type": "entry",
"published": "2024-06-19 14:10-0700",
"url": "https://gregorlove.com/2024/06/at-work-im-setting/",
"syndication": [
"https://bsky.app/profile/gregorlove.com/post/3kvcmn56srk2p"
],
"content": {
"text": "At work I\u2019m setting up some documents for micro-credentials, which I call \u201cMC\u201d for short. I entered \u201cMC Debugging\u201d as the title of one without much thought, then realized that would probably be my DJ name.",
"html": "<p>At work I\u2019m setting up some documents for micro-credentials, which I call \u201cMC\u201d for short. I entered \u201cMC Debugging\u201d as the title of one without much thought, then realized that would probably be my DJ name.</p>"
},
"author": {
"type": "card",
"name": "gRegor Morrill",
"url": "https://gregorlove.com/",
"photo": "https://gregorlove.com/site/assets/files/6268/profile-2021-square.300x0.jpg"
},
"post-type": "note",
"_id": "41424201",
"_source": "95"
}
{
"type": "entry",
"published": "2024-06-18T00:27:37-07:00",
"url": "https://beesbuzz.biz/blog/2456-Back-on-the-Patreon-train",
"name": "Back on the Patreon train",
"author": {
"type": "card",
"name": "fluffy",
"url": "https://beesbuzz.biz/",
"photo": "https://beesbuzz.biz/static/headshot.jpg"
},
"post-type": "article",
"_id": "41408279",
"_source": "2778"
}
{
"type": "entry",
"published": "2024-06-17T00:56:20+00:00",
"url": "https://cleverdevil.io/2024/fathers-day-dinner",
"photo": [
"https://cleverdevil.io/file/7557e880081f6c6105e79fc2302ead3c/thumb.jpg",
"https://cleverdevil.io/file/94972e30e56dda924f6b2c94f8a992dd/thumb.jpg"
],
"syndication": [
"https://cleverdevil.club/@jonathan/112629240129701221",
"https://bsky.app/profile/cleverdevil.io/post/3kv3hsp5pwc2x"
],
"name": "Father\u2019s Day Dinner with my Daughter",
"author": {
"type": "card",
"name": "Jonathan LaCour",
"url": "https://cleverdevil.io/profile/cleverdevil",
"photo": "https://cleverdevil.io/file/e37c3982acf4f0a8421d085b9971cd71/thumb.jpg"
},
"post-type": "photo",
"_id": "41398682",
"_source": "10"
}
{
"type": "entry",
"published": "2024-06-15T14:27:15-0400",
"url": "https://martymcgui.re/2024/06/15/gardening-an-indieweb-webring/",
"category": [
"\ud83d\udd78\ufe0f\ud83d\udc8d",
"webring",
"indieweb",
"update"
],
"name": "\ud83e\udd16\u2700\ud83c\udf3f Gardening an IndieWeb webring",
"content": {
"text": "Are you a member of the \ud83d\udd78\ufe0f\ud83d\udc8d IndieWeb Webring? Perhaps one of many who have been confused to discover that member sites are not automatically removed when the webring links disappear from their site?\n\n I'm pleased to announce that the webring will now be self-gardening! Webring member sites th-\n \n\nHold on, links to what now?\nThat-... is actually a good question!\nIn order for webrings to work, member sites have to link to one another, usually through the webring itself.\nWhen you sign in to the \ud83d\udd78\ufe0f\ud83d\udc8d IndieWeb Webring, you see this prompt on your dashboard page:\n\n Screenshot of a warning \"to stay active, make sure these links are visible on your site\", followed by a text area with HTML links to copy and paste.\n \n\n These links should be copied and pasted into your site so that they appear on the page that matches your webring sign-in. For example, I sign in with my homepage https://martymcgui.re/, so I put my links to the webring on my homepage. They look like this on my site, but you can style them up to look like anything you want.\n \n\n\n \"An IndieWeb Webring \ud83d\udd78\ufe0f\ud83d\udc8d\" text flanked by left and right unicode arrow links.\n \n\n The basic deal for most webrings is that, in order to receive incoming traffic from other member sites, you need to also display links back to the webring so a visitor can continue on their journey browsing sites from the webring.\nIf that's the deal, then when a member site goes offline, or removes the webring links from their page, the webring should no longer direct visitors to that site.\nThe IndieWeb webring tracks whether a site is \"Active\" or ... \"Not Active\" (ahem, Inactive). Active sites can receive traffic from webring visitors and, if you choose, appear on the Directory page. Inactive sites... can't do those things.\nAs the owner of an webring member site, you can sign in to the webring and your Dashboard page will show your site's current \"Active\" / \"Not Active\" status and the results of the most recent attempts to check your site for webring links. If you've made changes to your site, there's a \"Check links now!\" button on the Dashboard to scan for them again.\nOkay that's enough background, I think.\n\n Right, thanks. But actually no, there is more.\n \n\nInitially, Active status on the webring kiiiiind of worked like an honor system. The first time you successfully sign in, your site is added to the webring and set to Active. From that point on, there were only two ways for your site to get marked as Not Active:\n\n If you clicked \"Check links now!\" while your site was offline or didn't have webring links on it.\n \n\n \nOR if I ran a \"gardener\" script that checked the webring links for one or more sites.\nSince the webring came online in, um, 2018, I've only received a handful of nudges from folks who have been willing to track me down to the IndieWeb chat and complain. That led me to think this honor system was \"okay\" or \"at least not so bad that folks are willing to jump through hoops to bring it to my attention\".\nThat's definitely enough background.\nAgreed!\nSo what's new?\nWell, the honor system days are over! Which should be good for all webring member sites, I think.\nI've built a little automated gardener that will periodically check member sites for their links. It's designed in a way that trends towards polling member sites about once per month.\nFor a new member site, it basically works like this: about an hour after you sign up, your site will be checked for links. If they're there, the gardener will check again the next day. It will check again a few days later, then a week, then two weeks.\nFinally, as long as the links are there at every check, the gardener will only check once per month.\n\n What happens if the webring links disappear from my site?\n \n\nIf the gardener finds that an Active member site has gone offline or lost the webring links, the site is marked Not Active. It's checked again the next day, then a few days later, then a week and then two.\nFinally, the Not Active site will be checked once per month for 3 months. If the site stays Not Active that whole time, the gardener will stop checking and the site owner will need to sign in to re-check links manually if they want the site to become Active again.\n\n What happens if I put the webring links back on my site?\n \n\nIf the gardener finds that a Not Active member site has their webring links back, the site is marked as Active and the schedule resets. The gardener will then check it the next day, then three days later, then a week, then...\nOkay, got it!\nWoohoo!\nWhy now, though?\nOh dang, that's a good question.\nI've found the energy and space to start working on the webring again, including some possible projects like those I listed in my last update. Before jumping into any of those, though, I want to feel like I can \"trust\" that the webring is taking care of itself and its visitors. That means not sending folks to sites where the owner changed their mind about being a webring member or, worse, lost sites, and keeping track of active sites on its own!\nCan we see the code?\nSure! The bulk of the updates are here on my git hosting. As with most things webring there's a little bit that's well thought out and some attempts at rigor followed by a rush of throwing things together when it appears near working.\nI'm open if folks have suggestio-\nWait, I didn't actually want to look at code!\nI put some words in your mouth, there, yeah. Sorry. \ud83d\ude48\nOkay! That's it for now. As always, feel free to reply to this post on your own site, or feel free to drop me a line in the #indieweb chat (I\u2019m schmarty there).",
"html": "<p>Are you a member of the <a href=\"https://xn--sr8hvo.ws/\">\ud83d\udd78\ufe0f\ud83d\udc8d IndieWeb Webring</a>? Perhaps one of many who <a href=\"https://chat.indieweb.org/2020-03-23#t1584989705419200\">have been confused to discover</a> that <a href=\"https://chat.indieweb.org/dev/2022-08-28#t1661694360371800\">member sites are not automatically removed</a> when the <a href=\"https://chat.indieweb.org/dev/2024-06-12#t1718226603454100\">webring links disappear from their site</a>?</p>\n<p>\n I'm pleased to announce that the webring will now be self-gardening! Webring member sites th-\n <br /></p>\n<h2>Hold on, links to what now?</h2>\n<p>That-... is actually a good question!</p>\n<p>In order for webrings to work, member sites have to link to one another, usually through the webring itself.</p>\n<p>When you sign in to the \ud83d\udd78\ufe0f\ud83d\udc8d IndieWeb Webring, you see this prompt on your dashboard page:</p>\n<img src=\"https://media.martymcgui.re/44/c3/b4/68/fde563e3a6e618431ce898b2b2add95e384939541e267eb27ce4e49f.png\" alt=\"\" />\n Screenshot of a warning \"to stay active, make sure these links are visible on your site\", followed by a text area with HTML links to copy and paste.\n <br /><p>\n These links should be copied and pasted into your site so that they appear on the page that matches your webring sign-in. For example, I sign in with my homepage https://martymcgui.re/, so I put my links to the webring on my homepage. They look like this on my site, but you can style them up to look like anything you want.\n <br /></p>\n<img src=\"https://media.martymcgui.re/31/d7/b1/47/5737b023084f467f48f57033e8c2e2563d3040002b274f4f61e64ceb.png\" alt=\"\" /><p>\n \"An IndieWeb Webring \ud83d\udd78\ufe0f\ud83d\udc8d\" text flanked by left and right unicode arrow links.\n <br /></p>\n <p>The basic deal for most webrings is that, in order to receive incoming traffic from other member sites, you need to also display links back to the webring so a visitor can continue on their journey browsing sites from the webring.</p>\n<p>If that's the deal, then when a member site goes offline, or removes the webring links from their page, the webring should no longer direct visitors to that site.</p>\n<p>The IndieWeb webring tracks whether a site is \"Active\" or ... \"Not Active\" (ahem, Inactive). Active sites can receive traffic from webring visitors and, if you choose, appear on the <a href=\"https://xn--sr8hvo.ws/directory\">Directory</a> page. Inactive sites... can't do those things.</p>\n<p>As the owner of an webring member site, you can sign in to the webring and your Dashboard page will show your site's current \"Active\" / \"Not Active\" status and the results of the most recent attempts to check your site for webring links. If you've made changes to your site, there's a \"Check links now!\" button on the Dashboard to scan for them again.</p>\n<h2>Okay that's enough background, I think.</h2>\n<p>\n Right, thanks. But actually no, there is more.\n <br /></p>\n<p>Initially, Active status on the webring kiiiiind of worked like an honor system. The first time you successfully sign in, your site is added to the webring and set to Active. From that point on, there were only two ways for your site to get marked as Not Active:</p>\n<ul><li>\n If you clicked \"Check links now!\" while your site was offline or didn't have webring links on it.\n <br /></li>\n <li>\n<i>OR</i> if I ran a \"gardener\" script that checked the webring links for one or more sites.</li>\n</ul><p>Since the webring came online in, um, 2018, I've only received a handful of nudges from folks who have been willing to track me down to the <a href=\"https://indieweb.org/discuss\">IndieWeb chat</a> and complain. That led me to think this honor system was \"okay\" or \"at least not so bad that folks are willing to jump through hoops to bring it to my attention\".</p>\n<h2>That's definitely enough background.</h2>\n<p>Agreed!</p>\n<h2>So what's new?</h2>\n<p>Well, the honor system days are over! Which should be good for all webring member sites, I think.</p>\n<p>I've built a little automated gardener that will periodically check member sites for their links. It's designed in a way that trends towards polling member sites about once per month.</p>\n<p>For a new member site, it basically works like this: about an hour after you sign up, your site will be checked for links. If they're there, the gardener will check again the next day. It will check again a few days later, then a week, then two weeks.</p>\n<p>Finally, as long as the links are there at every check, the gardener will only check once per month.</p>\n<h3>\n What happens if the webring links disappear from my site?\n <br /></h3>\n<p>If the gardener finds that an Active member site has gone offline or lost the webring links, the site is marked Not Active. It's checked again the next day, then a few days later, then a week and then two.</p>\n<p>Finally, the Not Active site will be checked once per month for 3 months. If the site stays Not Active that whole time, the gardener will stop checking and the site owner will need to sign in to re-check links manually if they want the site to become Active again.</p>\n<h3>\n What happens if I put the webring links back on my site?\n <br /></h3>\n<p>If the gardener finds that a Not Active member site has their webring links back, the site is marked as Active and the schedule resets. The gardener will then check it the next day, then three days later, then a week, then...</p>\n<h3>Okay, got it!</h3>\n<p>Woohoo!</p>\n<h2>Why now, though?</h2>\n<p>Oh dang, that's a good question.</p>\n<p>I've found the energy and space to start working on the webring again, including some possible projects like those I listed in <a href=\"https://martymcgui.re/2024/06/09/an-absentee-webring-steward-returns/\">my last update</a>. Before jumping into any of those, though, I want to feel like I can \"trust\" that the webring is taking care of itself and its visitors. That means not sending folks to sites where the owner changed their mind about being a webring member or, worse, <a href=\"https://indieweb.org/lost_sites\">lost sites</a>, and keeping track of active sites on its own!</p>\n<h2>Can we see the code?</h2>\n<p>Sure! The <a href=\"https://git.schmarty.net/schmarty/gem-diamond/compare/4b6347...5afb99\">bulk of the updates are here on my git hosting</a>. As with most things webring there's a little bit that's well thought out and some attempts at rigor followed by a rush of throwing things together when it appears near working.</p>\n<p>I'm open if folks have suggestio-</p>\n<h2>Wait, I didn't actually want to look at code!</h2>\n<p>I put some words in your mouth, there, yeah. Sorry. \ud83d\ude48</p>\n<p>Okay! That's it for now. As always, feel free to <a href=\"https://indieweb.org/reply\">reply</a> to this post on your own site, or feel free to drop me a line in the <a href=\"https://chat.indieweb.org/\">#indieweb chat</a> (I\u2019m <code>schmarty</code> there).</p>"
},
"author": {
"type": "card",
"name": "Marty McGuire",
"url": "https://martymcgui.re/",
"photo": "https://martymcgui.re/images/logo.jpg"
},
"post-type": "article",
"_id": "41391044",
"_source": "175"
}
This is now the official song of #caturday:
https://imanicoppola.bandcamp.com/track/clap-your-hands
I will not be taking questions at this time.
{
"type": "entry",
"published": "2024-06-14T12:33:37-0400",
"url": "https://martymcgui.re/2024/06/14/123337/",
"category": [
"caturday",
"soundtrack",
"OST"
],
"content": {
"text": "This is now the official song of #caturday:\nhttps://imanicoppola.bandcamp.com/track/clap-your-hands\nI will not be taking questions at this time.",
"html": "<p>This is now the official song of <a href=\"https://martymcgui.re/tag/caturday/\">#caturday</a>:</p>\n<p><a href=\"https://imanicoppola.bandcamp.com/track/clap-your-hands\">https://imanicoppola.bandcamp.com/track/clap-your-hands</a></p>\n<p>I will not be taking questions at this time.</p>"
},
"author": {
"type": "card",
"name": "Marty McGuire",
"url": "https://martymcgui.re/",
"photo": "https://martymcgui.re/images/logo.jpg"
},
"post-type": "note",
"_id": "41381822",
"_source": "175"
}
{
"type": "entry",
"published": "2024-06-13T15:07:34-07:00",
"url": "https://beesbuzz.biz/blog/11859-Birthday-plans-2024",
"name": "Birthday plans 2024",
"content": {
"text": "Hey y'all! My birthday is tomorrow, June 14! I will be turning 0x2E. Or 0b101110 if that\u2019s your preference.\n\nAnyway. Normally I\u2019d use that as a reason to have a huge karaoke blowout on VRChat Friday evening, but I have a big choral show on Saturday and some of the pieces need my full vocal range, so I\u2019m not going to risk fucking up my voice for Saturday.\n\nSo instead I\u2019ll have birthday karaoke in VRChat Saturday evening! I\u2019m thinking it\u2019ll start at, say, 7 PM Pacific Time. You can join off me if you have me friended or I\u2019ll be posting an instance link on my discord.\n\nAlso, to help with the celebrations, I\u2019ve thrown together a party hat.",
"html": "<p>Hey y'all! My birthday is tomorrow, June 14! I will be turning <code>0x2E</code>. Or <code>0b101110</code> if that\u2019s your preference.</p><p>Anyway. Normally I\u2019d use that as a reason to have a huge karaoke blowout on VRChat Friday evening, but I have <a href=\"https://www.museumofflight.org/exhibits-and-events/calendar-of-events/7784/sallys-day\">a big choral show on Saturday</a> and some of the pieces need my <em>full</em> vocal range, so I\u2019m not going to risk fucking up my voice for Saturday.</p><p>So instead I\u2019ll have birthday karaoke in VRChat Saturday evening! I\u2019m thinking it\u2019ll start at, say, 7 PM Pacific Time. You can join off me if <a href=\"https://vrchat.com/home/user/usr_c3d14129-014b-4d5a-a1af-399237355728\">you have me friended</a> or I\u2019ll be posting an instance link on <a href=\"https://beesbuzz.biz/discord\">my discord</a>.</p><p>Also, to help with the celebrations, I\u2019ve thrown together a <a href=\"https://fluffy.gumroad.com/l/partyhat\">party hat</a>.</p>"
},
"author": {
"type": "card",
"name": "fluffy",
"url": "https://beesbuzz.biz/",
"photo": "https://beesbuzz.biz/static/headshot.jpg"
},
"post-type": "article",
"_id": "41375363",
"_source": "2778"
}
{
"type": "entry",
"published": "2024-06-12T16:03:05-07:00",
"url": "https://beesbuzz.biz/blog/6659-Furality-Umbra-a-brief-review",
"name": "Furality Umbra: a brief review",
"author": {
"type": "card",
"name": "fluffy",
"url": "https://beesbuzz.biz/",
"photo": "https://beesbuzz.biz/static/headshot.jpg"
},
"post-type": "article",
"_id": "41366875",
"_source": "2778"
}
{
"type": "entry",
"published": "2024-06-12T17:33:49+00:00",
"url": "https://cleverdevil.io/2024/magic-poster-on-the-wall",
"syndication": [
"https://cleverdevil.club/@jonathan/112605017039012646"
],
"name": "Magic Poster on the Wall",
"content": {
"text": "This post originally appeared in my Techish newsletter on LinkedIn.You\u2019re the Coolest AI of AllFrom a young age, I\u2019ve always loved the magical experience of going to the movies. Torn ticket stubs, big booming sound, giant screens, and popcorn fill my heart with joy. There is nothing in the world quite like sharing in the community experience of enjoying a blockbuster in a movie theater. I suppose it's no surprise that I\u2019ve loved living in LA so much!\n\nSince 2020, theaters have struggled quite a bit, and for good and obvious reasons. I\u2019ve truly missed taking my family to the theater. I\u2019m a bit of a digital packrat, with a healthy collection of Blu-Rays stored on my home NAS. About a year ago, I finished renovating my home theater, which was a big step toward recapturing the magic of the movies with my family. But, no matter how great the picture and sound are, I still felt something was missing.\n\nIf you\u2019ve been following me, you\u2019ll be unsurprised to hear that I decided to scratch my itch with technology. What better way to explore the emerging and promising power of GenAI while honing my skill with HTML, CSS, JavaScript, and WebSockets?Picture ThisPart of visiting a movie theater is walking by a wall of big, colorful movie posters, which are, in my view, an underappreciated art form. A great movie poster creates a sense of excitement, anticipation, and wonder. A few months ago I stumbled on a project called Movie Posters Perfected, which was a huge inspiration for this project. While I could have gone down the path of just showing movie posters from this curated collection using a Fire TV stick, I wanted to create something even more magical. So, armed with inspiration, I set to the task of creating what I call my \u201cMagic Poster.\u201d\n\nThe hardware ingredients for the Magic Poster are simple:Samsung 43\u201d Smart Monitor\n\nRaspberry Pi 5 and a case with a PCIe M.2 board\n\nHDMI Aware LED Backlight from AliExpress\nAssembly was straightforward, thanks to double sided tape and zip ties. The one piece of hardware I wouldn\u2019t use again is the Samsung monitor, which is a little too \u201csmart\u201d for it's own good. Getting it to be happy in portrait orientation was a nightmare! Still, I soldiered on and was able to mount the TV on the wall and drive the display with my Raspberry Pi 5, with the LED backlight matching the content on screen. Now, it was time to build some software.Magic Poster\u2019s Software StackWhile Raspberry Pis have become surprisingly powerful, they are still constrained computers with limited performance. I knew that I wanted to do more than just display static posters. I wanted to enhance the magic factor with animations, context awareness, and generative AI. When it comes to rendering performance, modern web browsers have decades of optimization, hardware acceleration, and features. I decided that my best bet was to use Chromium in \u201ckiosk\u201d mode, which displays websites in full screen, free of window decorations, toolbars, and tabs.\n\nFor the backend, I chose my programming language of choice, Python, along with libraries like Flask and SocketIO. Magic Poster is a JavaScript-powered frontend that communicates with a Python backend using WebSocket. I deployed modern CSS animations and transitions to create delightful views that can scroll, flip, and fade in and out.\n\nAfter a few weeks of insomnia-fueled development, I had Magic Poster serving up beautiful posters from a hand-picked set of over 1,200 high-resolution movie posters, with four different styles: single poster, a \u201cmarquee\u201d view with dozens of small animated posters, a \u201cscroll\u201d view that shows medium sized posters with a smooth scrolling animation, and a \u201cflip\u201d view that experiments with animation that really make the LED backlight sing.\n\n\n\n\n\nContext AwarenessOne of the benefits of powering Magic Poster with a network attached Raspberry Pi is that it can integrate with other systems on my home network. In my theater, I have an Apple TV 4K, a Zidoo Z9X and a gaming PC running ChimeraOS. Thanks to open APIs, I am able to detect when I am watching a movie or show, or when a game is being played. Using these APIs, I was able to have a small overlay appear on Magic Poster that displays information about the current activity.\n\nMagic Poster was really taking shape, with a variety of different modes, context awareness, and even a simple REST API for controlling what is on screen at any given time. Still, I felt that there was something missing: interactivity. With the rapid and accelerating evolution of AI, there was an opportunity to take Magic Poster to the next level.A Magic Sprinkle of GenAI and MLInteractivity requires two-way communication. Attaching a keyboard or physical buttons to Magic Poster would be an easy path to providing input, but buttons are decidedly un-magical. I wanted Magic Poster to have a personality \u2013 to feel alive. Technology has an opportunity to become increasingly personal and interactive thanks to AI, and I concluded that the most magical way to interact with Magic Poster would be through conversation. Could I simply speak to Magic Poster, and more importantly, have Magic Poster respond?\n\nVoice assistants have been \u201ca thing\u201d for quite some time. My experience with the three major players (Apple\u2019s Siri, Google, and Amazon\u2019s Alexa) have been mixed at best. All three assistants require \u201cwake words\u201d to begin an interaction, which feels forced. In the years since these assistants were developed, technology has evolved and advanced significantly. If possible, my goal was to have conversations with Magic Poster feel more natural.\n\nAs a longtime member of the Python community and a Fellow in the Python Software Foundation, I follow a number of prominent community members. Simon Willison is a Python developer that has become deeply interested in AI and LLMs, producing some great tools including Datasette, and more recently, Python LLM, which makes using both local and hosted LLMs from Python fun and easy. Through Simon, I discovered Vosk, which is an open source ML powered speech recognition toolkit with impressive accuracy and a very small footprint. I was quickly able to leverage Vosk to have Magic Poster passively listening to me in the background, ready to respond or take action based upon my feedback, including changing views, requesting specific posters, and more.\n\nNow that Magic Poster could listen and take action, I wanted to give it the power to respond in its own voice. One of my favorite sites on the web is The Movie Database (TMDb), which is a free platform chock full of features, including an API with excellent Python client libraries. TMDb contains a lot of user-generated content, including a large number of reviews, with useful insights from a broad range of people. I decided to give Magic Poster the power to take hundreds of user reviews to generate a short summary of audience sentiment. When requested, Magic Poster reached out to The Movie Database, quickly pulls down all of the reviews for a movie, and then generates a summary using Ollama and the Llama 3 LLM. Finally, I feed the generated content to a text-to-speech system, and Magic Poster finally has a voice.What\u2019s Next?It's been a lot of fun working on Magic Poster, and I am really happy with where it stands today. Of course, I have so many ideas about where to go from here, with additional voice features, display styles, and more. What do you think about Magic Poster? Do you have any suggestions for how to make it even more magical? Talk soon!",
"html": "<p><em>This post <a title=\"Magic Poster on the Wall Techish newsletter\" href=\"https://www.linkedin.com/pulse/magic-poster-wall-missioncloud-be8cc/\">originally appeared in my Techish newsletter</a> on LinkedIn.</em></p><h3>You\u2019re the Coolest AI of All</h3><p>From a young age, I\u2019ve always loved the magical experience of going to the movies. Torn ticket stubs, big booming sound, giant screens, and popcorn fill my heart with joy. There is nothing in the world quite like sharing in the community experience of enjoying a blockbuster in a movie theater. I suppose it's no surprise that I\u2019ve loved living in LA so much!</p><p>Since 2020, theaters have struggled quite a bit, and for good and obvious reasons. I\u2019ve truly missed taking my family to the theater. I\u2019m a bit of a digital packrat, with a healthy collection of Blu-Rays stored on my home NAS. About a year ago, I finished renovating my home theater, which was a big step toward recapturing the magic of the movies with my family. But, no matter how great the picture and sound are, I still felt something was missing.</p><p>If you\u2019ve been following me, you\u2019ll be unsurprised to hear that I decided to scratch my itch with technology. What better way to explore the emerging and promising power of GenAI while honing my skill with HTML, CSS, JavaScript, and WebSockets?</p><h3>Picture This</h3><p>Part of visiting a movie theater is walking by a wall of big, colorful movie posters, which are, in my view, an underappreciated art form. A great movie poster creates a sense of excitement, anticipation, and wonder. A few months ago I stumbled on a project called <a href=\"https://www.moviepostersperfected.com\">Movie Posters Perfected</a>, which was a huge inspiration for this project. While I could have gone down the path of just showing movie posters from this curated collection using a Fire TV stick, I wanted to create something even more magical. So, armed with inspiration, I set to the task of creating what I call my \u201cMagic Poster.\u201d</p><p>The hardware ingredients for the Magic Poster are simple:</p><ul><li><a href=\"https://www.amazon.com/SAMSUNG-Monitor-Streaming-Wireless-LS43BM702UNXGO/dp/B09ZHQ93VJ/\">Samsung 43\u201d Smart Monitor</a></li>\n<li>\n<a href=\"https://www.raspberrypi.com/products/raspberry-pi-5/\">Raspberry Pi 5</a> and a <a href=\"https://www.google.com/url?q=https://www.amazon.com/gp/product/B0CYP28CKM/\">case with a PCIe M.2 board</a>\n</li>\n<li><a href=\"https://www.aliexpress.us/item/3256806495985623.html\">HDMI Aware LED Backlight from AliExpress</a></li>\n</ul><p>Assembly was straightforward, thanks to double sided tape and zip ties. The one piece of hardware I wouldn\u2019t use again is the Samsung monitor, which is a little too \u201csmart\u201d for it's own good. Getting it to be happy in portrait orientation was a nightmare! Still, I soldiered on and was able to mount the TV on the wall and drive the display with my Raspberry Pi 5, with the LED backlight matching the content on screen. Now, it was time to build some software.</p><h3>Magic Poster\u2019s Software Stack</h3><p>While Raspberry Pis have become surprisingly powerful, they are still constrained computers with limited performance. I knew that I wanted to do more than just display static posters. I wanted to enhance the magic factor with animations, context awareness, and generative AI. When it comes to rendering performance, modern web browsers have decades of optimization, hardware acceleration, and features. I decided that my best bet was to use Chromium in \u201ckiosk\u201d mode, which displays websites in full screen, free of window decorations, toolbars, and tabs.</p><p>For the backend, I chose my programming language of choice, <a href=\"https://python.org\">Python</a>, along with libraries like <a href=\"https://flask.palletsprojects.com/\">Flask</a> and <a href=\"https://socket.io/\">SocketIO</a>. Magic Poster is a JavaScript-powered frontend that communicates with a Python backend using <a href=\"https://en.wikipedia.org/wiki/WebSocket\">WebSocket</a>. I deployed modern CSS animations and transitions to create delightful views that can scroll, flip, and fade in and out.</p><p>After a few weeks of insomnia-fueled development, I had Magic Poster serving up beautiful posters from a hand-picked set of over 1,200 high-resolution movie posters, with four different styles: single poster, a \u201cmarquee\u201d view with dozens of small animated posters, a \u201cscroll\u201d view that shows medium sized posters with a smooth scrolling animation, and a \u201cflip\u201d view that experiments with animation that really make the LED backlight sing.</p><p><img src=\"https://cleverdevil.io/file/c23583005b2b5eef3aa2ec08117ca0a6/thumb.jpg\" alt=\"Magic Poster displaying a poster for the movie Thor Love and Thunder\" width=\"768\" height=\"1024\" /></p><p><img src=\"https://cleverdevil.io/file/c1680610917dfe6091af433bb41ec5e3/thumb.jpg\" alt=\"Magic Poster displaying a poster for the movie Groundhog Day\" width=\"768\" height=\"1024\" /></p><p><img src=\"https://cleverdevil.io/file/e3d57f2a32fd6dc83ca82d0bfea83c59/thumb.jpg\" alt=\"Magic Poster displaying a animated marquee view of dozens of movie posters\" width=\"752\" height=\"1024\" /></p><h3>Context Awareness</h3><p>One of the benefits of powering Magic Poster with a network attached Raspberry Pi is that it can integrate with other systems on my home network. In my theater, I have an <a href=\"https://www.apple.com/apple-tv-4k/\">Apple TV 4K</a>, a <a href=\"https://www.zidoo.tv/Product/index/model/Z9X/target/VEMg6VRC2%252B9KKmVViAFMcQ%253D%253D.html\">Zidoo Z9X</a> and a gaming PC running <a href=\"https://chimeraos.org/\">ChimeraOS</a>. Thanks to open APIs, I am able to detect when I am watching a movie or show, or when a game is being played. Using these APIs, I was able to have a small overlay appear on Magic Poster that displays information about the current activity.</p><p>Magic Poster was really taking shape, with a variety of different modes, context awareness, and even a simple REST API for controlling what is on screen at any given time. Still, I felt that there was something missing: interactivity. With the rapid and accelerating evolution of AI, there was an opportunity to take Magic Poster to the next level.</p><h3>A Magic Sprinkle of GenAI and ML</h3><p>Interactivity requires two-way communication. Attaching a keyboard or physical buttons to Magic Poster would be an easy path to providing input, but buttons are decidedly un-magical. I wanted Magic Poster to have a personality \u2013 to feel alive. Technology has an opportunity to become increasingly personal and interactive thanks to AI, and I concluded that the most magical way to interact with Magic Poster would be through conversation. Could I simply speak to Magic Poster, and more importantly, have Magic Poster respond?</p><p>Voice assistants have been \u201ca thing\u201d for quite some time. My experience with the three major players (Apple\u2019s Siri, Google, and Amazon\u2019s Alexa) have been mixed at best. All three assistants require \u201cwake words\u201d to begin an interaction, which feels forced. In the years since these assistants were developed, technology has evolved and advanced significantly. If possible, my goal was to have conversations with Magic Poster feel more natural.</p><p>As a longtime member of the Python community and a Fellow in the Python Software Foundation, I follow a number of prominent community members. <a href=\"https://simonwillison.net\">Simon Willison</a> is a Python developer that has become deeply interested in AI and LLMs, producing some great tools including <a href=\"https://datasette.io/\">Datasette</a>, and more recently, <a href=\"https://llm.datasette.io/en/stable/index.html\">Python LLM</a>, which makes using both local and hosted LLMs from Python fun and easy. Through Simon, I discovered <a href=\"https://github.com/alphacep/vosk-api\">Vosk</a>, which is an open source ML powered speech recognition toolkit with impressive accuracy and a very small footprint. I was quickly able to leverage Vosk to have Magic Poster passively listening to me in the background, ready to respond or take action based upon my feedback, including changing views, requesting specific posters, and more.</p><p>Now that Magic Poster could listen and take action, I wanted to give it the power to respond in its own voice. One of my favorite sites on the web is <a href=\"https://www.themoviedb.org/\">The Movie Database</a> (TMDb), which is a free platform chock full of features, including an API with <a href=\"https://github.com/leandcesar/themoviedb\">excellent Python client libraries</a>. TMDb contains a lot of user-generated content, including a large number of reviews, with useful insights from a broad range of people. I decided to give Magic Poster the power to take hundreds of user reviews to generate a short summary of audience sentiment. When requested, Magic Poster reached out to The Movie Database, quickly pulls down all of the reviews for a movie, and then generates a summary using <a href=\"https://ollama.com/\">Ollama</a> and the <a href=\"https://ollama.com/library/llama3\">Llama 3</a> LLM. Finally, I feed the generated content to a text-to-speech system, and Magic Poster finally has a voice.</p><h3>What\u2019s Next?</h3><p>It's been a lot of fun working on Magic Poster, and I am really happy with where it stands today. Of course, I have so many ideas about where to go from here, with additional voice features, display styles, and more. What do you think about Magic Poster? Do you have any suggestions for how to make it even more magical? Talk soon!</p>"
},
"author": {
"type": "card",
"name": "Jonathan LaCour",
"url": "https://cleverdevil.io/profile/cleverdevil",
"photo": "https://cleverdevil.io/file/e37c3982acf4f0a8421d085b9971cd71/thumb.jpg"
},
"post-type": "article",
"_id": "41365861",
"_source": "10"
}