Tales from the jar side: Kotlin, Groovy, and More
Welcome to Tales from the jar side, the Kousen IT newsletter, for the week of October 13 - 20, 2019. This week I submitted the "final" version of the Kotlin Cookbook, appeared on the Talking Kotlin podcast, and taught a three-day Groovy for Java Developers course.
Cooking Kotlin
Yes, that's right, the Kotlin Cookbook is "finished". Why do I keep putting that in quotes? Books are completed in stages. According to my editors at O'Reilly Media, the current schedule is:
Copyediting, Oct 1 - 4 (we're done with that)
Author review of copyedits, Oct 7 - 9 (likewise)
QC1: Oct 15 - 18
Author review of index: Oct 21 - 23, including review of QC1 edits
QC2: Oct 24 -- last review
Files to printer: Oct 29
(I presume QC == quality control, but I never asked.)
Ebooks should be available about a week after the files go to the printer, and printing should take about 18 days after the files are received. That means ebooks should be available in early November, and print books hopefully by the middle of the month. That means there's a chance print books will be available in time for KotlinConf in Copenhagen the first week in December.
For me, that meant my last opportunity to add new material to the book was Monday, Oct 14. The coroutines chapter had to be done, as well as any other new recipes, and that was assuming the new material didn't need any serious copyediting. I'm a pretty good writer (or you probably wouldn't still be reading this newsletter), so I don't need a lot of help, though it turned out I was violating the house style in a number of fundamental ways that needed to be corrected.
(A good editor might have caught that early and let me know, but I'm going to go there now.)
The production process started in early October, so I've been head down, driving toward that goal ever since. It's been a tough home stretch, but the good news is that I did in fact get the coroutines chapter finished, along with a handful of additional recipes. I also completed the preface, the acknowledgements, and even the dedication (which may surprise the person involved). It's basically all done but the final edits and reviews. Whew.
I'll have more to say about the actual content in future newsletters, especially regarding the coroutines. That material did come together and I have a solid understanding of it now, but it's going to take some time to digest. It turns out there are a lot of moving parts, but only a handful of ways they fit together in the preferred approach. I didn't get everything I wanted in there, but what's there is solid.
That's my mantra for the book, actually. I didn't include everything I wanted to, but what is included is good.
Here are a couple of relevant recent tweets about book writing. First, from Myke Cole, who has written both science fiction and actual history:
"My brilliant, groundbreaking, envelope-tearing book idea vs. actual execution:"
Here are a couple by astrophysicist Katie Mack, who is also trying to complete a book:
"The problem with writing a book is that at some point you have to stop writing the book"
"Turns out that when you write a book, you also have to actually FINISH the book, which is FAR MORE DIFFICULT than I ever appreciated"
Anyway, more about all that as the stages complete. I'm "finished" contributing new material, however, so at least there's that.
Also on Monday (Oct 14), I had the chance to appear on Hadi Harriri's Talking Kotlin podcast. Hadi is a developer advocate at JetBrains, the company behind Kotlin, and he releases a podcast twice a month. He was kind enough to be a technical reviewer for my book, and to invite me on the podcast. I'm not sure when the actual episode will be released, but hopefully it'll be before KotlinConf.
Feeling Groovy
This week I also taught a three-day course called Groovy for Java Developers for a private client. The client involved employees at one of those companies that locks everything down, so we decided to hold the course online. We still had to get through various setup issues, because, again, everything was locked down, but eventually we got through it.
Parts of the course were tough, because with an online course they could see me and my screen, but I couldn't see them. Unless they spoke up or typed something in the chat box, I had a hard time knowing what they were thinking or feeling. Since so much of my teaching style is based on reacting to my audience, I found the extra distance difficult. Still, the evals were fine and the students seemed satisfied. It's just a lot harder not being in the room with them.
On the other hand, this was my first chance in a long time to work with Groovy, and that was awesome. I started off in the Java world, and Groovy was my first non-Java programming language on the JVM and it's still my first love. I covered the basics and more advanced material, including some of the AST transformations, basic metaprogramming, testing with the Spock library, accessing restful web services, and more. Groovy is a very powerful language, so the Spider-Man corollary applies ("With great power comes great responsibility"), but having all that power is really fun. Groovy also integrates cleanly with Java, so all your Java knowledge carries over directly. As I like to say, with Groovy you don't lose anything; you only gain.
I do have to admit that coming on the heels of the big drive to finish my Kotlin book, however, the course was rather tiring. Still, I really liked the coding parts, so the overall course was fun.
Now it's time to turn my attention back to my Managing Your Manager book (remember that?), so more about that to come in the next few weeks.
A few miscellaneous items:
The NFJS conference schedule enters its home stretch, with three consecutive weekends of events. Next weekend I'm headed to Chicago. The weekend after that is in Reston, Va, and I'll conclude the following weekend in Seattle, WA. Since I'm not speaking at any of the destination events in December, that will end my NFJS season.
My wife and I went to see The Book of Mormon this week at our local theater. Neither of us knew anything about it going in, though I knew Matt and Trey from South Park wrote it and that it was supposed to be very funny. I have to admit it didn't work for us. For me it came across as too mean-spirited. I know it made fun of everybody, but I don't like that sort of humor. I'm afraid I found the experience a disappointment. Oh well. Your mileage, of course, may vary.
I finally got around to seeing El Camino, the movie that completed the Breaking Bad story, on Netflix. That was well done. I also liked the video made about it by the two women whose YouTube channel is called "The Take". Their video is here. Of course, I like pretty much every video they make.
I also completed my rewatch of the Better Call Saul episodes, so I'm all caught up with the Breaking Bad universe until new episodes appear. Maybe that's for the best -- they don't exactly put me in the lightest of moods.
The HBO documentary on Diego Maradona is as good as everyone says. Despite its length, I was captivated. As an American, I'm mostly unaware of big events in the soccer world, and while I'd heard about some of Maradona's turbulent life, I had no idea how dramatic it was. I really recommend seeing it.
I've also been keeping track of the FIDE Grand Swiss chess tournament taking place on the Isle of Man over the last couple of weeks. I'm planning to talk about my relationship with chess in a future newsletter, but these days I really enjoy it as a spectator sport. More accurately, I really enjoy GM Daniel King's reviews of each round on his PowerPlayChess channel on YouTube. I'm also a supporter of his videos on Patreon.
My schedule this week is still rather busy, and that will continue until the NFJS season ends, but then I get a bit of break. I'm looking forward to that, around November 15 or so.
This week:
Finished all new materials going into the Kotlin Cookbook
Appeared on Talking Kotlin podcast (not yet released)
Taught Groovy for Java Developers online for a private client
Next week:
Two-day Functional Java course online at Safari
Managing Your Manager online at Safari
Attending a local concert given by the amazing group VOCES8