A P2P AIM Robot in Perl
A P2P AIM Robot in Perl
P2P, IRC, and IMs
I was going to write something practical and useful, but I had a bout of inspiration as I've been mulling over the new Peer 2 Peer (P2P) discussions happening in part because of the notoriety Napster has been getting lately. Dave Winer wrote a good editorial on what P2P is at http://davenet.userland.com/2000/09/20/whatIsP2p. I've also noticed that Tim O'Reilly has taken an interest in P2P technologies. He held a P2P Summit recently of which the details can be had at http://www.oreillynet.com/pub/a/linux/2000/09/22/p2psummit.html. There's also a roundtable discussion there with Tim O'Reilly and Jon Udell on P2P applications. I'm still trying to figure out if P2P is hype or if there's really something interesting here. I'll keep you posted. If you have some suggestions on how P2P will make an impact, please send them to me.
IRC, Instant Messaging, and Jabber
I've long been a user of IRC and have basically ignored instant messengers like AOL Instant Messenger (AIM) and ICQ. I've only recently become interested for two basic reasons. First, almost every lamer I know uses an instant messenger. Some of these folks have never heard of IRC. Has it really been that long people? The second reason I'm now more interested in these God awful things is because of Jabber. Jabber (http://www.jabber.org) is an Open Source project that's developing a messaging server that will network all of the other IM networks. They're also writing Jabber clients for Windows and Linux. It's interesting to note that their message transport is XML-based which means you could easily tie your own applications to a Jabber server. Are your gears turning yet? These developments are going to make things exciting me thinks. Since I've been working on delivering multiple kinds of content to multiple kinds of devices like WAP phones, PDAs, voice, etc., adding IMs to the list makes sense doesn't it? Why am I interested? Because these are all stepping stones to something a lot more interesting; that is, technology to deliver relevant information to people no matter where they are. Interaction is key here. Anyway, I'm rambling; I'll save that bit for another time.
Goodies in this article
So if you're already bored with my rhetoric, let me give you a summary of what we're going to do. We're going to start by hacking a script that initiates conversations with AIM users, then we'll implement an Eliza AIM chatter-bot. Finally, we'll learn how to write a Perl plugin for Gaim that uses Festival to synthesize incoming messages from other users. If that doesn't knock your socks off, I'm going home. Wow! If you just want to download the three examples, here they are: aim_message.pl, aim_eliza.pl, aim_fest_plugin.pl