Happy Saturday, everyone! Here on Global Nerdy, Saturday means that it’s time for another “picdump” — the weekly assortment of amusing or interesting pictures, comics, and memes I found over the past week. Share and enjoy!




















































































Happy Saturday, everyone! Here on Global Nerdy, Saturday means that it’s time for another “picdump” — the weekly assortment of amusing or interesting pictures, comics, and memes I found over the past week. Share and enjoy!




















































































When I saw a screenshot of GPT 5.2’s answer to the question “How many ‘r’s in garlic?” I thought it was a joke…
…until I tried it out for myself, and it turned out to be true!
At the time of writing (2:24 p.m. UTC-4, Friday, December 12, 2025), if you ask ChatGPT “How many ‘r’s in garlic?” using GPT 5.2 in “auto” mode, you’ll get this response:
There are 0 “r”s in “garlic”.
(The screenshot above is my own, taken from my computer.)
I decided to try the original “strawberry” question that ChatGPT famously got wrong last year…

…but this time, it responded with the correct answer. I suspect the correct answer to the infamous “strawberry” question is the result of fine-tuning aimed specifically at that question.
For more, check out my latest YouTube short:

Here’s what’s happening in the thriving tech scene in Tampa Bay and surrounding areas for the week of Monday, December 15 through Sunday, December 21!
This list includes both in-person and online events. Note that each item in the list includes:
✅ When the event will take place
✅ What the event is
✅ Where the event will take place
✅ Who is holding the event

Monday at 6:30 at spARK Labs (St. Pete): Catch this panel discussing how we pay for / get paid for work in the era of AI, remote work, ubiquitous internet, and great change!
Find out more and register here.
Tuesday starting at 5:30 p.m. at Hidden Springs Ale Works (Tampa): It’s the Holiday edition of TampaTech Taps & Taco Tuesday! Join your local techie peers for 15% off beer and free tacos for an evening of fun and festivities!
Find out more and register here.
Wednesday at 6:00 p.m. at Capital One Cafe (Tampa): Are you learning Python or want to catch up on extra work? Interested in meeting new friends for the upcoming new year?
Bring your laptop and join Tampa Bay Python for their next Study Group Meet & Greet, where you’ll be surrounded by like-minded Python beginners and professionals.
The study group is for everyone on their Python journey, whether you’re just starting out, already an experienced Pythonista, or anywhere in between.
Find out more and register here.
Wednesday at 7:00 p.m. at Cigar City Brewing (Tampa): Talk about security and other topics of interest in a non-work, non-vendor setting; preferably while drinking. They’re generally in the side room.
Find out more and register here.
Thursday at 6:00 p.m. at Grand Central Brewhouse (St. Pete): Join your fellow designers and grab some drinks, talk shop, or whatever else comes to mind!
Find out more and register here.
Thursday at 6:00 p.m. at Cigar City Brewing (Tampa): It’s a social happy hour on Microsoft SharePoint, hosted by Tampa M365. Learn about the latest trends and best practices in SharePoint Online development and SPO architecture. Network with fellow Microsoft SharePoint professionals and expand your knowledge in business development within the Microsoft ecosystem. It’s perfect for those looking to enhance their skills and stay up-to-date with the ever-evolving world of Microsoft technologies. Don’t miss out on this opportunity to grow your expertise and connect with like-minded individuals in the Tampa community!
Find out more and register here.
Thursday at 6:00 p.m. at Wild Rover Brewery (Tampa): Lean Beer is an alternative to the early morning Lean Coffees, for folks who can’t always join at 7:30AM. Lean Beer is a great place to ask questions and share your stories of using Agile and Lean software approaches, over an adult beverage, if you choose. They discuss any topics on Agile and Lean that are of interest to whomever is gathered. You suggest the topics, then the group prioritize sthat list democratically, through a good ole’ fashion vote. We manage our discussions via time boxes, and a Roman vote (drinks up/drinks down). Vegas rules apply!
Find out more and register here.
| Event name and location | Group | Time |
|---|---|---|
| **DECEMBER** DOT, CRAK, BAM GATHERING The GoodEarth |
SRQ Mahjong Gathering | 12:30 PM to 4:30 PM EST |
| Sunday Gaming Tampa Bay Bridge Center |
Tampa Gaming Guild | 1:00 PM to 11:00 PM EST |
| Daggerheart “Assualt on Santa’s Workshop” Critical Hit Games |
Critical Hit Games | 2:00 PM to 5:00 PM EST |
| D&D Adventurers League Critical Hit Games |
Critical Hit Games | 2:00 PM to 7:30 PM EST |
| Sunday Pokemon League Sunshine Games | Magic the Gathering, Pokémon, Yu-Gi-Oh! |
Sunshine Games | 4:00 PM to 8:00 PM EST |
| Sew Awesome! (Textile Arts & Crafts) Tampa Hackerspace West |
Tampa Hackerspace | 5:30 PM to 8:30 PM EST |
| Continuing adventures in the setting of Symbaroum. |
St Pete and Pinellas Tabletop RPG Group | 5:30 PM to 7:30 PM EST |
| A Duck Presents NB Movie Night Discord.io/Nerdbrew |
Nerd Night Out | 7:00 PM to 11:30 PM EST |
| Return to the top of the list | ||

