the loneliest moment

A paradox of debate is that an activity where thousands of people argue with each other at once can still leave us lonely.

I don’t buy into personality type tests, but I am certainly an introvert. Constant exposure to people wipes me out, but when I go to tournaments, my place is usually at the center of the storm. That costs energy. So, after all is done and I fly or drive home, I’m ready for a break from all you screaming performers.

But I live alone. Before this year, I’d return home to an empty and cold house and it would be too quiet, too fast. The stampede of debaters and judges who all rely on me for assignments and results were gone, and I’m just left with an echo. It’s strange to be lonely at the same moments you most want to be alone, but on those Tuesdays Afterwards? I was.

But that was the Before Times. The age of lockdowns has been unkind to us all. I’m a loner, sure, but also a nomad: I used to travel constantly, and even when I was home, I’d leave the house every day, if only to go work in a coffee shop or the library. The buzz of people around helps me focus, and the journey forms a boundary between work and not-work. In other words, I need people around that I can ignore. And it’s a rare introvert who can make do without human contact at all. I’ve found myself talking back to podcasts, or pacing around the living room for an hour at a time, or wasting gas just to change the scenery.

It feels like the worst year of our lives, even for those of us who’ve so far avoided direct harm from the greater wounds 2020 offers: the virus itself, the poverty it has sparked, the smoke and flames of an entire coast ablaze, or the constant reality that police can end black lives and stay free. Against that balance of misery, my own debts seem minor. But the lesson of a lonely time is that sometimes, no one is there to look out for you. Right now, no one can be, even if they wish to. You have to be careful of your own troubles, even if others have it worse. Being lonely and down might be the baseline right now, normal by majority vote. But it is no less healthy or easy to shoulder.

I bear the dubious honor of being Debate Famous. There are several ways to become Debate Famous – you can win a lot of tournaments, serve on a lot of tab staffs, national boards or committees, or just be obnoxious for long enough. Some manage all three! But I took perhaps the easiest route, and joined a tiny band with few entrance requirements and even fewer members. I am one of the Techies.

I cheat in calling us a band, for one of the defining features of a debate techie is that we all drift on separate islands. Each debate techie is tied to a Project. These projects are usually the residue of a hobby idea that got out of control. Tabroom is certainly that: it now runs 3,000ish tournaments a year and serves millions of hits per weekend. It’s a luxury beyond telling that the NSDA can make it my full time job and dedicate others to helping with the tsunami of emails that results from its popularity.

But at the end of the day, even with that support behind me, I’m still alone. Nobody understands Tabroom and its internal workings half so well as I do. If something major breaks, I can fix in minutes what might take anyone else several days. Speech & debate is never so lucrative that our scant resources can hire me a co-programmer; they’ve had to stretch to underpay me enough to do this full time. And that’s the root of my Debate Fame, because I am Tabroom, and it is me, as far as the debate world sees it. Every user of Tabroom therefore is one who relies on Palmer.

Such “fame” comes with a price, for technology is brittle. From time to time, some hidden capacity limit is reached, or a buried mistake in code I wrote six years ago decides TODAY IS THE DAY! My machines start to stagger, and disconnect, and lock up. My phone starts dancing with messages, half of which start “You probably already know about this, but… .” People have no choice, because only I can type the keys that get your tournament started again. Sometimes I fix it immediately, and people barely notice the trouble. Sometimes it takes me an hour, or two – or four – to find the illness and its cure. And those times are the loneliest moments I know.

If you were in a tab room with me, you’d just see me beating the crap out of my laptop keyboard. You’d hear me mutter incomprehensible nonsense to myself, as if I were chanting spells to appease furious eldritch demons of silicon and resin. I’d be zeroed in, focused on the screen, phone definitely muted. But I’m still utterly aware of you all. I can feel your eyes, the eyes of each and every one of the tens of thousands of you who rely on me to continue your tournament day. You might not know where I am, or even what I look like, but I can feel your eyes all the same, in the place where my neck meets my shoulders that tighten and coil with the strain of it. And I can’t step away, I can’t delay, because there’s no one to hand the problem to, and thousands are waiting.

It’s a pretty steep personal cost, this consequence of the realities of our activity, and the ever insufficient resources we have to stretch to meet our problems. Software is delicate, with so many layers and complexities that are impossible to fully predict or understand. Imagine an engineer designing a bridge: they carefully calculate known stress factors, material strengths, expected weights and the like to arrive at a construction whose weakest point is much stronger than the load it will bear. Now make the engineer do it without knowing what material half the bridge is made out of. Throw three hundred hollow rivets into their supply. Then build sixteen more bridges stacked atop the first one, all with unknown materials and different designers. Would you drive across those bridges? But that’s software development for you. Thankfully, unlike our hypothetical stack of bridges, nobody dies when speech & debate tech collapses, though you wouldn’t know it listening to people sometimes.

Because of this constant ticking disaster we call software, companies can spend billions on people like me. Vast teams of techies find and fix expensive problems, but those billions can only make outages happen less often, not never. Google had serious downtime just two days ago, and Tabroom’s entire annual budget is a rounding error in their departmental catering bill. But Google’s wizards are not underpaid, or alone. Their problems are greater in size, but not much different in kind.

When Debate Techies get together, that’s what we talk about, those lonely moments. You may imagine great rivalry between Speechwire and Tabroom and TRPC. There is none; I can think of no greater personal nightmare than Speechwire disappearing and having to fill even a portion of the gap it’d leave behind. But even if we did view each other as the Enemy, you would never see me laugh at Ben when Speechwire goes haywire, and he would never do the reverse. The price of admission to the little club of Debate Techies is understanding what that moment feels like. You cannot see another suffer it without sympathy and remembering your own terror.

The era of covid has affected debate like everything else. Online debate was always a side hobby project of a few visionaries, but never got much real traction – until suddenly in April it was everything. Every member of the little band of debate techies had to drop all plans and change our entire world overnight. 2020 Nationals was going to be the first all-online balloted Nationals anyway, but overnight that was no longer a Project but an Assumption. Priten suddenly joined our ranks with his terrific Classroom.cloud project, and therefore saved the TOC and Nationals both. He got his very own baptism, with a slowdown and lockup the first day of Nationals; I spent those moments in the Des Moines office preventing people from calling him. I know.

But Classrooms is based on Zoom and therefore can be pricey. Large expensive tournaments can swing it, but in the world as it existed in April, the type of small local tournaments I grew up in – the Massachusetts local that charges about seven bucks an entry – could not begin to afford it. Circuit kids may mock those types of tournaments, but speech & debate wouldn’t exist without them. And so, we set about trying to find a way to keep them alive, and the result is NSDA Campus. I’ve helped with Campus at the edges, but again all speech & debate tech must be lonely, and this burden belongs to Hardy.

It turns out spinning up a custom private video conferencing on-demand service given about 3 person-months of work and a shoestring budget isn’t simple. So we’ve had our problems. The first couple of weeks went fine, but then we hit a threshold of usage that triggered an odd undocumented condition in our proxy service — the traffic cop that keeps all the traffic for your particular PF round going to the same server so you can see your opponents and judge. The proxies went nuts and started sending people anywhere and nowhere. It was not because we didn’t have enough server capacity — we’re running our servers on Amazon’s cloud, which also hosts services you might have heard of, like “Netflix.” As I write this 128 machines are serving Campus rooms just fine. The flaw was a condition buried deep in someone else’s code that would only manifest when we had more than 400 rooms going at once. It’s fixed and behind us.

