Tales from the jar side: Helping others be heard, the title of this newsletter, and a bit about our current chaos
"What a week, huh?" "It's only Wednesday, Lemon"
Welcome to Tales from the jar side, the Kousen IT newsletter, for the week of May 31 - June 7, 2020. This week I taught both my basic Spring and Spring Boot class and my Spring MVC class on the O’Reilly Learning Platform. As a result I added another dozen or so subscribers to this newsletter, which is wonderful. To all the newcomers, thanks for joining! To all my current subscribers, thanks for being here! I admire your endurance.
As a reminder, this newsletter is free and will remain so. That means it’s easy to subscribe, and it’s also easy to unsubscribe. Normally I don’t spend a lot of time talking about events other than in technology, but it’s been (another) big week. I’ll get to the technical stuff after this next section.
Our Eventful Week
Here’s an excellent summary of the year so far, by Chaz Hutton, who I’m happy to sponsor on Patreon:
So how has your week/month/year been?
Here’s another good one:
In last week’s newsletter, I claimed we were in a period of transition, where events happen quickly. I said that the press generally takes a few days to wrap a narrative around whatever is going on, and I didn’t think it was clear yet which way that was going to go. We hit bottom Monday night, with Trump’s little adventure that involved attacking peaceful protesters outside the White House just so he could cross the street to a church and, without permission, take a picture holding a bible. This was after hiding in his bunker the previous night.
Yeah, I turn out all the lights when I “inspect” my bunker, too.
I must admit that I personally had an awful time Monday night. State-sanctioned violence against peaceful protestors fills me with despair. I grew up learning about the Holocaust, and that was always one of the scariest indicators of what was coming. Protest all you want, but if the government allows police to attack anyone with impunity, what can you do?
What I didn’t expect was how people refused to be intimidated, and returned to the streets by the thousands the rest of the week.
That was very encouraging, and a sign of progress. Unfortunately, the problems with police violence are deeply ingrained into the system, as we saw with the attack in Buffalo, NY.
It’s as though the following conversation took place:
Mayors: Look, could you stop attacking people, on camera, for, like, 24 hours?
Cops: No.
Pushing an old man is ridiculous, but I don’t think the cops intended to put him in the hospital. What was appalling was that, after the two cops were suspended, 57 other officers resigned from the Emergency Response Team in protest.
That’s what scares me — the ingrained attitude that any challenge to their authority is invalid and must be condemned and fought. This “us vs them” attitude threatens us all. While minorities have known this for years, recent events suggest that many police have decided that anyone who isn’t a cop is automatically a threat. I wish I knew what to do about that. I’ll continue to help in my own small ways (mostly by funding good causes, BLM and otherwise) and staying visible, but I still don’t know which way this is all going to go.
I will say, however, I’m a lot more optimistic this week than last week. Unfortunately, that’s not a high bar.
A Quick Win: Making Sure Others Are Heard
I talked last week about how, by an odd coincidence, I’m now working on the chapter of my Managing Your Manager book with recommendations for women and underrepresented minorities (URMs). As a piece of that, I’d like to offer up a quick win for those who don’t fit into those categories.
One of the challenges faced by women and URMs in business is not being heard. I’ve talked to several women especially (admittedly, that’s anecdotal on my part) who express frustration that their ideas are not heard in meetings until the same ideas are proposed by others (i.e., white men). Some women have even suggested to me that they make arrangements to give their ideas to men so that they will be heard, rather than offering them themselves, which is horrible but probably not surprising.
That gives the rest of us an opportunity for a quick win. If you are in a meeting where women or URMs are a distinct minority, there are two things you can do, both of which are easy:
Listen to them. That should be easy, right?
Make sure everyone else hears what they’re saying.
You can do it very simply. You could address them directly and say, “what do you think?” in order include them in a conversation. Or you can be more indirect by saying something like, “wait, could you repeat that? I don’t think everybody heard it and it sounded really good.”
If you know a woman or URM who is going to be in a meeting with you, you can approach them ahead of time and ask if that’s okay, or how they might want you to support them. Generally, though, nobody minds an ally when that person is just making sure everybody hears them.
If you are a woman or an URM, you can talk to one of your white male friends ahead of time and ask them to be your echo or amplifier or whatever you want to call it. Approaching someone to ask for that sort of help is hard, because you shouldn’t have to do it in the first place, but what are friends for?
Besides, it’s a lot easier to ask for that than to try to change an organization’s hiring practices so that you’re not the only woman or URM in the room in the first place. It’s also asking a friend to do something easy, which they’ll probably be happy to do (if they’re not, well, that’s valuable information too). If they’re too awkward about it during the meeting, you can give them a heavy sigh and talk to them about it afterwards.
As with everything else, you’re playing the long game. Once people are accustomed to hearing you and listening to your opinions, you won’t need help to be heard any more. That’s the goal, anyway, and it’s not a bad strategy to try even if it doesn’t eventually change the culture. It might, though, and it’s easy enough to do.
Spring Versions, Again
A couple weeks ago in this edition of my newsletter I talked about how I dealt with the fact that Spring Boot changed versions right before I went into a training class. One of the annoying changes, as it turned out, was that when you use the embedded H2 database, the JDBC URL was suddenly different from that in previous versions. Instead of what I expected:
jdbc:h2:mem:testdb
now the URL was something bizarre like:
jdbc:h2:mem:ce361edb-a330-4b10-a56d-14dc60d1d65e
Not only that, but the long, auto-generated string was different every time you started the server. I showed how you could log a particular property and see the correct value. I also said I planned to go into the Spring Boot Gitter group and ask about it.
I did ask, and I got back some information. It turns out that if you simply set:
spring.datasource.generate-unique-name=false
inside application.properties, it goes back to the old way. So I then asked in the group, why did they change the default in this release?
I got back this lovely answer: “so that you get isolated databases by default when you run your tests”.
Well, yeah, thanks for being both completely correct and completely useless. Maybe I’m being too harsh (which is why I’m not identifying who said it), but at least now I know how to deal with the problem. In my Spring class this week I demonstrated the H2 Console:
That’s the style with the auto-generated URL, of course.
I also set that property in application.properties, and everything worked, which was nice.
Unfortunately, in my Spring MVC course at the end of the week, I forgot to update the version of my demo app in the GitHub repository to Spring Boot 2.3.0, and chaos ensued. Some of the differences were easy to manage, like the fact that the Spring Validator is now a separate dependency which you have to add yourself. Others were not good, like the fact that using Spring’s MVC tests causes tests to fail when you expect exceptions, even when you use the syntax that is supposed to validate them. That one I was unable to fix on the fly, which was very disappointing.
Frankly, I was disappointed in my handling of that class in general. It’s gotten better (this is only the third time I’ve run it), but I still have a ways to go to make it smooth and straightforward. I did wind up with a handful of students who didn’t have the prerequisite (the basic Spring course or equivalent experience), but I kind of expected that anyway.
The app in the GitHub repo is still on Spring Boot 2.2.7, because all the tests pass on that version. I’ll try to update it next week, but I don’t expect that to be as simple or as straightforward as I hoped.
Tales from the jar side? Where have I heard that before?
I started this newsletter the last week of 2018. I called the first issue “the Kousen IT Newsletter,” but the very next week I changed it to Tales from the jar side. I promised to explain that title someday and never got around to it.
Until now. This week, my friend and awesome subscriber Bill Fry pointed out that I’m in a YouTube video called, of all things, Tales from the jar side: Stories from the Past, Present, and Future of Java:
That talk has the same name as this newsletter. What a coincidence!
The video appears under the Oracle Developers channel and nobody at Oracle told me it was there, so I had no idea it existed until Bill referred to it in an email to me. It’s a keynote address I gave at an Oracle conference in Boston in April, 2018, and it tells the story of my personal journey as a career changer, working with Java over most of the lifetime of the language. I think it’s pretty entertaining, though if you’ve seen other talks of mine you might recognize some of the jokes. It’s also about as non-technical as I get during a technical talk, in case you’d like to watch it and you’re not a developer. Have fun.
To explain the title, though, let me give you a little history. Back in late 2017, my friend Pratik Patel* asked if I’d be interested in doing a keynote address at a regional Oracle conference for Java developers in Chicago.
*Everybody should have a friend like Pratik Patel, who knows everybody. Of course, that means everybody already does.
Pratik put me in touch with Vincent Mayers, who ran a lot of the developer community programs at Oracle at the time (he now organizes technical conferences as an independent, which is seriously bad timing even though he’s great at it). Vincent formally invited me to give a keynote address at the regional Oracle conference in Chicago in February of 2018, and then do it again in Boston in April. My Modern Java Recipes book was released the previous August, so I was happy to do so. Vincent saw my 2017 JavaOne talk (also called “Modern Java Recipes,” based on the book), and thought something similar would be nice, though he said I probably shouldn’t get too technical for this audience.
I struggled a bit with that, not because I mind just telling stories, but because all my stories were about my own personal history with the language, and I wasn’t sure how appealing that would be. Vincent loved that idea, though, and told me not to worry about it.
The big question then was what to call the presentation. I suggested a couple of really dumb titles that I won’t repeat here because rolling my eyes that hard hurts, but then he came up with the real idea:
“WDYT of the title ‘Tales from the jar-side: Stories from the Past, Present, and Future of Java’?”
I thought that was perfect. The phrase Tales from the Darkside was the name of a Twilight-Zone type of horror show back in the 1980s, and then Gary Larson’s Far Side comic strip eventually produced an animated short film called Tales from the Far Side in 1994. The other piece of the puzzle you need to know is that jar file in Java stands for a Java ARchive, which is basically a zip file with compiled Java code that can be added to a program as a library. So the whole thing is a pun, based on an archive of personal stories involving me and the Java world.
Since this newsletter is essentially the same thing, the title works here, too. So ultimately it’s all Vincent’s fault. I have no idea if he subscribes to this newsletter, but it’s no doubt long past time to check in with him, just to see how he’s doing. I’ll let you know what he says when I remind him of this.
Upcoming Classes And Presentations
It’s a bit early to be advertising this, but this tweet appeared this week:
You don’t think the term “well-rounded” was a comment on my weight, do you?
The GIDS conference this year was supposed to be in Bangalore in April (you can guess what happened to that) and Melbourne/Sydney in October. Now it’s a series of two-day, virtual conferences each month from July to December. I’m involved in three of them, which I’ll talk about as we get closer to those dates.
I should also mention two NFJS Virtual Workshops coming up in a couple weeks. I’m doing a basic Kotlin workshop and one on the Spring framework:
Gotta watch out for that “beyond” section. Wooooo :)
Yes, I get a lot of mileage out of that picture, but it’s a good picture.
This week I plan to spend most of my time writing the Managing Your Manager book. I think I’m getting close to having a complete first draft, at which point I can start soliciting feedback, especially from people whose backgrounds are very different from mine. I only hope our current chaos isn’t too distracting (or worse) during that time.
Next week I have no formal classes to teach, which is the first time that’s happened in a long, long time. That always reminds me of this gag:
That’s from Back to School, another classic movie that came out while I was a graduate student. I’m sure I’ll talk about it in a future newsletter.
In the meantime, stay safe and good luck to us all.
Last week:
Spring and Spring Boot, online on the O’Reilly Learning Platform
Spring MVC, likewise
Writing my Managing Your Manager book
This week:
No classes!
Intense writing on Managing Your Manager
Just surviving the week is probably a win