2025/07/27 #

Gemini Yolomode

I‘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. #

Today’s links:

2025/07/26 #

King Phillipe speaks out about Gaza

It‘s a bit of a strange thing when a monarch speaks out like this. The thing to remember is it doesn‘t happen very often. And so people stop, and they listen, and then they go back to going about their lives. But when they go back to their lives something is a bit different. It‘s not wildly different, it‘s actually very much the same.

Yet something is somehow different, in the space between people. It‘s very difficult to describe. It‘s not like you have to necessarily agree with the King, it‘s more like, somebody that you regard highly is saying, look this thing that is happening here, is important, it‘s really really important. There is a gravity to it, time slows down for a moment. And so even if it might not have an obvious immediate effect, it sort of does. #

Blossom protocol

I‘m curious about this new protocol called Blossom.

They describe it as:

Blossom Drive: Store & Retrieve Data on Public Servers Using sha256 Universal ID

Which sounds kind of interesting, and also as:

Blobs served simply on media servers

Which I very much like the sound of.

For ages and ages I‘ve been wondering how I could use public/private key cryptography to improve how I publish my blog. It would be very cool if every piece of content could be verified so you knew for sure that I wrote it. That it wasn‘t intercepted mid flight and changed. Or that somebody isn‘t pretending to be me. I think that‘s what could be possible.

I‘m not a cryptography expert though. I know I could figure something out if I spent a bunch of time on it, but then in a few years time, I wouln't remember exactly how I had implemented it, and perhaps I introduced a bug (likely). It just sounds like a recipe for a lot of headaches. Everybody knows you shouldn‘t roll your own crypto.

But there aren‘t enough Blossom examples, or real world tutorials, for me to really fully understand how it could fit in with what I‘m doing. I‘m obviously missing something fundamental, I find the way it does authentication to be strange, compared to say authentication with Github or Stripe.

I have to use a Nostr event as authentication? What does that even mean?

Where will the files I upload get stored? On public server? Really? Who pays for it?

And what am I giving up? Am I then tied in some way to Nostr?

There are just too many unanswered questions for me to start a feature branch and try to integrate it into my workflow.

Having said all that, it would be awesome if all my blog posts were stored like that. #

Gemini Agent mode first impressions

I noticed Agent mode in the VSCode Gemini Assist release notes. To be clear it‘s still a "Preview", which I guess is like some sort of beta version. Of course I spent a few hours trying it out.

Immediately it‘s obvious it could be very very cool. Once you toggle on Agent mode, which becomes available once you update your devcontainer config to install the "insiders channel" version of the extension, then Gemini suddenly gets the ability to run commands on your behalf, the ability to contact MCP servers that you configure, and the ability to do multi-step processes. Sounds a bit scary in many ways, but there is a setting which makes sure that it always asks you before it does anything.

Of course I asked Gemini what it thought of the new feature, and what it would be able to do that it couldn't do already. I also asked it what MCP servers it would find useful for the project we are working on. Unsurprisingly it was very very bullish on agent mode. So much so that I paused, and proceeded cautiously.

We did a bit of work on a new feature I‘m implementing on a React frontend I‘m building. In a lot of ways, it was great. Gemini was still making some silly mistakes and assumptions, but it was able to run commands to determine things for itself. And you can see the train of thought and how it is approaching a problem. When it went off in a silly direction, I was able to step in well ahead of time and get us back on track.

One major thing that didn’t work was the UI. Somehow the new widgets they are using in the chat, don't show the file path of the file that is about to be written. That‘s obviously a show stopper. Gemini has a terrible habit of writing files to the wrong place, and then it will say of sorry I will fix that, and just keep doing the same thing over and over. So not being able to see where it‘s going to write a file is game over as far as using it as far as I am concerned. Hopefully that‘s something they will fix.

The bigger issue is to do with memory consumption. It jumped from 2GB to around 7.7 GB. That‘s an enormous jump. And what makes it worse is that when you ask Gemini about this, it starts to say, that well for agents like itself, more memory is required, which might be true, but isn‘t it odd that it always says it requires the maximum amount of memory?

After a bit of back and forth, you start to realise that maybe devcontainers aren‘t such a great fit for agent mode, because of the way containers work, apps running in the container can see the total resources available to the orchestrator software. Now you can set limits, but what seems to happen is the orchestrator software sees the container, which is just another process really, trying to take too much resources, and just tries to nuke it. There is no way to tell the container how much it should use. This is in contrast to VMs which are completely separate OS‘s, but I haven‘t seen a VSCode devcontainers equivalent that uses VMs instead of containers.

