new blog post + update /now

This commit is contained in:
2026-02-21 22:32:03 -05:00
parent 73f73f4646
commit 3dfa53a8af
5 changed files with 50 additions and 13 deletions
+3 -3
View File
@@ -1,11 +1,11 @@
import __ASTRO_IMAGE_IMPORT_3KcDr from "src/assets/blog/my-ai-portrait.jpg?astroContentImageFlag=&importer=src%2Fcontent%2Fblog%2F2022%2Fcreating-a-dating-profile-with-ai.md";
import __ASTRO_IMAGE_IMPORT_1G57ng from "src/assets/blog/ileopard/mac-os-10-1.png?astroContentImageFlag=&importer=src%2Fcontent%2Fblog%2F2022%2Fileopard-a-retrospective.md";
import __ASTRO_IMAGE_IMPORT_Z1ESWoO from "src/assets/blog/ileopard/itunes-7.gif?astroContentImageFlag=&importer=src%2Fcontent%2Fblog%2F2022%2Fileopard-a-retrospective.md";
import __ASTRO_IMAGE_IMPORT_rrnp from "src/assets/blog/ileopard/ileopard-2-0-1.png?astroContentImageFlag=&importer=src%2Fcontent%2Fblog%2F2022%2Fileopard-a-retrospective.md";
import __ASTRO_IMAGE_IMPORT_1mhYTO from "src/assets/blog/gifs/destroy-taskmaster.gif?astroContentImageFlag=&importer=src%2Fcontent%2Fblog%2F2026%2Fmy-favorite-things-of-2025.md";
import __ASTRO_IMAGE_IMPORT_3KcDr from "src/assets/blog/my-ai-portrait.jpg?astroContentImageFlag=&importer=src%2Fcontent%2Fblog%2F2022%2Fcreating-a-dating-profile-with-ai.md";
import __ASTRO_IMAGE_IMPORT_Zi2DqH from "src/assets/blog/gunpla/box.jpg?astroContentImageFlag=&importer=src%2Fcontent%2Fblog%2F2023%2Fmy-gunpla-adventure.md";
import __ASTRO_IMAGE_IMPORT_1OkzEl from "src/assets/blog/gunpla/all-the-parts.jpg?astroContentImageFlag=&importer=src%2Fcontent%2Fblog%2F2023%2Fmy-gunpla-adventure.md";
import __ASTRO_IMAGE_IMPORT_FYQiW from "src/assets/blog/gunpla/final.jpg?astroContentImageFlag=&importer=src%2Fcontent%2Fblog%2F2023%2Fmy-gunpla-adventure.md";
export default new Map([["src/assets/blog/my-ai-portrait.jpg?astroContentImageFlag=&importer=src%2Fcontent%2Fblog%2F2022%2Fcreating-a-dating-profile-with-ai.md", __ASTRO_IMAGE_IMPORT_3KcDr], ["src/assets/blog/ileopard/mac-os-10-1.png?astroContentImageFlag=&importer=src%2Fcontent%2Fblog%2F2022%2Fileopard-a-retrospective.md", __ASTRO_IMAGE_IMPORT_1G57ng], ["src/assets/blog/ileopard/itunes-7.gif?astroContentImageFlag=&importer=src%2Fcontent%2Fblog%2F2022%2Fileopard-a-retrospective.md", __ASTRO_IMAGE_IMPORT_Z1ESWoO], ["src/assets/blog/ileopard/ileopard-2-0-1.png?astroContentImageFlag=&importer=src%2Fcontent%2Fblog%2F2022%2Fileopard-a-retrospective.md", __ASTRO_IMAGE_IMPORT_rrnp], ["src/assets/blog/gifs/destroy-taskmaster.gif?astroContentImageFlag=&importer=src%2Fcontent%2Fblog%2F2026%2Fmy-favorite-things-of-2025.md", __ASTRO_IMAGE_IMPORT_1mhYTO], ["src/assets/blog/gunpla/box.jpg?astroContentImageFlag=&importer=src%2Fcontent%2Fblog%2F2023%2Fmy-gunpla-adventure.md", __ASTRO_IMAGE_IMPORT_Zi2DqH], ["src/assets/blog/gunpla/all-the-parts.jpg?astroContentImageFlag=&importer=src%2Fcontent%2Fblog%2F2023%2Fmy-gunpla-adventure.md", __ASTRO_IMAGE_IMPORT_1OkzEl], ["src/assets/blog/gunpla/final.jpg?astroContentImageFlag=&importer=src%2Fcontent%2Fblog%2F2023%2Fmy-gunpla-adventure.md", __ASTRO_IMAGE_IMPORT_FYQiW]]);
import __ASTRO_IMAGE_IMPORT_1mhYTO from "src/assets/blog/gifs/destroy-taskmaster.gif?astroContentImageFlag=&importer=src%2Fcontent%2Fblog%2F2026%2Fmy-favorite-things-of-2025.md";
export default new Map([["src/assets/blog/ileopard/mac-os-10-1.png?astroContentImageFlag=&importer=src%2Fcontent%2Fblog%2F2022%2Fileopard-a-retrospective.md", __ASTRO_IMAGE_IMPORT_1G57ng], ["src/assets/blog/ileopard/itunes-7.gif?astroContentImageFlag=&importer=src%2Fcontent%2Fblog%2F2022%2Fileopard-a-retrospective.md", __ASTRO_IMAGE_IMPORT_Z1ESWoO], ["src/assets/blog/ileopard/ileopard-2-0-1.png?astroContentImageFlag=&importer=src%2Fcontent%2Fblog%2F2022%2Fileopard-a-retrospective.md", __ASTRO_IMAGE_IMPORT_rrnp], ["src/assets/blog/my-ai-portrait.jpg?astroContentImageFlag=&importer=src%2Fcontent%2Fblog%2F2022%2Fcreating-a-dating-profile-with-ai.md", __ASTRO_IMAGE_IMPORT_3KcDr], ["src/assets/blog/gunpla/box.jpg?astroContentImageFlag=&importer=src%2Fcontent%2Fblog%2F2023%2Fmy-gunpla-adventure.md", __ASTRO_IMAGE_IMPORT_Zi2DqH], ["src/assets/blog/gunpla/all-the-parts.jpg?astroContentImageFlag=&importer=src%2Fcontent%2Fblog%2F2023%2Fmy-gunpla-adventure.md", __ASTRO_IMAGE_IMPORT_1OkzEl], ["src/assets/blog/gunpla/final.jpg?astroContentImageFlag=&importer=src%2Fcontent%2Fblog%2F2023%2Fmy-gunpla-adventure.md", __ASTRO_IMAGE_IMPORT_FYQiW], ["src/assets/blog/gifs/destroy-taskmaster.gif?astroContentImageFlag=&importer=src%2Fcontent%2Fblog%2F2026%2Fmy-favorite-things-of-2025.md", __ASTRO_IMAGE_IMPORT_1mhYTO]]);
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1,5 +1,5 @@
{
"_variables": {
"lastUpdateCheck": 1770174175478
"lastUpdateCheck": 1771730987319
}
}
@@ -0,0 +1,35 @@
---
title: "An AI Skeptic's Take on Agentic Coding"
pubDate: '2/21/2026'
tags: ['Tech', 'Programming']
---
As part of OpenAIs latest effort to push their agentic coding tool, Codex, I was able to snag a free month of access to the latest models. So, I thought it would be an interesting opportunity to experiment, actually do a deep dive on coding agents, and gain a better understanding of their capabilities and limitations.
Firstly, I want to address the fact that Ive been very vocal in my disdain for AI tools, but at the same time Ive come to accept that these tools are here to stay, at least for the time being. Therefore, I want to experience them first-hand to give myself the most informed opinion I can. Though, as always, my opinion is subject to change, and its very likely I will swing back more towards the anti-AI side before long. 😅
I had three main use-cases I wanted to try out; making incremental changes to an existing codebase, converting an app from one language to another, and creating a new project from scratch.
First up, I took a music player app Ive been working on for the last several weeks. I was having difficulty processing large batches of audio files efficiently, so I asked Codex to come up with some ideas to improve what I had wrote. It took a couple minutes to process everything, but it spat out some code and asked me to approve the changes.
It all looked good to me, so I gave it the OK, and ran the application. I was pretty impressed by the results, so I decided to take it a step further, and use it to implement a feature from scratch. So, I prompted it to create an audio playback queue, and connect it to the UI that I built. In less than 10 minutes, I had a very rough implementation of the feature up and running.
There were some structural changes I had to make to the batch processing code to be more reusable, and I still have a chunk of work to do on the playback queue, but Codex got me a lot further along than I would have got otherwise.
The other two use-cases converting code from one language to another, and creating a project from scratch were more along the lines of what I expected from Codex going in.
The code conversion experiment involved porting my app [KeyStash](https://github.com/ghall89/KeyStash) (an app for storing software license keys) from macOS to the web. While it did a serviceable job translating data structures, and approximating the UI, it made a lot of sloppy mistakes, like using an old and vulnerable version of Next.js, and referencing variables it didnt even create. It even tried creating an image upload mechanism that not only didnt even work, but wasnt even a sensical addition. [^1]
My final experiment was pointing it to an empty directory and telling it to create a web-based rich text editor that can import and export .RTF files. It did a far better job with file uploads than the last experiment, but everything else was pretty poorly implemented. Though, it did manage to pull in more up-to-date dependencies. Also, while I wouldnt call the code unreadable, I certainly would not want to maintain it.
Of the three use-cases, the only one I can see as being remotely useful for anything, beyond just messing around with experiments like these, is making incremental changes to an existing codebase. These tools seem to be at their best when generating small bits of code with as much context as possible, and, incidentally, the cognitive load required to review its output is so much more manageable.
Its crystal clear to me how generating swathes of code either ported from an existing codebase, or starting from a blank-slate is a recipe for poor maintainability. Even the relatively simple rich text editor that I “vibe coded” had enough code to sift through and debug that I probably would have been better off just writing it myself in the first place. If youre of the belief that a developer should be responsible for the code they ship, regardless of if it was written by hand or an LLM[^2], its easy to see how that model of development is grossly unsustainable.
All that being said, its incredibly tempting to utilize these tools for just building stuff quickly, and dealing with the consequences later. I get why its so appealing, and I have found myself struggling and occasionally, failing to resist that temptation. However, every time I gave in to that temptation, I found myself extremely unhappy with what was produced. I think “slop” would be a perfectly accurate word to describe it.
I think its important to remember, these tools arent magic, theyre exactly what they are tools. Like any tool, they have a purpose that theyre good at, and you have to know when, and how, to use them properly. This technology is all so new; I think were all still trying to figure out what “properly” means, and its sensible to be skeptical at this point. Anyone who tells you otherwise, or says that youll be left behind if you dont jump on the bandwagon now, is lying to you.
[^1]: I can only assume it was trying its best to “recreate” the functionality in KeyStash that grabs app icons when adding a new license key to the Mac version of KeyStash, without having any access to system APIs or the file system. 🤷‍♂️
[^2]: And if youre not, maybe find a different career. Sorry, not sorry.
+10 -8
View File
@@ -7,9 +7,11 @@ title: Now
What's a [Now page](https://nownownow.com/about)?
_Last updated: February 2, 2026_
_Last updated: February 21, 2026_
Currently unemployed, looking for a new job in web development. In between applying for jobs, I've been volunteering as a maintainer on a website for a humanitarian aid organization, and working on side projects on both web and Mac.
Currently unemployed, looking for a new job in web development. In between applying for jobs, I've been volunteering as a maintainer on the website for a humanitarian aid organization, and working on side projects on both web and Mac.
I'm currently building a music player for iPhone, because I [recently liberated my music collection from streaming](/blog/2026/setting-my-music-free), and I've not been happy with any of the existing options.
## 🎧 Listening
@@ -23,12 +25,16 @@ Currently unemployed, looking for a new job in web development. In between apply
Playing a co-op campaign with some friends. We've been playing for a few hours almost weekly. We are currently deep in Act 3.
**[Life is Strange](https://www.igdb.com/games/ghost-of-yotei) - Switch**
**[Star Ocean: The Second Story R](https://www.igdb.com/games/star-ocean-the-second-story-r) - Switch**
An old favorite I re-purchased for Switch a couple years ago and only just got around to (re)playing.
Picked this up again after taking an extended break, still trying to find my bearings and deciding if I should just start a new save...
## 🎲 Rolling
**[Grand Austria Hotel](https://boardgamegeek.com/boardgame/182874/grand-austria-hotel)**
My favorite heavy game of the moment. I don't own a copy but I've been playing it anytime I get a chance.
**[Knarr](https://boardgamegeek.com/boardgame/379629/knarr)**
One of my favorite games in my collection, and it gets played more than any other. Read more [here](/blog/2025/knarr-a-pretty-cool-game).
@@ -37,10 +43,6 @@ One of my favorite games in my collection, and it gets played more than any othe
I bring this with me to board gaming sessions alongside Knarr, but it doesn't get played quite as much. Would love to get more plays in.
**[Point Galaxy](https://boardgamegeek.com/boardgame/431998/point-galaxy)**
I've got one play of this in recently, and I'm not quite sure how I feel about it. I want to get more plays in to get a better idea if I like it. I did enjoy Point Salad, which this game is a reimplementation of.
## 📺 Watching
Nothing at the moment...