Lessons in modern technology
The TL;DR for today's shaggy dog story is that, despite how close I am to modern technology, I still underestimate it. Non-techies will probably want to skip this one. For once, this isn't even a programming story, it's all about IT.
I woke up this morning to the news I never like to hear: Querki was down. We're still an eensy-weensy company, so Aaron and I are the entirety of the IT department, so we're not at the point of having proper 24/7 coverage yet. (One of the many reasons I want to get to the point of being profitable is to be able to have somebody properly on-call.) It's a pretty major failure: a piece of third-party infrastructure has failed, so I need to redeploy Querki across the cluster and reboot it.
To make this worse: I'm not home. My day job nowadays is working for Artima, a small consultancy focused on Scala and its ecosystem, and I'm currently in Pleasanton, CA, teaching a seminar on Concurrent Programming. (Sorry to friends and family around here: it's a flying business trip, and I have almost no free time -- that's why I didn't contact you to get together.)
So of course, I have my Brand New Work Laptop with me -- a native-Ubuntu machine from Dell. It's quite a nice device, good for doing Scala development work. But of course, I hadn't yet installed the VPN to get to Querki's servers.
The icing on the cake is that I hastily install OpenVPN, to log into Querki's servers -- and it doesn't work. A bunch of hair-pulling and Googling reveals that OpenVPN is Just Plain Broken for Ubuntu 16.04, has been for something like 18 months, nobody's gotten around to fixing it, and none of the workarounds are working for me. So, deeply chagrined, I go off to teach today's class, with Querki still down. (This was our longest downtime in several years.)
Mid-afternoon, I'm done talking for a while, and the students are off doing project work. (A slightly sadistic little exercise in building a properly multi-threaded web crawler that counts popular words.) I can finally get back to trying to stand Querki up, but I'm stymied. OpenVPN won't run on my computer. I don't really want to install my credentials on somebody else's computer, and I've only got the one. What do I do?
Finally, it penetrates my thick skull. I do have another computer. It's even another Linux computer. And it's in my pocket.
A bit of looking around quickly reveals that yes, there is an OpenVPN implementation for Android, and yes, there's a well-regarded SSH client named JuiceSSH. A couple of quick installs, and I'm finally in business.
I will say that trying to deal with the Linux command line on a little tiny phone keyboard is Special. But it's a wonder that the bear dances at all, and the tiny keys aside, the SSH client worked flawlessly. Ten minutes of poking around, restarting services and rebooting, and everything was up and running again.
The moral of the story: yow, modern smartphones are remarkable tools. And I now know that, so long as I've got a phone signal, I can (if slowly and painfully) manage IT emergencies as necessary...