So the thing you’ve got to realize is, most comic book superheroes make no sense. You don’t even have to think about it very hard. You don’t have to dig under the surface; just look at the surface and they generally don’t make sense. Take the greatest superhero of all—Spider-Man. Don’t get me wrong, I love Spider-Man—my dad just loves to tell people about how his little girl said she was going to marry Peter Parker some day.
But think about Spider-Man, I mean, really think about him. Forget the superpower part—that’s stuff you just have to grant, that’s the price of admission to a superhero story. Radioactive spider? Why not. Gamma radiation? Space rays? Magic? Whatever. I’ll take it. But then there’s no reason the world around them has to be crazier than the real one (except maybe for throwing a couple of supervillains in, of course).
So back to Spider-Man. When he isn’t tussling with Doc Ock or the Green Goblin, he’s always stopping all these random muggings and murders. But how did he find these crimes in progress? Oh, he just swung around New York when he had some free time, basically scoping out random places. I mean, really. Even when New York was its killingest and muggingest, a dude just swinging around town randomly was NOT going to have good luck finding crime in progress on a regular basis. For one thing, New York is BIG. There’s a lot of land to cover and a ton of people in it! For another thing, crimes like those don’t take long to commit! They happen in an instant. Maybe a dude doing what Spider-Man did would stumble upon a few murders and muggings AFTER they had just happened, but there was just a ridiculous amount of crimes-in-progress in the comics.
I’ve taken a few criminology classes, and I just don’t think that method would cut it. Sorry, Spidey.
Moreover, Spider-Man would jump in to assist the authorities when some big or regular bad was causing ruckus and they were on it. This is a terrible idea! In those situations, everyone’s got twitchy trigger fingers and just jumping in could get people killed. And what really irks me, now that I’m old enough to think about it, is that those are exactly the problems you don’t need a Spider-Man to solve. The police already know there’s a problem; trained professionals have all the guns and manpower focused on solving it.
The real problem we have in this country, or any country, are all the crimes that no one ever speaks up about. Some of them no one even knows for sure. Stuff like domestic abuse, or criminal neglect, or murders and robberies that happen in really poor areas. Anything that flies under the radar of the cops and of most people most of the times except for the victims themselves and maybe a few people close to them.
We talked about this a fair amount in a technology and crime enforcement class I took one semester, and it got me thinking. We live in a time when a motivated hacker could probably find a few of these victims before things get really bad for them. Because of some looney quirk of human nature, everyone seems to talk about everything out in public these days—in places like Twitter, Facebook, Reddit, whatever. A lot of that can pretty easily be accessed through APIs or through a basic web crawler, if you’re desperate to get beyond API limits and you’ve got the storage space to put the stuff.
I decided to start simple, and stick with Twitter. Twitter’s got a straightforward API for downloading publicly viewable tweets. It also has some pretty strict limits on the amount you can download in a given time period. But it would be more than enough for me to start testing my algorithm, see if I was barking up the right tree.
Because getting data isn’t the problem in this day and age; it’s finding the stuff you actually care about. Separating the signal from the noise, and all that. If anyone could just roll up to Twitter and ask “who’s being beaten up by their husband regularly?” or “who has a high chance of committing a violent crime in the near future?” and get a list, well, there wouldn’t be a problem!
But on there are a TON of people saying a TON of stuff on Twitter every single second of every single day. You have to have some very clear criteria for what you consider to be warning signs. Phrases like “domestic abuse” or “my husband beat me” are more likely to get a ton of people talking about the former and talking way retrospectively about the latter than current and soon-to-be victims. You’ve got to have a few criteria you know have a high probability of being associated with the kind of victim you’re looking for, and a relatively low probability of being a false positive.
So I started putting together my algorithm. I put a lot of time and thought into that algorithm, but you can think of it as having three basic pieces. The first looks at a tweet and assigns it a score from 0 to 1000 based on how likely it is that the person who wrote it is a victim or is at high risk of becoming one. The second looks at the same tweet and gives it a similar score, only based on the chance that the person is totally A-OK, safe, low risk. I wanted at least two “perspectives” in case one of them was crap in certain cases; I put different inputs into each. For the first I used things like, the public statements of confirmed victims, or, if they existed, things they said on the web during the period that they were victimized. For the second I used things like, crude sorts of jokes that a simple keyword search might put in the victim or victimizer category. Like I said, I put a LOT of time into this—and I won’t bore you with just how much stuff I dug up to help the scoring system.
For the last piece, the algorithm subtracts the false positive score from the victim score, and presents a list in order of which tweets have the highest remaining number. For my initial testing, I just focused on the top ten results. If they were completely off the mark, I went back, tweaked the two scoring systems, and tried again. It took a few months of iterating like this before I hit paydirt.
Two tweets—from the same girl. Both of them showed clear warning signs that something bad was going on at home. I now know that I was just stupid lucky—the algorithm was nowhere near ready for prime time. After investigating her case it would be another month before I got it to a point where it was consistently giving me good leads.
But once I had this girl in my sights, I got to work. First I went to her account, and set my crawler on storing all 5,000 some tweets she had ever written. Then I created a new copy of my algorithm, and reworked it a bit to give me a frequency table of the distribution of scores it had given her tweets. At first glanced, they seemed not all that skewed towards the high-end. So I ran this second algorithm on the tweets I’d pulled from the API earlier, and sure enough, her distribution was far more weighted towards high scores than it was. I went through and crawled a few random twitter accounts for comparison before I was satisfied that I’d identified a real victim.
Then I cracked her accounts to get more information on her. Don’t get me wrong—I’m no lulzsec or master cracker. But people are really, really bad at security. They use short words that you can find in any dictionary as their passwords. They share things like their email addresses in easy to find places and they use those email accounts as their usernames for, like, EVERYTHING. This girl’s password ended up being “peaches”; she used it for absolutely everything. Sometimes I had to add a 1 to the end. But that was the extent of my troubles, once I figured out that “peaches” was the name of the game.
I put together a pretty detailed profile on her. For privacy’s sake, let’s call her “Brittany”. Brittany was, at that time, a 15-year-old black girl living in a converted brownstone apartment in Harlem with her parents. Her life seems pretty typical for a girl her age; she goes to school, she has friends, she thinks that the interpersonal drama in her daily life is the most important thing that has ever happened to anyone. Still, there were signs, if you knew to look for them.
She used Gchat quite a lot which made it super easy to peer into her conversations. Still, she’d been doing that for some time, so there was a lot to go through. I made a note to come up with a better system for this kind of thing later. But I got lucky—one friend seemed particularly persistent in inquiring about a bruise on the side of her arm. Let’s call this friend “Stacy”. Stacy wasn’t pushy about it, but she kept bringing it up, and I got the feeling she could tell what was what.
So I looked her up and decided to take a look at the world through her eyes a bit. It took about a day of work but I finally cracked her password for everything (“gurl123”). I confined my investigation to any mentions of Brittany in conversations with other people, and I found what I suspected might be there—a conversation with another friend about her suspicion that Brittany was being abused. She listed all of the times she had seen her show up with injuries—some subtle, others completely conspicuous. I saved the conversation and decided it was time to do some work outside the bounds of the computer.
OK, you’re going to think what I did next was stupid, so I want to explain myself first. I really just planned to go and gather some more evidence, and then turn that evidence over the the police anonymously. I put my camera in my bag and hopped on the subway and went up to a stop near Brittany’s house. I really thought that I’d just start coming by every so often to see if I could catch the dad in the act. If I didn’t after a few times, I figured I’d just confront the dad and threaten to expose him if he didn’t shape up. Probably not the best plan either, but…it was more a vague thought than a plan.
Anyway none of that really matters because when I got there, I saw her with both of her parents, and her dad gripping her really hard on her arm. I could see her flinching, and her mom trying not to notice. And it pissed me off.
So I did something stupid.
“Hey!” I shouted at them, and they ignored me like practiced New Yorkers. “Hey! I’m talking to you big guy! With the wife and kid!” He turned to look at me warily. He was kind of big, or rather, I’m kind of small and he wasn’t. But why stop when you’re already halfway into a stupid decision? “Can’t you see you’re practically breaking her arm?”
Brittany stared, wide-eyed, first at me, then at her father. He looked down at her, then let go, and she rushed over to her mother. He made his way over to me.
“Who the hell do you think you are?” He growled when he was a few feet away, “Are you some kind of stalker?”
“I—I know what you’ve been doing to her,” I said, trying to seem like I was totally unphased by a dude much bigger than I was getting up in my face.
“You don’t know shit,” he spat, inches from my face now, “you come up to my home, and start spewing this crap? In front of my family?” He didn’t say that he was going to hit me if I didn’t leave, but he might as well have.
“I know you’ve been hurting her,” I said firmly, digging in my heels when I probably should have just walked away, “and if you don’t stop, I’m going to tell the cops.”
“You’re not telling anyone you bitch,” he snarled. He swung at me pretty hard.
So here’s the thing. I don’t have some big superhero backstory involving a radioactive spider or a dead uncle who inspired me to do good or something. I’m just kind of a freak. People think I’m super fast—in elementary school I had the nickname “Bolt” because they said I was faster than lightning. But I’m not actually fast. I just have freaky good reflexes.
I’m not making this up. I’ve been studied and everything. I have like, ridiculous reflexes. Specialists have tried to measure just how fast my body unconsciously processes information and they haven’t been able to. It’s really, really fast. Which has helped with things like learning how to code—an activity that’s fundamentally about processing information, seeing patterns, understanding rules.
It also helped me dodge this big dude’s fist. Like, easily.
See, experienced fighters know that you telegraph the move you’re about to make in a hundred ways before you actually make it—especially something straightforward like an amateur’s punch. You rear back, lean your body back a bit, and then lean into it. To a freak like me, you are practically screaming “I AM GOING TO PUNCH YOU! AND I AM GOING TO DO IT IN THIS ONE SPECIFIC SPOT!” Moving out of the way is a piece of cake. Feels like I’ve got ages to do it.
Big guy leans way too into his punch (typical); he was not expecting to hit air. So I give his lower ankle a little kick and he falls on his face like an idiot. “Get up asshole,” I sneered, feeling maybe a bit overconfident, “can’t you even beat up a girl right?”
Antagonizing him was probably unnecessary and counterproductive, but what the hell, right? Why make bad choices by half? When he got back up, he was mega pissed. He tried to grab me, but I stepped back before he could. He started swinging again, and I got around it. At thsi point his wife is shouting at him to stop, and he tells her to shut up. This went on for a bit, so I won’t bore you with the details. But I was putting in a lot less effort than he was, and this guy wasn’t exactly Mr. Triathlon, so after not too long he starts breathing pretty heavy.
“You done?” I asked him.
“Fuck you,” he gasped, “stop fucking moving!”
So most people think martial arts is all about being butch and kicking ass, but actually martial arts was developed by some pretty brainy dudes. Kind of the nerds of ass-kicking. They didn’t win by being bigger or stronger than everyone; they figured out how to use the least amount of effort to do the greatest amount of damage. Always use “an economy of motion”, an instructor once said to me.
So before Mr. father of the year started to go after me again, I moved in quickly and gave him a good one in the throat. I’m no bodybuilder, but a well placed blow to the throat hurts! I speak from experience. More importantly, he had instinctively leaned away from my attack, so I actually ended up knocking him squarely on his back.
He was tired out from exerting himself and he was a fifty something who had landed on his back, hard. He wasn’t going be getting up. “Honey!” His wife shouted, running over and crouching by him. He moaned in pain. I stole a glance over at Brittany, who looked terrified. I felt a sudden attack of self-doubt—what the hell was I doing there? What did I think I was going to accomplish by kicking this old guy’s ass?
Which was all I had time to think when I realized that the lady was taking a swing at me herself. “Whoa, lady!” I said, avoiding it.
“Who the fuck are you?!” She shouted, “I’m calling the cops you crazy bitch!”
“Funny how you never did that all the times your husband was beating up your daughter,” I shot back, feeling pretty pissed myself.
“It’s not…it’s not as simple as all that,” she protested, her anger deflating a bit.
“Seems as simple as a father abusing his own daughter can be.”
“Shut your mouth,” she snapped, anger returning, “you don’t know the first thing about it. You don’t know anything.” He was started to sit himself up, slowly. She helped him onto his feet. “Come on, baby. Let’s go home.”
I watched her assist him back into their home, wondering how this shambling, injured old man could have seemed so big and intimidating. If he’d looked like this when we met I probably wouldn’t have picked a fight with the dude. I had to wonder how Brittany felt, seeing him like that.
I was going to just get out of there, but then Brittany asked “Who are you?”
It was just the two of us in the street at that moment. Maybe that was why I said what I said. I don’t know. Whatever the reason, I opened my mouth and said the corniest thing I’ve ever said, which is a high bar.
“They call me Bolt,” I told her, in some weird attempt to reclaim the superheroness of the moment.
But you know, I don’t mind the weird name aspect of superheroes. Actually, truth be told, I kind of like them.
Now all I need is a costume.