9
votes
What programming/technical projects have you been working on?
This is a recurring post to discuss programming or other technical projects that we've been working on. Tell us about one of your recent projects, either at work or personal projects. What's interesting about it? Are you having trouble with anything?
Just as a started sending out more applications for a part-time job, linking to my locally hosted Forgejo instance, the LSI HBA in my server machine decided to start failing, with constant ZFS read/write errors despite smart checks completing without issue- I guess it has been running a bit hot as it hasn't had any direct airflow, only what's passed straight through the case from front-to-back (the general opinion on the net was that this would be acceptable for this generation and I never thought to check the actual temperatures!).
So I have managed to copy enough off of the ZFS array so that I can continue to host the git and other services, and I have been waiting for a new (better) HBA to arrive. This I have just collected from a drop-off box, and I'll emplace it this evening.
I really hope I get a response from one of the places I sent off an application to specifically, though my experience differs from the job description and I'm on a student residency at the moment which might count against me if there's competition.. I'm struggling very much with imposter syndrome, and always have.
Good news, finally got done with my project of porting a Godot game to Xbox through UWP. Texture weirdness threw me off, but I finally figured it out. But now I have an issue with only controller #1 working properly, and to my knowledge, that's an issue with the engine itself, so I'm up a creek. Think I'll probably just get going on porting it to Godot 4 and let the side loading dream fade.
I've been vibe-coding a project in the past two weeks; vibe-coding in the original sense of the word -- by letting an LLM write all the code with no manual editing.
Why
Despite being the person on my team with the most AI/ML/LLM knowledge, I'm paradoxically the one using and trusting these tools the least. When I do reach for them, it often saves a lot of time, but I still tend to do things by hand. That seemed incongruent, so I started this project as a kind of exploratory trust-building exercise.
What
A Rust implementation of Tangled Program Graphs (large PDF).
The basic idea is to solve Reinforcement Learning problems: Teams of evolved programs bid for the right to either choose an action or delegate to another team based on the current game state. TPGs are roughly on par with Deep Q Networks (in ATARI games, DOOM, etc.). They are much less compute-intensive than DQNs once trained and don't require a GPU, but there are lots of tricky implementation details.
How
This was surprisingly addictive. I'd never have the patience to break a project into small issues myself, but having the LLM do it worked well. Each issue takes 2 to 10 minutes to complete, so you're constantly in "just one more" mode.
Whenever all issues were done, I had different LLMs review each file and create new issues with their feedback.
Aside: The 3500 Token Trick
One trick I learned that may be useful to share, is that you can condense test output to be more token-efficient.
cargo testprints every test name followed by "ok", which Claude then has to read -- that's about 3500 tokens per test run down the drain.Solution: a wrapper script that suppresses everything except the final verdict ("167 tests passed").
Results
The code works, and all of it seems reasonable when skimming. I could improve things further with more time and effort, but I decided that I'll leave the code alone for now -- two-ish weeks of feverish work for a simple exercise was maybe overdoing it a bit.
The decision whether or not to actually publish this was difficult. On the one hand, some could see it as 'slop', but on the other hand I put a lot of effort into the whole thing and kind of want it in my portfolio. I'd certainly be proud of it if I had written all of it by hand, and even so, I still kind of am.
Overall the process was more enjoyable than I anticipated, and I (think that I) made progress much faster than I could have done on my own. I resolved to use more AI at work -- even if it wastes 10 minutes sometimes, the potential time savings at other times will probably be worth it.
Of course there won't be any vibe coding at work. Even with my new experience, my trust only goes so far.
Still working on gametje.com. I added a new game recently called
Acro Bytewhich is an homage to the original game Acrophobia from the mid-2000s. It was fun doing a bit of data crunching to make sure I was generating acronyms correctly for the different languages. I wrote a small blog post diving a bit more into the details. Feel free to give it a try at https://gametje.com/games/acro_byte or join my Discord and play it there: https://discord.gg/wCvAkF9fur