Thursday, July 30, 2026

I just moved over the socials auto poster from the old blog repo to the new blog repo. I carefully moved over all credential secrets etc., but just a heads up in case something weird happens when it runs tomorrow. #

Wednesday, July 29, 2026

I discovered a regression in the blog rss feed yesterday shortly after posting that everything had gone great with the deploy. The feed items were appearing in ascending order instead of descending order. I found the bug, and fixed it. The feeds should be back to the correct reverse chronological ordering. #

Just noticed that the top right images in posts aren‘t getting added to the rss feed. Oh noes! Darn it. That‘s because the image gets inserted in the website using a partial, but the rss feed currently just gets the plain rendered markdown. There is an easy fix, and likely a more elegant one too. I have to think about this some more. #

Managed to fix the top right image issue. If there is a top right image defined in a post it now makes it into the RSS feeds. In the end it wasn‘t that complicated, I had to add a middleware to insert the image right after the posts get loaded. #

Tuesday, July 28, 2026

Last night‘s switch over to the new blog went pretty seamlessly. No downtime and everything seems to be working as expected. #

WarholOf course now that I have the blog remembering which background image each post had working, I‘m thinking of the bigger picture, how can I set things up so that it‘s not just the header image that it remembers, but the entire site design. I think maybe my new theme feature could be useful there, but that will have to be for another day. #

Saturday, July 25, 2026

As part of getting the fast rendering blog complete, I‘ve managed to resurect the tags pages. That was something that the old blog had that I hadn‘t managed to port to the new system. And I think I‘ve managed to make them much more useful. Also a rather cool entirely new feature that might be fun going forward. Quite a lot of new moving parts need to fall into place so please bear with me if things go a bit weird initially. #

Thursday, July 23, 2026

I'm pretty close to having the new fast rendering blog ready for production. I think I got the final big structural issue solved last night. Might try and deploy it today. It has a somewhat more refined look. One small step for my blog, potentially a giant leap for website rendering. #

Monday, July 20, 2026

The issue I have with the IndieWeb is it just feels too complicated. Great write up by Andros Fenollosa of his experiences. He really likes it. I didn't realise they were overloading CSS classes. Just seems like a really bad idea to overload CSS classes to do social web stuff imho. When you are starting out writing HTML/CSS/Javascript things get complicated enough pretty quickly. #

Friday, July 10, 2026

All you need is templates and an LLM. #

I just overhauled the bash aliases I have configured for all the git commands I use most often. I was thinking wouldn‘t it be nice if it were easier to edit my dotfiles and wouldn‘t you know it, I found a bash function called dotedit I had created the last time I refactored my dotfiles, but then totally forgot I had written it. I need to remember to use dotedit! #

One of the odd things about LLMs is they can both get you out of a tangled mess, and cause you to fall into one, and often at the same time. #

Thursday, July 9, 2026

Previously on the blog, notes and posts appeared in the order they were written. In the new blog I‘m trying something different. The notes always appear above the blog posts, and the links as usual appear at the bottom. I want to make "small thoughts" the first order of the day. #

Saturday, July 4, 2026

I got a live version of the new blog deployed earlier and everything looks good. The big thing about the new site is it‘s a lot easier to navigate through all the content. You can easily filter on the content type you want to look at, or just read everything on the front page. The other major thing, for me at least, is to know it‘s on a much more solid foundation. I‘m going to give it another day before I switch over the DNS. #

Monday, June 29, 2026

I‘ve been knee deep in render optimisation the past few days, tough but I‘ve got things working pretty well now.

Also just added RSS feed generation. It was really quite straight forward to add, it plugged straight into the rendering system which uses fragments to make sure content only has to be rendered once, even if it appears on several pages, including the feeds.

That will be another blog post at some stage.

Possibly something to show in the next few days. #

Friday, June 26, 2026

This graph of inflation cycles since the 1970s from @lawrencelepard caught my eye. The obvious question is what is similar about the present moment and back then? We should really figure this out before all the folks around back then are RIP. Also wouldn't it be wild if the same pattern repeated itself further back into the past? #

