Tales from the jar side: AI Assistants, Sometimes traveling works out, Elon Groks, and the usual tweets, toots, and skeets
The person who invented autocorrect should burn in hello. (rimshot)
Welcome, fellow jarheads, to Tales from the jar side, the Kousen IT newsletter, for the week of November 12, 2023. This week I taught my Functional Java course on the O’Reilly Learning Platform (in the APAC time zones), a private course in upgrading to Java 17+ and Spring, and my regular Software Design course at Trinity College in Hartford, CT. All in all, a very busy week.
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.
OpenAI Embeddings and Assistants
I’ve only started playing with the new AI Assistants API from OpenAI, but so far it’s been pretty straightforward. My plan is to create an assistant that answers questions about my Help Your Boss Help You book.
Assistants allow you to, well, here’s the definition from the new documentation:
The Assistants API allows you to build AI assistants within your own applications. An Assistant has instructions and can leverage models, tools, and knowledge to respond to user queries.
I’m pretty sure this is what they’re ultimately going to call “GPTs,” which they’ll distribute through a GPT store some time later this year. In the meantime, it’s easy enough to create them directly with the API.
I didn’t do that. Instead, I used the Playground to create one, as you can see:
The interesting part is that you can upload files to the assistant, so it knows information not available in the regular training set. I uploaded:
A PDF copy of my Help Your Boss Help You book, and
PDF copies of 10 blog posts I published on Medium in the Pragmatic Programmers publication last year when the book was released.
I also configured it to use the latest GPT version, GPT-4-1106-preview, which they’re calling gpt-4-turbo.
Here’s a sample run:
User
Please give me five highlights from the book.
Managing Your Manager
Here are five key highlights from the book "Help Your Boss Help You":
Making Inevitable Conflict Productive: The book explores how differing agendas between employees and managers can lead to conflict, and provides insights into what managers generally want from their employees. It emphasizes why many managers fail to meet expectations and how to build a positive relationship through understanding and alignment of goals.
Giving Good-Enough Answers: This section delves into the concept of delivering satisfactory work within the context of business, contrasting it with the pursuit of perfection that is often ingrained during education. It discusses how to provide answers that meet the needs of the business without overcomplicating solutions or overcommitting resources.
Creating Constructive Loyalty: The book looks at the dynamics of trust and loyalty in the employer-employee relationship, stressing the importance of loyalty and the consequences of its absence. It also addresses the common fears that managers face and how employees can establish a loyalty that is beneficial for both the manager and the employee.
Sending the Important Two Messages: This part of the book emphasizes the importance of communication between employees and managers, specifically focusing on two key messages: "I Got This," which is about taking responsibility, and "I Got Your Back," which is about demonstrating teamwork and support.
Winning the Prisoner's Dilemma: Ken Kousen applies the concept of the Iterated Prisoner's Dilemma to the employee/manager relationship and presents a strategy known as Tit-for-Tat (TFT) for navigating this relationship. The approach suggests a cooperative yet assertive interaction pattern that can lead to mutually beneficial outcomes.
I must admit, that’s not bad.
My plan is to create some interactive bot that can answer questions from information contained in the book and the articles. I’ll then talk to the publisher about possibly hosting it somewhere, or maybe I’ll host it on my own website. We’ll see.
I also experimented with using LangChain4J with embeddings to do something similar. That, too, worked, but it’s early yet. I’m going to have to play with both of these approaches and see what works best.
Sometimes Traveling Is Okay
A harsh lesson that travelers often have to learn is that nobody really cares about your travel stories. Everybody has had flight delays, or hotel issues, or bad shared rides, and so on. When they happen to you, they’re all that matter, but if not, it’s like seeing somebody else’s vacation photos — okay, I guess, but it’s hard to stay interested.
This week I traveled to Phoenix, AZ, for a private training course.
I flew there on Tuesday and returned on Saturday. Normally I wouldn’t say anything about the trip, but something truly remarkable happened — nothing, literally nothing, went wrong. All four flights (two outbound, two returning) left on time and had no issues. The hotel was a very short walk from the training site, so I didn’t need a car at all, and it was also close enough to the airport to provide a regular shuttle.
Speaking of the hotel:
My room had an actual dresser with actual drawers. That’s unusual, believe it or not, because apparently some interior decorators prefer random shelves in corners. I’ve never understood that.
The room had enough outlets, and they were well-placed around the room.
The hotel had a restaurant that had decent hours and an active staff, and while the food was a bit pricey (it was, after all, a hotel), the quality was good.
The internet access was decent and consistent. I also was able to pay for the whole stay at once, so I didn’t have to renew it every day. Also, I was able to connect multiple devices without having to re-submit anything or reconnect each day. That was particularly important to me, since I had online classes to teach in addition to my training course during the day.
Seriously, I had no complaints at all about the entire trip. Halfway through I was afraid to say anything because I didn’t want to jinx it, but I needn’t have worried. Everything was fine the whole time. I’m still very happy about that, especially because it may never happen again.
As for the actual training, this week I taught:
Functional Programming In Java, on the O’Reilly Learning Platform, from 8:30 pm until 12:30 am on Tuesday and Wednesday. Thank goodness I was on Mountain time. At home that would have gone until 2:30 am in the morning.
My regular Trinity course Software Design on Monday before I left, and on Wednesday early evening from 4:30 pm to 5:45 pm.
My Java Upgrade course (to Java 17 and beyond) and a Spring Framework course at the training site during the days from Wednesday to Friday.
All of them went well enough, but whoever scheduled them together like that (me) is clearly a maniac who must be stopped at all costs.
Recovery Days
When I was an undergrad, I used to tell myself on the weekend that if I did my homework, I could watch the Monday Night Football game. Pretty quickly that evolved into, “I better do my homework over the weekend because I know I’m going to watch the Monday Night Football game.”
I think of that every time I travel these days. Traveling is very tiring, even if all you do is sit on an airplane / train / car / whatever. When I used to travel a lot, I noticed I needed to plan a recovery day when I got home where I simply wasn’t going to be productive no matter what I tried to do. That was tough, but even more necessary as I got older.
These days, now that I’m not just older but actually old, I know to expect to take a recovery day whether I plan for it or not. That’s a bit annoying when my recovery day is also the day I have to send out a new newsletter, but hey, if it was easy, anybody could do it.
On a somewhat related matter, I did not manage to add a new YouTube video this week (other than the newsletter video, which appears every Monday, rain or shine). Oh well. That was my last trip of the year, however, so I’ll get back to that this week.
Tweets / Toots / Skeets
This week in Elon
I loved the title of this article from Vulture: Quelle Surprise! Darren Aronofsky Is Making a Movie About a Loser.
There are so many gags that I could make about the lead character (off the top of my head, “I thought they already made a movie called Joker”), but I’ll wait until we know more.
My dream casting was already anticipated:
In case you don’t know her, Abigail Thorn runs the YouTube channel called Philosophy Tube, and she may be one of the most famous trans actors in the UK at the moment. I’m happy to be one of her patrons, and I would pay serious money to see her cast as Elon. Sadly, she was just joking in this tweet.
The other Elon-related idiocy this week is that he’s now got a large language model, because of course he does. It’s called Grok, which was a term from the Robert A. Heinlein novel Stranger in a Strange Land. I’m virtually certain Elon never read that book, or he never would have chosen that name.
What makes Grok different is that it’s willing to say things the others are not, and it has a sarcastic attitude that sometimes includes vulgarity. In other words, it combines some of the worst qualities of its owner and calls that a “personality.” Good luck with that. Here’s a slide show from The Onion called The Onion’s Exclusive Interview with Grok, Elon Musk’s AI Chatbot. Enjoy.
Apparently, in order to get access to Grok, you need to become a Twitter Premium+ (you need that plus sign because the word Premium simply isn’t enough) subscriber for $16/month, and then you get put on a waiting list.
No. Not just no, but NO. Maybe even A WORLD OF NO.
Winter Is Coming
I actually felt compelled to link to the actual tweet, so you can watch one minute of Vivaldi’s Winter played on an accordion. Weird Al would be so proud.
Dentist Joke?
I told this to my wife, who laughed, but you would too if you saw our dentist.
Fractals All The Way Down
Holy self-similarity, Batman.
Caturday Evening Post
I have to find an excuse to use that image in a presentation.
Inflation Hedge
I knew crypto was good for something.
Consent is everything
That’s brilliant.
Good Afternoon
That reminds me: Happy Diwali! According to Google:
I didn’t think to say any of those to my class this week, which is a bit of a shame since 90% of the attendees were from India. Best wishes anyway.
Bluesky Invites
I keep meaning to do this, and keep forgetting. If you’re interested in trying out the Bluesky social media app, you need an invite. I have five of them available:
bsky-social-dwln2-kcvfn
bsky-social-wmxmq-gdmmn
bsky-social-rwlsb-22qti
bsky-social-l73iw-vwi4j
bsky-social-66vd4-uyso2
Once each one is used, it’s gone. If I remember, I’ll post the unused ones next week.
“Currently”
Your mouth currently produces one liter of saliva each day.
Variation on a Meme
Gotta watch out for Big Small, as opposed to Biggie Smalls, I guess.
The video version of this newsletter will be on the Tales from the jar side YouTube channel tomorrow.
Last week:
Functional Programming in Java, on the O’Reilly Learning Platform
Java and Spring, private class
Software Design, my course for undergrads at Trinity College
This week:
Deep Dive into Spring, an NFJS Virtual Workshop
Software Design, my course for undergrads at Trinity College