Catching The Bus From My Living Room

A project to build an LED display for tracking my local Brooklyn bus stop using the BusTime API


In April of 2014 the MTA announced that they had finished rolling out their BusTime platform to every bus in New York City. BusTime is a system for showing the location of MTA buses in real time, developed in-house using the open-source OneBusAway platform and in partnership with OpenPlans.

Unlike proprietary systems (such as NextBus, which is used by San Francisco and many other US cities), the MTA has complete control over the BusTime system and its data. But the trade-off is that there isn’t a suite of flashy apps that already exist to make that data available to bus riders. The MTA has a mobile site and text-messaging service that work reasonably well, but they don’t offer the same convenience as native apps or integration with popular platforms such as Google Maps.

Still, the open nature of the BusTime platform means that anyone can build on it, and the MTA’s hope is that over time the developer community will come up with smart solutions that add value to the platform in interesting ways. This approach was intriguing to me, and since I am both a frequent bus rider and a proponent of open data, it got me thinking: If I could build anything I wanted to make riding the bus more convenient, what would I build? The most obvious choice would be a mobile app, but I have no iOS or Android development experience, so despite the relative lack of user-friendly BusTime apps in the iOS app store (seriously, if you know of a really good one, let me know because I’m still looking) I opted not go to that route to start. Instead, I focused on how I personally use the bus most often and what could make that easier.

My Commute

Sunset Park, as imagined by the NYC Subway Map. Missing: Sunset Park itself

I live in Sunset Park, Brooklyn, at the top of the hill that stretches south from Park Slope and a couple blocks from Sunset Park itself. My nearest subway stops are the D at 9th Ave and the R at 45th Street, both about a 10 minute walk from my apartment. It’s not a bad walk, and the D is a great train — it runs express to Manhattan and drops me near my office in Soho, a mere 3 stops from where I get on.

But there’s also a bus stop around the corner from my apartment, and if I time it right, I can catch the B70 and take it to 36th Street, where I can also catch the N. This has the potential to save me a few minutes and/or a cross-platform subway transfer, depending on where I’m going.

The problem with the B70 is that it only runs 3-4 times an hour, even during the morning rush. So historically my commute has been left to chance — when crossing 8th Ave, I peer down the street to see if there‘s a northbound B70 I can catch. If not, I keep walking to the D.

The Idea

Now that the B70 is BusTime-enabled, I can see where the bus is from the comfort of my living room and plan my departure accordingly. The tricky part is remembering to look at the BusTime site, and refreshing the page occasionally to make sure the next bus isn’t about to pass me by.

But what if the arrival information was available to me in a more ambient way? Bus stops in many cities (and soon at a select few bus stops in NYC) have digital displays that show updated arrival information. What if I could have the same thing in my living room, letting me know when it was time to go outside and catch the bus?

So that’s what I decided to make.

The Brains

The first thing I needed to figure out was how to get at the BusTime API. The MTA makes this fairly easy, providing detailed information on their developer site. You need an API key make requests, but getting one is as easy as filling out a form and waiting a couple days.

The API provides two useful endpoints: One for stop monitoring and one for vehicle monitoring. The former is what I needed, so I set out to build a client library for it in Python. A few disparate hours of honing my meager Python skills and 100-or-so lines of code later, I had a proof of concept. This eventually morphed into a module that I import and use in a simple Flask app.

The original proof-of-concept, written in Python (Instagram)

Feed it an API key and stop ID as arguments (and, optionally, a bus route name and number of stops to return), and it will query the BusTime API and return a subset of the response data. Since the BusTime API’s data model is based on the SIRI standard, it returns a lot of convoluted data that I didn’t need, so I had to strip that down into something that could fit into a small memory footprint. (See “The Guts” below.)