Wednesday, June 24, 2026

I've switched back to working on my publishing software‘s cli after spending a while working on the server-side. It‘s amazing how quickly you can get your head back into code you have forgotten about with the help of LLMs. They can see through lines in the code instantly, and can summarise exactly how things work. It‘s really quite incredible. Hopefully will have some interesting progress to share soon regarding how the blog is rendered. #

Monday, June 22, 2026

Great new episode from Peter McCormack, talking with Fernando Nikolic about how they've both been building cool stuff with AI.

It's interesting seing how AI tools are empowering people to build their own custom software. People who wouldn't have previously interacted with Github repositories, environment variables or deployed code to hosting providers are starting to become software engineers.

I think content creation using these tools is well aligned with this trend. And you only need to understand a small subset of the commands to go from md file to published. #

Sunday, June 21, 2026

Just added a blueprint to the config and a template in the template folder and now let‘s see if this works... #

Appears to have worked, a PR was created, the real proof it‘s operational will be if it gets rendered in tonight‘s build. #

Wednesday, December 17, 2025

Let's avoid the advertising distopia. What even is advertising, or distopia or indeed let's and avoid for the matter. Such is the importance of all this, but we probably shouldn't worry about it too much because guess what, that's a distopia too. Oh noes! We're all gonna die! :) #

I feel like we might be about to enter a phase where a large number of people are going to get trapped in impossibles, and where there are no right answers and you just end up hanging onto something for dear life and waiting for it to pass. Whatever ‘it’ is. The darkness possibly. The corners of reality that reality has forced us into. That maybe we are about to see some of the strange contortions that exist here there and everywhere. And with some sort of probabilistic mathematical certainty we will be forced into yet more contortions. And it might at times look very ugly. #

Tuesday, December 16, 2025

The world is on an epic allow blocking rampage at me today. It's hard to put into words. Perhaps I'll disappear into an acme hole. Feel like that would be the world's favorite option. Apparently I'm impossible. Well guess what world, if I'm impossible, then you're impossible too. #

It's really quite unbelievable but the world would like things to be even more impossible. That appears to be it's answer to everything. Just add more impossible. #

Destiny always seems to find a way to squeeze in one more more. I'm completely physically and mentally exhausted. #

It literally never ends, the literal next moment after the last note, and the world added another little extra bit on top. Literally literally literally. Literally.

It's pointless asking for a stop, because that means more. Everything means more. #

Friday, November 14, 2025

Another suspiciously timed allergy flare up day today. The world continues to be very unhappy with my imperfections. Likely another tsunami on the way. Life goes on. Looking forward to another day. #

The alergy attack appears to have past, took almost the entire day. It can be completely debilitating when it happens. Very hard to concentrate on anything. It's sort of difficult to describe, not entirely disimilar to how it would feel to have stinging nettles rubbed all over your face, and right into your eyes. Sometimes I describe it as being punched in the face. It really drains your life energy. Roll on tomorrow :) #

Friday, November 7, 2025

It took the whole night to download but it did finally download and I am now running Tahoe 26.1. So far most things seem to be working find, but somewhat worryingly the vpn app is behaving a bit strangely. I connects but none of the buttons in the interface work. The weird thing is that the issues started happening right before I installed the updates. After the OS update I updated the vpn app, but the issues persist. And people wonder why folks hate updating their software.

The biggest difference so far with Tahoe is that it changed the wallpaper from giant redwood trees to a sunny beach with giant rocks and snow covered mountains far in the background. Perhaps mountains are trending. I appear to be ahead of the curve on mountains. #

Thursday, November 6, 2025

Looks like the worldo breakages aren’t quite over yet. My MacBook Air M4 just kernel panic’d and crashed while I was using VScode pushing code. Gemini seems to think it’s something to do with low level hardware.

This kernel panic was caused by an unexpected and unrecoverable error in the system's low-level hardware management software, likely concerning the Accessory Operating Processor (AOP) or a peripheral it controls (like the audio system or other internal controllers).

