I have a work project that requires adding DKIM and DMARC. I was familiar with both, but hadn’t actually set them up myself yet. Thankfully, PHPMailer seems to have pretty good DKIM support built-in, as well as an example script to set up the public/private key pair.
I made a couple small changes in that example script. First I set up a full path to where I wanted the PEM files to be saved.
define('KEYFILE_DIR', '/replace/with/full/path/');
$privatekeyfile = KEYFILE_DIR . $selector . '_dkim_private.pem';
$publickeyfile = KEYFILE_DIR . $selector . '_dkim_public.pem';
I wanted the private key to be encrypted with a passphrase, so I changed the export-to-file line to this:
openssl_pkey_export_to_file($pk, $privatekeyfile, $passphrase);
After setting the $domain and $selector variables, running the script created the public and private key files and displayed the information needed to set up the DNS record. The script chunked the public key into 255-character segments because some DNS systems don’t like longer text. In our experience, though, we didn’t need the chunking, so we used the public key with the PEM wrapper removed.
Adding a few lines of DKIM configuration (from another of their example scripts) was all I needed to include DKIM Signature header with each message. I tested with a message sent to a Gmail address and it showed it was signed by the domain. Viewing the full email headers, I could also see dkim=pass in a couple places. I also used the Google MessageHeader tool to paste in the full email headers and it confirmed DKIM passed.
{
"type": "entry",
"published": "2024-01-10 17:31-0800",
"url": "https://gregorlove.com/2024/01/i-have-a-work/",
"category": [
"dev",
"email",
"DKIM"
],
"content": {
"text": "I have a work project that requires adding DKIM and DMARC. I was familiar with both, but hadn\u2019t actually set them up myself yet. Thankfully, PHPMailer seems to have pretty good DKIM support built-in, as well as an example script to set up the public/private key pair.\n\nI made a couple small changes in that example script. First I set up a full path to where I wanted the PEM files to be saved.\n\n\ndefine('KEYFILE_DIR', '/replace/with/full/path/');\n$privatekeyfile = KEYFILE_DIR . $selector . '_dkim_private.pem';\n$publickeyfile = KEYFILE_DIR . $selector . '_dkim_public.pem';\n\n\nI wanted the private key to be encrypted with a passphrase, so I changed the export-to-file line to this:\n\n\nopenssl_pkey_export_to_file($pk, $privatekeyfile, $passphrase);\n\nAfter setting the $domain and $selector variables, running the script created the public and private key files and displayed the information needed to set up the DNS record. The script chunked the public key into 255-character segments because some DNS systems don\u2019t like longer text. In our experience, though, we didn\u2019t need the chunking, so we used the public key with the PEM wrapper removed.\n\nAdding a few lines of DKIM configuration (from another of their example scripts) was all I needed to include DKIM Signature header with each message. I tested with a message sent to a Gmail address and it showed it was signed by the domain. Viewing the full email headers, I could also see dkim=pass in a couple places. I also used the Google MessageHeader tool to paste in the full email headers and it confirmed DKIM passed.",
"html": "<p>I have a work project that requires adding <a href=\"https://en.wikipedia.org/wiki/DomainKeys_Identified_Mail\">DKIM</a> and <a href=\"https://en.wikipedia.org/wiki/DMARC\">DMARC</a>. I was familiar with both, but hadn\u2019t actually set them up myself yet. Thankfully, <a href=\"https://github.com/PHPMailer/PHPMailer\">PHPMailer</a> seems to have pretty good DKIM support built-in, as well as an <a href=\"https://github.com/PHPMailer/PHPMailer/blob/master/examples/DKIM_gen_keys.phps\">example script</a> to set up the public/private key pair.</p>\n\n<p>I made a couple small changes in that example script. First I set up a full path to where I wanted the PEM files to be saved.</p>\n\n<pre>\ndefine('KEYFILE_DIR', '/replace/with/full/path/');\n$privatekeyfile = KEYFILE_DIR . $selector . '_dkim_private.pem';\n$publickeyfile = KEYFILE_DIR . $selector . '_dkim_public.pem';\n</pre>\n\n<p>I wanted the private key to be encrypted with a passphrase, so I changed the export-to-file line to this:</p>\n\n<pre>\nopenssl_pkey_export_to_file($pk, $privatekeyfile, $passphrase);</pre>\n\n<p>After setting the <code>$domain</code> and <code>$selector</code> variables, running the script created the public and private key files and displayed the information needed to set up the DNS record. The script chunked the public key into 255-character segments because some DNS systems don\u2019t like longer text. In our experience, though, we didn\u2019t need the chunking, so we used the public key with the PEM wrapper removed.</p>\n\n<p>Adding a few lines of DKIM configuration (from <a href=\"https://github.com/PHPMailer/PHPMailer/blob/master/examples/DKIM_sign.phps\">another of their example scripts</a>) was all I needed to include DKIM Signature header with each message. I tested with a message sent to a Gmail address and it showed it was signed by the domain. Viewing the full email headers, I could also see <code>dkim=pass</code> in a couple places. I also used the <a href=\"https://toolbox.googleapps.com/apps/messageheader/\">Google MessageHeader</a> tool to paste in the full email headers and it confirmed DKIM passed.</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": "39956264",
"_source": "95"
}
{
"type": "entry",
"author": {
"name": "Jared White",
"url": "https://jaredwhite.com/",
"photo": null
},
"url": "https://jaredwhite.com/articles/from-computer-to-person-networks",
"published": "2024-01-10T09:25:08-08:00",
"content": {
"html": "<img alt=\"\" src=\"https://res.cloudinary.com/mariposta/image/upload/w_1200,c_limit,q_65/wedding-at-cana.jpg\" /><h2>Compared with what\u2019s to come, everything you think you know about the \u201cfediverse\u201d to date is irrelevant.</h2>\n\n<p>From the very beginning of the networked computer age, the canonical node in this network has been a computer. I know such an assertion sounds absurdly obvious\u2014like <em>well duh Jared, everybody knows this!</em> But the key point you must grasp is that we\u2019re actually witnessing a major shift in progress, a migration if you will: from networks of computers to networks of people.</p>\n\n<p>The social \u201cnetworks\u201d to which we\u2019ve been accustomed to date weren\u2019t really networks in the true sense. Twitter in particular messed us up good\u2014we viewed our <code>@username</code> handles as nodes in a vast global network, but in reality there was only ever one \u201ccomputer\u201d anyone could ever access in this scheme: twitter.com. In other words, everyone was logging into a single server and doing their work there. Everyone was <code>@username@twitter.com</code>. That\u2019s not a network. That\u2019s a mainframe. Which also means <a href=\"https://jaredwhite.com/articles/elongate\">it was a single point of failure</a>.</p>\n\n<p>Back in the 2000s, the blogosphere <em>almost</em> became a true social network. person-a.com could \u201ctalk\u201d to person-b.com by linking to them from a blog post, and person-b.com could link back in response. We even had technologies like <a href=\"https://en.wikipedia.org/wiki/Trackback\">Trackbacks</a> so blogs (people) could get notified of all these mentions. Unfortunately blogs eventually got overrun by spammers and bad actors, and thus everyone disabled trackbacks. And with that, the dream of the blogosphere as a social network died.</p>\n\n<p>The ghost of Trackbacks was eventually resurrected as <a href=\"https://en.wikipedia.org/wiki/Webmention\">Webmentions</a>, but I would argue that by this point in time, the \u201cmainframes\u201d of social media had won. Blog posts were only useful as <em>one-way destinations</em>, with social media and search being the mechanism to direct people to these destinations. Nobody \u201clived\u201d on their blog anymore. They lived on social media, and directed people to their blog (to increasingly middling success).</p>\n\n<h3>Death of the Mainframe</h3>\n\n<p>One could argue that the web\u2019s singular focus on servers hosting <em>documents</em>, instead of servers hosting <em>people</em>, brought us to this point where social media ate online identity. Expecting \u201chomepages\u201d (documents) to represent people turned out to be partially (but not entirely) a mistake.</p>\n\n<p>What the web was missing, as it turns out, was a concept waiting in the wings all along\u2014and in the guise of an email address-like syntax no less.</p>\n\n<p>What the web needed was <code>@person@server.com</code>. <em>Viva la revolution!</em></p>\n\n<p>Taking a page from both email and social media, <strong>the web itself needed handles</strong>\u2014and not single-part handles like on the mainframes but two-part handles with the username at the front, and the server at the back. <strong>This subtle shift in thinking changes the whole nature of the game.</strong> Because now you have a true global network. Each \u201cserver\u201d (a cluster of servers under the hood perhaps, but that\u2019s an implementation detail) can now host a person\u2019s identity. That identity can then participate in the global network\u2019s <em>activities</em> over time\u2014whether that\u2019s sharing a link, posting a thought or a photo, publishing an article, upvoting a comment, you name it. (<strong>Aside:</strong> the importance of major organizations\u2019 ability to run these servers themselves and host/verify their members\u2019 identities in-house cannot be overstated. <a href=\"https://social.network.europa.eu/about\">Just ask the EU</a>.)</p>\n\n<p>In signing up to participate in this global user network, you have choice\u2014choice like you\u2019ve never had before. And the cool part is, if time passes and you come to realize you don\u2019t like the server you\u2019re on, you can move! If <code>@you@service-a.com</code> ends up sucking for some reason (enshittification, becomes a Nazi bar, owners decide to retire the server, etc.), you can simply migrate over to <code>@you@service-b.com</code>.</p>\n\n<p><strong>No more single point of failure. No more mainframe trapping you so you can never leave.</strong></p>\n\n<p>And if you want to get <em>really</em> fancy, the servers on this new user network don\u2019t just have to be social media as we\u2019ve known it. Yes, the Mastodons and the Pixelfeds of the world are super cool. But you know what\u2019s also cool?</p>\n\n<p>Your website <em>as</em> the server.</p>\n\n<p>Imagine if <code>@jared@jaredwhite.com</code> were itself an identity on this global network. You could follow it (me). You could receive updates. You could comment on those updates.</p>\n\n<p>I don\u2019t have this working today, because my site is a static site built with <a href=\"https://www.bridgetownrb.com/\">Bridgetown</a> and doesn\u2019t speak the ActivityPub protocol. But it\u2019s a future I can definitely imagine. Other folks are already doing this courtesy of new tools like <a href=\"https://wordpress.org/plugins/activitypub/\">WordPress\u2019 ActivityPub plugin</a>.</p>\n\n<p>Honestly, I don\u2019t mind that my primary identity is <a href=\"https://indieweb.social/@jaredwhite\">@jaredwhite@indieweb.social</a>. I like this server. I like the <a href=\"https://indieweb.social/@tchambers\">guy who runs it</a>. It\u2019s all good.</p>\n\n<h3>The Web is People</h3>\n\n<p>This global user network I keep referring to has been unofficially-officially branded as the <strong>Fediverse</strong> \u2014 but really it\u2019s just the World-Wide Web we all know and love with a few extra spices thrown into the mix. Instead of the web just being about documents, it\u2019s now about people too. Whereas <code>https://example.com/document.html</code> is a URL to a document, <code>@person@example.com</code> is a handle to a person (or a company, or an anonymous profile, or a bot, or a whatever). Both URLs and handles are now part and parcel of what makes the web <em>the web</em>. It\u2019s not one or the other. It\u2019s both.</p>\n\n<p><strong>And that is incredibly, incredibly exciting.</strong></p>\n\n<p>In <a href=\"https://rknight.me/blog/the-web-is-fantastic/\">The Web is Fantastic</a>, Robb Knight writes:</p>\n\n<blockquote>\n <p>Don\u2019t give Facebook and the rest of these clowns your content. Don\u2019t give them the time or your attention. Get a blog, a website, a Mastodon account, something you control, and share links to cool things you find.</p>\n</blockquote>\n\n<p>With the migration of more and more people to the person-based web, it opens up new opportunities to take the document-based web back to its roots and then push the envelope from there. <a href=\"https://cdevroe.com/2023/01/11/blogging-is-alive\">Blogging is back, baby</a>. Newsfeeds are still a thing and still going strong. Podcasts have <em>always</em> been <a href=\"https://jaredwhite.com/podcast/88/\">a pillar of the open web</a>. Video streaming is, well, <a href=\"https://jaredwhite.com/podcast/107/\">a work in progress</a>\u2026</p>\n\n<p>In <a href=\"https://cdevroe.com/2023/12/19/activitypub\">ActivityPub will cross the chasm in 2024</a>, Colin Devroe writes:</p>\n\n<blockquote>\n <p>In the near future, people won\u2019t need to know that these services use ActivityPub - they\u2019ll just browse around the web and follow whatever they want.</p>\n</blockquote>\n\n<p>This is exactly right. For a long time, Mastodon=ActivityPub and ActivityPub=Mastodon. Even smart people writing for tech publications would routinely make this honest mistake.</p>\n\n<p><strong>But the times they are a-changing.</strong> ActivityPub is \u201ceating the internet\u201d and as more and more fediverse services come online, mainstream internet users will take advantage of this new person-based web without even realizing it. (If you want to be mesmerized, <a href=\"https://meta.discourse.org/t/activitypub-plugin/266794/117\">watch this Discourse-Discourse-Mastodon federation demo</a>. Mind-blowing stuff!)</p>\n\n<p>Such a mass migration won\u2019t be easy though. There will be plenty of fits and starts and hiccups along the way. And even though we\u2019ve been shocked to see THE social media company, Meta, embrace ActivityPub as a key marketing feature of its new social media platform Threads, I suspect many large platform owners will be dragged kicking and screaming into this new web. They don\u2019t want a web which features <code>@person@server.com</code> at its core. They want <em>everyone</em> to remain <code>@person@shittymonopolisticsilo.com</code>.</p>\n\n<p>They want all the eyeballs.</p>\n\n<p>They want all the attention.</p>\n\n<p>They want all the commerce.</p>\n\n<p><strong>They want all the control.</strong></p>\n\n<p>But just as the document web was <em>never</em> about centralized control (the opposite in fact!) and we unfortunately got that anyway as a quirk of history, the person web has been designed from the get-go to offer decentralization as a feature not a bug.</p>\n\n<p>Some folks out there claim mainstream users don\u2019t care about decentralization. They don\u2019t mind if they\u2019re subject to monopolistic control. <strong>I beg to differ.</strong> Mainstream users aren\u2019t clamoring for decentralization because <em>they don\u2019t know it\u2019s possible</em>. Many of them have only ever experienced an anomalous centralized document web. In this world the \u201cweb\u201d is Facebook and Instagram and Google and YouTube and TikTok.</p>\n\n<p>But that\u2019s not a web. That\u2019s a tiny constellation of corporate mainframes. Why have we put up with it? We put up with it because the person web hadn\u2019t been invented yet. We couldn\u2019t imagine how a mass migration from a document-based web dominated by a few servers to a person-based web spread across countless servers would work, <em>if it could work at all</em>.</p>\n\n<p><strong>We\u2019re just starting to find out.</strong> And that\u2019s the immense opportunity we see before us in 2024.</p>\n\n<p><em>Everything you know about the fediverse to date is irrelevant compared with what\u2019s to come.</em></p>\n\n<p>That\u2019s why any noise you may be currently hearing about the relevance of any particular server or software on the network is just that. Noise. \u201cMainstream users don\u2019t care about Mastodon!\u201d someone will wail.</p>\n\n<p><strong>They don\u2019t need to.</strong></p>\n\n<p>That\u2019s the beauty of the fediverse. <em>Every</em> single SERVER. <em>Every</em> single SERVICE. <em>Every</em> single PERSON on this new person-based web. They all add value. <strong>Every single damn one.</strong></p>\n\n<p>It\u2019s exponential growth like we haven\u2019t seen since the very beginning of the web. And thus <em>you ain\u2019t seen nuthin\u2019 yet.</em></p>\n\n<p><strong>The migration has only just begun.</strong> \ud83d\ude80</p>\n\n<p><br /></p>\n\n<p><em>Featured painting: <a href=\"https://www.metmuseum.org/art/collection/search/436801\">The Marriage Feast at Cana by Juan de Flandes</a></em></p>\n\n\n\n <br /><p>\n \n <a href=\"https://jaredwhite.com/tag/fediverse\">#Fediverse</a>\n \n <a href=\"https://jaredwhite.com/tag/website\">#website</a>\n \n </p>",
"text": "Compared with what\u2019s to come, everything you think you know about the \u201cfediverse\u201d to date is irrelevant.\n\nFrom the very beginning of the networked computer age, the canonical node in this network has been a computer. I know such an assertion sounds absurdly obvious\u2014like well duh Jared, everybody knows this! But the key point you must grasp is that we\u2019re actually witnessing a major shift in progress, a migration if you will: from networks of computers to networks of people.\n\nThe social \u201cnetworks\u201d to which we\u2019ve been accustomed to date weren\u2019t really networks in the true sense. Twitter in particular messed us up good\u2014we viewed our @username handles as nodes in a vast global network, but in reality there was only ever one \u201ccomputer\u201d anyone could ever access in this scheme: twitter.com. In other words, everyone was logging into a single server and doing their work there. Everyone was @username@twitter.com. That\u2019s not a network. That\u2019s a mainframe. Which also means it was a single point of failure.\n\nBack in the 2000s, the blogosphere almost became a true social network. person-a.com could \u201ctalk\u201d to person-b.com by linking to them from a blog post, and person-b.com could link back in response. We even had technologies like Trackbacks so blogs (people) could get notified of all these mentions. Unfortunately blogs eventually got overrun by spammers and bad actors, and thus everyone disabled trackbacks. And with that, the dream of the blogosphere as a social network died.\n\nThe ghost of Trackbacks was eventually resurrected as Webmentions, but I would argue that by this point in time, the \u201cmainframes\u201d of social media had won. Blog posts were only useful as one-way destinations, with social media and search being the mechanism to direct people to these destinations. Nobody \u201clived\u201d on their blog anymore. They lived on social media, and directed people to their blog (to increasingly middling success).\n\nDeath of the Mainframe\n\nOne could argue that the web\u2019s singular focus on servers hosting documents, instead of servers hosting people, brought us to this point where social media ate online identity. Expecting \u201chomepages\u201d (documents) to represent people turned out to be partially (but not entirely) a mistake.\n\nWhat the web was missing, as it turns out, was a concept waiting in the wings all along\u2014and in the guise of an email address-like syntax no less.\n\nWhat the web needed was @person@server.com. Viva la revolution!\n\nTaking a page from both email and social media, the web itself needed handles\u2014and not single-part handles like on the mainframes but two-part handles with the username at the front, and the server at the back. This subtle shift in thinking changes the whole nature of the game. Because now you have a true global network. Each \u201cserver\u201d (a cluster of servers under the hood perhaps, but that\u2019s an implementation detail) can now host a person\u2019s identity. That identity can then participate in the global network\u2019s activities over time\u2014whether that\u2019s sharing a link, posting a thought or a photo, publishing an article, upvoting a comment, you name it. (Aside: the importance of major organizations\u2019 ability to run these servers themselves and host/verify their members\u2019 identities in-house cannot be overstated. Just ask the EU.)\n\nIn signing up to participate in this global user network, you have choice\u2014choice like you\u2019ve never had before. And the cool part is, if time passes and you come to realize you don\u2019t like the server you\u2019re on, you can move! If @you@service-a.com ends up sucking for some reason (enshittification, becomes a Nazi bar, owners decide to retire the server, etc.), you can simply migrate over to @you@service-b.com.\n\nNo more single point of failure. No more mainframe trapping you so you can never leave.\n\nAnd if you want to get really fancy, the servers on this new user network don\u2019t just have to be social media as we\u2019ve known it. Yes, the Mastodons and the Pixelfeds of the world are super cool. But you know what\u2019s also cool?\n\nYour website as the server.\n\nImagine if @jared@jaredwhite.com were itself an identity on this global network. You could follow it (me). You could receive updates. You could comment on those updates.\n\nI don\u2019t have this working today, because my site is a static site built with Bridgetown and doesn\u2019t speak the ActivityPub protocol. But it\u2019s a future I can definitely imagine. Other folks are already doing this courtesy of new tools like WordPress\u2019 ActivityPub plugin.\n\nHonestly, I don\u2019t mind that my primary identity is @jaredwhite@indieweb.social. I like this server. I like the guy who runs it. It\u2019s all good.\n\nThe Web is People\n\nThis global user network I keep referring to has been unofficially-officially branded as the Fediverse \u2014 but really it\u2019s just the World-Wide Web we all know and love with a few extra spices thrown into the mix. Instead of the web just being about documents, it\u2019s now about people too. Whereas https://example.com/document.html is a URL to a document, @person@example.com is a handle to a person (or a company, or an anonymous profile, or a bot, or a whatever). Both URLs and handles are now part and parcel of what makes the web the web. It\u2019s not one or the other. It\u2019s both.\n\nAnd that is incredibly, incredibly exciting.\n\nIn The Web is Fantastic, Robb Knight writes:\n\n\n Don\u2019t give Facebook and the rest of these clowns your content. Don\u2019t give them the time or your attention. Get a blog, a website, a Mastodon account, something you control, and share links to cool things you find.\n\n\nWith the migration of more and more people to the person-based web, it opens up new opportunities to take the document-based web back to its roots and then push the envelope from there. Blogging is back, baby. Newsfeeds are still a thing and still going strong. Podcasts have always been a pillar of the open web. Video streaming is, well, a work in progress\u2026\n\nIn ActivityPub will cross the chasm in 2024, Colin Devroe writes:\n\n\n In the near future, people won\u2019t need to know that these services use ActivityPub - they\u2019ll just browse around the web and follow whatever they want.\n\n\nThis is exactly right. For a long time, Mastodon=ActivityPub and ActivityPub=Mastodon. Even smart people writing for tech publications would routinely make this honest mistake.\n\nBut the times they are a-changing. ActivityPub is \u201ceating the internet\u201d and as more and more fediverse services come online, mainstream internet users will take advantage of this new person-based web without even realizing it. (If you want to be mesmerized, watch this Discourse-Discourse-Mastodon federation demo. Mind-blowing stuff!)\n\nSuch a mass migration won\u2019t be easy though. There will be plenty of fits and starts and hiccups along the way. And even though we\u2019ve been shocked to see THE social media company, Meta, embrace ActivityPub as a key marketing feature of its new social media platform Threads, I suspect many large platform owners will be dragged kicking and screaming into this new web. They don\u2019t want a web which features @person@server.com at its core. They want everyone to remain @person@shittymonopolisticsilo.com.\n\nThey want all the eyeballs.\n\nThey want all the attention.\n\nThey want all the commerce.\n\nThey want all the control.\n\nBut just as the document web was never about centralized control (the opposite in fact!) and we unfortunately got that anyway as a quirk of history, the person web has been designed from the get-go to offer decentralization as a feature not a bug.\n\nSome folks out there claim mainstream users don\u2019t care about decentralization. They don\u2019t mind if they\u2019re subject to monopolistic control. I beg to differ. Mainstream users aren\u2019t clamoring for decentralization because they don\u2019t know it\u2019s possible. Many of them have only ever experienced an anomalous centralized document web. In this world the \u201cweb\u201d is Facebook and Instagram and Google and YouTube and TikTok.\n\nBut that\u2019s not a web. That\u2019s a tiny constellation of corporate mainframes. Why have we put up with it? We put up with it because the person web hadn\u2019t been invented yet. We couldn\u2019t imagine how a mass migration from a document-based web dominated by a few servers to a person-based web spread across countless servers would work, if it could work at all.\n\nWe\u2019re just starting to find out. And that\u2019s the immense opportunity we see before us in 2024.\n\nEverything you know about the fediverse to date is irrelevant compared with what\u2019s to come.\n\nThat\u2019s why any noise you may be currently hearing about the relevance of any particular server or software on the network is just that. Noise. \u201cMainstream users don\u2019t care about Mastodon!\u201d someone will wail.\n\nThey don\u2019t need to.\n\nThat\u2019s the beauty of the fediverse. Every single SERVER. Every single SERVICE. Every single PERSON on this new person-based web. They all add value. Every single damn one.\n\nIt\u2019s exponential growth like we haven\u2019t seen since the very beginning of the web. And thus you ain\u2019t seen nuthin\u2019 yet.\n\nThe migration has only just begun. \ud83d\ude80\n\n\n\n\nFeatured painting: The Marriage Feast at Cana by Juan de Flandes\n\n\n\n \n\n \n #Fediverse\n \n #website"
},
"name": "The Present Migration from Computer Networks to Person Networks",
"post-type": "article",
"_id": "39952973",
"_source": "2783"
}
{
"type": "entry",
"published": "2024-01-10T09:14:48-08:00",
"url": "https://beesbuzz.biz/blog/4447-Rabbit-R1",
"name": "Rabbit R1",
"author": {
"type": "card",
"name": "fluffy",
"url": "https://beesbuzz.biz/",
"photo": "https://beesbuzz.biz/static/headshot.jpg"
},
"post-type": "article",
"_id": "39951753",
"_source": "2778"
}
{
"type": "entry",
"published": "2024-01-09T22:43:10-08:00",
"url": "https://beesbuzz.biz/blog/10668-Fursona-origins",
"name": "Fursona origins",
"author": {
"type": "card",
"name": "fluffy",
"url": "https://beesbuzz.biz/",
"photo": "https://beesbuzz.biz/static/headshot.jpg"
},
"post-type": "article",
"_id": "39946974",
"_source": "2778"
}
Watched 1946: The Mistranslation That Shifted Culture, a documentary about how the word “homosexual” didn’t appear in the Bible until 1946. It was really good, as expected. I hope when it gets wider release it will encourage more Christians to re-evaluate how we treat LGBTQ people.
“In the teachings of Jesus, he never made any qualifications about ‘God loves you if...’ Nothing is ever mentioned about sexual orientation. And God doesn’t ask. That part is just irrelevant. We’re people. We’re children of God.”
— Reverend David S. Fearon
Kathy Baldock plays a big part in this documentary. For a deeper dive, I recommend her 2-part video, “Unclobbering the Tangled Mess.”
{
"type": "entry",
"published": "2024-01-08 19:58-0800",
"url": "https://gregorlove.com/2024/01/watched-1946/",
"category": [
"movies"
],
"content": {
"text": "Watched 1946: The Mistranslation That Shifted Culture, a documentary about how the word \u201chomosexual\u201d didn\u2019t appear in the Bible until 1946. It was really good, as expected. I hope when it gets wider release it will encourage more Christians to re-evaluate how we treat LGBTQ people.\n\n\n\u201cIn the teachings of Jesus, he never made any qualifications about \u2018God loves you if...\u2019 Nothing is ever mentioned about sexual orientation. And God doesn\u2019t ask. That part is just irrelevant. We\u2019re people. We\u2019re children of God.\u201d\n\u2014 Reverend David S. Fearon\n\n\nKathy Baldock plays a big part in this documentary. For a deeper dive, I recommend her 2-part video, \u201cUnclobbering the Tangled Mess.\u201d",
"html": "<p>Watched <a href=\"https://www.1946themovie.com/\">1946: The Mistranslation That Shifted Culture</a>, a documentary about how the word \u201chomosexual\u201d didn\u2019t appear in the Bible until 1946. It was really good, as expected. I hope when it gets wider release it will encourage more Christians to re-evaluate how we treat LGBTQ people.</p>\n\n<blockquote class=\"h-cite\">\n<p class=\"p-content\">\u201cIn the teachings of Jesus, he never made any qualifications about \u2018God loves you <i>if</i>...\u2019 Nothing is ever mentioned about sexual orientation. And God doesn\u2019t ask. That part is just irrelevant. We\u2019re people. We\u2019re children of God.\u201d</p>\n\u2014 <span class=\"p-author\">Reverend David S. Fearon</span>\n</blockquote>\n\n<p><a href=\"https://canyonwalkerconnections.com/\">Kathy Baldock</a> plays a big part in this documentary. For a deeper dive, I recommend her 2-part video, \u201c<a href=\"https://youtu.be/MBwajcvZtqw?si=uLGMmLcjfIJTEQoB\">Unclobbering the Tangled Mess</a>.\u201d</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": "39935963",
"_source": "95"
}
{
"type": "entry",
"author": {
"name": "Jared White",
"url": "https://jaredwhite.com/",
"photo": null
},
"url": "https://jaredwhite.com/pictures/20240108/that-night-feeling",
"published": "2024-01-08T11:10:54-08:00",
"content": {
"html": "<img alt=\"\" src=\"https://pxscdn.com/public/m/_v2/4580/3b17271c9-2ea36d/E4VE7U6xt3ZQ/ddPEfv8cGTrjDhKcY5gbBzRtjRbfryj5pmGvDQlR.jpg\" /><p>That night feeling. \ud83c\udf1a</p>\n\n<p><a href=\"https://jaredwhite.com/tag/portland\">#Portland</a> <a href=\"https://jaredwhite.com/tag/oregonexplored\">#OregonExplored</a> <a href=\"https://jaredwhite.com/tag/nikonzfc\">#NikonZfc</a></p>",
"text": "That night feeling. \ud83c\udf1a\n\n#Portland #OregonExplored #NikonZfc"
},
"post-type": "note",
"_id": "39934553",
"_source": "2783"
}
{
"type": "entry",
"author": {
"name": null,
"url": "https://herestomwiththeweather.com/",
"photo": null
},
"url": "https://herestomwiththeweather.com/2024/01/08/otisburg.social-move-post-mortem/",
"published": "2024-01-08T00:38:16+00:00",
"content": {
"html": "<p>I moved my account from <a href=\"https://mastodon.social/@herestomwiththeweather\">@herestomwiththeweather@mastodon.social</a> to <a href=\"https://otisburg.social/actor/tom@herestomwiththeweather.com\">@tom@herestomwiththeweather.com</a> on January 2nd. In the spirit of learning from <a href=\"https://github.com/danluu/post-mortems/\">post-mortems</a>, I am documenting a few mistakes I made.</p>\n\n<p>One of the main motivations for the move was that <a href=\"https://github.com/herestomwiththeweather/herestomwiththeweather.github.io/commit/16a5882581d2bfb044a6537a629033698adc80a7\">over a year ago</a>, I had configured webfinger on this site to point to the account I had on <a href=\"https://mastodon.social/\">mastodon.social</a>. But once someone has found me on mastodon, I would from then on be known by my mastodon identifier rather than the identifier with my personal domain. If I lost access to that particular mastodon account for whatever reason, I would be unreachable by that mastodon identifier. However, as I described in <a href=\"https://herestomwiththeweather.com/2023/09/22/webfinger-expectations/\">Webfinger Expectations</a>, if my webfinger configuration points me to a server that will allow me to participate on the <a href=\"https://en.wikipedia.org/wiki/Fediverse\">fediverse</a> with my own personal identifier using my own domain, then in theory, if I lose access to the account on that server, I can swap it out with another similar server and be reachable again with my personal identifier. So, last week <a href=\"https://docs.joinmastodon.org/user/moving/\">I moved</a> to <a href=\"https://otisburg.social/\">Otisburg.social</a> which is running what I consider a minimum viable activitypub server called <a href=\"https://github.com/herestomwiththeweather/irwin\">Irwin</a>. As it is experimental, I am the only user on the server.</p>\n\n<p>So what did I screw up? I didn\u2019t plan for two things. Both are related to the diversity of software and configurations on the Fediverse.</p>\n\n<p>First, although I was vaguely aware of the optional <a href=\"https://docs.joinmastodon.org/admin/config/#authorized_fetch\">Authorized Fetch</a> mastodon feature, I didn\u2019t anticipate that it would prevent me from re-following some of my followers. Prior to the migration, I assumed this feature would not be enabled on any of the servers the people I followed were using. I quickly realized that I could not re-follow people on 3 servers which had this feature enabled. So, I lost contact with the people on those servers for a few days until I <a href=\"https://github.com/herestomwiththeweather/irwin/commit/ba5bd101a5870c50fef8c0312118ae792e85f20e\">fixed it</a> by also signing GET requests in addition to POST requests.</p>\n\n<p>Second, I didn\u2019t adequately prepare for the possibility that some of my followers would not automatically move to the new server. Of 96 followers, I had about 15 that did not successfully re-follow. It seems that some of these failed because they were not on a Mastodon server and their server did not adequately handle the <a href=\"https://docs.joinmastodon.org/spec/activitypub/#Move\">Move</a> activity sent by mastodon.social. Unfortunately, although mastodon allowed me to download a csv file of the people I followed, it did not provide a link to download a file of followers so I don\u2019t know everyone I lost during the move.</p>\n\n<p>Otherwise, the move went well and it is a great feature and I\u2019m glad to see <a href=\"https://w3c.github.io/activitypub/data-portability-report.html\">an effort underway to standardize it</a>.</p>\n\n<p>One unresolved issue is that when someone visits my profile on a mastodon site, selecting \u201copen original page\u201d will fetch <strong>https://otisburg.social/actor/tom@herestomwiththeweather.com</strong> and the user would expect to see my status updates or toots or whatever you call them. However, currently that url redirects to this website and activitypub status updates are not available here.</p>",
"text": "I moved my account from @herestomwiththeweather@mastodon.social to @tom@herestomwiththeweather.com on January 2nd. In the spirit of learning from post-mortems, I am documenting a few mistakes I made.\n\nOne of the main motivations for the move was that over a year ago, I had configured webfinger on this site to point to the account I had on mastodon.social. But once someone has found me on mastodon, I would from then on be known by my mastodon identifier rather than the identifier with my personal domain. If I lost access to that particular mastodon account for whatever reason, I would be unreachable by that mastodon identifier. However, as I described in Webfinger Expectations, if my webfinger configuration points me to a server that will allow me to participate on the fediverse with my own personal identifier using my own domain, then in theory, if I lose access to the account on that server, I can swap it out with another similar server and be reachable again with my personal identifier. So, last week I moved to Otisburg.social which is running what I consider a minimum viable activitypub server called Irwin. As it is experimental, I am the only user on the server.\n\nSo what did I screw up? I didn\u2019t plan for two things. Both are related to the diversity of software and configurations on the Fediverse.\n\nFirst, although I was vaguely aware of the optional Authorized Fetch mastodon feature, I didn\u2019t anticipate that it would prevent me from re-following some of my followers. Prior to the migration, I assumed this feature would not be enabled on any of the servers the people I followed were using. I quickly realized that I could not re-follow people on 3 servers which had this feature enabled. So, I lost contact with the people on those servers for a few days until I fixed it by also signing GET requests in addition to POST requests.\n\nSecond, I didn\u2019t adequately prepare for the possibility that some of my followers would not automatically move to the new server. Of 96 followers, I had about 15 that did not successfully re-follow. It seems that some of these failed because they were not on a Mastodon server and their server did not adequately handle the Move activity sent by mastodon.social. Unfortunately, although mastodon allowed me to download a csv file of the people I followed, it did not provide a link to download a file of followers so I don\u2019t know everyone I lost during the move.\n\nOtherwise, the move went well and it is a great feature and I\u2019m glad to see an effort underway to standardize it.\n\nOne unresolved issue is that when someone visits my profile on a mastodon site, selecting \u201copen original page\u201d will fetch https://otisburg.social/actor/tom@herestomwiththeweather.com and the user would expect to see my status updates or toots or whatever you call them. However, currently that url redirects to this website and activitypub status updates are not available here."
},
"name": "Otisburg.social move post-mortem",
"post-type": "article",
"_id": "39927748",
"_source": "246"
}
{
"type": "entry",
"published": "2024-01-07T21:44:30-08:00",
"url": "https://beesbuzz.biz/blog/11867-Closer-in-history",
"name": "Closer in history",
"author": {
"type": "card",
"name": "fluffy",
"url": "https://beesbuzz.biz/",
"photo": "https://beesbuzz.biz/static/headshot.jpg"
},
"post-type": "article",
"_id": "39925228",
"_source": "2778"
}
{
"type": "entry",
"published": "2024-01-07T20:18:20-08:00",
"url": "https://beesbuzz.biz/blog/8166-Taking-another-Mastodon-break",
"name": "Taking another Mastodon break",
"author": {
"type": "card",
"name": "fluffy",
"url": "https://beesbuzz.biz/",
"photo": "https://beesbuzz.biz/static/headshot.jpg"
},
"post-type": "article",
"_id": "39924790",
"_source": "2778"
}
{
"type": "entry",
"published": "2024-01-07 14:13-0800",
"url": "https://gregorlove.com/2024/01/reducing-native-comment-spam/",
"syndication": [
"https://news.indieweb.org/en"
],
"name": "Reducing Native Comment Spam",
"content": {
"text": "I made some improvements to native comments on my site today. I have had Akismet running for several years now and it\u2019s worked well at preventing about 98% of spam comments. A few would still get through each week. They were never displayed publicly, but I would still need to go through the moderation queue to delete them.\n\nAbout six months ago I decided to start reporting those false negatives to Akismet since their API supports that. I hoped it would help improve their algorithm and fewer spam comments would slip through. I haven\u2019t kept any stats, but it doesn\u2019t feel like the number slipping through has decreased, unfortunately.\n\nI noticed a good portion of these spam comments were to old URLs, like this one from 2011 about fixing a commenting issue. (Ironic?) I figured closing the comment form after one year would be a good way to reduce a lot of spam. I doubt many humans intend to leave a comment on that post here in 2024. There may be some rare cases where an actual human wants to comment on an older post, so I decided to still allow comments if you are signed in. Last year, I introduced a passwordless sign-in system, so I was able to use that as-is and display a message directing people there.\n\nOld posts will still accept Webmentions, of course. There is always the contact page, too. Here is the message that is displayed on old posts when you\u2019re not signed in:\n\n\nThis is an older post, so the public comment form is now closed. You can still use the form above to send me the link of your reply or sign in with your email to leave a comment. You can always send me a message, too.",
"html": "<p>I made some improvements to native comments on my site today. I have had <a href=\"https://akismet.com\">Akismet</a> running for several years now and it\u2019s worked well at preventing about 98% of spam comments. A few would still get through each week. They were never displayed publicly, but I would still need to go through the moderation queue to delete them.</p>\n\n<p>About six months ago I decided to start reporting those false negatives to Akismet since their API supports that. I hoped it would help improve their algorithm and fewer spam comments would slip through. I haven\u2019t kept any stats, but it doesn\u2019t feel like the number slipping through has decreased, unfortunately.</p>\n\n<p>I noticed a good portion of these spam comments were to old URLs, like <a href=\"https://gregorlove.com/2011/10/comment-issue/\">this one</a> from 2011 about fixing a commenting issue. (Ironic?) I figured closing the comment form after one year would be a good way to reduce a lot of spam. I doubt many humans intend to leave a comment on that post here in 2024. There may be some rare cases where an actual human wants to comment on an older post, so I decided to still allow comments if you are signed in. Last year, I introduced a <a href=\"https://gregorlove.com/2023/01/site-updates-for-the-new-year/\">passwordless sign-in system</a>, so I was able to use that as-is and display a message directing people there.</p>\n\n<p>Old posts will still accept <a href=\"https://webmention.net/\">Webmentions</a>, of course. There is always the contact page, too. Here is the message that is displayed on old posts when you\u2019re not signed in:</p>\n\n<blockquote>\n<p>This is an older post, so the public comment form is now closed. You can still use the form above to send me the link of your reply or <a href=\"https://gregorlove.com/profile/\">sign in with your email</a> to leave a comment. You can always <a href=\"https://gregorlove.com/contact/\">send me a message</a>, too.</p>\n</blockquote>"
},
"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": "article",
"_id": "39923857",
"_source": "95"
}

Had a cozy time hanging at my local WeWork in #Portland. This lounge space was very colorful! #NikonZfc #OregonExplored #Lifehacks
{
"type": "entry",
"author": {
"name": "Jared White",
"url": "https://jaredwhite.com/",
"photo": null
},
"url": "https://jaredwhite.com/pictures/20240105/had-a-cozy-time-hanging-at-my-local-wework-in",
"published": "2024-01-05T08:27:46-08:00",
"content": {
"html": "<img alt=\"\" src=\"https://pxscdn.com/public/m/_v2/4580/3b17271c9-2ea36d/SQFfdqn4uVc3/7IOCHngd3vnyOD9XQqu42qmuRGYhVQRQjC7rS3ID.jpg\" /><p>Had a cozy time hanging at my local WeWork in <a href=\"https://jaredwhite.com/tag/portland\">#Portland</a>. This lounge space was very colorful! <a href=\"https://jaredwhite.com/tag/nikonzfc\">#NikonZfc</a> <a href=\"https://jaredwhite.com/tag/oregonexplored\">#OregonExplored</a> <a href=\"https://jaredwhite.com/tag/lifehacks\">#Lifehacks</a></p>",
"text": "Had a cozy time hanging at my local WeWork in #Portland. This lounge space was very colorful! #NikonZfc #OregonExplored #Lifehacks"
},
"post-type": "note",
"_id": "39908364",
"_source": "2783"
}

Somebody just got a brand new prime lens, the NIKKOR Z 40mm f/2, and is very happy with it!
That’s me. I’m the one who just got the new lens. 😆🤘 #Portland #OregonExplored #NikonZfc
{
"type": "entry",
"author": {
"name": "Jared White",
"url": "https://jaredwhite.com/",
"photo": null
},
"url": "https://jaredwhite.com/pictures/20240104/somebody-just-got-a-brand-new-prime-lens-the-nikkor",
"published": "2024-01-04T09:28:45-08:00",
"content": {
"html": "<img alt=\"\" src=\"https://pxscdn.com/public/m/_v2/4580/3b17271c9-2ea36d/ikMQF0ekz7He/474n0IBvUNpdbQ9RzVAgbOKFnUGfusmQbXIES11l.jpg\" /><p>Somebody just got a brand new prime lens, the NIKKOR Z 40mm f/2, and is very happy with it!</p>\n\n<p>That\u2019s me. I\u2019m the one who just got the new lens. \ud83d\ude06\ud83e\udd18 <a href=\"https://jaredwhite.com/tag/portland\">#Portland</a> <a href=\"https://jaredwhite.com/tag/oregonexplored\">#OregonExplored</a> <a href=\"https://jaredwhite.com/tag/nikonzfc\">#NikonZfc</a></p>",
"text": "Somebody just got a brand new prime lens, the NIKKOR Z 40mm f/2, and is very happy with it!\n\nThat\u2019s me. I\u2019m the one who just got the new lens. \ud83d\ude06\ud83e\udd18 #Portland #OregonExplored #NikonZfc"
},
"post-type": "note",
"_id": "39898142",
"_source": "2783"
}

Not sure this is how January 1 should look in the Pacific Northwest, but I’m certainly enjoying it! #Portland #OregonExplored #iPhonePro
{
"type": "entry",
"author": {
"name": "Jared White",
"url": "https://jaredwhite.com/",
"photo": null
},
"url": "https://jaredwhite.com/pictures/20240101/not-sure-this-is-how-january-1-should-look-in",
"published": "2024-01-01T11:52:19-08:00",
"content": {
"html": "<img alt=\"\" src=\"https://pxscdn.com/public/m/_v2/4580/3b17271c9-2ea36d/4UDfgJ2ib3Fx/Jyfit8XjbPZBdJqQhLu2rc1RssqBdmA6sEE1xMV6.jpg\" /><p>Not sure this is how January 1 should look in the Pacific Northwest, but I\u2019m certainly enjoying it! <a href=\"https://jaredwhite.com/tag/portland\">#Portland</a> <a href=\"https://jaredwhite.com/tag/oregonexplored\">#OregonExplored</a> <a href=\"https://jaredwhite.com/tag/iphonepro\">#iPhonePro</a></p>",
"text": "Not sure this is how January 1 should look in the Pacific Northwest, but I\u2019m certainly enjoying it! #Portland #OregonExplored #iPhonePro"
},
"post-type": "note",
"_id": "39898143",
"_source": "2783"
}

Well gosh. I don’t know PNW, I don’t know if I can handle a mid-70s° sunny October day like this. 🤷🏻♂️
#Portland #OregonExplored #iPhonePro
{
"type": "entry",
"author": {
"name": "Jared White",
"url": "https://jaredwhite.com/",
"photo": null
},
"url": "https://jaredwhite.com/pictures/20231008/well-gosh-i-dont-know-pnw",
"published": "2023-10-08T13:41:56-07:00",
"content": {
"html": "<img alt=\"\" src=\"https://pxscdn.com/public/m/_v2/4580/f1538e3aa-7b3151/RZmFTm0niZ5K/Qa1Hyc2yQnrlvBh3MLNfraYsFWZQxtII5ohvU67a.jpg\" /><p>Well gosh. I don\u2019t know PNW, I don\u2019t know if I can handle a mid-70s\u00b0 sunny October day like this. \ud83e\udd37\ud83c\udffb\u200d\u2642\ufe0f<br /><a href=\"https://jaredwhite.com/tag/portland\">#Portland</a> <a href=\"https://jaredwhite.com/tag/oregonexplored\">#OregonExplored</a> <a href=\"https://jaredwhite.com/tag/iphonepro\">#iPhonePro</a></p>",
"text": "Well gosh. I don\u2019t know PNW, I don\u2019t know if I can handle a mid-70s\u00b0 sunny October day like this. \ud83e\udd37\ud83c\udffb\u200d\u2642\ufe0f\n#Portland #OregonExplored #iPhonePro"
},
"post-type": "note",
"_id": "39898144",
"_source": "2783"
}

Views of the KOIN Tower, that pyramid-like building everyone instantly notices about the #Portland skyline. #OregonExplored #iPhonePro
{
"type": "entry",
"author": {
"name": "Jared White",
"url": "https://jaredwhite.com/",
"photo": null
},
"url": "https://jaredwhite.com/pictures/20230805/views-of-the-koin-tower-that-pyramid-like-building-everyone-instantly",
"published": "2023-08-05T07:56:24-07:00",
"content": {
"html": "<img alt=\"\" src=\"https://pxscdn.com/public/m/_v2/4580/c51ea9690-856390/S1Xw7lPI32ug/7JhNqG5BRfDBtbvAJOFAh6Ef56rEAaVWe1BMuPCc.jpg\" /><p>Views of the KOIN Tower, that pyramid-like building everyone instantly notices about the <a href=\"https://jaredwhite.com/tag/portland\">#Portland</a> skyline. <a href=\"https://jaredwhite.com/tag/oregonexplored\">#OregonExplored</a> <a href=\"https://jaredwhite.com/tag/iphonepro\">#iPhonePro</a></p>",
"text": "Views of the KOIN Tower, that pyramid-like building everyone instantly notices about the #Portland skyline. #OregonExplored #iPhonePro"
},
"post-type": "note",
"_id": "39898145",
"_source": "2783"
}

Wind Turbine near Ellensburg, WA
(a sort of PNW landscape you might not expect)
#WashingtonExplored #iPhonePro
{
"type": "entry",
"author": {
"name": "Jared White",
"url": "https://jaredwhite.com/",
"photo": null
},
"url": "https://jaredwhite.com/pictures/20230709/wind-turbine-near-ellensburg-wa",
"published": "2023-07-09T09:24:45-07:00",
"content": {
"html": "<img alt=\"\" src=\"https://pxscdn.com/public/m/_v2/4580/bf0f52ff2-92677b/JyzkXvdiv27M/NpzJK85d4hZmZ96B2taSmzCcgodGwtqbdw8iYdFk.jpg\" /><p>Wind Turbine near Ellensburg, WA<br />(a sort of PNW landscape you might not expect)<br /><a href=\"https://jaredwhite.com/tag/washingtonexplored\">#WashingtonExplored</a> <a href=\"https://jaredwhite.com/tag/iphonepro\">#iPhonePro</a></p>",
"text": "Wind Turbine near Ellensburg, WA\n(a sort of PNW landscape you might not expect)\n#WashingtonExplored #iPhonePro"
},
"post-type": "note",
"_id": "39898146",
"_source": "2783"
}
{
"type": "entry",
"published": "2024-01-04T14:00:37-0500",
"summary": "\ud83d\udccd Checked in at New York Transit Museum, Brooklyn, NY.",
"url": "https://martymcgui.re/2024/01/04/140037/",
"photo": [
"https://res.cloudinary.com/schmarty/image/fetch/w_960,c_fill/https://fastly.4sqi.net/img/general/original/62057_V3gEJx0NfOotHGiQfL2g9QeAei200SgDRDvfKMRI9Gc.jpg",
"https://res.cloudinary.com/schmarty/image/fetch/w_960,c_fill/https://fastly.4sqi.net/img/general/original/62057_TTMNwf-I-Iy0i5-MrR0QaOPB6gCpPscyQu8uRXWWEm4.jpg",
"https://res.cloudinary.com/schmarty/image/fetch/w_960,c_fill/https://fastly.4sqi.net/img/general/original/62057_lZyg5OOEOimwMMeNxEzbDxMo96gcBRsvMVte6-jyGOs.jpg"
],
"syndication": [
"https://www.swarmapp.com/user/62057/checkin/65970055bd9474616db8d012"
],
"author": {
"type": "card",
"name": "Marty McGuire",
"url": "https://martymcgui.re/",
"photo": "https://martymcgui.re/images/logo.jpg"
},
"checkin": {
"type": "card",
"name": "New York Transit Museum",
"latitude": "40.690469279898",
"longitude": "-73.98996267065",
"locality": "Brooklyn",
"region": "NY",
"url": "https://foursquare.com/v/45727340f964a520733e1fe3"
},
"post-type": "checkin",
"_id": "39895431",
"_source": "175"
}
31 days of #IndieWeb gifts: the _2023 IndieWeb Gift Calendar_ (https://indieweb.org/2023-12-indieweb-gift-calendar) wrapped up a full month of IndieWeb-related creations & updates from the community (and sometimes beyond) to everyone who wants to improve their #IndieWeb experience.
From plugins & libraries, to tools & services, to events & meetups, to web components & wiki pages, and blog posts & newsletters, there was something for everyone.
Some numbers:
🎁 67 total gifts
📄 32 new IndieWeb wiki pages
📜 7 posts on improving blogs, IndieWeb specs, and event summaries
💻 6 Homebrew Website Club online meetups
📫 5 This Week In The IndieWeb newsletters
🧱 4 library updates: new web components, #microformats2 parser update
🌉 3 Bridgy Fed updates & improvements
🧩 2 plugin updates: #Elgg IndieWeb & #WordPress #IndieAuth
🎪 1 #IndieWebCamp San Diego (2 days!)
📚 1 indiebookclub new year in review overview feature
📽 1 IndieWeb movie viewings aggregator
🧶 1 #Threads federating out #ActivityPub (followable by #BridgyFed)
Gift were shared by:
👥 20 individuals
🏢 1 company
I compiled these numbers by hand. Let me know if you see any errors. There are many more potential stats like:
* average (mean and median) number of gifts per contributor
* how many edits to the Gift Calendar wiki page
* how many different editors of the wiki page
* average (mean and median) number of edits per editor
I’ll leave those as exercises for others if they wish!
This is post 2 of #100PostsOfIndieWeb. #100Posts
← https://tantek.com/2024/001/t1/restarting-100days-indieweb-gift-calendar
→ 🔮
{
"type": "entry",
"published": "2024-01-03 16:09-0800",
"url": "https://tantek.com/2024/003/t1/2023-indieweb-gift-calendar-numbers",
"category": [
"IndieWeb",
"microformats2",
"Elgg",
"WordPress",
"IndieAuth",
"IndieWebCamp",
"Threads",
"ActivityPub",
"BridgyFed",
"100PostsOfIndieWeb",
"100Posts"
],
"content": {
"text": "31 days of #IndieWeb gifts: the _2023 IndieWeb Gift Calendar_ (https://indieweb.org/2023-12-indieweb-gift-calendar) wrapped up a full month of IndieWeb-related creations & updates from the community (and sometimes beyond) to everyone who wants to improve their #IndieWeb experience. \n\nFrom plugins & libraries, to tools & services, to events & meetups, to web components & wiki pages, and blog posts & newsletters, there was something for everyone.\n\nSome numbers:\n\ud83c\udf81 67 total gifts\n\ud83d\udcc4 32 new IndieWeb wiki pages\n\ud83d\udcdc \u00a07 posts on improving blogs, IndieWeb specs, and event summaries\n\ud83d\udcbb \u00a06 Homebrew Website Club online meetups\n\ud83d\udceb \u00a05 This Week In The IndieWeb newsletters\n\ud83e\uddf1 \u00a04 library updates: new web components, #microformats2 parser update \n\ud83c\udf09 \u00a03 Bridgy Fed updates & improvements \n\ud83e\udde9 \u00a02 plugin updates: #Elgg IndieWeb & #WordPress #IndieAuth\n\ud83c\udfaa \u00a01 #IndieWebCamp San Diego (2 days!)\n\ud83d\udcda \u00a01 indiebookclub new year in review overview feature\n\ud83d\udcfd \u00a01 IndieWeb movie viewings aggregator\n\ud83e\uddf6 \u00a01 #Threads federating out #ActivityPub (followable by #BridgyFed)\n\nGift were shared by:\n\ud83d\udc65 20 individuals\n\ud83c\udfe2 \u00a01 company\n\nI compiled these numbers by hand. Let me know if you see any errors. There are many more potential stats like:\n* average (mean and median) number of gifts per contributor\n* how many edits to the Gift Calendar wiki page\n* how many different editors of the wiki page\n* average (mean and median) number of edits per editor\nI\u2019ll leave those as exercises for others if they wish!\n\nThis is post 2 of #100PostsOfIndieWeb. #100Posts\n\n\u2190 https://tantek.com/2024/001/t1/restarting-100days-indieweb-gift-calendar\n\u2192 \ud83d\udd2e",
"html": "31 days of #<span class=\"p-category\">IndieWeb</span> gifts: the _2023 IndieWeb Gift Calendar_ (<a href=\"https://indieweb.org/2023-12-indieweb-gift-calendar\">https://indieweb.org/2023-12-indieweb-gift-calendar</a>) wrapped up a full month of IndieWeb-related creations & updates from the community (and sometimes beyond) to everyone who wants to improve their #<span class=\"p-category\">IndieWeb</span> experience. <br /><br />From plugins & libraries, to tools & services, to events & meetups, to web components & wiki pages, and blog posts & newsletters, there was something for everyone.<br /><br />Some numbers:<br />\ud83c\udf81 67 total gifts<br />\ud83d\udcc4 32 new IndieWeb wiki pages<br />\ud83d\udcdc \u00a07 posts on improving blogs, IndieWeb specs, and event summaries<br />\ud83d\udcbb \u00a06 Homebrew Website Club online meetups<br />\ud83d\udceb \u00a05 This Week In The IndieWeb newsletters<br />\ud83e\uddf1 \u00a04 library updates: new web components, #<span class=\"p-category\">microformats2</span> parser update <br />\ud83c\udf09 \u00a03 Bridgy Fed updates & improvements <br />\ud83e\udde9 \u00a02 plugin updates: #<span class=\"p-category\">Elgg</span> IndieWeb & #<span class=\"p-category\">WordPress</span> #<span class=\"p-category\">IndieAuth</span><br />\ud83c\udfaa \u00a01 #<span class=\"p-category\">IndieWebCamp</span> San Diego (2 days!)<br />\ud83d\udcda \u00a01 indiebookclub new year in review overview feature<br />\ud83d\udcfd \u00a01 IndieWeb movie viewings aggregator<br />\ud83e\uddf6 \u00a01 #<span class=\"p-category\">Threads</span> federating out #<span class=\"p-category\">ActivityPub</span> (followable by #<span class=\"p-category\">BridgyFed</span>)<br /><br />Gift were shared by:<br />\ud83d\udc65 20 individuals<br />\ud83c\udfe2 \u00a01 company<br /><br />I compiled these numbers by hand. Let me know if you see any errors. There are many more potential stats like:<br />* average (mean and median) number of gifts per contributor<br />* how many edits to the Gift Calendar wiki page<br />* how many different editors of the wiki page<br />* average (mean and median) number of edits per editor<br />I\u2019ll leave those as exercises for others if they wish!<br /><br />This is post 2 of #<span class=\"p-category\">100PostsOfIndieWeb</span>. #<span class=\"p-category\">100Posts</span><br /><br />\u2190 <a href=\"https://tantek.com/2024/001/t1/restarting-100days-indieweb-gift-calendar\">https://tantek.com/2024/001/t1/restarting-100days-indieweb-gift-calendar</a><br />\u2192 \ud83d\udd2e"
},
"author": {
"type": "card",
"name": "Tantek \u00c7elik",
"url": "https://tantek.com/",
"photo": "https://tantek.com/photo.jpg"
},
"post-type": "note",
"_id": "39892307",
"_source": "2460"
}
{
"type": "entry",
"published": "2024-01-03T19:03:29-0500",
"summary": "\ud83d\udccd Checked in at James Earl Jones Theatre, New York, NY.",
"url": "https://martymcgui.re/2024/01/03/190329/",
"photo": [
"https://res.cloudinary.com/schmarty/image/fetch/w_960,c_fill/https://fastly.4sqi.net/img/general/original/62057_JtrqhYSRNppPKaRwR2eDpQG4p9pd1f_PXtNnsdMVVCw.jpg",
"https://res.cloudinary.com/schmarty/image/fetch/w_960,c_fill/https://fastly.4sqi.net/img/general/original/62057_qQrzyptR5kQnzvDswDNefdxW-5K6c3n1Na25mAXF1J8.jpg",
"https://res.cloudinary.com/schmarty/image/fetch/w_960,c_fill/https://fastly.4sqi.net/img/general/original/62057_2v1GVesbBDvGjZE4J-UWDz7fkedfY1bcFO0Gc83gYxM.jpg"
],
"syndication": [
"https://www.swarmapp.com/user/62057/checkin/6595f5d13e51f569931970ec"
],
"content": {
"text": "Gutenberg!",
"html": "<a href=\"https://fastly.4sqi.net/img/general/original/62057_JtrqhYSRNppPKaRwR2eDpQG4p9pd1f_PXtNnsdMVVCw.jpg\"></a>\n\n <a href=\"https://fastly.4sqi.net/img/general/original/62057_qQrzyptR5kQnzvDswDNefdxW-5K6c3n1Na25mAXF1J8.jpg\"></a>\n\n <a href=\"https://fastly.4sqi.net/img/general/original/62057_2v1GVesbBDvGjZE4J-UWDz7fkedfY1bcFO0Gc83gYxM.jpg\"></a>\n\n <p>Gutenberg!</p>"
},
"author": {
"type": "card",
"name": "Marty McGuire",
"url": "https://martymcgui.re/",
"photo": "https://martymcgui.re/images/logo.jpg"
},
"checkin": {
"type": "card",
"name": "James Earl Jones Theatre",
"latitude": "40.759155474313",
"longitude": "-73.983124494553",
"locality": "New York",
"region": "NY",
"url": "https://foursquare.com/v/47b58034f964a520ac4d1fe3"
},
"post-type": "checkin",
"_id": "39888091",
"_source": "175"
}
Time to begin again: restarting my #100Days of #IndieWeb project for 2024, as a #100Posts of IndieWeb project, and congrats to the IndieWeb community on a fully completed 2023 IndieWeb Gift Calendar!
Last year I completed 48 out of a planned 100 posts in my #100DaysOfIndieWeb project, for nearly 48 days (some days had multiple posts). Instead of resetting my goals accordingly, say down to 50, I’m going for 100 again, however, this time for 100 posts rather than 100 days, having learned that some days I find the time for multiple posts, and other days none at all.
Looking back to the start of last year’s 100 Days project, it’s been one year since I encouraged everyone to own their own notes¹. Since then many have started, restarted, or expanded their personal sites to do so. Some have switched from a #Twitter account to a #Mastodon (or other #fediverse) account as a stopgap for short-form status posts. A step in the right direction, yet also an opportunity to take the leap this year to fully own their identity and posts on the web.
In 2023 Twitter also broke all existing API clients (including my website). I did not feel it was worth my time to re-apply for an API key and rebuild/retest any necessary code for my semi-automatic #POSSE publishing, not knowing when they might break things again (since there was no rational reason for them to have broken things in the first place).
I manually POSSEd a few posts after that, yet from the lack of interactions, either Twitter’s feed algorithm² isn’t showing my posts, or people have largely left or stopped using Twitter.
Either way, when your friends stop seeing your posts on a silo, there’s no need to spend any time POSSEing to it.
On the positive side, the IndieWeb community really came together in 2023, shining brightly even through the darker days of December.
We, the IndieWeb community (and some beyond!) provided a gift (or often multiple) to the rest of community for every single day of December 2023³, the first time we successfully filled out the whole month since the 2018 IndieWeb Challenge⁴, and only the second time ever in the seven years of the IndieWeb Challenge-turned-Gift-Calendar.
By going through the various gifts (more than 2 per day on average!), there are many interesting numbers and patterns we could surface. That deserves its own post however, as does a summary of the 48 posts⁵ of my 2023 100 Days of IndieWeb attempt, so I’ll end this post here.
Happy New Year to all, with an especially well deserved congratulations to the IndieWeb community and everyone who contributed to the 2023 Gift Calendar. Well done!
Let’s see what else we can create & share on our personal sites in 2024 and continue setting a higher bar for the independent web by showing instead of telling. #ShowDontTell
This is post 1 of #100PostsOfIndieWeb. #100Posts
← ✨
→ 🔮
Post glossary:
API
https://indieweb.org/API
POSSE
https://indieweb.org/POSSE
silo
https://indieweb.org/silo
¹ https://tantek.com/2023/001/t1/own-your-notes
² https://indieweb.org/algorithmic_feed
³ https://indieweb.org/2023-12-indieweb-gift-calendar
⁴ https://indieweb.org/2018-12-indieweb-challenge
⁵ https://tantek.com/2023/365/t2/no-large-language-model-llm-used
{
"type": "entry",
"published": "2024-01-01 19:30-0800",
"url": "https://tantek.com/2024/001/t1/restarting-100days-indieweb-gift-calendar",
"category": [
"100Days",
"IndieWeb",
"100Posts",
"100DaysOfIndieWeb",
"Twitter",
"Mastodon",
"fediverse",
"POSSE",
"ShowDontTell",
"100PostsOfIndieWeb"
],
"content": {
"text": "Time to begin again: restarting my #100Days of #IndieWeb project for 2024, as a #100Posts of IndieWeb project, and congrats to the IndieWeb community on a fully completed 2023 IndieWeb Gift Calendar!\n\nLast year I completed 48 out of a planned 100 posts in my #100DaysOfIndieWeb project, for nearly 48 days (some days had multiple posts). Instead of resetting my goals accordingly, say down to 50, I\u2019m going for 100 again, however, this time for 100 posts rather than 100 days, having learned that some days I find the time for multiple posts, and other days none at all.\n\nLooking back to the start of last year\u2019s 100 Days project, it\u2019s been one year since I encouraged everyone to own their own notes\u00b9. Since then many have started, restarted, or expanded their personal sites to do so. Some have switched from a #Twitter account to a #Mastodon (or other #fediverse) account as a stopgap for short-form status posts. A step in the right direction, yet also an opportunity to take the leap this year to fully own their identity and posts on the web.\n\nIn 2023 Twitter also broke all existing API clients (including my website). I did not feel it was worth my time to re-apply for an API key and rebuild/retest any necessary code for my semi-automatic #POSSE publishing, not knowing when they might break things again (since there was no rational reason for them to have broken things in the first place).\n\nI manually POSSEd a few posts after that, yet from the lack of interactions, either Twitter\u2019s feed algorithm\u00b2 isn\u2019t showing my posts, or people have largely left or stopped using Twitter. \n\nEither way, when your friends stop seeing your posts on a silo, there\u2019s no need to spend any time POSSEing to it.\n\nOn the positive side, the IndieWeb community really came together in 2023, shining brightly even through the darker days of December.\n\nWe, the IndieWeb community (and some beyond!) provided a gift (or often multiple) to the rest of community for every single day of December 2023\u00b3, the first time we successfully filled out the whole month since the 2018 IndieWeb Challenge\u2074, and only the second time ever in the seven years of the IndieWeb Challenge-turned-Gift-Calendar.\n\nBy going through the various gifts (more than 2 per day on average!), there are many interesting numbers and patterns we could surface. That deserves its own post however, as does a summary of the 48 posts\u2075 of my 2023 100 Days of IndieWeb attempt, so I\u2019ll end this post here.\n\nHappy New Year to all, with an especially well deserved congratulations to the IndieWeb community and everyone who contributed to the 2023 Gift Calendar. Well done! \n\nLet\u2019s see what else we can create & share on our personal sites in 2024 and continue setting a higher bar for the independent web by showing instead of telling. #ShowDontTell\n\nThis is post 1 of #100PostsOfIndieWeb. #100Posts\n\n\u2190 \u2728\n\u2192 \ud83d\udd2e\n\n\nPost glossary:\n\nAPI\n\u00a0 https://indieweb.org/API\nPOSSE\n\u00a0 https://indieweb.org/POSSE\nsilo\n\u00a0 https://indieweb.org/silo\n\n\n\u00b9 https://tantek.com/2023/001/t1/own-your-notes\n\u00b2 https://indieweb.org/algorithmic_feed\n\u00b3 https://indieweb.org/2023-12-indieweb-gift-calendar\n\u2074 https://indieweb.org/2018-12-indieweb-challenge\n\u2075 https://tantek.com/2023/365/t2/no-large-language-model-llm-used",
"html": "Time to begin again: restarting my #<span class=\"p-category\">100Days</span> of #<span class=\"p-category\">IndieWeb</span> project for 2024, as a #<span class=\"p-category\">100Posts</span> of IndieWeb project, and congrats to the IndieWeb community on a fully completed 2023 IndieWeb Gift Calendar!<br /><br />Last year I completed 48 out of a planned 100 posts in my #<span class=\"p-category\">100DaysOfIndieWeb</span> project, for nearly 48 days (some days had multiple posts). Instead of resetting my goals accordingly, say down to 50, I\u2019m going for 100 again, however, this time for 100 posts rather than 100 days, having learned that some days I find the time for multiple posts, and other days none at all.<br /><br />Looking back to the start of last year\u2019s 100 Days project, it\u2019s been one year since I encouraged everyone to own their own notes<a href=\"https://tantek.com/#t5Ui1_note-1\">\u00b9</a>. Since then many have started, restarted, or expanded their personal sites to do so. Some have switched from a #<span class=\"p-category\">Twitter</span> account to a #<span class=\"p-category\">Mastodon</span> (or other #<span class=\"p-category\">fediverse</span>) account as a stopgap for short-form status posts. A step in the right direction, yet also an opportunity to take the leap this year to fully own their identity and posts on the web.<br /><br />In 2023 Twitter also broke all existing API clients (including my website). I did not feel it was worth my time to re-apply for an API key and rebuild/retest any necessary code for my semi-automatic #<span class=\"p-category\">POSSE</span> publishing, not knowing when they might break things again (since there was no rational reason for them to have broken things in the first place).<br /><br />I manually POSSEd a few posts after that, yet from the lack of interactions, either Twitter\u2019s feed algorithm<a href=\"https://tantek.com/#t5Ui1_note-2\">\u00b2</a> isn\u2019t showing my posts, or people have largely left or stopped using Twitter. <br /><br />Either way, when your friends stop seeing your posts on a silo, there\u2019s no need to spend any time POSSEing to it.<br /><br />On the positive side, the IndieWeb community really came together in 2023, shining brightly even through the darker days of December.<br /><br />We, the IndieWeb community (and some beyond!) provided a gift (or often multiple) to the rest of community for every single day of December 2023<a href=\"https://tantek.com/#t5Ui1_note-3\">\u00b3</a>, the first time we successfully filled out the whole month since the 2018 IndieWeb Challenge<a href=\"https://tantek.com/#t5Ui1_note-4\">\u2074</a>, and only the second time ever in the seven years of the IndieWeb Challenge-turned-Gift-Calendar.<br /><br />By going through the various gifts (more than 2 per day on average!), there are many interesting numbers and patterns we could surface. That deserves its own post however, as does a summary of the 48 posts<a href=\"https://tantek.com/#t5Ui1_note-5\">\u2075</a> of my 2023 100 Days of IndieWeb attempt, so I\u2019ll end this post here.<br /><br />Happy New Year to all, with an especially well deserved congratulations to the IndieWeb community and everyone who contributed to the 2023 Gift Calendar. Well done! <br /><br />Let\u2019s see what else we can create & share on our personal sites in 2024 and continue setting a higher bar for the independent web by showing instead of telling. #<span class=\"p-category\">ShowDontTell</span><br /><br />This is post 1 of #<span class=\"p-category\">100PostsOfIndieWeb</span>. #<span class=\"p-category\">100Posts</span><br /><br />\u2190 \u2728<br />\u2192 \ud83d\udd2e<br /><br /><br />Post glossary:<br /><br />API<br />\u00a0 <a href=\"https://indieweb.org/API\">https://indieweb.org/API</a><br />POSSE<br />\u00a0 <a href=\"https://indieweb.org/POSSE\">https://indieweb.org/POSSE</a><br />silo<br />\u00a0 <a href=\"https://indieweb.org/silo\">https://indieweb.org/silo</a><br /><br /><br /><a href=\"https://tantek.com/#t5Ui1_ref-1\">\u00b9</a> <a href=\"https://tantek.com/2023/001/t1/own-your-notes\">https://tantek.com/2023/001/t1/own-your-notes</a><br /><a href=\"https://tantek.com/#t5Ui1_ref-2\">\u00b2</a> <a href=\"https://indieweb.org/algorithmic_feed\">https://indieweb.org/algorithmic_feed</a><br /><a href=\"https://tantek.com/#t5Ui1_ref-3\">\u00b3</a> <a href=\"https://indieweb.org/2023-12-indieweb-gift-calendar\">https://indieweb.org/2023-12-indieweb-gift-calendar</a><br /><a href=\"https://tantek.com/#t5Ui1_ref-4\">\u2074</a> <a href=\"https://indieweb.org/2018-12-indieweb-challenge\">https://indieweb.org/2018-12-indieweb-challenge</a><br /><a href=\"https://tantek.com/#t5Ui1_ref-5\">\u2075</a> <a href=\"https://tantek.com/2023/365/t2/no-large-language-model-llm-used\">https://tantek.com/2023/365/t2/no-large-language-model-llm-used</a>"
},
"author": {
"type": "card",
"name": "Tantek \u00c7elik",
"url": "https://tantek.com/",
"photo": "https://tantek.com/photo.jpg"
},
"post-type": "note",
"_id": "39870881",
"_source": "2460"
}