I ended up with just three pieces of information: The route name, the distance and the number of stops away. Interesetingly, “minutes away” is not a datapoint that the BusTime API provides, and I can understand why. Determining an arrival time based on distance and speed is often a guessing game, especially in unpredictable New York traffic (to say nothing of the snarls caused by double-parking delivery trucks, which are a regular feature of the 8th Avenue business district).

Number of stops may seem unintuitive, but I think it’s a fairly easy thing to understand if you know your neighborhood, especially when you consider that two adjacent NYC bus stops are usually in sight of each other. I’ve found that if BusTime says the bus is 3 stops away, I have enough time to leave my apartment and walk to the corner, and perhaps stop at the Chinese bakery for a coffee if the light turns red.

The Guts

Next I had to figure out the hardware. For this I turned to Adafruit Industries, who offer a wide selection of Arduino components and accessories. With simplicity in mind (and the traditional bus stop LED arrival board as my inspiration) I settled on the following parts:

The total cost for all the above (not counting tools and wires for final assembly) was around $140, which I felt was pretty reasonable for a pile of specialized electronic components. Also, Adafruit has a ton of documentation and code examples available online, which were essential in easing the build process.

Testing It All Out

I was new to Arduino prototyping when I started this project, so I wanted to proceed incrementally to figure out each of the components before attempting to wire them all together. Adafruit’s tutorials and sample code made this incredibly easy, and I was blown away by how quickly I was off and running with each component. I won’t bother to reproduce the steps here, since they are covered fairly thoroughly in the linked documentation.

First up was the LED panel: Adafruit tutorial, library & sample code. The provided library and samples include functions for easily writing text and drawing shapes on the screen, so getting it working took no time at all:

Something slightly more interesting than the default demo code. (Vine)

And with a little more effort, I was able to work up some iconography:

Early design prototype. Distances and arrows were left on the cutting room floor. (Instagram)

The next challenge was the WiFi breakout: Adafruit tutorial, library & sample code. Again, nearly everything I needed was outlined in the example code, so with minimal effort I was able to connect to my home WiFi and download a sample page.

Not much to look at, but it worked!

Putting It Together

Once all parts were tested, it it was time to combine them. This meant rolling all the code up into a single application and wiring all the components together using the Proto Shield.

The final Arduino app needed to do the following:

  1. Connect to my home WiFi
  2. Attempt to connect to the Flask app and download the JSON string
  3. Parse the JSON and extract the needed information (namely, how many stops away each bus is from my stop)
  4. Display the information on the LED panel (along with a cute bus icon, of course)
  5. Repeat this process every 30 seconds or so
  6. Bonus: Automatically adjust the brightness of the LED panel using an attached photocell sensor

Steps 1, 2, 4 and 6 were basically covered by Adafruit’s tutorials, which I modified to suit my needs. For step 3, I turned to the ArduinoJsonParser library, which is lightweight and simple enough to get the job done efficiently.

I briefly considered the possibility of having the Arduino connect directly to the BusTime API and parse its output. This proved to be impossible: The Arduino Uno has a mere 32KB of flash memory, and the code and its dependencies take up about 25K before anything even runs. So once all the needed variables are initialized, there’s not enough room left to store the 2K of SIRI data that gets dumped out of the API. Needless to say, this project was somewhat of a miniature crash course in managing memory with C.

As for the wiring: Figuring out what should go where was a cinch using the breadboard and wires that came with the Arduino Starter Pack. But I wanted a fully assembled device, and that meant there was a fair amount of soldering to be done. I’ve never taken an engineering course, so I don’t know how to draw wiring diagrams from scratch. Thankfully we live in The Future and there is an app called Fritzing that does most of the work for us.

Fritzing includes interactive diagrams of many prototyping components, and plenty more are available online from various sources. The basic Arduino parts are included, and Adafruit maintains a GitHub repo of their own library of components. Oddly, this library was missing the Proto Shield, but I found a user-contributed one in the forums that worked great. The result looks darn cool (and made the actual work of soldering significantly easier):

