Planning to refresh /work on my website, looking for some inspiration:
Is there any personal site you have in mind where employment/freelance/OSS info and/or projects are nicely combined and presented on a single page?
#askfedi #indieweb #personalwebsites
{
"type": "entry",
"author": {
"name": "@ttntm",
"url": "https://fosstodon.org/@ttntm",
"photo": null
},
"url": "https://fosstodon.org/@ttntm/110287280231013401",
"content": {
"html": "<p>Planning to refresh /work on my website, looking for some inspiration: </p><p>Is there any personal site you have in mind where employment/freelance/OSS info and/or projects are nicely combined and presented on a single page?</p><p><a href=\"https://fosstodon.org/tags/askfedi\">#<span>askfedi</span></a> <a href=\"https://fosstodon.org/tags/indieweb\">#<span>indieweb</span></a> <a href=\"https://fosstodon.org/tags/personalwebsites\">#<span>personalwebsites</span></a></p>",
"text": "Planning to refresh /work on my website, looking for some inspiration: Is there any personal site you have in mind where employment/freelance/OSS info and/or projects are nicely combined and presented on a single page?#askfedi #indieweb #personalwebsites"
},
"published": "2023-04-30T10:25:45+00:00",
"post-type": "note",
"_id": "36892165",
"_source": "7235",
"_is_read": false
}
{
"type": "entry",
"author": {
"name": "@forestpines",
"url": "https://hachyderm.io/@forestpines",
"photo": null
},
"url": "https://hachyderm.io/@forestpines/110286666804128199",
"content": {
"html": "<p>Self-promo</p><p>New blog post! On not using analytics cookies any more</p><p><a href=\"https://hachyderm.io/tags/blogging\">#<span>blogging</span></a> <a href=\"https://hachyderm.io/tags/indieweb\">#<span>indieweb</span></a> </p><p><a href=\"http://www.symbolicforest.com/blog/2023/04/30/no-more-cookies/\"><span>http://www.</span><span>symbolicforest.com/blog/2023/0</span><span>4/30/no-more-cookies/</span></a></p>",
"text": "Self-promoNew blog post! On not using analytics cookies any more#blogging #indieweb http://www.symbolicforest.com/blog/2023/04/30/no-more-cookies/"
},
"published": "2023-04-30T07:49:45+00:00",
"post-type": "note",
"_id": "36890903",
"_source": "7235",
"_is_read": false
}
{
"type": "entry",
"author": {
"name": "Manton Reece",
"url": "https://www.manton.org/",
"photo": "https://micro.blog/manton/avatar.jpg"
},
"url": "https://www.manton.org/2023/04/29/getting-started-with.html",
"name": "Getting started with Bluesky XRPC",
"content": {
"html": "<p>I\u2019ve done a little work now with the XRPC layer of the <a href=\"https://atproto.com\">AT Protocol</a>, supporting cross-posting to Bluesky from Micro.blog. This post is about what I\u2019ve learned.</p>\n<p>(As an aside, there have been questions about whether Micro.blog supporting Bluesky means we believe in everything they\u2019re doing. No, right now I\u2019m mostly interested in the technology. It\u2019s still too early for judgements on the Bluesky leadership, user experience, or ultimately how this is all going to fit together with other social web protocols.)</p>\n<p>Bluesky authenticates with a username and password. For third-party apps, the password can be an app-specific password. I hope that eventually Bluesky will support <a href=\"https://indieauth.spec.indieweb.org\">IndieAuth</a>, a flavor of OAuth designed for signing in to web sites that should also work well for a distributed service like Bluesky.</p>\n<p>The HTTP POST with JSON for signing in looks like this:</p>\n<pre><code>POST /xrpc/com.atproto.server.createSession\nContent-Type: application/json\n\n{\n \"identifier\": \"email-address-here\",\n \"password\": \"password-here\"\n}\n</code></pre><p>You\u2019ll get back an access token and refresh token. Sessions do not last very long, only a couple hours last time I checked, so it\u2019s important to keep the refresh token. The response looks like this:</p>\n<pre><code>{\n \"did\": \"did:plc:abcdef12345\",\n \"handle\": \"manton.org\",\n \"email\": \"email-address-here\",\n \"accessJwt\": \"abcdefghijklmnopqrstuvxyz\",\n \"refreshJwt\": \"zyxvutsrqponmlkjihgfedcba\"\n}\n</code></pre><p>The DID is a unique identifier for your account that is stored with posts on an AT Protocol server. Even if you change your handle, the DID persists and helps make data portable across servers.</p>\n<p>When cross-posting from Micro.blog, I first try to use the auth token and if it fails, I use the refresh token to establish a new session. In this case, we pass the refresh token in the <code>Authorization</code> header:</p>\n<pre><code>POST /xrpc/com.atproto.server.refreshSession\nAuthorization: Bearer zyxvutsrqponmlkjihgfedcba\n</code></pre><p>Sending a simple text post to Bluesky looks like this. For the rest of these requests, we pass the usual access token for authorization:</p>\n<pre><code>POST /xrpc/com.atproto.repo.createRecord\nAuthorization: Bearer abcdefghijklmnopqrstuvxyz\nContent-Type: application/json\n\n{\n \"repo\": \"did:plc:abcdef12345\",\n \"collection\": \"app.bsky.feed.post\",\n \"validate\": true,\n \"record\": {\n \"text\": \"Hello world.\",\n \"createdAt\": \"2023-04-20T16:46:32+00:00\"\n }\n}\n</code></pre><p>It can get more complicated. To include a photo with the post, first upload it to storage as a blob. In my early testing, there were low limits for photo file size, so Micro.blog scales photos down quite a bit before sending them over to Bluesky.</p>\n<p>Here\u2019s uploading the photo, passing the raw JPEG bytes in the content body:</p>\n<pre><code>POST /xrpc/com.atproto.repo.uploadBlob\nAuthorization: Bearer abcdefghijklmnopqrstuvxyz\nContent-Type: image/jpeg\n\nimage-data-here\n</code></pre><p>You\u2019ll get back a media CID (Content ID) in the <code>ref</code> field that can be used to attach the photo to a new post. The response after uploading a photo looks like this:</p>\n<pre><code>{\n \"blob\": {\n \"$type\": \"blob\",\n \"ref\": {\n \"$link\": \"abcdefgh\"\n },\n \"mimeType\": \"image/jpeg\",\n \"size\": 200000\n }\n}\n</code></pre><p>Then when posting, use the <code>embed</code> field with an array of the uploaded media CIDs:</p>\n<pre><code>POST /xrpc/com.atproto.repo.createRecord\nAuthorization: Bearer abcdefghijklmnopqrstuvxyz\nContent-Type: application/json\n\n{\n \"repo\": \"did:plc:abcdef12345\",\n \"collection\": \"app.bsky.feed.post\",\n \"record\": {\n \"text\": \"Hello world with photo.\",\n \"createdAt\": \"2023-03-08T16:46:32+00:00\",\n \"embed\": {\n \"$type\": \"app.bsky.embed.images\",\n \"images\": [\n {\n \"image\": {\n \"cid\": \"abcdefgh\",\n \"mimeType\": \"image/jpeg\"\n },\n \"alt\": \"\"\n }\n ]\n }\n }\n}\n\n</code></pre><p>Bluesky also supports inline hyperlinks in the post text through \u201cfacets\u201d that can be added to a post, similar to attaching a photo. I don\u2019t love this because we already have HTML as a perfectly good way to format posts. I strongly believe that the social web should use HTML and HTTP wherever possible.</p>\n<p>In Micro.blog, I automatically convert Markdown or HTML inline links to Bluesky\u2019s facets. An example of linking the first word \u201cHello\u201d in this post would look like this, using the character position and length of the word:</p>\n<pre><code>POST /xrpc/com.atproto.repo.createRecord\nAuthorization: Bearer abcdefghijklmnopqrstuvxyz\nContent-Type: application/json\n\n{\n \"repo\": \"did:plc:abcdef12345\",\n \"collection\": \"app.bsky.feed.post\",\n \"validate\": true,\n \"record\": {\n \"text\": \"Hello world with link.\",\n \"createdAt\": \"2023-04-20T16:46:32+00:00\",\n \"facets\": [\n {\n \"features\": [\n {\n \"uri\": \"https://manton.org/\",\n \"$type\": \"app.bsky.richtext.facet#link\"\n }\n ],\n \"index\": {\n \"byteStart\": 0,\n \"byteEnd\": 5\n }\n }\n ]\n }\n}\n</code></pre><p><a href=\"https://github.com/bluesky-social/atproto-ecosystem\">There is also a growing list</a> of open source libraries for the AT Protocol. Unfortunately I wrote all my code before I realized this, so I stumbled through deciphering the API more than I needed to. Maybe this post will save you some time if you\u2019re rolling your own thing.</p>",
"text": "I\u2019ve done a little work now with the XRPC layer of the AT Protocol, supporting cross-posting to Bluesky from Micro.blog. This post is about what I\u2019ve learned.\n(As an aside, there have been questions about whether Micro.blog supporting Bluesky means we believe in everything they\u2019re doing. No, right now I\u2019m mostly interested in the technology. It\u2019s still too early for judgements on the Bluesky leadership, user experience, or ultimately how this is all going to fit together with other social web protocols.)\nBluesky authenticates with a username and password. For third-party apps, the password can be an app-specific password. I hope that eventually Bluesky will support IndieAuth, a flavor of OAuth designed for signing in to web sites that should also work well for a distributed service like Bluesky.\nThe HTTP POST with JSON for signing in looks like this:\nPOST /xrpc/com.atproto.server.createSession\nContent-Type: application/json\n\n{\n \"identifier\": \"email-address-here\",\n \"password\": \"password-here\"\n}\nYou\u2019ll get back an access token and refresh token. Sessions do not last very long, only a couple hours last time I checked, so it\u2019s important to keep the refresh token. The response looks like this:\n{\n \"did\": \"did:plc:abcdef12345\",\n \"handle\": \"manton.org\",\n \"email\": \"email-address-here\",\n \"accessJwt\": \"abcdefghijklmnopqrstuvxyz\",\n \"refreshJwt\": \"zyxvutsrqponmlkjihgfedcba\"\n}\nThe DID is a unique identifier for your account that is stored with posts on an AT Protocol server. Even if you change your handle, the DID persists and helps make data portable across servers.\nWhen cross-posting from Micro.blog, I first try to use the auth token and if it fails, I use the refresh token to establish a new session. In this case, we pass the refresh token in the Authorization header:\nPOST /xrpc/com.atproto.server.refreshSession\nAuthorization: Bearer zyxvutsrqponmlkjihgfedcba\nSending a simple text post to Bluesky looks like this. For the rest of these requests, we pass the usual access token for authorization:\nPOST /xrpc/com.atproto.repo.createRecord\nAuthorization: Bearer abcdefghijklmnopqrstuvxyz\nContent-Type: application/json\n\n{\n \"repo\": \"did:plc:abcdef12345\",\n \"collection\": \"app.bsky.feed.post\",\n \"validate\": true,\n \"record\": {\n \"text\": \"Hello world.\",\n \"createdAt\": \"2023-04-20T16:46:32+00:00\"\n }\n}\nIt can get more complicated. To include a photo with the post, first upload it to storage as a blob. In my early testing, there were low limits for photo file size, so Micro.blog scales photos down quite a bit before sending them over to Bluesky.\nHere\u2019s uploading the photo, passing the raw JPEG bytes in the content body:\nPOST /xrpc/com.atproto.repo.uploadBlob\nAuthorization: Bearer abcdefghijklmnopqrstuvxyz\nContent-Type: image/jpeg\n\nimage-data-here\nYou\u2019ll get back a media CID (Content ID) in the ref field that can be used to attach the photo to a new post. The response after uploading a photo looks like this:\n{\n \"blob\": {\n \"$type\": \"blob\",\n \"ref\": {\n \"$link\": \"abcdefgh\"\n },\n \"mimeType\": \"image/jpeg\",\n \"size\": 200000\n }\n}\nThen when posting, use the embed field with an array of the uploaded media CIDs:\nPOST /xrpc/com.atproto.repo.createRecord\nAuthorization: Bearer abcdefghijklmnopqrstuvxyz\nContent-Type: application/json\n\n{\n \"repo\": \"did:plc:abcdef12345\",\n \"collection\": \"app.bsky.feed.post\",\n \"record\": {\n \"text\": \"Hello world with photo.\",\n \"createdAt\": \"2023-03-08T16:46:32+00:00\",\n \"embed\": {\n \"$type\": \"app.bsky.embed.images\",\n \"images\": [\n {\n \"image\": {\n \"cid\": \"abcdefgh\",\n \"mimeType\": \"image/jpeg\"\n },\n \"alt\": \"\"\n }\n ]\n }\n }\n}\n\nBluesky also supports inline hyperlinks in the post text through \u201cfacets\u201d that can be added to a post, similar to attaching a photo. I don\u2019t love this because we already have HTML as a perfectly good way to format posts. I strongly believe that the social web should use HTML and HTTP wherever possible.\nIn Micro.blog, I automatically convert Markdown or HTML inline links to Bluesky\u2019s facets. An example of linking the first word \u201cHello\u201d in this post would look like this, using the character position and length of the word:\nPOST /xrpc/com.atproto.repo.createRecord\nAuthorization: Bearer abcdefghijklmnopqrstuvxyz\nContent-Type: application/json\n\n{\n \"repo\": \"did:plc:abcdef12345\",\n \"collection\": \"app.bsky.feed.post\",\n \"validate\": true,\n \"record\": {\n \"text\": \"Hello world with link.\",\n \"createdAt\": \"2023-04-20T16:46:32+00:00\",\n \"facets\": [\n {\n \"features\": [\n {\n \"uri\": \"https://manton.org/\",\n \"$type\": \"app.bsky.richtext.facet#link\"\n }\n ],\n \"index\": {\n \"byteStart\": 0,\n \"byteEnd\": 5\n }\n }\n ]\n }\n}\nThere is also a growing list of open source libraries for the AT Protocol. Unfortunately I wrote all my code before I realized this, so I stumbled through deciphering the API more than I needed to. Maybe this post will save you some time if you\u2019re rolling your own thing."
},
"published": "2023-04-29T13:38:15-05:00",
"category": [
"Essays"
],
"post-type": "article",
"_id": "36882632",
"_source": "12",
"_is_read": false
}
Emerging thoughts:
What #Bluesky developers need to focus on: (and may be, I hope) actual Federation and adding clarity on how moderation, blocking, labeling really work. Dramatic upgrades needed and may be in the works.
What #Fediverse developers need to be doing: dramatically upping UX and onboarding. Good things in the works.
What #Indieweb and Fedi developers need to be doing: building software bridges between those two protocols & relays to handle AP-ATprotocol two way traffic at scale.
{
"type": "entry",
"author": {
"name": "@tchambers",
"url": "https://indieweb.social/@tchambers",
"photo": null
},
"url": "https://indieweb.social/@tchambers/110282256846927901",
"content": {
"html": "<p>Emerging thoughts:</p><p>What <a href=\"https://indieweb.social/tags/Bluesky\">#<span>Bluesky</span></a> developers need to focus on: (and may be, I hope) actual Federation and adding clarity on how moderation, blocking, labeling really work. Dramatic upgrades needed and may be in the works.</p><p>What <a href=\"https://indieweb.social/tags/Fediverse\">#<span>Fediverse</span></a> developers need to be doing: dramatically upping UX and onboarding. Good things in the works. </p><p>What <a href=\"https://indieweb.social/tags/Indieweb\">#<span>Indieweb</span></a> and Fedi developers need to be doing: building software bridges between those two protocols & relays to handle AP-ATprotocol two way traffic at scale.</p>",
"text": "Emerging thoughts:What #Bluesky developers need to focus on: (and may be, I hope) actual Federation and adding clarity on how moderation, blocking, labeling really work. Dramatic upgrades needed and may be in the works.What #Fediverse developers need to be doing: dramatically upping UX and onboarding. Good things in the works. What #Indieweb and Fedi developers need to be doing: building software bridges between those two protocols & relays to handle AP-ATprotocol two way traffic at scale."
},
"published": "2023-04-29T13:08:14+00:00",
"post-type": "note",
"_id": "36877000",
"_source": "7235",
"_is_read": false
}
π ANDROID APP
A recently updated application (which used to be called indigenous) is now called indiepass and is developed by Mark Sutherland @marksuth.
The application is suitable for #indieweb #mastodon #pleroma and #pixelfed. π
π https://marksuth.dev/
π https://indieweb.org/IndiePass#Android
π PlayStore
#app #apps #androidapp #androidapps #client #clients #mastodonapp #mastodonapps #indiepass #pleromapp
{
"type": "entry",
"author": {
"name": "@universe_party",
"url": "https://mastodon.online/@universe_party",
"photo": null
},
"url": "https://mastodon.online/@universe_party/110279903778214250",
"content": {
"html": "<p>\ud83c\udd95 ANDROID APP</p><p>A recently updated application (which used to be called indigenous) is now called indiepass and is developed by Mark Sutherland <span class=\"h-card\"><a class=\"u-url\" href=\"https://mastodon.social/@marksuth\">@<span>marksuth</span></a></span>.<br />The application is suitable for <a href=\"https://mastodon.online/tags/indieweb\">#<span>indieweb</span></a> <a href=\"https://mastodon.online/tags/mastodon\">#<span>mastodon</span></a> <a href=\"https://mastodon.online/tags/pleroma\">#<span>pleroma</span></a> and <a href=\"https://mastodon.online/tags/pixelfed\">#<span>pixelfed</span></a>. \ud83d\ude0a</p><p>\ud83c\udf0d <a href=\"https://marksuth.dev/\"><span>https://</span><span>marksuth.dev/</span><span></span></a><br />\ud83c\udf0d <a href=\"https://indieweb.org/IndiePass#Android\"><span>https://</span><span>indieweb.org/IndiePass#Android</span><span></span></a><br />\ud83c\udf0d PlayStore</p><p><a href=\"https://mastodon.online/tags/app\">#<span>app</span></a> <a href=\"https://mastodon.online/tags/apps\">#<span>apps</span></a> <a href=\"https://mastodon.online/tags/androidapp\">#<span>androidapp</span></a> <a href=\"https://mastodon.online/tags/androidapps\">#<span>androidapps</span></a> <a href=\"https://mastodon.online/tags/client\">#<span>client</span></a> <a href=\"https://mastodon.online/tags/clients\">#<span>clients</span></a> <a href=\"https://mastodon.online/tags/mastodonapp\">#<span>mastodonapp</span></a> <a href=\"https://mastodon.online/tags/mastodonapps\">#<span>mastodonapps</span></a> <a href=\"https://mastodon.online/tags/indiepass\">#<span>indiepass</span></a> <a href=\"https://mastodon.online/tags/pleromapp\">#<span>pleromapp</span></a></p>",
"text": "\ud83c\udd95 ANDROID APPA recently updated application (which used to be called indigenous) is now called indiepass and is developed by Mark Sutherland @marksuth.\nThe application is suitable for #indieweb #mastodon #pleroma and #pixelfed. \ud83d\ude0a\ud83c\udf0d https://marksuth.dev/\n\ud83c\udf0d https://indieweb.org/IndiePass#Android\n\ud83c\udf0d PlayStore#app #apps #androidapp #androidapps #client #clients #mastodonapp #mastodonapps #indiepass #pleromapp"
},
"published": "2023-04-29T03:09:49+00:00",
"post-type": "note",
"_id": "36869761",
"_source": "7235",
"_is_read": false
}
My latest blog post is up on begin.com/blog. I'm happy with the Enhance plugin I wrote to syndicate an RSS feed to multiple targets. Mastodon, Twitter and Dev.to for now with more planned.
It works seamlessly with our Enhance Blog template, but you can also deploy it as a stand-alone app. Feel free to reach out to me with questions and feature requests.
#enhance #indieweb #posse
https://begin.com/blog/posts/2023-04-28-supporting-publish-own-site-syndicate-elsewhere
{
"type": "entry",
"author": {
"name": "@macdonst",
"url": "https://mastodon.online/@macdonst",
"photo": null
},
"url": "https://mastodon.online/@macdonst/110276834220156713",
"content": {
"html": "<p>My latest blog post is up on begin.com/blog. I'm happy with the Enhance plugin I wrote to syndicate an RSS feed to multiple targets. Mastodon, Twitter and Dev.to for now with more planned. </p><p>It works seamlessly with our Enhance Blog template, but you can also deploy it as a stand-alone app. Feel free to reach out to me with questions and feature requests.</p><p><a href=\"https://mastodon.online/tags/enhance\">#<span>enhance</span></a> <a href=\"https://mastodon.online/tags/indieweb\">#<span>indieweb</span></a> <a href=\"https://mastodon.online/tags/posse\">#<span>posse</span></a></p><p><a href=\"https://begin.com/blog/posts/2023-04-28-supporting-publish-own-site-syndicate-elsewhere\"><span>https://</span><span>begin.com/blog/posts/2023-04-2</span><span>8-supporting-publish-own-site-syndicate-elsewhere</span></a></p>",
"text": "My latest blog post is up on begin.com/blog. I'm happy with the Enhance plugin I wrote to syndicate an RSS feed to multiple targets. Mastodon, Twitter and Dev.to for now with more planned. It works seamlessly with our Enhance Blog template, but you can also deploy it as a stand-alone app. Feel free to reach out to me with questions and feature requests.#enhance #indieweb #possehttps://begin.com/blog/posts/2023-04-28-supporting-publish-own-site-syndicate-elsewhere"
},
"published": "2023-04-28T14:09:11+00:00",
"post-type": "note",
"_id": "36855245",
"_source": "7235",
"_is_read": false
}
@darth Yeah, there's eg. already tools to bridge the #IndieWeb and the #Fediverse: https://fed.brid.gy/
{
"type": "entry",
"author": {
"name": "@voxpelli",
"url": "https://mastodon.social/@voxpelli",
"photo": null
},
"url": "https://mastodon.social/@voxpelli/110276287937103078",
"content": {
"html": "<p><span class=\"h-card\"><a class=\"u-url\" href=\"https://silversword.online/@darth\">@<span>darth</span></a></span> Yeah, there's eg. already tools to bridge the <a href=\"https://mastodon.social/tags/IndieWeb\">#<span>IndieWeb</span></a> and the <a href=\"https://mastodon.social/tags/Fediverse\">#<span>Fediverse</span></a>: <a href=\"https://fed.brid.gy/\"><span>https://</span><span>fed.brid.gy/</span><span></span></a></p>",
"text": "@darth Yeah, there's eg. already tools to bridge the #IndieWeb and the #Fediverse: https://fed.brid.gy/"
},
"published": "2023-04-28T11:50:16+00:00",
"post-type": "note",
"_id": "36852519",
"_source": "7235",
"_is_read": false
}
If I have webmention sending and receiving working, does bridgy fed (fed.brid.gy) backfeed to my site if someone replies in the Fediverse? Because it seems like that isn't the case as far as I can tell. #indieweb
{
"type": "entry",
"author": {
"name": "#indieweb",
"url": "https://mastodon.social/tags/indieweb",
"photo": null
},
"url": "https://fed.brid.gy/r/https://techlifeweb.com/blog/2023/2023-04-27-post-2246/",
"content": {
"html": "If I have webmention sending and receiving working, does bridgy fed (fed.brid.gy) backfeed to my site if someone replies in the Fediverse? Because it seems like that isn't the case as far as I can tell. <a class=\"p-category\" href=\"https://techlifeweb.com\">#indieweb</a>",
"text": "If I have webmention sending and receiving working, does bridgy fed (fed.brid.gy) backfeed to my site if someone replies in the Fediverse? Because it seems like that isn't the case as far as I can tell. #indieweb"
},
"published": "2023-04-27T22:46:39+00:00",
"post-type": "note",
"_id": "36844535",
"_source": "7235",
"_is_read": false
}
How do you syndicate to Twitter or Mastodon from the Android micro.blog mobile app ? #microblog #indieweb
{
"type": "entry",
"author": {
"name": "Ricardo Mendes ",
"url": "https://www.rmendes.net",
"photo": "https://avatars.micro.blog/avatars/2023/15/3241.jpg"
},
"url": "https://blog.rmendes.net/2023/04/27/how-do-you.html",
"content": {
"html": "<p>How do you syndicate to Twitter or Mastodon from the Android micro.blog mobile app ? #microblog #indieweb</p>",
"text": "How do you syndicate to Twitter or Mastodon from the Android micro.blog mobile app ? #microblog #indieweb"
},
"published": "2023-04-27T18:14:54+00:00",
"post-type": "note",
"_id": "36841879",
"_source": "7224",
"_is_read": false
}
I have a small connection to Jerry Springer (RIP): way back in 1996 I ran a web site for a friend called "slac.com". Another member -- named Jerry -- registered his first name as a domain name and parked it at slac, and then I suddenly started getting angry emails complaining slac was not the Jerry Springer web site.
I posted all of those emails, and slac is still running. So here you go.
#jerryspringer #indieweb
http://slac.com/jerryspringer/
{
"type": "entry",
"author": {
"name": "@thudfactor",
"url": "https://social.horrorhub.club/@thudfactor",
"photo": null
},
"url": "https://social.horrorhub.club/@thudfactor/110273176741471760",
"content": {
"html": "<p>I have a small connection to Jerry Springer (RIP): way back in 1996 I ran a web site for a friend called \"slac.com\". Another member -- named Jerry -- registered his first name as a domain name and parked it at slac, and then I suddenly started getting angry emails complaining slac was not the Jerry Springer web site. </p><p>I posted all of those emails, and slac is still running. So here you go. </p><p><a href=\"https://social.horrorhub.club/tags/jerryspringer\">#<span>jerryspringer</span></a> <a href=\"https://social.horrorhub.club/tags/indieweb\">#<span>indieweb</span></a> </p><p><a href=\"http://slac.com/jerryspringer/\"><span>http://</span><span>slac.com/jerryspringer/</span><span></span></a></p>",
"text": "I have a small connection to Jerry Springer (RIP): way back in 1996 I ran a web site for a friend called \"slac.com\". Another member -- named Jerry -- registered his first name as a domain name and parked it at slac, and then I suddenly started getting angry emails complaining slac was not the Jerry Springer web site. I posted all of those emails, and slac is still running. So here you go. #jerryspringer #indieweb http://slac.com/jerryspringer/"
},
"published": "2023-04-27T22:39:14+00:00",
"post-type": "note",
"_id": "36840408",
"_source": "7235",
"_is_read": false
}
I'm kinda thinking about webrings and whether they might have a role in a community of artists.
They very much fell out of fashion after the rise of search engines, but it feels like an indieweb/fediverse kind of capability
Does anyone have some examples of sites that do webrings well and/or any webring management software that could be used?
#fediverse #indieweb #web #ring
{
"type": "entry",
"author": {
"name": "@chrisshaw",
"url": "https://twit.social/@chrisshaw",
"photo": null
},
"url": "https://twit.social/@chrisshaw/110272933470557129",
"content": {
"html": "<p>I'm kinda thinking about webrings and whether they might have a role in a community of artists.</p><p>They very much fell out of fashion after the rise of search engines, but it feels like an indieweb/fediverse kind of capability </p><p>Does anyone have some examples of sites that do webrings well and/or any webring management software that could be used?</p><p><a href=\"https://twit.social/tags/fediverse\">#<span>fediverse</span></a> <a href=\"https://twit.social/tags/indieweb\">#<span>indieweb</span></a> <a href=\"https://twit.social/tags/web\">#<span>web</span></a> <a href=\"https://twit.social/tags/ring\">#<span>ring</span></a></p>",
"text": "I'm kinda thinking about webrings and whether they might have a role in a community of artists.They very much fell out of fashion after the rise of search engines, but it feels like an indieweb/fediverse kind of capability Does anyone have some examples of sites that do webrings well and/or any webring management software that could be used?#fediverse #indieweb #web #ring"
},
"published": "2023-04-27T21:37:11+00:00",
"post-type": "note",
"_id": "36839567",
"_source": "7235",
"_is_read": false
}
How do you syndicate to Twitter or Mastodon from the Android micro.blog mobile app ? #microblog #indieweb
{
"type": "entry",
"author": {
"name": "@rmdes",
"url": "https://mstdn.social/@rmdes",
"photo": null
},
"url": "https://mstdn.social/@rmdes/110272154804034095",
"content": {
"html": "<p>How do you syndicate to Twitter or Mastodon from the Android micro.blog mobile app ? <a href=\"https://mstdn.social/tags/microblog\">#<span>microblog</span></a> <a href=\"https://mstdn.social/tags/indieweb\">#<span>indieweb</span></a></p>",
"text": "How do you syndicate to Twitter or Mastodon from the Android micro.blog mobile app ? #microblog #indieweb"
},
"published": "2023-04-27T18:19:09+00:00",
"post-type": "note",
"_id": "36835260",
"_source": "7235",
"_is_read": false
}
Happy 23rd birthday, @somafm ! #indieweb #music
{
"type": "entry",
"author": {
"name": "@brettk",
"url": "https://indieweb.social/@brettk",
"photo": null
},
"url": "https://indieweb.social/@brettk/110270969932437070",
"content": {
"html": "<p>Happy 23rd birthday, <span class=\"h-card\"><a class=\"u-url\" href=\"https://sfba.social/@somafm\">@<span>somafm</span></a></span> ! <a href=\"https://indieweb.social/tags/indieweb\">#<span>indieweb</span></a> <a href=\"https://indieweb.social/tags/music\">#<span>music</span></a></p>",
"text": "Happy 23rd birthday, @somafm ! #indieweb #music"
},
"published": "2023-04-27T13:17:49+00:00",
"post-type": "note",
"_id": "36827816",
"_source": "7235",
"_is_read": false
}
What are you all using for online meetings and teaching in terms of video service? In line with avoiding big tech I mean?
I've been using Whereby (Norwegian) for years but have found it becoming less and less reliable.
Aware of Jitsi and BigBlueButton but I thought this would be a perfect space for asking around as I will definitely have missed some interesting players. I also run my own @owncast server for specific live events.
#Indieweb #SmallTech
{
"type": "entry",
"author": {
"name": "#indieweb",
"url": "https://mastodon.social/tags/indieweb",
"photo": null
},
"url": "https://axbom.me/objects/2903dd66-c218-49cd-a555-5d86223048e9",
"content": {
"html": "What are you all using for online meetings and teaching in terms of video service? In line with avoiding big tech I mean?<br /><br />I've been using Whereby (Norwegian) for years but have found it becoming less and less reliable. <br /><br />Aware of Jitsi and BigBlueButton but I thought this would be a perfect space for asking around as I will definitely have missed some interesting players. I also run my own <span class=\"h-card\"><a class=\"u-url\" href=\"https://fosstodon.org/@owncast\">@<span>owncast</span></a></span> server for specific live events.<br /><br /><a href=\"https://axbom.me/tag/indieweb\">#Indieweb</a> <a href=\"https://axbom.me/tag/smalltech\">#SmallTech</a>",
"text": "What are you all using for online meetings and teaching in terms of video service? In line with avoiding big tech I mean?\n\nI've been using Whereby (Norwegian) for years but have found it becoming less and less reliable. \n\nAware of Jitsi and BigBlueButton but I thought this would be a perfect space for asking around as I will definitely have missed some interesting players. I also run my own @owncast server for specific live events.\n\n#Indieweb #SmallTech"
},
"published": "2023-04-27T06:11:05+00:00",
"post-type": "note",
"_id": "36820815",
"_source": "7235",
"_is_read": false
}
{
"type": "entry",
"published": "2023-04-26T23:38:16-0400",
"url": "https://martymcgui.re/2023/04/26/bad-web-dev-ideas-emoji-as-ids-in-urls/",
"category": [
"\ud83d\udd78\ufe0f\ud83d\udc8d",
"webring",
"IndieWeb",
"update",
"emoji"
],
"syndication": [
"https://fed.brid.gy/"
],
"name": "Bad web dev ideas: emoji as IDs in URLs",
"content": {
"text": "It's another rambling web dev post sorry not sorry grab a beverage and let's go.\nBegin with the Horrible Admission \ud83e\udd2b\ud83d\ude33\nRather than make you wait, here it is:\nI created and maintain An IndieWeb Webring and it uses emojis as IDs. When you add your site to the webring by signing in, an emoji ID is created for you, and it acts, in some ways, like your username or profile ID.\nFor example my webring profile is: \ud83d\udd78\ufe0f\ud83d\udc8d.ws/\ud83d\udeaf\n\n Hopefully you see the appeal. The webring is on an emoji domain, which I registered at IndieWeb Summit 2018 inspired by something Doug Beal presented. It was soon decided that I must in fact build a webring there and, leveraging his influence as the originator of the idea, Doug insisted that emojis be used as user IDs. Probably because: moar emojis!\n \n\nWhy even have IDs? \ud83d\udec2\ud83e\udd37\ud83c\udffb\u200d\u2642\ufe0f\nThis is a dang good question and I could probably sleep better if I drop them.\n\n Ring-ness and identifying click sources\n \n\n\n At the time, the idea was that a webring should be a ring, with adjacency. In other words, if I click the \"next site\" link on your website, it should consistently go to the same site. If I click the \"previous site\" link on their site, it should consistently go back to yours. In order to consistently know which site to send them to next, the webring needs to know where you're coming from.\n \n\nHistorically there has been a way to know where a visitor is coming from: the HTTP \"Referer\" [sic] header. However, at the time (and in the time since) there have been privacy issues around using this header, and it was not uncommon to see sites sabotage this info with purposeful redirects, browser standards were added to allow degrading or removing referrer info, and Chrome even implemented default policies to degrade it.\nSo the more reliable thing would be to put some identifier in the URL and trust that webring members wouldn't like weirdly spoof one anothers' unique webring URLs.\n\n Profile pages\n \n\n\n Another at the time thought was that webring members might want to \"prove\" that they were on the webring. An active profile page with rel-me verification linking back to their homepage could allow other sites and tools to say \"oh hey! you're a member of this webring\". Maybe we could show some stats there! At any rate, none of those use cases ever came into existence as far as I know. (Besides, stats are gross.)\n \n\n\n Why not use <xyz> as an ID? \ud83e\udd14\ud83d\udca1\n \n\nSome things I considered and discarded:\nJust use the URL. URLs-appended-to-URLs require escaping and sanitizing and this gets ugly and long.\n Use a hash of the URL. I like this approach (spoiler alert) but even when they are short hashes are also long and ugly.\n \n Use a numeric ID like a database row. This would probably be fine but numeric IDs can be easily crawled (fine for a webring I guess??) and people get weird about low ID numbers sometimes (warning: orange site link). Also they are boring.\n \n\n Something more clever. Well, we probably could have but this was a weekend hack kind of project.\nThe original sin \ud83c\udf4e\ud83d\udc0d\n\n There is a fun little NodeJS library called hash-emoji that takes any-ol-thing and gives you back a string of emojis of the length you ask. Under the hood, it uses a strong SHA256 hash in hexadecimal, parses that hexadecimal number, then uses modulo arithmetic to keep adding \"digits\" just like any hash algorithm, only the \"digits\" come from a collection of emojis that were in wide use back in 2017 when the library was created.\n \n\n\n I alluded to this in my post about adding a directory to the webring in 2019, but slapping a random emoji or two or three on someone's profile is potentially problematic. When some folks pointed out it was odd that they were assigned a country flag for a place they had never been, I cheekily forked hash-emoji to make hash-emoji-without-borders, which is identical in all ways except I pulled out all flags. Now nobody would get a flag!\n \n\nHowever, by removing the flags I had shrunk the key space for the emoji hash. It wasn't great to begin with - using one emoji from the initial set of ~1300 was bound to lead to collisions eventually - but by changing the set I felt like I was increasing the likelihood that some new signup would be assigned the same emoji ID as an already existing site in the ring.\nSo, I bumped the length of new IDs up to 2. And then, after an unrelated change where I started normalizing URLs differently before creating their hash ID, up to 3.\n\n Let me tell you. 3 emoji almost always tell a story. You can't not see them. Sometimes those stories can be problematic! Or maybe it's nice but you don't find it relatable. Or maybe there is no story, per se, but you're assigned something that you object to being associated with, like weapons or kissing faces or drugs and alcohol or religious symbols, or ...\n \n\nSome folks also ran into issues with the URLs on their web hosting. While I tend to think of the web as being universally UTF-8, that's not necessarily the case. Some hosts would mangle the Unicode URLs, resulting in the webring not being able to find them, resulting in sites being de-listed from the ring. To make it easy for the widest possible of webring users to simply copy their webring links and paste them into their site, I change it to use the %-encoded versions of the emojis. So now my beautiful \ud83d\udd78\ufe0f\ud83d\udc8d.ws/\ud83d\udeaf has become the horrific: https://xn--sr8hvo.ws/%F0%9F%9A%AF\nInstead of worrying too much about any of this I just ... left it alone. A few times I received requests for folks who wanted something custom, and sometimes I obliged as long as it was a request for a unique one- or two-emoji ID, so it couldn't collide with someone's future random ID.\nFooling around, finding out \ud83e\udd6b\ud83e\udeb1\nI've been low-key working on porting the webring from its old and crumbling NodeJS implementation to (hear me out) PHP (I SAID HEAR ME OUT). The basic idea is to reduce the number of emails I get from GitHub where dependabot reports a vulnerability in this or that dependency-of-a-dependency, and more importantly to reduce the amount of time that updating those dependencies takes by reducing the amount of breakage that occurs. I guess this is me saying that churn among dependencies for NodeJS apps feels more disruptive to me than I expect churn to be for PHP. Please don't @ me. Any way.\n\n hash-emoji is broken\n \n\n\n When porting hash-emoji from Javascript to PHP I had some issues where the modulo and division math wasn't working. Turns out SHA256 digests, which are hex-encoded strings 64-characters in length, make for very large numbers when you represent them as numbers to do number math on them. With basic PHP numeric types this was turning up junk, zeroes for every modulo division.\n \n\nSo I tried out both of the main PHP extensions for arbitrary precision math, GMP and BC Math, and got results that were at least functional. However, they weren't the same as the Javascript hash-emoji implementation.\nAt least, they weren't the same until I updated my copy of hash-emoji to use BigInt to make sure it was doing its arbitrary precision math properly. It was at this point that Javascript hash-emoji now began consistently outputting the same results as my new PHP implementation.\nThat means the original hash-emoji algorithm, due to some quirks of Javascript Number math for large numbers, gives results that are not consistent with the same algorithm when using arbitrary precision math types.\n\n With my skills I cannot hope to make a PHP port of hash-emoji that produces identically quirky results to the Javascript version, so, it looks like emoji IDs will have to change again.\n \n\nConsidering the abyss \u26ab\ud83d\udc40\nI thought that, if the emoji ID generation has to change, maybe I can change it for the better? I brainstormed some ideas in the IndieWeb chat. One nice change would be to bring the emoji set up-to-date to at least Unicode 14 (published 2021, implemented widely during 2022). One major unsolved challenge would be to come up with some \"unproblematic\" set of emojis. For example, modifiers for skin tone and gender are widely supported, even in complex combinations like people kissing.\n\n Thanks to sknebel some helpful suggestions, like generating IDs without skin tone modifiers and stripping out skin tone modifiers before looking up an ID. This would allow webring users to customize any emoji that have skin tone variants. Maybe that could be expanded to customizing more things when there are variants by gender, or complex combinations like family with two adults and two children, if it should come up. A \"customize your ID\" tool begins to design itself (lol).\n \n\nsknebel also pointed me to an excellent resource that the Unicode consortium calls the \"best definition of the full set [of emoji]\" - the emoji-test.txt file. Here's the Unicode 14 emoji-test.txt file. It encodes each emoji in a line-oriented format, organized helpfully into groups and sub-groups like the ones you see on your favorite emoji keyboard.\nI could parse this file out into various datasets annotated with their groupings and sub-groupings. Then, I could use those definitions to pull together any combination of (sub-)groupings that I want into different hash-emoji datasets.\n\n I could expand a \"customize your ID\" tool to allow folks who don't like their initial ID to opt out of any groups they don't want emojis from. I could treat those groupings as a flag set and map that flag set to an emoji to prepend to their ID, so each combination of groups becomes its own key space. Nice!\n \n\nReader, let me tell you: I do not want to do all of that.\nEnd with the other Horrible Admission \ud83e\udd2b\ud83d\ude0f\nAs implemented, the webring isn't a true ring. Whether a visitor clicks your custom emoji /next link or your custom emoji /previous link, the webring, in fact, sends you to another active site in the ring at random.\nSo what's next? I think the webring can function fine without these IDs. The copy-paste webring links can become identical for everyone, and the directory, sign-in, and dashboard pages don't make use of them at all. The one exception is individual profile page URLs for member pages, which I think I can safely drop.\n\n What do you think? Are you horrified by any of this? Enraged? Got an ideas I can try instead? Drop me a reply, I'd love to hear from you!",
"html": "<p>It's another rambling web dev post sorry not sorry grab a beverage and let's go.</p>\n<h2>Begin with the Horrible Admission \ud83e\udd2b\ud83d\ude33</h2>\n<p>Rather than make you wait, here it is:</p>\n<p>I created and maintain <a href=\"https://xn--sr8hvo.ws/\">An IndieWeb Webring</a> and it uses emojis as IDs. When you add your site to the webring by signing in, an emoji ID is created for you, and it acts, in some ways, like your username or profile ID.</p>\n<p>For example my webring profile is: <a href=\"https://xn--sr8hvo.ws/%F0%9F%9A%AF\">\ud83d\udd78\ufe0f\ud83d\udc8d.ws/</a><a href=\"https://xn--sr8hvo.ws/%F0%9F%9A%AF\">\ud83d\udeaf</a></p>\n<p>\n Hopefully you see the appeal. The webring is on an <a href=\"https://en.wikipedia.org/wiki/Emoji_domain\">emoji domain</a>, which I registered at <a href=\"https://indieweb.org/2018\">IndieWeb Summit 2018</a> inspired by something <a href=\"https://dougbeal.com/\">Doug Beal</a> presented. It was soon decided that I must in fact build a webring there and, leveraging his influence as the originator of the idea, Doug insisted that emojis be used as user IDs. Probably because: moar emojis!\n <br /></p>\n<h2>Why even have IDs? \ud83d\udec2\ud83e\udd37\ud83c\udffb\u200d\u2642\ufe0f</h2>\n<p>This is a dang good question and I could probably sleep better if I drop them.</p>\n<h3>\n Ring-ness and identifying click sources\n <br /></h3>\n<p>\n <i>At the time</i>, the idea was that a webring should be a <i>ring</i>, with adjacency. In other words, if I click the \"next site\" link on your website, it should consistently go to the same site. If I click the \"previous site\" link on <i>their</i> site, it should consistently go back to yours. In order to consistently know which site to send them to next, the webring needs to know where you're coming <i>from.</i>\n <br /></p>\n<p>Historically there has been a way to know where a visitor is coming from: the HTTP \"Referer\" [sic] header. However, <i>at the time</i> (and in the time since) there have been privacy issues around using this header, and it was not uncommon to see sites sabotage this info with purposeful redirects, <a href=\"https://developer.mozilla.org/en-US/docs/Web/Security/Referer_header:_privacy_and_security_concerns\">browser standards were added to allow degrading or removing referrer info</a>, and <a href=\"https://developer.chrome.com/blog/referrer-policy-new-chrome-default/\">Chrome even implemented default policies to degrade it</a>.</p>\n<p>So the more reliable thing would be to put some identifier in the URL and trust that webring members wouldn't like weirdly spoof one anothers' unique webring URLs.</p>\n<h3>\n Profile pages\n <br /></h3>\n<p>\n Another <i>at the time</i> thought was that webring members might want to \"prove\" that they were on the webring. An active profile page with <a href=\"https://indieweb.org/rel-me\">rel-me verification</a> linking back to their homepage could allow other sites and tools to say \"oh hey! you're a member of this webring\". Maybe we could show some stats there! At any rate, none of those use cases ever came into existence as far as I know. (Besides, stats are gross.)\n <br /></p>\n<h3>\n Why not use <xyz> as an ID? \ud83e\udd14\ud83d\udca1\n <br /></h3>\n<p>Some things I considered and discarded:</p>\n<ul><li>Just use the URL. URLs-appended-to-URLs require escaping and sanitizing and this gets ugly and long.</li>\n <li>Use a hash of the URL. I like this approach (spoiler alert) but even when they are short hashes are also long and ugly.</li>\n <li>\n Use a numeric ID like a database row. This would probably be fine but numeric IDs can be easily crawled (fine for a webring I guess??) and <a href=\"https://news.ycombinator.com/item?id=12962235\">people get weird about low ID numbers sometimes</a> (warning: orange site link). Also they are <i>boring</i>.\n <br /></li>\n <li>Something more clever. Well, we probably could have but this was a weekend hack kind of project.</li>\n</ul><h2>The original sin \ud83c\udf4e\ud83d\udc0d</h2>\n<p>\n There is a fun little <a href=\"https://github.com/earobinson/hash-emoji\">NodeJS library called hash-emoji</a> that takes any-ol-thing and gives you back a string of emojis of the length you ask. Under the hood, it uses a strong SHA256 hash in hexadecimal, parses that hexadecimal number, then uses modulo arithmetic to keep adding \"digits\" just like any hash algorithm, only the \"digits\" come from a collection of emojis that were in wide use back in 2017 when the library was created.\n <br /></p>\n<p>\n I alluded to this in <a href=\"https://martymcgui.re/2019/01/19/an-indiewebring-directory/\">my post about adding a directory to the webring in 2019</a>, but slapping a random emoji or two or three on someone's profile is <i>potentially problematic</i>. When some folks pointed out it was odd that they were assigned a country flag for a place they had never been, I cheekily forked hash-emoji to make <a href=\"https://github.com/martymcguire/hash-emoji-without-borders\">hash-emoji-without-borders</a>, which is identical in all ways except I pulled out all flags. Now nobody would get a flag!\n <br /></p>\n<p>However, by removing the flags I had shrunk the <i>key space</i> for the emoji hash. It wasn't great to begin with - using one emoji from the initial set of ~1300 was bound to lead to collisions eventually - but by changing the set I felt like I was increasing the likelihood that some new signup would be assigned the same emoji ID as an already existing site in the ring.</p>\n<p>So, I bumped the length of new IDs up to 2. And then, after an unrelated change where I started normalizing URLs differently before creating their hash ID, up to 3.</p>\n<p>\n Let me tell you. 3 emoji almost always tell a story. You can't <i>not</i> see them. Sometimes those stories can be problematic! Or maybe it's nice but you don't find it relatable. Or maybe there is no story, per se, but you're assigned something that you object to being associated with, like weapons or kissing faces or drugs and alcohol or religious symbols, or ...\n <br /></p>\n<p>Some folks also ran into issues with the URLs on their web hosting. While I tend to think of the web as being universally UTF-8, that's not necessarily the case. Some hosts would mangle the Unicode URLs, resulting in the webring not being able to find them, resulting in sites being de-listed from the ring. To make it easy for the widest possible of webring users to simply copy their webring links and paste them into their site, I change it to use the %-encoded versions of the emojis. So now my beautiful <a href=\"https://xn--sr8hvo.ws/%F0%9F%9A%AF\">\ud83d\udd78\ufe0f\ud83d\udc8d.ws/</a><a href=\"https://xn--sr8hvo.ws/%F0%9F%9A%AF\">\ud83d\udeaf</a> has become the horrific: https://xn--sr8hvo.ws/%F0%9F%9A%AF</p>\n<p>Instead of worrying too much about any of this I just ... left it alone. A few times I received requests for folks who wanted something custom, and sometimes I obliged as long as it was a request for a unique one- or two-emoji ID, so it couldn't collide with someone's future random ID.</p>\n<h2>Fooling around, finding out \ud83e\udd6b\ud83e\udeb1</h2>\n<p>I've been low-key working on porting the webring from its old and crumbling NodeJS implementation to (hear me out) PHP (I SAID HEAR ME OUT). The basic idea is to reduce the number of emails I get from GitHub where dependabot reports a vulnerability in this or that dependency-of-a-dependency, and more importantly to reduce the amount of time that updating those dependencies takes by reducing the amount of breakage that occurs. I guess this is me saying that churn among dependencies for NodeJS apps feels more disruptive to me than I expect churn to be for PHP. Please don't @ me. Any way.</p>\n<h3>\n hash-emoji is broken\n <br /></h3>\n<p>\n When porting hash-emoji from Javascript to PHP I had some issues where the modulo and division math wasn't working. Turns out SHA256 digests, which are hex-encoded strings 64-characters in length, make for <i>very large numbers</i> when you represent them <i>as numbers</i> to do <i>number math</i> on them. With basic PHP numeric types this was turning up junk, zeroes for every modulo division.\n <br /></p>\n<p>So I tried out both of the main PHP extensions for arbitrary precision math, <a href=\"https://www.php.net/manual/en/book.gmp.php\">GMP</a> and <a href=\"https://www.php.net/manual/en/book.bc.php\">BC Math</a>, and got results that were at least functional. However, <i>they weren't the same</i> as the Javascript hash-emoji implementation.</p>\n<p>At least, they weren't the same <i>until</i> I updated my copy of hash-emoji to use <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/BigInt\">BigInt</a> to make sure it was doing its arbitrary precision math properly. It was at this point that Javascript hash-emoji now began consistently outputting the same results as my new PHP implementation.</p>\n<p>That means the original hash-emoji algorithm, due to some quirks of Javascript Number math for large numbers, gives results that are not consistent with the same algorithm when using arbitrary precision math types.</p>\n<p>\n With my skills I cannot hope to make a PHP port of hash-emoji that produces identically quirky results to the Javascript version, so, it looks like emoji IDs will have to change <i>again</i>.\n <br /></p>\n<h2>Considering the abyss \u26ab\ud83d\udc40</h2>\n<p>I thought that, if the emoji ID generation has to change, maybe I can change it for the better? I <a href=\"https://chat.indieweb.org/dev/2023-04-26#t1682525287569200\">brainstormed some ideas in the IndieWeb chat</a>. One nice change would be to bring the emoji set up-to-date to at least Unicode 14 (published 2021, implemented widely during 2022). One major unsolved challenge would be to come up with some \"unproblematic\" set of emojis. For example, modifiers for skin tone and gender are widely supported, even in complex combinations like people kissing.</p>\n<p>\n Thanks to <a href=\"https://www.svenknebel.de/posts/\">sknebel</a> some helpful suggestions, like generating IDs without skin tone modifiers and stripping out skin tone modifiers before looking up an ID. This would allow webring users to customize any emoji that have skin tone variants. Maybe that could be expanded to customizing more things when there are variants by gender, or complex combinations like family with two adults and two children, if it should come up. A \"customize your ID\" tool begins to design itself (lol).\n <br /></p>\n<p>sknebel also pointed me to an <i>excellent</i> resource that the <a href=\"https://www.unicode.org/reports/tr51/tr51-21.html#Identification\">Unicode consortium calls the \"best definition of the full set [of emoji]\"</a> - the emoji-test.txt file. Here's the <a href=\"https://unicode.org/Public/emoji/14.0/emoji-test.txt\">Unicode 14 emoji-test.txt</a> file. It encodes each emoji in a line-oriented format, organized helpfully into groups and sub-groups like the ones you see on your favorite emoji keyboard.</p>\n<p>I could parse this file out into various datasets annotated with their groupings and sub-groupings. Then, I could use those definitions to pull together any combination of (sub-)groupings that I want into different hash-emoji datasets.</p>\n<p>\n I could expand a \"customize your ID\" tool to allow folks who don't like their initial ID to opt out of any groups they don't want emojis from. I could treat those groupings as a flag set and map that flag set to an emoji to prepend to their ID, so each combination of groups becomes its own key space. Nice!\n <br /></p>\n<p>Reader, let me tell you: I do not want to do all of that.</p>\n<h2>End with the other Horrible Admission \ud83e\udd2b\ud83d\ude0f</h2>\n<p>As implemented, the webring isn't a true <i>ring</i>. Whether a visitor clicks your custom emoji /next link or your custom emoji /previous link, the webring, in fact, sends you to another active site in the ring <i>at random</i>.</p>\n<p>So what's next? I think the webring can function fine without these IDs. The copy-paste webring links can become identical for everyone, and the directory, sign-in, and dashboard pages don't make use of them at all. The one exception is individual profile page URLs for member pages, which I think I can safely drop.</p>\n<p>\n What do you think? Are you horrified by any of this? Enraged? Got an ideas I can try instead? Drop me a reply, I'd love to hear from you!\n <br /></p>"
},
"author": {
"type": "card",
"name": "Marty McGuire",
"url": "https://martymcgui.re/",
"photo": "https://martymcgui.re/images/logo.jpg"
},
"post-type": "article",
"_id": "36820335",
"_source": "175",
"_is_read": false
}
{
"type": "entry",
"author": {
"name": "@pablo",
"url": "https://social.lifeofpablo.com/@pablo",
"photo": null
},
"url": "https://social.lifeofpablo.com/@pablo/110268590400891412",
"content": {
"html": "<p>Join an event at the indieweb!</p><p><a href=\"https://events.indieweb.org/\"><span>https://</span><span>events.indieweb.org/</span><span></span></a></p><p><a href=\"https://social.lifeofpablo.com/tags/indieweb\">#<span>indieweb</span></a> <a href=\"https://social.lifeofpablo.com/tags/ownyourdata\">#<span>ownyourdata</span></a> <a href=\"https://social.lifeofpablo.com/tags/collaborate\">#<span>collaborate</span></a> <a href=\"https://social.lifeofpablo.com/tags/socialize\">#<span>socialize</span></a></p>",
"text": "Join an event at the indieweb!https://events.indieweb.org/#indieweb #ownyourdata #collaborate #socialize"
},
"published": "2023-04-27T03:12:41+00:00",
"post-type": "note",
"_id": "36819451",
"_source": "7235",
"_is_read": false
}
{
"type": "entry",
"published": "2023-04-26T21:30:00+0100",
"url": "https://www.jvt.me/mf2/2023/04/zoxqk/",
"category": [
"fediverse"
],
"bookmark-of": [
"https://justingarrison.com/blog/2023-04-24-mastodon-is-doomed/"
],
"author": {
"type": "card",
"name": "Jamie Tanna",
"url": "https://www.jvt.me",
"photo": "https://www.jvt.me/img/profile.png"
},
"post-type": "bookmark",
"refs": {
"https://justingarrison.com/blog/2023-04-24-mastodon-is-doomed/": {
"type": "entry",
"summary": "Mastodon won't be the next Twitter, and it's not because of Bluesky. The ideals and execution won't scale.",
"url": "https://justingarrison.com/blog/2023-04-24-mastodon-is-doomed/",
"featured": "https://justingarrison.com/img/mastodon-doomed-banner.png",
"name": "Mastodon Is Doomed",
"post-type": "article"
}
},
"_id": "36816643",
"_source": "2169",
"_is_read": false
}
Some technologies just keep coming back⦠Currently writing XML-RPC code, this time for JavaScript. Despite the new-ish JSON APIs in WordPress, not to mention Micropub, MetaWeblog is still the best way to talk to WordPress without any extra plugins or configuration.
{
"type": "entry",
"author": {
"name": "Manton Reece",
"url": "https://www.manton.org/",
"photo": "https://micro.blog/manton/avatar.jpg"
},
"url": "https://www.manton.org/2023/04/26/some-technologies-just.html",
"content": {
"html": "<p>Some technologies just keep coming back\u2026 Currently writing XML-RPC code, this time for JavaScript. Despite the new-ish JSON APIs in WordPress, not to mention Micropub, MetaWeblog is still the best way to talk to WordPress without any extra plugins or configuration.</p>",
"text": "Some technologies just keep coming back\u2026 Currently writing XML-RPC code, this time for JavaScript. Despite the new-ish JSON APIs in WordPress, not to mention Micropub, MetaWeblog is still the best way to talk to WordPress without any extra plugins or configuration."
},
"published": "2023-04-26T09:50:04-05:00",
"post-type": "note",
"_id": "36809431",
"_source": "12",
"_is_read": false
}
I didn't like how all these interests looked in my profile, so I'm putting them in a post.
#Nerd, #Virginia, #DMV, #InfoSec, #IndieWeb, #Privacy, #CatDad, #Mac, #Apple, #PopCulture, #TV, #Music, #KayScarpetta, #IndieFolk, #EDM, #Photography, #Gay, #LGBT, #Movies, #OpenStack, #macOS, #iOS, #Ubuntu, #FOSS, #fedi22
{
"type": "entry",
"author": {
"name": "@kevin",
"url": "https://itskevin.social/@kevin",
"photo": null
},
"url": "https://itskevin.social/@kevin/110266455530282607",
"content": {
"html": "<p>I didn't like how all these interests looked in my profile, so I'm putting them in a post.</p><p><a href=\"https://itskevin.social/tags/Nerd\">#<span>Nerd</span></a>, <a href=\"https://itskevin.social/tags/Virginia\">#<span>Virginia</span></a>, <a href=\"https://itskevin.social/tags/DMV\">#<span>DMV</span></a>, <a href=\"https://itskevin.social/tags/InfoSec\">#<span>InfoSec</span></a>, <a href=\"https://itskevin.social/tags/IndieWeb\">#<span>IndieWeb</span></a>, <a href=\"https://itskevin.social/tags/Privacy\">#<span>Privacy</span></a>, <a href=\"https://itskevin.social/tags/CatDad\">#<span>CatDad</span></a>, <a href=\"https://itskevin.social/tags/Mac\">#<span>Mac</span></a>, <a href=\"https://itskevin.social/tags/Apple\">#<span>Apple</span></a>, <a href=\"https://itskevin.social/tags/PopCulture\">#<span>PopCulture</span></a>, <a href=\"https://itskevin.social/tags/TV\">#<span>TV</span></a>, <a href=\"https://itskevin.social/tags/Music\">#<span>Music</span></a>, <a href=\"https://itskevin.social/tags/KayScarpetta\">#<span>KayScarpetta</span></a>, <a href=\"https://itskevin.social/tags/IndieFolk\">#<span>IndieFolk</span></a>, <a href=\"https://itskevin.social/tags/EDM\">#<span>EDM</span></a>, <a href=\"https://itskevin.social/tags/Photography\">#<span>Photography</span></a>, <a href=\"https://itskevin.social/tags/Gay\">#<span>Gay</span></a>, <a href=\"https://itskevin.social/tags/LGBT\">#<span>LGBT</span></a>, <a href=\"https://itskevin.social/tags/Movies\">#<span>Movies</span></a>, <a href=\"https://itskevin.social/tags/OpenStack\">#<span>OpenStack</span></a>, <a href=\"https://itskevin.social/tags/macOS\">#<span>macOS</span></a>, <a href=\"https://itskevin.social/tags/iOS\">#<span>iOS</span></a>, <a href=\"https://itskevin.social/tags/Ubuntu\">#<span>Ubuntu</span></a>, <a href=\"https://itskevin.social/tags/FOSS\">#<span>FOSS</span></a>, <a href=\"https://itskevin.social/tags/fedi22\">#<span>fedi22</span></a></p>",
"text": "I didn't like how all these interests looked in my profile, so I'm putting them in a post.#Nerd, #Virginia, #DMV, #InfoSec, #IndieWeb, #Privacy, #CatDad, #Mac, #Apple, #PopCulture, #TV, #Music, #KayScarpetta, #IndieFolk, #EDM, #Photography, #Gay, #LGBT, #Movies, #OpenStack, #macOS, #iOS, #Ubuntu, #FOSS, #fedi22"
},
"published": "2023-04-26T18:09:45+00:00",
"post-type": "note",
"_id": "36809238",
"_source": "7235",
"_is_read": false
}
There's a lot of great explanation sites about the fediverse and its various communities, and I wanted to take a stab at this myself.
https://jointhefediverse.net
The site (very much work in progress) is aimed at a more casual audience. Let me know what you think!
#fediverse #SocialMedia #OpenWeb #IndieWeb #JoinTheFediverse
{
"type": "entry",
"author": {
"name": "@stefan",
"url": "https://stefanbohacek.online/@stefan",
"photo": null
},
"url": "https://stefanbohacek.online/@stefan/110265867199360216",
"content": {
"html": "<p>There's a lot of great explanation sites about the fediverse and its various communities, and I wanted to take a stab at this myself.</p><p><a href=\"https://jointhefediverse.net\"><span>https://</span><span>jointhefediverse.net</span><span></span></a></p><p>The site (very much work in progress) is aimed at a more casual audience. Let me know what you think!</p><p><a href=\"https://stefanbohacek.online/tags/fediverse\">#<span>fediverse</span></a> <a href=\"https://stefanbohacek.online/tags/SocialMedia\">#<span>SocialMedia</span></a> <a href=\"https://stefanbohacek.online/tags/OpenWeb\">#<span>OpenWeb</span></a> <a href=\"https://stefanbohacek.online/tags/IndieWeb\">#<span>IndieWeb</span></a> <a href=\"https://stefanbohacek.online/tags/JoinTheFediverse\">#<span>JoinTheFediverse</span></a></p>",
"text": "There's a lot of great explanation sites about the fediverse and its various communities, and I wanted to take a stab at this myself.https://jointhefediverse.netThe site (very much work in progress) is aimed at a more casual audience. Let me know what you think!#fediverse #SocialMedia #OpenWeb #IndieWeb #JoinTheFediverse"
},
"published": "2023-04-26T15:40:08+00:00",
"post-type": "note",
"_id": "36805253",
"_source": "7235",
"_is_read": false
}