Today we hit another, tripped by a new threshold of 3,000 users. Hardy found these new issues, and fixed them too. Because that’s what we do in the little club of Debate Techies.

It’s hard to test these things. We don’t employ a couple thousand people who can be drafted to all join online rooms at once, just so we can see what breaks. There are ways to simulate that type of load in testing environments, but setting such things up is time consuming too, and each of us lonely techies has an enormous list of problems to deal with right now. It’s hard to find time for the future’s problems when when we have so many already on fire in the present. And of course, only one of us can solve most of them. Hardy is the person who understands my tech province best, and vice-versa – but if we traded to-do lists, our productivity would nearly vanish. The difference is like translating text into a language you’re fluent in, versus one where you have to look up every 5th word.

And so was Hardy was condemned to another pair of lonely moments for each of those bugs. He knew they’d come. We all do.

Because today the demons came for him and not me, I feel more free to speak, to point out the underlying realities of our activity, and to shed light on the effort we’re making to keep our speech & debate circus going despite a global pandemic. The type of tech required to do debate online is only barely ready for what we’re asking it to do. If covid-19 hit 10 or even 5 years ago, speech & debate would simply have shut down. As it is, we haven’t caught our breath. Everyone in the debate tech world has been running full tilt for months now, trying to get this all to work – and sometimes, we fail. We can promise you effort. We can never promise perfection. Neither can Google and its billions.

But perhaps, on behalf of the other members of my little tribe, I can ask for more clemency, at least in public. It is unkind at best to churn out memes about a service that someone just spent three days not sleeping to fix for you. It’s unwise to hit Facebook to air grievances or unfounded theories as to what the issues are. And most of all, it’s bad form to suggest we give up on the whole project, and give up affordable speech & debate tournaments with it, because of a few software kinks that made you wait around a couple hours – at home, no less – in the early days of an immensely complicated project that did not exist and was not planned for six months ago.

When you do so, you underestimate the realities and the economics that go into the projects that us lonely techies are keeping alive so that debaters can debate and speechies can speak. But more than anything, what you do most of all is take our loneliest moment, and make it lonelier. In the era of covid, when the gaps between us in real life are so huge and enforced by a deadly and invisible enemy, we should be careful before adding to another’s isolation.

And do remember, none of us in debate tech are in it for the fabulous wealth and prizes. We do this because we’re tied to the activity, and find it worthwhile to make your competition work better and faster in normal times – or to work at all, now in the age of pandemic. We do it because I too once paced in prep rooms before giving extemp speeches, while Priten and Hardy blitzed through policy debate rounds and Ben prepped his IEs.

Any of us could expand our wealth and free time by leaving speech & debate, and the lonely moments it causes us. We stay because of the satisfaction and our connection to this community. So consider please the living, breathing, lockdown-trapped & lonely person at the other end of that link before you decide to trample on us because the fragile tech we’re trying to build snapped today. Even if the meme is funny.

Solidarity

I was born into a city as it started to die.

That takes a long time, and it may still recover, but it by the late 70s, Fitchburg was fading in all the ways that more famous cities in the center of the country would. Fitchburg was a place that worked with its hands, turning out machine tools, paper, wood and the like. It was a busy booming city in the late 1800s. The city carved the Hoosac tunnel out of a western mountain to build a train to Albany and beyond. The New York Times was printed on its paper, along with others up and down the coast.

And like many other places that worked with their hands, a haze of decay began to set in during the 70s and 80s, as factories closed and were not replaced. Poverty is now around 20%. Grand old buildings sit quietly, unpeopled, crumbling for want of a few coats of paint. If either end of Main Street were blocked entirely, no traffic would pile up. It hasn’t been hard to park for decades. The population as a whole shrank by a tenth, which yet understates the change. Almost everyone I went to school with then would leave. About three to five generations of my ancestors in any direction were born there, but my classmates’ children were mostly not.

My age cohort was also one of the last where schools were mostly full of white kids. A large stock of empty cheap housing was a draw, even in a poor and wage-sparse area. As the white folks left for fancier places, we were gradually replaced by others. By the grace of a local quirk, most of these newcomers were not in fact immigrants. The vast majority were Latinx, and despite many coming from other places, they were broadly labeled for their majority: The Puerto Ricans.

My parents and their siblings didn’t go to school with any kids who spoke Spanish. I went to school with a few, though that was an era of separate bilingual education, so we didn’t know any of them. Those kids weren’t in our classes, and we were separated by language. And beyond that, I was in no way encouraged to get to know them. They didn’t have names, or individual identities to us, and the adults around us were careful to keep it that way.

These white adults were anxious for their jobs and their homes, and saw both declining at the same time as this new population moved in. So they associated the decline with the people. And the lessons passed down to us were as clear as they were horrible: these different strangers were Ruining. The. City. They weren’t even working; they were instead sitting around at home sponging off the system, absorbing welfare benefits that were put in place for Us, not for Them. They were dirty, immoral, incomprehensible thieves, and their very presence an affront to all that was good and just in the world.

And so, it was The Puerto Ricans that were used to teach me racism. This message was never laid out all at once, of course. It was collected in brief asides, comments that were clear only in context, snide remarks half concealed around the kids. But it was made clear to us all that the Puerto Ricans were the lowest of the Different. The Laotians and the Vietnamese were war refugees, and were here because they sided with America. We had more black kids around school than most New England towns, but that’s not saying much, and they weren’t visibly worse off than anyone else. I only later learned the hidden ways the world deals harshness to black kids. Overall, in Fitchburg in the 1980s, it was all about the Puerto Ricans, who ruined all they touched.

“Puerto Rican” is not a pejorative term. It simply denotes someone from Puerto Rico, after all. It’s the actual name, of the actual island. But I cringe to write it and automatically search for an alternative phrase, because as I grew up, it was voiced as a slur. It was spoken in that tone, with that heat, and with that intent. It was sometimes used as insult. I could almost wish the adults around me had used actual slurs instead, so the real term wouldn’t carry this fearful weight for me.

Of course, this picture of a people left out an awful lot. I didn’t know they were US citizens by birthright until we hit the Spanish American War in 8th grade history. The history of the US’s treatment of Puerto Rico also undermines any view that they weren’t owed the benefits of American citizenship. Hurricane Maria and its aftermath are only the latest testimony. Also, welfare benefits were never generous enough to provide that lavish lifestyle — after all, if welfare was so good, why didn’t we sign up? A good lifestyle on welfare was only possible if you cheated the system a bit, which we knew because white people in the family had done so before. But somehow, this sin was far worse when done in Spanish.

The Puerto Ricans tended to live in the worst housing on any street, with a few too many people per apartment — not a sign of excess wealth. The jobless rate among them was higher than white people, but not so high that the claim “none of them ever work” could be defended. As actual knowledge replaced the lazy folk wisdom, the collective sins of the Puerto Ricans of Fitchburg were reduced to “their music was loud sometimes.” But then, so was ours. And man, can they throw a killer barbecue.

