Deskbot is a cross-platform desktop-based Jabber client for talking to a single user – normally a bot.


This is a screenshot of me using it to talk to the bot we run at work and asking for the details of a particular user.It’s written in wxRuby and uses xmpp4r-simple. There is a slight complication writing applications which need to poll a queue in wxRuby (such as the list of incoming replies from the bot) since you can’t just use green Thread objects and must use a Timer to make sure the Thread gets serviced. Very annoying.You can get the code like this:

bzr get

You need to configure both who deskbot logs in as, and who it’s talking to in the code. There are some interesting questions around presence, invisibility, and client redirection here, but I just created a test account to log in as, and the bot already existed to talk to.

Theoretically I should be using things like ad-hoc commands and data forms, but I’m way too lazy.

It’s only a demo bit of code really and not enough to talk about, but I promised myself I would talk about more of the code I write!

Jabber transports and reliability

There is an open letter up on the Cocinella website about why IM clients which come bundled with support for multiple protocols are actually bad for interop.

I actually agree, but the problems listed about using transports as the solution are not merely theoretical.

I have been a Jabber user for more than six years and I have not found a single remotely hosted transport that I can rely on for the critical task of actually communicating with other people.

As far as I’m concerned, should be hosting the most reliable transports on the planet and then making sure that other servers who want to run them can do so in a reliable way. There is nothing more likely to turn someone off than the promise of practical cross-protocol support turning out to be nothing more than wishful thinking.

Please apply for a job at Jive

At work we’re playing with Openfire, the Java-based Jabber/XMPP server. There are parts that are *cough* sub-optimal so we want to fix them. It’s open source and builds using Ant. So far, so straightforward.

I want to modify some core code so went looking for the unit tests to make sure that my changes wouldn’t break anything. Oh dear lord. A few hours of sobbing to myself later and I can only hope that they get someone for this job really soon.