POSTS

The CoffeeOutside Bot

One of the fun things I do outside of computers is meet with friends for coffee on Friday mornings at various outdoor parks in Calgary. When we first started meeting regularly, choosing the location for Friday morning involved a series of tweets beforehand as we hashed out the location details.

This process (if you could call it that) lead to some difficulty, and if you were late to the Twitter thread there was the possibility that come Friday morning, you wouldn’t know where to actually meet. Or worse, two different locations would be decided at the same time, and there’d be the mad scramble to figure out which location we would actually meet at.

This lead to the first major organizational advance on January 2016 - I created the @coffeeoutside Twitter account which announced where the meeting would be happening. A great leap forward for our little group, we were genuinely surprised we were able to snag that Twitter handle. There was a problem, though - it still involved human wrangling to decide a location. And since I was the one who opened the account, I still had to get the conversation going of where to meet, then tweet it out.

After intense brainstorming in our group over the course of many weeks, we decided that, using state-of-the-art artificial intelligence, a Twitter bot should be brought to life to determine where our Friday meetings should be held.

The initial CoffeeOutside bot was a “Magic 8-ball”-type program where it chose at random from a list of locations. This was a promising breakthrough, and after some initial stumbling getting the cron configuration correct, there was now a sole tweet on Wednesday nights (besides the ones of jubilation), announcing the location.

The CoffeeOutside bot’s abilities grew as the needs of the group evolved. Override functionality was put in place to prevent the AI from killing as well as the ability to let a human choose a location, without needing to manually disable the cron job. Hashtags and warm human-y language were added to the tweets, so that the AI seemed less menacing, more helpful. The ability to remember past locations, and avoiding them when choosing.

But while these advances were great and appreciated, the game changed on the weekend of Winter Bike To Work Day 2017, when, after a long fever spell, I added a forecast lookup, so that the bot would only choose locations that make sense according to the weather. With this, the CoffeeOutside bot became fully autonomous, no longer needing humans to help it come to the conclusion of “where should we go for coffee on Friday?”

A rewrite of the codebase was finished in 2020, which expanded the bot’s reach with calendar integration (reducing reliance on Twitter for getting the word out).

The source code for this ‘ground-breaking AI’ is on GitHub, and was designed so that #CoffeeOutside meetups can blossom all over the world with minimal setup.