It is almost certainly not caused by a third-party application, but rather an issue in the macOS kernel, Apple's firmware, or potentially a rare hardware malfunction.

Not a particulary great sign. At the exact moment it happened a woman outside made a noise that can be best described as "very suprised". Also not a great sign.

I’m running updates now, it seems to be upgrading me to Tahoe 26.1, 14.62 GB of updates to be precise. Might take a while... #

Wednesday, November 5, 2025

TBPN PodcastI've been listening, and occasionally watching, the TBPN Podcast a lot recently. It occurred to me today that it might be this era's Techcrunch, in terms of the flow of interesting stuff that goes through them. It feels similar in a lot of ways, but it's a 10x version of it. Their analysis of the bizarre moment we are in is very often quite incredible and it's also a lot of the time fucking hilarious. Now it is a bit heavy tech bro style silicon valley cultureish, so you have to be ok with that, but it's very much it's own thing, and I find I'm even sort of into the ridiculous add reads. There are of course some bits that are a bit average, but I just skip through those. Overall it's really high signal. #

Quite bad allergies flare-up today. It’s a real pain. This seems to often follow after several days of tsunamis. #

I got pretty much right to the end of the refactor of the auto-poster, everything was working, and then I notice that the workflows in Github are suddenly corrupt, appearing as the path instead of the name of the workflow. That’s exactly the same thing that happened last time. This is not normal. Hey world can you please stop getting in a huff and breaking everything? Would you please consider it? #

Tuesday, November 4, 2025

The internet connectivity issues where joined by their friends broken kettle, broken headphones, and a whole lot of world being prickly. I had a feeling there was going to be a streak of broken things a few days ago when I accidentally broke my coffee cup after being repeatedly tsunamied by worldo. Hey ho, that’s how it goes sometimes.

Well I just finished a pretty big refactor of the Github Actions social media autoposter. Not tested yet but it’s looking pretty good.

Managed to get myself a new kettle and I had a spare pair of headphones tucked away, and the internet and vpn both seem to be stable again, so I was able to listen to some great podcasts earlier. It’s such a crazy great time we live in, even if it is very confusing a lot of the time. #

Monday, November 3, 2025