I tried to say as much, and got nowhere. My family has not known Puerto Ricans personally, except a few people they worked with who were clearly The Good Ones, evidenced by their having a job. But “seeing people lying around all the time” was good enough evidence to support the narrative. Those people were moochers and thieves, and that was that. After all, if you want to believe something, any proof will do. And if the Puerto Ricans weren’t to blame, that would present some uncomfortable questions. So, anytime we’d pass some Puerto Rican people out on the porch or something, the line was “Look at them, just sitting there without a care in the world, while we work to support them.” I’d hear that often enough. On Sundays.

But as humans grow up, we don’t just understand things in isolation. Part of growing up is putting the things you learn into a broader context. The mind relies on categories, grouping things together to understand them more quickly. That’s part of why racism is so lazy and yet so hard to overcome. But these judgments go beyond race: the picture being painted with snide remarks and half-concealed hatreds was a clear to any 10 year old. It was a lesson being taught to tens of millions of other kids in the 1980s by parents fearing the change falling upon them: to be different is to be less. A generic white person is the pinnacle. Everything else is a faded and flawed copy. The more flaws among your neighbors, the worse off you’d be. It was a lesson I held onto for far too long.

I adopted my mother’s newfound judgmental strand of Christianity, and the conservative politics that resulted from it. By then, I’d gotten scholarships, and headed off to increasingly prestigious private schools. The academics were great, but I didn’t fit in well. I remember individuals would often be kind and open to me, but groups usually were not. And I was set apart politically as well as socially. Mom’s flirtation with evangelism didn’t go very far, but the politics were more stable. And I loved to be contrary, seeing absolutes and truths everywhere in the rigid way of the intelligent teenager. The timid liberalism of those private schools, with its placid faith in the system to do right, had no answers for me. Private school kids, and most of the teachers, didn’t understand places like Cleghorn or the Patch, and so they couldn’t address the real source of my fears and prejudices. Their talk of race and economic relations was rooted in the black/white divide of Boston and most of the rest of the country, and that seemed bizarre and irrelevant to what I believed. I knew something of their world, but they knew nothing of mine, and so they were unable to move me.

But then, I would end up moving myself.

There was a hairdresser named Keith who rented an apartment from my grandmother and came over a couple times to give us all haircuts. My uncle would mention his name and AIDS an awful lot. I didn’t know much about AIDS then, other than it was deadly, and had something to do with gay people. So, I was afraid of Keith. I didn’t know much about gay people either, beyond the bare facts of who they “liked”, but I definitely knew Keith was Different. Maybe different like the Puerto Ricans were different. Bad different. And a very few years after Keith moved on from my grandmother’s building, I came to know that I was Different too.

What followed was a story too typical of my generation, of sleepless nights learning to fear to love anyone, of trying to explain it away in a million ways, of stealing glances when I thought nobody was looking while everyone else got to leer openly. Of pretend conversations about pretend girls with pretend boobs. Of remembering my young childhood insistence that girls were icky and I’d never marry one with a twist of irony. Of seeing relationships and love as for other people, not for me, as the hand of the God would definitely punish me in some awful way, probably involving hairdressers with AIDS. If I ever gave into it. Which I tried very hard not to do.

And of knowing, most of all, that now I was Different.

And the adults around me, they hated Different. They were unfair to it, harsh to it — mocked it, avoided it, and penalized it. I was already different in enough smaller ways to understand that. I caught enough grief for reading books a lot, and being awkward physically, and having ideas nobody else around had, even though they also acknowledged these qualities were likely to help me out in life. They knew these were signs of a smart kid who might go places, but wouldn’t engage with them. I’d get blanket expressions of approval for Being Smart, but these were belied by criticism and poking at the particulars. So, I learned to keep these differences to myself, since I’d at best only be laughed at for expressing them. And if I could be mocked for small differences, what would a huge difference do to me, if it came out? “Reading too often” had nothing on being gay.

I did the only thing I could think of. I boxed it all in. I learned to keep the greater part of what I was going through from them, and everyone else. And even from myself. It pulled us apart, of course. One of the first lies a gay kid tells himself is that being gay doesn’t affect your personality, it’s just who you like for sex. But of course, that’s only possible to believe if you’re a teenager who has no personal idea what love is yet. Love goes far deeper and affects far more than just sex. So as I hid the parts of myself related to being gay, I hid the parts related to love. And therefore came to hide nearly all of what I truly am.

But my internal life changed. I gave my heart to someone. It was given back. He didn’t have a choice; my gaydar wasn’t so hot back then. So I was deprived of a villain in my first failed love story, and was never able to properly hate him as might have been better for me. Instead I spent an unreasonable amount of time being morose and weird about it. However, it made me realize how deep being gay ran. The bullshit line a conservative gay kid clings to is “I’m not a gay person, I’m a person who happens to be gay.” But it was clear to me now, love’s not that simple. I couldn’t pretend that to myself any longer, and giving that game up turned my world around.

I didn’t abandon my politics immediately, but they were much less central. My college friends would have been surprised by my high school polemics. I was reconsidering everything, starting with my heart, but eventually I worked outwards. I ended up in the wrong major as a result, but so it goes. There’s no good time to go through a huge, personality redefining crisis. I rejected the prejudices I’d been handed about being gay, came out in college, voted for Al Gore. And I started to question a lot of the other attitudes I grew up with. Now that I was okay with my Different, I started to reconsider the other Different people. I started to learn the lies behind the racism I was taught, and how similar they were to the lies I was taught about gay people. I can’t claim to be racism free — no white American does so without generous self-delusion. But, I’ve learned at least to recognize a lot of it and fight my impulses towards it.

But I still lead a dual life. I grew far more cosmopolitan, far more accepting, and far better able to embrace differences instead of rejecting them by reflex. But I never shared this outlook with the family whose prejudices I had to overcome to gain it. I tried a few times, halfheartedly, but settled into a truce where they didn’t get their ideas challenged, at the price of not knowing the vast parts of me that didn’t fit with those ideas. They know only a shell, not the full me.

The election of 2016 did not surprise me; I knew America was capable of it. Trump is what poor people think rich people are like, a self promoting liar and charlatan who proves every day he knows nothing and does not care, and his fans still love him for it. I knew this country was capable of deeming him the best of us and giving him power. So no, the election did not surprise me. But it did disappoint me. It scared me, and scares me still. We have a racist in power, who doesn’t even understand the law much less respect it, and who lets his aggressive hostility rule him. The same type of quick false judgment that made my family look down on people for not working on a Sunday is now setting White House policy. And, a good chunk of my own family had voted for him, both proudly and reluctantly, out of those same old impulses that scared me of AIDS and loud Spanish music and difference.

It was a step too far. I snapped. I haven’t spoken to most of them since.

Trump has been a remarkably hostile president to the LGBT. But he’s been so much more horrible to others within the LGBT community, and worse still to other groups of people, I almost don’t dare bring it up in reference to myself. I wish I could claim the worst of it, and spare those more vulnerable still. There are concentration camps full of children in this country. There are now laws in place saying others’ religion can be used to deny me just about anything. There’s a judge sitting on a stolen seat on the highest bench who’ll freely and gladly vote to downgrade my particular citizenship. We have a vice president who probably thinks in his deepest heart that I should be killed. And I still don’t have the worst of it.

