{"version":"https://jsonfeed.org/version/1","title":"Micro.blog - John Beales","home_page_url":"https://micro.blog","feed_url":"https://micro.blog/posts/beales","_microblog":{"about":"https://micro.blog/about/api","id":"2463","username":"beales","bio":"Make websites. Ride a bike. Grow a garden.","pronouns":"","is_following":false,"is_you":false,"following_count":16,"discover_count":0},"author":{"name":"John Beales","url":"https://johnbeales.com","avatar":"https://www.gravatar.com/avatar/273e297193c7b955a8bf9feb67f1e1c1?s=96&d=https%3A%2F%2Fmicro.blog%2Fimages%2Fblank_avatar.png"},"items":[{"id":"92119467","content_html":"\n<p>Yesterday’s Fable ban caught me by surprise, I was planning on using Fable 5 until at least June 22, and hoping that it wouldn’t actually go token-only after June 22. Fable is good, even great!</p>\n\n\n\n<p>I’m back on Opus 4.8 with GPT 5.5 supervision earlier than expected. <img src=\"https://cdn.micro.blog/photos/1000x/https%3A%2F%2Fs.w.org%2Fimages%2Fcore%2Femoji%2F17.0.2%2F72x72%2F1f61e.png\" alt=\"😞\" class=\"wp-smiley\" style=\"height: 1em; max-height: 1em;\" loading=\"lazy\"></p>\n\n\n\n<p></p>\n<p>The post <a href=\"https://johnbeales.com/micro/2026-06-13t132647-0400/\"></a> appeared first on <a href=\"https://johnbeales.com\">John Beales</a>.</p>\n","summary":"","url":"https://johnbeales.com/micro/2026-06-13t132647-0400/","date_published":"2026-06-13T17:31:17+00:00","author":{"name":"John Beales","url":"https://johnbeales.com","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fwww.gravatar.com%2Favatar%2F273e297193c7b955a8bf9feb67f1e1c1%3Fs%3D96%26d%3Dhttps%253A%252F%252Fmicro.blog%252Fimages%252Fblank_avatar.png","_microblog":{"username":"beales"}},"_microblog":{"date_relative":"2026-06-13 17:31","date_timestamp":1781371877,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"92065647","content_html":"\n<p>It’s time for the Jetbrains Developer Ecosystem Survey! Participate at my referral URL! <a href=\"https://surveys.jetbrains.com/s3/developer-ecosystem-survey-2026-sh?pcode=473387363801875378\">https://surveys.jetbrains.com/s3/developer-ecosystem-survey-2026-sh?pcode=473387363801875378</a></p>\n\n\n\n<p></p>\n<p>The post <a href=\"https://johnbeales.com/micro/2026-06-12t155517-0400/\"></a> appeared first on <a href=\"https://johnbeales.com\">John Beales</a>.</p>\n","summary":"","url":"https://johnbeales.com/micro/2026-06-12t155517-0400/","date_published":"2026-06-12T19:56:37+00:00","author":{"name":"John Beales","url":"https://johnbeales.com","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fwww.gravatar.com%2Favatar%2F273e297193c7b955a8bf9feb67f1e1c1%3Fs%3D96%26d%3Dhttps%253A%252F%252Fmicro.blog%252Fimages%252Fblank_avatar.png","_microblog":{"username":"beales"}},"_microblog":{"date_relative":"2026-06-12 19:56","date_timestamp":1781294197,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"91945421","content_html":"<p>Fixing Chrome’s “No usable sandbox!” During Web Requests with Browsershot and Puppeteer: <a href=\"https://johnbeales.com/2026/fixing-chromes-no-usable-sandbox-during-web-requests-with-browsershot-and-puppeteer/\">johnbeales.com</a></p>","summary":"After getting Chrome up and running as the www-data user for Laravel workers, I tried to generate a PDF during a web request and got Chrome’s “No usable sandbox!” error. Uh-oh. Chrome needs a sandbox, it is strongly discouraged to run without one. So, how to get a sandbox up and running? A lot of […...","url":"https://johnbeales.com/2026/fixing-chromes-no-usable-sandbox-during-web-requests-with-browsershot-and-puppeteer/","date_published":"2026-06-11T01:43:13+00:00","author":{"name":"John Beales","url":"https://johnbeales.com","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fwww.gravatar.com%2Favatar%2F273e297193c7b955a8bf9feb67f1e1c1%3Fs%3D96%26d%3Dhttps%253A%252F%252Fmicro.blog%252Fimages%252Fblank_avatar.png","_microblog":{"username":"beales"}},"_microblog":{"date_relative":"2026-06-11 01:43","date_timestamp":1781142193,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":true,"is_mention":false,"note":"","syndication":[]}},{"id":"91945422","content_html":"<p>Install Chrome as the www-data User: <a href=\"https://johnbeales.com/2026/install-chrome-as-the-www-data-user/\">johnbeales.com</a></p>","summary":"After recently rebuilding the 4RoadService web server on Debian 13, Browsershot wasn’t working right. It wasn’t working at all. We run Laravel on a slightly old-school LAMP setup with PHP-FPM, and run the Laravel workers as the www-data user, the same user that runs the web server, so that user need...","url":"https://johnbeales.com/2026/install-chrome-as-the-www-data-user/","date_published":"2026-06-11T01:16:55+00:00","author":{"name":"John Beales","url":"https://johnbeales.com","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fwww.gravatar.com%2Favatar%2F273e297193c7b955a8bf9feb67f1e1c1%3Fs%3D96%26d%3Dhttps%253A%252F%252Fmicro.blog%252Fimages%252Fblank_avatar.png","_microblog":{"username":"beales"}},"_microblog":{"date_relative":"2026-06-11 01:16","date_timestamp":1781140615,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":true,"is_mention":false,"note":"","syndication":[]}},{"id":"91863688","content_html":"\n<p>Asked Claude Code with Fable 5 to write some API docs based on the code, and it did, and also pointed out some bugs in the API, which it is now fixing, and updating the docs to match the fixes.</p>\n<p>The post <a href=\"https://johnbeales.com/micro/2026-06-09t181611-0400/\"></a> appeared first on <a href=\"https://johnbeales.com\">John Beales</a>.</p>\n","summary":"","url":"https://johnbeales.com/micro/2026-06-09t181611-0400/","date_published":"2026-06-09T22:17:47+00:00","author":{"name":"John Beales","url":"https://johnbeales.com","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fwww.gravatar.com%2Favatar%2F273e297193c7b955a8bf9feb67f1e1c1%3Fs%3D96%26d%3Dhttps%253A%252F%252Fmicro.blog%252Fimages%252Fblank_avatar.png","_microblog":{"username":"beales"}},"_microblog":{"date_relative":"2026-06-09 22:17","date_timestamp":1781043467,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"91862912","content_html":"\n<a href=\"https://i0.wp.com/johnbeales.com/wp-content/uploads/2026/06/Screenshot-2026-06-09-at-17.48.23.png?ssl=1\"><img data-recalc-dims=\"1\" width=\"960\" height=\"834\" src=\"https://cdn.micro.blog/photos/1000x/https%3A%2F%2Fi0.wp.com%2Fjohnbeales.com%2Fwp-content%2Fuploads%2F2026%2F06%2FScreenshot-2026-06-09-at-17.48.23.png%3Fresize%3D960%252C834%26ssl%3D1\" alt=\"\" class=\"wp-image-45519\" loading=\"lazy\"></a>\n\n\n\n<p>I’m migrating analytics to a new database structure for 4RoadService, it looks like this will take a few days. This should enable faster, better, and more accurate reporting for our customers. </p>\n<p>The post <a href=\"https://johnbeales.com/micro/2026-06-09t174853-0400/\"></a> appeared first on <a href=\"https://johnbeales.com\">John Beales</a>.</p>\n","summary":"","url":"https://johnbeales.com/micro/2026-06-09t174853-0400/","date_published":"2026-06-09T21:51:40+00:00","author":{"name":"John Beales","url":"https://johnbeales.com","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fwww.gravatar.com%2Favatar%2F273e297193c7b955a8bf9feb67f1e1c1%3Fs%3D96%26d%3Dhttps%253A%252F%252Fmicro.blog%252Fimages%252Fblank_avatar.png","_microblog":{"username":"beales"}},"_microblog":{"date_relative":"2026-06-09 21:51","date_timestamp":1781041900,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"91862913","content_html":"\n<p>Playing around with Anthropic’s <a href=\"https://www.anthropic.com/news/claude-fable-5-mythos-5\">Fable</a> this afternoon to do some code review and write some documentation. So far it seems to be very thorough.</p>\n\n\n\n<p></p>\n<p>The post <a href=\"https://johnbeales.com/micro/2026-06-09t163409-0400/\"></a> appeared first on <a href=\"https://johnbeales.com\">John Beales</a>.</p>\n","summary":"","url":"https://johnbeales.com/micro/2026-06-09t163409-0400/","date_published":"2026-06-09T20:35:40+00:00","author":{"name":"John Beales","url":"https://johnbeales.com","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fwww.gravatar.com%2Favatar%2F273e297193c7b955a8bf9feb67f1e1c1%3Fs%3D96%26d%3Dhttps%253A%252F%252Fmicro.blog%252Fimages%252Fblank_avatar.png","_microblog":{"username":"beales"}},"_microblog":{"date_relative":"2026-06-09 20:35","date_timestamp":1781037340,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"91047630","content_html":"\n<p>So far all my Claude Code work has been with Laravel. Today I’m starting a new project with WordPress, and will be interested to see how Claude does in a slightly different domain.</p>\n<p>The post <a href=\"https://johnbeales.com/micro/2026-05-27t195319-0400/\"></a> appeared first on <a href=\"https://johnbeales.com\">John Beales</a>.</p>\n","summary":"","url":"https://johnbeales.com/micro/2026-05-27t195319-0400/","date_published":"2026-05-27T23:55:04+00:00","author":{"name":"John Beales","url":"https://johnbeales.com","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fwww.gravatar.com%2Favatar%2F273e297193c7b955a8bf9feb67f1e1c1%3Fs%3D96%26d%3Dhttps%253A%252F%252Fmicro.blog%252Fimages%252Fblank_avatar.png","_microblog":{"username":"beales"}},"_microblog":{"date_relative":"2026-05-27 23:55","date_timestamp":1779926104,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"90980228","content_html":"\n<p>I am now a member of the “Claude code deleted something that it shouldn’t have from my database” club! Good thing it was a development database.</p>\n<p>The post <a href=\"https://johnbeales.com/micro/2026-05-26t200821-0400/\"></a> appeared first on <a href=\"https://johnbeales.com\">John Beales</a>.</p>\n","summary":"","url":"https://johnbeales.com/micro/2026-05-26t200821-0400/","date_published":"2026-05-27T00:09:58+00:00","author":{"name":"John Beales","url":"https://johnbeales.com","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fwww.gravatar.com%2Favatar%2F273e297193c7b955a8bf9feb67f1e1c1%3Fs%3D96%26d%3Dhttps%253A%252F%252Fmicro.blog%252Fimages%252Fblank_avatar.png","_microblog":{"username":"beales"}},"_microblog":{"date_relative":"2026-05-27 00:09","date_timestamp":1779840598,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"90962352","content_html":"\n<p>Developer headaches meet real-world applications. </p>\n\n\n\n<a href=\"https://i0.wp.com/johnbeales.com/wp-content/uploads/2026/05/IMG_3361.jpeg?ssl=1\"><img data-recalc-dims=\"1\" width=\"960\" height=\"244\" src=\"https://cdn.micro.blog/photos/1000x/https%3A%2F%2Fi0.wp.com%2Fjohnbeales.com%2Fwp-content%2Fuploads%2F2026%2F05%2FIMG_3361.jpeg%3Fresize%3D960%252C244%26ssl%3D1\" alt=\"A screenshot of an iPhone notification stating that time zone information has been updated, and the phone should be restarted to apply the new time zone definitions.\" class=\"wp-image-45124\" loading=\"lazy\"></a>\n\n\n\n<p></p>\n<p>The post <a href=\"https://johnbeales.com/micro/2026-05-26t151213-0400/\"></a> appeared first on <a href=\"https://johnbeales.com\">John Beales</a>.</p>\n","summary":"","url":"https://johnbeales.com/micro/2026-05-26t151213-0400/","date_published":"2026-05-26T19:14:48+00:00","author":{"name":"John Beales","url":"https://johnbeales.com","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fwww.gravatar.com%2Favatar%2F273e297193c7b955a8bf9feb67f1e1c1%3Fs%3D96%26d%3Dhttps%253A%252F%252Fmicro.blog%252Fimages%252Fblank_avatar.png","_microblog":{"username":"beales"}},"_microblog":{"date_relative":"2026-05-26 19:14","date_timestamp":1779822888,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"90793067","content_html":"\n<p>That’s pretty cool that cruise ships are stopping there, it’s the type of useless, geeky “visit” that nobody needs to make, but I would love to be able to say I have done.</p>\n<p>The post <a href=\"https://johnbeales.com/micro/2026-05-23t172847-0400/\"></a> appeared first on <a href=\"https://johnbeales.com\">John Beales</a>.</p>\n","summary":"","url":"https://johnbeales.com/micro/2026-05-23t172847-0400/","date_published":"2026-05-23T21:30:15+00:00","author":{"name":"John Beales","url":"https://johnbeales.com","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fwww.gravatar.com%2Favatar%2F273e297193c7b955a8bf9feb67f1e1c1%3Fs%3D96%26d%3Dhttps%253A%252F%252Fmicro.blog%252Fimages%252Fblank_avatar.png","_microblog":{"username":"beales"}},"_microblog":{"date_relative":"2026-05-23 21:30","date_timestamp":1779571815,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"90792861","content_html":"<p>The Historian <img src=\"https://micro.blog/photos/50/https://i0.wp.com/johnbeales.com/wp-content/uploads/2026/05/book-44999-cover.jpg?fit=263%2C400&amp;ssl=1\" width=\"20\" height=\"20\" class=\"mini_thumbnail\" alt=\"\"> : <a href=\"https://johnbeales.com/books/the-historian/\">johnbeales.com</a></p>","summary":"I received Elizabeth Kostova’s vampire novel The Historian for my birthday earlier this spring, and finished it last night. It has been great fun to read. I read Dracula back in 2023, but it seems like this year, for some reason, I have had more exposure to vampire stories, maybe because my Russian ...","url":"https://johnbeales.com/books/the-historian/","date_published":"2026-05-23T21:25:51+00:00","author":{"name":"John Beales","url":"https://johnbeales.com","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fwww.gravatar.com%2Favatar%2F273e297193c7b955a8bf9feb67f1e1c1%3Fs%3D96%26d%3Dhttps%253A%252F%252Fmicro.blog%252Fimages%252Fblank_avatar.png","_microblog":{"username":"beales"}},"_microblog":{"date_relative":"2026-05-23 21:25","date_timestamp":1779571551,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":true,"is_mention":false,"note":"","syndication":[]}},{"id":"90657637","content_html":"\n<p>Switched to the new <a href=\"https://activitypub.blog/2026/05/20/atmosphere-1-0-0-liftoff/\">ATmosphere</a> plugin for Bluesky/AT protocol integration from <a href=\"https://johnbeales.com\">johnbeales.com</a>, and it seems great. So far it does exactly what I want it to.</p>\n\n\n\n<p></p>\n<p>The post <a href=\"https://johnbeales.com/micro/2026-05-21t151813-0400/\"></a> appeared first on <a href=\"https://johnbeales.com\">John Beales</a>.</p>\n","summary":"","url":"https://johnbeales.com/micro/2026-05-21t151813-0400/","date_published":"2026-05-21T19:19:41+00:00","author":{"name":"John Beales","url":"https://johnbeales.com","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fwww.gravatar.com%2Favatar%2F273e297193c7b955a8bf9feb67f1e1c1%3Fs%3D96%26d%3Dhttps%253A%252F%252Fmicro.blog%252Fimages%252Fblank_avatar.png","_microblog":{"username":"beales"}},"_microblog":{"date_relative":"2026-05-21 19:19","date_timestamp":1779391181,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"90657638","content_html":"\n<p>WordPress 7.0 upgrade completed, nothing seems broken. </p>\n<p>The post <a href=\"https://johnbeales.com/micro/2026-05-21t151625-0400/\"></a> appeared first on <a href=\"https://johnbeales.com\">John Beales</a>.</p>\n","summary":"","url":"https://johnbeales.com/micro/2026-05-21t151625-0400/","date_published":"2026-05-21T19:17:15+00:00","author":{"name":"John Beales","url":"https://johnbeales.com","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fwww.gravatar.com%2Favatar%2F273e297193c7b955a8bf9feb67f1e1c1%3Fs%3D96%26d%3Dhttps%253A%252F%252Fmicro.blog%252Fimages%252Fblank_avatar.png","_microblog":{"username":"beales"}},"_microblog":{"date_relative":"2026-05-21 19:17","date_timestamp":1779391035,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"90657639","content_html":"\n<p>Time to update to WordPress 7.0! It seems like a big release.</p>\n<p>The post <a href=\"https://johnbeales.com/micro/2026-05-21t150613-0400/\"></a> appeared first on <a href=\"https://johnbeales.com\">John Beales</a>.</p>\n","summary":"","url":"https://johnbeales.com/micro/2026-05-21t150613-0400/","date_published":"2026-05-21T19:06:38+00:00","author":{"name":"John Beales","url":"https://johnbeales.com","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fwww.gravatar.com%2Favatar%2F273e297193c7b955a8bf9feb67f1e1c1%3Fs%3D96%26d%3Dhttps%253A%252F%252Fmicro.blog%252Fimages%252Fblank_avatar.png","_microblog":{"username":"beales"}},"_microblog":{"date_relative":"2026-05-21 19:06","date_timestamp":1779390398,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"90048415","content_html":"\n<p>Did a lot of cleaning today while Claude &amp; Codex were churning. I’m going to have to spin up a side project or something to handle the waiting.</p>\n<p>The post <a href=\"https://johnbeales.com/micro/2026-05-12t180448-0400/\"></a> appeared first on <a href=\"https://johnbeales.com\">John Beales</a>.</p>\n","summary":"","url":"https://johnbeales.com/micro/2026-05-12t180448-0400/","date_published":"2026-05-12T22:05:28+00:00","author":{"name":"John Beales","url":"https://johnbeales.com","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fwww.gravatar.com%2Favatar%2F273e297193c7b955a8bf9feb67f1e1c1%3Fs%3D96%26d%3Dhttps%253A%252F%252Fmicro.blog%252Fimages%252Fblank_avatar.png","_microblog":{"username":"beales"}},"_microblog":{"date_relative":"2026-05-12 22:05","date_timestamp":1778623528,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"89593277","content_html":"\n<p>Working on a Wix site this afternoon. Has anyone figured out how to make agents do Wix development yet?</p>\n<p>The post <a href=\"https://johnbeales.com/micro/2026-05-04t150536-0400/\"></a> appeared first on <a href=\"https://johnbeales.com\">John Beales</a>.</p>\n","summary":"","url":"https://johnbeales.com/micro/2026-05-04t150536-0400/","date_published":"2026-05-04T19:06:55+00:00","author":{"name":"John Beales","url":"https://johnbeales.com","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fwww.gravatar.com%2Favatar%2F273e297193c7b955a8bf9feb67f1e1c1%3Fs%3D96%26d%3Dhttps%253A%252F%252Fmicro.blog%252Fimages%252Fblank_avatar.png","_microblog":{"username":"beales"}},"_microblog":{"date_relative":"2026-05-04 19:06","date_timestamp":1777921615,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"89537755","content_html":"\n<p><a href=\"https://www.reddit.com/r/Wordpress/comments/16jfk6w/emojis_not_working_in_wordpress_posts/\">This Reddit thread</a> pointed me in the right direction to update my (very old) WordPress database to support emoji.</p>\n\n\n\n<p></p>\n<p>The post <a href=\"https://johnbeales.com/micro/2026-05-03t200721-0400/\"></a> appeared first on <a href=\"https://johnbeales.com\">John Beales</a>.</p>\n","summary":"","url":"https://johnbeales.com/micro/2026-05-03t200721-0400/","date_published":"2026-05-04T00:08:55+00:00","author":{"name":"John Beales","url":"https://johnbeales.com","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fwww.gravatar.com%2Favatar%2F273e297193c7b955a8bf9feb67f1e1c1%3Fs%3D96%26d%3Dhttps%253A%252F%252Fmicro.blog%252Fimages%252Fblank_avatar.png","_microblog":{"username":"beales"}},"_microblog":{"date_relative":"2026-05-04 00:08","date_timestamp":1777853335,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"89537756","content_html":"\n<p>Updated some database tables and now I think I have emoji working here. <img src=\"https://cdn.micro.blog/photos/1000x/https%3A%2F%2Fs.w.org%2Fimages%2Fcore%2Femoji%2F17.0.2%2F72x72%2F1f33b.png\" alt=\"🌻\" class=\"wp-smiley\" style=\"height: 1em; max-height: 1em;\" loading=\"lazy\"></p>\n<p>The post <a href=\"https://johnbeales.com/micro/2026-05-03t200556-0400/\"></a> appeared first on <a href=\"https://johnbeales.com\">John Beales</a>.</p>\n","summary":"","url":"https://johnbeales.com/micro/2026-05-03t200556-0400/","date_published":"2026-05-04T00:06:27+00:00","author":{"name":"John Beales","url":"https://johnbeales.com","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fwww.gravatar.com%2Favatar%2F273e297193c7b955a8bf9feb67f1e1c1%3Fs%3D96%26d%3Dhttps%253A%252F%252Fmicro.blog%252Fimages%252Fblank_avatar.png","_microblog":{"username":"beales"}},"_microblog":{"date_relative":"2026-05-04 00:06","date_timestamp":1777853187,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"89533117","content_html":"\n<p>Dropping the Cloudflare “Managed Challenge” hammer on bots that are overwhelming a server. <img src=\"https://cdn.micro.blog/photos/1000x/https%3A%2F%2Fs.w.org%2Fimages%2Fcore%2Femoji%2F17.0.2%2F72x72%2F1f617.png\" alt=\"😗\" class=\"wp-smiley\" style=\"height: 1em; max-height: 1em;\" loading=\"lazy\"></p>\n\n\n\n<a href=\"https://i0.wp.com/johnbeales.com/wp-content/uploads/2026/05/Screenshot-2026-05-03-at-16.56.10.png?ssl=1\"><img data-recalc-dims=\"1\" width=\"960\" height=\"494\" src=\"https://cdn.micro.blog/photos/1000x/https%3A%2F%2Fi0.wp.com%2Fjohnbeales.com%2Fwp-content%2Fuploads%2F2026%2F05%2FScreenshot-2026-05-03-at-16.56.10.png%3Fresize%3D960%252C494%26ssl%3D1\" alt=\"\" class=\"wp-image-44353\" loading=\"lazy\"></a>\n<p>The post <a href=\"https://johnbeales.com/micro/2026-05-03t165652-0400/\"></a> appeared first on <a href=\"https://johnbeales.com\">John Beales</a>.</p>\n","summary":"","url":"https://johnbeales.com/micro/2026-05-03t165652-0400/","date_published":"2026-05-03T20:58:06+00:00","author":{"name":"John Beales","url":"https://johnbeales.com","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fwww.gravatar.com%2Favatar%2F273e297193c7b955a8bf9feb67f1e1c1%3Fs%3D96%26d%3Dhttps%253A%252F%252Fmicro.blog%252Fimages%252Fblank_avatar.png","_microblog":{"username":"beales"}},"_microblog":{"date_relative":"2026-05-03 20:58","date_timestamp":1777841886,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"89519646","content_html":"\n<p>Discovered today that <a href=\"https://datatracker.ietf.org/doc/html/rfc2396\">URLs are supposed to be restricted to ASCII characters</a>. Had to (have Claude) write a command to update some URLs.</p>\n<p>The post <a href=\"https://johnbeales.com/micro/2026-05-03t131301-0400/\"></a> appeared first on <a href=\"https://johnbeales.com\">John Beales</a>.</p>\n","summary":"","url":"https://johnbeales.com/micro/2026-05-03t131301-0400/","date_published":"2026-05-03T17:14:51+00:00","author":{"name":"John Beales","url":"https://johnbeales.com","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fwww.gravatar.com%2Favatar%2F273e297193c7b955a8bf9feb67f1e1c1%3Fs%3D96%26d%3Dhttps%253A%252F%252Fmicro.blog%252Fimages%252Fblank_avatar.png","_microblog":{"username":"beales"}},"_microblog":{"date_relative":"2026-05-03 17:14","date_timestamp":1777828491,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"89461329","content_html":"\n<p>Cleaning up some unexpected fallout from updating to Laravel 13 yesterday, clearly I need to add a couple more tests to my test suite.</p>\n<p>The post <a href=\"https://johnbeales.com/micro/2026-05-02t125337-0400/\"></a> appeared first on <a href=\"https://johnbeales.com\">John Beales</a>.</p>\n","summary":"","url":"https://johnbeales.com/micro/2026-05-02t125337-0400/","date_published":"2026-05-02T16:54:28+00:00","author":{"name":"John Beales","url":"https://johnbeales.com","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fwww.gravatar.com%2Favatar%2F273e297193c7b955a8bf9feb67f1e1c1%3Fs%3D96%26d%3Dhttps%253A%252F%252Fmicro.blog%252Fimages%252Fblank_avatar.png","_microblog":{"username":"beales"}},"_microblog":{"date_relative":"2026-05-02 16:54","date_timestamp":1777740868,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"89461330","content_html":"\n<p><a href=\"https://wordpress.com/blog/2026/04/28/a-new-theme-for-short-form-blogging-on-wordpress-com/\">WordPress.com’s new microblogging interface</a> makes me think I should release the system I’m using here for microblogging.</p>\n\n\n\n<p></p>\n<p>The post <a href=\"https://johnbeales.com/micro/2026-04-30t155124-0400/\"></a> appeared first on <a href=\"https://johnbeales.com\">John Beales</a>.</p>\n","summary":"","url":"https://johnbeales.com/micro/2026-04-30t155124-0400/","date_published":"2026-04-30T19:52:50+00:00","author":{"name":"John Beales","url":"https://johnbeales.com","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fwww.gravatar.com%2Favatar%2F273e297193c7b955a8bf9feb67f1e1c1%3Fs%3D96%26d%3Dhttps%253A%252F%252Fmicro.blog%252Fimages%252Fblank_avatar.png","_microblog":{"username":"beales"}},"_microblog":{"date_relative":"2026-04-30 19:52","date_timestamp":1777578770,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"89461331","content_html":"\n<p>Put my AirPods Pro in the wash <img src=\"https://cdn.micro.blog/photos/1000x/https%3A%2F%2Fs.w.org%2Fimages%2Fcore%2Femoji%2F17.0.2%2F72x72%2F1f641.png\" alt=\"🙁\" class=\"wp-smiley\" style=\"height: 1em; max-height: 1em;\" loading=\"lazy\"> They seem to be okay, but are drying out so they stop making weird noises.</p>\n<p>The post <a href=\"https://johnbeales.com/micro/2026-04-30t154441-0400/\"></a> appeared first on <a href=\"https://johnbeales.com\">John Beales</a>.</p>\n","summary":"","url":"https://johnbeales.com/micro/2026-04-30t154441-0400/","date_published":"2026-04-30T19:45:34+00:00","author":{"name":"John Beales","url":"https://johnbeales.com","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fwww.gravatar.com%2Favatar%2F273e297193c7b955a8bf9feb67f1e1c1%3Fs%3D96%26d%3Dhttps%253A%252F%252Fmicro.blog%252Fimages%252Fblank_avatar.png","_microblog":{"username":"beales"}},"_microblog":{"date_relative":"2026-04-30 19:45","date_timestamp":1777578334,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"89336097","content_html":"<p>My Brilliant Friend <img src=\"https://micro.blog/photos/50/https://i0.wp.com/johnbeales.com/wp-content/uploads/2026/04/book-44257-cover.jpg?fit=304%2C500&amp;ssl=1\" width=\"20\" height=\"20\" class=\"mini_thumbnail\" alt=\"\"> : <a href=\"https://johnbeales.com/books/my-brilliant-friend/\">johnbeales.com</a></p>","summary":"After the hype a couple of years back I figured I should read it, and it turns out that I enjoyed it. I might read the rest of the series. Want to read it yourself? Get from Amazon: Amazon.com (USA) Amazon.ca (Canada) Amazon.co.uk (UK)\n\nThe post My Brilliant Friend appeared first on John Beales.","url":"https://johnbeales.com/books/my-brilliant-friend/","date_published":"2026-04-30T18:51:17+00:00","author":{"name":"John Beales","url":"https://johnbeales.com","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fwww.gravatar.com%2Favatar%2F273e297193c7b955a8bf9feb67f1e1c1%3Fs%3D96%26d%3Dhttps%253A%252F%252Fmicro.blog%252Fimages%252Fblank_avatar.png","_microblog":{"username":"beales"}},"_microblog":{"date_relative":"2026-04-30 18:51","date_timestamp":1777575077,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":true,"is_mention":false,"note":"","syndication":[]}},{"id":"177299","content_html":"<p><a href=\"https://micro.blog/aaronpk\">@aaronpk</a> is that a chain store that might have a Montreal location? I’d love to grab some more ABA books, but shipping to Canada is super expensive.</p>\n","url":"https://micro.blog/beales/177299","date_published":"2017-10-26T17:11:25+00:00","author":{"name":"John Beales","url":"https://johnbeales.com","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fwww.gravatar.com%2Favatar%2F273e297193c7b955a8bf9feb67f1e1c1%3Fs%3D96%26d%3Dhttps%253A%252F%252Fmicro.blog%252Fimages%252Fblank_avatar.png","_microblog":{"username":"beales"}},"_microblog":{"date_relative":"2017-10-26 17:11","date_timestamp":1509037885,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}}]}