Tales from the jar side: My Jumble solver, a bit about Hamilton, and a new Java Champion
Commenting on Hamilton is such a blunder sometimes it makes me wonder why I even bring the thunder
Welcome to Tales from the jar side, the Kousen IT newsletter, for the week of July 5 - 12, 2020. This week I taught an Introduction to Gradle course for Gradle, Inc, an NFJS Virtual Workshop on Functional Modern Java, and added a blog post about solving the Jumble puzzle.
Jumble Blog Post
In a recent newsletter I talked about solving the Daily Jumble puzzle, and I threatened to eventually write a blog post about it. I kind of picked away at that problem in the intervening weeks, adding a Java solution and a Kotlin solution and eventually using the Graal virtual machine to generate a native image, meaning the program runs very fast on my Mac. This week I finally added that blog post.
Today I found out the post was included in issue #206 of Kotlin Weekly.
I want to mention a couple of items that are different from what I showed in the blog. First, in both the post and the newsletter I mentioned the problem of having a clue unscramble to two or more dictionary words. I ducked that issue at the time by claiming that was a difficulty for the puzzle creator more than the solver, since the creator would prefer that their clues have unique solutions. But recently I encountered the clue MEDRAD, for which my solver returned DERMAD.
“Dermad?” I said to myself. “What in blazes is a dermad?”
It turns out that the word dermad isn’t even in the dictionary. It’s a medical term that means “towards the skin; externally,” according to an online medical dictionary. It’s based on the same root as dermal or dermis. Go figure. I’m really surprised it’s in the word list on my laptop, which comes from Webster’s 2nd International Dictionary from 1934 (as I describe in the post). When I looked in the current version of the Merriam-Webster Dictionary online, it not there anymore.
The actual solution to the clue was MADDER, which I did manage to figure out on my own. So I revised my solver so that the solve method now looks like:
fun solve(clue: String) =
wordMap[word2key(clue)] ?: listOf<String>()
In other words, now I return the complete list of dictionary words that map to the supplied key, rather than just the first word in that list. That means the result of running my script returns a list of lists:
> jumble purep gynta dizcoa sicafo medrad
[[upper], [tangy], [zodiac], [fiasco], [dermad, madder]]
I can live with that. I’d rather see the whole list of solutions for each word rather than just assume the first element of the list is the right answer.
There’s one other point I want to add that isn’t in the blog post, and it’s your reward for reading this newsletter. In the blog post, I didn’t show the solution to the phrase in the puzzle (TO EAT THE SEAGRASS, THE MANATEES —)
The surprise answer is GRAZED IT.
Now you know. My puzzle solver is not able to parse a series of words, so I had to wait until the next day to see the actual solution. That’s yet even more value added for reading this newsletter. :)
10 Quick Comments On Hamilton
Like roughly two-thirds of all sentient lifeforms in the known universe, last weekend I subscribed to Disney+ in order to watch the Hamilton musical.
My wife and I had planned to see the show in New York, but never got around to getting tickets. She has the soundtrack, which she got from being a public television subscriber, so she knew all the music from listening to it in her car. I didn’t know anything about the show other than its reputation.
When we heard that a filmed version of the stage show (with the original cast, no less) was going to be broadcast on Disney+, I grumbled a bit about being forced to subscribe to yet another streaming service, much less Big Mouse, but one look from her convinced me to shut up and fork over the credit card info.
I know you’re probably thinking, “Oh no, not yet another white person who loves Hamilton,” so I’ll just make some quick comments here, focusing on my personal reactions rather than any attempt to divine some deeper profound meaning.
I totally get all the #hamgelica shippers now.
It’s really hard to listen to the soundtrack while I’m working, because I keep getting caught up in it and can’t get any work done.
I bought the Alexander Hamilton book by Ron Chernow because I want to know more about the actual history. I’m barely into it and I can already see how good it is.
I, too, was struck by Hamilton’s (or at least Lin-Manuel Miranda’s) negative impression of John Adams. I look forward to finding out more about that.
John Adams fans, sorry in advance. My dude does not love your dude. But y'all got a whole miniseries. Let us have this. #HamiltonCheck the date on that tweet. :)
I’m sure Miranda is appalled that the awful Trump expose book by John Bolton is called “The Room Where It Happened” (I’m not linking to that) just for marketing purposes, and, worse, Amazon suggests it as one of the “books you may like” on the same page. Bad, Amazon, bad.
I never pictured Thomas Jefferson as a bad guy, even though I knew he was problematic on many levels. Great performance, though. I also caught the subtle reference to Sally Demings (“Sally, be a lamb…”) in “What Did I Miss?”.
Yeah, no doubt I too should talk less and smile more, but I’ve got a weekly newsletter to fill so that’s probably not going to happen.
My son’s name is Alexander. I’m going to retroactively claim this show is the reason why, mostly just to get him to roll his eyes in the off chance he reads this.
I’m really enjoying re-watching the show, but the second act is so profoundly sad it’s hard to finish.
Here’s a thought: why don’t I use Hamilton quotes as the title of every section of this newsletter? I don’t know how to say no to this.
Wait, here’s how — NO.
Angie Jones, Java Champion
Last week Angie Jones became the latest addition to the Java Champions list:
She was thrilled.
I didn’t know how big deal this was until she started getting interviewed by magazines:
I didn’t realize during the voting that this was an unusual or unusually significant nomination. I saw her name come up on the Java Champions email list, and all the immediate responses were like, “wait, she’s not one already? +1!" so I didn’t pay much attention after that. Hers was one of the smoothest nominations I’ve ever seen.
I sent her congratulations, but she doesn’t know me and I expect my message was drowned out by the huge number of similar ones she received. So I’ll just give her a tiny bit of additional publicity by sharing her posts in this newsletter. :)
On Friday she was one of the presenters at the online JetBrains Technology Day for Java. Her talk was entitled, “Your Tests Lack Vision: Adding Eyes to Your Automation Framework.” I don’t see a recording yet, so I’ll just link to her YouTube channel instead.
A Few Miscellaneous Items
Both my Introduction to Gradle and my Functional Modern Java classes went quite well this week. I wound up going long on both, unfortunately, but I have so many cool demos in each it’s hard to stick to a schedule. I probably should record some short videos of those demos just so I can refer to them later, but maybe I should complete one of my existing projects before undertaking yet another new one. Or not. We’ll see.
This week I finally finished re-reading the 15 (!) previous Harry Dresden novels, so when Peace Talks comes out on Tuesday I’m ready for it.
The complete draft of my Managing Your Manager book is coming together. I really hope the beta version will be released soon. Of course I’ll be talking a lot about that in upcoming newsletters.
I got an email this week telling me I can now port my Google Play Music library over to YouTube Music (ugh) because Google Music will be gone by the end of the year. I guess that means it might be time to consider a Spotify subscription.
Speaking of services I have no desire to subscribe to, whenever I access an article on Medium I now get “Your account is under investigation or was found in violation of the Medium Rules.” I have no idea why, since I haven’t posted anything there in months. There’s no way to find out more information, or appeal, or even dismiss that message. Congratulations, Medium. I will now actively avoid you whenever possible.
At some point I’m going to write about the principles I’ve collected over the years, but one in particular seems apt this week. As the COVID-19 totals in the U.S. get large enough that even people who loudly objected to wearing masks finally start wearing them, please remember:
You can’t shame someone whose entire sense of self-worth depends on being shameless.
It’s a waste of your time and energy, so don’t bother. They don’t care that they’re being inconsistent or tribal, and they enjoy the discomfort it gives you. I try to remind myself that most of those people are pretty miserable already without my help. It’s got to be tough spending your whole life feeling scared, defensive, and threatened by all the people who are different from them and only taking joy in the misery of others. I could never live like that.
In fact, when I’m browsing twitter, I try to post encouraging items to people who might need them. Everybody is going through something, and everybody could use some validation. These days, when our current administration is still revelling in causing pain (I didn’t even mention the pointless and cruel student visa ban yet), the least I can do is offer a tiny bit of solace where I can.
Stay safe everybody.
Last week:
Introduction to Gradle for Gradle, Inc.
Functional Modern Java, an NFJS Virtual Workshop
New blog post on Solving the Daily Jumble
Working on Managing Your Manager
This week:
UberConf, online for the first time. Here is my schedule, which includes four talks and a two-part Kotlin workshop. Be sure to say hi if you attend. Even though it’s online, I think I’ll count it as the latest stop on my Kotlin Cookbook World Tour :)