September 2025

TRAVEL

Headed to Kentucky and Long Beach for tournaments.  Depart October for a Taiwan visit, which is half tournament and of course half not; this year I’m spending all my discretionary time in the southern half of the island, which I neglected before.  I tend to like secondary areas better than capitals, though I did enjoy Taipei last time around.

And then I will be flying the improbable route of Taipei/Taoyuan to Des Moines for a staff retreat gathering. I don’t mind Des Moines, though some part of me wonders how long it’ll be until we lose critical mass of staff located there and can have a retreat somewhere else? It’s already just a plurality, not a majority, who call Iowa home.

TABROOM

Tabroom has been more rewrite than not of late.  I’m wrestling with design, in both senses.  Tabroom will get a refreshed visual layout without it looking too different from what’s there now; hopefully that’ll mean no loss of muscle memory but a nice visual look. But that also means a lot of nitpicky back and forth about “Okay how does that look?  Awful.  What if I made the color lighter? Oh that’s worse. Maybe if it was darker….Ugh.  OK try green?”

And that, kids, is why I took creative writing for my arts requirement in high school.

I’m also wrestling with design in the technical sense.  A lot of any web app looks the same as all the other parts — pull data out of someplace, format it in some familiar way, shove it to the user.  That’s all I’m working on now.  There are eight hundred ways of doing it, but only a few of doing it properly so you minimize what we call anti-patterns in tech.  You don’t want to write code that is repetitive and dull; it’s bad if the way you draw a menubar, say, is in 800 different files.  Then you can’t change your menubar system without changing those 800 different files. But if you go down the road of never repeating code too much, you end up with every page requiring eighteen pages that define what’s on it.  The table is set here, the header is set there, the sidebar is set over that place, and in order to change something you need fifteen tabs open in your editor.  I hate that.

I sometimes think that modern software developers are paid by the source file because they go very heavily in this direction.  The religion has a name: logical separation of layers.  I admit I’m an idiosyncratic, self-taught programmer, but it never struck me as very logical to have the command to pull the data, the processing of that data, and the formatting of that data all live in three difference places.  How often will you really work on one part of that and not need to see the others?  How often will any element of that really be re-used by some other part of your site?

Not much.  So I do tend to default into “all the things you need in one place.” But since most developers are adherents to the religion of Separation, frameworks and tools fight you if you go too hard down that road. So I basically negotiate, and find a way that the tooling won’t hate, and neither will I. It doesn’t always happen.  Some frameworks are “opinionated,” which means they enforce standards of formatting and cleanliness that the language itself does not. If an opinionated framework lines up with your opinions, then it’s great!  If they don’t, it’s pure hell.

PALMER THE HIRING MANAGER

Strange times afoot; we’ve posted a job description for a junior developer to work with me.  It’s been a ride so far. Hiring for a tech job in 2025 means wading through 200+ resumes which are utterly non specific to the job as posted, in either the tech details. I’m pretty sure 90% of these are AI agent submissions where the person in question never read the job at all. AI resumes are ‘tailored’ to the job in hilarious ways — some claim to have used Tabroom to manage tournaments at their current job of BigBank, Inc.  A few were specific to speech & debate — but not programmers.

But now we’re onto the talking-to-humans stage of things, which  means we can be more certain the answers come from people, but it’s also much more time consuming. Such fun, at the start of the season!  But it takes about six months to really settle into a tech job — there’s so much domain specific knowledge to learn even when the languages and techs are all familiar, and they’re never all familiar.

And then comes the hardest part; I’ll no longer be able to manage my priorities and wishes and designs in a corner of my own brain.  Time to grow up, at last. Let’s hope the pains aren’t as bad as when I added a foot of height in a year back in 8th grade.

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.

June/July 2025

In most of the country, folks believe that the summer begins sometime in May, while the “official start” in late June seems to lag the weather.  But here in New England, the expectations line up with the reality; June can be a cold and rainy month, but July and August and even September can beckon with our only great weather, big bright skies, long days that only end reluctantly after long purple sunsets, giving way to the summer stars above swimming the Milky Way, and the ones below sparked by fireflies dancing in the trees.

I never stop appreciating it, even though hot weather is my less favorite extreme, but also because y’all stop having big tournaments and I can give it a rest for a little while.  May and June tend to be consumed with the national tournaments, and this year was no exception, but I did make progress with the rewrite here and there, both in the coding and the conceptual.  A fun challenge of rejoining the world of modern stacks from the ancient clay tablets and cuneiform I was writing software in before, is that the stack changes about as fast as my own code does.  They keep updating, and sometimes improving it — and sometimes not.  It can feel a bit like having to build a sandcastle on a shaky moving train.  But later this summer the Nationals distractions die down again.

This summer I head out on my traditional walkabout, in another typically nonsense wild arctic place.  Newfoundland is a big place with only a small coating of people, boasting two national parks, stunning coastlines, and absolutely terrible cell phone service coverage. I’m not worried about the GPS, because it appears they have three roads. This time of year I enjoy scrambling and walking to far off places, and pretending that I’m an unemployed lobster fisher who doesn’t know how to type.  And then I have a few weeks of seclusion and summer vibes where I can maybe, just maybe, roll out a beta front interface that y’all can see, play with, and yes — break.

