{
"type": "entry",
"author": {
"name": "@ApisNecros",
"url": "https://ioc.exchange/@ApisNecros",
"photo": null
},
"url": "https://ioc.exchange/@ApisNecros/110081977689537214",
"content": {
"html": "<p>New blog scrap: Sadness - Making and Receiving</p><p>This scrap is a brain dump of overcoming one of my worst habits, making myself sad.</p><p><a href=\"https://ioc.exchange/tags/IndieWeb\">#<span>IndieWeb</span></a> <a href=\"https://ioc.exchange/tags/Blog\">#<span>Blog</span></a> <a href=\"https://ioc.exchange/tags/MentalHealth\">#<span>MentalHealth</span></a> <a href=\"https://ioc.exchange/tags/Depression\">#<span>Depression</span></a> <br /><a href=\"https://www.vzqk50.com/blog/scraps/making-myself-sad/\"><span>https://www.</span><span>vzqk50.com/blog/scraps/making-</span><span>myself-sad/</span></a></p>",
"text": "New blog scrap: Sadness - Making and ReceivingThis scrap is a brain dump of overcoming one of my worst habits, making myself sad.#IndieWeb #Blog #MentalHealth #Depression \nhttps://www.vzqk50.com/blog/scraps/making-myself-sad/"
},
"published": "2023-03-25T04:14:37+00:00",
"post-type": "note",
"_id": "36105857",
"_source": "7235",
"_is_read": true
}
really excited for next month's #queer#tech meetup in #bristol - we'll be talking about what leadership looks like for queers.
It's a topic I've become really interested in lately - I feel corporate environments often fail those who don't fit the expected profile of a "senior" person.
{
"type": "entry",
"author": {
"name": "@harriethw",
"url": "https://mas.to/@harriethw",
"photo": null
},
"url": "https://mas.to/@harriethw/110079049409260753",
"content": {
"html": "<p>really excited for next month's <a href=\"https://mas.to/tags/queer\">#<span>queer</span></a> <a href=\"https://mas.to/tags/tech\">#<span>tech</span></a> meetup in <a href=\"https://mas.to/tags/bristol\">#<span>bristol</span></a> - we'll be talking about what leadership looks like for queers.</p><p>It's a topic I've become really interested in lately - I feel corporate environments often fail those who don't fit the expected profile of a \"senior\" person. </p><p><a href=\"https://www.eventbrite.co.uk/e/queer-leadership-in-tech-panel-discussion-and-qa-tickets-597648050407\"><span>https://www.</span><span>eventbrite.co.uk/e/queer-leade</span><span>rship-in-tech-panel-discussion-and-qa-tickets-597648050407</span></a> </p><p><a href=\"https://mas.to/tags/indieweb\">#<span>indieweb</span></a> <a href=\"https://mas.to/tags/queerart\">#<span>queerart</span></a> <a href=\"https://mas.to/tags/queerjoy\">#<span>queerjoy</span></a> <a href=\"https://mas.to/tags/lowtech\">#<span>lowtech</span></a> <a href=\"https://mas.to/tags/lgbtqia\">#<span>lgbtqia</span></a> <a href=\"https://mas.to/tags/techleadership\">#<span>techleadership</span></a></p>",
"text": "really excited for next month's #queer #tech meetup in #bristol - we'll be talking about what leadership looks like for queers.It's a topic I've become really interested in lately - I feel corporate environments often fail those who don't fit the expected profile of a \"senior\" person. https://www.eventbrite.co.uk/e/queer-leadership-in-tech-panel-discussion-and-qa-tickets-597648050407 #indieweb #queerart #queerjoy #lowtech #lgbtqia #techleadership"
},
"published": "2023-03-24T15:49:55+00:00",
"post-type": "note",
"_id": "36094865",
"_source": "7235",
"_is_read": true
}
I have been reminded time and time again of the utility of writing. How it is a way to turn messy thoughts into coherent ideas, and how – as we all know – practice makes perfect. So I’m going to give it a go.
{
"type": "entry",
"published": "2023-03-24T11:03:55Z",
"url": "https://adactio.com/links/20044",
"category": [
"writing",
"blogging",
"blogs",
"personal",
"publishing",
"sharing",
"indieweb"
],
"bookmark-of": [
"https://samoneill.com/writing/hello/"
],
"content": {
"text": "Hello, internet | Sam O\u2019Neill\n\n\n\n\n I have been reminded time and time again of the utility of writing. How it is a way to turn messy thoughts into coherent ideas, and how \u2013 as we all know \u2013 practice makes perfect. So I\u2019m going to give it a go.\n\n\nWelcome to the indie web, Sam!",
"html": "<h3>\n<a class=\"p-name u-bookmark-of\" href=\"https://samoneill.com/writing/hello/\">\nHello, internet | Sam O\u2019Neill\n</a>\n</h3>\n\n<blockquote>\n <p>I have been reminded time and time again of the utility of writing. How it is a way to turn messy thoughts into coherent ideas, and how \u2013 as we all know \u2013 practice makes perfect. So I\u2019m going to give it a go.</p>\n</blockquote>\n\n<p>Welcome to the indie web, Sam!</p>"
},
"author": {
"type": "card",
"name": "Jeremy Keith",
"url": "https://adactio.com/",
"photo": "https://adactio.com/images/photo-150.jpg"
},
"post-type": "bookmark",
"_id": "36087165",
"_source": "2",
"_is_read": true
}
How to sell the fediverse and decentralization to the masses:
“Imagine doing all the stuff you do today on Facebook, Instagram, and Twitter…but doing it without battling some random corporate algorithm, minus all the advertising and tracking, and knowing you aren’t making a billionaire billionairier.”
{
"type": "entry",
"author": {
"name": "@mikemaney",
"url": "https://hachyderm.io/@mikemaney",
"photo": null
},
"url": "https://hachyderm.io/@mikemaney/110072163592824026",
"content": {
"html": "<p>How to sell the fediverse and decentralization to the masses:</p><p>\u201cImagine doing all the stuff you do today on Facebook, Instagram, and Twitter\u2026but doing it without battling some random corporate algorithm, minus all the advertising and tracking, and knowing you aren\u2019t making a billionaire billionairier.\u201d</p><p><a href=\"https://hachyderm.io/tags/fediverse\">#<span>fediverse</span></a> <a href=\"https://hachyderm.io/tags/indieweb\">#<span>indieweb</span></a></p>",
"text": "How to sell the fediverse and decentralization to the masses:\u201cImagine doing all the stuff you do today on Facebook, Instagram, and Twitter\u2026but doing it without battling some random corporate algorithm, minus all the advertising and tracking, and knowing you aren\u2019t making a billionaire billionairier.\u201d#fediverse #indieweb"
},
"published": "2023-03-23T10:38:45+00:00",
"post-type": "note",
"_id": "36062046",
"_source": "7235",
"_is_read": true
}
Nerd friends of Lincoln, a friend and I are going to host a mini Homebrew Website Club next week, dm me for details if you'd like to join and we know each other IRL. (Hosting at my home for this one, sorry strangers)
As a celebration of the indie web, we'll all work on our personal sites (code? No-code? Blog?) and do a lil show & tell. #IndieWeb
{
"type": "entry",
"author": {
"name": "@cassey",
"url": "https://urbanists.social/@cassey",
"photo": null
},
"url": "https://urbanists.social/@cassey/110070152817795513",
"content": {
"html": "<p>Nerd friends of Lincoln, a friend and I are going to host a mini Homebrew Website Club next week, dm me for details if you'd like to join and we know each other IRL. (Hosting at my home for this one, sorry strangers)</p><p>As a celebration of the indie web, we'll all work on our personal sites (code? No-code? Blog?) and do a lil show & tell.<br /><a href=\"https://urbanists.social/tags/IndieWeb\">#<span>IndieWeb</span></a></p>",
"text": "Nerd friends of Lincoln, a friend and I are going to host a mini Homebrew Website Club next week, dm me for details if you'd like to join and we know each other IRL. (Hosting at my home for this one, sorry strangers)As a celebration of the indie web, we'll all work on our personal sites (code? No-code? Blog?) and do a lil show & tell.\n#IndieWeb"
},
"published": "2023-03-23T02:07:23+00:00",
"post-type": "note",
"_id": "36055669",
"_source": "7235",
"_is_read": false
}
Watching #MozFest session Dialogues & Debates: Making the Fediverse¹ and panelist @stevetex@mozilla.social (@stevetex) just announced that we (#Mozilla) are standing up a #Mastodon instance², starting with limited sign-ups.
I’m excited that Mozilla is experimenting with #socialWeb alternatives to centralized #socialMedia silos.
Several of these folks also have their own #IndieWeb sites.
It’s interesting seeing how people are individually choosing to use a fediverse address on someone else’s server, vs their own server like with a subdomain, vs just using their existing site.
One trend I have seen is people using someone else’s Mastodon server as a stepping stone, a learning experience, before migrating to either self-hosting Mastodon (or an easier to run alternative like microblog.pub³, not to be confused with micro.blog⁴), or ideally directly using their own site, blog etc. to connect to the fediverse⁵.
Do you have an @-@ address and want to use your own site instead?
If you’re a #webdev, you can totally do this by connecting your existing personal site with https://fed.brid.gy/ and own your presence on the web, social web, fediverse all at one place.
{
"type": "entry",
"author": {
"name": "#indieweb",
"url": "https://mastodon.social/tags/indieweb",
"photo": null
},
"url": "https://fed.brid.gy/r/https://tantek.com/2023/081/t1/mozfest-making-fediverse-socialweb",
"content": {
"html": "Watching <a href=\"https://indieweb.social/tags/MozFest\">#<span class=\"p-category\">MozFest</span></a> session Dialogues & Debates: Making the Fediverse\u00b9 and panelist <a href=\"https://mozilla.social/@stevetex\">@stevetex@mozilla.social</a> (<a class=\"h-cassis-username\" href=\"https://twitter.com/stevetex\">@stevetex</a>) just announced that we (#Mozilla) are standing up a <a href=\"https://indieweb.social/tags/Mastodon\">#<span class=\"p-category\">Mastodon</span></a> instance\u00b2, starting with limited sign-ups.<br /><br />I\u2019m excited that Mozilla is experimenting with <a href=\"https://indieweb.social/tags/socialWeb\">#<span class=\"p-category\">socialWeb</span></a> alternatives to centralized <a href=\"https://indieweb.social/tags/socialMedia\">#<span class=\"p-category\">socialMedia</span></a> silos.<br /><br />There are many <a href=\"https://indieweb.social/tags/Mozillians\">#<span class=\"p-category\">Mozillians</span></a> with <a href=\"https://indieweb.social/tags/fediverse\">#<span class=\"p-category\">fediverse</span></a> addresses you can follow:<br />* <a href=\"https://wiki.mozilla.org/Mastodon\">https://wiki.mozilla.org/Mastodon</a><br /><br />Several of these folks also have their own <a href=\"https://indieweb.social/tags/IndieWeb\">#<span class=\"p-category\">IndieWeb</span></a> sites. <br /><br />It\u2019s interesting seeing how people are individually choosing to use a fediverse address on someone else\u2019s server, vs their own server like with a subdomain, vs just using their existing site.<br /><br />One trend I have seen is people using someone else\u2019s Mastodon server as a stepping stone, a learning experience, before migrating to either self-hosting Mastodon (or an easier to run alternative like <a href=\"http://microblog.pub\">microblog.pub</a>\u00b3, not to be confused with <a href=\"http://micro.blog\">micro.blog</a>\u2074), or ideally directly using their own site, blog etc. to connect to the fediverse\u2075.<br /><br />Do you have an @-@ address and want to use your own site instead?<br /><br />If you\u2019re a <a href=\"https://indieweb.social/tags/webdev\">#<span class=\"p-category\">webdev</span></a>, you can totally do this by connecting your existing personal site with <a href=\"https://fed.brid.gy/\">https://fed.brid.gy/</a> and own your presence on the web, social web, fediverse all at one place.<br /><br />Got questions? Drop by the IndieWeb chat! <a href=\"https://chat.indieweb.org/dev\">https://chat.indieweb.org/dev</a><br /><br /><br />This is day 35 of <a href=\"https://indieweb.social/tags/100DaysOfIndieWeb\">#<span class=\"p-category\">100DaysOfIndieWeb</span></a> <a href=\"https://indieweb.social/tags/100Days\">#<span class=\"p-category\">100Days</span></a><br /><br />\u2190 Day 34: <a href=\"https://tantek.com/2023/072/t1/blog-as-if-ai-trained-posts\">https://tantek.com/2023/072/t1/blog-as-if-ai-trained-posts</a><br />\u2192 \ud83d\udd2e<br /><br /><br />\u00b9 <a href=\"https://schedule.mozillafestival.org/session/UEEGYL-1\">https://schedule.mozillafestival.org/session/UEEGYL-1</a><br />\u00b2 <a href=\"https://mozilla.social/\">https://mozilla.social/</a><br />\u00b3 <a href=\"https://indieweb.org/microblog.pub\">https://indieweb.org/microblog.pub</a><br />\u2074 <a href=\"https://indieweb.org/micro.blog\">https://indieweb.org/micro.blog</a><br />\u2075 <a href=\"https://tantek.com/2022/301/t1/twittermigration-bridgyfed-mastodon-indieweb\">https://tantek.com/2022/301/t1/twittermigration-bridgyfed-mastodon-indieweb</a>",
"text": "Watching #MozFest session Dialogues & Debates: Making the Fediverse\u00b9 and panelist @stevetex@mozilla.social (@stevetex) just announced that we (#Mozilla) are standing up a #Mastodon instance\u00b2, starting with limited sign-ups.\n\nI\u2019m excited that Mozilla is experimenting with #socialWeb alternatives to centralized #socialMedia silos.\n\nThere are many #Mozillians with #fediverse addresses you can follow:\n* https://wiki.mozilla.org/Mastodon\n\nSeveral of these folks also have their own #IndieWeb sites. \n\nIt\u2019s interesting seeing how people are individually choosing to use a fediverse address on someone else\u2019s server, vs their own server like with a subdomain, vs just using their existing site.\n\nOne trend I have seen is people using someone else\u2019s Mastodon server as a stepping stone, a learning experience, before migrating to either self-hosting Mastodon (or an easier to run alternative like microblog.pub\u00b3, not to be confused with micro.blog\u2074), or ideally directly using their own site, blog etc. to connect to the fediverse\u2075.\n\nDo you have an @-@ address and want to use your own site instead?\n\nIf you\u2019re a #webdev, you can totally do this by connecting your existing personal site with https://fed.brid.gy/ and own your presence on the web, social web, fediverse all at one place.\n\nGot questions? Drop by the IndieWeb chat! https://chat.indieweb.org/dev\n\n\nThis is day 35 of #100DaysOfIndieWeb #100Days\n\n\u2190 Day 34: https://tantek.com/2023/072/t1/blog-as-if-ai-trained-posts\n\u2192 \ud83d\udd2e\n\n\n\u00b9 https://schedule.mozillafestival.org/session/UEEGYL-1\n\u00b2 https://mozilla.social/\n\u00b3 https://indieweb.org/microblog.pub\n\u2074 https://indieweb.org/micro.blog\n\u2075 https://tantek.com/2022/301/t1/twittermigration-bridgyfed-mastodon-indieweb"
},
"published": "2023-03-22T15:14:00+00:00",
"post-type": "note",
"_id": "36048291",
"_source": "7235",
"_is_read": false
}
Watching #MozFest session Dialogues & Debates: Making the Fediverse¹ and panelist @stevetex@mozilla.social (@stevetex) just announced that we (#Mozilla) are standing up a #Mastodon instance², starting with limited sign-ups.
I’m excited that Mozilla is experimenting with #socialWeb alternatives to centralized #socialMedia silos.
Several of these folks also have their own #IndieWeb sites.
It’s interesting seeing how people are individually choosing to use a fediverse address on someone else’s server, vs their own server like with a subdomain, vs just using their existing site.
One trend I have seen is people using someone else’s Mastodon server as a stepping stone, a learning experience, before migrating to either self-hosting Mastodon (or an easier to run alternative like microblog.pub³, not to be confused with micro.blog⁴), or ideally directly using their own site, blog etc. to connect to the fediverse⁵.
Do you have an @-@ address and want to use your own site instead?
If you’re a #webdev, you can totally do this by connecting your existing personal site with https://fed.brid.gy/ and own your presence on the web, social web, fediverse all at one place.
{
"type": "entry",
"published": "2023-03-22 08:14-0700",
"url": "http://tantek.com/2023/081/t1/mozfest-making-fediverse-socialweb",
"category": [
"MozFest",
"Mastodon",
"socialWeb",
"socialMedia",
"Mozillians",
"fediverse",
"IndieWeb",
"webdev",
"100DaysOfIndieWeb",
"100Days"
],
"content": {
"text": "Watching #MozFest session Dialogues & Debates: Making the Fediverse\u00b9 and panelist @stevetex@mozilla.social (@stevetex) just announced that we (#Mozilla) are standing up a #Mastodon instance\u00b2, starting with limited sign-ups.\n\nI\u2019m excited that Mozilla is experimenting with #socialWeb alternatives to centralized #socialMedia silos.\n\nThere are many #Mozillians with #fediverse addresses you can follow:\n* https://wiki.mozilla.org/Mastodon\n\nSeveral of these folks also have their own #IndieWeb sites. \n\nIt\u2019s interesting seeing how people are individually choosing to use a fediverse address on someone else\u2019s server, vs their own server like with a subdomain, vs just using their existing site.\n\nOne trend I have seen is people using someone else\u2019s Mastodon server as a stepping stone, a learning experience, before migrating to either self-hosting Mastodon (or an easier to run alternative like microblog.pub\u00b3, not to be confused with micro.blog\u2074), or ideally directly using their own site, blog etc. to connect to the fediverse\u2075.\n\nDo you have an @-@ address and want to use your own site instead?\n\nIf you\u2019re a #webdev, you can totally do this by connecting your existing personal site with https://fed.brid.gy/ and own your presence on the web, social web, fediverse all at one place.\n\nGot questions? Drop by the IndieWeb chat! https://chat.indieweb.org/dev\n\n\nThis is day 35 of #100DaysOfIndieWeb #100Days\n\n\u2190 Day 34: https://tantek.com/2023/072/t1/blog-as-if-ai-trained-posts\n\u2192 \ud83d\udd2e\n\n\n\u00b9 https://schedule.mozillafestival.org/session/UEEGYL-1\n\u00b2 https://mozilla.social/\n\u00b3 https://indieweb.org/microblog.pub\n\u2074 https://indieweb.org/micro.blog\n\u2075 https://tantek.com/2022/301/t1/twittermigration-bridgyfed-mastodon-indieweb",
"html": "Watching #<span class=\"p-category\">MozFest</span> session Dialogues & Debates: Making the Fediverse<a href=\"http://tantek.com/#t5Py1_note-1\">\u00b9</a> and panelist <a href=\"https://mozilla.social/@stevetex\">@stevetex@mozilla.social</a> (<a class=\"h-cassis-username\" href=\"https://twitter.com/stevetex\">@stevetex</a>) just announced that we (#Mozilla) are standing up a #<span class=\"p-category\">Mastodon</span> instance<a href=\"http://tantek.com/#t5Py1_note-2\">\u00b2</a>, starting with limited sign-ups.<br /><br />I\u2019m excited that Mozilla is experimenting with #<span class=\"p-category\">socialWeb</span> alternatives to centralized #<span class=\"p-category\">socialMedia</span> silos.<br /><br />There are many #<span class=\"p-category\">Mozillians</span> with #<span class=\"p-category\">fediverse</span> addresses you can follow:<br />* <a href=\"https://wiki.mozilla.org/Mastodon\">https://wiki.mozilla.org/Mastodon</a><br /><br />Several of these folks also have their own #<span class=\"p-category\">IndieWeb</span> sites. <br /><br />It\u2019s interesting seeing how people are individually choosing to use a fediverse address on someone else\u2019s server, vs their own server like with a subdomain, vs just using their existing site.<br /><br />One trend I have seen is people using someone else\u2019s Mastodon server as a stepping stone, a learning experience, before migrating to either self-hosting Mastodon (or an easier to run alternative like <a href=\"http://microblog.pub\">microblog.pub</a><a href=\"http://tantek.com/#t5Py1_note-3\">\u00b3</a>, not to be confused with <a href=\"http://micro.blog\">micro.blog</a><a href=\"http://tantek.com/#t5Py1_note-4\">\u2074</a>), or ideally directly using their own site, blog etc. to connect to the fediverse<a href=\"http://tantek.com/#t5Py1_note-5\">\u2075</a>.<br /><br />Do you have an @-@ address and want to use your own site instead?<br /><br />If you\u2019re a #<span class=\"p-category\">webdev</span>, you can totally do this by connecting your existing personal site with <a href=\"https://fed.brid.gy/\">https://fed.brid.gy/</a> and own your presence on the web, social web, fediverse all at one place.<br /><br />Got questions? Drop by the IndieWeb chat! <a href=\"https://chat.indieweb.org/dev\">https://chat.indieweb.org/dev</a><br /><br /><br />This is day 35 of #<span class=\"p-category\">100DaysOfIndieWeb</span> #<span class=\"p-category\">100Days</span><br /><br />\u2190 Day 34: <a href=\"https://tantek.com/2023/072/t1/blog-as-if-ai-trained-posts\">https://tantek.com/2023/072/t1/blog-as-if-ai-trained-posts</a><br />\u2192 \ud83d\udd2e<br /><br /><br /><a href=\"http://tantek.com/#t5Py1_ref-1\">\u00b9</a> <a href=\"https://schedule.mozillafestival.org/session/UEEGYL-1\">https://schedule.mozillafestival.org/session/UEEGYL-1</a><br /><a href=\"http://tantek.com/#t5Py1_ref-2\">\u00b2</a> <a href=\"https://mozilla.social/\">https://mozilla.social/</a><br /><a href=\"http://tantek.com/#t5Py1_ref-3\">\u00b3</a> <a href=\"https://indieweb.org/microblog.pub\">https://indieweb.org/microblog.pub</a><br /><a href=\"http://tantek.com/#t5Py1_ref-4\">\u2074</a> <a href=\"https://indieweb.org/micro.blog\">https://indieweb.org/micro.blog</a><br /><a href=\"http://tantek.com/#t5Py1_ref-5\">\u2075</a> <a href=\"https://tantek.com/2022/301/t1/twittermigration-bridgyfed-mastodon-indieweb\">https://tantek.com/2022/301/t1/twittermigration-bridgyfed-mastodon-indieweb</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": "36046978",
"_source": "1",
"_is_read": false
}
I wrote a small python script that takes the CSV of the accounts you follow and converts them into an OPML file that can be imported into an RSS reader. This way you can read all your RSS feeds and follow Mastodon accounts in one place.
{
"type": "entry",
"author": {
"name": "#indieweb",
"url": "https://mastodon.social/tags/indieweb",
"photo": null
},
"url": "https://www.jdzero.net/2023/03/22/mastodon-to-rss/",
"content": {
"html": "<p>I wrote a small python script that takes the CSV of the accounts you follow and converts them into an OPML file that can be imported into an RSS reader. \u00a0This way you can read all your RSS feeds and follow Mastodon accounts in one place.</p><p><a href=\"https://github.com/jdz340/opml-for-mastodon\">The script is available on GitHub.</a></p><p><a class=\"u-tag u-category\" href=\"https://www.jdzero.net/tag/indieweb/\">#indieweb</a> <a class=\"u-tag u-category\" href=\"https://www.jdzero.net/tag/python/\">#python</a> <a class=\"u-tag u-category\" href=\"https://www.jdzero.net/tag/rss/\">#rss</a> <a class=\"u-tag u-category\" href=\"https://www.jdzero.net/tag/technology/\">#technology</a></p><p><a href=\"https://www.jdzero.net/2023/03/22/mastodon-to-rss/\">https://www.jdzero.net/2023/03/22/mastodon-to-rss/</a></p>",
"text": "I wrote a small python script that takes the CSV of the accounts you follow and converts them into an OPML file that can be imported into an RSS reader. \u00a0This way you can read all your RSS feeds and follow Mastodon accounts in one place.The script is available on GitHub.#indieweb #python #rss #technologyhttps://www.jdzero.net/2023/03/22/mastodon-to-rss/"
},
"published": "2023-03-22T14:50:31+00:00",
"post-type": "note",
"_id": "36041974",
"_source": "7235",
"_is_read": false
}
I hate it when there isn't parity between iOS and Android for one particular application, particularly if it's an app that's not for productivity as much as for enrichment. As a tech witch, I have found ways to use technology to assist with spiritual communications. I will seriously buy a cheap tablet just to run Indigenous and valhalla+. Indigenous is for the #indieweb, while Valhalla+ is for Viking communications with the gods and lots of other cool pagan features.
{
"type": "entry",
"author": {
"name": "@cambridgeport90",
"url": "https://social.platypush.tech/@cambridgeport90",
"photo": null
},
"url": "https://social.platypush.tech/@cambridgeport90/110067265039490787",
"content": {
"html": "<p>I hate it when there isn't parity between iOS and Android for one particular application, particularly if it's an app that's not for productivity as much as for enrichment. As a tech witch, I have found ways to use technology to assist with spiritual communications. I will seriously buy a cheap tablet just to run Indigenous and valhalla+. Indigenous is for the <a href=\"https://social.platypush.tech/tags/indieweb\">#<span>indieweb</span></a>, while Valhalla+ is for Viking communications with the gods and lots of other cool pagan features.</p>",
"text": "I hate it when there isn't parity between iOS and Android for one particular application, particularly if it's an app that's not for productivity as much as for enrichment. As a tech witch, I have found ways to use technology to assist with spiritual communications. I will seriously buy a cheap tablet just to run Indigenous and valhalla+. Indigenous is for the #indieweb, while Valhalla+ is for Viking communications with the gods and lots of other cool pagan features."
},
"published": "2023-03-22T13:52:59+00:00",
"post-type": "note",
"_id": "36041975",
"_source": "7235",
"_is_read": false
}
This is day 1 of my 2023 #100Days project, #100DaysOfIndieWeb, posting an #IndieWeb encouragement, tool, or tip at least once a day for 100 days, to setup and use your own personal site instead of someone else’s garage.
{
"type": "entry",
"author": {
"name": "#indieweb",
"url": "https://indieweb.social/tags/indieweb",
"photo": null
},
"url": "https://fed.brid.gy/r/https://snarfed.org/2",
"content": {
"html": "I am once again asking you to own your notes, rather than tweeting them into Big Chad\u2019s garage.<br /><br />Maybe you left the big garage and now toot in your neighborhood Chad\u2019s garage. It\u2019s still someone else\u2019s garage. <a href=\"https://xkcd.com/1150\">https://xkcd.com/1150</a>; #<a href=\"https://indieweb.social/tags/IndieWeb\"><span class=\"p-category\">IndieWeb</span></a><br /><br />Maybe it was an easier first step to take. Time to take the next step, with your own domain, and a turnkey service like <a href=\"https://micro.blog/\">https://micro.blog/</a>;, or an <a href=\"https://indieweb.org/CMS\">https://indieweb.org/CMS</a>; if you prefer, or go full stack and make it yourself, using building blocks like <a href=\"https://indieweb.org/Indiekit\">https://indieweb.org/Indiekit</a>;.. Just <a href=\"https://indieweb.org/start\">https://indieweb.org/start</a>.<br /><br />This is day 1 of my 2023 #<a href=\"https://indieweb.social/tags/100Days\"><span class=\"p-category\">100Days</span></a> project, #<a href=\"https://indieweb.social/tags/100DaysOfIndieWeb\"><span class=\"p-category\">100DaysOfIndieWeb</span></a>, posting an <a href=\"https://indieweb.social/tags/IndieWeb\">#<span class=\"p-category\">IndieWeb</span></a> encouragement, tool, or tip at least once a day for 100 days, to setup and use your own personal site instead of someone else\u2019s garage.<br /><br />In the theme of: <a href=\"https://indieweb.org/100_days#100_Days_of_IndieWeb\">https://indieweb.org/100_days#100_Days_of_IndieWeb</a><br /><br />Previously: <a href=\"https://tantek.com/2022/001/t1/12-years-notes-my-site\">https://tantek.com/2022/001/t1/12-years-notes-my-site</a><br /><br />\u2190 \u2728<br />\u2192 Day 2: <a href=\"https://tantek.com/2023/002/t6/key-owning-notes-domain-name\">https://tantek.com/2023/002/t6/key-owning-notes-domain-name</a>;",
"text": "I am once again asking you to own your notes, rather than tweeting them into Big Chad\u2019s garage.\n\nMaybe you left the big garage and now toot in your neighborhood Chad\u2019s garage. It\u2019s still someone else\u2019s garage. https://xkcd.com/1150; #IndieWeb\n\nMaybe it was an easier first step to take. Time to take the next step, with your own domain, and a turnkey service like https://micro.blog/;, or an https://indieweb.org/CMS; if you prefer, or go full stack and make it yourself, using building blocks like https://indieweb.org/Indiekit;.. Just https://indieweb.org/start.\n\nThis is day 1 of my 2023 #100Days project, #100DaysOfIndieWeb, posting an #IndieWeb encouragement, tool, or tip at least once a day for 100 days, to setup and use your own personal site instead of someone else\u2019s garage.\n\nIn the theme of: https://indieweb.org/100_days#100_Days_of_IndieWeb\n\nPreviously: https://tantek.com/2022/001/t1/12-years-notes-my-site\n\n\u2190 \u2728\n\u2192 Day 2: https://tantek.com/2023/002/t6/key-owning-notes-domain-name;"
},
"published": "2023-01-02T07:11:00+00:00",
"post-type": "note",
"_id": "36033503",
"_source": "7235",
"_is_read": false
}
{
"type": "entry",
"published": "2023-03-20T15:02:57+00:00",
"url": "https://werd.io/2023/decentralized-social-media-rises-as-twitter-melts-down",
"category": [
"Technology"
],
"bookmark-of": [
"https://spectrum.ieee.org/mastodon-social-media"
],
"name": "Decentralized Social Media Rises as Twitter Melts Down",
"content": {
"text": "\u201c\u201cYou basically lose your entire social graph to go [to another social network], which is a super high wall,\u201d says Tim Chambers, Principal and Co-Founder of Dewey Digital and administrator of the Mastodon server indieweb.social. \u201cHowever, when things become sufficiently chaotic on platforms as Twitter is seeing now, that is a force strong enough to incite such migrations.\u201d\u201d #Technology",
"html": "<p>\u201c\u201cYou basically lose your entire social graph to go [to another social network], which is a super high wall,\u201d says Tim Chambers, Principal and Co-Founder of Dewey Digital and administrator of the Mastodon server indieweb.social. \u201cHowever, when things become sufficiently chaotic on platforms as Twitter is seeing now, that is a force strong enough to incite such migrations.\u201d\u201d <a href=\"https://werd.io/tag/Technology\" class=\"p-category\">#Technology</a></p>"
},
"author": {
"type": "card",
"name": "Ben Werdmuller",
"url": "https://werd.io/profile/benwerd",
"photo": "https://werd.io/file/5d388c5fb16ea14aac640912/thumb.jpg"
},
"post-type": "bookmark",
"_id": "35994318",
"_source": "191",
"_is_read": false
}
ActivityPub is the kept as small as possible. The translation RSS -> ActivityPub can be done by independent service, I've written one for bovine here. I haven't gotten around to updating the package names there yet, but I think all that needs to be changed is bovine_core -> bovine.
{
"type": "entry",
"author": {
"name": "#indieweb",
"url": "https://mastodon.social/tags/indieweb",
"photo": null
},
"url": "https://mymath.rocks/objects/3f0d65f1-94c7-45f9-bb56-73c2e1942ab1",
"content": {
"html": "<p>ActivityPub is the kept as small as possible. The translation RSS -> ActivityPub can be done by independent service, I've written one for bovine <a href=\"https://github.com/HelgeKrueger/bovine/blob/main/examples/cow_resisa/resisa.py\">here</a>. I haven't gotten around to updating the package names there yet, but I think all that needs to be changed is bovine_core -> bovine.</p>",
"text": "ActivityPub is the kept as small as possible. The translation RSS -> ActivityPub can be done by independent service, I've written one for bovine here. I haven't gotten around to updating the package names there yet, but I think all that needs to be changed is bovine_core -> bovine."
},
"published": "2023-03-20T11:37:06+00:00",
"post-type": "note",
"_id": "35985411",
"_source": "7235",
"_is_read": false
}
I can hardly believe it, after two years I finally managed to work through all my tweets and sort them out properly. All tweets that remained, I have taken over to my website following PESOS.
There were really so many posts whose context I no longer understood myself. How should it expect it from others?
{
"type": "entry",
"author": {
"name": "@chrisbergr",
"url": "https://mastodon.social/@chrisbergr",
"photo": null
},
"url": "https://mastodon.social/@chrisbergr/110051616772889554",
"content": {
"html": "<p>I can hardly believe it, after two years I finally managed to work through all my tweets and sort them out properly. All tweets that remained, I have taken over to my website following PESOS.</p><p>There were really so many posts whose context I no longer understood myself. How should it expect it from others?</p><p><a href=\"https://mastodon.social/tags/indieweb\">#<span>indieweb</span></a></p>",
"text": "I can hardly believe it, after two years I finally managed to work through all my tweets and sort them out properly. All tweets that remained, I have taken over to my website following PESOS.There were really so many posts whose context I no longer understood myself. How should it expect it from others?#indieweb"
},
"published": "2023-03-19T19:33:26+00:00",
"post-type": "note",
"_id": "35971536",
"_source": "7235",
"_is_read": false
}
{
"type": "entry",
"published": "2023-03-19T13:14:22-0400",
"url": "https://martymcgui.re/2023/03/19/go-time/",
"category": [
"hugo",
"webdev",
"time",
"parsing",
"microformats"
],
"name": "Go Time",
"content": {
"text": "This is one of those posts about a tech issue comes up from time to time for me that I find difficult to search for. Sorry (not sorry) if it is not helpful to anyone else!\n\n Too much context about my site building process\n \n\nMy site is built with Hugo, a static site generator known for being quite fast, and with a powerful (and challenging) templating system.\nI use my site for lots of stuff, which sometimes means showing content from other sites in my posts. For example:\n\n Responses that I make to other folks, like reposting this RSVP, or replying to this post. My site tries to make a little preview of these, sometimes known as a reply context.\n \n\n \n Responses from other folks, like this little piece of a conversation with a person on Mastodon. These come in the form of Webmentions, and my site needs to know info about how to display them.\n \n\nIn either case, my site's build process includes a step where it finds new links that need this context - to be displayed as a preview or displayed as a like/comment/etc., and it fetches that stuff. To do this, my site fetches the link content, then parses it using a handy library called aaronpk/XRay, then saving it in a place where Hugo can find it at build time.\nFor example, the RSVP post I mentioned gets a little chunk of data like this:\n\n{\n \"fetched_at\": \"2019-10-02T23:29:15-04:00\",\n \"xray\": {\n \"data\": {\n \"type\": \"entry\",\n \"published\": \"2019-10-02 19:53-0700\",\n \"url\": \"https://tantek.com/2019/275/t1/indiewebcamp-new-york-city\",\n \"content\": {\n \"text\": \"going to #IndieWebCamp NYC this weekend ...\",\n...\n\nI\u2019ve cut out a lot of stuff here and highlighted the two things relevant for my particular time issue.\nIn my templates for previews and responses I try to show the published time from the post itself. If XRay wasn't able to find a value for published or (spoiler) Hugo can't parse that value as a time, the template will give up and omit the published time.\n\n What is Web Time?\n\nThis is such a ridiculously fraught question that I refuse to answer it properly. Suffice to say:\n\n IndieWeb-friendly posts tend to include their published time\n in (a variant of?) ISO 8601 format. I'll leave learning about ISO 8601 as an exercise for the reader. It's pretty forgiving, and let's you do things like avoid artificial precision by omitting things like seconds when they're not known.\n \n Hugo... doesn't do this.\nWhat is (Hu)go Time?\n\n Okay, finally, the point of this post has been found. To archive this lil' set of facts for my future frustrations.\n\nFrom an unrelated Hugo date parsing issue, I learned about the list of time formats that Hugo tries when you ask it to parse something as a time, last updated August 2022:\n\nvar (\n timeFormats = []timeFormat{\n {time.RFC3339, timeFormatNumericTimezone},\n {\"2006-01-02T15:04:05\", timeFormatNoTimezone}, // iso8601 without timezone\n {time.RFC1123Z, timeFormatNumericTimezone},\n {time.RFC1123, timeFormatNamedTimezone},\n {time.RFC822Z, timeFormatNumericTimezone},\n {time.RFC822, timeFormatNamedTimezone},\n {time.RFC850, timeFormatNamedTimezone},\n {\"2006-01-02 15:04:05.999999999 -0700 MST\", timeFormatNumericAndNamedTimezone}, // Time.String()\n {\"2006-01-02T15:04:05-0700\", timeFormatNumericTimezone}, // RFC3339 without timezone hh:mm colon\n {\"2006-01-02 15:04:05Z0700\", timeFormatNumericTimezone}, // RFC3339 without T or timezone hh:mm colon\n {\"2006-01-02 15:04:05\", timeFormatNoTimezone},\n {time.ANSIC, timeFormatNoTimezone},\n {time.UnixDate, timeFormatNamedTimezone},\n {time.RubyDate, timeFormatNumericTimezone},\n {\"2006-01-02 15:04:05Z07:00\", timeFormatNumericTimezone},\n {\"2006-01-02\", timeFormatNoTimezone},\n {\"02 Jan 2006\", timeFormatNoTimezone},\n {\"2006-01-02 15:04:05 -07:00\", timeFormatNumericTimezone},\n {\"2006-01-02 15:04:05 -0700\", timeFormatNumericTimezone},\n {time.Kitchen, timeFormatTimeOnly},\n {time.Stamp, timeFormatTimeOnly},\n {time.StampMilli, timeFormatTimeOnly},\n {time.StampMicro, timeFormatTimeOnly},\n {time.StampNano, timeFormatTimeOnly},\n }\n)\n\n\n There's a lot of time.Whatever constants in that list. These are part of the \n Go language's time package\n :\n\n\nconst (\n Layout = \"01/02 03:04:05PM '06 -0700\" // The reference time, in numerical order.\n ANSIC = \"Mon Jan _2 15:04:05 2006\"\n UnixDate = \"Mon Jan _2 15:04:05 MST 2006\"\n RubyDate = \"Mon Jan 02 15:04:05 -0700 2006\"\n RFC822 = \"02 Jan 06 15:04 MST\"\n RFC822Z = \"02 Jan 06 15:04 -0700\" // RFC822 with numeric zone\n RFC850 = \"Monday, 02-Jan-06 15:04:05 MST\"\n RFC1123 = \"Mon, 02 Jan 2006 15:04:05 MST\"\n RFC1123Z = \"Mon, 02 Jan 2006 15:04:05 -0700\" // RFC1123 with numeric zone\n RFC3339 = \"2006-01-02T15:04:05Z07:00\"\n RFC3339Nano = \"2006-01-02T15:04:05.999999999Z07:00\"\n Kitchen = \"3:04PM\"\n // Handy time stamps.\n Stamp = \"Jan _2 15:04:05\"\n StampMilli = \"Jan _2 15:04:05.000\"\n StampMicro = \"Jan _2 15:04:05.000000\"\n StampNano = \"Jan _2 15:04:05.000000000\"\n DateTime = \"2006-01-02 15:04:05\"\n DateOnly = \"2006-01-02\"\n TimeOnly = \"15:04:05\"\n)\n\n\n If your brain just can't help but puzzle-solve, you may have noticed that the published time from the example above: \n\n\n\"2019-10-02 19:53-0700\"\n\n Is close to but does not match either the time.RFC3339 or time.DateTime formats.\n The issue? Neither Hugo nor Go fully support ISO 8601 time, instead supporting very close time formats which do not allow omitting the seconds value. There are definitely other formats they don't support, which I've seen commonly, like \"January 2, 2006\".\n \n Workaround (Deprecated)\n \n \n When I first built out the Hugo templates for my site (2018, so back in the 0.4x or 0.5x days, maybe?), if you asked Hugo to parse a time, and it couldn't, it would give you back a string instead with an error message beginning \"unable to parse date: ...\". This was gnarly, but I could code around it by asking Hugo to convert a value to a time and checking if the result starts with \"unable to parse\". Something like:\n \n\n{{ $safe_published := (time $item_published) -}}\n{{ if not (hasPrefix $safe_start \"unable to parse\") -}}\n {{/* ... it parsed, hooray, use it */}}\n{{ else -}}\n {{/* failed to parse so do a fallback or ignore it or whatever */}}\n{{ end -}}\n\n \n Time passes and Hugo has since changed this behavior. Now, if you ask it to convert a value to a time, and it cannot parse it with one of the known format strings, \n Hugo bails and the entire build fails.\n It throws an error something like:\n \n\nERROR 2023/03/19 13:02:05 render of \"page\" failed:\n \"/home/schmarty/me/martymcgui.re/themes/mmgre-2015/layouts/_default/single.html:3:7\":\n execute of template failed: template: _default/single.html:3:7:\n executing \"main\" at <partial \"post/post.html\" (...)>:\n error calling partial: \"/home/schmarty/me/martymcgui.re/themes/mmgre-2015/layouts/partials/post/post.html:20:36\":\n execute of template failed: template: partials/post/post.html:20:36:\n executing \"partials/post/post.html\" at <partial \"link-preview/link-preview.html\" (...)>:\n error calling partial: \"/home/schmarty/me/martymcgui.re/themes/mmgre-2015/layouts/partials/link-preview/link-preview.html:26:9\":\n execute of template failed: template: partials/link-preview/link-preview.html:26:9:\n executing \"partials/link-preview/link-preview.html\" at <partial (printf \"link-preview/%s.html\" \"xray\") (...)>:\n error calling partial: \"/home/schmarty/me/martymcgui.re/themes/mmgre-2015/layouts/partials/link-preview/xray.html:30:28\":\n execute of template failed: template: partials/link-preview/xray.html:30:28:\n executing \"partials/link-preview/xray.html\" at <partial \"util/safe-time.html\" $item.published>:\n error calling partial: \"/home/schmarty/me/martymcgui.re/themes/mmgre-2015/layouts/partials/util/safe-time.html:1:4\":\n execute of template failed: template: partials/util/safe-time.html:1:4:\n executing \"partials/util/safe-time.html\" at <time .>:\n error calling time: unable to parse date: 2019-10-02 19:53-0700\n\n \n Believe it or not I actually cleaned up that error a lot, removed duplicates, and highlighted the key issue in bold.\n \n \n I hate this.\n \n Workaround (Derogatory)\n For now I check my site's build logs from time to time looking for build errors like the one above. I'll then:Use a tool like grep to search my saved reply context data for the problematic time string (in this case \"2019-10-02 19:53-0700\").\n \nFind the file it's in, and \"fix\" it so Hugo can parse it. In this case, \"2019-10-02 19:53:00-0700\".\n \nWith the \"fix\" in place, I'll rebuild the site.\n \nEither it builds successfully (hooray!) or I find the next time parsing failure and repeat.\n \n I seriously dislike this.\n \n A Future Fix\n What I actually need to do here is update my build system to sanitize the value of published if it exists.\n Like Hugo's list, I'll need to decide what date string formats I want to support, have the build system try them all on that published value, and store a sanitized version for Hugo.\n \n Okay! Now I have this post to refer to in the future when I get next get cranky about this.",
"html": "<p>This is one of those posts about a tech issue comes up from time to time for me that I find difficult to search for. Sorry (not sorry) if it is not helpful to anyone else!</p>\n<h2>\n Too much context about my site building process\n <br /></h2>\n<p>My site is built with <a href=\"https://gohugo.io/\">Hugo</a>, a static site generator known for being quite fast, and with a powerful (and challenging) templating system.</p>\n<p>I use my site for lots of stuff, which sometimes means showing content from <em>other sites</em> in my posts. For example:</p>\n<ul><li>\n Responses that I make to other folks, like <a href=\"https://martymcgui.re/2019/10/02/232911/\">reposting this RSVP</a>, or <a href=\"https://martymcgui.re/2021/03/01/165355/\">replying to this post</a>. My site tries to make a little preview of these, sometimes known as a <a href=\"https://indieweb.org/reply-context\">reply context</a>.\n <br /></li>\n <li>\n <a href=\"https://indieweb.org/responses#Individual_sets_of_responses\">Responses</a> <em>from</em> other folks, like <a href=\"https://martymcgui.re/2023/01/18/223130/\">this little piece of a conversation with a person on Mastodon</a>. These come in the form of <a href=\"https://indieweb.org/Webmention\">Webmentions</a>, and my site needs to know info about how to display them.\n </li>\n</ul>\nIn either case, my site's build process includes a step where it finds new links that need this context - to be displayed as a preview or displayed as a like/comment/etc., and it fetches that stuff. To do this, my site fetches the link content, then parses it using a handy library called <a href=\"https://github.com/aaronpk/XRay\">aaronpk/XRay</a>, then saving it in a place where Hugo can find it at build time.\n<p>For example, the RSVP post I mentioned gets a little chunk of data like this:</p>\n<pre>\n{\n \"fetched_at\": \"2019-10-02T23:29:15-04:00\",\n \"xray\": {\n \"data\": {\n \"type\": \"entry\",\n <strong>\"published\": \"2019-10-02 19:53-0700\",</strong>\n \"url\": \"https://tantek.com/2019/275/t1/indiewebcamp-new-york-city\",\n \"content\": {\n \"text\": \"going to #IndieWebCamp NYC this weekend ...\",\n...\n</pre>\n<p>I\u2019ve cut out a lot of stuff here and highlighted the two things relevant for my particular time issue.</p>\n<p>In my templates for previews and responses I try to show the <strong>published</strong> time from the post itself. If XRay wasn't able to find a value for <strong>published</strong> or (spoiler) Hugo can't parse that value as a time, the template will give up and omit the published time.</p>\n<h2>\n What is Web Time?\n</h2>\n<p>This is such a ridiculously fraught question that I refuse to answer it properly. Suffice to say:</p>\n<ul><li>\n <a href=\"http://microformats.org/wiki/h-entry#dt-published_property_and_HTML5_time_element\">IndieWeb-friendly posts tend to include their<strong> published</strong> time</a>\n in <a href=\"https://developer.mozilla.org/en-US/docs/Web/HTML/Date_and_time_formats\">(a variant of?) ISO 8601 format</a>. I'll leave learning about ISO 8601 as an exercise for the reader. It's pretty forgiving, and let's you do things like <a href=\"https://en.wikipedia.org/wiki/Artificial_precision\">avoid artificial precision</a> by omitting things like seconds when they're not known.\n </li>\n <li>Hugo... doesn't do this.</li>\n</ul><h2>What is (Hu)go Time?</h2>\n<p>\n Okay, finally, the point of this post has been found. To archive this lil' set of facts for my future frustrations.\n</p>\n<p>From an <a href=\"https://github.com/gohugoio/hugo/issues/5340#issuecomment-431698120\">unrelated Hugo date parsing issue</a>, I learned about <a href=\"https://github.com/spf13/cast/blob/557a6a2fb72b0b1ffc57875f299e7842351886f6/caste.go#L1407\">the list of time formats that Hugo tries when you ask it to parse something as a time</a>, last updated August 2022:</p>\n<pre>\nvar (\n timeFormats = []timeFormat{\n {time.RFC3339, timeFormatNumericTimezone},\n {\"2006-01-02T15:04:05\", timeFormatNoTimezone}, // iso8601 without timezone\n {time.RFC1123Z, timeFormatNumericTimezone},\n {time.RFC1123, timeFormatNamedTimezone},\n {time.RFC822Z, timeFormatNumericTimezone},\n {time.RFC822, timeFormatNamedTimezone},\n {time.RFC850, timeFormatNamedTimezone},\n {\"2006-01-02 15:04:05.999999999 -0700 MST\", timeFormatNumericAndNamedTimezone}, // Time.String()\n {\"2006-01-02T15:04:05-0700\", timeFormatNumericTimezone}, // RFC3339 without timezone hh:mm colon\n {\"2006-01-02 15:04:05Z0700\", timeFormatNumericTimezone}, // RFC3339 without T or timezone hh:mm colon\n {\"2006-01-02 15:04:05\", timeFormatNoTimezone},\n {time.ANSIC, timeFormatNoTimezone},\n {time.UnixDate, timeFormatNamedTimezone},\n {time.RubyDate, timeFormatNumericTimezone},\n {\"2006-01-02 15:04:05Z07:00\", timeFormatNumericTimezone},\n {\"2006-01-02\", timeFormatNoTimezone},\n {\"02 Jan 2006\", timeFormatNoTimezone},\n {\"2006-01-02 15:04:05 -07:00\", timeFormatNumericTimezone},\n {\"2006-01-02 15:04:05 -0700\", timeFormatNumericTimezone},\n {time.Kitchen, timeFormatTimeOnly},\n {time.Stamp, timeFormatTimeOnly},\n {time.StampMilli, timeFormatTimeOnly},\n {time.StampMicro, timeFormatTimeOnly},\n {time.StampNano, timeFormatTimeOnly},\n }\n)\n</pre>\n<p>\n There's a lot of <strong>time.Whatever</strong> constants in that list. These are part of the \n <a href=\"https://pkg.go.dev/time\">Go language's <strong>time</strong> package</a>\n :\n</p>\n<pre>\nconst (\n Layout = \"01/02 03:04:05PM '06 -0700\" // The reference time, in numerical order.\n ANSIC = \"Mon Jan _2 15:04:05 2006\"\n UnixDate = \"Mon Jan _2 15:04:05 MST 2006\"\n RubyDate = \"Mon Jan 02 15:04:05 -0700 2006\"\n RFC822 = \"02 Jan 06 15:04 MST\"\n RFC822Z = \"02 Jan 06 15:04 -0700\" // RFC822 with numeric zone\n RFC850 = \"Monday, 02-Jan-06 15:04:05 MST\"\n RFC1123 = \"Mon, 02 Jan 2006 15:04:05 MST\"\n RFC1123Z = \"Mon, 02 Jan 2006 15:04:05 -0700\" // RFC1123 with numeric zone\n RFC3339 = \"2006-01-02T15:04:05Z07:00\"\n RFC3339Nano = \"2006-01-02T15:04:05.999999999Z07:00\"\n Kitchen = \"3:04PM\"\n // Handy time stamps.\n Stamp = \"Jan _2 15:04:05\"\n StampMilli = \"Jan _2 15:04:05.000\"\n StampMicro = \"Jan _2 15:04:05.000000\"\n StampNano = \"Jan _2 15:04:05.000000000\"\n DateTime = \"2006-01-02 15:04:05\"\n DateOnly = \"2006-01-02\"\n TimeOnly = \"15:04:05\"\n)\n</pre>\n<p>\n If your brain just can't help but puzzle-solve, you may have noticed that the <strong>published</strong> time from the example above: \n</p>\n<pre>\n\"2019-10-02 19:53-0700\"\n</pre>\n <p>Is <em>close to</em> but <em>does not match</em> either the <strong>time.RFC3339</strong> or <strong>time.DateTime</strong> formats.</p>\n <p>The issue? Neither Hugo nor Go fully support ISO 8601 time, instead supporting <em>very close</em> time formats which <em>do not allow omitting the seconds value.</em> There are definitely other formats they don't support, which I've seen commonly, like \"January 2, 2006\".</p>\n <h2>\n Workaround (Deprecated)\n </h2>\n <p>\n When I first built out the Hugo templates for my site (2018, so back in the 0.4x or 0.5x days, maybe?), if you asked Hugo to parse a time, and it couldn't, it would give you back a string instead with an error message beginning \"unable to parse date: ...\". This was gnarly, but I could code around it by asking Hugo to convert a value to a time and checking if the result starts with \"unable to parse\". Something like:\n </p>\n<pre>\n{{ $safe_published := (time $item_published) -}}\n{{ if not (hasPrefix $safe_start \"unable to parse\") -}}\n {{/* ... it parsed, hooray, use it */}}\n{{ else -}}\n {{/* failed to parse so do a fallback or ignore it or whatever */}}\n{{ end -}}\n</pre>\n <p>\n Time passes and Hugo has since changed this behavior. Now, if you ask it to convert a value to a time, and it cannot parse it with one of the known format strings, \n <em><strong>Hugo bails and the entire build fails.</strong></em>\n It throws an error something like:\n </p>\n<pre>\nERROR 2023/03/19 13:02:05 render of \"page\" failed:\n \"/home/schmarty/me/martymcgui.re/themes/mmgre-2015/layouts/_default/single.html:3:7\":\n execute of template failed: template: _default/single.html:3:7:\n executing \"main\" at <partial \"post/post.html\" (...)>:\n error calling partial: \"/home/schmarty/me/martymcgui.re/themes/mmgre-2015/layouts/partials/post/post.html:20:36\":\n execute of template failed: template: partials/post/post.html:20:36:\n executing \"partials/post/post.html\" at <partial \"link-preview/link-preview.html\" (...)>:\n error calling partial: \"/home/schmarty/me/martymcgui.re/themes/mmgre-2015/layouts/partials/link-preview/link-preview.html:26:9\":\n execute of template failed: template: partials/link-preview/link-preview.html:26:9:\n executing \"partials/link-preview/link-preview.html\" at <partial (printf \"link-preview/%s.html\" \"xray\") (...)>:\n error calling partial: \"/home/schmarty/me/martymcgui.re/themes/mmgre-2015/layouts/partials/link-preview/xray.html:30:28\":\n execute of template failed: template: partials/link-preview/xray.html:30:28:\n executing \"partials/link-preview/xray.html\" at <partial \"util/safe-time.html\" $item.published>:\n error calling partial: \"/home/schmarty/me/martymcgui.re/themes/mmgre-2015/layouts/partials/util/safe-time.html:1:4\":\n execute of template failed: template: partials/util/safe-time.html:1:4:\n executing \"partials/util/safe-time.html\" at <time .>:\n <strong> error calling time: unable to parse date: 2019-10-02 19:53-0700</strong>\n</pre>\n <p>\n Believe it or not I actually cleaned up that error a lot, removed duplicates, and highlighted the key issue in bold.\n </p>\n <p>\n <em><strong>I hate this.</strong></em>\n </p>\n <h2>Workaround (Derogatory)</h2>\n <p>For now I check my site's build logs from time to time looking for build errors like the one above. I'll then:</p><ol><li>Use a tool like grep to search my saved reply context data for the problematic time string (in this case \"2019-10-02 19:53-0700\").\n </li>\n<li>Find the file it's in, and \"fix\" it so Hugo can parse it. In this case, \"2019-10-02 19:53:00-0700\".\n </li>\n<li>With the \"fix\" in place, I'll rebuild the site.\n </li>\n</ol><p>Either it builds successfully (hooray!) or I find the <em>next</em> time parsing failure and repeat.</p>\n <p>\n <em><strong>I seriously dislike this.</strong></em>\n </p>\n <h2>A Future Fix</h2>\n <p>What I actually need to do here is update my build system to sanitize the value of <strong>published</strong> if it exists.</p>\n <p>Like Hugo's list, I'll need to decide what date string formats I want to support, have the build system try them all on that <strong>published</strong> value, and store a sanitized version for Hugo.</p>\n <p>\n Okay! Now I have this post to refer to in the future when I get next get cranky about this.\n <br /></p>"
},
"author": {
"type": "card",
"name": "Marty McGuire",
"url": "https://martymcgui.re/",
"photo": "https://martymcgui.re/images/logo.jpg"
},
"post-type": "article",
"_id": "35968996",
"_source": "175",
"_is_read": false
}
“a growing world-wide network of meetups for everyone who wants to take back their web experience from #socialMedia silos, and own their online identities & content, or just want support with #blogging!”
I’ve been anti-digital sharecropping for awhile and with my new #blog, this is right up my alley.
I’d love to try to do a #meetup locally in person but this might be a cool thing to do as a monthly #webchat here on #Mastodon/the #Fediverse.
Comment or boost if you’re interested in joining a regular webchat here.
{
"type": "entry",
"author": {
"name": "@arpcomics",
"url": "https://mythology.social/@arpcomics",
"photo": null
},
"url": "https://mythology.social/@arpcomics/110050329135556693",
"content": {
"html": "<p>Found out about the <a href=\"https://mythology.social/tags/HomebrewWebsiteClub\">#<span>HomebrewWebsiteClub</span></a> on the <a href=\"https://mythology.social/tags/IndieWeb\">#<span>IndieWeb</span></a> site. It\u2019s</p><p>\u201ca growing world-wide network of meetups for everyone who wants to take back their web experience from <a href=\"https://mythology.social/tags/socialMedia\">#<span>socialMedia</span></a> silos, and own their online identities & content, or just want support with <a href=\"https://mythology.social/tags/blogging\">#<span>blogging</span></a>!\u201d</p><p>I\u2019ve been anti-digital sharecropping for awhile and with my new <a href=\"https://mythology.social/tags/blog\">#<span>blog</span></a>, this is right up my alley.</p><p>I\u2019d love to try to do a <a href=\"https://mythology.social/tags/meetup\">#<span>meetup</span></a> locally in person but this might be a cool thing to do as a monthly <a href=\"https://mythology.social/tags/webchat\">#<span>webchat</span></a> here on <a href=\"https://mythology.social/tags/Mastodon\">#<span>Mastodon</span></a>/the <a href=\"https://mythology.social/tags/Fediverse\">#<span>Fediverse</span></a>.</p><p>Comment or boost if you\u2019re interested in joining a regular webchat here.</p><p><a href=\"https://indieweb.org/Homebrew_Website_Club\"><span>https://</span><span>indieweb.org/Homebrew_Website_</span><span>Club</span></a></p>",
"text": "Found out about the #HomebrewWebsiteClub on the #IndieWeb site. It\u2019s\u201ca growing world-wide network of meetups for everyone who wants to take back their web experience from #socialMedia silos, and own their online identities & content, or just want support with #blogging!\u201dI\u2019ve been anti-digital sharecropping for awhile and with my new #blog, this is right up my alley.I\u2019d love to try to do a #meetup locally in person but this might be a cool thing to do as a monthly #webchat here on #Mastodon/the #Fediverse.Comment or boost if you\u2019re interested in joining a regular webchat here.https://indieweb.org/Homebrew_Website_Club"
},
"published": "2023-03-19T14:05:58+00:00",
"post-type": "note",
"_id": "35965203",
"_source": "7235",
"_is_read": false
}
{
"type": "entry",
"author": {
"name": "@duskstriker",
"url": "https://twit.social/@duskstriker",
"photo": null
},
"url": "https://twit.social/@duskstriker/110048877882291536",
"content": {
"html": "<p>Kind of odd to me that <a href=\"https://twit.social/tags/ActivityPub\">#<span>ActivityPub</span></a> doesn't support following <a href=\"https://twit.social/tags/RSS\">#<span>RSS</span></a> feeds in the spec. <a href=\"https://twit.social/tags/IndieWeb\">#<span>IndieWeb</span></a> \ud83e\udd37\u200d\u2642\ufe0f</p>",
"text": "Kind of odd to me that #ActivityPub doesn't support following #RSS feeds in the spec. #IndieWeb \ud83e\udd37\u200d\u2642\ufe0f"
},
"published": "2023-03-19T07:56:54+00:00",
"post-type": "note",
"_id": "35959946",
"_source": "7235",
"_is_read": false
}
{
"type": "entry",
"author": {
"name": "@pablo",
"url": "https://social.lifeofpablo.com/@pablo",
"photo": null
},
"url": "https://social.lifeofpablo.com/@pablo/110048139809039115",
"content": {
"html": "<p>Do you use indieauth?</p><p>Check out my blog post on implementing indieauth and enabling h-entry on my website using Datenstrom Yellow Flat File CMS. </p><p><a href=\"https://lifeofpablo.com/blog/i-added-indielogin-to-my-site-and-making-it-h-entry-compatible\"><span>https://</span><span>lifeofpablo.com/blog/i-added-i</span><span>ndielogin-to-my-site-and-making-it-h-entry-compatible</span></a></p><p><a href=\"https://social.lifeofpablo.com/tags/indie\">#<span>indie</span></a> <a href=\"https://social.lifeofpablo.com/tags/indieauth\">#<span>indieauth</span></a> <a href=\"https://social.lifeofpablo.com/tags/indieweb\">#<span>indieweb</span></a> <a href=\"https://social.lifeofpablo.com/tags/community\">#<span>community</span></a> <a href=\"https://social.lifeofpablo.com/tags/w3c\">#<span>w3c</span></a> <a href=\"https://social.lifeofpablo.com/tags/opensource\">#<span>opensource</span></a> <a href=\"https://social.lifeofpablo.com/tags/datenstrom\">#<span>datenstrom</span></a> <a href=\"https://social.lifeofpablo.com/tags/cms\">#<span>cms</span></a> <a href=\"https://social.lifeofpablo.com/tags/implementation\">#<span>implementation</span></a> <a href=\"https://social.lifeofpablo.com/tags/hentry\">#<span>hentry</span></a></p><p>Yes<br />No</p>",
"text": "Do you use indieauth?Check out my blog post on implementing indieauth and enabling h-entry on my website using Datenstrom Yellow Flat File CMS. https://lifeofpablo.com/blog/i-added-indielogin-to-my-site-and-making-it-h-entry-compatible#indie #indieauth #indieweb #community #w3c #opensource #datenstrom #cms #implementation #hentryYes\nNo"
},
"published": "2023-03-19T04:49:12+00:00",
"post-type": "note",
"_id": "35958216",
"_source": "7235",
"_is_read": false
}
{
"type": "entry",
"published": "2023-03-18T14:03:11-0400",
"url": "https://martymcgui.re/2023/03/18/140311/",
"category": [
"IndieWeb"
],
"syndication": [
"https://fed.brid.gy/"
],
"content": {
"text": "IndieWebCamp D\u00fcsseldorf planning, A People\u2019s History of Twitter, and an AI\u2019s history of James. It\u2019s your < 5min update on the #IndieWeb community!\nThis Week in the IndieWeb audio edition for March 11th - 17th, 2023.\nhttps://martymcgui.re/2023/03/18/this-week-in-the-indieweb-audio-edition--march-11th---17th-2023/",
"html": "<p>IndieWebCamp D\u00fcsseldorf planning, A People\u2019s History of Twitter, and an AI\u2019s history of James. It\u2019s your < 5min update on the <a href=\"https://martymcgui.re/tag/indieweb/\" class=\"p-category\">#IndieWeb</a> community!</p>\n<p>This Week in the IndieWeb audio edition for March 11th - 17th, 2023.\n<a href=\"https://martymcgui.re/2023/03/18/this-week-in-the-indieweb-audio-edition--march-11th---17th-2023/\">https://martymcgui.re/2023/03/18/this-week-in-the-indieweb-audio-edition--march-11th---17th-2023/</a></p>"
},
"author": {
"type": "card",
"name": "Marty McGuire",
"url": "https://martymcgui.re/",
"photo": "https://martymcgui.re/images/logo.jpg"
},
"post-type": "note",
"_id": "35948654",
"_source": "175",
"_is_read": false
}
{
"type": "entry",
"published": "2023-03-18T13:56:23-0400",
"url": "https://martymcgui.re/2023/03/18/this-week-in-the-indieweb-audio-edition--march-11th---17th-2023/",
"category": [
"podcast",
"IndieWeb",
"this-week-indieweb-podcast"
],
"audio": [
"https://media.martymcgui.re/31/19/2c/6f/30496ac7dfa642ce7709a4b665600cb12ed537ba9c4a97d65bf9781b.mp3"
],
"name": "This Week in the IndieWeb Audio Edition \u2022 March 11th - 17th, 2023",
"content": {
"text": "Show/Hide Transcript\n \n IndieWebCamp D\u00fcsseldorf planning, A People\u2019s History of Twitter, and an AI\u2019s history of James. It\u2019s the audio edition for This Week in the IndieWeb for March 11th - 17th, 2023.\nYou can find all of my audio editions and subscribe with your favorite podcast app here: martymcgui.re/podcasts/indieweb/.\nMusic from Aaron Parecki\u2019s 100DaysOfMusic project: Day 85 - Suit, Day 48 - Glitch, Day 49 - Floating, Day 9, and Day 11\nThanks to everyone in the IndieWeb chat for their feedback and suggestions. Please drop me a note if there are any changes you\u2019d like to see for this audio edition!",
"html": "Show/Hide Transcript\n \n <p>IndieWebCamp D\u00fcsseldorf planning, A People\u2019s History of Twitter, and an AI\u2019s history of James. It\u2019s the audio edition for <a href=\"https://indieweb.org/this-week/2023-03-17.html\">This Week in the IndieWeb for March 11th - 17th, 2023</a>.</p>\n<p>You can find all of my audio editions and subscribe with your favorite podcast app here: <a href=\"https://martymcgui.re/podcasts/indieweb/\">martymcgui.re/podcasts/indieweb/</a>.</p>\n<p>Music from <a href=\"https://aaronparecki.com/\">Aaron Parecki</a>\u2019s <a href=\"https://100.aaronparecki.com/\">100DaysOfMusic project</a>: <a href=\"https://aaronparecki.com/2017/03/15/14/day85\">Day 85 - Suit</a>, <a href=\"https://aaronparecki.com/2017/02/06/7/day48\">Day 48 - Glitch</a>, <a href=\"https://aaronparecki.com/2017/02/07/4/day49\">Day 49 - Floating</a>, <a href=\"https://aaronparecki.com/2016/12/29/21/day-9\">Day 9</a>, and <a href=\"https://aaronparecki.com/2016/12/31/15/\">Day 11</a></p>\n<p>Thanks to everyone in the <a href=\"https://chat.indieweb.org/\">IndieWeb chat</a> for their feedback and suggestions. Please drop me a note if there are any changes you\u2019d like to see for this audio edition!</p>"
},
"author": {
"type": "card",
"name": "Marty McGuire",
"url": "https://martymcgui.re/",
"photo": "https://martymcgui.re/images/logo.jpg"
},
"post-type": "audio",
"_id": "35948655",
"_source": "175",
"_is_read": false
}