Working on hydroponics plumbing
{
"type": "entry",
"published": "2026-05-26T08:58:20-07:00",
"url": "https://aaronparecki.com/2026/05/26/11/",
"category": [
"365",
"hydroponics"
],
"photo": [
"https://aperture-media.p3k.io/aaronparecki.com/88ea103835ef132cde65be8c33ed9d016d412b370ec8a13778bb5982f9fa34b8.jpg",
"https://aperture-media.p3k.io/aaronparecki.com/46414454659535b958c2bb41023493cba64f7e23520fbc2a8d06d61817583d84.jpg"
],
"content": {
"text": "Working on hydroponics plumbing"
},
"author": {
"type": "card",
"name": "Aaron Parecki",
"url": "https://aaronparecki.com/",
"photo": "https://aperture-media.p3k.io/aaronparecki.com/41061f9de825966faa22e9c42830e1d4a614a321213b4575b9488aa93f89817a.jpg"
},
"post-type": "photo",
"_id": "48399857",
"_source": "16"
}
Finally got the connection between the buildings moved over to the new underground fiber line!
{
"type": "entry",
"published": "2026-05-24T18:26:15-07:00",
"url": "https://aaronparecki.com/2026/05/24/9/",
"category": [
"triplex"
],
"photo": [
"https://aperture-media.p3k.io/aaronparecki.com/4437321f589d80bb04a86e1601dcf8b9842e072b0a7df32a4b0f113f13fedfe5.jpg",
"https://aperture-media.p3k.io/aaronparecki.com/b1ddb5b74cb1724566a5ef6032aa05a66a539c805e1e177203d03b96e0720627.jpg"
],
"content": {
"text": "Finally got the connection between the buildings moved over to the new underground fiber line!"
},
"author": {
"type": "card",
"name": "Aaron Parecki",
"url": "https://aaronparecki.com/",
"photo": "https://aperture-media.p3k.io/aaronparecki.com/41061f9de825966faa22e9c42830e1d4a614a321213b4575b9488aa93f89817a.jpg"
},
"post-type": "photo",
"_id": "48399858",
"_source": "16"
}
These Steam Deck price hikes are making me worried that the Steam Frame is going to cost a hojillion dollars.
{
"type": "entry",
"published": "2026-05-28T01:44:21.462406+00:00",
"url": "https://cleverdevil.io/2026/these-steam-deck-price-hikes-are-making",
"syndication": [
"https://cleverdevil.club/@jonathan/116649666905747199",
"https://bsky.app/profile/cleverdevil.io/post/3mmuvj2sgxx2e"
],
"content": {
"text": "These Steam Deck price hikes are making me worried that the Steam Frame is going to cost a hojillion dollars.",
"html": "<p>These Steam Deck price hikes are making me worried that the Steam Frame is going to cost a hojillion dollars.</p>"
},
"author": {
"type": "card",
"name": "Jonathan LaCour",
"url": "https://cleverdevil.io",
"photo": "https://cleverdevil.io/profile/photo"
},
"post-type": "note",
"_id": "48399355",
"_source": "10"
}
{
"type": "entry",
"published": "2026-05-27T14:17:05-07:00",
"url": "https://boffosocko.com/2026/05/27/segment-pick/",
"category": [
"Acquisition",
"Social Stream",
"Typewriters",
"Ames Typewriter Co.",
"segment picks",
"typewriter tools"
],
"content": {
"text": "",
"html": "<a href=\"https://typespec.com/ames-segment-pick-an-artisan-tool-for-sale-20/\"><img src=\"https://boffosocko.com/wp-content/uploads/2026/05/Segment-Pick-1024x683.jpeg\" alt=\"A pen-sized typewriter segment pick with a curved-shaped tip at the end of a thin metal shaft. It sits on top of a typewritten index card that reads: Last week I ordered a recreation of the Ames Supply Co. segment pick from Paul at Bremerton Typewriter Co. It arrived in the mail today and I'm excited to add it to my typewriter tool collection. Even better, I've recently gotten two new typewriters that will need full clean, oil, and adjusts. I can't wait to put it to good use.\" width=\"660\" height=\"440\" /></a>"
},
"author": {
"type": "card",
"name": null,
"url": null,
"photo": null
},
"post-type": "note",
"_id": "48398912",
"_source": "2785"
}
Cross-domain access is everywhere in today's software landscape. Whether you look at enterprise SaaS applications, AI agents interacting with user data across multiple platforms, or "integrated experiences" pulling information from a calendar, a chat tool, and a wiki—everything eventually needs to talk across boundaries.
{
"type": "entry",
"published": "2026-05-27T16:35:08-07:00",
"summary": "Cross-domain access is everywhere in today's software landscape. Whether you look at enterprise SaaS applications, AI agents interacting with user data across multiple platforms, or \"integrated experiences\" pulling information from a calendar, a chat tool, and a wiki\u2014everything eventually needs to talk across boundaries.",
"url": "https://aaronparecki.com/2026/05/27/10/cross-domain-api-access",
"category": [
"oauth",
"okta",
"xaa",
"id-jag",
"ai"
],
"syndication": [
"https://www.linkedin.com/posts/aaronparecki_ai-agents-interacting-with-user-data-across-share-7465546234120900608-bbbb/?utm_source=share&utm_medium=member_desktop&rcm=ACoAAAF6n2UBIZD-4sM0W4WF1KUgW38CmNh16vU"
],
"name": "Cross-Domain API Access: Beyond the \"Obvious\" Shortcuts",
"author": {
"type": "card",
"name": "Aaron Parecki",
"url": "https://aaronparecki.com/",
"photo": "https://aperture-media.p3k.io/aaronparecki.com/41061f9de825966faa22e9c42830e1d4a614a321213b4575b9488aa93f89817a.jpg"
},
"post-type": "article",
"_id": "48398544",
"_source": "16"
}
In a pre-web analog world, this is what a CMS really was. (Hint: there's actually two in this photo.)
{
"type": "entry",
"published": "2026-05-27T09:34:35-07:00",
"summary": "In a pre-web analog world, this is what a CMS really was. (Hint: there’s actually two in this photo.)",
"url": "https://boffosocko.com/2026/05/27/pre-web-cms/",
"category": [
"Social Stream",
"Typewriters",
"analog office",
"card index as database",
"content management systems",
"The Chicago Manual of Style"
],
"content": {
"text": "In a pre-web analog world, this is what a CMS really was. (Hint: there's actually two in this photo.)",
"html": "In a pre-web analog world, this is what a CMS <em>really</em> was. (Hint: there's actually two in this photo.)\n\n<img src=\"https://boffosocko.com/wp-content/uploads/2026/05/wp-17798992255946808612683483855781-1024x768.jpg\" alt=\"An orange covered 14th edition of The Chicago Manual of Style sits on a table in front of an Olympia SG1 typewriter with an oak card index filing cabinet beside it.\" width=\"660\" height=\"495\" />"
},
"author": {
"type": "card",
"name": null,
"url": null,
"photo": null
},
"post-type": "note",
"_id": "48394906",
"_source": "2785"
}
The Stanley Kramer comedy classic film It's a Mad, Mad, Mad, Mad World (United Artists, 1963) has a handful of Royal KMG typewriters featured in the office settings at police stations throughout the film. The KMG was Royal's top-of-the-line office standard machine and was manufactured from 1949 to 1952 before being replaced by the Royal HH (1952 to 1957) and the Royal FP (1957to 1962). By the time the film premiered in November of 1963, the newest desktop manual would have been the Royal Empress (1962-1966).
The featured Royal KMG of the film sits in the center of Capt. T. G. Culpeper's (portrayed by Spencer Tracy) squad room and another appears in the background there.







Another Royal KMG appears in the sheriff's office of Crockett Country with the Sheriff portrayed by well known character actor Andy Devine.
[caption id="attachment_55835731" align="aligncenter" width="660"]
Andy Devine as the old sheriff with bushy gray eyebrows and a reddish face is on a black rotary desk phone in his office as a closely cropped deputy sits behind him at a desk where we see the left side of a gray Royal KMG typewriter in the background.[/caption]
Of tangential note, comedian and writer Carl Reiner, who portrays the tower controller at Rancho Conejo at which Mickey Rooney and Buddy Hackett attempt to land their airplane, is known to have have used a Royal KMG, though one doesn't appear in any of his scenes in the air traffic control tower.
{
"type": "entry",
"published": "2026-05-26T00:22:37-07:00",
"summary": "The Stanley Kramer comedy classic film It’s a Mad, Mad, Mad, Mad World (United Artists, 1963) has a handful of Royal KMG typewriters featured in the office settings at police stations throughout the film. The KMG was Royal’s top-of-the-line office standard machine and was manufactured from 1949 to 1952 before being replaced by the Royal … <a href=\"https://boffosocko.com/2026/05/26/the-royal-kmg-standard-typewriters-of-its-a-mad-mad-mad-mad-world/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">The Royal KMG Standard Typewriters of It’s a Mad, Mad, Mad, Mad World</span></a>",
"url": "https://boffosocko.com/2026/05/26/the-royal-kmg-standard-typewriters-of-its-a-mad-mad-mad-mad-world/",
"featured": "https://boffosocko.com/wp-content/uploads/2026/05/Tracy-Royal-KMG-010257.jpg",
"category": [
"Typewriters",
"Andy Devine",
"It's a Mad Mad Mad Mad World (United Artists 1963)",
"Royal KMG",
"Royal typewriters",
"Spencer Tracy",
"typewriters in media"
],
"content": {
"text": "The Stanley Kramer comedy classic film It's a Mad, Mad, Mad, Mad World (United Artists, 1963) has a handful of Royal KMG typewriters featured in the office settings at police stations throughout the film. The KMG was Royal's top-of-the-line office standard machine and was manufactured from 1949 to 1952 before being replaced by the Royal HH (1952 to 1957) and the Royal FP (1957to 1962). By the time the film premiered in November of 1963, the newest desktop manual would have been the Royal Empress (1962-1966).\n\nThe featured Royal KMG of the film sits in the center of Capt. T. G. Culpeper's (portrayed by Spencer Tracy) squad room and another appears in the background there.\n\n\n\nAnother Royal KMG appears in the sheriff's office of Crockett Country with the Sheriff portrayed by well known character actor Andy Devine.\n\n[caption id=\"attachment_55835731\" align=\"aligncenter\" width=\"660\"] Andy Devine as the old sheriff with bushy gray eyebrows and a reddish face is on a black rotary desk phone in his office as a closely cropped deputy sits behind him at a desk where we see the left side of a gray Royal KMG typewriter in the background.[/caption]\n\n\u00a0\n\nOf tangential note, comedian and writer Carl Reiner, who portrays the tower controller at Rancho Conejo at which Mickey Rooney and Buddy Hackett attempt to land their airplane, is known to have have used a Royal KMG, though one doesn't appear in any of his scenes in the air traffic control tower.",
"html": "The Stanley Kramer comedy classic film <em>It's a Mad, Mad, Mad, Mad World</em> (United Artists, 1963) has a handful of <a href=\"https://typewriterdatabase.com/Royal.KMG.72.bmys\">Royal KMG typewriters</a> featured in the office settings at police stations throughout the film. The KMG was Royal's top-of-the-line office standard machine and was manufactured from 1949 to 1952 before being replaced by the <a href=\"https://typewriterdatabase.com/Royal.HH.72.bmys\">Royal HH</a> (1952 to 1957) and the <a href=\"https://typewriterdatabase.com/Royal.FP.72.bmys\">Royal FP</a> (1957to 1962). By the time the film premiered in November of 1963, the newest desktop manual would have been the <a href=\"https://typewriterdatabase.com/Royal.Empress.72.bmys\">Royal Empress</a> (1962-1966).\n\nThe featured Royal KMG of the film sits in the center of Capt. T. G. Culpeper's (portrayed by Spencer Tracy) squad room and another appears in the background there.\n\n<img src=\"https://boffosocko.com/wp-content/uploads/2026/05/two-typewriters-in-office-2221-1024x576.jpg\" alt=\"A switchboard operator with a headset in a police department office. In the background is a secretary at a gray Royal KMG typewriter on a small typewriter desk. On the wall behind them is a map charting the chase route of the people chasing the missing money. In the back corner in front of the map is another Royal KMG.\" width=\"660\" height=\"371\" /><img src=\"https://boffosocko.com/wp-content/uploads/2026/05/Royal-KMG-in-office-2224-1024x576.jpg\" alt=\"The switchboard operator at her board in the foreground as Culpepper's secretary types on a Royal KMG just behind her at a small typing table next to her tanker desk.\" width=\"660\" height=\"371\" /><img src=\"https://boffosocko.com/wp-content/uploads/2026/05/KMG-on-desk-2401-1024x576.jpg\" alt=\"A sargent in a white uniform leans over a tanker desk to talk to the secretary outside of Captain Cullpepper's office. The secretary is facing away from him working at her Royal KMG typewriter\" width=\"660\" height=\"371\" /><img src=\"https://boffosocko.com/wp-content/uploads/2026/05/Tracy-with-two-royal-KMGs-fore-adn-back-1024x576.jpg\" alt=\"Spencer Tracy in a 3/4 shot wearing a black suit and tie and a fedora while he's on the phone. Just in front of him is a secretary's Royal KMG typewriter. Another typewriter sits on a desk in the far background.\" width=\"660\" height=\"371\" /><img src=\"https://boffosocko.com/wp-content/uploads/2026/05/Tracy-with-Royal-KMG-foreground-010240-1024x576.jpg\" alt=\"Spencer Tracy on the telephone next to his secretary at her Royal KMG typewriter. Between them in the background is a map tracing the route of the bank robber.\" width=\"660\" height=\"371\" /><img src=\"https://boffosocko.com/wp-content/uploads/2026/05/Tracy-with-Royal-KMG-background-2242-1024x576.jpg\" alt=\"Spencer Tracy walking out of the Detective's Division. In the background are another officer and a Royal KMG typewriter.\" width=\"660\" height=\"371\" /><img src=\"https://boffosocko.com/wp-content/uploads/2026/05/Tracy-Royal-KMG-010257-1024x576.jpg\" alt=\"Tracy pointing across the room in the foreground as his secretary types on a standard Royal KMG.\" width=\"660\" height=\"371\" /><img src=\"https://boffosocko.com/wp-content/uploads/2026/05/KMG-on-desk-edge-022147-1024x576.jpg\" alt=\"A police station bullpen with five officers gathered around a desk as one radios out orders. On the right hand side just behind them on a desk we see the left side of a Royal KMG typewriter\" width=\"660\" height=\"371\" />\n\nAnother Royal KMG appears in the sheriff's office of Crockett Country with the Sheriff portrayed by well known character actor Andy Devine.\n\n[caption id=\"attachment_55835731\" align=\"aligncenter\" width=\"660\"]<img src=\"https://boffosocko.com/wp-content/uploads/2026/05/Sheriff-typewriter-2302-1024x576.jpg\" alt=\"\" width=\"660\" height=\"371\" /> Andy Devine as the old sheriff with bushy gray eyebrows and a reddish face is on a black rotary desk phone in his office as a closely cropped deputy sits behind him at a desk where we see the left side of a gray Royal KMG typewriter in the background.[/caption]\n\n\u00a0\n\nOf tangential note, comedian and writer Carl Reiner, who portrays the tower controller at <em><span title=\"translates from Spanish as Bunny Ranch\">Rancho Conejo</span></em> at which Mickey Rooney and Buddy Hackett attempt to land their airplane, is <a href=\"https://site.xavier.edu/polt/typewriters/reinerkmg.jpg\">known to have have used a Royal KMG</a>, though one doesn't appear in any of his scenes in the air traffic control tower."
},
"author": {
"type": "card",
"name": null,
"url": null,
"photo": null
},
"post-type": "note",
"_id": "48376059",
"_source": "2785"
}
I’m working on a new search feature in indiebookclub which uses Open Library and supports cover images. It has me tinkering with the UI of the posting form and I’m interested in feedback about this first pass.
My first thought was to display the selected book information in a more compact, read-only block at the top of the form so you only have to select the status (want to read, currently reading, finished reading), then optionally add tags and other choices if you are using Micropub.
However, I still want to give people the option to update the book information before they post, so I was considering a button that would change the book information into editable fields. I experimented with various options and did not come up with anything I loved. I am now leaning towards always showing the fields with the populated values. Keep it simple.

Screenshot 1: on larger screens

Screenshot 2: on smaller screens
I did make the form more compact overall: less padding inside the form fields, less vertical space between them, and a horizontal layout on larger screens (using this WCAG technique). I also moved the timezone offset field out of a collapsed details element.
For comparison, below is a screenshot of the form as it exists. There are still a few parts of it that need to be put into my mockups, like choosing ISBN or DOI.

Screenshot 3: the posting form as it appears currently, for comparison
There will still be an option to use this form without searching Open Library, so if you are using a bookmarklet or prefer to type in all the fields, that will continue to work.
I look forward to any feedback or questions!
{
"type": "entry",
"published": "2026-05-25 16:06-0700",
"url": "https://gregorlove.com/2026/05/im-working-on/",
"category": [
"indieweb",
"dev",
"indiebookclub"
],
"content": {
"text": "I\u2019m working on a new search feature in indiebookclub which uses Open Library and supports cover images. It has me tinkering with the UI of the posting form and I\u2019m interested in feedback about this first pass.\n\nMy first thought was to display the selected book information in a more compact, read-only block at the top of the form so you only have to select the status (want to read, currently reading, finished reading), then optionally add tags and other choices if you are using Micropub.\n\nHowever, I still want to give people the option to update the book information before they post, so I was considering a button that would change the book information into editable fields. I experimented with various options and did not come up with anything I loved. I am now leaning towards always showing the fields with the populated values. Keep it simple.\n\nScreenshot 1: on larger screens\nScreenshot 2: on smaller screens\nI did make the form more compact overall: less padding inside the form fields, less vertical space between them, and a horizontal layout on larger screens (using this WCAG technique). I also moved the timezone offset field out of a collapsed details element.\n\nFor comparison, below is a screenshot of the form as it exists. There are still a few parts of it that need to be put into my mockups, like choosing ISBN or DOI.\n\nScreenshot 3: the posting form as it appears currently, for comparison\nThere will still be an option to use this form without searching Open Library, so if you are using a bookmarklet or prefer to type in all the fields, that will continue to work.\n\nI look forward to any feedback or questions!",
"html": "<p>I\u2019m working on a new search feature in <a href=\"https://indiebookclub.biz\">indiebookclub</a> which uses <a href=\"https://openlibrary.org/\">Open Library</a> and supports cover images. It has me tinkering with the UI of the posting form and I\u2019m interested in feedback about this first pass.</p>\n\n<p>My first thought was to display the selected book information in a more compact, read-only block at the top of the form so you only have to select the status (want to read, currently reading, finished reading), then optionally add tags and other choices if you are using <a href=\"https://micropub.net/\">Micropub</a>.</p>\n\n<p>However, I still want to give people the option to update the book information before they post, so I was considering a button that would change the book information into editable fields. I experimented with various options and did not come up with anything I loved. I am now leaning towards always showing the fields with the populated values. Keep it simple.</p>\n\n<img alt=\"screenshot of new posting UI that has fields: read status, title, by, ISBN, tags, status, visibility, published date, and timezone offset; all displayed in a horizontal layout on a larger screen\" src=\"https://gregorlove.com/site/assets/files/7277/screen_shot_2026-05-25_at_15_15_25.png\" /><p>Screenshot 1: on larger screens</p>\n<img alt=\"screenshot of new posting UI with the same fields described above; all displayed in a vertical layout on a smaller screen\" src=\"https://gregorlove.com/site/assets/files/7277/screen_shot_2026-05-25_at_14_53_23.png\" /><p>Screenshot 2: on smaller screens</p>\n<p>I did make the form more compact overall: less padding inside the form fields, less vertical space between them, and a horizontal layout on larger screens (using <a href=\"https://www.w3.org/WAI/WCAG21/Techniques/css/C38\">this WCAG technique</a>). I also moved the timezone offset field out of a collapsed <code>details</code> element.</p>\n\n<p>For comparison, below is a screenshot of the form as it exists. There are still a few parts of it that need to be put into my mockups, like choosing ISBN or DOI.</p>\n\n<img alt=\"screenshot of current posting UI with the same fields described above\" src=\"https://gregorlove.com/site/assets/files/7277/screen_shot_2026-05-25_at_15_49_05.png\" /><p>Screenshot 3: the posting form as it appears currently, for comparison</p>\n<p>There <em>will</em> still be an option to use this form without searching Open Library, so if you are using a bookmarklet or prefer to type in all the fields, that will continue to work.</p>\n\n<p>I look forward to any feedback or questions!</p>"
},
"author": {
"type": "card",
"name": "gRegor Morrill",
"url": "https://gregorlove.com/",
"photo": "https://gregorlove.com/site/assets/files/6268/profile-2021-square.300x0.jpg"
},
"post-type": "note",
"_id": "48374774",
"_source": "95"
}
First day with the new grill worked out pretty well!
{
"type": "entry",
"published": "2026-05-25T18:27:39-07:00",
"url": "https://aaronparecki.com/2026/05/25/14/",
"category": [
"365"
],
"photo": [
"https://aperture-media.p3k.io/aaronparecki.com/35dc5b8cc0d9cbf5dc459062902733bfe7a771d1872a3a7a86a98888c4c7aa3c.jpg"
],
"content": {
"text": "First day with the new grill worked out pretty well!"
},
"author": {
"type": "card",
"name": "Aaron Parecki",
"url": "https://aaronparecki.com/",
"photo": "https://aperture-media.p3k.io/aaronparecki.com/41061f9de825966faa22e9c42830e1d4a614a321213b4575b9488aa93f89817a.jpg"
},
"post-type": "photo",
"_id": "48374599",
"_source": "16"
}
I once offered gRegor to write up a bookmarklet for turning Bookshop.org book pages into want-to-read (or currently-reading or finished-reading) posts on your own site with Micropub courtest of IndieBookClub.biz.
Then I lost my main computer’s SSD and my browser bookmarks!
Today I re-created it to make some posts on my site, so here it is!
javascript:(function()%7Bconst%20ld%20%3D%20JSON.parse(document.querySelector('script%5Btype%3D%22application%2Fld%2Bjson%22%5D').textContent)%3B%0Aconst%20p%20%3D%20new%20URLSearchParams(%7B%0Atitle%3A%20ld.name%2C%0Aauthors%3A%20ld.author%5B0%5D.name%2C%0Aisbn%3A%20ld.isbn%2C%0Atags%3A%20'books'%2C%0A'post-status'%3A%20'published'%0A%7D)%3B%0Adocument.location%20%3D%20'https%3A%2F%2Findiebookclub.biz%2Fnew%3F'%20%2B%20p.toString()%3B%7D)()
Here’s the original source for study or to edit to your enjoyment! (I enjoy Marek Gibney’s Bookmarklet Editor for this!)
const ld = JSON.parse(document.querySelector('script[type="application/ld+json"]').textContent);
const p = new URLSearchParams({
title: ld.name,
authors: ld.author[].name,
isbn: ld.isbn,
tags: 'books',
'post-status': 'published'
});
document.location = 'https://indiebookclub.biz/new?' + p.toString();
What does this do?
Bookshop.org book pages have a <script> tag marked as a “JSON-encoded Linked Data island” (pejorative) also known as JSON data.
The bookmarklet finds and parses this then (quick and dirty) pulls out likely book title, ISBN, and author and combines these with another couple of options (I tag all my reading posts with “books” and I want the posts to be published by default). Those options are turned into URL query string parameters, as described in IndieBookClub.biz’ documentation and sends your browser over there, where IndieBookClub(dot biz) handles the rest!
{
"type": "entry",
"published": "2026-05-25T17:24:30-0400",
"url": "https://martymcgui.re/2026/05/25/172430/",
"category": [
"IndieWeb",
"bookmarklets"
],
"content": {
"text": "I once offered gRegor to write up a bookmarklet for turning Bookshop.org book pages into want-to-read (or currently-reading or finished-reading) posts on your own site with Micropub courtest of IndieBookClub.biz.\nThen I lost my main computer\u2019s SSD and my browser bookmarks!\nToday I re-created it to make some posts on my site, so here it is!\njavascript:(function()%7Bconst%20ld%20%3D%20JSON.parse(document.querySelector('script%5Btype%3D%22application%2Fld%2Bjson%22%5D').textContent)%3B%0Aconst%20p%20%3D%20new%20URLSearchParams(%7B%0Atitle%3A%20ld.name%2C%0Aauthors%3A%20ld.author%5B0%5D.name%2C%0Aisbn%3A%20ld.isbn%2C%0Atags%3A%20'books'%2C%0A'post-status'%3A%20'published'%0A%7D)%3B%0Adocument.location%20%3D%20'https%3A%2F%2Findiebookclub.biz%2Fnew%3F'%20%2B%20p.toString()%3B%7D)()\nHere\u2019s the original source for study or to edit to your enjoyment! (I enjoy Marek Gibney\u2019s Bookmarklet Editor for this!)\nconst ld = JSON.parse(document.querySelector('script[type=\"application/ld+json\"]').textContent);\nconst p = new URLSearchParams({\n title: ld.name,\n authors: ld.author[].name,\n isbn: ld.isbn,\n tags: 'books',\n 'post-status': 'published'\n});\ndocument.location = 'https://indiebookclub.biz/new?' + p.toString();\nWhat does this do?\nBookshop.org book pages have a <script> tag marked as a \u201cJSON-encoded Linked Data island\u201d (pejorative) also known as JSON data.\nThe bookmarklet finds and parses this then (quick and dirty) pulls out likely book title, ISBN, and author and combines these with another couple of options (I tag all my reading posts with \u201cbooks\u201d and I want the posts to be published by default). Those options are turned into URL query string parameters, as described in IndieBookClub.biz\u2019 documentation and sends your browser over there, where IndieBookClub(dot biz) handles the rest!",
"html": "<p>I once offered <a href=\"https://gregorlove.com/\">gRegor</a> to write up a bookmarklet for turning <a href=\"https://bookshop.org/\">Bookshop.org</a> book pages into want-to-read (or currently-reading or finished-reading) posts on your own site with Micropub courtest of <a href=\"https://indiebookclub.biz/\">IndieBookClub.biz</a>.</p>\n<p>Then I lost my main computer\u2019s SSD and my browser bookmarks!</p>\n<p>Today I re-created it to make some posts on my site, so here it is!</p>\n<pre><code>javascript:(function()%7Bconst%20ld%20%3D%20JSON.parse(document.querySelector('script%5Btype%3D%22application%2Fld%2Bjson%22%5D').textContent)%3B%0Aconst%20p%20%3D%20new%20URLSearchParams(%7B%0Atitle%3A%20ld.name%2C%0Aauthors%3A%20ld.author%5B0%5D.name%2C%0Aisbn%3A%20ld.isbn%2C%0Atags%3A%20'books'%2C%0A'post-status'%3A%20'published'%0A%7D)%3B%0Adocument.location%20%3D%20'https%3A%2F%2Findiebookclub.biz%2Fnew%3F'%20%2B%20p.toString()%3B%7D)()\n</code></pre><p>Here\u2019s the original source for study or to edit to your enjoyment! (I enjoy Marek Gibney\u2019s <a href=\"https://www.gibney.org/bookmarklet_editor\">Bookmarklet Editor</a> for this!)</p>\n<pre><code>const ld = JSON.parse(document.querySelector('script[type=\"application/ld+json\"]').textContent);\nconst p = new URLSearchParams({\n title: ld.name,\n authors: ld.author[].name,\n isbn: ld.isbn,\n tags: 'books',\n 'post-status': 'published'\n});\ndocument.location = 'https://indiebookclub.biz/new?' + p.toString();\n</code></pre><p>What does this do?</p>\n<p>Bookshop.org book pages have a <code><script></code> tag marked as a \u201cJSON-encoded Linked Data island\u201d (pejorative) also known as JSON data.</p>\n<p>The bookmarklet finds and parses this then (quick and dirty) pulls out likely book title, ISBN, and author and combines these with another couple of options (I tag all my reading posts with \u201cbooks\u201d and I want the posts to be published by default). Those options are turned into URL query string parameters, as described in <a href=\"https://indiebookclub.biz/documentation#query\">IndieBookClub.biz\u2019 documentation</a> and sends your browser over there, where IndieBookClub(dot biz) handles the rest!</p>"
},
"author": {
"type": "card",
"name": "Marty McGuire",
"url": "https://martymcgui.re/",
"photo": "https://martymcgui.re/images/logo.jpg"
},
"post-type": "note",
"_id": "48373074",
"_source": "175"
}
📕 Finished reading House of Leaves by Mark Z. Danielewski ISBN: 9780375703768
{
"type": "entry",
"published": "2026-05-25T17:09:50-0400",
"summary": "\ud83d\udcd5 Finished reading House of Leaves by Mark Z. Danielewski ISBN: 9780375703768",
"url": "https://martymcgui.re/2026/05/25/170950/",
"category": [
"books"
],
"author": {
"type": "card",
"name": "Marty McGuire",
"url": "https://martymcgui.re/",
"photo": "https://martymcgui.re/images/logo.jpg"
},
"post-type": "note",
"_id": "48373075",
"_source": "175"
}
📕 Finished reading Lessons in Magic and Disaster by Charlie Jane Anders ISBN: 9781250867322
{
"type": "entry",
"published": "2026-05-03T16:22:00+0000",
"summary": "\ud83d\udcd5 Finished reading Lessons in Magic and Disaster by Charlie Jane Anders ISBN: 9781250867322",
"url": "https://martymcgui.re/2026/05/03/122200/",
"category": [
"books"
],
"author": {
"type": "card",
"name": "Marty McGuire",
"url": "https://martymcgui.re/",
"photo": "https://martymcgui.re/images/logo.jpg"
},
"post-type": "note",
"_id": "48373076",
"_source": "175"
}
📕 Finished reading Discovering Machine Knitting by Kandy Diamond ISBN: 9780719841996
{
"type": "entry",
"published": "2026-04-14T15:23:00+0000",
"summary": "\ud83d\udcd5 Finished reading Discovering Machine Knitting by Kandy Diamond ISBN: 9780719841996",
"url": "https://martymcgui.re/2026/04/14/112300/",
"category": [
"books"
],
"author": {
"type": "card",
"name": "Marty McGuire",
"url": "https://martymcgui.re/",
"photo": "https://martymcgui.re/images/logo.jpg"
},
"post-type": "note",
"_id": "48373077",
"_source": "175"
}
📕 Finished reading Fair Isle by Nic Corrigan ISBN: 9780719841576
{
"type": "entry",
"published": "2026-03-26T10:43:00+0000",
"summary": "\ud83d\udcd5 Finished reading Fair Isle by Nic Corrigan ISBN: 9780719841576",
"url": "https://martymcgui.re/2026/03/26/064300/",
"category": [
"books"
],
"author": {
"type": "card",
"name": "Marty McGuire",
"url": "https://martymcgui.re/",
"photo": "https://martymcgui.re/images/logo.jpg"
},
"post-type": "note",
"_id": "48373078",
"_source": "175"
}
Took my daughter and her friend to see noted anti-fascist musical The Sound of Music at Pantages tonight. The nuns are antifa as hell and it rules.
{
"type": "entry",
"published": "2026-05-25T06:09:23.957554+00:00",
"url": "https://cleverdevil.io/2026/took-my-daughter-and-her-friend-to-see-n",
"syndication": [
"https://cleverdevil.club/@jonathan/116633722160354114",
"https://bsky.app/profile/cleverdevil.io/post/3mmnswa7u5w23"
],
"content": {
"text": "Took my daughter and her friend to see noted anti-fascist musical The Sound of Music at Pantages tonight. The nuns are antifa as hell and it rules.",
"html": "<p>Took my daughter and her friend to see noted anti-fascist musical The Sound of Music at Pantages tonight. The nuns are antifa as hell and it rules.</p>"
},
"author": {
"type": "card",
"name": "Jonathan LaCour",
"url": "https://cleverdevil.io",
"photo": "https://cleverdevil.io/profile/photo"
},
"post-type": "note",
"_id": "48365640",
"_source": "10"
}
If you had told me Lewis was going to get P2 and Charles P4 heading into the Grand Prix, I would have said you were crazy. What a result — especially for Lewis. Still not looking like a championship is in the cards anytime soon, sadly. #F1
{
"type": "entry",
"published": "2026-05-24T21:49:36.270111+00:00",
"url": "https://cleverdevil.io/2026/if-you-had-told-me-lewis-was-going-to-ge",
"syndication": [
"https://cleverdevil.club/@jonathan/116631756887894332",
"https://bsky.app/profile/cleverdevil.io/post/3mmmwyjsodm24"
],
"content": {
"text": "If you had told me Lewis was going to get P2 and Charles P4 heading into the Grand Prix, I would have said you were crazy. What a result \u2014 especially for Lewis. Still not looking like a championship is in the cards anytime soon, sadly. #F1",
"html": "<p>If you had told me Lewis was going to get P2 and Charles P4 heading into the Grand Prix, I would have said you were crazy. What a result \u2014 especially for Lewis. Still not looking like a championship is in the cards anytime soon, sadly. #F1</p>"
},
"author": {
"type": "card",
"name": "Jonathan LaCour",
"url": "https://cleverdevil.io",
"photo": "https://cleverdevil.io/profile/photo"
},
"post-type": "note",
"_id": "48362893",
"_source": "10"
}
Found a great iOS terminal emulator that supports custom fonts and ligatures. Excellent app. https://apps.apple.com/us/app/moshi-ssh-mosh-terminal/id6757859949
{
"type": "entry",
"published": "2026-05-23T05:51:58.909298+00:00",
"url": "https://cleverdevil.io/2026/found-a-great-ios-terminal-emulator-that",
"syndication": [
"https://cleverdevil.club/@jonathan/116622329051937867",
"https://bsky.app/profile/cleverdevil.io/post/3mmiqzaom4u2c"
],
"content": {
"text": "Found a great iOS terminal emulator that supports custom fonts and ligatures. Excellent app. https://apps.apple.com/us/app/moshi-ssh-mosh-terminal/id6757859949",
"html": "<p>Found a great iOS terminal emulator that supports custom fonts and ligatures. Excellent app. https://apps.apple.com/us/app/moshi-ssh-mosh-terminal/id6757859949</p>"
},
"author": {
"type": "card",
"name": "Jonathan LaCour",
"url": "https://cleverdevil.io",
"photo": "https://cleverdevil.io/profile/photo"
},
"post-type": "note",
"_id": "48346350",
"_source": "10"
}
{
"type": "entry",
"published": "2026-05-22T23:36:36-07:00",
"url": "https://beesbuzz.biz/blog/11730-Stack-updates",
"category": [
"music",
"software",
"commerce"
],
"name": "Stack updates",
"author": {
"type": "card",
"name": "fluffy",
"url": "https://beesbuzz.biz/",
"photo": "https://beesbuzz.biz/static/headshot.jpg"
},
"post-type": "article",
"_id": "48346278",
"_source": "2778"
}
I’m happy that The Boys is finally done. I didn’t love the last few seasons, but I honestly thought the finale was decent, apart from some of the emotional moments that were… poorly executed.
{
"type": "entry",
"published": "2026-05-23T01:18:25.882591+00:00",
"url": "https://cleverdevil.io/2026/im-happy-that-the-boys-is-finally-done-i",
"syndication": [
"https://cleverdevil.club/@jonathan/116621253406800448",
"https://bsky.app/profile/cleverdevil.io/post/3mmibq3xtvh23"
],
"content": {
"text": "I\u2019m happy that The Boys is finally done. I didn\u2019t love the last few seasons, but I honestly thought the finale was decent, apart from some of the emotional moments that were\u2026 poorly executed.",
"html": "<p>I\u2019m happy that The Boys is finally done. I didn\u2019t love the last few seasons, but I honestly thought the finale was decent, apart from some of the emotional moments that were\u2026 poorly executed.</p>"
},
"author": {
"type": "card",
"name": "Jonathan LaCour",
"url": "https://cleverdevil.io",
"photo": "https://cleverdevil.io/profile/photo"
},
"post-type": "note",
"_id": "48345117",
"_source": "10"
}
Ran my 14th Bay to Breakers race in 1:57:12 this past Sunday.
Almost 2min behind last year, from needing a 5min+ pitstop at the Panhandle.
I skipped public transport (see previous years), and left at 7am to jog to the start. After ~3.5 miles I found my way to corral A and serendipitously my pal Henri, dressed in the purple grape costume he’s known for.
Beautiful day for a run, cool and sunny blue skies from the start. The South of Market (SoMa) area seemed cleaner than usual which was a nice change.
High-fived the Midnight Runners Raccoon Riot cheergang on Hayes street. Hayes hill was a jog / power hike slog like recent years with a pleasant downhill after. Except by the time I got to Fell street I felt uncomfortable enough to run out to the portapotties and took a while to deal with the discomfort. The prior evening’s dinner out at Thee Parkside was perhaps too much of a change for my system. Novel eats the night before a race a minor rookie mistake.
The parties on Fell Street seemed particularly loud and crowded this year.
Golden Gate Park was beautiful as usual, and I spotted a few November Project San Francisco (NPSF) folks near Blue Heron Lake (formerly known as Stow Lake). We gathered a few more and took photos in front of the Naga Sea Serpent sculpture.
The rest of the race felt like a comfortable downhill til we passed the bison paddock. Normally where the race turns left at the end it turned right to a new southbound finish on Great Highway. Picked up the pace there to finish in 1:57:13 by my watch, only one second off the recorded chip time.
This past week was a step up in running volume over the past few months, ironically a bit of a reverse taper. Including the warmup and race, I ran 29 miles total (Monday through Sunday). That was a big jump from the previous week so I hiked back through Golden Gate park rather than jogging it out.
Last year: https://tantek.com/2025/138/t1/ran-bay-to-breakers
#SanFrancisco #run #runner #race #roadRace #B2B #Bay2Breakers #BayToBreakers #MidnightRunners #NovemberProject #NPSF
{
"type": "entry",
"published": "2026-05-22 13:04-0700",
"url": "https://tantek.com/2026/142/t1/ran-bay-to-breakers",
"category": [
"SanFrancisco",
"run",
"runner",
"race",
"roadRace",
"B2B",
"Bay2Breakers",
"BayToBreakers",
"MidnightRunners",
"NovemberProject",
"NPSF"
],
"content": {
"text": "Ran my 14th Bay to Breakers race in 1:57:12 this past Sunday.\nAlmost 2min behind last year, from needing a 5min+ pitstop at the Panhandle.\n\nI skipped public transport (see previous years), and left at 7am to jog to the start. After ~3.5 miles I found my way to corral A and serendipitously my pal Henri, dressed in the purple grape costume he\u2019s known for.\n\nBeautiful day for a run, cool and sunny blue skies from the start. The South of Market (SoMa) area seemed cleaner than usual which was a nice change.\n\nHigh-fived the Midnight Runners Raccoon Riot cheergang on Hayes street. Hayes hill was a jog / power hike slog like recent years with a pleasant downhill after. Except by the time I got to Fell street I felt uncomfortable enough to run out to the portapotties and took a while to deal with the discomfort. The prior evening\u2019s dinner out at Thee Parkside was perhaps too much of a change for my system. Novel eats the night before a race a minor rookie mistake.\n\nThe parties on Fell Street seemed particularly loud and crowded this year.\n\nGolden Gate Park was beautiful as usual, and I spotted a few November Project San Francisco (NPSF) folks near Blue Heron Lake (formerly known as Stow Lake). We gathered a few more and took photos in front of the Naga Sea Serpent sculpture.\n\nThe rest of the race felt like a comfortable downhill til we passed the bison paddock. Normally where the race turns left at the end it turned right to a new southbound finish on Great Highway. Picked up the pace there to finish in 1:57:13 by my watch, only one second off the recorded chip time.\n\nThis past week was a step up in running volume over the past few months, ironically a bit of a reverse taper. Including the warmup and race, I ran 29 miles total (Monday through Sunday). That was a big jump from the previous week so I hiked back through Golden Gate park rather than jogging it out.\n\nLast year: https://tantek.com/2025/138/t1/ran-bay-to-breakers\n\n#SanFrancisco #run #runner #race #roadRace #B2B #Bay2Breakers #BayToBreakers #MidnightRunners #NovemberProject #NPSF",
"html": "Ran my 14th Bay to Breakers race in 1:57:12 this past Sunday.<br />Almost 2min behind last year, from needing a 5min+ pitstop at the Panhandle.<br /><br />I skipped public transport (see previous years), and left at 7am to jog to the start. After ~3.5 miles I found my way to corral A and serendipitously my pal Henri, dressed in the purple grape costume he\u2019s known for.<br /><br />Beautiful day for a run, cool and sunny blue skies from the start. The South of Market (SoMa) area seemed cleaner than usual which was a nice change.<br /><br />High-fived the Midnight Runners Raccoon Riot cheergang on Hayes street. Hayes hill was a jog / power hike slog like recent years with a pleasant downhill after. Except by the time I got to Fell street I felt uncomfortable enough to run out to the portapotties and took a while to deal with the discomfort. The prior evening\u2019s dinner out at Thee Parkside was perhaps too much of a change for my system. Novel eats the night before a race a minor rookie mistake.<br /><br />The parties on Fell Street seemed particularly loud and crowded this year.<br /><br />Golden Gate Park was beautiful as usual, and I spotted a few November Project San Francisco (NPSF) folks near Blue Heron Lake (formerly known as Stow Lake). We gathered a few more and took photos in front of the Naga Sea Serpent sculpture.<br /><br />The rest of the race felt like a comfortable downhill til we passed the bison paddock. Normally where the race turns left at the end it turned right to a new southbound finish on Great Highway. Picked up the pace there to finish in 1:57:13 by my watch, only one second off the recorded chip time.<br /><br />This past week was a step up in running volume over the past few months, ironically a bit of a reverse taper. Including the warmup and race, I ran 29 miles total (Monday through Sunday). That was a big jump from the previous week so I hiked back through Golden Gate park rather than jogging it out.<br /><br />Last year: <a href=\"https://tantek.com/2025/138/t1/ran-bay-to-breakers\">https://tantek.com/2025/138/t1/ran-bay-to-breakers</a><br /><br />#<span class=\"p-category\">SanFrancisco</span> #<span class=\"p-category\">run</span> #<span class=\"p-category\">runner</span> #<span class=\"p-category\">race</span> #<span class=\"p-category\">roadRace</span> #<span class=\"p-category\">B2B</span> #<span class=\"p-category\">Bay2Breakers</span> #<span class=\"p-category\">BayToBreakers</span> #<span class=\"p-category\">MidnightRunners</span> #<span class=\"p-category\">NovemberProject</span> #<span class=\"p-category\">NPSF</span>"
},
"author": {
"type": "card",
"name": "Tantek \u00c7elik",
"url": "https://tantek.com/",
"photo": "https://tantek.com/photo.jpg"
},
"post-type": "note",
"_id": "48343487",
"_source": "2460"
}