All I’ll say about the soldering process itself is that having a nice 40W soldering iron with a narrow pencil tip makes for a nice clean project, whereas a 25W iron with a blunt tip will yield a multitude of melted shielding and sadness. YMMV.

The Final Product (and TODOs)

My messy workbench.

And wouldn’t you know it, the darn thing works! It’s not completely finished, but it’s functional enough that I’ve been making regular use of it and, consequently, catching the bus a lot more often. There’s more I’d like to do with it, though. Here’s my list of nice-to-haves that I’ll maybe get around to at some point:

  • Multiple Stops — Currently the Arduino code only supports a single, hard-coded bus stop ID, but I’d like to be able to cycle through nearby stops by pressing a physical button on the device. It would also be nice to add and remove stops to monitor via the Flask application, especially if I decide to build more than one of these things some day. (Want one?)
  • Easier Access To Stop Data — So far I haven’t mentioned where the stop ID used to query the BusTime stop monitoring API actually comes from. You can find it on the bus stop’s signage for use with the text messaging service, as well as in the stop details on the BusTime website. Ideally any sort of web-based system to manage a device’s stops would have a similar lookup method, but that requires parsing the MTA’s bus GTFS feeds, which is no small task. I would like to do this some day, but it seems like a separate project.
  • A Case — My goal was to have something I could mount on my wall, but I’m not there yet. Also the Aurdino controller and Proto Shield aren’t attached to the LED display (except by the ribbon cable), so they flop around a bit. I could use the help of someone with wood- or metalworking skills on this front.
  • Bug Squashing — Every few days it freezes up and I have to push the reset button. I suspect this has something to do with the WiFi controller, but since it’s only a minor annoyance I haven’t gotten to the bottom of it yet.

Documentation

For those interested in following in my footsteps, I’ve posted all the code from the project on Github, including the Python module, Flask app, Arduino code, and Fritzing diagram. Feel free to reuse, but kindly retain all credits and link back to the code/this page where applicable. Happy hacking!

Pics Or It Didn’t Happen

Straight on from the back (Flickr)
Bottom right corner (Flickr)
Top left corner (Flickr)
Repeat of the header image (Flickr)
Next Story — What Every Exchange With A Time Warner Cable Sales Representative Should Sound Like
Currently Reading - What Every Exchange With A Time Warner Cable Sales Representative Should Sound Like

What Every Exchange With A Time Warner Cable Sales Representative Should Sound Like

This is paraphrased from an actual cold call I just got from Time Warner Cable a few minutes ago, transcribed as best as I remember it.

Me: “Hello, this is Ian.”

TWC Sales Guy: “Hello, am I speaking with Mr. Ian Westcott?”

Me: “Yes you are.”

TWC: “Mr. Westcott, my name is <redacted> from Time Warner Cable, I see that you’re a subscriber to our Internet services and I’m calling to see if you have a minute to talk about the other services we have available. Just as a heads up, this conversation may be recorded for quality control purposes. Do you have a second to talk?”

Me: “Sure! Is this about your terrestrial telephone and cable television services?”

TWC: “Yes, that’s correct.”

Me: “Yeah, I have no interest in either of those services.”

TWC: “Can I ask why not?”

Me: “Well, the telephone service is completely redundant in my life. The phone you called me on is my primary line, and I carry it with me everywhere. I don’t need extra telephone service in my home. As for cable TV, I stream all my entertainment over the Internet, and I have no interest in paying lots of money for a bundled plan full of content I’m not interested in that’s littered with ads.”

TWC: “I understand that, sir. Is the phone you’re using a smartphone?”

Me: “Yes it is.”

TWC: “Are you aware that our home phone service comes with an app that you can use for calling and video chat on the go for only $10 a month?”

Me: “My phone already does both of those things, why would I want to pay extra money for a redundant service?”

TWC: “Well – “

