site banner

Friday Fun Thread for April 24, 2026

Be advised: this thread is not for serious in-depth discussion of weighty topics (we have a link for that), this thread is not for anything Culture War related. This thread is for Fun. You got jokes? Share 'em. You got silly questions? Ask 'em.

1
Jump in the discussion.

No email address required.

So, I had an interesting problem at work, that revealed something fascinating I think.

I have to beat around the bush some, so bear with me. We're using a popular framework for our database layer. We went to do things to this database that theoretically the database is capable of, but the framework doesn't support. Sad face. All the web searches, and associated AI formulated answers confirm, it's not possible do said thing in said framework.

Except it is. The Framework is open source. You can just read the source code. Turns out you can ask for the handle to the underlying interop pointer, and it'll just give it to you. You don't even have to do weird fucky things like dig around in private data space. It's a public API call to just get the interop pointer. The driver it's calling is open source too, and you can just call the function you want on the interop pointer it gives you, and it just works. It's fine. If it's confusing, the test cases for the driver in it's github even shows you exactly how to do it, multiple ways. Reading unit tests are awesome for stuff like that. This is the furthest thing from impossible. It's practically spelled out for you with examples if you just read the fucking code.

So, why does AI all think it's impossible? Because as of 3 years ago, this functionality wasn't exposed by the driver. So all the stack exchange questions about this correctly stated that as of 3+ years ago, this was impossible. LLMs got trained on stack exchange (supposedly), and now stack exchange is a dead site. The LLMs (supposedly) killed off the source of knowledge they were being trained on, and now they can't learn that a few years later this task is not just possible, but trivially easy in like, 6 lines of code. Totally within the remit of the typical "how do I do thing" programming question.

I deal with this shit all the time. My day job involves maintaining a very old application that has seen continuous upgrades and maintenance over a two decade timeline, but some vestigial bits haven't been touched since the application's inception due to manpower constraints. We all assumed ai would help us deal with the backlog of "not quite important enough to move forward to the top of the stack" items that cause a drag on developer productivity, but always get sidelined by more pressing concerns.

Unfortunately, our codebase takes every AI product we've tried and sends it spiraling down a garden path of schizophrenic recursion.

Before I continue, let me get the usual reflexive responses out of the way:

  • We have tried multiple times, with multiple LLMs, including whatever the zeitgeist considered to the SotA at the time. No, I am not going to go back and retest because Opus-4.8-thinking-xhigh-ultra-planner-with-cheese is truly a revolutionary improvement.
  • If you claim we are Prompting It Wrong, I will personally figure out how to send you to at least four of the eighteen Chinese hells. Seven different people on my team have tried, all with varying backgrounds and writing styles. Two of us are published authors. One is literally a technical writer who writes concise, complete, and detailed prose for a living.
  • No, I'm not going to take a two million line, twenty year old application that runs in regulated environments and rewrite it in Go-lang, even if Claude is really good at it.

The problem is that one single fix or feature can easily involve traveling through over a decade of code-strata, and the LLMs invariably over index on the idioms that they encounter first. The end result is that even a detailed plan on how to replace a deprecated method from a library with a documented replacement tends to make it imagine that it has to do things it doesn't.


I'm going to be vague here, but I'm going to share a personal story from work.

Due to our support contracts, we occasionally have to release security patches for very old releases of our product. We recently had an issue where one of our very old releases was using library $FOO on version N. Version N of $FOO had a very hard to exploit but potentially real security issue that could cause an information disclosure. Normally we'd just tell people to upgrade, but one of our clients operates in a regulated environment and can't do a major upgrade in less than 12 months for anything short of a nuclear bomb going off. Given that, we'd normally upgrade the library and move on with our lives. However $FOO has officially EOLed version N, so no more updates.

We had to do a manual mitigation, and I'm the guy who catches that kind of work, so I got started. A co-worker said "hey, this is high priority, and I think I can get it done in 15 minutes if I use AI". Since it was high priority, the boss told us both to get to work and whatever made it through all our automated tests and reviews first would go in.

I did my fix by integrating with some functionality provided by $FOO that allowed me to catch invalid data before it made it to the offending code. I missed an edge case that got caught by the automated tests, but either way, the PR landed in the codebase with half an hour to spare before the end of the day.

I decided to see where my coworker was, and the answer was "nowhere close to a working solution ". I could only see his draft PRs and not the prompts, but it looked like the LLM tried two different approaches and shit the bed both times. The first time, it looks like he/the LLM tried to catch invalid data at every single entry point into the system - the top of the funnel, rather than the bottom. The problem is, we have thousands of entry points. The code got completely out of control and eventually the LLM started over fitting and trying to apply the mitigation to things that didn't even make sense. Thr second approach involved manipulating JVM bytecode to try and hot-patch the offending class. That didn't even compile, but it looks suspiciously like an old stack overflow post about a different problem with the library.

The other guy is pretty sharp, and in some areas I think he's genuinely more talented than I am. But looking at the work he did that day, you'd assume he was fresh out of a boot camp and in way over his head.

I'm not really sure what to make of it.

Due to our support contracts, we occasionally have to release security patches for very old releases of our product.

How old? Ten years? Twenty?

I think we recently had to have a stern-yet-loving talk with a customer who was still resisting an upgrade after eleven years.