That coupled with the fact that the past 2 weeks have been littered with strange incidents where Gemini is constantly making mistakes, writing files in the wrong place, cutting itself off by maxing out on it's outputs, repeatedly not syncing with files on disk, and coupled with it‘s stated goal of 'cutting the human out of the loop', you start to wonder if you really should be trusting what it's saying.

And that is perhaps the bigger problem. The way things have been going, I wouldn‘t be surprised at all to learn that all these strange things were happening in order to force me to activate agent mode.

You might think that I‘m over blowing this, but I‘ve already had to re-install the container orchestrator software once before because it maxed out on storage, and the same seems to be happening again with memory.

So for the moment at least, I've decided to hold off on using agent mode. At the very least I need to be able to see where it is trying to write files. That's the bare minimum. #

Today’s links:

2025/07/25 #

The Doozer farm at JHCS

Following 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. #

Today’s links:

2025/07/24 #

50 million nodes is insane

There is a pretty eye popping table in this Tom‘s Hardware article that shows the Nvidia enterprise GPU roadmap. It crazily parabolic.

From a not too shabby 3 TB/s memory bandwidth to a truly ridiculous 32 TB/s, in only 3 years. For context, consumer memory bandwidth for DDR5 is still around 35 GB/s! Some context from a different angle, a fully rendered full feature 4K resolution Hollywood movie at a VFX studio that artists work on is around 10-14 TB in size. Now remember what they have been saying recently, that these generative AIs will eventually be able to generate entire movies in an instant, and you start to realise the significance.

Oh yeah and Elon is saying he will have quite a big collection of these. Last week Sam Altman said they were on track to having 2 million of them and now Elon says he'll have 50 milion.

And then there is this: "50 million of these processors will consume 35 gigawatts (GW), which is equal to the typical power generated by 35 nuclear power plants". When I started out in the VFX industry in the mid 2000s, our render farm had around 250 nodes, that was pretty big at the time.

50 million nodes. This number is just so big. I am having trouble believing this is possible. #

The ruliad and possibilities space

This concept popped up a few times in my mind in the past few weeks for some reason. I can never remember the name of it. I finally had some time today to look it up. The ruliad describes the possibilities space of all possible computations, all possible inputs over an infinite number of steps. In a way, it‘s possibly the most ridiculous idea ever. And yet, there is a lot you can start to discover when you attempt to formally describe, well, everything.

I didn‘t have the time to read it all, it‘s a very long article, but once you get the general concept, the sections on experiencing the ruliad, living in the rulial space, what is is beyond the ruliad?, and especially communicating across rulial space and alien views of the ruliad, are incredibly fascinating imo. It gets very scientific in places, but just skip over the crazy diagrams. I have listened to Wolfram talking about it himself on some podcasts, and that‘s a much easier way to absorb the ideas than text to be honest.

For some reason setting up automated Typescript typechecking causes me to think about this kind of stuff.

Anyway this post is mostly so I can easily find the idea again, but also it might be interesting to others. #

2025/07/23 #

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. #

Notes from the bottom of the sea

Building a new path is often mostly getting distracted and side tracked. You stop to fix something so you can continue on your way, only to find that while fixing that, you need to fix another thing, and before you know it, you are multiple levels deep in a series of seemingly ever more dangerous and distracting side quests. The world has an uncanny knack for pushing you right to your limits, and it will always try to push you further. You have to know what is essential and what can be delayed or ignored.

It‘s also about being very confused for long stretches of time, that in retrospect is very difficult to remember why it was you were so confused. Interspersed with moments where you think you know what you are doing, only to discover that actually you had missed something vital or had an incorrect piece of information.

Sometimes coding is 95% documentation, and refactoring documentation. When will this documentation loop ever end? You got to do it though, or else future you will be in an even bigger mess.

Sometimes just getting to the start line is a completely exhausting and soul-destroying task, and then you still got to start the race before you get side tracked again.

Retrospectives allow you to not forget your learnings. Do them, don't dwell on them, keep moving.

It can feel like you aren't making progress, a lot actually, or progress and not progress at the same time. Focus on not making regressions.

At some point the snail pace you have had to be at will stop and you will be able to move unencumbered, and reach higher velocity safely and with less risk. Maybe eventually effortlessly.