Me: “Listen, I feel for you, I know you’ve got an uphill battle trying to sell services for a company that’s so far behind the times. Even the Internet service I subscribe to doesn’t meet my needs.”

TWC: “Well I can help you with that. I see you’re subscribed to our mid-range plan, I could upgrade you to 100mbps for only –”

Me: “See now, 100mbps is not worth to me what Time Warner is charging for it, especially if I can’t trust it to be reliable. If I could buy 300mbps for the same price, I’d consider it. But the fact is, the only reason I subscribe to Time Warner is because they are a monopoly in my area. If there were any other options available to me, I would gladly cancel my subscription, but there aren’t. So I subscribe to the bare minimum of service that meets my needs so I don’t have to pay Time Warner any more money than I have to.”

TWC: “…well, thank you for your time.”

Me: “Thank you, and again, I’m sorry you have to hear this over and over from frustrated customers who aren’t getting the level of service they want.”

TWC: “…have a nice day, sir.”

Me: “You too.”

This same exchange happens every few months, and I’m always delighted at the opportunity to go on record with my distaste for Time Warner Cable’s level of service. I hope I’m not the only one.

Next Story — An Open Letter from a Black Man to His White Family in a Moment of Violence
Currently Reading - An Open Letter from a Black Man to His White Family in a Moment of Violence

An Open Letter from a Black Man to His White Family in a Moment of Violence

Photo credit: Love and Struggle Photos

To the white people I share home with,

I’ve gotten degrees. I’ve been published. I’ve spoken at academic gatherings. I’ve taught classes and workshops. I’ve built up a resume. I’ve gained employment in the acceptable fields of social justice. For years, you told me these were the things I needed to do in order to be listened to.

I’ve participated in direct action. I’ve been arrested. I’ve survived nearly three decades in a country that hates me. I’ve predicted the formation of movements, the swell of riots, months and even years before their occurrences. I don’t know what else I need to do to be legitimized, be validated, to be worthy of being heard and taken seriously.

I am exhausted from trying to get you on board with a movement–one that mirrors those from previous eras you claim to revere, and that has reignited calls for social transformation once heralded by the writers, speakers, musicians and artists you claim to hold dearest. I wonder if you understand what any of the struggles which have occurred during your lifetime were ever actually about.

I am not naive nor arrogant enough to believe my imploring can achieve in this moment what centuries of Black imploring has not been able to. I am not foolish enough to believe this letter will be the letter that changes your minds. I write because I need to speak, because I am in pain. I write because I cannot bear any more condescension, more indifference. I write to tell you I am not going to.

The cry of this moment is Black Lives Matter. If you are not involved, I assume this is a statement you take issue with.

When we say Black Lives Matter, we mean Black people are the experts in their own lives, their own history, their own struggles. We mean your opinions are not necessary, and that debating you is a waste of our valuable energy, mental health and time. We mean you do not get to speak on issues with which you have no experience, which you have not studied nor researched, but on which you feel entitled enough to award yourself authority. We mean you must be quiet and listen to Black people.

You can no longer hide behind your idealism. The very existence of this moment proves your ideals to be misled and hollow.

If legislation alone could save us, the 13th Amendment, Special Field Order №15, and Brown vs. Board would have saved us. If electoral politics alone could save us, then the innumerable Black justices and representatives elected in the last half century would have saved us. If white saviors could save us, we would have been saved a million times over. But we are here and we are dying, and you are watching from the sidelines.

You call me an anarchist. You say you fear chaos. If you knew what it means to be Black, what is happening in your towns and cities daily, you’d know that chaos and bloodshed are already here. They are visited on women, on people of color, on poor people, workers, on immigrants, on trans people, on queer people, and they are done so constantly. Chaos is our bed, our sheets, our water, our front steps, our sidewalks. The systems you insist we trust to address it, the leaders you elected, are its source. Your fear of movement, and your denial of this reality, is what allows it to continue.

This is the last time I will say this to you:

Black people are dying. Every day, Black trans women are dying. Black children are dying. Black mothers and sisters are dying. Maybe I have to die for you to understand what this means.

If the demands of our movement are unclear to you, that is your fault. We have stated them concretely and concisely, over and over again–not just at this moment, but at every time in history Black people have fought for their lives. Don’t pretend that because the sources you read don’t report it, the information is unavailable. Don’t act as though your selective hearing is the result of our lack of organizing. Don’t tell the leaders who have penned the most passionate pleas for justice in US history they need to be more articulate.

And when the police come for me, don’t cry. When I am murdered by a supremacist in the street, don’t mourn me. If I am put in a cage for speaking out, don’t call it a travesty. Because it is happening, has been happening unceasingly for the last five centuries, and you have done nothing to stop it.

Do not feign shock at the inevitable. It disrespects me, and the memory of every Black person your system has purposefully killed.

When I tell you my needs, talk of my pain, my anger, all my stories, it is a privilege and blessing you haven’t earned. It is a profound form of vulnerability I engage not because you deserve it, but because I as a Black person choose to share it with you. I do so for the sole reason that I do not wish to lose you from my life, do not want the most core parts of my existence to be hidden from you. But when you refuse to look, they remain invisible. When you resist seeing, you deprive yourself of authentic entrance into who I truly am, and what I truly need from you.

And your denial cannot protect you, just as my silence cannot protect me.

This movement is happening without you, despite you. But real transformation is not possible unless you listen deeply, sincerely, even when it is painful, and take brave action at your own risk to fight for the things the Black community is demanding of you.

When Black people speak, and you do not listen, you are creating the conditions of a riot. And when you tell us we are exaggerating, playing the martyr, making it all up, then you cannot be surprised when we elect militancy to make you comprehend what you refused to understand when we were peaceful.

A son, brother, nephew and grandson of Black, queer liberation

Next Story — The Fascist Bogeyman
Currently Reading - The Fascist Bogeyman

The Fascist Bogeyman

There’s a noise under the bed and it won’t stop

The current debate about fascism in America has, thus far, centered on the definition. Many publications have been musing in the same direction: “Is Donald Trump a fascist?” (Slate, The New York Times), “Is Donald Trump an Actual Fascist?” (Vanity Fair), “Donald Trump and Fascism: Is He or Isn’t He?” (National Review), etc. People want to know what to call things and that’s understandable, but I’m not sure how useful this exercise is. Fascist is as fascist does, and by the time we can agree on the exact definition it may already be too late.

When I planned to write about ¡No Pasarán!, a new collection about the Spanish Civil War edited by Pete Ayrton, I thought there might be some good lessons in there about fascism. With the Trump campaign improbably continuing and the alt-right Nazi brand on the rise, many of us agree that a solid operational understanding of fascism is increasingly necessary. Whether or not the label applies to our present situation, I’m pretty sure it’s valid when talking about Generalissimo Francisco Franco of the Spanish Falange.

I figured I would outline the historical timeline, cite a couple historical curiosities, draw some ominous connections to the election, get a check, and move on. Instead, I got stuck on a couple anecdotes in one of the pieces, an excerpt of the Basque writer Bernardo Atxaga’s book De Gernika a Guernica. The first is from the village of Fuenteguinaldo, and it happened in 1936 but wasn’t revealed publicly for 70 years:

“Apparently, the Falangists asked the priest to draw up a list of all the reds and atheists in the village … They went from house to house looking for them. At nine o’clock at night, they were taken to the prison in Ciudad Rodrigo, and at four o’clock in the morning, were told they were being released, but, at the door of the prison, a truck was waiting and, instead of taking them home, it brought them here to be killed.”

The second comes from the failed coup attempt in 1981:

