Next thing I should do since I fixed the bug: webmentions. I really need to handle webmentions, and I think I actually will be able to do so rather easily now that I know my database doesn’t lock up anymore. I just need to attach an MF2 parser.
In general, what I would want to have in a perfect world is:
- My own IndieAuth implementation
- My own webmention acceptor (I already have plans but I need some extra software for it to work)
- My own media endpoint (that autoconverts pictures to webp)
- My own Microsub server
- Editing posts in-band when logged in via IndieAuth
- Make that second widget at the homepage do something interesting
{
"type": "entry",
"published": "2022-05-10T21:02:08.759838269+03:00",
"url": "https://fireburn.ru/posts/aQk0akz",
"category": [
"Kittybox"
],
"content": {
"text": "Next thing I should do since I fixed the bug: webmentions. I really need to handle webmentions, and I think I actually will be able to do so rather easily now that I know my database doesn\u2019t lock up anymore. I just need to attach an MF2 parser.\n\nIn general, what I would want to have in a perfect world is:\n\nMy own IndieAuth implementation\n\nMy own webmention acceptor (I already have plans but I need some extra software for it to work)\n\nMy own media endpoint (that autoconverts pictures to webp)\n\nMy own Microsub server\n\nEditing posts in-band when logged in via IndieAuth\n\nMake that second widget at the homepage do something interesting",
"html": "<p>Next thing I should do since I fixed the bug: webmentions. I really need to handle webmentions, and I think I actually will be able to do so rather easily now that I know my database doesn\u2019t lock up anymore. I just need to attach an MF2 parser.</p>\n\n<p>In general, what I would want to have in a perfect world is:</p>\n\n<ul><li>My own IndieAuth implementation</li>\n\n<li>My own webmention acceptor (I already have plans but I need some extra software for it to work)</li>\n\n<li>My own media endpoint (that autoconverts pictures to webp)</li>\n\n<li>My own Microsub server</li>\n\n<li>Editing posts in-band when logged in via IndieAuth</li>\n\n<li>Make that second widget at the homepage do something interesting</li>\n</ul>"
},
"post-type": "note",
"_id": "29004227",
"_source": "1371",
"_is_read": true
}
@MuireallPrase Maybe this helps with context? https://boffosocko.com/2022/05/09/the-logos-ethos-and-pathos-of-indieweb/
I like your site; glad to virtually meet another who's interested in physics, math, and typesetting!
{
"type": "entry",
"published": "2022-05-09T20:44:18+00:00",
"url": "http://stream.boffosocko.com/2022/muireallprase-maybe-this-helps-with-context-20220509the-logos-ethos-and-pathos-of-indiewebi-like-your-site",
"syndication": [
"https://twitter.com/ChrisAldrich/status/1523766225159041024"
],
"in-reply-to": [
"https://twitter.com/MuireallPrase/status/1522959677465759744"
],
"content": {
"text": "@MuireallPrase Maybe this helps with context? https://boffosocko.com/2022/05/09/the-logos-ethos-and-pathos-of-indieweb/\n\nI like your site; glad to virtually meet another who's interested in physics, math, and typesetting!",
"html": "<a href=\"https://twitter.com/MuireallPrase\">@MuireallPrase</a> Maybe this helps with context? <a href=\"https://boffosocko.com/2022/05/09/the-logos-ethos-and-pathos-of-indieweb/\">https://boffosocko.com/2022/05/09/the-logos-ethos-and-pathos-of-indieweb/</a><br />\nI like your site; glad to virtually meet another who's interested in physics, math, and typesetting!"
},
"author": {
"type": "card",
"name": "Chris Aldrich",
"url": "http://stream.boffosocko.com/profile/chrisaldrich",
"photo": "http://stream.boffosocko.com/file/600427b81f7785e704eadfe511a9270f/thumb.jpg"
},
"post-type": "reply",
"_id": "28984044",
"_source": "192",
"_is_read": true
}
Kudos to @KevinMarks for his recent work on @Tumblr to add microformats to make it more IndieWeb friendly!
https://changes.tumblr.com/post/683524731509653505/friday-may-6th-2022
{
"type": "entry",
"published": "2022-05-09T00:14:51+00:00",
"url": "http://stream.boffosocko.com/2022/kudos-to-kevinmarks-for-his-recent-work-on-tumblr-to",
"syndication": [
"https://twitter.com/ChrisAldrich/status/1523456550156656641"
],
"in-reply-to": [
"https://twitter.com/ChrisAldrich/status/1522440410081251329",
"http://stream.boffosocko.com/2022/at-homebrew-website-club-watching-with-great-anticipation-as-kevinmarks",
"https://boffosocko.com/2022/05/05/55804584/"
],
"content": {
"text": "Kudos to @KevinMarks for his recent work on @Tumblr to add microformats to make it more IndieWeb friendly! \nhttps://changes.tumblr.com/post/683524731509653505/friday-may-6th-2022",
"html": "Kudos to @KevinMarks for his recent work on @Tumblr to add microformats to make it more IndieWeb friendly! <br /><a href=\"https://changes.tumblr.com/post/683524731509653505/friday-may-6th-2022\">https://changes.tumblr.com/post/683524731509653505/friday-may-6th-2022</a>"
},
"author": {
"type": "card",
"name": "Chris Aldrich",
"url": "http://stream.boffosocko.com/profile/chrisaldrich",
"photo": "http://stream.boffosocko.com/file/600427b81f7785e704eadfe511a9270f/thumb.jpg"
},
"post-type": "reply",
"_id": "28965426",
"_source": "192",
"_is_read": true
}
{
"type": "entry",
"published": "2022-05-08T05:37:01.160733218+03:00",
"url": "https://fireburn.ru/posts/mending-broken-permalinks-part-1",
"category": [
"kittybox",
"indieweb"
],
"name": "Mending what's broken, or how I discovered some broken links on my website",
"content": {
"text": "It was a restless night. I just fixed my personal website's software, Kittybox, so it wouldn't hang after the first few hours of working (I hope my bugfix finally worked! I've been chasing that bug for months). In an attempt to stimulate my bored brain I was reading some articles on the IndieWeb wiki\u00a0and stumbled upon discussions that my posts on this very website sparked.\n \n\nExcept the links didn't work. Argh, I can't read my own posts, this won't do!\nOf course, this was all my fault. But, thanks to past me having a lot of foresight, this should be rather easy to fix. First thing I decided to do was to patch articles containing links to my posts so the links would actually point to something - despite me wiping my website's main feed, all of the articles are still there because I know some people in the IndieWeb community have been linking to me. The second thing I did not do yet, and if I don't write it down, I might forget it all, so here's the post so I don't forget to do it.\nPreserving compatibility\nWhen I was designing the first versions of Kittybox (back then it didn't even had the name!) I was very inspired by 00dani.me's proposed approach of storing MF2-JSON directly in the database. First I stored it in flat files. Then, as I realized my file storage is incredibly slow, I migrated to Redis to keep my dataset in memory. Then several rewrites happened, and the Rust rewrite happened. The database's underlying format was still almost the same, so it was rather easy to port it over. Except I might've forgotten an important step.\nIn Kittybox, one post can contain several links. One of them is a UID - an authoritative link to the post, the one that Kittybox would use as a primary key in an SQL database if it used one. But since I use the filesystem as my database, the authoritative link gets transformed into an authoritative path which refers directly to the file with the MF2-JSON blob. All other links are supposed to be symlinks.\nExcept apparently when I was importing the posts in the new file storage backend, I somehow forgot to make all of those symlinks. And that's why the posts don't work.\nPast Vika's foresight\nStoring the posts in MF2-JSON as processed Micropub data was actually a very good idea. Pretty much all versions of Kittybox filled in alternative URLs (which would be u-url in MF2-HTML and .properties.url[] in MF2-JSON) which actually can be used to restore those permalinks!\n\n Eventually permalink checking will need to be built into the software itself as a consistency check. I could probably write it like this:\n \n\n\nuse futures::stream::StreamExt;\nlet urls = json[\"properties\"][\"url\"]\n .as_array()\n .unwrap_or_default()\n .into_iter()\n .filter_map(|s: serde_json::Value| s.as_str().ok())\n .map(|url| url_to_path(&self.root_dir, url);\n\nlet mut url_stream = tokio_stream::iter(urls);\nurl_stream.for_each_concurrent(2, |path| async move {\n if let Err(err) = tokio::fs::symlink_metadata(path).await {\n if err.kind() == std::io::ErrorKind::NotFound {\n let link = url_to_path(&self.root_dir, url);\n let basedir = link.parent();\n if basedir.is_err() {\n warn!(\"Database consistency check: couldn't calculate parent for {}\", link);\n return;\n }\n let basedir = basedir.unwrap();\n let relative = path_relative_from(&canonical_path, basedir).unwrap();\n if let Err(Err) = tokio::fs::symlink(relative, link).await {\n warn!(\"Database consistency check: failed to restore symlink {} for {}: {:?}\", canonical, path);\n }\n }\n }\n});\nI'm pretty sure this won't compile out of the box because of borrow checking and variables which need to be bound, but you get the idea. It can be performed on every read (for maximum correctness) or there could be scheduled tasks that sweep the database and perform those consistency checks - I think the second one is the better idea, since it allows me to check even posts that were completely forgotten by everyone. But I'll need to learn how to schedule tasks to run at certain intervals in Tokio - I'm sure there's a function for that though.\n\n When will it be complete?\n \n\nI hope it will be built into the software soon. For now, I will leave this as a to-do of sorts. A reminder to myself and an example for the others - of both my foresight and my mistakes.\nAnd for now, I could potentially build a script that recursively walks my directory tree and restores symlinks via a cron job. It'll probably work just as well too. But I'll do it later. I wanna sleep...and coffeeeee....",
"html": "<p>\n It was a restless night. I just fixed my personal website's software, Kittybox, so it wouldn't hang after the first few hours of working (I hope my bugfix finally worked! I've been chasing that bug for months). In an attempt to stimulate my bored brain I was reading some articles on the <a href=\"https://indieweb.org/Main_Page\">IndieWeb wiki</a>\u00a0and stumbled upon discussions that my posts on this very website sparked.\n <br /></p>\n<p>Except the links didn't work. Argh, I can't read my own posts, this won't do!</p>\n<p>Of course, this was all my fault. But, thanks to past me having a lot of foresight, this should be rather easy to fix. First thing I decided to do was to patch articles containing links to my posts so the links would actually point to something - despite me wiping my website's main feed, all of the articles are still there because I know some people in the IndieWeb community have been linking to me. The second thing I did not do yet, and if I don't write it down, I might forget it all, so here's the post so I don't forget to do it.</p>\n<h2>Preserving compatibility</h2>\n<p>When I was designing the first versions of Kittybox (back then it didn't even had the name!) I was very inspired by <a href=\"https://00dani.me/\">00dani.me</a>'s proposed <a href=\"https://00dani.me/articles/53/lemoncurry-1-10-0-what-s-new-and-what-s-next\">approach</a> of storing MF2-JSON directly in the database. First I stored it in flat files. Then, as I realized my file storage is incredibly slow, I migrated to Redis to keep my dataset in memory. Then several rewrites happened, and the Rust rewrite happened. The database's underlying format was still almost the same, so it was rather easy to port it over. Except I might've forgotten an important step.</p>\n<p>In Kittybox, one post can contain several links. One of them is a UID - an authoritative link to the post, the one that Kittybox would use as a primary key in an SQL database if it used one. But since I use the filesystem as my database, the authoritative link gets transformed into an authoritative path which refers directly to the file with the MF2-JSON blob. All other links are supposed to be symlinks.</p>\n<p>Except apparently when I was importing the posts in the new file storage backend, I somehow forgot to make all of those symlinks. And that's why the posts don't work.</p>\n<h2>Past Vika's foresight</h2>\n<p>Storing the posts in MF2-JSON as processed Micropub data was actually a very good idea. Pretty much all versions of Kittybox filled in alternative URLs (which would be u-url in MF2-HTML and .properties.url[] in MF2-JSON) which actually can be used to restore those permalinks!</p>\n<p>\n Eventually permalink checking will need to be built into the software itself as a consistency check. I could probably write it like this:\n <br /></p>\n<pre><code>\nuse futures::stream::StreamExt;\nlet urls = json[\"properties\"][\"url\"]\n .as_array()\n .unwrap_or_default()\n .into_iter()\n .filter_map(|s: serde_json::Value| s.as_str().ok())\n .map(|url| url_to_path(&self.root_dir, url);\n\nlet mut url_stream = tokio_stream::iter(urls);\nurl_stream.for_each_concurrent(2, |path| async move {\n if let Err(err) = tokio::fs::symlink_metadata(path).await {\n if err.kind() == std::io::ErrorKind::NotFound {\n let link = url_to_path(&self.root_dir, url);\n let basedir = link.parent();\n if basedir.is_err() {\n warn!(\"Database consistency check: couldn't calculate parent for {}\", link);\n return;\n }\n let basedir = basedir.unwrap();\n let relative = path_relative_from(&canonical_path, basedir).unwrap();\n if let Err(Err) = tokio::fs::symlink(relative, link).await {\n warn!(\"Database consistency check: failed to restore symlink {} for {}: {:?}\", canonical, path);\n }\n }\n }\n});</code></pre>\n<p>I'm pretty sure this won't compile out of the box because of borrow checking and variables which need to be bound, but you get the idea. It can be performed on every read (for maximum correctness) or there could be scheduled tasks that sweep the database and perform those consistency checks - I think the second one is the better idea, since it allows me to check even posts that were completely forgotten by everyone. But I'll need to learn how to schedule tasks to run at certain intervals in Tokio - I'm sure there's a function for that though.</p>\n<h3>\n When will it be complete?\n <br /></h3>\n<p>I hope it will be built into the software soon. For now, I will leave this as a to-do of sorts. A reminder to myself and an example for the others - of both my foresight and my mistakes.</p>\n<p>And for now, I could potentially build a script that recursively walks my directory tree and restores symlinks via a cron job. It'll probably work just as well too. But I'll do it later. <i>I wanna sleep...and coffeeeee....</i></p>"
},
"post-type": "article",
"_id": "28951082",
"_source": "1371",
"_is_read": true
}
good morning indieweb
i have returned somehow from having my site in semipermanent downtime
please don’t be gentle with it i need a little bit of sustained load so i can check a hypothesis
{
"type": "entry",
"published": "2022-05-08T00:09:12.813629086+03:00",
"url": "https://fireburn.ru/posts/aQRsZZZ",
"category": [
"kittybox"
],
"content": {
"text": "good morning indieweb\n\ni have returned somehow from having my site in semipermanent downtime\n\nplease don\u2019t be gentle with it i need a little bit of sustained load so i can check a hypothesis",
"html": "<p>good morning indieweb</p>\n\n<p>i have returned somehow from having my site in semipermanent downtime</p>\n\n<p>please don\u2019t be gentle with it i need a little bit of sustained load so i can check a hypothesis</p>"
},
"post-type": "note",
"_id": "28951083",
"_source": "1371",
"_is_read": true
}
@edheil Because of the IndieWeb principle of plurality, you've got a tremendous amount of choice. Part of the issue is that there are SO MANY options and potential combinations of doing things.
What do you want the site to do? How much admin time to you want to spend on it? How flexible and modifiable do you want it to be? What skills do you have? What skills do you want to work on?
Both of the options you mention are excellent, though there's probably more immediate flexibility in WordPress with plugins. If you want something with no admin, but still some reasonable flexibility then micro.blog is a great way to go. (All three support a very broad range of all the IndieWeb building blocks. Of course, this doesn't even touch the custom-built or static site generator spaces which are also available options. And who's to say you should only have one site? ;)
This is a great question to ask in the IndieWeb Dev chat channel for advice from a bigger group of people with a tremendous wealth and diversity of building experience. https://chat.indieweb.org/dev
{
"type": "entry",
"published": "2022-05-07T06:24:41+00:00",
"url": "http://stream.boffosocko.com/2022/edheil-because-of-the-indieweb-principle-of-plurality-youve-got",
"syndication": [
"https://twitter.com/ChrisAldrich/status/1522824787617271808"
],
"in-reply-to": [
"https://twitter.com/edheil/status/1522772286851461121"
],
"content": {
"text": "@edheil Because of the IndieWeb principle of plurality, you've got a tremendous amount of choice. Part of the issue is that there are SO MANY options and potential combinations of doing things. \n\n\nWhat do you want the site to do? How much admin time to you want to spend on it? How flexible and modifiable do you want it to be? What skills do you have? What skills do you want to work on? \n\n\nBoth of the options you mention are excellent, though there's probably more immediate flexibility in WordPress with plugins. If you want something with no admin, but still some reasonable flexibility then micro.blog is a great way to go. (All three support a very broad range of all the IndieWeb building blocks. Of course, this doesn't even touch the custom-built or static site generator spaces which are also available options. And who's to say you should only have one site? ;) \n\n\nThis is a great question to ask in the IndieWeb Dev chat channel for advice from a bigger group of people with a tremendous wealth and diversity of building experience. https://chat.indieweb.org/dev",
"html": "<a href=\"https://twitter.com/edheil\">@edheil</a> Because of the IndieWeb principle of plurality, you've got a tremendous amount of choice. Part of the issue is that there are SO MANY options and potential combinations of doing things. <br /><br />\nWhat do you want the site to do? How much admin time to you want to spend on it? How flexible and modifiable do you want it to be? What skills do you have? What skills do you want to work on? <br /><br />\nBoth of the options you mention are excellent, though there's probably more immediate flexibility in WordPress with plugins. If you want something with no admin, but still some reasonable flexibility then micro.blog is a great way to go. (All three support a very broad range of all the IndieWeb building blocks. Of course, this doesn't even touch the custom-built or static site generator spaces which are also available options. And who's to say you should only have one site? ;) <br /><br />\nThis is a great question to ask in the IndieWeb Dev chat channel for advice from a bigger group of people with a tremendous wealth and diversity of building experience. <a href=\"https://chat.indieweb.org/dev\">https://chat.indieweb.org/dev</a>"
},
"author": {
"type": "card",
"name": "Chris Aldrich",
"url": "http://stream.boffosocko.com/profile/chrisaldrich",
"photo": "http://stream.boffosocko.com/file/600427b81f7785e704eadfe511a9270f/thumb.jpg"
},
"post-type": "reply",
"_id": "28936297",
"_source": "192",
"_is_read": true
}
@edheil It creates a 1 to 1 correspondence between the post on your site & your post on Twitter to make it easier for Bridgy to match and sending responses. It also makes it easier to delete copies in the future because you'll know where else on the web you've posted things.
Settings at /wp-admin/admin.php?page=syndication_links will let you set syndication targets so you can use a simple checkbox for cross posting. I particularly love that it dovetails with https://quill.p3k.io/ if you use that with Micropub for posting short notes to your website.
{
"type": "entry",
"published": "2022-05-05T18:24:28+00:00",
"url": "http://stream.boffosocko.com/2022/edheil-it-creates-a-1-to-1-correspondence-between-the",
"syndication": [
"https://twitter.com/ChrisAldrich/status/1522281173266935808"
],
"in-reply-to": [
"https://twitter.com/edheil/status/1522279914346618880"
],
"content": {
"text": "@edheil It creates a 1 to 1 correspondence between the post on your site & your post on Twitter to make it easier for Bridgy to match and sending responses. It also makes it easier to delete copies in the future because you'll know where else on the web you've posted things. \n\n\nSettings at /wp-admin/admin.php?page=syndication_links will let you set syndication targets so you can use a simple checkbox for cross posting. I particularly love that it dovetails with https://quill.p3k.io/ if you use that with Micropub for posting short notes to your website.",
"html": "<a href=\"https://twitter.com/edheil\">@edheil</a> It creates a 1 to 1 correspondence between the post on your site & your post on Twitter to make it easier for Bridgy to match and sending responses. It also makes it easier to delete copies in the future because you'll know where else on the web you've posted things. <br /><br />\nSettings at /wp-admin/admin.php?page=syndication_links will let you set syndication targets so you can use a simple checkbox for cross posting. I particularly love that it dovetails with <a href=\"https://quill.p3k.io/\">https://quill.p3k.io/</a> if you use that with Micropub for posting short notes to your website.<br />"
},
"author": {
"type": "card",
"name": "Chris Aldrich",
"url": "http://stream.boffosocko.com/profile/chrisaldrich",
"photo": "http://stream.boffosocko.com/file/600427b81f7785e704eadfe511a9270f/thumb.jpg"
},
"post-type": "reply",
"_id": "28905940",
"_source": "192",
"_is_read": true
}
@edheil Bridgy matches posts on your site to Twitter using one of a few methods so that it can backfeed the proper replies to the appropriate posts. Providing it with syndication links is usually easiest, and on WordPress try: https://indieweb.org/u-syndication#How_to_link_from_WordPress
David Shanske's Syndication Links plugin also should have a checkbox set up (non-Gutenberg) for more easily syndicating to Twitter and other services if you like. There are many ways to publish to Brid.gy without visiting it for each. Using Shankse's plugin which sends it Webmentions is probably the easiest, though it may require proper markup in your theme. For the technical part see: https://brid.gy/about#publishing which explains in outline how it works.
I think many of the options are documented either here or on related pages: https://indieweb.org/Getting_Started_on_WordPress
For other options and advice, it may be best/easiest to visit the IndieWeb WordPress chat at chat.indieweb.org/wordpress
{
"type": "entry",
"published": "2022-05-05T18:09:57+00:00",
"url": "http://stream.boffosocko.com/2022/edheil-bridgy-matches-posts-on-your-site-to-twitter-using",
"syndication": [
"https://twitter.com/ChrisAldrich/status/1522277828909223936"
],
"in-reply-to": [
"https://twitter.com/edheil/status/1522272854120837121"
],
"content": {
"text": "@edheil Bridgy matches posts on your site to Twitter using one of a few methods so that it can backfeed the proper replies to the appropriate posts. Providing it with syndication links is usually easiest, and on WordPress try: https://indieweb.org/u-syndication#How_to_link_from_WordPress\n\n\nDavid Shanske's Syndication Links plugin also should have a checkbox set up (non-Gutenberg) for more easily syndicating to Twitter and other services if you like. There are many ways to publish to Brid.gy without visiting it for each. Using Shankse's plugin which sends it Webmentions is probably the easiest, though it may require proper markup in your theme. For the technical part see: https://brid.gy/about#publishing which explains in outline how it works. \n\n\nI think many of the options are documented either here or on related pages: https://indieweb.org/Getting_Started_on_WordPress\n\n\nFor other options and advice, it may be best/easiest to visit the IndieWeb WordPress chat at chat.indieweb.org/wordpress",
"html": "<a href=\"https://twitter.com/edheil\">@edheil</a> Bridgy matches posts on your site to Twitter using one of a few methods so that it can backfeed the proper replies to the appropriate posts. Providing it with syndication links is usually easiest, and on WordPress try: <a href=\"https://indieweb.org/u-syndication#How_to_link_from_WordPress\">https://indieweb.org/u-syndication#How_to_link_from_WordPress</a><br /><br />\nDavid Shanske's Syndication Links plugin also should have a checkbox set up (non-Gutenberg) for more easily syndicating to Twitter and other services if you like. There are many ways to publish to Brid.gy without visiting it for each. Using Shankse's plugin which sends it Webmentions is probably the easiest, though it may require proper markup in your theme. For the technical part see: <a href=\"https://brid.gy/about#publishing\">https://brid.gy/about#publishing</a> which explains in outline how it works. <br /><br />\nI think many of the options are documented either here or on related pages: <a href=\"https://indieweb.org/Getting_Started_on_WordPress\">https://indieweb.org/Getting_Started_on_WordPress</a><br /><br />\nFor other options and advice, it may be best/easiest to visit the IndieWeb WordPress chat at chat.indieweb.org/wordpress"
},
"author": {
"type": "card",
"name": "Chris Aldrich",
"url": "http://stream.boffosocko.com/profile/chrisaldrich",
"photo": "http://stream.boffosocko.com/file/600427b81f7785e704eadfe511a9270f/thumb.jpg"
},
"post-type": "reply",
"_id": "28904711",
"_source": "192",
"_is_read": true
}
@edheil Which of the various methods (manually, plugin(s), other) are you using? On fragility front, I'm not too worried as it is open source and has folks helping. It's also only a bridge as I can reply directly to your site.
https://brid.gy/about#cost
https://indieweb.org/Bridgy#Statistics
{
"type": "entry",
"published": "2022-05-05T17:48:05+00:00",
"url": "http://stream.boffosocko.com/2022/edheil-which-of-the-various-methods-manually-plugins-other-are",
"syndication": [
"https://twitter.com/ChrisAldrich/status/1522272153466552320"
],
"in-reply-to": [
"https://twitter.com/edheil/status/1522260056858836993",
"https://edheil.com/2022/05/03/status-update/"
],
"content": {
"text": "@edheil Which of the various methods (manually, plugin(s), other) are you using? On fragility front, I'm not too worried as it is open source and has folks helping. It's also only a bridge as I can reply directly to your site.\nhttps://brid.gy/about#cost\nhttps://indieweb.org/Bridgy#Statistics",
"html": "@edheil Which of the various methods (manually, plugin(s), other) are you using? On fragility front, I'm not too worried as it is open source and has folks helping. It's also only a bridge as I can reply directly to your site.<br /><a href=\"https://brid.gy/about#cost\">https://brid.gy/about#cost</a><br /><a href=\"https://indieweb.org/Bridgy#Statistics\">https://indieweb.org/Bridgy#Statistics</a>"
},
"author": {
"type": "card",
"name": "Chris Aldrich",
"url": "http://stream.boffosocko.com/profile/chrisaldrich",
"photo": "http://stream.boffosocko.com/file/600427b81f7785e704eadfe511a9270f/thumb.jpg"
},
"post-type": "reply",
"_id": "28904715",
"_source": "192",
"_is_read": true
}
Platforms come and go. Buy a domain and set up a permanent space on the web where others to find you and link back to. I have no idea what I put on Myspace back in the day, but everything I’ve published on this site since 2008 is still accessible and the links still work.
A personal website is a digital homestead that you can improve, tinker with, and live in for years to come. It is a home for your thoughts, musings, opinions, trials, and happenings, built in a way that suits you.
I like this little prompt:
What do you wish you had found via Google today but didn’t? Write that.
{
"type": "entry",
"published": "2022-05-05T08:10:40Z",
"url": "https://adactio.com/links/19051",
"category": [
"blogs",
"blogging",
"writing",
"sharing",
"personal",
"publishing",
"indieweb"
],
"bookmark-of": [
"https://cagrimmett.com/thoughts/2022/04/26/why-blog/"
],
"content": {
"text": "Why blog? \u2013 Chuck Grimmett\n\n\n\n\n Platforms come and go. Buy a domain and set up a permanent space on the web where others to find you and link back to. I have no idea what I put on Myspace back in the day, but everything I\u2019ve published on this site since 2008 is still accessible and the links still work.\n \n A personal website is a digital homestead that you can improve, tinker with, and live in for years to come. It is a home for your thoughts, musings, opinions, trials, and happenings, built in a way that suits you.\n\n\nI like this little prompt:\n\n\n What do you wish you had found via Google today but didn\u2019t? Write that.",
"html": "<h3>\n<a class=\"p-name u-bookmark-of\" href=\"https://cagrimmett.com/thoughts/2022/04/26/why-blog/\">\nWhy blog? \u2013 Chuck Grimmett\n</a>\n</h3>\n\n<blockquote>\n <p>Platforms come and go. Buy a domain and set up a permanent space on the web where others to find you and link back to. I have no idea what I put on Myspace back in the day, but everything I\u2019ve published on this site since 2008 is still accessible and the links still work.</p>\n \n <p>A personal website is a <a href=\"https://tomcritchlow.com/2022/03/08/architecture-blogging/\">digital homestead</a> that you can improve, tinker with, and live in for years to come. It is a home for your thoughts, musings, opinions, trials, and happenings, built in a way that suits you.</p>\n</blockquote>\n\n<p>I like this little prompt:</p>\n\n<blockquote>\n <p>What do you wish you had found via Google today but didn\u2019t? Write that.</p>\n</blockquote>"
},
"author": {
"type": "card",
"name": "Jeremy Keith",
"url": "https://adactio.com/",
"photo": "https://adactio.com/images/photo-150.jpg"
},
"post-type": "bookmark",
"_id": "28893502",
"_source": "2",
"_is_read": true
}
At Homebrew Website Club watching with great anticipation as @KevinMarks adds microformats to the base Tumblr theme to help make it more IndieWeb friendly. #RedCups #Flickr
https://events.indieweb.org/2022/05/monthly-guiding-compass-homebrew-website-club-nS6KBMwoZDFm
{
"type": "entry",
"published": "2022-05-05T02:05:31+00:00",
"url": "http://stream.boffosocko.com/2022/at-homebrew-website-club-watching-with-great-anticipation-as-kevinmarks",
"category": [
"RedCups",
"Flickr"
],
"syndication": [
"https://twitter.com/ChrisAldrich/status/1522034839326765056",
"https://mastodon.social/@chrisaldrich/108246884143165531"
],
"content": {
"text": "At Homebrew Website Club watching with great anticipation as @KevinMarks adds microformats to the base Tumblr theme to help make it more IndieWeb friendly. #RedCups #Flickr\nhttps://events.indieweb.org/2022/05/monthly-guiding-compass-homebrew-website-club-nS6KBMwoZDFm",
"html": "At Homebrew Website Club watching with great anticipation as @KevinMarks adds microformats to the base Tumblr theme to help make it more IndieWeb friendly. <a href=\"http://stream.boffosocko.com/tag/RedCups\" class=\"p-category\">#RedCups</a> <a href=\"http://stream.boffosocko.com/tag/Flickr\" class=\"p-category\">#Flickr</a><br /><a href=\"https://events.indieweb.org/2022/05/monthly-guiding-compass-homebrew-website-club-nS6KBMwoZDFm\">https://events.indieweb.org/2022/05/monthly-guiding-compass-homebrew-website-club-nS6KBMwoZDFm</a>"
},
"author": {
"type": "card",
"name": "Chris Aldrich",
"url": "http://stream.boffosocko.com/profile/chrisaldrich",
"photo": "http://stream.boffosocko.com/file/600427b81f7785e704eadfe511a9270f/thumb.jpg"
},
"post-type": "note",
"_id": "28890428",
"_source": "192",
"_is_read": true
}
{
"type": "entry",
"published": "2022-05-04T06:23:40+00:00",
"url": "http://stream.boffosocko.com/2022/chengdulittlea-youre-not-doing-them-all-manually-like-this-are",
"syndication": [
"https://twitter.com/ChrisAldrich/status/1521737540881031168"
],
"in-reply-to": [
"https://twitter.com/ChengduLittleA/status/1521714340436451328"
],
"content": {
"text": "@ChengduLittleA You're not doing them all manually like this are you? https://aaronparecki.com/2018/06/30/11/your-first-webmention \ud83d\ude39",
"html": "<a href=\"https://twitter.com/ChengduLittleA\">@ChengduLittleA</a> You're not doing them all manually like this are you? <a href=\"https://aaronparecki.com/2018/06/30/11/your-first-webmention\">https://aaronparecki.com/2018/06/30/11/your-first-webmention</a> \ud83d\ude39"
},
"author": {
"type": "card",
"name": "Chris Aldrich",
"url": "http://stream.boffosocko.com/profile/chrisaldrich",
"photo": "http://stream.boffosocko.com/file/600427b81f7785e704eadfe511a9270f/thumb.jpg"
},
"post-type": "reply",
"_id": "28870886",
"_source": "192",
"_is_read": true
}
@omgmog@indieweb.social Glad to see others using Known and using it to syndicate to Mastodon!
{
"type": "entry",
"published": "2022-05-04T06:17:56+00:00",
"url": "http://stream.boffosocko.com/2022/omgmogindiewebsocial-glad-to-see-others-using-known-and-using-it",
"syndication": [
"https://mastodon.social/@chrisaldrich/108242212608452923"
],
"in-reply-to": [
"https://social.omgmog.net/2022/ive-been-fiddling-with-my-known-instance",
"https://indieweb.social/@omgmog/108239861319529146"
],
"content": {
"text": "@omgmog@indieweb.social Glad to see others using Known and using it to syndicate to Mastodon!"
},
"author": {
"type": "card",
"name": "Chris Aldrich",
"url": "http://stream.boffosocko.com/profile/chrisaldrich",
"photo": "http://stream.boffosocko.com/file/600427b81f7785e704eadfe511a9270f/thumb.jpg"
},
"post-type": "reply",
"_id": "28870887",
"_source": "192",
"_is_read": true
}
How to Live the IndieWeb Dream boffosocko.com
{
"type": "entry",
"author": {
"name": "Chris Aldrich",
"url": "https://www.boffosocko.com/",
"photo": "https://www.gravatar.com/avatar/d5fb4e498fe609cc29b04e5b7ad688c4?s=96&d=https%3A%2F%2Fmicro.blog%2Fimages%2Fblank_avatar.png"
},
"url": "https://boffosocko.com/2022/05/03/how-to-live-the-indieweb-dream/",
"content": {
"html": "How to Live the IndieWeb Dream <a href=\"https://boffosocko.com/2022/05/03/how-to-live-the-indieweb-dream/\">boffosocko.com</a>",
"text": "How to Live the IndieWeb Dream boffosocko.com"
},
"published": "2022-05-03T23:30:13+00:00",
"post-type": "note",
"_id": "33380000",
"_source": "7224",
"_is_read": true
}
{
"type": "entry",
"published": "2022-05-03T10:51:46Z",
"url": "https://adactio.com/journal/19043",
"category": [
"bugblogging",
"tipblogging",
"writing",
"sharing",
"documenting",
"bugs",
"debugging",
"browsers",
"tips",
"techniques",
"blogs",
"indieweb",
"frontend",
"development",
"css",
"javascript",
"apis"
],
"name": "Bugblogging",
"content": {
"text": "A while back I wrote a blog post called Web Audio API weirdness on iOS. I described a bug in Mobile Safari along with a hacky fix. I finished by saying:\n\n\n If you ever find yourself getting weird but inconsistent behaviour on iOS using the Web Audio API, this nasty little hack could help.\n\n\nRecently Jonathan Aldrich posted a thread about the same bug. He included a link to my blog post. He also said:\n\n\n Thanks so much for your post, this was a truly pernicious problem!\n\n\nThat warms the cockles of my heart. It\u2019s very gratifying to know that documenting the bug (and the fix) helped someone out. Or, as I put it:\n\n\n Yay for bugblogging!\n\n\nForgive the Germanic compound word, but in this case I think it fits.\n\nBugblogging doesn\u2019t need to involve a solution. Just documenting a bug is a good thing to do. Recently I documented a bug with progressive web apps on iOS. Before that I documented a bug in Facebook Container for Firefox. When I documented some weird behaviour with the Web Share API in Safari on iOS, I wasn\u2019t even sure it was a bug but Tess was pretty sure it was and filed a proper bug report.\n\nI\u2019ve benefited from other people bugblogging. Phil Nash wrote Service workers: beware Safari\u2019s range request. That was exactly what I needed to solve a problem I\u2019d been having. And then that post about Phil solving my problem helped Peter Rukavina solve a similar issue so he wrote Phil Nash and Jeremy Keith Save the Safari Video Playback Day.\n\nAgain, this warmed the cockles of my heart. Bugblogging is worth doing just for the reward of that feeling.\n\nThere\u2019s a similar kind of blog post where, instead of writing about a bug, you write about a particular technique. In one way, this is the opposite of bugblogging because you\u2019re writing about things working exactly as they should. But these posts have a similar feeling to bugblogging because they also result in a warm glow when someone finds them useful.\n\nHere are some recent examples of these kinds of posts\u2014tipblogging?\u2014that I\u2019ve found useful:\n\nEric wrote about flexibly centering an element with side-sligned content using CSS.\nRich documented how to subset a variable font on a Mac.\nStephanie wrote about a CSS technique for animating in a newly added element.\nAll three are very handy tips. Thanks, Eric! Thanks, Rich! Thanks, Stephanie!",
"html": "<p>A while back I wrote a blog post called <a href=\"https://adactio.com/journal/17709\">Web Audio API weirdness on iOS</a>. I described a bug in Mobile Safari along with a hacky fix. I finished by saying:</p>\n\n<blockquote>\n <p>If you ever find yourself getting weird but inconsistent behaviour on iOS using the Web Audio API, this nasty little hack could help.</p>\n</blockquote>\n\n<p>Recently <a href=\"https://twitter.com/JAldrichPL/status/1517005793958236160\">Jonathan Aldrich posted a thread</a> about the same bug. He included <a href=\"https://twitter.com/JAldrichPL/status/1517005797447847936\">a link to my blog post</a>. <a href=\"https://twitter.com/JAldrichPL/status/1517101239749722112\">He also said</a>:</p>\n\n<blockquote>\n <p>Thanks so much for your post, this was a truly pernicious problem!</p>\n</blockquote>\n\n<p>That warms the cockles of my heart. It\u2019s very gratifying to know that documenting the bug (and the fix) helped someone out. Or, <a href=\"https://twitter.com/adactio/status/1517040088592519168\">as I put it</a>:</p>\n\n<blockquote>\n <p>Yay for bugblogging!</p>\n</blockquote>\n\n<p>Forgive the Germanic compound word, but in this case I think it fits.</p>\n\n<p>Bugblogging doesn\u2019t need to involve a solution. Just documenting a bug is a good thing to do. Recently I documented <a href=\"https://adactio.com/journal/18897\">a bug with progressive web apps on iOS</a>. Before that <a href=\"https://adactio.com/journal/18328\">I documented a bug in Facebook Container for Firefox</a>. When I documented some weird behaviour with <a href=\"https://adactio.com/journal/15972\">the Web Share API in Safari on iOS</a>, I wasn\u2019t even sure it was a bug but Tess was pretty sure it was and <a href=\"https://bugs.webkit.org/show_bug.cgi?id=203221\">filed a proper bug report</a>.</p>\n\n<p>I\u2019ve benefited from other people bugblogging. Phil Nash wrote <a href=\"https://philna.sh/blog/2018/10/23/service-workers-beware-safaris-range-request/\">Service workers: beware Safari\u2019s range request</a>. That was <em>exactly</em> what I needed to solve <a href=\"https://adactio.com/journal/14452\">a problem I\u2019d been having</a>. And then that post about Phil solving my problem helped Peter Rukavina solve a similar issue so he wrote <a href=\"https://ruk.ca/content/phil-nash-and-jeremy-keith-save-safari-video-playback-day\">Phil Nash and Jeremy Keith Save the Safari Video Playback Day</a>.</p>\n\n<p>Again, this warmed the cockles of my heart. Bugblogging is worth doing just for the reward of that feeling.</p>\n\n<p>There\u2019s a similar kind of blog post where, instead of writing about a bug, you write about a particular technique. In one way, this is the opposite of bugblogging because you\u2019re writing about things working exactly as they should. But these posts have a similar feeling to bugblogging because they also result in a warm glow when someone finds them useful.</p>\n\n<p>Here are some recent examples of these kinds of posts\u2014tipblogging?\u2014that I\u2019ve found useful:</p>\n\n<ul><li>Eric wrote about <a href=\"https://meyerweb.com/eric/thoughts/2022/04/26/flexibly-centering-an-element-with-side-aligned-content/\">flexibly centering an element with side-sligned content</a> using CSS.</li>\n<li>Rich documented <a href=\"https://clagnut.com/blog/2418/\">how to subset a variable font</a> on a Mac.</li>\n<li>Stephanie wrote about a CSS technique for <a href=\"https://thinkdobecreate.com/articles/css-animating-newly-added-element/\">animating in a newly added element</a>.</li>\n</ul><p>All three are very handy tips. Thanks, <a href=\"https://meyerweb.com/\">Eric</a>! Thanks, <a href=\"https://clagnut.com/\">Rich</a>! Thanks, <a href=\"https://thinkdobecreate.com\">Stephanie</a>!</p>"
},
"author": {
"type": "card",
"name": "Jeremy Keith",
"url": "https://adactio.com/",
"photo": "https://adactio.com/images/photo-150.jpg"
},
"post-type": "note",
"_id": "28850993",
"_source": "2",
"_is_read": true
}
So I’m trying to do the IndieWeb thing, hence this blog. I don’t know what I’m doing yet, but we shall see.
{
"type": "entry",
"author": {
"name": "\u092e\u0947\u0902\u0925\u0940",
"url": "https://trigonella.net",
"photo": "https://avatars.micro.blog/avatars/2022/116064.jpg"
},
"url": "https://trigonella.net/2022/05/02/so-im-trying.html",
"content": {
"html": "<p>So I\u2019m trying to do the <a href=\"https://indieweb.org/\">IndieWeb</a> thing, hence this blog. I don\u2019t know what I\u2019m doing yet, but we shall see.</p>",
"text": "So I\u2019m trying to do the IndieWeb thing, hence this blog. I don\u2019t know what I\u2019m doing yet, but we shall see."
},
"published": "2022-05-02T18:55:54+00:00",
"post-type": "note",
"_id": "33380001",
"_source": "7224",
"_is_read": true
}
@IndieWebCamp Düsseldorf is a wrap!
For Create Day, I added code to my publishing system to only syndicate (POSSE) a reply post to Twitter if it actually has an @-name, otherwise if it’s a peer-to-peer reply, just directly send them a Webmention.
{
"type": "entry",
"published": "2022-05-01 09:50-0700",
"url": "http://tantek.com/2022/121/t3/indiewebcamp-wrap-send-webmention",
"content": {
"text": "@IndieWebCamp D\u00fcsseldorf is a wrap!\n\nFor Create Day, I added code to my publishing system to only syndicate (POSSE) a reply post to Twitter if it actually has an @-name, otherwise if it\u2019s a peer-to-peer reply, just directly send them a Webmention.",
"html": "<a class=\"h-cassis-username\" href=\"https://twitter.com/IndieWebCamp\">@IndieWebCamp</a> D\u00fcsseldorf is a wrap!<br /><br />For Create Day, I added code to my publishing system to only syndicate (POSSE) a reply post to Twitter if it actually has an @-name, otherwise if it\u2019s a peer-to-peer reply, just directly send them a Webmention."
},
"author": {
"type": "card",
"name": "Tantek \u00c7elik",
"url": "http://tantek.com/",
"photo": "http://tantek.com/photo.jpg"
},
"post-type": "note",
"_id": "28817452",
"_source": "1",
"_is_read": true
}
IndieWebCamp Create Day participants looking eager to create!
Inspirational quote on https://indieweb.org/creator to get us started:
“When you don’t create things, you become defined by your tastes rather than your ability. Your tastes only narrow & exclude people. So create.” — Why The Lucky Stiff
{
"type": "entry",
"published": "2022-05-01 09:32-0700",
"url": "http://tantek.com/2022/121/t2/",
"in-reply-to": [
"https://calumryan.com/notes/3637"
],
"content": {
"text": "IndieWebCamp Create Day participants looking eager to create! \n\nInspirational quote on https://indieweb.org/creator to get us started:\n\n\u00a0\u201cWhen you don\u2019t create things, you become defined by your tastes rather than your ability. Your tastes only narrow & exclude people. So create.\u201d \u2014 Why The Lucky Stiff",
"html": "IndieWebCamp Create Day participants looking eager to create! <br /><br />Inspirational quote on <a href=\"https://indieweb.org/creator\">https://indieweb.org/creator</a> to get us started:<br /><br />\u00a0\u201cWhen you don\u2019t create things, you become defined by your tastes rather than your ability. Your tastes only narrow & exclude people. So create.\u201d \u2014 Why The Lucky Stiff"
},
"author": {
"type": "card",
"name": "Tantek \u00c7elik",
"url": "http://tantek.com/",
"photo": "http://tantek.com/photo.jpg"
},
"post-type": "reply",
"refs": {
"https://calumryan.com/notes/3637": {
"type": "entry",
"url": "https://calumryan.com/notes/3637",
"name": "calumryan.com\u2019s post",
"post-type": "article"
}
},
"_id": "28817453",
"_source": "1",
"_is_read": true
}
Nice photo of day 1 IndieWebCamp participants!
{
"type": "entry",
"published": "2022-05-01 07:06-0700",
"url": "http://tantek.com/2022/121/t1/",
"in-reply-to": [
"https://calumryan.com/notes/3636"
],
"content": {
"text": "Nice photo of day 1 IndieWebCamp participants!"
},
"author": {
"type": "card",
"name": "Tantek \u00c7elik",
"url": "http://tantek.com/",
"photo": "http://tantek.com/photo.jpg"
},
"post-type": "reply",
"refs": {
"https://calumryan.com/notes/3636": {
"type": "entry",
"url": "https://calumryan.com/notes/3636",
"name": "calumryan.com\u2019s post",
"post-type": "article"
}
},
"_id": "28817454",
"_source": "1",
"_is_read": true
}
RSS is kind of an invisible technology. People call RSS dead because you can’t see it. There’s no feed, no login, no analytics. RSS feels subsurface.
But I believe we’re living in a golden age of RSS. Blogging is booming. My feed reader has 280 feeds in it.
{
"type": "entry",
"published": "2022-05-01T09:06:52Z",
"url": "https://adactio.com/links/19038",
"category": [
"indieweb",
"personal",
"publishing",
"social",
"networks",
"rss",
"feeds",
"syndication",
"blogs",
"blogging",
"opml",
""
],
"bookmark-of": [
"https://tomcritchlow.com/2022/04/21/new-rss/"
],
"content": {
"text": "Increasing the surface area of blogging\n\n\n\n\n RSS is kind of an invisible technology. People call RSS dead because you can\u2019t see it. There\u2019s no feed, no login, no analytics. RSS feels subsurface.\n\n But I believe we\u2019re living in a golden age of RSS. Blogging is booming. My feed reader has 280 feeds in it.",
"html": "<h3>\n<a class=\"p-name u-bookmark-of\" href=\"https://tomcritchlow.com/2022/04/21/new-rss/\">\nIncreasing the surface area of blogging\n</a>\n</h3>\n\n<blockquote>\n <p>RSS is kind of an invisible technology. People call RSS dead because you can\u2019t see it. There\u2019s no feed, no login, no analytics. RSS feels subsurface.</p>\n\n <p>But I believe we\u2019re living in a golden age of RSS. Blogging is booming. My feed reader has 280 feeds in it.</p>\n</blockquote>"
},
"author": {
"type": "card",
"name": "Jeremy Keith",
"url": "https://adactio.com/",
"photo": "https://adactio.com/images/photo-150.jpg"
},
"post-type": "bookmark",
"_id": "28811483",
"_source": "2",
"_is_read": true
}