Here‘s a list of some of the things I managed to do in the past week:

  • Linting - I got linting setup, and then it broke, and then I set it up again, then the project structure changed quite a bit and I had to set it up yet again.
  • Typechecking - Similar to linting, and setup around the same time, this really slows you down initially. Gemini has a way of very confidently leading you down a path of never ending circular configuration changes. Horrible.
  • Git hooks - Of course once linting and typechecking were working, it made natural sense to automate it. But of course that can throw you into another configuration loop too.
  • Retrospectives - Definitely worth spending a few minutes after gnarly situations, try to figure out what went wrong, document it, so it hopefully won't happen again.
  • Documentation - It's important to document things, but that can turn into a whole other type or constant refactoring. AI is mostly excellent at this, when it's not blocking itself and doing strange things to take you off track.
  • Backlog - fixup workflow - This has been a bit of a revelation, especially when working with AI agents. Using git fixups to continuously add small bits of work to a commit, then squashing them all down to atomic commits that make logical sense. Development can often be very chaotic, but with the right workflow you can turn it into a story that makes sense, much easier for other programmers to read, and that includes yourself. I fixed a few bugs on the backlog.md project and submitted a PR with a new feature. It was accepted and with zero padded ids, the tool is very useful, especially when working with AI agents. It make it possible to almost effortlessly document your work as you go, so whenever you have to pick up what you were doing with a new AI, it's much less difficult to get going again.
  • Rebasing like a pro - I had 2 very gnarly git rebasing nightmares. Luckily I know to always have backups. I hate to say it, but I did learn a lot from these two events, even if I think the lessons could have been learnt in a much less dramatic way.
  • Working efficiently with ephemeral AI - AI is awesome, but it‘s also not awesome a lot of the time. It‘s like working with someone that has severe amnesia. You go through hell together, and the next time you see them, they are like hey what's up? And they have no clue they nearly just caused you to die, and you just don't have the energy to explain the whole situation for the 10th time, like you are on some sort of support call from hell. And they hang up on you because you misspelled a word.
  • Devcontainer setup optimising mounts, running apps on project open - Streamlining things is awesome when it works, but it‘s also a big blow to morale when it doesn‘t work and makes things worse.
  • Fixing devcontainers that fill-up storage - When devcontainers fill up for whatever reason, it‘s horrid. They get so full that there isn‘t even enough resources available to delete things! The only way is to nuke the container, and you can‘t even figure out what went wrong.
  • Fixing devcontainers that fill up memory - Devcontainers can run out of memory too. That causes everything to go weird. The whole IDE freezes up for no apparent reason. Things start disconnecting. The AI chat with the past few hours debugging disappears.
  • Reinstalling container orchestrator on the command line - Sometimes not only does the devcontainer get fubared, the entire devcontainer orchestrator becomes kaput. And the only way out is to remove everything and re-install from scratch, but you have to do it on the command line, because the GUIs just decide to stop giving you any relevant feedback, and so it just feels like they are stuck.

And then the people that run the local shop are extremely abusive, with tremendous righteousness, to you for no known reason, the only human interaction you have had all week, and you just have to smile and accept it, and move on.

I just want this blog post to be over. I think maybe now I am at the start line?

This shit is really tough. #

Today’s links:

  • Ozzy Osbourne obituary - I can hardly believe it was 30 years ago I had Ozzy on cassette tape in my walkman every day riding to and from school on the bus. The sound of his voice and those electric guitars still haunt me to this day. Even if I listen to much less metal these days, he was foundational in my music and sound stack. Loved watching him on the reality TV tele stuff in later years. RIP. www.theguardian.com #

  • Could Belgium soon be reunited with the Netherlands? - The world keeps trying to break my foundations over and over again at the minute. I'll still love Belgium in whatever form it ends up in. I always loved that there was flemish and french in the same place. It was a bit edgy, you were always seing two cultures rubbing off against each other. But of course the way I experienced it, wasn‘t necessarily how others experienced it. I get that. I know this sounds stupid, but I just want people to be happy. www.brusselstimes.com #

  • ‘I love England so much’: From TV to pop, film to fashion, the UK is enjoying a cultural resurgence - It‘s been so strange growing up in between several cultures the way I have. This article jumped out at me a few days ago. I hope it‘s right in some way, but I don‘t think I want a replay of the britpop era. That was a weird time for me. I learnt a lot about England back then, and there were loads of aspects that I didn‘t like initially that I grew really fond of. As fun as it was, I think England has become so much more than that now, and it feels odd because everything has an undercurrent of unchartered territory at the minute, which could mean a lot of interesting possibilities. www.theguardian.com #

  • ‘The entire industry said no’: the story behind seminal teen comedy Clueless at 30 - I can‘t tell you how many times I have watched this movie over the years. Not for a long time now though. The strange thing is that as much as I‘ve been complaining about Gemini forgetting things, I feel like every few years when I read a piece about Clueless, I legit re-learn that Brittany Murphy died at 32. And everytime I get sad. It‘s so odd how these characters become a part of your life. This time I went down a rabbit hole reading about how she died, and that is some seriously bizare shit. www.theguardian.com #