“I was living in a village in Castille with fewer than two hundred inhabitants. I became friendly with a young socialist who was a local councillor. When I met him one day, he was looking positively distraught. He had just found out that in February of that year, on the night Colonel Tejero burst into Parliament and the tanks came out onto the streets, the local priest had gone straight to the nearest military barracks intending to hand in a list of local men who should be arrested; my friend’s name was at the top of the list.”

Someone puts your name on a list and you disappear. And maybe all the people who care enough to look for you disappear too. And no one hears what happened until everyone you ever knew is dead. That is, if you’ll excuse my language, the fucking bogeyman. It scares the hell out of me.

There’s a danger to thinking about fascism as something other than human, not just because it is people, but because it presents a temptation to dehistoricize. Fascism becomes something existential, a tyrannical tendency somewhere deep in the character of all people or all societies that needs to be restrained but occasionally breaks free to wreak havoc. Once we start down that path it’s not too long before we get to “We’re all a little bit fascist,” and “Was Alexander the Great a fascist?” That is lazy, useless thinking, the kind of “human nature” nonsense that is the first resort of the uninformed and uninterested.

Monsters and ghouls have always been a part of human community as far as I know, but they each emerge under particular circumstances. Think FernGully: The evil spirit Hexxus is freed from a tree (where it’s been imprisoned) when a timber crew chops it down. Ancient Hexxus seeps out with the character — even the name — of modern pollution. The creature is the externalities of industrial production embodied. It moves like oil and smoke. That pollution makes monsters is not a special insight; everyone knows about Godzilla. But moral pollution, of course, yields demons as well. Monsters show up when some scale is stubbornly uneven, when karma is repressed. Toxic waste dumped in the swamp, but graves disturbed too. That we’ve always had evil isn’t a way to avoid understanding the specifics of its incarnations. Thinking about fascism as a bogeyman in this way could be more useful. What kind of monster is it?

Allow me some speculation. Fascism is a nation-shaped monster. It arises alongside the modern state, and though they share sympathies (and weapons) across borders, fascists are nationalists. One of the conflicts that feeds fascism is between 19th-century ideas about the racial character of states and 20th-century pluralist ones. Our global system is supposedly based on something like collective self-determination, but it’s grafted onto a map drawn by colonial violence and pseudo-scientific ideas about Gauls and Teutons. Fascism is a particular combination of Romantic/Victorian ambitions and modern tools that sparks to life as the two eras grind against each other. Frankenstein with the arms of capitalist industry and the heart of a monarchist. Patriotic young Hitler inhaling mustard gas in the trenches, like a panel from the first issue of a comic book.

One of those modern tools is the list. We’ve always indexed information, but our ability to do so grows in qualitative jumps. To round up all your enemies at a national level is an analytics problem, and it’s one we solved under particular circumstances. The quantitative management of populations doesn’t just happen to emerge around slavery, it emerges out of slavery. And the Civil War didn’t break the line: At the Eugenics Records Office (ERO) in Cold Springs Harbor, New York, so-called scientists of the early 20th century kept lists of the genetically (and racially) undesirable. They embarked on sterilization campaigns and lent their expertise to help halt the flow of immigrants. The Nazis infamously used IBM to manage the Holocaust; the Americans (less infamously) also used IBM to manage the Japanese internment camps. When NYU’s Asian/Pacific/American Institute recreated an ERO office in 2014, they called the exhibit “Haunted Files.” Perhaps our filing systems are haunted too.

Modern liberal states have never truly reconciled their racial character with their democratic pretensions. I’m not clear on how such a thing could be possible; where would a truly pluralist state draw its borders and why? Flipping through a history book it’s hard to argue that the nation-state system doesn’t exist for the arbitrarily divided glory of western Europeans. The official line is that we’re supposed to ignore that part, or be sad. But some people don’t want to ignore it and they aren’t sad. Instead they wonder why we have the nice borders that their conquering “ancestors” drew but all these people on the wrong sides. If taking Mexico’s land for white people was illegitimate, then why haven’t we given it back? And if it was legitimate, then what’s wrong with a wall to protect our side from a reversal? The liberal patriots, they say, are lying to themselves; there is no nationalism that is not ethno-nationalism.

The persistence of the fascist bogeyman suggests that they have a point. The beast can skulk in the basement for decades, feeding off the contradictions at the foundation of the pluralist state and its own waste. This is 2016 and we can’t claim that fascism is a birth pang of the global democratic order, an enemy defeated. (Ghosts, zombies, the terminator: monsters so rarely go away when they’re supposed to.) Fascism seems inextricably tied to what we have, like Dorian Gray’s portrait locked in a closet, consolidating ugliness.

Whether or not they could finish off fascism once and for all, liberals usually aren’t tempted to try. I don’t know if that’s because they sense something irradicable there, but liberals have historically found deals to make with their shadow. Spain is one of the more striking examples. When Franco’s insurgents escalated, the rest of the world agreed to stay neutral so as to stall the already foreseen World War II. But the war had already begun: Hitler and Mussolini flouted the agreement, intervening most dramatically with bombing raids. The Soviet Union breached as well, sending weapons to badly armed Madrid. The western democracies, however, stayed neutral. In return, Franco maintained Spain as a non-belligerent when world-wide hostilities broke out. It’s an agreement that lasted into the 80s.

Part of what makes the Spanish Civil War so important for leftists is the sense that it could have gone the other way. There’s an urban legend that infighting among leftists — communists, anarchists, and Trotskyists — caused the Republic’s defeat. ¡No Pasarán! has accounts of this friendly-ish fire, but no one thinks it decisive compared to German and Italian air power or the western arms embargo. Spanish republicans and their study abroad comrades fought bravely, but the bogeyman has an advantage at the insurgency stage. Violence is its thing.

The bogeyman makes a real offer: Delegate to me your capacity for limitless violence and together we will dominate. That they’re able to do it justifies the undertaking, and they are, under some circumstances, able to do it. A willingness to strike first, to drag your enemies from their beds in the middle of the night, to steal their babies, that’s a force multiplier, especially when combined with the right information technology. There is strength in white nationalist unity. Horrifying, despicable, anti-human strength, but strength still. The fascist image is a bundle of sticks or arrows — the fasces, harder to break. And they are.

I think of the 2015 movie Green Room, about a band of punks who get trapped inside a Nazi club and have to try and fight their way out. Joe Cole plays the drummer Reece, and he’s the only one who shows any sort of confidence, preparation, or leadership when it comes to fighting fascists. With his MMA skills he incapacitates a giant skinhead bouncer and directs the gang to make a break for it. He’s not out a club window one moment before two faceless, nameless Nazi henchmen have stabbed him to death. For me this moment illuminates a basic truth about fascist strategy: It does not matter how smart or brave or capable or strong you are. There are two of us, we have knives, and we’re waiting outside the window.

Liberal democracies are constitutionally vulnerable to the bogeyman. We civilians have already delegated our capacity for violence to the military abroad and the police at home. If there’s a threat to law and order, then the forces of law and order will take care of it. We don’t have to worry about protecting our democracy, there are professionals for that. All we have to do is vote for the right people to manage them. But that plan has risks.

America’s founders thought they could write the standing army out by fiat, and they have been proven very wrong. Liberal democracies maintain giant war machines. Within each of these war machines — as in the religious and business communities — there are cults that worship the bogeyman. Members wear tattoos, patches, insignias to identify each other. They recruit. Some of them go to meetings, most probably don’t. I imagine that many of them get fulfillment from their work. Why wouldn’t fascists feel at home in the police, the border patrol, the army? Asking these organizations to maintain anti-fascist vigilance on behalf of the whole population is a fox and henhouse situation.

If Donald Trump is a fascist — as even the liberal media is beginning to agree — and has a non-negligible chance to winning the presidency, what is the contingency plan? If a Trump administration were to flout what’s left of our democratic norms, how would our system protect itself? I don’t know how Trump polls among active-duty military, but the Fraternal Order of Police has already endorsed him. Part of me thinks “Troops loyal to Hillary Clinton,” is a phrase we could get used to fast, but I’m not sure how many of those there are. Are the Vox dot com technocrats expecting a Seal Team 6 bullet to solve the Trump problem if things get too hairy? It seems remarkable that the two 20th-century American politicians we talk about getting closest to fascist takeovers — Huey Long and George Wallace — were both stymied not by the democratic process but by lone gunmen. That’s a bad defense strategy. Thankfully, it’s not the only one available.

Via Richmond Struggle, anti-fascists in Richmond, VA

Wherever there have been fascists there have also been anti-fascists: Traditionally communists, anarchists, socialists, and some folks who just hate fascists. When left-wing parties have on occasion decided to stand by while fascists targeted liberal governments, anti-fascist elements have still distinguished themselves. Anti-fascism is based on the idea that fascists will use content-neutral liberal norms like freedom of speech and association as a Trojan Horse. By the time the threat seems serious, the knives are already out. Antifa seek to nip the threat in the bud, attacking fascists wherever they’re weak enough to attack. If that means busting up their meetings with baseball bats, then that’s what it means.

In America, we remember the Spanish Civil War mostly through anti-fascist anglophone writers — George Orwell and Ernest Hemingway being the most famous — who decamped for Spain. Unlike fascists and liberals, anti-fascists are internationalists, and no citizenship takes precedence over the struggle. When the call went out for sympathizers to come and defend the Spanish Republic, one young British volunteer, Laurie Lee, called it “the chance to make one grand, uncomplicated gesture of personal sacrifice and faith which may never occur again. Certainly, it was the last time this century that a generation had such an opportunity before the fog of nationalism and mass-slaughter closed in.” Comrades of all sorts of nationalities and particular left-wing political views signed up for the motley “International Brigades.” There was and is a purity to this gesture; to go and risk your life alongside your attacked comrades is among the highest imaginable acts of solidarity. “¡No pasarán!” (They will not pass) is an anti-fascist slogan of such power that it’s still in use today, many decades after it turned out to be a lie.

Because pass they did. The righteous rag-tag army was no match for the German and Italian bombers. Spain stands for anti-fascism across borders, but also the catastrophe of its failure. If there’s one lesson we can learn from the War it’s that fascists don’t always lose. The arc of history is not a missile defense system and sometimes righteous solidarity makes for full prison camps.

For years American anti-fascists have been very effective. Up until the Trump campaign, they had largely prevented white nationalists from meeting in public in cities. It usually works something like this: Antifa finds out where the Nazis are planning to meet and they call the hotel or conference center they’re going to use and explain who exactly “American Renaissance” is, and what will happen if the meeting happens (chaos). Most reputable establishments exercise their right to decline Nazi business. This kind of tactic offends the liberal sensibility, but it’s the only choice. The least violent way to oppose fascism is to disrupt them before they feel strong enough to act in an organized way. I fear that window is closing.

I don’t think Donald Trump is going to be elected president, but the fascists who have found a vessel in his campaign have been licking their lips for months straight. Things are going better than they could have hoped and they won this round a long time ago. I have no doubt they’re thinking about how to organize their engorged base in November’s wake. Fascists aren’t democrats and they don’t need a majority.

The bogeyman is in the closet and he’s making so much noise it’s hard to pretend we can’t hear it. We have a choice to make, if not as a country, then as members of this society. We can get out of bed, open the door, and confront the social infection that is fascism. Or we can pull the sheets up over our heads, pretend history ended 25 years ago, and try to get back to sleep. Maybe the noise will stop on its own — it is possible, even likely. But maybe we’ll wake up with our throats slit. There won’t be a different kind of warning.

Sign up to continue reading what matters most to you

Great stories deserve a great audience

Continue reading