The thing about building a big wall between yourself and other people is you don’t get too choose which side everyone is going to stand on. Where you place the wall doesn’t matter. Building the barrier is itself the sin. I’ve been outside enough walls to take no comfort from being inside theirs. The walls of the closet I was stuck in for too long, and the closet I walk mostly back into when I’m around them, are made of the same hatreds they taught me for Puerto Ricans.

The “freeloaders” and “welfare mamas” and various far ruder words they flung around built the walls of my closet, and fired the fears that kept me there far too long. So now, when you say those words and express those beliefs, you mean me. You can’t drop the n-bomb or the s-word or any other epithet without me automatically translating it to faggot. I can’t hear it otherwise. Nearly all gay people understand it so. Trump claimed strong LGBT support, but it was just another lie: McCain got 27% of the LGBT vote, Romney 22%, while Trump got 14%. He doesn’t attack the LGBT first, but most of us understand that when targets are being lined up we’ll make the list eventually. Any world made of walls is a threat to all of us, and we have to stick together in the face of opposition, of hatreds — and of family, be they ignorant, hostile, or both.

This message is partly an answer to an aunt who doesn’t understand boundaries — at all — and so has been drafting other family members as messengers to undermine my wish to have nothing to do with her. But that will fail. I no longer will crawl back into the box they created and continue to create — and vote for! Ignorance is no defense. It’s how we got here, after all. And I’ve tried to inform, and to teach. They can’t handle me outside of my box, and I won’t go back inside anymore. That would make of me “a person who happens to be gay.” Which is to say, a lie.

What’s more, I wouldn’t do it even without the personal angle. Trump’s language has an edge and venom unlike any Republican presidential nominee before him. I wouldn’t have liked President McCain or Romney, but I wouldn’t have been unable to accept them. But Trump is plainly different. And an election like this must have consequences for the winners. If you voted for an openly racist President, you can’t get pissed at me for treating you like the type of person who would vote for an openly racist President.

I can’t countenance that when there are children separated from their families no matter what their parents’ crimes were. I can’t be at peace with that when your hatchet man in chief destroys the last vestiges of welfare, health care for millions, social security, and more, while profiteering personally and inflaming racism. He calls people animals on a regular basis. He destroys relationships with our allies and embraces terrible dictators. His followers would make a dictator out of him. And you are marching along with those people, people waving the Confederate battle flag and even the swastika, people who’d have my friends deported, and many of whom would have me shot. Look at your fellow travelers, and wonder no longer why I won’t be there to quietly pass the turkey in November. To stand beside you is to stand beside them. I will not do it.

I had no choice over being different, and neither do the Black people in your state, or trans people in your bathroom, or Puerto Ricans down the street. The Trump faction label us together to blame us, to attack us, and in some cases to kill us. And in the face of that threat, solidarity matters. The only way the Different can last this thing through is if we don’t abandon each other. And in voting for Trump you helped build that wall you’ve been working on my entire life, the wall between the Different and you. Thanks to your wall, I can’t live on both sides at once. So, misguided Trumpist family, you’ve given me a choice. On one side of your wall are the people who share my burdens and struggles, the people who don’t dismiss facts with prejudice, who understand how privilege and power work, and who know what it feels like to be an outsider. On the other side sit you, the builders of that wall, the makers of the box I shoved myself into for decades too long.

The choice was not hard. And I do not regret it.

What your vote means

So you tell me you’re voting for Trump.

You may like him because he’s different, and you want a change.  You may like how he sticks up for you.  You might choose to believe the accusations against Clinton more than those against Trump.

Or maybe you don’t really like him that much.   Maybe you fear  his flaws, maybe you dislike how harsh and cruel he sounds, how cruel he is.  But you worry about the Supreme Court judges that Clinton would choose.  You worry about liberal control, about taxes and immigrants and health care.  At least he’s the bastard who agrees with you, right?

But either way, whether you’re his cheerleader or his reluctant voter, you’re voting for him.  And when you tell me that, you tell me a lot of other things.

You tell me you want a man in office who will try to take  rights from me.  You want me to once again be legally unable to marry, and so to be barred from the hundred little rights that come from that one big one: hospital visitation, taxes, foreign citizenship, shared benefits at work, adopt children.   My rights to these things don’t take away yours, but you’re voting to take them from me anyway.  You want me and other gay people to be second class citizens, punished by law for being born.  And when we lose those rights, when the law says we’re not equal, it tells the world that it’s all right again to fire us for being gay, to evict us, to beat us on the streets, to ignore us when we’re injured, to refuse us medical service even if our lives  depend on it.    All that still happens today, though less than it used to.  You’re voting to make it happen more.

Your vote tells  me you  want  a world where your children to fear being gay.  Gay people are different than other outsiders  in that we do not grow up in families of people like us.  We grow up with sleepless  nights, knowing the law and the world are against us, and fearing whose  side our families will take when they find out.  When  families don’t take their gay child’s side, we  are suddenly cast out on our own, in a country  with little help or kindness to offer.  You’re voting to give these children more reasons to fear, to hide, to doubt their own parents and families.  You’re voting for more gay teens to become homeless drug addicts and prostitutes.  You’re telling kids too ready to consider it already that they’re better off killing themselves.  And many will.

Do not deny  you want these things.  You’re voting for them.   Avoiding “Clinton’s Supreme Court” is the first motive  I hear from the most reluctant Trump voter.  He promises to nominate judges like the late Antonin Scalia.  So, my rights are the first and sometimes the only thing you’re voting against.  A court of Scalias would take as many rights away from me as they could.

The Trump campaign is all about believing that some people are by nature better than others.  If you’re white you’re better than Black.  If you were born north of the border you’re better than those born to the south.  If you’re straight you’re better than gay.   If your body’s gender matches your mind and heart’s, then you’re a Good Person.  If they differ, you should  be punished.  It doesn’t matter that none of these differences were anyone’s choice.  You got the good end of the birth lottery, and you’re voting for a guy who promises to make that pay off again.  Your vote means you believe America wins when the Right People win.  And Trump has made it clear where I stand a thousand times over.   I’m the Wrong People.

Don’t bother to say  I’m taking politics too seriously.  I don’t care if you root for the Republicans with as much thought as you root for the Red Sox.  Don’t try to score argument points with clever zingers.  My rights are too new and challenged by too many for me to relax about politics and not take them seriously. Don’t tell me about Clinton’s flaws and dark past; I have hope for her presidency, but she could be the weakest, most corrupt and dumbest Democrat alive and I’d still have to vote for her.  Your party has made my rights depend on it.  Your candidate  believes  I should be punished for who I am, and your vote will give him the power to do it.

Above all, don’t tell me you respect me but disagree.   When you tell me you’re voting for Trump, I understand what you’re really saying, and it has no  respect for me and people like me.

It’s National Coming Out Day today.    I am gay, and I’m with her.  And if you’re with Trump, you’re not with me.

 

Making room for beauty

I have long concealed a dark scandalous secret.  I’m not a true computer nerd.

