Artificially Intelligent
AI is a long way from taking over our jobs but it’s not a long way from everyone getting fired.
That’s my opinion at the end of 2024 after learning, absorbing and trying to surf the wave of Artificial Intelligence, which is what society is collectively referring to generative AI as for the last two years.
My cynicism about AI stems from my interest in it, understanding how large language models function, and experiencing the limitations on a daily basis. I can also see the huge potential that AI offers to be able to automate so much of what I and others do in our work which is both exciting or terrifying, depending on how you feel about human nature and greed.
I’m hedging my bets, by ensuring that I know how technology works and trying to stay one step ahead of it. If only I’d tried this with blockchain in 2009...
So I do a lot of development with AI tools like Cursor and models that are good at development. It’s super effective. I’ve been able to build a lot of software in 2024 with AI assistance and what’s more I’ve been able to do that in any framework or technology that I need to because I need to know less about the code and more about the principles of how software and hardware works. By doing this I have learned a lot about how to work with AI programming tools. Like, how to write prompts, what content to provide as input, and most importantly how to get out of the holes that so frequently happen when using AI tools that can’t overcome a bug.
Cursor recently rolled out “Agentic” abilities, which makes my life even easier because now it can do things like OpenSSL commands and Git statements and I can give it full control over a code base. This was helpful for a recent task I had which was to enable some additional security features on an existing Spring Boot app that runs in a docker container. This was for a development use case at work, so there was no harm in forking the app and letting the tool go as hard as it needed to to implement the SSL connectivity I wanted between components of the application. I took this step because after a day of trying myself, I couldn’t solve it. I’m not comfortable with Spring Boot and so much of my recent programming has been in python, JavaScript and other languages (yes, PHP) and I wanted a quick solution, not to spend a week learning a Java framework.
And boy did Cursor struggle with implementing SSL in the way I needed it to. In “Agentic” mode, it would go off editing multiple files and then the app would either fail to compile, fail to start, or throw a runtime error. We went through many, many iterations of trying to diagnose the issues until my workflow devolved into:
1. Cursor makes changes and the app fails to package/start/run
2. I paste the error into the chat window
3. Repeat
I admit, I got lazy, and I stopped trying to diagnose the root cause myself. I had nothing to lose, other than my time, so I kept up this cycle. However, there were a couple of times that I asked it to reflect upon what we had already tried and what we were trying to do in order to prevent it from getting into a loop, or from trying creative solutions that would not work outside a development environment.
And to my surprise, it actually got there. I got trusted SSL connectivity between two components of the application, without errors, and without relying on any hacks. Then I got the AI to remove all the extra crap it had left that was no longer necessary. Then I got it to compare the original code with the current commit and asked it to add a section to the README that explained the changes. It was pretty good at that.
I felt a sense of accomplishment at the end of today, with my functioning and secure application, that I had browbeaten an AI assistant into making work. Because this is the future. I still don’t understand Spring Boot very much. But I understand the changes, and I understand how I could make an AI do something like this again! So I’m not any smarter, but I am more skilled. Which is a good thing, because I want to implement OpenID Connect on the server’s API tomorrow.
Comments