Tales from the jar side: Working during a hurricane, but some good stuff too
An online life without online access is somewhat less than optimal
Welcome to Tales from the jar side, the Kousen IT newsletter, for the week of August 1 - 8, 2020. This week I gave a fun user group presentation for the London Java Community, taught two NFJS Virtual Workshops (Deep Dive Into Spring and JUnit 5 and Mockito testing), and battled with the aftermath of the tropical storm that hit us on Tuesday.
I’m going to divide the week into Good Things and Bad Things.
Schrödinger: Doctor, how is my cat?
Veterinarian: Well, I have good news and bad news.
Everyone complains about the weather…
… but nobody ever does anything about it (rimshot). Yeah, that’s an old gag, but still true. Weather control is one of those Star Trek technologies I think we’re least likely to see in our lifetimes, along with the murder machines known as transporters and their extraordinary ability to handle video calls perfectly, the first time, with aliens they’ve never met.
The weather in question was Hurricane Isaias* (or Tropical Storm Isaias, depending on when you caught it), which definitely counted as a Bad Thing.
*It turns out that the name Isaías is a biblical name meaning “God is my salvation.” If you’re thinking “Biblical? Really? I don’t remember that name in the bible,” you might recognize the more familiar Hebrew form: Isaiah. According to BabyNames.com, Isaias ranks #510 in U.S. births. I’m not sure whether that number will go up or down, but it’s definitely going to change.
The last hurricane to hit New England was Sandy, in October of 2012, which clobbered New York City a lot harder than it hit Connecticut. Still, the power grid here in Connecticut is notoriously unreliable, so I knew even if all we got was a lot of rain, we were going to lose power. Worse, I was scheduled to teach an online course that week.
Sandy, can’t you see I’m in misery?
Back then I used to travel constantly, so I accumulated a ton of hotel points. I knew the hurricane was coming, so the day before it hit, my wife and I checked into a Hilton Hotel in downtown Hartford, after first verifying that they never lost power and they had a reasonably fast Internet connection. We stayed there for four days, at a cost of about a quarter of a million hotel points, but I managed to teach my class. As expected, our house was without power for the full week.
We then decided to invest in a backup generator so we wouldn’t have to go through that again. We both work out of our home, so a generator was a reasonable business expense. We eventually had one installed that could keep the whole house running for a few days. We know it’s there because every Saturday morning at about 11am it starts up for a few minutes just to harass the neighbors. We pay for maintenance and fuel, but mostly we don’t think about it until we need it.
So when we heard about Isaias, we thought we were prepared.
“Tornado” and “Connecticut” are not words you normally hear in the same sentence
The news claimed the storm was going to hit my area during my presentation for the London Java Community. I therefore prepared a slide with the following image and associated joke:
The view outside my window during Isaias
My talk was supposed to take about an hour, starting at 2pm my time (7pm in London). Just before we started, the weather still looked clear, so at the last minute I decided to delete that slide. I don’t know what I was thinking.
The talk went very well (more about that below) until right about 3pm, when I started to do the cat pictures demo I promised. That’s when the power flickered twice and then died.
It took me nearly 15 minutes to get back into the Zoom call. I was surprised it took so long, because usually the generator starts up in about five minutes, but it turned out the power kept cycling, making it part way back before failing again, over and over. Eventually I did make it into the meeting. Even better, nearly half the attendees were still there, so I was able to complete my demo and answer questions for a little while afterwards.
So I thought we were good, until Wednesday morning when I was scheduled to teach my Spring framework deep dive. About an hour before the class was supposed to start, all my Internet access went down.
What does cable internet have to do with overhead power lines, anyway? Aren’t cable lines buried?
My only available option was to use my phone as a wifi hotspot. I connected to that (thank goodness I have unlimited data), but the speed test I ran showed less than 1 Mb/sec. I was afraid that was going to be completely inadequate for an extended Zoom call.
This is what my state looked like at the time, according to the Eversource outage map:
The Xfinity website claimed that access would be restored by 1:50pm. The class was supposed to go from 11am to 6pm Eastern time, so I thought we might be able to skip half a day and resume later, then make up the rest. We decided instead to postpone the course until Friday.
As you probably can guess, 1:50pm came and went with no access. The estimate jumped to 2:40pm, and then to the oddly-specific-but-meaningless value of 5:41pm, then 8:35pm. After that they stopped giving out numbers at all (“access will be restored as soon as possible”). Yikes. Meanwhile, the Eversource outage map showed the town of Marlborough was still 90% dark.
By Thursday morning, I still had nothing other than the phone hotspot. Dealing with intermittent and inconsistent internet access is frustrating, but to make it worse, I couldn’t even watch TV without getting the constant message that it was unable to connect to the internet. I tried briefly connecting the TV through the hotspot as well, but that resulted in frequent “Loading…” messages that made it almost unusable.
I still had a class to teach on Thursday, as well as the rescheduled one on Friday, with no idea when access would be restored. My friend and fellow NFJS-speaker Jonathan Johnson did the smart thing and rented a co-working space that had everything. He offered to let me use it as well, but New Haven is an hour away even without considering all the downed trees and power lines.
I decided instead to try to run my JUnit 5 and Mockito testing class on the slow hotspot to see if it might be enough. I told the students what was going on, and they were okay with trying.
Lo and behold, the Zoom call held up for the full 3 1/2 hours. I decided to do the Friday class that way as well, in case internet access wasn’t back by then, and of course it wasn’t. By Friday morning my town was still 74% dark, and Xfinity finally started giving estimates again, though they weren’t helpful estimates (Sunday night at 11:04pm). Meanwhile Eversource, under withering scorn and criticism by everyone from the governor on down, said power would be back by Tuesday night. Ugh.
Once again, amazingly enough, the Zoom call worked over the hotspot. I’m still surprised by that. The audio was fine, and I was able to share my screen without any untoward glitches or other significant problems. Say what you will about the company behind Zoom (and their security issues are legion), but I have to give them props for coming through when I needed them.
My power came back on at about 4:25 pm on Friday. I knew because suddenly the generator shut down, and the lack of a background hum caught my attention. As it turned out, Xfinity access came back within an hour of that, too, but I didn’t realize it until my class was over and my wife told me.
So all’s well that ends well, right? Yes and no. I don’t think I’m getting across how frustrating and infuriating the whole process was. Part of it was the same anger that airlines trigger when they delay a flight and every estimate they give you about the new time turns out to be wrong. But there was something else going on, which led my reactions to feel completely out of proportion to the severity of the problem. After all, at least I had a generator and unlimited data on my wifi hotspot. Some people in Marlborough still don’t have power (as I write this the current estimate is 17.5%), so I was much better off than most of my neighbors. Why then was I so angry and frustrated that I could barely work at all (other than teach my classes, which I can always do somehow)?
It took me a day or so to figure it out. Since the pandemic started we’ve done everything you’re supposed to do — isolate ourselves from other people, wear masks in public and limit going out, and try to work online as much as possible. I’ve even spent money to make my work better — bought a better router and upgraded my internet speed, bought a generator, paid for a good microphone for online calls, and set up all my classes to be online. In a situation like that, when you’ve done everything you possibly could do to manage the situation, dealing with a storm that wiped out both power and internet was more than just difficult, it was downright cruel.
It’s like the world said, “Take all these steps to deal with our current unpleasantness,” and once you did them, it took away that last line of defense. “You’ve rearranged your life to be completely online? Well, guess what? Now you can’t be online anymore! Mwahaha!” That’s just evil.
No darn wonder I was mad. Who wouldn’t be?
Once I recognized the problem, at least I could deal with it, acknowledging the source and understanding the issues involved. I got through my courses, and then lo and behold the power and internet came back. Now I’m back to handling the emotions that come from a combination of privilege (thank goodness I had the money to make those improvements), luck (we got restored early, relatively speaking), and a bit of good planning (I’ve been steadily moving my work online over the past few years, for unrelated reasons). I manage that the same way I usually do: try to be both grateful and humble, and try to help out the less fortunate. My current charities of choice are my local food bank and RIP Medical Debt.
And now for something completely different
There was good news this week as well. As I mentioned, the talk at the London Java Community went really well.
Meanwhile, I got a nice gift from O’Reilly Media:
In addition, last week’s edition of this newsletter got mentioned in the August Java Annotated Monthly by Trisha Gee:
The relevant bullet point reads:
Tales from the jar side: Testing as a Weapon, Managing Your Manager changes – Ken’s newsletter is usually interesting and/or useful, I liked this edition in particular for the "Testing as a Weapon" section at the top, and because it mentions me by name
I’m virtual certain Trisha was joking about mentioning her name, but just in case she wasn’t: Hi Trisha! Thanks for including me, but what do you mean by “usually”? What’s up with that? Humph.
(Just kidding, Trishia. You rock, as always.)
Thanks to everyone for your patience. It really does help me to know so many of you are reading this. I’ll try to keep things interesting and/or useful in the future.
Last week:
Presentation, “Functional Programming with Java, Groovy, and Kotlin” at the London Java Community group. Examples are in this GitHub repository.
Java Testing with JUnit 5 and Mockito, an NFJS Virtual Workshop
Deep Dive Into Spring, an NFJS Virtual Workshop
This week:
Spring and Spring Boot, on the O’Reilly Training Platform
Reactive Spring, private course
Revising my Managing Your Manager book based on early feedback, soon to go out for the first external review