Tales from the jar side: Persistent chat memory, n8n and similar a11s, Assorted medical stuff, and the usual toots and skeets
99.9% of people are dumb. Fortunately, I'm part of the remaining 1%.
Welcome, fellow jarheads, to Tales from the jar side, the Kousen IT newsletter, for the week of April 6 - 13, 2025. This week I taught my regular schedule at Trinity College (Hartford).
Persistent Chat Memory
This week, OpenAI announced that (here’s the actual link):
Like everything from Sam Altman, that sounds dramatic, but is actually a pretty simple concept. In general, each request to an AI tool like ChatGPT is independent of every other. Developers say each request is stateless, meaning it doesn’t remember anything from one request to the next.
That reminds me of my favorite stateless web services joke:
Me: I believe all web services should be stateless.
You: Really? Why do you think that?
Me: Why do I think what?
If you use the website to access ChatGPT, you don’t know this, because the website doesn’t work that way, but that’s functionality added to the website code. If you want an AI tool to have “memory”, you have to add the entire conversation to each request. The messages alternate user/assistant/user/assistant/user, where the first and the last messages are always user questions and the assistant messages are responses from the AI.
What’s new is that normally those question/answer pairs are only used during that particular conversation, but now apparently they’re not. Previous conversations are certainly saved, because you can always access older conversations by selecting them, but you couldn’t easily add them to your current conversation without just copying and pasting. Now that’s changed. The implication is that the AI is aware of previous interactions. I couldn’t tell from the basic docs how many conversations, or how old, or how many messages, or what mechanism OpenAI uses to save them, but so be it.
Around the same time, I saw this post on Bluesky about Spring AI:
That means Spring AI has persistent memory mechanisms built in. I spent a little time looking into it, which took longer than I expected because Spring AI changed versions from 1.0.0-M6 to 1.0.0-M7 and, of course, changed tons of things. I wound up spending a lot of time just fixing the code in my examples repository before I could even look at the persistent memory issue.
I eventually found the right dependency and the test case in the Spring AI repository that showed how to use it. It also showed me how the framework automatically creates a table to save the messages. I don’t know how that corresponds to the table(s) that OpenAI is presumably generating, but still, that’s useful.
I hope to spend a little time next week playing around with the persistent chat memory option in Spring AI. After all, I’ve already upgraded my repo to the latest version. Might as well experiment with it. Hopefully I’ll report back next week.
N8N
At the Arc of AI conference I attended a couple weeks ago, one of the presenters used a “agent” tool I’d heard about but hadn’t yet seen. It’s called n8n.
Wait, what kind of name is n8n? It’s an abbreviation that means the starting and ending letters are n’s, and there are 8 letters in between. In this case, the full word is nodemation, which is a combination of the node JavaScript framework and the word automation. Other relatively common abbreviations (a11s? Or should that be a10n’s?) that follow the same pattern are:
i18n —> internationalization
c14n —> canonicalization, which is a lot of syllables and an XML specification
a11y —> accessibility, but looks like the word ally (those are ones in the abbreviation)
k8s —> Kubernetes, the distributed application framework
l10n —> localization, where you have to be careful to use a font that distinguishes between the leading lowercase l and the 1 in 10
a14z —> Andreessen - Horowitz, the IT venture capital firm
Those are real, btw. I’ve seen them in actual documentation.
Anyway, n8n is a nice graphical way to build applications by connecting programmatic APIs together. It’s also an open source project that you can run either locally, or by using their cloud service (for a fee).
I managed to get it up and running using their Docker container. I tried installing it with node, which worked fine until I followed the npm recommendation and upgraded to the latest version, only to have n8n say it doesn’t run on that version. Sigh. Backward compatibility? Never heard of it.
I set up and ran one of their demo projects, which looks like this:
The application asks ChatGPT to retrieve my Google Calendar and report on my appointments for tomorrow. As usual, the annoying part was getting the API token from Google for a Google Cloud project. I wanted to add in my Trinity College calendar, which uses (sobs) Microsoft Outlook, but I don’t think our administrator has granted the right permissions for that.
You might notice I added a Calculator tool. AI models are notoriously bad at math, so the best use of tool support is to give the AI a function to call that does math for it. I added the Calculator tool and asked one of my typical questions (What is the square root of the sum of the number of letters in the words ‘hello’ and ‘world’?) and it did exactly what it was supposed to. It called the calculator for both adding the word lengths and taking the square root.
Is this what they mean by an AI agent? Yes and no, given how flexible the definition of the term agent is at the moment. I like the term they use on the n8n website, which is “flexible AI workflow automation.” That’s a pretty accurate description.
Medical stuff
Nothing bad here, just a couple of relatively time consuming issues that got addressed this week. First, I finally gave in to reality and got my hearing checked, resulting in a pair of hearing aids. I’m still getting used to them. I’m not sure what they’re doing exactly, though it’s nice having a set of Bluetooth connected headphones on all the time. They are lightweight and pretty invisible. Here’s a picture:
See? Can’t see them at all. Or maybe that’s a picture of a polar bear in a snowstorm.
Okay, yeah, not a great gag. I’m waiting before I take a picture, though, because I followed up with finally getting my eyes checked. That I means I have new glasses on the way, too. When those come in I’ll take a new picture.
Toots and Skeets
The UConn women do it again
Yup, the UConn women won it all, again. It’s been a while, at least for UConn. They hadn’t won the title since 2016, but that includes multiple losses in the semifinals and the finals. I thought they looked good going in, but the Final Four seeds were ranked #1, #1, #1, and UConn at #2.
I was hoping they’d win, but I never expected them to win by 30, which is about what happened. (Final score was UConn 82 - South Carolina 59, and it wasn’t that close.) They looked fantastic all tournament long.
I can “see” how that might be a problem
The definition of irony
Check out this article:
According to Electrek, Cybertruck owners that have tried to trade in their vehicles were told that "Tesla currently doesn’t accept its own vehicle as a trade-in." Additionally, Tesla is reportedly telling drivers that have owned Cybertrucks for a while to go through the Lemon Law process, which protects owners who have bought an irreparably defective car, but only within a short window after purchasing a car (the window varies by state).
Go through the Lemon Law process? Wow. They need a brand change. Maybe start calling them c8ks?
Speaking of Elon (and Zuck):
The first paragraph says it all:
Crosswalk buttons in at least three California cities appear to have been hacked this weekend to give them the seemingly AI-generated voices of Tesla CEO Elon Musk and Meta CEO Mark Zuckerberg. In videos posted online, the apparent voice of Musk begs listeners to be his friend, or that of Zuckerberg brags about “undermining democracy” and “cooking our grandparents’ brains with AI slop.”
Maybe Zuckerberg should go by Z8g. Bonus points for anyone who gets the “All your base are belong to us” reference, even though that’s supposed to be Zig.
Worth it
Quicker coming down than going up.
But what about squirrel?
Now that’s in my head for the next hour or so.
Might want to tone it down a little
I’m assuming it was Sex Panther. 60% of the time it works every time.
You expect me to talk?
Speaking of adorable
14 years? Practically newlyweds.
Finally, the tariffs
Yeah, that’s all I’m going to say about that.
Have a great week everybody.
Last week:
My regular schedule at Trinity College (Hartford)
This week:
Managing Your Manager, on the O’Reilly Learning Platform
My regular schedule at Trinity College (Hartford)