Don’t protest.  It’s true.

Yes, I have a lot of the skills of nerdosity.  I can and do program for a living.  I can and do fix computers all the time.  I can and do understand them at a level that almost everyone else cannot.   But I know the difference between me and the True Nerds; I don’t design and implement operating systems, or cryptography schemes, or new programming languages or frameworks, and ultimately it’s because  I lack the passion for it.  For me, technology is operational, and interesting only insofar as it is useful.  I only occasionally tinker; once the Thing Is Working, I am satisfied and leave it alone in favor of things that are not.  So I don’t tend to dig in and reach that next level of true understanding that a True Nerd finds so satisfying.

And yet, I spend almost all my life mashing a keyboard and churning out computer code.  I travel across the country on a regular basis to do onsite training, tech support and more coding even from cheap hotels, high schools or colleges as I can find the time.  My family is never quite sure what time zone I inhabit at any given time.  I don’t own pets for fear they’d surely die, and my plants tend to be the type that can sustain minor droughts.  I sure don’t do it for the money; I could probably triple my annual income by focusing on my geekery alone and going to work for Google or some such masterpiece of the Nerd Kingdom.   I do not get to travel in the fun sense much more than the average person; for all that I’m constantly in different places, I mostly inhabit classrooms and airport hotel ballrooms, and such things look the same in Miami and San Diego and Philadelphia and wherever else I find myself.

But I’m not complaining.

I work as a software consultant to the world of speech and debate.  I work with the National Speech and Debate Association for most of my time, and have side work with the Boston Debate League serving inner city debate in Boston, and consult with numerous individual tournaments as well; I’m writing now from an airplane headed towards the Pi Kappa Delta Nationals, a collegiate debate and speech competition, after tabbing the American Debate Association nationals last weekend; last few months saw me at Cal Berkeley for a high school tournament attended by over 3,000 people, and before that the University of Texas at Austin, Charlestown High in Boston, Emory University, Lexington High in MA, and before that UC Berkeley again.

I have an awful lot of Delta miles.

Such tournaments are amazing experiences that we who live with the world don’t always step back to appreciate.  On the weekend of the Cal Berkeley tournament I helped run that event where 3,000 high school students got up in front of judges and spoke.  Some spoke of high philosophy and the morality of handgun ownership, some spoke pre-prepared dramatic presentations, some spoke of the US surveillance state and its limits and benefits, some gave speeches they wrote themselves on a topic of their own choice, and still others overrode the set topics they were assigned  to debate and instead injected their own culture, identity and viewpoints into their debate rounds.  But all of them spoke,  multiple times, in front of audiences large and small, about topics whose depth and emotional impact often belied the age of the speakers; high school and college students, almost all between 14 and 22 years of age.

Middle schoolers compete  to0, some as early as fifth grade; I just didn’t happen to go to any tournaments with them.  Not yet, anyway.

While I was at  Cal, an equally large number of students were doing the same thing across the country at Harvard, with smaller but still large events happening elsewhere, at UPenn, at  Pinecrest in Florida, and in countless other high schools across the country.  President’s Day is a remarkable weekend in the world of speech and debate;  during it,  well over ten thousand young people across the country stand and speak  anywhere between three and twenty  times apiece.

There are intense controversies within the debate and speech world.  Some competitors  play fast and loose with the rules of the material presented in the dramatic events, or address uncomfortable and controversial material in their speeches, and not everyone approves.  Some debaters object to the idea that others can and do ignore the official topic in a lot of rounds to promote  their own agendas, or can engage in sometimes quite personal ad-hominem attacks or tactics to win a round.  Others still dislike how arcane and rapid-paced many  debates have  become, freezing out communication and persuasion in favor of a baroque form of logic, and arguments in quantity instead of quality.  The edifice of speech and debate is undeniably imperfect, and often unsatisfying.

But it is never static; it is a living work, a collective action by a cast of thousands who make it what it is at any given moment.   Our current controversies do not get in the way of the ultimate mission: to encourage young people to speak, and stand and be listened to; to overcome the huge fear most people have of standing up and being heard.  The core of speech and debate, the core of being heard and believed, is knowing what to say; speech and debate encourages critical thinking and breaking boundaries, rewarding people for finding a different way of expressing an idea that nobody else thought of.  Those mavericks are the ones who get the biggest trophies.   Small wonder, then, that our rules are fluid and flexible and often abandoned; they’re under constant attack, along with every other idea in speech and debate.  But even in the resulting chaos, there is no better crucible for young minds.

And the effect is clear.  The parents of my team can never get over what happens to their children when they join speech and debate.  One confessed she started having to look up words her 15 year old casually used at the dinner table.  The students share their insights with their families and other friends.  Donald Rumsfeld, during testimony before the National Commission for Terrorist Attacks  in 2004  , called the person who sets the annual debate topic the most powerful person in the country.  Debaters can instantly speak  with authority about hegemonic foreign policies, afro-pessimism and social justice, or meta-ethical frameworks behind moral decisions.  Speech kids might start talking about the economy or the election at the drop of the hat, or be able to convince you in their performance that a full cast play is happening in front of  you, while just one person performs it.

We hope that  getting the young of the country to be unafraid to think and speak on what matters will create a  habit that  sticks.  And stick, it has.  I have former students running for public office right now, directing Hollywood shows, clerking for Supreme Court justices — and teaching, learning and doing new things that don’t fit easy categories.  Debate is home to counter intuitive ideas that later become mainstream, as we work them out.  A lot of debate ideas sound patently ridiculous when they’re first advanced in the round, but the students capable of creating those ridiculous ideas go on to learn how to create breathtaking ones, and do so with the same skills we encourage: questioning everything, not allowing boundaries to stand in their way, and then thinking nothing of standing up and delivering their ideas to audiences large or small.

And we don’t talk over each other, at least not as much as you’d think.

At tournaments, two things happen.  One of them is this activity that I can only call pure beauty in its engagement and intricacy and energy.   The other is, unfortunately, practical: we do an awful  lot of waiting around.  Schedules must be produced, judges assigned to rounds, rooms opened and closed, ballots entered and results tabulated before the next schedule goes out.  The logistic  elements of a tournament are staggering, and often confusing and daunting to the newcomer.  Parents who ask what time things will  end are sometimes laughed at; tournament schedules are more often aspiration than promise.   These delays are not  intended and never desired, but often can’t be avoided; we have an awful lot of moving pieces at tournaments and even one that goes awry can sometimes throw the whole affair  off.

My primary claim to fame is creating  and maintaining Tabroom.com, a site that tries to make the whole thing as automatic as possible.  Tabroom does  scheduling, online ballots, registration intake and confirmation, communications and whatever else I can think of that makes things easier on tournament directors.  Tabroom.com has  grown by leaps and bounds in popularity, which imposes its costs and stresses in terms of support requests and cries for help.   Thanks to the NSDA, I do have assistance in manning the support lines, but also a new challenge: while I’m keeping the wheels spinning on Tabroom,  I’ve also been  feverishly working on Tabroom’s successor site, which will be called Treo.  The core technologies at the heart of Tabroom.com are aging and due for replacement; Treo will take advantage of new advances in frameworks,  languages and methods.

