{"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":"93360070","content_html":"<p>Making the Impossible Possible: <a href=\"https://johnbeales.com/2026/making-the-impossible-possible/\">johnbeales.com</a></p>","summary":"I find myself waiting on the blinking square cursor of the Claude Code TUI thinking “go faster,” even though I know it’s already going so much faster than I would have been able to go myself a few months ago. Since starting development with AI agents I feel there is so much more to do […]\n\nThe post ...","url":"https://johnbeales.com/2026/making-the-impossible-possible/","date_published":"2026-07-02T20:25: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-07-02 20:25","date_timestamp":1783023950,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":true,"is_mention":false,"is_podcast":false,"note":"","syndication":[]}},{"id":"92923375","content_html":"\n<p>Working with CSS Container Queries for the first time today, and they don’t quite work how I expected them to work. It’s leading to me having to declare selectors in ways that are not natural to me, although the selectors are working as expected. In short, it’s making me think, harder than most days.</p>\n<p>The...</p> <a href=\"https://johnbeales.com/micro/2026-06-25t210752-0400/\">johnbeales.com</a>","summary":"","url":"https://johnbeales.com/micro/2026-06-25t210752-0400/","date_published":"2026-06-26T01:09:52+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-26 01:09","date_timestamp":1782436192,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"is_podcast":false,"note":"","syndication":[]}},{"id":"92551953","content_html":"<p>The Apollo Murders <img src=\"https://micro.blog/photos/50/https://i0.wp.com/johnbeales.com/wp-content/uploads/2026/06/book-45894-cover.jpg?fit=323%2C500&amp;ssl=1\" width=\"20\" height=\"20\" class=\"mini_thumbnail\" alt=\"\"> : <a href=\"https://johnbeales.com/books/the-apollo-murders/\">johnbeales.com</a></p>","summary":"With a title like The Apollo Murders I expected something a lot closer to a classic whodunnit. This wasn’t that, and I’m glad it wasn’t – it was better! Want to read it yourself? Get from Amazon: Amazon.com (USA) Amazon.ca (Canada) Amazon.co.uk (UK)\n\nThe post The Apollo Murders appeared first on Joh...","url":"https://johnbeales.com/books/the-apollo-murders/","date_published":"2026-06-20T13:36:11+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-20 13:36","date_timestamp":1781962571,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":true,"is_mention":false,"is_podcast":false,"note":"","syndication":[]}},{"id":"92401428","content_html":"<p>Web Cartography <img src=\"https://micro.blog/photos/50/https://i0.wp.com/johnbeales.com/wp-content/uploads/2026/06/book-45805-cover.jpg?fit=259%2C400&amp;ssl=1\" width=\"20\" height=\"20\" class=\"mini_thumbnail\" alt=\"\"> : <a href=\"https://johnbeales.com/books/web-cartography/\">johnbeales.com</a></p>","summary":"I’ve been meaning to read this for years. I finally picked up a copy for a decent price last year, and read it as a refresher before embarking on some map creation. It seems a bit strange, reading a technology-related book from 2014 in 2026, but Ian Muehlenhaus did a good job of keeping most […]\n\nTh...","url":"https://johnbeales.com/books/web-cartography/","date_published":"2026-06-18T00:38: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-18 00:38","date_timestamp":1781743097,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":true,"is_mention":false,"is_podcast":false,"note":"","syndication":[]}},{"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,"is_podcast":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,"is_podcast":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,"is_podcast":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,"is_podcast":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,"is_podcast":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,"is_podcast":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,"is_podcast":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,"is_podcast":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,"is_podcast":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,"is_podcast":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,"is_podcast":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,"is_podcast":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,"is_podcast":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,"is_podcast":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,"is_podcast":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,"is_podcast":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,"is_podcast":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,"is_podcast":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,"is_podcast":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,"is_podcast":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,"is_podcast":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}}]}