Let's Make an IRC Bot

*
Accepted Session
Long Form
Intermediate
Scheduled: Thursday, June 28, 2012 from 10:00 – 11:45am in B302/303

Excerpt

Let's make an IRC bot together. A room of people will either come together, or break up into teams to create an IRC bot within the context of a session. What the bot will do, is up to the people in the room. The outcome is different every time, but it will surely teach us something about technology, and human nature.

Description

A computer is required for this session. This is an experiment, so come willing to learn and make something.

This talk will use a project that has been built here in Portland called ZenIRCBot, which uses Redis pubsub as a message bus on the backend of an IRC bot. This allows you to write an IRC client in around 30 or 40 lines of code. Basically you just use an IRC library to connect to a server, and publish the messages via redis. Then another pubsub channel is where your services give you replies that should go back into IRC. This means the “Bot” part of the code is totally decoupled from the services it’s running.

The interesting part of this is that when you abstract the communication across processes, you also get abstraction across a network. When you simply let redis listen on interfaces that aren’t “No place like home”, you allow people on your local network (or the internet) to plug into the stream of events in IRC.

The purpose of this talk is to take a room of people, and try and build something amazing. I will be running a local IRC server, and an instance of ZenIRCBot, and a Redis server. Then all the the attendees of the talk who have laptops will be able to collaboratively build an IRC bot. They only need a Redis or HTTP client (we will be using webhooks from the bot over HTTP so they can use a HTTP request/response for IRC messages). Then we will see what gets built.

The bots will be able to have a backchannel feedback loop, so attendees will be able to collaborate on ideas that allow cooperation between their own bot commands.

I will come into the session with a couple of ideas for things to build:

  • Competing IRC bots that battle each other
  • Build a poker bot
  • Build a bot that can respond to common human phrases (Turing Test?)

I will start the session explaining the above, and spend 5-10 minutes talking about how the bot works, why it’s interesting, and how people can set up a client for it. Then I will present the above ideas (and others I come up with between now and the talk) at the beginning of the session. I will also ask the audience for ideas for the bot as well. I will allow people to vote on the idea(s) that we will build. Then we will either break up into teams, or create an atmosphere for collaboratively developing the sets of commands that are required to build our idea.

Speaking experience

I have spoken at multiple Django conferences, last year's OS Bridge and OSCON, as well as multiple user groups in the towns that I've lived in.

Speaker

  • Avatar

    Eric Holscher

    Urban Airship

    Biography

    Eric is a developer at Urban Airship. He has a blog called Surfing in Kansas where he talks about testing and other Python, Ops, and Testing related things. When not working, he is probably hacking from a hammock somewhere in the world.

    Sessions

      • Title: Let's Make an IRC Bot
      • Track: Chemistry
      • Room: B302/303
      • Time: 10:0011:45am
      • Excerpt:

        Let’s make an IRC bot together. A room of people will either come together, or break up into teams to create an IRC bot within the context of a session. What the bot will do, is up to the people in the room. The outcome is different every time, but it will surely teach us something about technology, and human nature.

      • Speakers: Eric Holscher