motd.co: Is @jargotron a Twitter Bot? Wow, okay!

Brock Jargotron started with a joke.

Some people, when confronted with a problem, think “I know, I’ll use regular expressions.” Now they have two problems.

The computer science/tech community has, over time, taken this joke template and messed with it, swapping the subject of any amount of ire in instead of “regular expressions”, sometimes even changing the punchline to comment on the troubles of that particular technology. Communities love making jokes on Twitter— jokes fit well into tweets, they’re eminently retweetable, and in general it’s fun to think you’re being funny. Most jokes on Twitter aren’t really that funny, though, and it was with that thought that I decided I would make a bot to make bad “tech” (I’m really starting to hate that term) jokes.

I started pulling all the proper nouns from a few Twitter feeds— HackerNews, TechCrunch, those sorts of things. What I wanted to do was try to figure out what those proper nouns were: people? frameworks? programming languages? So I started futzing around with a few other APIs; Freebase, Wikipedia, and more. I began looking at what my options were as far as using analysis tools to try to guess about what the proper nouns were. It got complicated and on top of the actual learning-about-text-analysis stuff there was also the usual this-gem-hasn’t-been-updated-to-work-with-this-version-but-that-gem-requires-this-version type of thing and it got pretty frustrating. I stepped back and thought about it. I wanted my Twitter bot to be able to categorize these things so that it knew what joke templates to plug the nouns into. Why couldn’t it just ask its followers for advice?

So that’s how we ended up with @jargotron. Every hour, more or less on the hour, he tweets a question. He’s trying to learn something about a proper noun he doesn’t currently know enough to make a joke about.

Twenty minutes later, he collates all the replies he’s received to that question and mulls them over. If the majority of people responded in the affirmative in a way he could interpret, then he takes that as gospel and remembers it— for now, he remembers that forever. (That’ll change soon.)

At somewhere around 40 minutes past the hour, @jargotron attempts to make a joke. He can only do so if he’s learned enough about any topics to do so. As of today, after five days of asking questions nonstop, he hasn’t managed to do it yet. But he’s close! The reactions I’ve gotten to the bot so far have been all over the map. Some people are really excited about the prospect of lying to him, others are genuinely upset when he learns something untrue. I think some people are just happy to watch the question back-and-forth happen, while others are impatient for the “punchline”.

So that’s @jargotron. It’s sometimes hilarious and sometimes infuriating but I think maybe that’s exactly what I wanted all along. I’ve got some plans to fix up a few pieces here and there, but I’ve also got a bigger idea for where to take it: SIBLINGS.

One thing I think would be really interesting, as the bot’s code gets better, is to try dropping it into other communities. I’d love to see a bot ask questions about movies, music, video games, sports, and so forth. If anyone wants to work with me on that, the code is 100% reusable, it just needs to be set up with a seed database of topics, categories, and joke templates. Some of the “tone”— the way the bot phrases its tweets, the little extra bits of copy, etc— is hard-coded for now but I’m going to pull that out into the database as well so that the bot’s look-and-feel can be retrofitted in whatever way seems best.