I've been putting the finishing touches to new post to social media Github Action workflows. It's looking real good, very close to having it working, and now the internet just went down :( #

Saturday, November 1, 2025

Elon Musk on All-In Podcast [51:06]: “Try using any of the recent so called Open AI open source models, they don't work. They basically open sourced a broken, non-working, version of their models, as a fig leaf.”

Great interview, especially the bits at the end about solar energy. Ultimately all energy production leads to solar. I hadn’t heard this perspective before. It’s completely obvious if you are thinking about it from the right scale. But of course few of use are. #

Tuesday, October 28, 2025

I'm seeing and hearing a lot of people in early adopter circles getting very interested in AI generated music the past few weeks. It seems to be moving from this is just a silly joke to hold on there might be something interesting here territory. #

Saturday, October 25, 2025

Spent several hours today on the social media auto-poster. It’s starting to look really awesome. The project structure is just right and everything is easily repeatable. I showed Gemini the existing setup with a bit of explanation, and basically just said, do the same sort of thing for some other social networks, and it obliged, and synthesized new code based loosely on the existing structure, but with relevant variations to accommodate the different APIs. Gemini is shockingly great when the structure exits and the task is very clear. #

Saturday, October 18, 2025

It occured to me that one of the advantages of having gone down the route of having many plugins for my ssg, even though that became a bit of a headache, was that my github actions made very good use of reusable workflows. I spent a bit of time the past few days seing if I could repurpose the same structure to build an social media auto-poster. I’ve made a ton of progress, and have the core primitives working.

In some ways it feels like I am very close to get it working, yet I know from experience that sometimes getting that last 20% working is deceptively much more work than first appears. All that to say, that I am quite happy that is seems like I might have something working soon, but a bit tentative because I know there are likely a lot of small details that need to be figured out. I’ve been here many times before, and I can feel the trauma of past experience holding me back. #

Monday, October 13, 2025

Yesterday evening I made a start on a small refactor to the backend API handling of scopes. It should ultimately result in fine grained access tokens that make a lot more sense than they currently do. Trying to get my head back into typescript after several weeks of quite intense bash and dockerfiles. #

Sunday, October 12, 2025

Mostly cleanup tasks today following on from all the recent progress in the dev environment and on the blog. I need to remove all the old projects that got consolidated and I need to check a few things. I noticed this morning that in Feedly the everything RSS feed for the blog wasn’t showing any posts, so there might be something broken there, I need to check all the RSS feeds. #

Friday, October 3, 2025

Dylan Field (CEO Figma) [09:02]: "Is natural language the interface? Yes right now. I‘ve said this before but I really believe it, I think we will look back at this era as the MSDOS era of AI, and the prompting and natural language that everyone is doing today is just the start of how we are going to create interfaces to explore latent space. So I cannot wait for an explosion of creativity there. I think of these models as an N-dimensional compass that lets you explore this wild, unknown, fog of war in latent space and you can push these models in different directions, through natural language, but if you have a more constrained N there, and you are able to dimensionality reduce a bit, so you can push different ways, there should be other interfaces available than text. These might be more intuitive, but they also might be more fun to explore, and I think sometimes constraints unlock creativity in ways people don't expect. So I'm existed for that, but yes right now natural language is where we are at." #

Monday, September 29, 2025

Small Container StackMan this environment rebuild has been very insane. The good news is I got the backport working in my main app yesterday evening, and got the production container build working this morning. Some cleanup and loose ends to figure out, but it‘s working. More details to follow over the next few days hopefully. #

Sunday, September 21, 2025

BirthdayHappy birthday to me.

Happy birthday to me.

Happy birthday to me.

Happy birthday to me.

I have always enjoyed birthdays and eating cake. #

Friday, September 5, 2025

I only had about 5 minutes to write this post, so I cheated and gave Gemini my git commit history, asked it to write the post. It was really dull. So I asked it to write it in the style of Hunter S. Thompson. This is what it came up with:

Right, let's get down to the bone and gristle of it. The week began with a righteous and noble goal: to cage the beast, to get this Ollama AI monstrosity running in a container where it couldn't do too much harm. A clean setup, a moment of pure, crystalline satisfaction. But the calm was a lie. The silence from the machine was deafening. What was it thinking in there? What dark, twisted packets was it sending into the ether? The paranoia began to creep in, a cold sweat on the back of the neck that only a true fiend for the truth can understand. There was no choice but to turn the tools of the hunter on the hunted. tshark became my weapon, a digital scalpel to peel back the layers of the network and stare into the abyss.

This descent into the wire wasn't the only madness on the docket. While one eye was fixed on the network traffic, the other was dealing with the nagging demons of the frontend—bloated Vite builds screaming for a fix. A quick bit of code-splitting surgery to shut them up. Then, a pivot to the backend, a place of shadows and secrets, to install some proper logging and a panic button to dump the whole database if things went sideways. And in a final, desperate grab for sanity, I wrestled with the macOS security apparatus to make Touch ID bend to the will of sudo. A small victory, yes, but in this line of work, you take what you can get before the next wave of insanity crests the hill.

So that‘s been the past week. #

Sunday, August 31, 2025

Haseeb Qureshi on Kanye West releasing $YZY [59:05]:

It’s like the same cabal, it’s the same people [...], just like every villain, it's kind of like an Avengers movie, every villain from a previous cycle is also back, is part of this thing. It is a nice way to wrap up the saga, if this is the last celeb coin we are going to have to deal with". #

Friday, August 29, 2025

The past few days I seem to be stuck in a bit of a configuration nightmare. Hopefully I'll have the thing I'm configuring working soon. It's partially working now, but practically speaking not functional.

I also added an anti-corruption layer to the frontend code, which is a fancy way of describing a standard way to unwrap the API payload, which theoretically makes the application more portable. #

Monday, August 25, 2025

The world is really getting very synchronicity overload the past few days for me. These sorts of times rarely end particularly well. Thought that was worth mentioning, not that it will make any difference at all, world is going to world. #

Sunday, August 24, 2025

Ice CoffeeI was very happy when I started out writting this post, having a morning ice coffee, after a nice breakfast. The ordeal I had to go through to publish this little post has left me not quite as happy.

Such is life sometimes. #

Miljan Braticevic [38:46]: “When you create an account on X let's say, you are given this account by this corporation, this is something that they give to you, and it's something that they can take away from you at any point. In contrast, when you are on an open protocol like Nostr, you claim your key/pair. You take this massive number out of the universe, and that's you're private key. So you have claimed some territory in this massively large namespace of numbers and then you've claimed something and this is yours and then you defend it. What a stark contrast between these two, and then everything is downstream from there.”

I thought this was a great explanation of one of the central paradigms of key/pair based systems. Somewhat surprisingly, because I really am all for independence and self reliance and the rest of it, I found that the new knowledge that it unlocked, was accompanied by a roughly equal amount of unease. Like somehow there might be a side to this that is not being covered. Might be a bad idea to push to get rid of the centralised systems so completely, at least for a little while. I guess that has been my opinion for a while now. It seems to me like it might be one of those hills that isn't worth dying on, like an asymptote stretching off into infiniti that you can never quite figure out.

I'm making a mental note that it might be worth revisiting the tractability vertigo of this whole thing some time again in the future. Analysis paralysis is a real so and so. #

Friday, August 22, 2025

BuilderAbout a week ago I thought I'd gotten the codebase of my new project to solid ground. I knew I still had quite a few features to add to get the migration to a React frontend finished, but I soon discovered that there was considerable drift from the established project best practices.

I ended up having to go back over all the routes and standardise the API response envelope, and put in place some type checking to ensure that all the responses were consistent. It was rather a big effort with losd of knock on things that needed fixing and updating, but I got it done a couple of days ago. I was completely exhausted, both mind and body. I'm starting to feel a bit better now that I have had a bit of propper rest.

In any case the code is looking great, with a new react router, queries and loaders, end-to-end data integrity, and now a standardised response envelope. Hopefully I'll get some time to write a blog post about it soon. #

Friday, August 15, 2025

I’m trying to get a bit back into the habit of daily blogging. I’ve found that when I get very in depth absorbed into development work, my blogging output decreases. It’s a focus thing, but also a balance thing. There are times when blogging can be an ephemeral and non-distracting activity, something you just do in a few minutes in between tasks. But it can also sometimes turn into something more involved. And when you are really in the thick of some very difficult programming, you really don’t want to get distracted by that second type. On the other hand, you don’t want to completely not write either, because blogging does help you organise your thoughts. #

Matt ODell [26:26]: "Trump has absolutely filled his bags with as much Bitcoin as possible, including all of his cronies. I mean right now his stock, Trump Media, has 15000 Bitcoin in the Treasury. Bro has more Bitcoin than Coinbase." #

Thursday, August 14, 2025

Calle [35:44]: "There is a thin sliver of a population of, let’s call them plus minus millennials, that grew up with an internet that was like wild west. Complete freedom. No identities, no logins, you know, just IRC chat rooms, anonymous people. You just talk about your interests, and you don’t present yourself, it’s not about look at me, it‘s about look at this interesting thing. And anything goes. File sharing, sharing of information, the age of Wikileaks, we are going to revolutionize the way that the planet works because we can now finally communicate. We are going to grow together as humanity, because now we have this internet that is this neural web, the global neural web that is going to put us together. There is this idealism from that time, affected only a small part of the population that is still around today, and those people are the people that care the most."

I hadn’t thought of it quite like that before, but he’s right. And from this zoomed out position it’s strange how you could see it as in some way similar to that period in the late 60s, especially in the US, the summer of love and all that, even if it didn’t really feel very much like that at the time. Same same, but different, as the saying goes. #

Monday, August 11, 2025

Haha just got the admin page fully working. Just after midnight. That‘s not too bad. This little Oauth based API and React frontend is starting to look pretty darn cool :) #

