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, that was supposedly a dead-easy A, but honestly I learned a lot from it that I use all the time these days. And among that class’s legacies is Tabroom.
Back then David was in his fourth year of a computer science degree, while I was in my second CS class ever. I was a psychology major, which I picked as a half default under pressure of a deadline. I wasn’t very good at college, to be honest. And at that point I definitely was no programmer. But I did have a fair few practical computer skills, setting up servers and databases and the like. So I set up the infrastructure, while David wrote the lion’s share of the actual code. I felt, and told him, I felt I was cheating him a little in this; he assured me that the parts I’d handled would have been a pain for him to do. We did indeed get an A.
I think we 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. The pond is too small to catch enough fish to live off of. And people drift after college, and David wandered into the world of Google and High Big 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 really 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, though 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 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.
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; either to see him, or maybe he can come to the tournament and see what chaos he launched. It also makes me think of writing a more complete history of Tabroom and account of the odd twists that led me here. The community tends to see the project as synonymous with me as a person, but that’s fair to neither Tabroom’s other tinkerers, nor honestly to me. 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 electric system that matches. 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 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.