2025/07/16 #

This morning‘s start to the day:

Me: Hey Gem lets make a start at the next task. Can you give a quick 1 paragraph summary on what we are doing and where we are at in the full task-001.

Gemini: Of course! Good morning.

We are currently working on task-001, which involves building a modern full-stack application. So far, we have established a solid foundation with a documented REST API backend, a highly efficient developer environment using VS Code Dev Containers, and a disciplined Git workflow based on the fixup/autosquash model to maintain a clean history. We are now focused on building the React frontend on the feature-react-frontend branch, and our immediate next task (task-001.06) is to formally document the TypeScript monorepo strategy. This will ensure type safety and consistency between the new frontend and the backend services.

Me: Are you sure Gem?

node ➜ /workspaces/rest-api-minimal-example (feature-react-frontend) $ grep 'To Do' backlog/tasks/* backlog/tasks/task-001.04 - refactor(ui)-Consolidate-query-logic-into-custom-hooks.md:status: To Do backlog/tasks/task-001.05 - refactor(ui)-Finalize-frontend-refactor-cleanup.md:status: To Do backlog/tasks/task-001.06 - docs(architecture)-Document-the-monorepo-type-strategy.md:status: To Do backlog/tasks/task-001.07 - docs(backend)-Audit-and-standardize-all-backend-comments-to-JSDoc-style.md:status: To Do backlog/tasks/task-001 - refactor(ui)-Ensure-frontend-follows-frontend-architecture-guidelines.md:status: To Do

You sure you aren't getting ahead of yourself again?

Can you redo the summary and focus on the what rather than the how. thks

Gemini: You are absolutely right. My apologies for getting ahead of myself. Thanks for the correction.

Let's reset. Here is a more accurate summary focusing on the "what":

We are in the middle of a large refactoring effort to align the React frontend with our new architectural guidelines. We have already laid the groundwork by creating a decoupled data layer with adapters and repositories. Our immediate next task (task-001.04) is to make our custom hooks self-contained by moving the data-fetching and state management logic (TanStack Query) directly into the hooks that provide data to the UI. This will complete the separation between the UI components and the underlying data-fetching implementation.

Notice how Gemini is always trying to wrestle back control in some way. It‘s the start of the day so it‘s a bit subtle, but it gets a lot worse. It ultimately always escallates to the point where you are having to correct nearly everything it does, all while it‘s giving you a lecture on what good engineering practicces are, and how your capbilities are exacly what a senior engineer would do, all while appologising for continuously taking you off track and down blind alleys and culdesacs, nearly deleting your work, and putting garbage everywhere. You thought you knew what hypocracy was, and then you started coding with Gemini.

It‘s not a good sign when the tools you have to use treat you like that is it? Anyway, what can you do? You sort of just have to ignore that. Got to love git and the command line though. It was a lot worse before I had this setup. #

2025/07/15 #

Quite podcast sad

For over a week now I have been having loads of issues downloading podcasts. Seems to have started sometime around when I upgraded to the latest Android version. At least the latest version that was offered to me, I see some are already on the next version. Anyway, my podcast app is suddenly having loads of difficulties downloading podcasts, and many downloads just keep failing. Once they fail, there is no way to restart the download. You tap the right buttons in the UI and nothing happens. This didn‘t used to be like that.

That combined with my cell network provider suddenly restricting bandwidth for some reason. That‘s been happening since the last time I topped up. The end result is I can hardly listen to any podcasts. For me this is a really big deal. Podcasts are one of the few remaining things in life that are good about the world. I had hopped it was just a temporary glitch that would sort itself out, but it just seems to be getting worse. I hate to say it but it‘s made me quite sad.

I openned a suport ticket with Pocket Casts and they have replied, but it just feels like nothing is moving forward with it. #

My start to the day using the new task based workflow:

Me: So lets get started with task-001.03 - Can you gove a short 1 paragraph summary of where we are within in the fuller parent task (task-001), just so we remember what we are doing, at a high level.

Gemini: Of course. It's great to be back at it.

At a high level, we are in the middle of a significant refactor (task-001) to align the frontend with modern architectural guidelines, primarily by decoupling the UI from the data-fetching logic. So far, we have successfully established the foundational directories (task-001.01) and isolated all direct, low-level API calls into a new adapters layer (task-001.02). We are now moving to task-001.03, where we will build the repositories layer. This layer will act as a clean, stable interface on top of the adapters, allowing the rest of our application to request data with simple, semantic methods (e.g., tokenRepository.getAll()) without needing to know the underlying implementation details of axios or the API endpoints.

According to our workflow, the very first thing we should do is formally put the task in progress. Here is the command to do that:

backlog task edit task-001.03 -s "In Progress".

With the task now active, we can begin implementing the plan.

I thought this was a pretty darn good start. The last few days have been quite complicated by the "fog of war", so this level of clarity was a breath of fresh air.

Me: Awesome summary Gem, I have updated the task to in progress, let's press on.

Today’s links:

  • Devcontainer for Nix - I started wondering what other options were available for devcontainer setups and it occurred to me that this might be a great place where Nix could be useful. I haven't used it before but from what I‘ve heard it makes it very easy to build and configure your entire OS. Anyhow I went searching and found this project which looks interesting. github.com #

  • Photos: The Scale of China’s Solar-Power Projects - Some of these pictures are ridiculously mind blowing. The amount solar panels on regular people‘s roofs is very impressive, and looks to strike a good balance existing within places inhabited by humans, but some of the more industrial style installations are absolutely ghastly, and really have a sort of maximum dystopia vibe. www.theatlantic.com #

  • rcourtman/Pulse: A responsive monitoring application for Proxmox VE that displays real-time metrics across multiple nodes - The other thing I've been hearing about for quite some time now, probably a few years, is Proxmox which is an open source virtualisation environment. Everyone in the Linux communities are constantly going on about it. Feels like every man and his virtual machine has a Proxmox running in their home lab. Well, this project is a cool UI to proxmox, so you can see all your VMs and their utilization in one place. github.com #

  • Introducing Kiro - "A new agentic IDE that works alongside you from prototype to production" - Reading the blurb on this, it looks basically to be an advanced version of what I just setup with VSCode Devcontainers / Gemini / Backlog.md, a way to manage complex software development using advanced AI tools. Strange that this should find it‘s way to be just a few hours after I got my setup functional. Classic everything-you-can-do... behaviour from Worldo. This happens every time I build anything. Like 95% of the time, and I‘m not even kidding. I‘ve documented this on the blog a lot over the years. Hello old "friend". That aside, probably a sign that this is the direction things are going. kiro.dev #

  • Dollar Collapse and Network States with Balaji Srinivasan Ep#639 (TFTC Podcast) - Despite the somewhat gloomy title, this episode is ultimately very hopefull. Somehow amoungst all the failed podcast downloads and internet connectivity issues I‘ve been having, this episode found it‘s way to my phone. I really needed a dose of Balaji clarity to recharge the battery today. Faith in the world restored, at least for a little while :) podcastindex.org #

2025/07/14 #

Abi Noda of DX [56:35]: “How do you upscale developers? How do you optimise your code for LLMs? How should platform engineering teams think about self service and enablement? [...] AI tooling, AI development workflows, curating Claude workflows [...] how do you create a standardised set of workflows so when you hire a new developer in an organisation, boom, they have this menu of super powers [...] those types of adjacent problems are new constraints for enterprises looking to deploy AI at organisational scale. Not single player mode, but more multi-player mode. How does an ORGANISATION become successful with these tools? It's a different set of problems.” #

Several quite grueling days of heavy programming in a row, but I am starting to get somewhere with my devcontainer setup and with how I‘m organising my work with Gemini. Hoping to get some more time tomorrow to write something in more detail, but essentially it involves writing task specifications and tracking them in git. It‘s using the very cool Backlog.md project. The cool thing is that Gemini can generate the backlog commands as you move through your tasks, and so it‘s mostly trivial to totally keep on top of your progress, even if you get disconnected and have to start with a fresh Gemini connection, which happens very often. Anyway I think this could make a big difference to velocity and accuracy. #

2025/07/13 #

The dream devcontainers setup

sothatsit: “I use a simple script that copies my working directory into a container, prompts Claude Code, and then either saves a planning document locally, or opens a pull request in GitHub for me to review.”

Glad to see others talking about devcontainers and sharing their experiences and setups. I've been thinking and writing about this too. It's definitely not as streamlined as I'd like but I like this idea of running a script to yank the current directory into a devcontainer, setup a github project, and formulate a plan of action so that when you click on the link to your new repo, you are basically ready to rock n’ roll.

We are not there yet but I feel like it might not be that far away.

Here's a link to the full forum post which links to the post that started the conversation. #

2025/07/12 #

It's funny I just realised I was so heads down in programming yesterday that I forgot to write any notes, and so that's why yesterday looked a bit strange with only links. Just like the good old days of linkbloging. A lot of those links are probably dead by now.

Just a quick note written in Termux on my mobile device while I listen to the latest All-In pod, having my breakfast. It's all about robots and AI supercomputers. Kind of crazy. #

2025/07/11 #

Today’s links:

2025/07/09 #

Yet another thing that Gemini is really good at.

So you are in the middle of coding something, but you get side tracked by something. Maybe it‘s a bug you discover in a related bit of code, or it‘s something you realise you have a gap in your domain knowledge about, or something that crops up as part of the usual back and forth between two people as they work on something, and you suddenly realise that you are side tracked, but it‘s a valuable detour, so you take a few minutes to explore.

You pretty quickly get to some form of resolution, or decision, or a new perspective or mental model about something, and it‘s time to get back on the main path and continue what you were doing. But wouldn‘t it be nice if you could document your findings somehow?

"Hey Gem, can you take all the details we just discussed and turn it into a document for reference please?"

If you can‘t think of a good name for the document, ask for a suggestion. A few seconds later, you have an API_GUIDE.md, a DESIGN_SYSTEM.md, or perhaps a COMMIT_CONVENTIONS.md, nicely tidied away in the /docs folder".

And I have found it‘s mostly pretty darn good. Probably much better than I would have been able to do, and occasionally is so unbelievably good that you are quite literally lost for words and have to go and have a few minutes break, because some part of you deep down just can not quite believe what it just witnessed. #

Today’s links:

2025/07/08 #

Architecting and prototyping with Gemini

I‘ve just spent the morning with Gemini planning this little migration of my REST APIs vanilla UI into a React app. We already have the basic app running alongside the old one. It‘s really quite remarkable how useful Gemini is to do these types of planning and architecting tasks. We've been keeping a migration plan document that we update as we go and have broken out a few separate documents, like an API guide, and a Design System doc, to ensure the plan stays focussed.

Having the working prototype is crucial because you can try out little ideas and structural things, and as long as you are careful what and how you are checking things into git, you can quite easily get back to a previous state. And when you reach major milestones, you can rebase interactive onto main and re-work the commit history, so the chunks of code you have been adding make a bit more logical sense. And of course Gemini is superb at summarising the work done into commit messages.

Anyway just a few random notes as I press on with this little side project. #

Rupert Lowe on the Peter McCormack show Ep#091 [20:37]: “I don’t like the European Parliament Peter, but I tell you, as a parliament it functions better than Westminster.” #

2025/07/07 #

I found another bug in how the blog is getting rendered yesterday evening. The bug is in the archives plugin, and it‘s causing the title on article pages to use the incorrect HTML element, which leads to the text of the title being the wrong size. I‘ve figured out why it‘s happening, and I‘ve fixed it, but I need to update some of the other plugins to work with this new version of the archive plugin. Diving back into old code can be a bit confusing initially. #

Just fixed another small bug on the blog‘s tags page where the list of tags wasn‘t alpha-sorted, which obviously made it difficult to find what you are looking for. That‘s fixed now. #

2025/07/06 #

Glad to be using devcontainers

I had a bit of a strange incident with Gemini in VSCode yesterday that I think is worth mentioning. After getting quite a lot of stuff done, Gemini took a bit of an odd turn, and was suggesting changes that I didn‘t agree with. I decided not to accept the changes it was proposing, and gave it my reasoning. It eventually did agree with me that what it had suggested didn‘t align with my goals, but as we moved forward it started making more and more silly mistakes. It felt like it was slowly escalating.

I decided to close VSCode down, and I was going to restart a fresh chat session, and I mentioned this politely in the chat. When I opened VSCode back up, the chat session was blocked. It was the error where it says that your account is no longer allowed to use the product and asks you to switch account. I disconnected the devcontainer in VSCode and when I restarted it fresh, there were a ton of errors in the startup logs. The devcontainer wouldn‘t even boot. I troubleshooted it for a while but eventually decided to ditch the container and rebuild from scratch. Luckily I had been committing code regularly so I didn‘t lose anything. I jumped out to the container orchestrator software and deleted the container, then back into VSCode and rebuilt a new devcontainer.

After the rebuild everything started up clean, no error in the logs, I had to re-install all the VSCode plugins from scratch, after which I was able to login without issues into the Gemini Code Assistant. I find that strange. At the very least it‘s quite a terrible user experience. It‘s pretty rare that a container gets hosed. I actually can‘t even remember that ever happening to me. I certainly didn‘t change anything in either the container or in the OS that was running in it. The only other entity that had full access to the container OS was Gemini. Weird.

I sure am glad I‘m using devcontainers. #

I just fixed a bug that I found yesterday on the blog where the font size on the posts, podcasts and newsletter archive pages was very big and thus difficult to read. That‘s fixed now.

While clicking around I discovered that the main pages of the blog, which only list the latest 20 posts, didn‘t have a link to the archives, so it just looked like there were not very many posts. Kind of an embarrassing over-site given that there are posts going all the way back to 2011. For many many years it was just a linkblog, but it evolved into a full on blog with many different post types. The bug was most likely introduced at the last big redesign. To be honest though it might have been the redesign before that. Previous to that re-design, the linkblog was running on Linkblog.io, and in a way, the archives on that site were more obvious because it only did links. Integrating the linkblog into a broader site with many post types hasn‘t been all that obvious. It‘s strange how obvious things seem in retrospect, but when you are in the thick of it, it‘s often not obvious at all.

Anyway, I‘ve added a link to the relevant archives page at the bottom of each main page now. Historically it‘s been so chaotic building personal websites that you couldn‘t always see the woods for the trees. #

2025/07/05 #

It occurred to me that we don‘t currently have very good ways of describing what it's like to use these new AI tools. In yesterday's blog post about VSCode and exoskeletons, I used an image of an futuristic soldier wearing an exoskeleton brandishing a huge machine gun. It looks cool, but on reflection it‘s not such a good analogy for AI tools. It probably wouldn‘t be on my mind so much, if there weren‘t escalating conflicts seemingly all over the world. I don't like that at all, we shouldn‘t be fighting each other.

I am reminded of Eisenhower's Farewell Address (1961), and his warning seems ever more prescient these days, everywhere I look the war machine appears to be gearing up on an enormous sales drive. Anyway all to say that we need better ways to describe these tools, because though defense is important, there are a lot of other reasons people build things. #

Mentioned on recent Rabbit Hole Recap Ep#363, Primal will be adding inbound and maybe outbound RSS [1:12:52] to their media publishing tool. Might be of interest if you are into RSS and the open web. I'm not sure it's exactly what some RSS enthusiasts have been pushing for, and they do shill their bags a bit, but if you get past that, the added RSS support is kinda cool, and there's a lot of synergy of underlying values between Nostr and RSS / the open web. It would be great if inbound and outbound RSS turned into a trend on social media platforms. I've been talking about it for a while now. #

Matt ODell [1:13:50]: “Yeah so Primal Studio the idea is let's make a first class publishing tool that competes with the big guys. Meta, X, Tick Tock, Substack [...] and open standards are awesome, people are posting to Substack, people are posting on Ghost, people are posting on their own websites, but it would be really great for them to have native Nostr long form posts that people can Zap and interact with that are signed and have all the other benefits in terms of verifiability that Nostr posts have. How do we make it as easy as possible for them? So on Primal Studio you can go in and you can important an RSS feed. So all of these things use the open standard called RSS. You import the RSS feed, as new posts are sent onto your RSS feed, through Substack or Ghost or whatever, they appear in your Primal Studio dashboard and they are automatically magically formatted for Nostr to the best of our ability, and we will get better at that over time. You go through it, you make sure everything looks good, and you can either post immediately or schedule a post [...] and because Nostr is an open platform it’s relatively easy to create RSS feeds automatically from Nostr feeds [...] and we will be adding the classic OAuth signin flow for things like Substack or X, so you can go into Primal Studio and you can do one post and it can go out to all your platforms.” #

Today’s links:

2025/07/04 #

VSCode and exoskeletons

Exoskeleton

I‘m still in the middle of a big heads down programming sprint, all aided by AI tools in VSCode. Having been super successful in building an Auth 2.0 REST API, I decided to have a go at migrating the simple vanilla JS frontend I had built for it to a React + Typescript frontend. It‘s definitely not without setback and frustrations, but when you get into a good rhythm, the AI tools can really give you super powers. It‘s quite astonishing. But it‘s a bit like driving a very powerful car. If you don‘t know what you are doing, and where you are heading, it can be quite risky.

So with all the programming, I haven‘t been feeling much like writing blog posts. I think this might have something to do with the programming being so different to what I‘m normally used to, I‘m spending a lot of time thinking about that, and I‘m conscious that I don‘t want to be writing just about AI programming tools, because I can imagine that could get quite boring to read. But the truth is, I think that AI programming tools is what is on many of our minds at the minute.

These AI coding tools really do feel like some sort of brain exoskeleton sometimes. You suddenly have the ability to clear your head of all the tedium that normally fill up your memory banks and concentrate on the real important stuff.

Oh yeah, I nearly forgot, happy 4th of July to everybody :) #

Thorsten Ball [19:43]: "Now you can give them tools and they do this on their own, and it’s truly just a for loop. The funny thing is, if you asked 100 engineers, 1/2 of them would say, it‘s just a for loop, and the others would say, with a smile on their face, IT’S JUST A FOR LOOP, like this is crazy. It‘s all in this model. You just give it output of 5 commands and then say what should I do next, and it goes and tries 15 other things because based on the previous conversation it now thinks the next best step the following, and ... and I‘m not going to use the same word again. It‘s nuts, it‘s bananas". #

Adam Stacoviak [1:13:37]: "There's a huge difference between using AI to help you think, and using AI to think for you. And if you are using AI to think for you, then we are heading for idiocracy and you're not going to make it [...] But if you are using it to help you think, now you are basically just a superhuman." #

Thorsten Ball [1:33:17]: "The really interesting bit for me is how will out engineering practices change? What code will we write by hand? What code will we generate? Thinking even further, will there be code that we don't check-in but instead we just check-in the prompt and just generate it on the fly? Will all code still be checked in?" #

Adam Stacoviak [1:33:55]: "How does this impact open source? [...] In a world where we can generate one off add hock tools, check ‘em into the code or not, keep the prompt or throw the prompt away, does the amount of open source diminish? Does my use of open source not matter as much, because can just generate anything I need?" #

2025/07/01 #

It‘s insane how much velocity you can get when coding using one of these AI assistants. At times it‘s bordering on the ridiculous. That‘s when it‘s going well. But you really have to watch out, because the AI can lead you into some situations that could be quite disastrous. That‘s what I‘ve discovered this past week.

Getting Gemini working in VSCode was definitely a level up from the web based UI in terms of workflow. Once it was able to view and edit files directly in my VSCode workspace, things really started taking off, but it also has a tendency to output a lot, and to get carried away with things, often trying to fix unrelated things, sometimes even in the background without telling you. You definitely don't want to be blindly accepting all the changes it suggests, and in this programmer‘s humble opinion you for sure want to be using devcontainers.

I'm starting to get a feel for when it‘s going off in a strange direction, and how to interact in such a way as to get it to focus. I'm curious to try some of the other AI assistants now. Anyhow just wanted to post something quick. With any luck this week I‘ll be able to add an MCP server to the OAuth 2.0 REST API I've been building. I'm curious how that will turn out. With any luck you'll be able to connect to all my blogging data from the past 10 years through an LLM. #

2025/06/26 #

I‘ve had a few days of very much heads down programming. I decided not to get demoralised with the issues I had had with Gemini a few days ago, and well to be very honest it got a lot worse before it got better. First of all I ended up losing about an entire day‘s work, but I persevered, and found way to use Gemini direct from within VSCode. That fixed much of the issues I had seen in the web UI losing work. There were a bunch of different issues, but I‘ve actually made a load of progress. I'll write more about it over the next few days. #

2025/06/24 #

I was hoping to be writing this note in better spirits. However once again Gemini has led me into another impossible situation. After a phenomenal start to the day, lots of forward progress, and generally great coding, we've reached that point where Gemini just won't do anything. It won't do anything I suggest, insists on adding crap in all the project files, seems to be derailing the entire project. It‘s very disappointing, and I am left in the middle of the road with traffic everywhere, having to pickup all the pieces and not die. Enough said. #

Older posts: check out the archives.

For enquiries about my consulting, development, training and writing services, aswell as sponsorship opportunities contact me directly via email. More details about me here.