August

Taking Temperature

I’m back in time to be slapped in the face by a heat wave, even if it’s only going to last two days. Here in New England, a hot day is anything above 90°F, which the desert dwellers of Arizona sometimes scoff at us for, until they experience the 90s with full humidity, and your only relief coming from a 20 year old window unit A/C shoved into a 110 year old window frame. Like mine.

I learned in Newfoundland that anything over 75°F will have people there gasping and wishing for cooler temperatures, which I found endearing. When I mention where I live to others from the States, I can tell from their reaction that they envision us wearing a full fur-lined jacket, mushing a team of dogs pulling a sled across frozen tundra while cheering for the Red Sox. The average Newfie apparently hears “Boston” and asks what it’s like living in an equatorial rainforest while cheering for the Red Sox. All is relative.

And days like today do tempt me to pack the car back up and head for the ferry again.  I’ll write something more extensive about Newfoundland later, that odd little outpost in the North Atlantic that I found pretty excellent.

Tabroom’s Unknown Founder

I was greeted during the northern peregrination with an Instagram message from David Alpert. Few in debate know this today, but David is responsible for the co-founding and most of the original code of the very very first edition of Tabroom. We collaborated on a project for a databases course in college.  The course was supposedly a dead-easy A, but honestly I learned things from it that I use all the time even now.  A lot of the so-called gut courses were like that; since they didn’t waterboard you with reading and problem sets, you actually solidly remembered what they do teach. And among that course’s legacies is Tabroom.

Back then David was in his fourth year of a computer science degree, while I was in my second CS course. I was a psychology major, which I picked half as a default under pressure of a deadline. I wasn’t very good at college, to be honest. At that point I definitely was no programmer. But I did have a fair few practical computer skills, in setting up servers and databases and the like, the legacy of a part time job working for a wonderful loose cannon of a mentor who ran the EE & CS departments’ research clusters.  Peg also makes great barbecue.

So for that DB course project, I set up the infrastructure, while David wrote the lion’s share of the actual code. I told him once I felt I was cheating him a little; he assured me that the parts I’d handled would have been a pain for him to do. Maybe he was lying to be kind. But we did indeed get that A.

I think we once had visions of releasing it for profit into the debate world; it is traditional for 22 year olds to believe they can profit off providing services to speech & debate. For the most part, you can’t. This pond is too small to catch enough fish to live off of. And people drift after college. David wandered into the world of Google and High Tech. I worked in Low Tech, but kept tinkering around the edges of Tabroom, mostly because I was also still coaching extemp and debate.

Only then did I become a programmer. I learned a lot about writing code by reading his. Frustration was another good teacher. I’d hit a problem, and teach myself to solve it by searching, tinkering, and testing. And no small amount of swearing.

None of his code survives; in 2004 for various good and bad reasons, I tossed it all and rewrote the system from the ground up. I’m doing the exact same thing now with the Project Rewrite, with the added complexity of writing it in an entirely new language.  I remain jealous of my past self, because I did the rewrite then in about six weeks. But in 2004, Tabroom’s functionality was maybe 1/20th of what it is today, and I was a lot stupider about software.  I suspect, on grayer days, that my better understanding of the difficulty of the problem is part of what’s slowing me down today.

But it was nice to hear from David! He lives in DC, which is where NCFL will be this year, so I’m going to try to arrange a visit; maybe he can come to the tournament and see the chaos he launched. Hearing from him also makes me think of writing a more complete history of Tabroom, to document the odd twists that led me here. I do fear it’ll end up reading like a broody autobiography, but that is the opposite of the point.  The community tends to see this project as synonymous with me the person, but that’s fair neither to me nor to Tabroom’s other tinkerers.  I’m a little more than just Mr. Tabroom, I think. But for now, Mr. Tabroom tips his hat to David Alpert, the Unknown Founder.

Systems Full Steam Ahead

When vacation ended, and the tears dried up, I confronted Mount Workload. Unlike my brave houseplants, this mountain only grows larger when I absent from it. And of course, now that I’ve said all that stuff about how I dealt only in systems at first and only now primarily write code, I spent the last two weeks mostly fighting systems problems.

I am going to have to schedule a mid-week downtime sometime in August to perform some necessarily upgrades and patches to the ol’ database server.  It’s also been running on the same cloud hardware for a very long time, so I’ll take this chance to move it to something newer.  That requires me to bring the whole shebang down, but an hour or two on a Wednesday morning in August shouldn’t hurt many folks, I hope.

I’ve made the staging server, https://staging.tabroom.com, much snappier.  I had thrown it up on an old raspberry pi I had lying around, which for you civilians in the audience is a credit-card-sized mini computer popular with hobbyists for micro projects, like “build your own TV streaming device” type of things.  I’d put up the staging machine for my own benefit, largely, but its value as both a testing flatbed and a place where folks can log in and get their data as-of-this-morning is pretty strong, as is having a copy of Tabroom running outside our data centers.  So I moved it to my previous laptop, which is not as powerful as my current one, but way faster than a six year old Raspberry Pi.  It also runs some stuff for my personal use, and I can’t guarantee it’s going to be perfect on uptime. It does, after all, depend on my home internet, in that same 110 year old house with an 110 year old electric system.  That’s life in New England.

And finally I’m about to finally test and deploy an auto-scaler. What that means is a program that looks at how many tournaments, rounds, judges and entries are going to be active on Tabroom in the next few hours, and spinning up enough server resources to match. Until now I’ve done this manually, which has all kinds of issues; you have to guess well ahead of time, so you end up spending more money than needed.  I can’t watch it 24/7 so the system won’t react to changes at odd times. And then one weekend I straight forgot to do the scaling, which earned me great embarrassment, and another staffer got tasked to remind me about it every week.

It can be hard to write rules for a computer to follow based on the anticipated usage of a custom software program; it does us no good if we try to let Tabroom figure it out itself but it consistently underestimates what we need, and I end up having to intervene anyway.  Or it could run wild and we’d have beautiful performance — and generate a $150,000 server bill. So it wasn’t the type of thing I wanted to just spin out into the world during the postseason national tournaments.  I wanted to test it more extensively and really beat it up.  But I think we’re just about ready for a deploy.  And the best part is, it can do something I wasn’t really able to — the system will monitor how much actual capacity we are using at any given time, and if it spends more than 15 minutes at 80% it will scale up further on its own.

At least, so I hope. Once more into the breach, dear friends.

Finally, I’ve have to deal with some housekeeping. One of the less pleasant ones is a pile of emails from people I like telling them I won’t be tabbing their tournament this year.  There are limits, alas, and if I’m going to plow through as much of this rewrite this fall as I’m hoping, those limits have to be stringent ones.

And then, hopefully, dreamily, soulfully — I’m going to try to spend the rest of August hacking away at another platform altogether.