I Lied - I'm not done!
In my last post I said that I was done with OpenCdsi.org, I’d had enough of failure when trying to implement the CDC Logic Spec. The thing is, I’d only put the project on the back-burner, I hadn’t taken it off the stove.
Over the past year, I’ve been reading a lot of articles about “vibe coding,” using AI to write code for you. It seemed like every example of the idea was a some toy app. I get it, you vibe coded a To Do List Manager for craft breweries. Not bad for a non-programmer. I wondered if vibe coding was actually something that could change the world.
My first try at vibe coding was to create some middleware to serialize objects to s-expressions for use by a Lisp program. I wanted to transform C# objects into Lisp association lists.
I fired up VS Code and started a conversation with CoPilot. I finally got a version of a serializer that I plugged into a web server to handle a new MIME-type, “text/sexpr”. It was kind of cool, until I wanted to refactor the code.
Refactoring was where is all fell apart. The more I tried to change things the worse the codebase became. I finally scrapped the whole project and decided that vibe coding wasn’t for me if you can’t maintain the code.
Early this month I gave the same prompt to two AI engines, CoPilot and Claude. I uploaded the CDC Logic Spec v4.6 and asked the AI to help me design a system for vaccine forecasting based on the specification. CoPilot couldn’t read the specification so it spit out some code and claiming it was implenting a “standard” forecasting protocol. Claude said “Good - this is a meaty one…” After 7 days and countless iterations, I have a forecast engine that is running on my home network as a containerized API as we as running as Azure Functions.
I will be adding an example of using the forecast API to this site. I want to compare the output of the forecast engine to the expected results from the CDC test cases.
Thirteen years of fail followed by seven days of success. Vibe coding might just change the world.