In final news, I did write a monthly Tabroom update but somehow it didn’t get out.  I don’t know what happened other than the normal header of “National Tournaments Absorbing Attention.”  But something about the process of sending them also seems to be taking undue work and effort on others’ part, which I do not want to create.  I’ll be figuring out what’s wrong there and trying to unclog the plumbing so they’re more regular next year.

For now, au Canada.

April 2025

April finds me on a short trip to the UDNC at April on the first weekend, then a rapid fire sequence of running the online Last Chance Qualifier in Des Moines, going to help CHSSA State in Los Angeles, and then the Mock Trial nationals in Phoenix in early May.  Phew. Then later May sees me at the NCFL tournament in Chicago, and then of course Nationals again in Des Moines.

But there are lights at the end of many tunnels.  The form of the new Tabroom interface is beginning to look like something real. I’ve even been nitpicky about text alignment in several places, which is a sure sign of maturity in design.

The long dark of New England winter has begun to lift, although as I write this there’s a morning crust of overnight spring snow on the ground.  That’s not unusual, alas; we’ve seen snow four Aprils of the last five, I believe, but it’s been a while since we’ve had a significant amount.  That said, my freshman year of college delivered two feet of wet heavy snow on April Fool’s Day; the week before was in the 70s.

And yes, the end of the year approaches. I’ve made it official by planning the annual July walkabout trip in a remote location with extremely poor phone service.  You’ll find out where when I post it to Instagram or something; it would not do to have to deal with the relentless Tabroom paparazzi on location like that.

As if.

February and March 2025

TABROOM

So we’ve launched an actual formal Tabroom newsletter!  I’ll still talk here about the process of software development in the context of what it means for me, since this space is just mine to ramble and update folks about my goings on.  Leaving out my day job omits too much, and there’s always things I’d like to say that apply more to me than to the software. The intent of the newsletter is for people who are more interested in this as a Tabroom user than a Friend of Me, which is fine.  And it’ll still go out in my voice, I’m told.

If you’d prefer just the Tabroom announcements, please sign up here.

At any rate, I’ve started tinkering with TanStack Query thanks to Hardy’s recommendation, and while it simplified things, it did cause me to retread on some conquered ground as it were.  I’m going to have to stop doing that.  The challenge with a rewrite is when your drive for the ultimate purity in code means you just keep rewriting the first parts over and over again.  Coming from a stack that hasn’t changed or had new tooling since 2010, I’m not used to avoiding the temptation to switch to the latest shiny tool; and in JS world that tool is released every two weeks.

In operational land, I made it through the Stanford+ weekend (26,000 students & judges) and the Cal/Harvard weekend (23,500 students & judges) without a blink.

WHEREABOUTS

I’m taking my traditional sojourn after the tournament up at the North Coast, in Fort Bragg this time.  Fort Bragg is festooned with signs protesting a proposal to rename the town so it’s no longer named after a Confederate general.  The name predates the Confederacy, as it happens, but not for great reasons.  It turns out ol’ Braxton Bragg was the former commanding officer of the person who built that first fort here.  However, the fort existed to exterminate the local Indian tribes, to clear the land for more redwood logging. So even if it’s sorta free of the Confederate association, it runs smack into another stain on history.

The keep-the-name crew is mostly focused on the fact that the town has never felt a real connection with ol’ General Bragg in any of its traditions, tourism or marketing. And changing the name would cost a pile of money that’s not insignificant for a small town on the remote coast.  Personally, I think their best unmade argument is that Bragg was such a horrendous general, his efforts may have helped the North prevail more effectively than many Union officers could claim.  He lots a ton of battles, opening the door to Sherman’s march, and in the process was so hated by his own soldiers that they plotted and attempted to assassinate him multiple times.

But at any rate, the coastline remains a strip of beautiful hills, trees, fog and dark skies, which are all things I relish, and are hard to find. There are far too few places that humans live where the night is allowed to be dark, and the air is filled with only the sounds of oceans and frogs.

March will find me in Wilmington in the early part of the month, and LA in the middle, and probably hiking in New Hampshire or Maine for the spring melt waterfall season, when a muddy stomp is rewarded by torrents across New England.

THE OTHER STUFF

I’m re-reading A Prayer for Owen Meany, an old favorite I haven’t read in far too long.  Not much writing otherwise these days, because I’ve been trying to get my photographs in order, and helping the neighbor clear out some Old Crappe from our shared basement. There’s an understandable impulse when trying to empty an overly full basement to find new homes for all the items therein; surely some of these 138 VHS tapes would have value to someone who likes the almost-retro!  But at some point you have to realize the energy expended in finding them new homes surpasses their worth.  I am in the self appointed role of “I’ll find a place that wants them or toss them for you” which makes it psychologically easier, I think.