PyCon 2016 in Portland, Or
hills next to breadcrumb illustration

Wednesday 1:50 p.m.–2:20 p.m.

Small Batch Artisanal Bots: Let's Make Friends

Elizabeth Uselton

Audience level:


Bots are a fun, creative, community oriented project. They are perfect for a beginning programmer looking to build something cool, but open ended enough to hold the interest of an experienced developer. In this talk we'll go over the Python tools for building a great twitter bot, including where to find fun data sets, hosting your bot, delayed jobs, and examples of weird and wonderful bots.


Accessible to beginners but entertaining for experienced developers, bots are a great project to sharpen your skills or build a new toy. Python is an especially great language for bots due to its wealth of natural language and data parsing tools. 1. Examples: By showing great examples of the genre, I want to whet the appetite of the audience, getting them laughing and thinking about what can be created, and what they'd like to create. I'd select bots for this that show many different kinds of bots, from hard coded bots like Stealth Mountain, to bots with heavy natural language processing, to ebooks bots, to bots that mash up fun datasets. 2. Set Up: We'll briefly go over the pieces in setting up a bot, using twitter as an example, but focusing on the basic pieces such as interacting with an API, remote hosting, and background jobs to let the bot run automatically. The goal for this segment is for it to be simple enough for beginners to follow, but not get dragged down in details that audience members won't remember. An accompanying how to blog post seems like the right thing. 3. Tools: I'll discuss different Python libraries, resources, and ideas people might want to use to build the meat of their bot. My plan is to tie this back to the earlier examples, pointing out which bots employ which strategies to do the sometimes spontaneous and magical seeming things that bots do. From NLTK, to sentiment analysis, to Markov Chains, to data scraping, I think that having a concrete example drives home how people are using this technology and will motivate the audience to think what they can do with it.