How do I put this list together?
It’s largely automated. I have a collection of Python scripts in a Jupyter Notebook that scrapes Meetup and Eventbrite for events in categories that I consider to be “tech,” “entrepreneur,” and “nerd.” The result is a checklist that I review. I make judgment calls and uncheck any items that I don’t think fit on this list.
In addition to events that my scripts find, I also manually add events when their organizers contact me with their details.
What goes into this list?
I prefer to cast a wide net, so the list includes events that would be of interest to techies, nerds, and entrepreneurs. It includes (but isn’t limited to) events that fall under any of these categories:
This one’s going in Saturday’s picdump:

Since there are precious few RAM manufacturers and that consumer RAM isn’t where the big money’s at (Micron is closing Crucial, their consumer RAM branch, from whom I bought my most recent RAM stick), most of the production is now being aimed at AI and enterprise data centers, meaning RAM shortages for us ordinary folk.
Long story short: If you think prices are bad today, wait a few months. If you can, buy RAM now, but Consumer RAM Winter is coming.
In case you need some context for the meme above, here’s the scene it came from — probably the best scene in Iron Man 2, apart from “Sir, I’m gonna have to ask you to exit the donut.”
It’s always a treat to see one of Dr. Venkat Subramaniam’s presentations, and Monday evening’s session, Identifying and fixing Issues in Code using AI-based tools, was no exception!
On behalf of the Tampa Bay Artificial Intelligence Meetup, Anitra and I would like to thank Ammar Yusuf, Tampa Java User Group, and Tampa Devs for inviting us to participate in this meetup, and to thank Venkat for an excellent lecture.
Venkat described a specific phenomenon regarding how we perceive AI’s competence:
Venkat demonstrated several scenarios where code looked correct but had problems that weren’t immediately apparent, and showed how AI helped (or didn’t).
The first case study was a version of a problem presented to Venkat by a client. He couldn’t present the actual code without violating the client NDA, so he presented a simplified version that still captured the general idea of the problem with the code.
Here’s the first version of the code:
// Java
import java.util.*;
public class Sample {
public static List stringsOfLength5InUpperCase(List strings) {
List result = new ArrayList<>();
strings.stream()
.map(String::toUpperCase)
.filter(string -> string.length() == 5)
.forEach(result::add);
return result;
}
public static void main(String[] args) {
var fruits = List.of("Apple", "Banana", "Orange", "Grape", "Guava", "Kiwi",
"Mango", "Nance", "Papaya", "Peach", "Lime", "Lemon");
var result = stringsOfLength5InUpperCase(fruits);
System.out.println(result);
}
}
This version of the code works as expected, printing the 7 fruit names in the list that are 5 characters long.
Right now, it’s single-threaded, and it could be so much more efficient! A quick change from .stream() to .parallelStream()should do the trick, and the resulting code becomes
// Java
import java.util.*;
public class Sample {
public static List stringsOfLength5InUpperCase(List strings) {
List result = new ArrayList<>();
// Here's the change
strings.parallelStream()
.map(String::toUpperCase)
.filter(string -> string.length() == 5)
.forEach(result::add);
return result;
}
public static void main(String[] args) {
var fruits = List.of("Apple", "Banana", "Orange", "Grape", "Guava", "Kiwi",
"Mango", "Nance", "Papaya", "Peach", "Lime", "Lemon");
var result = stringsOfLength5InUpperCase(fruits);
System.out.println(result);
}
}
The code appears to work — until you run it several times and notice that it will occasionally produce a list of less than 7 fruit names.
Why did this happen? Because Java’sArrayList isn’t thread-safe, and writing to a shared variable from inside a parallel stream causes race conditions. But this is the kind of bug that’s hard to spot.
Venkat fed the code to Claude and asked what was wrong with it, and after a couple of tries (because AI responses aren’t consistent), it identified the problem: creating a side effect in a stream and relying on its value. It suggested using a collector like toList() to capture the the 5-character fruit names; it’s thread-safe.
Claude also suggested applying the filter before converting the list values to uppercase, so as not to perform work on values that would be filtered out.
The takeaway: AI is excellent at spotting errors that we humans often miss because we’re so focused on the business logic.
I didn’t get a photo of this code example, but it featured a function that looked like this:
public String doSomething(String someValue) {
// Some code here
someValue = doSomethisElse(someValue)
// More code here
}
I’m particularly proud of the fact that I spotted the mistake was the first one to point it out: mutating a parameter.
Venkat fed the code to Claude, and it dutifully reported the same error.
It was easy for me to spot such an error in a lone function. But spotting errors like this in an entire project of files? I’d rather let AI do that.
I didn’t get a photo of this one, but it featured base class CurrencyConverter with a method convert(float amount). A subclass NokConverter attempted to override it to handle Norwegian Krone.
The problem was that NokConverter’s conversion method’s signature was convert(int amount), which meant that it was overloaded instead of overridden. As a result, polymorphism was lost, and the client code ends up calling the base class method instead of the subclass method. But that’s pretty easy to miss — after all, the code appears to work properly.
A quick check with the AI pointed out that the method was not actually overriding, and it also suggested adding the @Override annotation, which is meant to prevent this kind of subtle error.
Remember: don’t just let AI fix it; understand why the fix works. In this case, it was about strictly enforcing contract hierarchy.
Venkat asked Claude to write a Wordle clone, and it did so in seconds.
But: the logic regarding how yellow/green squares were calculated was slightly off in edge cases.
AI sometimes implements logic that looks like the rules but fails on specific boundary conditions. It’s a good idea to write unit tests for AI-generated logic. Never trust that the algorithmic logic is sound just because the syntax is correct.
While doing Christmas shopping, I stumbled across the device pictured above — the Revolution InstaGLO R180 Connect Plus toaster, which retails for $400 — and thought: Do they not remember the “toaster programmer” joke from the 1990s?
In case you’re not familiar with the joke, it’s one that made the rounds on internet forums back then, as a sort of “text meme.” Here it is…
Once upon a time, in a kingdom not far from here, a king summoned two of his advisors for a test. He showed them both a shiny metal box with two slots in the top, a control knob, and a lever. “What do you think this is?”
One advisor, an Electrical Engineer, answered first. “It is a
toaster,” he said.
The king asked, “How would you design an embedded
computer for it?”
The advisor: “Using a four-bit microcontroller, I would write a simple program that reads the darkness knob and
quantifies its position to one of 16 shades of darkness, from snow white to coal black. The program would use that darkness level as the index to a 16-element table of initial timer values. Then it would turn on the heating elements and start the timer with the initial value selected from the table. At the end of the time delay, it would turn off the heat and pop up the toast. Come back next week, and I’ll show you a working prototype.”
The second advisor, a software developer, immediately recognized the danger of such short-sighted thinking. He said, “Toasters don’t just turn bread into toast, they are also used to warm frozen waffles. What you see before you is really a breakfast food cooker. As the subjects of your kingdom become more sophisticated, they will demand more capabilities. They will need a breakfast food cooker that can also cook sausage, fry bacon, and make scrambled eggs. A toaster that only makes toast will soon be obsolete. If we don’t look to the future, we will have to completely redesign the toaster in just a few years.”
“With this in mind, we can formulate a more intelligent solution to the problem. First, create a class of breakfast foods. Specialize this class into subclasses: grains, pork, and poultry. The specialization process should be repeated with grains divided into toast, muffins, pancakes, and waffles; pork divided into sausage, links, and bacon; and poultry divided into scrambled eggs, hard- boiled eggs, poached eggs, fried eggs, and various omelette classes.”
“The ham and cheese omelette class is worth special attention because it must inherit characteristics from the pork, dairy, and poultry classes. Thus, we see that the problem cannot be properly solved without multiple inheritance. At run time, the program must create
the proper object and send a message to the object that says, ‘Cook yourself.’ The semantics of this message depend, of course, on the kind of object, so they have a different meaning to a piece of toast than to scrambled eggs.”
“Reviewing the process so far, we see that the analysis phase has revealed that the primary requirement is to cook any kind of breakfast food. In the design phase, we have discovered some derived requirements. Specifically, we need an object-oriented language with multiple inheritance. Of course, users don’t want the eggs to get
cold while the bacon is frying, so concurrent processing is
required, too.”
“We must not forget the user interface. The lever that lowers the food lacks versatility, and the darkness knob is confusing. Users won’t buy the product unless it has a user-friendly, graphical interface. When the breakfast cooker is plugged in, users should see a cowboy boot on the screen. Users click on it, and the message ‘Booting UNIX v.8.3’ appears on the screen. (UNIX 8.3 should be out by the time the product gets to the market.) Users can pull down a menu and click on the foods they want to cook.”
“Having made the wise decision of specifying the software first in the design phase, all that remains is to pick an adequate hardware platform for the implementation phase. An Intel Pentium with 48MB
of memory, a 1.2GB hard disk, and a SVGA monitor should be sufficient. If you select a multitasking, object oriented language that supports multiple inheritance and has a built-in GUI, writing the program will be a snap.”
The king wisely had the software developer beheaded, and they all lived happily ever after.
Lately, a lot of friends have been telling me that they were listening to an interview with Cory Doctorow about his latest book, Enshittification, and heard him attribute this quip to me:
“When life gives you SARS, you make *sarsaparilla*.”
The YouTube short above tells the story behind the quote (which also appears in this old blog post of mine), which also includes a tip on using AI to find specific moments or quotes in videos, and a “This DevRel for hire” pitch to hire an awesome developer advocate.