Tournaments, for me, are not fun.  They run me ragged.  Running a tournament is a 5AM to midnight type of job.  Most people run tournaments only once or twice a year, leaving time to  recover.  I do it every weekend.  I  would collapse if I were truly in the trenches every moment, so I have to fight very hard against my own impulses to carve out more time for sleep.  Even as I do it, and try purposefully to be selfish, I still never get  enough real rest while I’m at speech and debate tournaments.  I work almost every day, rarely taking a full 24 hours off of tabbing or coding or whatever else I do.  But all the while, I’m seeking ways to make one more button to shave off ten minutes here, fifteen there — and sooner or later, those minutes become hours and hours become days.

And I do it all not because I’m a nerd.  I do it because the better Tabroom and later Treo get, then tournaments will have more  beauty and less filler.  I aim to make the task of running speech and debate contests  ever easier, ever more automatic.  The better the software, the more time we spend on debate and speech itself.  It will then be easier for others to coach new programs and bring new students to tournaments.  It will be easier to host tournaments and run them, and provide the opportunity to more kids.

That’s why I do what I do.  That’s why I play a professional nerd even though my heart isn’t truly in it. I could do work that brought me  more direct happiness, but  I doubt I could find something to do  with more meaning.

Today, March 15th, is National Speech & Debate Education Day, by Senate proclamation no less.  It’s the USA’s participation in World Speech Day.  The day is intended to promote the collective work of intellect and beauty that I struggle each day to make a little better around the edges.  I’m not a true nerd, but I play one in the speech & debate world, to support and make ever more room for that beauty, and bring it to ever more kids.

And that, to me, is more than enough motivation.

Text blasts, Psy, and French math

Greenhill. Saturday night, 11:30 PM. I’m in bed, at long last, the sleep tank running empty. It’s been a busy week, after a series of database upgrades and the usual start-of-season challenges: users new to Tabroom, experienced users who forgot things since they last tabbed in March, new features not quite working, whack a mole bugs from changes over the summer. At that moment, BMan texts me to tell me the coaches of a Certain Program Somewhere out west are complaining that only some of them are getting the text message blasts for their debaters’ rounds.


Text messaging isn’t as reliable as you may think. The failure rate for SMS messages sent individually is somewhere around .5%. For a bulk blast such as Tabroom sends, it can hover somewhere around 1-2%. If that doesn’t sound like a lot, consider: when you blast out a pairing for a Policy round at Greenhill, you are sending a text to 432 people. If the failure rate is even .5%, 2-3 people aren’t getting that message. Blast out six prelims in LD and Policy, and a bunch of elims, and you have about 40-50 instances of someone not getting their texts. Sometimes it’s Mom stalking you from home who misses a text. Sometimes it’s you.

On President’s Day weekend, Tabroom sent out 114,988 text messages in three days. .5% failures mean 576 people didn’t get one text blast; up it to 2% and that’s 2,301 lost messages.

Furthermore, Tabroom and JOT don’t actually send out texts. Sending a text message directly is not free — the carriers would charge us to do it. Since we’re a non profit speech and debate association, and not a global megabank, we use a side door: many carriers offer a little-publicized service where you can text message their users via an email, free. If your phone number is 978-555-1234, and you’re on Verizon, emails to 9785551234@vtext.com come to you as a text. The address you email to is different for every carrier, which is why we ask for your carrier when you sign up. That’s also why some smaller carriers are missing from that list —  they don’t offer this service.

Anything you can email is also a thing you can spam. The carriers are pretty vigilant about monitoring these email gateways for spam attempts —  you’d be really pissed if you started getting Viagra ads on your texts, after all. A service such as ours which sends out 114,984 texts in the course of a weekend, while sending virtually nothing during the work week, will understandably  look like a spammer to anti-spam software. So sometimes it will happen that all T-Mobile customers suddenly stop getting Tabroom texts. I can sometimes negotiate around that, and notify the carriers that we are actually good citizens here, but not always quickly, especially on a weekend.

All of this is to say your SMS message blasts are handy, but you should still check the pairings online when they come out. It also means if you don’t get a particular blast, it’s not a problem I can do much about, and am inclined to brush it off a bit. Report it when I’m finally in bed after a long two days, exhausted and stressed, well… you can go ahead and assume that is not a time of any week I’m eager and ready to bust out the computer and sling some code to save you from having to check an online pairing because you aren’t getting texts. It being BMan — a good friend whom I respect and value, and who has done me multiple kind favors and helped me out on a number of occasions —  I of course replied with a rude gesture and ample profanity, rolled over, and went to sleep.


The next morning, however, I woke feeling better. I miraculously got about 7 hours sleep, which is a debate tournament equivalent of three full nights’ worth. I double fisted Starbucks chai lattes. And the wiki was running better, so things were relatively calm. I had some time on my hands. At that point, the lovely Mr Vincent comes in and tells me that he, too, hasn’t gotten a single blast for his student’s rounds, but has been getting all of his for judging.

That’s a great bug report, by the way. Whining that “it doesn’t work” gives me very few clues what could be wrong, and that in turn gives my surly nature an excuse to dismiss the bug and blame you. My threshold on that is pretty low. Just ask Menick. But CV’s fact pattern was more interesting — he was only getting SOME messages, and the ones he got followed a consistent pattern. Those details made me immediately realize there’s more to the story here, and take him seriously.

I pull up his follower record, and there it is. His email was following the debater, and it looks OK. His phone number was listed in the same record: (214) 748-3647.

“But,” he says, “that’s not my phone number.”

I pull up all the entries he’s following. The number listed: (214) 748-3647.

I look at his login, which is where his own judge blasts are going, and that number was correct. Huh.

I check where area code 214 is, and it’s Dallas. I’m at Greenhill, so I roll my eyes. “Is some kid at the tournament trying to prank me and messing with the system somehow?”  I tell the database to pull up every record of this phone number following entries or judges in Tabroom.

The count was 7,632.


Evil Hackers are poorly understood by the general public; they are not diabolical Armani wearing supermen using specialized equipment to cast secret magic across the network and bend systems by the power of their will. If someone ever says “I’ve hacked into their security cameras and am tracking their movements now” after five minutes of furious typing, the correct response is to nod warily but politely, close the padded door and ask the nurse to up their medication.

Servers are just computers that run software to respond to remote requests, and all software has flaws.   Hacking in the real world is a matter of finding such a flaw and exploiting it.   Systems are very complicated things, and here’s a lot of surface area for mistakes.   Most are harmless, but some are the dreaded backdoors.   A backdoor is a flaw that, when sent specifically formatted data input, will react by giving the sender system access.   Backdoors can lie undiscovered and unknown on systems for years, sometimes decades, before being spotted and exploited.

Finding these flaws and the data that triggers them is hard work for seriously talented and knowledgeable people.     However, hacking is not limited to that elite group.   Every so often, someone out there finds a backdoor, and writes a rootkit which sends the particular data to systems running the software containing the vulnerable code.   Sometimes these root kits are written just to prove that a backdoor is serious, and push the software maintainers to quickly develop a fix.     But sometimes they are released on the internet for anyone to use, and those become dangerous.   While only a few masters out there can create an effective root kit, many thousands know enough to use them once they exist.     If a root kit is released, and no effective defense or patch to close vulnerable systems yet exists, the flaw becomes known as a zero-day exploit.

