AI Journal: August 2025

Date: 2025-08-16
categories: ai, llm;

Contents

An Experiment

I've changed my mind about LLMs usefulness to me as a software engineer. There are all kinds of problems with it -- social, ethical, environmental -- and I can completely understand not wanting to use it for those reasons. The hyper-exuberance coming from companies with something to sell is off-putting. I was very anti-AI until recently.

What changed? At work, we were directed to start integrating Cursor into our software engineering efforts. If I'm going to do something, I want to do it well, so I decided to embrace the technology and master it. I dove in, learning, reading and doing as much as I could -- and I was surprised. I had been afraid that LLMs would sap the "fun" out of programming, and make me settle for mediocrity. What I discovered is that I could get code that met my standards and Cursor made me better at my job. My expertise plus the power tool of AI gave me a huge boost. More of my mental energy is now focused at a higher level, and frankly, it feels less stressful. In short, I've gone from sour skeptic to enthusiastic practictioner.

Now I'm trying to learn as much as I can. I've decided to publish a diary in addition to occasional blog posts.

08/07/2025

I use Syncthing, and I like to install it manually. I used Gemini Pro 2.5 to generate a Python installer script. It finds and downloads the latest version, checks the sha256, verifies the signing key, and installs it to a default directory.

I changed two or three lines of the script that was generated, but it mostly worked as-is. I read through it and I couldn't have done much better. In fact, it handled cases that I probably wouldn't have bothered with since it's just for my personal use. Of course, there are lots of other options for installing Syncthing, and it's not really hard to do the steps manually, but get the script from Gemini took less time than a single manual install and I have total control.

Game changer? Not even close. But still pretty useful.

08/08/2025

I read this blog post by user wuu73 with a bunch of hacks (and a homebrew context-builder) for LLM coding for free or cheap. The best part of this blog post wasn't really the workflow itself (although I'm always interested in peering under the hood) but the list of sites, routers, models they're using.

This prompted me to do a survey for myself, and resulted in my own ever-growing list of tools.

08/13/2025

At work this week, I did all of my programming tasks with Cursor. Honestly, it did great. The work was in Github Actions, migrating an old Serverless stack, migrating a very old webpack build to a new codebase and modern version of NodeJS, setting up a new Vite build for a CraftCMS site using a plugin that integrates Vite with CraftCMS. In each case, the LLM got me very close to a working solution and I just needed to tweak a few things. I believe that I moved much faster than I would have without it.

In the case of Vite plus CraftCMS, it struggled a bit more. I gave it the context of the documentation for the plugin, and it maybe got me to 80% of a working solution. The last 20% I needed to read the docs. It was nice to let it generate the initial configuration for me, as it was easier to pull out what I didn't need than to add it from scratch.

There were a couple of cases that I used it to analyze problems, and in each case it identified the problem and offered a working solution. In the case of webpack, this was far, far faster than I could have done it myself. Upgrading webpack from older versions has a bunch of hurdles that I've faced before: OpenSSL 3, node-sass deprecations, changes to imports. I didn't have to remember the "trivia" for how to resolve or workaround these issues. The whole change was a non-issue, my work more expert review and validation than any heavy lifting. This is the kind of work that just wastes valuable time, so I was glad to have it in PR in like 45 minutes.

On the whole, the week with LLMs was a huge success for me.

08/14/2025

Read about MCP (Model Context Protocol) servers, both the theory and how to implement them.

modelcontextprotocol.io

Used Cursor to diagnose a TTY error in a docker container. It correctly diagnosed the issue and gave me a workable solution. I researched the solution independently and learned something I didn't know. My co-worker had spent some hours trying to dig into this but LLM + human review solved it in minutes.

The thing I didn't know (this summary from Gemini):

The test -t 0 command checks if standard input is connected to a terminal, allowing a script to know if it's being run interactively. Conversely, test -t 1 checks if standard output is connected to a terminal, which determines if the script's output is being displayed on a screen. Together, these commands let a script adapt its behavior based on whether it's interacting with a user directly or with another program or file.

So if [ -t 0 ] && [ -t 1 ] let's us test we're running interactively.

Cool, and I learned something!

08/15/2025

Used Gemini 2.5 Pro to generate a small shell script and a README to go along with it. It wasn't complicated and would have been easy for me to do myself, but using the LLM freed up a little of my attention to go elsewhere.

I also used Gemini to help me set up my Gitlab CI build for Zola, something that's been on my list forever. Quick, painless, done.

Prior to this, since moving my blog from Cloudflare a few years ago, I was just building locally and pushing the public folder. It's fine, but a little clunky. With this new setup, I was able to remove the public folder and the processed images, but this still leaves them in git history.

So I decided to use git-filter-repo to clean up history. I glanced at the docs, and then prompted ChatGPT 5 for the command line. It confirmed my hunch, and told me how to make sure I was running this safely. I cleaned up history, tested everything, and force pushed it.

Again, I could have done all of this myself and LLMs are notoriously inaccurate, but the combination of competence/expertise/knowledge and a giant text engine assisting has been helpful to me.