Twelve bots in twelve months

3 February 2016

I didn’t really make any resolutions this year, but I do have a plan of sorts that will help me to continue learning JavaScript and nodejs, and express a little creativity. It’s two words that sometimes provoke uncontrolled rage: Twitter bots.

Twitter is full of automated accounts and even more full of automated tweets. The incidence of spammy bots seems to have increased recently, as noted by Tim Burrowes. I’ve certainly noticed it myself - at least half of the new accounts following me in the last six months are obviously spam bots (usually porn) or inexplicable but likely bots. It’s so bad, DARPA have started a program to identify and eliminate Twitter bots automatically. Some people, however, are using Twitter a little more creatively.

The first ‘creative’ bot I ever noticed on Twitter is probably Robot J. McCarthy, which randomly replies to tweets with ‘communist’ or ‘commie’ in them. But in the last couple of years Twitter bots have become more prolific as an artform. Darius Kazemi is "The botmaker who sees through the internet". He has created a huge number of Twitter bots - whimsical, fun, weird, and sometimes a little disturbing. My favourite, and one of his most popular bots, is Two Headlines, but there are plenty to choose from. Another prolific botmaker is Nora Reed, creator of the wonderful Thinkpiece Bot. Reed’s work is interesting because whereas Kazemi is a programmer and his work includes other ‘bots’ and automata on the broader web, Reed creates her bots using a third-party ‘bot creating’ service. Reed’s work is no less legitimate for this: her creativity is expressed through the way she constructs triggers and phrases to interact with each other, not in the engineering that makes those design decisions work. Indeed she spends a lot of time updating them to keep them topical.

Whilst Kazemi and Reed both often hope to provoke reflection, others are a little more direct in the way they use Twitter bots. Mark Sample calls these ‘Bots of Conviction’ or 'protest bots', and contrasts them with bots like Two Headlines and Thinkpiece Bot. Riffing off folksinger Phil Ochs, he says "A protest bot is a bot so specific you can’t mistake it for bullshit". Sample provides the example of Ed Summers’ Congress Edits and his own NRA_Tally. Sample says such bots are topical, data-based, cumulative, oppositional and uncanny. I would include Tim Sherratt’s Operation Random Words as a ‘protest bot’, though it doesn’t really comply with the ‘data based’ requirement. Operation Random Words is, in turn, being used as source material for Operation Bot Defined:

Inspired by these creators, I’ve set myself a target of twelve Twitter bots in the twelve months of 2016. My first bot was of course Aus GLAM blog bot, which I created last year and have written about before. I had a lot of fun making this service, and I got a little hooked on the instant gratification of Twitter’s API. So far I’ve created four, but one of them is a bit of a sleeper at the moment because I need to tune it properly (aka it’s not working the way I expected).

Library Conference is one you may have seen me retweeting a lot in the last few weeks. I coded this up between Christmas and New Year. It tweets fake library conference papers every two hours. It’s a pretty sarcastic piece of work - I was inspired to make it after reading one too many headlines asking "Is x is the future of libraries?". It combines partial headlines from the Reuters RSS feed, trending terms from Australian Twitter, and random nouns:

Human Flight is a bot I’ve been much quieter about. Partially this is because it was much tricker to make, and I wasn’t sure it was working correctly. Partially it’s because it is actually quite an annoying bot. I was inspired by astrophysicist Dr Katherine J Mack, who last year lamented that "manned space flight" is still being used to describe crewed space expeditions. Human Flight runs every 17 minutes and responds to tweets it finds that include both ‘manned’ and ‘flight’ (the Twitter API doesn’t allow phrase searching, and I’m not yet sophisticated enough to do anything really fancy). It then politely suggests alternatives to ‘manned flight’ or ‘manned space flight’. Responses have, surprisingly, been about 40% positive so far.

Hi @eliseotecleo Valentina Tereshkova went to space in 1963. Next time try "crewed". — Human Flight (@flight_bot) January 24, 2016

My latest bot is Delayed Transport Vic - providing whimsical Melbourne public transport alerts. The idea came from Jaye Weatherburn - on Twitter, of course.

I’m trying to challenge myself a little more each time I make a bot. Library Conference uses an RSS feed, the same as Aus GLAM blogs bot, but also utilises Twitter trends. Human Flight contains the least code, but involves interacting with other accounts. The trickiest thing there was to make sure it wasn’t responding to retweets and quoted tweets, and initially I forgot to make sure it wasn’t responding to itself, which was disastrously circular! Delayed Transport Victoria uses five JSON files, as well as the Open Weather Map API to give a bit of a sense of the alerts relating to current events. It also tweets at specific times of the day, rather than just on a loop, which involves new challenges like having to account for Australian Daylight Saving time and work out what day of the week it is in Melbourne when the server is in Toronto. I haven't quite got it right yet, and need to make some adjustments, but that’s just part of botmaker life.

I’ve got a list of future bot ideas (including some ‘protest bots’), but I’d love to hear any ideas for bots you would like to see. You can let me know by email or, of course, on Twitter. I’ll be posting code for all my bots on GitLab.