{"slug": "monthly-meanderings-september-2026", "title": "Monthly Meanderings: September 2026", "summary": "Developer Chris Smith published a September 2026 monthly recap describing his use of LLMs to \"vibe\" a complete music player from a single short prompt, alongside a debugging post on Centauri, his reverse proxy, where default settings in the Lego library combined with systemd-resolved behavior caused failures. Smith also rewrote his site's data architecture to pull shortcode data from remote sources with background caching, and added form-submission mutations to his feed builder after scrapers ignoring nofollow and noindex tags hit every URL combination, with one scraper later generating 100 requests per second from multiple IPs and taking the site down. Smith said he plans to write rate limiting and ASN blocking code next.", "body_md": "Where has the year gone? How is it October already? Although I’m actually writing this in September, so it isn’t. But the point still stands, I think. Man, I’m getting good at these intros. They just flow right off the page, right? … Right?\n\nA couple of new posts appeared in September. [Lego, ACME DNS-01, and negatively-cached surprises](https://chameth.com/lego-acme-dns-01-surprises/) is\na rather snappily titled post about debugging an issue a friend had with [Centauri](https://github.com/csmith/centauri), my reverse proxy.\nTurns out a combination of default settings in the Lego library and the perfectly reasonable behaviour of systemd-resolved makes for a bad\ntime. Maybe that should have had a spoiler warning.\n\nThen in [the expanding scope of coding agents](https://chameth.com/the-expanding-scope-of-coding-agents/) I talk a bit about how my use of\nLLMs for coding has evolved, and how I “vibed” a perfect-for-me music player with a single, short prompt. It’s a spiritual successor to\n[an app can be a ready meal](https://chameth.com/an-app-can-be-a-ready-meal/) from last year. Now the microwave is even easier to operate.\nOr operates on bigger ready meals? It’s a good job I didn’t try to keep the same analogy in the post.\n\nUnder the hood, I’ve been slowly working on changing how data on my website is handled. Previously, if I wanted to display something like board game stats, then chameth.com had to have a complete copy of all my board game data so it could query whatever information was needed. As I added more and more bits and pieces, this felt heavier and heavier, and in some cases was straight-up duplicating data and logic that I had elsewhere. I’m instead moving to a model where the shortcodes pull data from a remote source and cache it for an appropriate amount of time. It’s then refreshed in the background for as long as it’s “live”. So the monthly recap embeds you’ll see below refresh until a few days into October to pick up any straggling data, and are then frozen. It doesn’t really make any difference to what you see on the page, but the architecture pleases me, and I got to delete a whole bunch of code.\n\nFinally, I had to tweak the [feed builder](https://chameth.com/feeds/posts/build/) I mentioned last month. Some scrapers managed\nto stumble into it, then ignored all the `nofollow` and `noindex` tags, and decided to try and scrape every possible combination of posts.\nThat is a lot of combinations. Some of the scrapers are lovely things that pretend to be Chrome and use a different residential proxy\nper connection, so you can’t simply block IPs or user agents. I’ve changed the builder so that each mutation is a form submission, which\nseems to have helped a bit, but there are still some hitting all the URLs they discovered before the change.\n\nI drafted this post a few days before publishing it, and originally wrote “the scrapers didn’t actually put any noticeable load on the website, but they did manage to screw up my analytics!” Guess what! Literally as I went to publish this post my monitoring went off because the site stopped responding after one scraper did 100 requests per second from a bunch of different IPs. Guess I’m writing rate limiting and ASN blocking code tomorrow.\n\nOh look, one of those new cached shortcode things I was talking about! When last month’s post went live, chameth.com had a database of every track I’d listened to since I started logging them. Now instead there’s a dedicated service for that, and it just passes the specific information over. In this case, my most played albums this month:\n\n|  |  |  | Album | Artist | Unique tracks played | Total tracks played | \n|---|---|---|---|---|---|---|\n| 1 |  |  | The Strange Case of… | Halestorm | 7 | 23 | \n| 2 |  |  | From Zero | Linkin Park | 7 | 22 | \n| 3 |  |  | Good Girl Gone Bad: Reloaded | Rihanna | 6 | 22 | \n| 4 |  |  | KPop Demon Hunters (Soundtrack from the Netflix Film) | KPop Demon Hunters Cast | 5 | 21 | \n| 5 |  |  | Love, Drugs & Misery | Eva Under Fire | 10 | 21 | \n| 6 |  |  | Hands | Little Boots | 7 | 20 | \n| 7 |  |  | THE WAY | Dorothy | 6 | 20 | \n| 8 |  |  | Fallen | Evanescence | 7 | 19 | \n| 9 |  |  | Villainous | Eva Under Fire | 7 | 19 | \n| 10 |  |  | American Dream | DIAMANTE | 7 | 18 | \n\nAs I said last month, this is probably going to be pretty same-y. There are some small movements, but it’s still mostly just “albums I love” combined with “albums I like that have songs with a suitable BPM for running” in some order.\n\nI watched a bit of TV this month, catching up on the most recent seasons of [Rick and Morty](https://www.themoviedb.org/tv/60625-rick-and-morty).\nIt’s nice having something relatively short to watch when you’re at a bit of a loose end, or don’t want to have to remember\nwhat contrived plot arc is going on in a longer-form series. I was also pleasantly surprised to discover that\n[SNL UK](https://www.themoviedb.org/tv/288670-saturday-night-live-uk) is back. It’s — as you’d expect — more of the\nsame standard SNL formula, with some hits and some misses, but Weekend Update remains consistently hilarious.\n\nMost of the rest of my entertainment time has been spent in World of Warcraft, in one form or another. I picked up beta\naccess to [WoW: Forever](https://worldofwarcraft.blizzard.com/en-gb/forever), which is basically a semi-modernised version\nof classic WoW but without following the same expansions as the original. Just… classic… forever. I initially didn’t\nthink I’d like it, given how opposed classic players seem to be to everything nice, but so far it seems like they’ve done\na good job balancing it. It feels a lot more like an RPG than modern WoW, where everything feels like a thin veneer over\ngetting gear or various currencies. It’s still early though, so I’m not sure how much “sticking power” it’ll have with me.\n\nIn normal WoW, I’ve been playing both my Shaman and Monk healers. I’m leaning back towards Monk now. It’s still undertuned despite several buffs, but I don’t think that actually matters at the level I’m playing at. After playing around with some of the talents, I’m happier with it than I was, and I still find it a lot more fun to play than the Shaman, even if it doesn’t quite perform as well.\n\nLevel 90\n\nFemale Night Elf\n\nMistweaver Monk\n\n323 average item level\n\n| Midnight Leatherworking |  | 100/100 | \n| Midnight Skinning |  | 100/100 | \n| Midnight Cooking |  | 100/100 | \n| Midnight Fishing |  | 110/300 | \n\n| Altar of Fangs | +10 | 18:53 | 334 | \n| Den of Nalorakk | +12 | 27:40 | 370 | \n| Kings' Rest | +12 | 32:35 | 365 | \n| Murder Row | +12 | 24:02 | 376 | \n| Ruby Life Pools | +12 | 21:31 | 374 | \n| Temple of Sethraliss | +10 | 23:12 | 330 | \n| The Blinding Vale | +10 | 23:56 | 328 | \n| Voidscar Arena | +12 | 29:38 | 365 | \n| Total M+ rating |  |  | 2842 | \n|---|---|---|---|\n\nFemale Dwarf\n\nRestoration Shaman\n\n320 average item level\n\n| Midnight Blacksmithing |  | 100/100 | \n| Midnight Inscription |  | 92/100 | \n| Midnight Fishing |  | 35/300 | \n\n| Altar of Fangs | +12 | 27:28 | 368 | \n| Den of Nalorakk | +12 | 28:10 | 369 | \n| Kings' Rest | +14 | 26:20 | 403 | \n| Murder Row | +12 | 25:04 | 375 | \n| Ruby Life Pools | +12 | 25:19 | 369 | \n| Temple of Sethraliss | +12 | 24:13 | 374 | \n| The Blinding Vale | +12 | 20:23 | 377 | \n| Voidscar Arena | +12 | 23:27 | 373 | \n| Total M+ rating |  |  | 3008 | \n|---|---|---|---|\n\nThis has been a fun month for my running activities! I ran my first timed 5k at the start of the month, finishing in 41:22. My aim was for a pace of around 8 minutes per km, and the actual course was 5.2km, so I was pretty much spot on. It’s not a very fast pace, but given I only started running at the end of June I’m pretty happy with it. I’m now working my way up towards 10k, then I’m going to spend a little while just building volume and hopefully some speed.\n\nNow that I can comfortably run 5km, albeit rather slowly, I’ve started going to my local parkrun each week. Naturally\nI’ve [created a webpage](https://chameth.com/parkrun/) that tracks my stats and results. In hindsight I could have\nstarted going much earlier, and done some of my walk-run training there, but I didn’t want to be around that many\npeople when I was still finding my feet.\n\nI feel like I’m getting a bit better at pacing myself, but I’m also conscious that I don’t really know what my “all-out” speed is and how long I can maintain it for. I don’t think I want to do a time trial while I’m working towards a 10k, so for now I’ll just stick with slowly but surely pushing my PBs down:\n\n14\n\nactivities\n\n8h 0m\n\ntotal time\n\n59.8km\n\ntotal distance\n\n6.5km\n\nlongest distance\n\nI managed to entirely avoid getting on my bike this month. A few planned rides fell through, and the rest of the time the weather was miserable, or my legs were still raising complaints about previous runs, or I was doing this pesky thing called “work”, or I just didn’t feel like it. Hopefully I can squeeze a decent ride in at some point before the weather turns even more, but that list of excuses looks nigh insurmountable.\n\nAn interesting presentation from [Dan McKinley](https://mcfunley.com/), who I remember from [the boring technology club](https://boringtechnology.club/).\nHe seems to be single-handedly propping up the entire `.club` TLD. Anyway, it’s an interesting look at how some LLM tooling\nworks, and contrasts starkly with how half-assed a lot of support bots seem to be.\n\nBryan Cantrill talks about the recent hysteria concerning the risk of LLMs wiping out humanity. Bryan always seems to have very sensible takes, and presents them very well, and this one is no exception.\n\nA post from my friend Simon about redoing his website. I particularly like the screenshots of the previous versions at the end. I’ve been meaning to do a “History of this site” post for a while, and seeing this has moved it up my priority list.\n\nI find hardware projects like these more and more appealing as the software world gets more and more LLMy. They’re physical, and whimsical, and you can’t just recreate it by typing some words into a prompt. Now if you’ll excuse me, I have a sudden urge to solder something…", "url": "https://wpnews.pro/news/monthly-meanderings-september-2026", "canonical_source": "https://chameth.com/monthly-meanderings-2026-09/", "published_at": "2026-10-01 00:00:00+00:00", "updated_at": "2026-10-15 00:17:10.277385+00:00", "lang": "en", "topics": ["ai-tools", "ai-crawlers", "developer-tools"], "entities": ["Chris Smith", "Centauri", "Lego", "systemd-resolved", "chameth.com"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/monthly-meanderings-september-2026", "markdown": "https://wpnews.pro/news/monthly-meanderings-september-2026.md", "text": "https://wpnews.pro/news/monthly-meanderings-september-2026.txt", "jsonld": "https://wpnews.pro/news/monthly-meanderings-september-2026.jsonld"}}