Users of systems affected by a zero-day can do nothing about it except yank their systems off the network, or hope and pray they’re not targeted.   Zero-days are  given scary names, like Sandworm, Shellshock, and Heartbleed, and written about like they spell doom for civilization and humanity, which policy debaters seeking impact files find very helpful.   They’re big news.   They can be used to steal private information, or manipulate financial or government systems.   Big and important firms therefore have a strong incentive to quickly fix any such flaws the minute a fix, or patch, is released.

The process of applying patches to a server or its software is not much more complicated in principle than applying Windows or Mac software updates.   Institutions with a lot to lose, like banks, credit processors, or sensitive government departments are therefore usually diligent about patches.   So backdoors aren’t often the weapon of choice when attacking a bank or credit card company.     It’s far easier to wheedle a password out of a non-security conscious contract employee by claiming to be the IT department on the phone than to penetrate their network security.     Leakers or careless employees, not backdoors, are the weak point.

Root kits find better targets one step down the food chain: major retailers like Target and Home Depot.   Such companies   possess millions of customer records and credit card numbers.   But computing isn’t their core business, and their leadership tends to be less aware of security issues. Sooner or later, some bean counter up the corporate food chain asks the dread question: “why are we spending so much money on computer security?   I have anti-virus on my computer and that works fine.   Who cares if those nerds in the basement insist we need this stuff?” And IT isn’t exactly filled with people who can argue their case to humans effectively.   So a budget gets cut, security goes lax, and backdoors are left unguarded longer.

Tabroom is not a single program.   It relies on a stack:   an operating system, a database, a web server, code interpreters, and libraries that handle standard things like formats, printing, and timezone conversions.   There’s even various ancillary bits of software like an email server and ways I can access the system.   A  backdoor in any part of that stack could open up my machine to a rootkit.   I have to patch it all, and naturally, I spend rather less time and money on security than Target or Home Depot did.

So why was I skeptical that we got hacked?   Well, bluntly put, nobody cares.

All that software in the stack is made by large teams of coders, many having members entirely dedicated to security.   The part most likely  â€” by far  â€” to have some exploitable vulnerability is the Tabroom.com code itself.   We don’t exactly have a dedicated team of security experts reviewing our code for exploits.     But our low resources reflect our low value  â€” a backdoor in Tabroom would be incredibly  small potatoes.   Finding one gets you access to exactly two systems in the entire world, and one is kind of old and slow.   We’re big in debate, but tiny  overall.     It’s a lot harder to find an exploit in the web server we use, but if you succeed in that, you’d have the key to millions of systems, including ours.   So the web server gets the real hammering, and my code gets none.

The type of hacking a little niche site like ours has to worry about is teenagers with more time than sense,  armed with root kits they  know how to use but don’t truly understand.  They set their  kits to blast the internet at random, looking for unpatched systems vulnerable to their attacks.  Such hackers are called script kiddies.  Their motive, apart from the thrill of the hunt, is to use my machine to host computer game servers, or share porn and illegal software with their friends at junior high.  They might put my machine into a network of other hacked servers and use it as part of an denial of service  attack— where you flood a website with more traffic than it can handle, aiming to knock a site offline.  Ultimately they’re unlikely to care about Tabroom itself, and are only interested in it as a reasonably powerful computer connected to the internet that isn’t traceable to them, so they can do other illicit things without someone telling their parents.

We suffer constant generic attempts by script kiddies, aimed at the stack.   Patching that is easy, and done regularly.     It also helps that many other small site admins are lazy, and don’t.   I’m the neighbor with the alarm system — a burglar can still rob me and probably get away, but she may as well rob the neighbor that lacks one.   We’re relatively safe from folks trying to break my own brittle Tabroom specific code, as  they’d gain so little from it.

Unless we really piss the Internets off.   And that brings us to Ashley Madison.

That site was in a bad spot: their security resources were probably limited due to their size, but the cost of their data being exposed was clearly very high.   Also, most people, their attackers included, found the Ashley Madison service appalling, which further increases the incentive for an attack.   Folks whose morals would not permit them to hack a bank had no compunction about targeting Ashley Madison.   The attackers went out for blood, and they sure got it.

Their aim was nothing less than bringing the whole service and its parent company down, and they succeeded.  They focused specifically on Ashley Madison, stole all their data, and made it public.   Clients were embarassed, awful conduct exposed everywhere, and the service and its company died.   Moral of the story: if you run a odious, sexist website that caters to powerful assholes, while keeping deeply damaging personal data about said assholes in a database, try to stay up on your security patches.

What they did not do, after all that time and effort spent conducting a targeted attack,   is  sit around changing people’s text message alert phone numbers, whose full impact is annoying me on a Sunday morning.   Therefore, I didn’t have a hard time dismissing the presence of a hacker after a cursory check for evidence thereof.


If not an evil attacker then, where the hell did (214) 748-3647 come from?

I investigated further. I set myself up to follow one of my own debaters, and put in my number, which is from the 978 area code. And then I look it up in the database:

(214) 748-3647.

I try some other numbers. Same result, every time. Now, I’m really alarmed. I wonder in horror if I’ve written some bug that substitutes a random Tabroom user’s phone number in for anyone else who follows an entry or judge.  I say a silent prayer for whatever poor sod out there whose phone went through a sudden seizure  every time Yale, Greenhill or Georgia State published a round.

I check the accounts database: the place that stores your number permanently, to follows your own competitor or judge records.   No active Tabroom login has that number.  So if this a person in the speech & debate community, they’re not very active.

I read over the following-code very very carefully, and check the value of the variables therein at every stage of its operation.  Nope, it was fine.

Finally, I bypass my code altogether, and run a direct database command to change  the follower record I have created to my 978 phone number. This method accesses the database directly, bypassing all Tabroom code, and therefore any bugs I might have created.

And I get (214) 748-3647.

I then send a runner to find Father Hahn and tell him to bring a gallon of holy water to tab. Kid thought I was joking, because the good Father never came, but I’m not sure I was.

There are moments in computing where you sink into despair. You write a function to do one thing, and it acts in a way so contrary to expectations, intuition and experience that you start to lose hope and faith in the world as a predictable place. You say to yourself: “Self, is this the day that the universe has decided to focus a small part of its attention solely on driving me crazy? Have I finally snapped?  If the database functions that way, then is the speed of light still a constant?”  Also, I’m usually flying solo at tournaments, without someone to provide a sanity check.  There are approximately ten  people in the entire country who fluently understand both tournament tabulation and tech.  I cannot begin to explain some  problems to anyone else, because we don’t share enough technical language to even have a conversation.  It’d be like your mom offering to help you cut a counterplan.   The hours spent explaining the premise wouldn’t be worth the twenty minutes of help.

So when I reach the end of logic, and find myself like Wile E Coyote running on thin air after running out of road, falling only when I look down — during those moments I can only sit there and stare at the screen, wonder what I’m  missing, and hope I don’t start weeping.   It’s important for computer people to keep up an all-knowing appearance  â€” folks are afraid enough of tech without realizing  that I’m sitting there, with all the tournament data in my hands, in a blind panic and ready to run for the nearest airport.   That’s why Sarah Donnelly gets instantly concerned when she observes that I’m wearing my “oh-no face.”

