Summer Theatre Notes

Diane and I have always enjoyed going to plays (in fact, one of our first dates was to see the RPI Players perform “Sweet Charity”), and we’re lucky to live in a place that offers us many opportunities to do so.

So far this summer, we’ve seen seventeen plays (and will see another on Sunday, with a high probability of an additional play or two next week).

I’d be foolish to write to write reviews of all of them, but I do want to point out a few of the ones which I thought were especially good and which are still playing. So let’s go to the theatre!

We saw the entire season (11 plays) at Oregon Shakespeare Festival. It took two visits. The first trip was in early June with Road Scholar (the class included 3 plays, and we added five more for a total of 8 plays in 6 days). We made a point of scheduling all of the outdoor plays for that visit to minimize the odds of fire-related cancellations. The second trip was a few weeks ago to pick up the plays that weren’t open in June – and I’m glad we didn’t try to see any of the outdoor plays then, because OSF had to move them to a much-smaller indoor theatre because of the Milepost 97 fire in Canyonville, 80 miles north of Ashland.

OSF’s season continues into October, and I can recommend all but one of the plays – Alice in Wonderland was disappointing. The music and costumes were good, but the characterization was limited, and I just couldn’t bring myself to care about what was happening on the stage – it was just a pack of cards, after all.

On the other hand, I found Mother Road, Hairspray, Between Two Knees, Indecent, How to Catch Creation, and Cambodian Rock Band to be thought-provoking, well-acted productions with something to say about society and how different groups interact. I’d recommend any of them without hesitation (though Mother Road and Between Two Knees are the weakest of this group).

The Shakespeare plays were all well-done and worth seeing; La Comedia of Errors was a very different take on Shakespeare!

We’ve already signed up for Road Scholar’s Ashland experience next year and hope to see the entire season again.

We’re season-ticket holders and supporters of three local theatre companies – none of them have the resources of OSF, but they produce great theatre.

City Lights Theatre in San Jose is currently performing Cabaret based on the original 1966 production. There’s a lot more story than I remember from the previous versions I’d seen – the music was there, but the story took priority. The similarities to what’s happening today were clear (not blatantly pointed out – but there to see) and chilling.

Earlier in the season, we saw their production of Silent Sky, a Lauren Gunderson play about the first female computers/astronomers at Harvard. I’d seen the play before, and thought that City Lights did a very good job with it.

We’re already signed up for their entire season next year.

Silicon Valley Shakespeare has two plays in rep at Sanborn Park in Saratoga through August: Macbeth and The White Snake. Their Macbeth was much crisper than OSF’s – we also got to see it from the front row, unlike our seats in Ashland! We haven’t seen The White Snake yet, but will this weekend – it’s an adaptation of a Chinese tale.

Earlier in the season, we saw SVS’s free “Shakespeare in the Park” production of A Midsummer Night’s Dream, and it was a lot of fun.

Again, we plan to go to their season next year – but they won’t be selling tickets for a few months.

Lyric Theatre started out as the Gilbert and Sullivan Society of San Jose, and they still do at least one G&S play every year. This summer, their “Discovery Series” presented the very first G&S, Thespis; it posed a special challenge because the original music was lost a century ago!

Lyric’s productions feature huge casts, wonderful costumes, and great music – we always have a good time there, and we’ve bought next season already.

I know 3 Below as the home of ComedySportz, but they show movies and put on other shows, too. We saw Disenchanted, a musical purporting to tell the truth about the Disney princesses – it was an enjoyable evening, and the songs were well-crafted.

And that’s the summer theatre report – so far!

Paying my technical debt

I’ve been involved in Toastmasters since late 2010. I volunteered to take on the Vice President Education role in my home club, the Silver Tongued Cats, soon after I joined, and looked forward to taking on a District Leadership role so that I could, eventually, become a Distinguished Toastmaster.

In 2012-13, I took on the role of Area B2 Governor. I had to look at several different reports (all of which were manually created in Excel) to figure out what was going on with my clubs. There was one report for progress in the Distinguished Club Program and another one for membership growth; it took some effort to pull all the information together, and many trees died in the process.

