Tales from the jar side: When custom GPTs won't behave, Spring Boot 3.2 abandons half the Java market, Q* and OpenAI, and the usual silly tweets, toots, and skeets
Doctor: You have high blood pressure and short-term memory loss. Me: At least I don't have high blood pressure. (rimshot)
Welcome, fellow jarheads, to Tales from the jar side, the Kousen IT newsletter, for the week of November 19 - 26, 2023. This week I taught my Managing Your Manager course one the O’Reilly Learning Platform, and my regular Software Design course at Trinity College in Hartford, CT.
Here are the regular info messages:
Regular readers of and listeners to, and video viewers of this newsletter are affectionately known as jarheads, and are far more intelligent, sophisticated, and attractive than the average newsletter reader or listener or viewer. If you wish to become a jarhead, please subscribe using this button:
As a reminder, when this message is truncated in email, click on the title to open it in a browser tab formatted properly for both the web and mobile.
I made a custom GPT, called Mockito Mentor
At the OpenAI DevDay conference, Sam Altman announced the ability to create your own customized GPT. That’s basically a regular AI tool, like ChatGPT, that uses information you supply and follows instructions you give it. Their wizard allows you do that without any coding at all (often a red flag for me, but I’ll come back to that).
Early in the week I also received an email from LeanPub, the self-publishing site, that talked about these custom GPTs. Their point was that authors should create GPTs based on their books and either use them for marketing, or give them away as value added for the books themselves. Naturally enough, LeanPub offered to create one for you, for a fee.
I thought, how hard could that be to do? The result is this video:
The process had issues, partly because it was my first time using it, and partly because the system failed at irregular intervals. I finally figured out that when it started giving me errors, I needed to back out and come back in to clear them.
Afterwards I asked GPT-4 to make a bullet-point summary of the major topics identified from the transcript of the video. I’m not going to share that here, partly because I’m not sure you’re interested and partly because some of them aren’t quite right. Let me just say this (which the summary missed, even when I asked for the “lessons learned” that I explicitly stated in the video:
If you ask ChatGPT a question and it gives a wrong answer, you blame it or OpenAI. But if I give you a custom GPT, with my name on it and everything, and it gives a wrong answer, you’re going to blame ME. Yikes.
I don’t think the tens of thousands (!) of developers creating custom GPTs have realized that yet, and when they do I don’t think they’re going to be happy about it. There’s only so much control you have over the responses provided by a custom GPT. You can give it priorities, data, and specific instructions, and it still goes its own way a lot. We’ll see how that plays out in practice.
After publishing the video, I decided to emphasize that point about who the client is going to blame by making a YouTube short out of that section:
The Descript tool is good for that. It lets me import the original video, transcribe it, reformat it into portrait mode, use “studio sound” to improve the audio, and add nicely formatted captions to the video. It’s been a while since I published a Short. I’ll have to wait and see how it does. At least it has a link to the full video.
If you’d like to try out Mockito Mentor, be my guest. If you do, be sure to ask it for a discount code for the book, where to buy it, and where you can find the source code. I explicitly stated all three of those items in the instructions, and now I’m hoping it doesn’t “forget” them.
I should mention that OpenAI has a programming model called AI Assistants, which does a lot of the same tasks, but can be accessed and controlled programmatically. I expect the idea there is to make an assistant that you can incorporate into your own system. That will likely be the subject of a future video.
Finally, the original plan was for OpenAI to provide some sort of GPT store for all the public custom GPTs. That doesn’t exist yet. But if you do a simple search for custom GPTs, you find several sites that claim to have selected the “best” ones from collections of 15 to 20 thousand. That’s what happens when you provide a way for non-programmers to generate GPTs. It’s only been about three weeks since the capability became available at all. I wonder how many of those creators realize the risks they’re taking with their own reputations. We’ll see.
Cool Spring Boot release, but Yikes!
The Spring team released Spring Boot 3.2.0 this week, which has a few items I’m interested in, but they also made a rather dramatic move that I didn’t know was coming.
This is the so-called Spring Initializr (awkward spelling intended by the Spring team), updated as of the new release on Thursday:
Note the two highlighted boxes. The first one shows that the only versions of Spring Boot you can choose start with the number 3. That’s significant, because as the lower box shows, Spring Boot 3 and above requires Java 17 or above, so the only Java versions that you can choose are 17 and 21.
Spring Boot 3.0 came out about a year ago, and that was the first version to require Java 17. But now, with Spring Boot 3.2, they’ve decided that’s the only option. Up until Wednesday, you could make a new Spring app using Spring Boot version 2.7, and stay with Java 8 or Java 11. As of Thursday, those options are now gone.
The social media posts all celebrated about how great this was, and how it helps to move the field forward. As someone who teaches training classes, my reaction was very different. The latest statistics I’ve seen suggest that just under 50% of the Java community is still on 8 or 11. Spring just told all those developers that they’re not welcome any more.
In my opinion, that crosses from bold move to borderline crazy. Look, I get it. They don’t want to support those older versions. Java 8 is nearly 10 years old at this point. Also, they do offer paid support. But there’s a huge difference between a recommendation that customers can pay for, and a prohibition, and this is a prohibition. They are outright saying that if your company has not yet adopted Java 17 or above, go elsewhere.
Maybe I’m overreacting. If you check out the Micronaut Launch website (one of Spring’s major competitors), they too only offer Java 17 or 21. The Quarkus starter (the other major competitor) allows for Java 11 and 17, so that’s something, but not Java 8 (or 21 yet). The latest version of Helidon (another, much smaller competitor) actually requires Java 21.
So maybe it’s me. But in my training classes, I still get a lot of developers using Java 11 or even 8, and now they’re not going to be able to create new Spring Boot apps. If there were only a handful of companies like that, I would understand, but that’s arguably half the industry. I’m really surprised that the market leader, Spring, has decided to toss them all aside if they’re not willing to upgrade.
I’m teaching my first Spring course since the change this coming Tuesday. I’ll let you know next week how they react to this.
Btw, the new features in Spring Boot 3.2 that interest me are:
The new HTTP client called
RestClient
, which is a synchronous version of theWebClient
class, andThe new
JdbcClient
, which looks to be a simpler interface to use instead ofJdbcTemplate
.
I took the time to update my solutions for those classes. Now I need to update the labs themselves.
Q*
I’m going to mention this but not go into details, because it’s probably going to be big later. Apparently, OpenAI is working on a new GPT model called Q* (pronounced Q-star) that incorporates an algorithm called Q-learning and adds some adaptability to its ability to find answers to questions in the presence of obstacles. Yeah, I don’t get it either yet, but reports suggest it makes LLMs much better at handling math problems, and they can apply what they learn from one problem to other problems they’ve never seen.
Rumor has it that about a week before all the chaos erupted at OpenAI, Sam Altman and others saw a demo of this new Q* system and the hype train very nearly jumped the tracks. Leaks to the press were calling it AGI (Artificial General Intelligence), the ultimate goal of the non-profit part of the company, triggering all sorts of Terminator / SkyNet fears. People are speculating that this “huge breakthrough” is what triggered panic among the board members, who feared that Altman would commercialize it before they had a chance to really evaluate its impact on humanity and the world. The theory goes that is why they abruptly fired him, which led to all the drama over the last couple of weeks.
If this all sounds like massive hype, you’re not alone, and the last thing the field of AI needs right now is more hype. It’s awfully self-serving to say that the cause of all the chaos was that they were too successful at creating actual intelligence. Yeah, I’ll believe it when I see it.
The situation did, however, lead to some good memes:
Or this:
Or this:
But my favorite toot references Q*:
New algorithm + conspiracy theories, all in one toot. Nicely done. :)
That leads us to this week’s social media posts.
Tweets, Toots, Skeets, et al
Where do you live?
Hard to argue with that, though I suppose this one is more to the point:
Juicy
Hi back.
Pizza, sort of
I have no idea what that picture is supposed to be, but okay.
Cats will stop at nothing
Looks like an uncredited New Yorker cartoon, but still true.
Awww
Old math nerd joke
But my favorite this week was:
Someday soon
Someone else pointed out that once the Cybertruck is released with Full Self Driving, his beloved truck can leave him, too.
Honestly, is that not the stupidest looking vaguely car-like object you’ve ever seen?
I still can’t look at that image without rolling my eyes. It looks like a picture drawn by a 4 year old. I can, however, easily imagine Elon running after it, begging it not to leave, claiming he’ll be good this time.
Have a great week, everybody!
The video version of this newsletter will be on the Tales from the jar side YouTube channel tomorrow.
Last week:
Managing Your Manager, on the O’Reilly Learning Platform
Software Design, my course for undergrads at Trinity College
This week:
Gradle Concepts and Best Practices, an NFJS Virtual Workshop
Week 1 of Spring and Spring Boot in 3 Weeks, updated for Spring Boot 3.2, on the O’Reilly Learning Platform
Modern Java Functional Programming, an NFJS Virtual Workshop
Software Design, my course for undergrads at Trinity College