I decide instead to take a mental break, which can often help in those situations.  I start to randomly wander around the internet.   I wonder if I can look up who has this phone number.   Sometimes you can Google a phone number and find out who it belongs to, if they’ve posted it on the web somewhere. Instead, I get…a Wikipedia page for Mersenne primes?


Mersenne primes are prime numbers one less than a power of two. 3 is a Mersenne prime, as is 127. Powers of two are important in computing, since all computer storage is ultimately binary data, consisting of solely zeros and ones.  That’s because data is represented with small magnetic charges, which are either present (one) or absent (zero) in a given region of a disk surface, giving you 2 digits to work with.  Each such tiny field of data is called a bit, which is the smallest unit of computer data.  So computers  count by 2s, not by tens like we do.  Base-2 counting means every  additional digit, or bit, represents an additional power of two.   1 in binary is  1 in decimal counting too.  But binary 10 is 2.   100 is 4.   1000 is 8.

1 1111 means you add the powers of 2 shown together: 1+2+4+8+16= 31, which is one less than the next digit alone, 10 0000  =  32.   Mersenne primes like 31 are easy to spot in binary: they are all 1s.     Not all numbers that are all 1s are Mersenne primes, however, since they’re not always prime numbers — 15 is binary 1111, one less than a power of two, but not prime.

The amount  of data a computer can store is  always one bit less than a power of two.   Eight bits of memory (a unit known as a byte) could store the number 255, which is 1111 1111.  But it can’t store 256, which requires nine bits:  1 0000 0000.  Folks in computing therefore tend  to be very familiar with powers of two.   If someone you know refers to 512 as a “nice round number”, they’re probably a programmer.  A t-shirt I may or may not own proclaims “There are 10 types of people in the world, those who understand binary and those who don’t.”

A few years ago hard drive vendors pulled a fast one on its customers and redefined data storage units.  Normal people generally assumed a gigabyte equaled 1,000 megabytes, since we think in terms of tens, but in fact it was equal to 1,024 megabytes (minus one bit), which is a power of 2.   But vendors took advantage of that assumption, and attempted to redefine a gigabyte to 1000 MB, and then in turn a terabyte to 1000 GB, basically shorting you of space.  Pop that “1 TB” drive into a computer, and the computer will report that it’s only about 980 GB in size, because it defines these units in binary terms, not decimal ones.

If your storage contains a certain number of bits, you can express numbers up to one below 2 to the power of that number of bits. Those limits  are therefore often Mersenne primes.    32 bits of memory, to draw a non-random example, can represent a number that’s (2^32 – 1) in size.   That’s the limit for an unsigned integer, which are only positive.     The more common signed integers sacrifice a single bit to indicate whether the number is positive or negative.   The largest signed integer you can store in 32 bits is therefore equal to (2^31) – 1.

Which would be  2147483647.


When you design a database you must pre-declare how large the data in any given column is going to be limited to. The reason is that the database will allocate the space for data in set, predetermined chunks. If you say a given data field should be big enough to hold 255 characters, and then put only 2 characters into it, that field will still take up 255 characters worth of storage. So if you’re storing, say, state abbreviations, good practice is to limit the field to 2 characters only, as correct values will  never be larger. With stuff like proper names or so on, you make a decent guess, and leave some padding.  If anyone in debate has a first or last name longer than 63 characters, be prepared for disappointment when you register on Tabroom.

Before last week’s data conversion, I stored phone numbers as strings, which can be letters, numbers or punctuation, instead of just raw numbers. So if you typed in (978) 555-1234, that’s what I’d store, spaces, parens and all.  But the text-email gateways only want numbers, nothing else.  So every time Tabroom sent a  blast out, it would have to first remove  all those non-number characters.  That costs a little extra processing time, but more importantly, it’s bug prone: I had to do it every time I accessed phone numbers, so if I had to change how I do that, I had to change it every place I do so.  And inevitably I’d forget at least one and create a bug.  Also, storing characters takes up more space than storing raw numbers only, and keeping  all that extra punctuation is wasteful since I was just going to remove it anyway. So, in the update, I changed how that works, and now strip out the non-numeric characters before storing your number, keeping only the numbers  themselves.

Database designers tend to pay close attention to string sizes, but when storing integer numbers, it’s easy to get a bit lazy and just declare the default sized integer, an INT: 32 bits.   That’s a default for historical reasons.  Most computer processors made from around 1995 until 2005 had 32 bit instruction sizes, which means the largest numbers they could process in a single chunk within the chip itself was 32 bits in size.  A 32 bit computer can deal with larger numbers, but it has to pull tricks and any such operations are slower and less precise than dealing with ones that fit in its pipeline.    This  limit affected how quickly and precisely 32 bit CPUs could do math involving large numbers, how much RAM memory their systems could manage, and even how long they could maintain their  internal clocks: 32 bit processors will stop keeping correct time on some operating systems in 2032.  Nowadays standard processors have 64 bit instruction pipelines, but 32 bit limits remain common throughout computing, because folks got used to that being a reasonable default and it’s stayed that way since.

Save a number into a database field that’s beyond its ability to express, and the database will save instead the largest number it can, the Mersenne prime 2147483647.

And thus, my bug.

Why I didn’t see it until now is a lesson in psychology.  In Tabroom, by default you must enter each ballot twice before it is accepted.   I discourage people from using visual scanning as an audit method, because when you see or hear a number and have to confirm that a second number matches, sometimes your brain sees what it expects to see, rather than what it actually sees.   It’s better to have to read and interpret the ballot twice, preferably by two different people, so no expectation biases exist.   That same human flaw stung me — I was looking at it expecting to see a phone number, and it was indeed a valid area code followed by seven digits.   So I saw a phone number, and didn’t recognize it for what it was.  As much as that seems like a really random number, it’s fairly well known in computing because 32 bit size limits are very common.  It’s known as max int. I could have recognized it, but I was  in the wrong mental context.


It so happens nobody has max int  as a phone number; we called it and got a busy signal. I did not spend the weekend spamming some poor schmuck in Dallas with thousands of demands that they be affirmative against Lexington SM in US 302 in front of DHeidt while also judging an LD round in WLH in New Haven and watching a Northwestern team run  the K in Atlanta — which actually  happened, so at least  my experience wasn’t the weirdest of the weekend.  My messages, and your text blasts, just disappeared into the ether, rejected by bewildered cell carriers which did not have that number and would you please stop asking us to text it, Tabroom.com?

When the Gangnam Style video became the most popular Youtube video ever, it was the first to achieve more than 2,147,483,647 views, and for a while the counter stuck there.  It was rumored that Google fell victim to this same error.

After an hour and change of searching, despair, crazed laughter, learning new things, beating my head against my screen, and both sass from and mocking of BMan, it took six words to fix:

ALTER TABLE follower MODIFY cell BIGINT;

A BIGINT is 64 bits. It can store a number up to 18446744073709551615. Unless  the phone network grows by a lot, we should be good now.

Then I went and got another chai.


I hate computers.