The following year, I was a Division Governor, and the effort to pull the info together for the 25 clubs in my Division was significantly greater – and so was the pile of paper I dealt with.

I thought there had to be a better way and started working on Python code to take the information available from the Toastmasters Dashboard and create a consolidated report. I decided to put the code onto GitHub to make it easy to develop on my laptop at home but run the real code on the web server.

Getting the information wasn’t particularly difficult (Toastmasters offers the data in CSV), nor was creating a consolidated report with the information that we needed. When I showed my report to the District Governor, she asked me if I could make it available to the entire leadership team. Of course, I said “yes”, and joined the District 4 Web Team as Statistician and Assistant Webmaster, a role that, unlike Division Governor, had no fixed term.

I didn’t want to fetch a whole year’s worth of data from Toastmasters every time I needed to create my reports, so I needed to save the data after getting it. I’d already had to do some transformations on the data (consolidating information from three separate CSV files into one object, for example), so I decided to save each day’s work as a Python pickle file, and had my reporting program unpickle all of the collected files. This was ugly code, to say the least, but it worked.

The leadership team liked the reports I generated, but they wanted more – they wanted support for District incentive programs, and, soon, support for reforming the District into two Districts. I was happy to oblige, and cranked out lots of code.

During the reformation process, I met George Marshall, the then-Webmaster for District 57 and the person behind Tools for Toastmasters. I told him what I was doing, and he made a very pointed suggestion: use a database instead of my pile of pickle files.

He was right. By using the pickle files, I had, unintentionally, built up a lot of technical debt, and the sooner I moved to a database, the less it would cost me to pay off the debt.

With that problem solved, I was able to support the District leadership fairly easily as we moved forward on the reformation, and took on the role of District 101 Webmaster and Statistician when the reformation happened.

Since I was posting the code to GitHub, I didn’t want to put things like the database credentials in the code, so I moved them to an external file, and then to a separate directory, just to make sure I didn’t accidentally post them.

And as long as I had a separate directory, I thought it would be a good place to store other files, such as the statistics I downloaded from Toastmasters, the maps and reports I created, Dropbox cursors, and so forth. Without planning it, I created a directory that had a hodgepodge of stuff in it – some was critical to the operation of the suite of code, and some was recreated every day. And there was no easy way to tell which was which.

Years passed. I wrote more code. I put more and more files in the “stuff” directory. But everything worked well enough, so I didn’t do anything about it.

Until last year, when I got serious about not being Webmaster and Statistician for Life. I put out a call for volunteers to help me with the code – when meant that I had to be able to explain the code. Most of it was easy to explain and document, but the “stuff” directory turned out to be a real problem.

So I’m fixing it.

When I moved from the pickle files to a database, I had, perhaps, five programs to fix. Today, I have more than 80 programs in my source tree; not all of them are actually in use (getting rid of the dead ones is another technical debt to pay off), but I have to look at each and every one of them.

I’ve been at it for nearly a week, and I’m about half-way through the first pass. Figuring out how to arrange things took a while, and I’ve made some false starts on the way, but now I think I have the setup under control, and adapting a program is fairly quick.

Even after I finish this project, I won’t be out of technical debt – I’m finding other problems that should be fixed, but they’re less urgent (little things, like making “verbose” and “quiet” options consistent through the code). Perhaps my successors will want to tackle them!

My biggest high school mistake

Back when I was in high school, every boy was supposed to take at least one year of Shop (and every girl was supposed to take a year of Home Ec).

I didn’t want to take Shop; I never played with tools as a kid and didn’t see any reason to start. I convinced the administration that it would be just fine for me to use that period for the Literary Magazine (most people on staff used their Study Hall period for that purpose) – I got away with a lot of things back then.

Boy, was I dumb!

Over the years, I’ve learned some of the basics of home maintenance when I had to – but I’m still not comfortable with tools and am always worried when I have to deal with electricity, and I wind up calling in contractors for projects that I feel I should be able to do myself.

It’s frustrating. And expensive.

I guess it’s too late to tell high school me to develop some manual skills, not just academic ones!