Sunday, August 10, 2025

It‘s unbelievable the detours you have to make in programming sometimes, especially in the early days of a project. Just when you think you have the architecture well and truly figured out, you realise there is this other very important part you just absolutely have to refactor. Sometimes it really feels endless. You find yourself doing a refactor while doing a refactor.

And then you finally tie up all the loose ends, and a whole lot of other small bits and pieces and fixes you had to do along the way, and you are exhausted, and you are right back exactly where you were 24 previous, when you realised you had to do the refactor. You can finally really start the original thing you set out to do! But it‘s 1:37am and you are spent.

Programmer problems. #

Saturday, August 9, 2025

Changing TiresI‘ve been reading about running LLM‘s locally for the past few days. It‘s something I looked into briefly before but it always seemed too complicated. I‘ve noticed that since OpenAI released their open source models, people on various podcasts have been talking about this more, so I‘ve been checking projects out and what not. It‘s seeming more achievable, I think partly because the tech has progressed but also my understanding of the space has evolved too.

It‘s tough not to get sucked into rabbit holes on some of this stuff. I am trying to spend a bit of time reading about it in the mornings, but then you have to put your half baked research aside and get on with your current project. Web development is strange in that you have to constantly be taking small bites at things, and eventually what was not possible, becomes possible. You have to do both, and then find time to write about it too. #

