Thoughts About My First AI-Generated Project
Up until last week I had only ever used AI to find bugs, migrate dependencies, or implement small features in projects I had already spent years coding up on my own. Last weekend that changed when I asked an AI to develop a web app for me. I have a 3D printer and, sometimes when it notifies me the print is completed, I will go to retrieve my print only to find a mess of spaghetti and wasted filament. The 3D printer company sells a specialized camera that works with their printer, but I didn’t want to spend $35+ when I already have an old, unused webcam sitting unused in a drawer. I wanted to be able to pull up a website choose to record a video or a set of images on a timelapse. Once I started the print I wanted to be able to go on to that same site and see a live feed or, if I set it to a timelapse, I wanted to be able to see the last frame captured. I have no idea how to do any of that. On top of that I have a dozen other projects that I wanted to work on. So I thought I would give this AI-developed (vibe coding?) workflow a try.
Local AI as Personal Stack Overflow
If you’ve been programming long enough, you know the old joke: the programmer needs to do a task and they aren’t sure how to code it up. Surely at this point someone has already asked how to do it on Stack Overflow. The programmer goes to Stack Overflow and may not even understand how the code works (depending on the joke teller’s opinion of this programmer) and copies and pastes that code into the production code. It’s common enough to become a meme:
AI Policy for My Github Repos
I just posted the following to my Github profile about AI usage in my programming projects. Sharing here to document my current thinking on the subject:
AI Usage
I know that opinions on AI usage are very divided at the moment. Some people I respect, like the hosts of Fallthrough and Mike Kennedy of Talk Python don’t see any issues with using it as part of the development process. (Although the Fallthrough hosts are against AI Slop, especially in communications ). Others won’t touch any repo that has included AI contributions.
Review: Learning the Vi and Vim Editors
There isn’t much to say about an old, outdated technical manual. There’s at least one newer edition of this book released. However, whether you’re using vim or neovim, the basics remain the same. If you only have access to this edition of the book, I would focus on the chapters that teach you how to use vi and vim. In that respect, this book is very well written. Ignore the chapter on plugins and scripts as those have evolved quite a bit (especially in neovim with their use of lua).
My Year in Programming: 2025
Since I started making my end of the year posts this is the year in which I did the least amount of programming. This was actually slightly done on purpose. When 2024 was ending and 2025 was starting I looked around and realized that I only have a few years until Scarlett is an adult and a handful after that before the twins are adults. I don’t want to get all Cat’s in the Cradle about it, but looking at my own life, I know that even if we maintain the best relationship, the kids will never have as much time to hang as they do now. So I prioritized playing with them - mostly TTRPGs, but also video games and whatever else they wanted to play. Programming is often a solitary pursuit and most of my utilities do what I need them to do anyway. I also spent of a lot of my weekends cooking and baking - again providing for the family.
2024 Programming EOY
This year was a bit light on programming. I was focused a lot on gaming, cooking, and Tabletop Gaming. (No surprise if you’ve been reading my December blog posts) I constantly found myself desiring to code and I definitely had a few ideas - like a utility to extract EXIF data out of my images for use in Hugo. But when I would sit down at my computer I often found myself preferring to play Cities: Skylines II or Against the Storm. (More on that when I post my EOY video game post) As per usual, let’s go month-by-month (after the first quarter that is)
Advent 2024 Day 04
Time once again to review my Advent of Code solutions! The GitHub repo with all my solutions can be found here. Also featuring the latest die or dice from the Dice Envy Advent Calendar; scroll below the AoC code to see today’s die.
Advent of Code
Today I did not attempt the advent of code problem. It involved solving a word search in which there could be overlapping words as well as, if I read it correctly, multiple words starting from the same place. I’m guessing it’s to be done with a depth-first or breadth-first search in which you kill off searches if you can’t continue. I know these sorts of problems present themselves every year, but I never have time to learn during the AoC period (with work, life, and Christmas in the way) and I never make it a priority to relearn (I was taught this back in undergrad). So rather than waste my time on something I know that I won’t know how to do, I’ll save it for another time - maybe when I’m taking time off closer to Christmas/New Years Day.
Advent 2024 Day 03
Time once again to review my Advent of Code solutions! Also the latest die or dice from the Dice Envy Advent Calendar; scroll below the AoC code to see today’s die.
Advent of Code
As the years have piled on, Eric Wasl has thrown in references to past years’ problems. However, as of day 3 we now have 2 references (perhaps that’s what the historian story line is about). Day 02 had you visit the location of 2015 Day 19 and today visited the location of 2020 Day 2 (my first year doing Advent of Code!) The only thing I’m slightly worried about is if this signals that this year will be a grand finale for the annual event.
Advent 2024 Day 02
Time once again to review my Advent of Code solutions! Also the latest die or dice from the Dice Envy Advent Calendar; scroll below the AoC code to see today’s die.
Talk Python Bits
Michael Kennedy from the podcasts Python Bytes and Talk Python has recently written a couple blog posts that I wanted to highlight here. First up is his post about rewriting the Talk Python site in Quart (aka async Flask). Three and a half years ago I wrote about realizing that it’s not about Django vs Flask vs FastAPI, but actually about finding the right framework for your workload. I didn’t completely state my current thought process in that blog post, but I was pretty close to the advice I currently give. If you want a Python-based site that needs CMS features and you don’t want to have to reinvent the world, Django is your framework. If you are making websites where you want to be in control of every puzzle piece, then you want flask. You only bring in what you need. And if you’re writing REST API based site (controversy about whether REST truly is REST aside), you want FastAPI. Well, I respect Michael Kennedy’s opinion on this matter for a few reasons: