Table of Contents

Quest #3: IRC bots for fun and profit

So far your quests have found you unraveling puzzles and unlocking secrets.

Now, as your experience has been growing by leaps and bounds, a new challenge awaits you…

Many have heard of the legendary Wezlbot that resides on our IRC server, and some have even ventured into its very presence.

The fascination with Wezlbot, an IRC bot, continues to this day. Aided with its Artificial “Intelligence”, entire conversations take place throughout the day and well into the night.

Your mission

Once again putting your skills to the test, your mission is to deploy IRC bots of your own, arming them with the capability of eventual conversation, gathering them on IRC, and adequately documenting all efforts on the wiki.

With that said, I'll say I do not expect most of you to presently have all the skills needed to pull this off; what you do have are all the ingredients you need:

I would also caution people against looking at the desired end point first and foremost… the end result is the result of an involved process. Those stuck looking at trying to achieve the end result may fear this is too challenging, or too difficult; but I tell you that is not the case.

… but I would also say it is highly recommended you do not wait until Friday to get started.

Requirements

To successfully complete this quest, I would like to see from each of you:

  1. an IRC bot deployed by you onto our IRC server, in channel #botchan
  2. it should NOT appear in #unix or any of the other class channels
  3. while testing it, you can have it appear in a segregated and empty channel of your choice
  4. have it possess some unique and non-offensive name
  5. some notable functionality (AI w/ MegaHAL module, weather reporting, quizzes, ASCII art, etc.)
  6. you to also be in #botchan and demonstrate interactivity with your bot
  7. an e-mail from you indicating neat functionality of your bot, and a link to your wiki documentation
  8. it needs to play nice with others in the channel… no infinite bot loops
  9. be a responsible influence on it, keep its vocabulary clean

Your bot must actually DO something aside from just reside in the room. And I should be able to evoke some action from it (that's where you're telling me how best to interact with it).

What's just as important as having a working bot is having your own documentation that you have written describing in painstaking detail and explanation how to set up, deploy, interact, and generally care for your bot.

As indicated, I want each person to have deployed their own bot, and have their own wiki documentation. You may help each other as you have been– via the mailing list or IRC… give helpful pointers (did you check the logs? what did the instructions say at that point? what site did you find that tutorial?), but I don't want you setting up someone else's bot.

This will not be an immediate or instantly gratifying process. If you do not read carefully, you may miss important details.

Additionally, even if you read the instructions precisely, something may not work (it usually doesn't end up working the first, second, or even third time)… this will give you the opportunity to further deploy your forensic skills in determining the causes to non-operation or deviations from desired operation (especially learning to appreciate the value of reading output, errors, and log files).

And, as I said, this puts together the various skills you've encountered in the class thus far. You may not know how to SPECIFICALLY accomplish this, but with some patience, effort, and learning how to ask good questions, you can muddle your way through to success.

Configuration Information

Some information you may find valuable to you in the configuration of your bot (you'll be doing this on Lab46):

Recommendations

As you will see, IRC bots are not some rare thing.. they've enjoyed a rich history through much of the age of the public internet (some of the oldest ones being started in 1993!)

Although there are likely several different solutions to this quest, following will be some recommendations you may want to consider: