blog

Babble: Instant messaging for Plone

| categories: babble, instance messaging, open source, plone

babble.client is new a chat client for Plone, similar in style to Google Chat and Facebook Chat.

I've been having a lot of fun at Syslab recently working on an Instant Messaging client and server combo for Plone. The client app is a Plone add-on (for both versions 3 and 4), which makes use of JQuery, polling and Ajax techniques, to try and create a Facebook/Google like chatting experience. Thanks to the excellent cross-browser support of JQuery, I didn't have to spend a lot of time getting it to work on Internet Explorer.

The messaging server is a pure Zope 2 application and was designed to be a standalone and independently usable service, unaware of any client side solution. Its design is based on an earlier version that I had worked on at Upfront Systems, and for which Roché Compaan deserves a lot of of the credit.

Great, I would like to try out a DEMO!

For anyone curious to check it out, I've created a demo that automatically sets up a working Babble environment.

Please take note that this demo is not intended to be included in an existing Plone environment. It's a separate buildout with a Zeo server and two clients (running under Supervisord) and a policy egg that installs and configures the message server and client.

If you include the babble.demo egg in another buildout, the Zeo setup and instance ports will most likely be different, requiring you to set up the portal_chat tool by yourself, thereby defeating the purpose of having a self-configuring demo.

Cool, I love to read docs, where are they?

Good! I've created Sphinx documentation that you may peruse for your reading pleasure.

What's in a name?

For lack (and want) of an awesome name, I googled for Synonym + Chat and relatively quickly settled on Babble, only later realising that I chose a name that specifically refers to meaningless babby chatter and more generally functions as a less-than-complimentary description of someone's incoherent ramblings.

Babble:

  • utter meaningless sounds, like a baby, or utter in an incoherent way; "The old man is only babbling--don't pay attention"
  • to talk foolishly; "The two women babbled and crooned at the baby"
  • ripple: flow in an irregular current with a bubbling noise; "babbling brooks"
  • spill the beans: divulge confidential information or secrets; "Be careful--his secretary talks"
  • gibberish resembling the sounds of a baby

Babblebabblebabblebbable

That's it. If you have encountered any problems or bugs while setting up and using Babble, feel free to contact me. Suggestions are also welcome.

Thanks to Nikel Weiss, who helped me with some testing and provided helpful suggestions and feedback. Thanks also to Alex Pilz for not deciding to use a Freenode solution ;)

Examples:

By itself, Babble provides a special Who's online? portlet, to show currently active users. When you click on a user, a chat window will pop up at the bottom.

/img/copy_of_Screenshot1.png

Babble is similar in looks to Facebook's chat client. If you liked the bottom panel that Facebook sported (until recently), then make sure to also install actionbar.babble. This egg provides Babble integration for the ActionBar panel. See the screenshot below for an example:

Babble with the ActionBar