Tales from the jar side: Making Java Groovy: Middle English Edition (!?), Podcasts, articles, and conferences, oh my
And gladly wolde he lerne, and gladly teche. -- Geoffrey Chaucer
Welcome, jarheads, to Tales from the jar side, the Kousen IT newsletter, for the week of September 19 - 26, 2021. This week I taught the Introduction to Gradle course for Gradle, Inc, and I gave a presentation at the online ApacheCon@Home conference, then followed up with lots of talks at the first live conference I’ve been to since the beginning of the pandemic, the New England Software Symposium.
(If you’re looking for the bizarre story about my book in Middle English, I put that at the bottom of this newsletter. Believe me, there’s no following that.)
If you’re not one already, please consider becoming a jarhead by subscribing to Tales from the jar side using this link:
InfoQ Article and Podcast
A few months ago I did an interview for the Engineering Culture Podcast associated with InfoQ. Unlike my Groovy Podcast, they have actual production values, so the podcast wasn’t released until this week. What’s really different about this one is that there’s a companion article at InfoQ which has several snippets from the actual interview. Here’s the front page:
Here’s a snippet from the article, which apparently occurs at 13 min, 25 sec of the podcast.
Constructive loyalty [13:25]
Ken Kousen: What I try to establish is you're not trying to find somebody to marry. You're not trying to find somebody for your family. You're trying to build a professional relationship that respects both sides. That means by the way, when they do something you don't like, you have to learn how to push back in a way that doesn't threaten the loyalty relationship and that doesn't necessarily win. Because as soon as you're thinking win or lose with your manager, you're in trouble. You've already lost. You've got to find ways to make things, get both sides, achieve what they want. Build a long-term relationship so the manager knows they can count on you and that you can do the job, and you know that they will look out for you and handle administrative issues and do all the things we don't want to do. So any rate, that's more or less where everything is based.
Shane Hastie: Another intriguing topic when I was looking through the book was the good enough answers.
We really covered a lot of topics in that podcast, so that’s an easy way to find out what’s in the book without actually reading it.
Se also:
Speaking of podcasts (or, more properly, screencasts), we have this:
OffHeap 65. Helping Your Boss Help You
This week the OffHeap podcast/screencast released episode 65.
As you can (hopefully) see, there were five of us on the show. The hosts are Freddy Giume, a Principle Developer at Expedia (and a fellow member of the Null Pointers rock band of Java developers), Bob Paulin, an independent consultant, ASF member, and long-time head of the Chicago area Java Users Group, Michael Minella, the project lead for Spring Batch and Spring Cloud at Pivotal, and Josh Juneau, who is a member of the JCP, along with other roles.
The discussion on the podcast covered lots of topics from the Java world. One interesting issue we discussed was the adoption of reactive streams. I contrasted that idea (widely used in Spring) with how the Android world instead went for Kotlin coroutines, which actually drove the adoption of Kotlin in the first place, and how that ties into the eventual release of the Java project Loom, which is intended to do a similar job for Java itself.
What I pointed out is that the recent Java 17 release didn’t include anything from Loom (not even as a preview feature), and since each new feature in Java tends to go through at least two preview editions, Loom-related content in the JDK is at least a year away and probably longer. That’s Kotlin’s opportunity, as it were. We’ll see if the availability of coroutines will drive adoption in server-side frameworks like Spring.
My own view? I doubt it. Kotlin’s adoption in Android was a perfect storm of nice features and a crippled Java ecosystem based on the Google/Oracle lawsuits, which isn’t relevant in the larger world. I expect people will just wait for Loom and use reactive streams in the meantime. I’ve been wrong before, though. I just try not to stay wrong.
Of course, we also talked about my book, and it was great to see several of the hosts nod their heads as I pointed out various conclusions. It was quite gratifying to see so much agreement.
ApacheCon@Home and NFJS Boston
This week I presented my Functional Programming in Java, Groovy, and Kotlin talk at the ApacheCon online conference (videos available so far are in this playlist). The hardest part for me was cutting my normal presentation length down to only 40 minutes. I still managed to include cat pictures, though.
The live, in person NFJS season began with the Boston show. As I mentioned in my newsletter last week, I gave lots of talks. So many, in fact, that it’s probably a miracle that you’re getting this newsletter today, so I want props for that, whatever you may think of the content.
Seriously, though, it was nice to actually see real people again. The presentations were both live and remote on Zoom calls, so I had to be careful not to forget about the remote people, but as they say, if it was easy, anybody could do it.
I enjoyed the conference and the (pretend to be an) expert panel. I saw many of my fellow NFJS speakers for the first time since the pandemic started, and it’s possible (though unlikely) one or two of them might even be reading this newsletter (Hi Jonathan! And whoever else!).
UberConf is in two weeks in Denver, and that one is going to be a monster, because it runs on some days from 8am to 10pm. I’ll talk more about that next week.
One more Gradle thing…
… before I get to the story you’re waiting for. I taught my regular Introduction to the Gradle Build Tool course this week. Everything was fine until I tried to run a couple different variations of a particular task and it wouldn’t update.
“Huh,” I said. “They apparently changed the behavior of Gradle in version 7.2, so now the build cache is on by default. I didn’t expect that.”
I was able to re-run the tasks I wanted by using the —rerun-tasks flag (thanks to one of the students pointing it out), which I’d never used before. That flag ignores previously cached results.
After the class was over, it finally occurred to me to check my gradle.properties file in my gradle user home directory, ~/.gradle. Here is the entire contents:
org.gradle.caching=true
Uh, yeah. I forgot I added that. It means Gradle should turn on the build cache for every build on my system, and I totally forgot I set that. I would say I had a senior moment, but I’m pretty sure I’ve been making errors like that my whole life.
To those students who attended that class: oops, sorry. Mea culpa. Hopefully the behavior makes more sense now. If I forget it again the next time I deliver the class, then I’ll have to start worrying about myself.
Now, at long last, it’s time to get to the good stuff. Strap in, because this is going to be a bit of a ride.
Making Java Groovy in Middle English (Seriously)
I was browsing on Amazon when I stumbled upon this item:
Wait, what? That’s my Making Java Groovy book, Middle English Edition? Published Jan 1, 1749? That has to be a joke, right?
Here’s the actual link, assuming still works (As of Sunday afternoon: So faire, so goode, so to speake). I went to the detail page, which confirmed it:
Won’t Manning be surprised? Somehow I doubt this is an authorized edition. The supplier is listed as ISPIRIT (all caps), and when I clicked on them, I got this:
Curiouser and curiouser. Apparently they are based in Hong Kong. The image shows that they have a 95% positive rating based on 343 ratings in the last 12 months, but somehow they’ve filled no actual orders in the last 30 days. I was sorely tempted to order one, but $58 is a lot to spend on what is probably a typo.
Oh, who am I kidding? I had to at least put it in the shopping cart and see what the total cost would be. The result was:
The total cost was $66.66? Seriously? This is basically the Order of the Beast (times ten)? This just keeps getting better and better. Clearly the Good Lord is having fun with me. At that point I couldn’t resist, so I confirmed the order. My guess is that I’ll eventually receive a regular, somewhat-more-expensive-than-normal paperback copy of my book (the estimate is it will arrive by Oct 5) and this will all have been a waste of time and money, but hey, at least I got a story out of it.
Just in case, I searched on the internet for “Middle English to Modern English” translators. The closest I could find was here. I tried translating:
“My book, Making Java Groovy, apparently has a Middle English edition”
and got back:
My book, makyng java groovy, apparently hath a middle english edition.
Yeah, okay. A couple more experiments got me
Chaucer hath nothyng on me
and this little gem:
I'd liketh to add ye to my professional network on lynkedin
I considered reporting this to Amazon (there’s a link to report incorrect product information), but honestly don’t have the heart. I also loved the fact that the ordering information says there’s only 3 left in stock, so be sure to order soon. It’s fun to imagine a rush on software development books translated into Middle English. Presumably all those monks in medieval monasteries are illuminating the next version of twytter.
I also wondered about that publication year of 1749. That’s oddly specific, but didn’t mean anything to me. I found this page, which shows events from that year. A few of the items included are:
Jan 3: Benning Wentworth issues the first of the New Hampshire Grants, leading to the establishment of Vermont
Feb 28: 1st edition of Henry Fielding’s novel Tom Jones published
Jun 21: Town of Halifax, Nova Scotia, is founded by the British - sparks Father Le Loutre’s War
Jun 20: Earl of Chesterfield says, “Idleness is only refuge of weak minds”
Oops. That last one hit a bit too close to home, so I stopped.
The year is actually throwing me off a bit. According to Wikipedia, middle english was spoken from roughly 1066, when William the Conqueror invaded from France, through the end of the 14th century. That covers Chaucer and the Black Plague, but not Shakespeare, and certainly not the 1740s leading up to the American Revolution, which is apparently when my book was written. I’m starting to think this might all be just a mistake.
Still, I’m reminded of one quote from Chaucer:
I can definitely vouch for that.
One last point. If Sergio del Amo (who was at my talk at ApacheCon) is reading this, let me jump in ahead of you. Yes, maybe the 1749 date is there because that’s the last time we actually recorded a Groovy Podcast. Ha freakin’ ha.
(The book I ordered should be here by next week’s newsletter. I’m preparing myself for an epic anti-climax.)
For jarheads only
As a reminder, jarheads can get the ebook versions of Help Your Boss Help You at the Pragmatic Programmers using the coupon code 7bc968c446 at checkout for a 35% discount. The code is good until the end of September, 2021.
If you’re not a subscriber, that’s fine. You get to use the coupon too, at least for another week.
As a reminder, you can see all my upcoming training courses on the O’Reilly Learning Platform here and all the upcoming NFJS Virtual Workshops here.
Last week:
Introduction to the Gradle Build Tool, for Gradle, Inc.
ApacheCon presentation discussed above
NFJS Boston show, discussed above
This week:
Kotlin Fundamentals, on the O’Reilly Learning Platform
Spring Data, an NFJS Virtual Workshop
Upgrade to Modern Java, an NFJS Virtual Workshop