Skip to content

Introduction to Slack and Limbo

David Chaiken edited this page Feb 4, 2018 · 2 revisions

Introduction

Slack is a cloud-based work team collaboration tool -- to oversimplify, it is chat rooms for the workplace (in Slack, these chat rooms are called "channels"). Slack has an API that allow "chatbots" to listen to the messages in these channels and to post responses if they so chose. (In the context of Slack, these chatbots are sometimes called "Slackbots.") We will be using Slack both as a team collaboration tool for the members of the class, and as the focus of our lab work.

Slack as collaboration tool

Every student and instructor should use Slack as a team collaboration tool. We will be using Slack as a collaboration tool in the class. On the first day of class we will provision students into Slack. Slack is intuitive to use, so we don't expect students to need much help even if they've never used Slack before. However, there are many Slack tutorials on the Web if a students wants to become more familiar with it.

We have setup a Slack channel called #help. The instructors will get notified of all messages sent to this channel. During class and office hours, we will respond immediately; during other hours we will make a best effort. We encourage all students to subscribe to this channel and to help their fellow students when the can do so.

As you form into teams to build your own Slackbot (see below), we encourage you to create a Slack channel for your team and use Slack as a collaboration tool for your work. (Slack has integrations for GitHub, TravisCI, and PagerDuty -- tools we will be using in the class.)

Slack and Limbo as laboratory fixture

As mentioned, our lab work will be based on building and operating Slack chatbots. For this purpose, we have forked an Open Source Slackbot called Limbo. Our fork is in the tim77code/limbo GitHub repository. On day one of the course, you will be given instructions for building and operating Limbo.

We chose Limbo because it has a plug-in architecture: you can create a Limbo called "foo" which listens for commands prefixed with the text !foo COMMAND and does something interesting. For example, !calc 2+2 will return the answer "4", and !weather 02139 will return the weather for zip code "02139."

During the week of the workshop, we hope that students have time to create their own plugins for Limbo -- which is to day, will create their own Slackbot. Further, we hope students will form into teams to do so, to get a more life-like experience of building and operating a service, which is almost always done in a team setting. The last day of the workshop will be dedicated to demonstrations of these student Slackbots.