Sunday, July 27, 2025

Gemini YolomodeI‘ve gotten a lot done today, made a huge amount of progress on this React front end I've been developing. I am basically down to the last few features. And now I‘ve gotten this new backlog based workflow working really well with Gemini. I have all the features planned out in quite a lot of detail. It occurred to me earlier that why wouldn‘t I be able to turn on Gemini Agent mode, so it could run commands and query MCP servers etc, and see how far Gemini could get implementing the entire feature. That would be kind of wild.

Thinking about it some, and after doing a bunch of research online, there are quite a few things that still need figuring out. The biggest for me is what‘s the safest environment to configure. Obviously some things could turn out to be very bad if say it had full access to the Github repo. But perhaps there is an easy way to set things up so it does everything locally and then I check it all before pushing to remote and merging in the code.

Hmmm, it‘s very tempting. And they even have a setting called Yolomode, where it no longer needs to ask you for permission to do things, which is both amusing and a bit worrying at the same time. #

Friday, July 25, 2025

The Doozer farm at JHCSFollowing on from yesterday‘s post about the size insanity of these new AI machine clusters, I went looking for a picture of the render farm we had at JHCS. I knew I had one somewhere. I eventually found it in an old slide deck I put together documenting the render pipeline. The resolution is terrible because I think I must have been using my Motorolla V3‘s camera, which was the best we had at the time. It wasn‘t on my old Flickr account, I think this pre-dates a lot of those web 2.0 websites, or at least my usage of them. The slide deck was in my Gmail!

My memory that it was 200 nodes might be inaccurate, looks like about 100 pizza box style Boxx nodes there in the machine room, though I think maybe we added a couple of racks at some point. I remember it was tricky fitting them all in the tiny machine room. But at night time, the farm grew to include all the artists machines in the building, so perhaps 200 nodes is about right after all. We called the machines, which I think were all running Fedora Linux, the Doozers, named after the creatures in Fraggle Rock. #

Wednesday, July 23, 2025

It‘s been a week since the last time I wrote anything on the blog. Time flies when you are heads down, programming, in the thick of it. I feel like I'm just finally coming up for air after a very long time underwater. And I know, I‘ve got to go right back down to the depths of the sea again. Just time to write a few notes. #

Showing the last 50 active days.

For more content, use the navigation tree in the sidebar to explore the full archives.