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?"
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.