Friday, October 22, 2010

My Sametime Plugin Portifolio

Hackday 8 is being held today. It is very common for people to write Sametime plugins as their Hackday project and a  number of people have asked me for ideas for what would be a typical Sametime plugin that could be developed for Hackday. The best advice I can give is to provide them the list of the plugin projects that I have been involved in. Most of these plugins were developed before I became a member of the Sametime development team - some of these are all my own work, but others are joint projects with other people. Many (but not all) of these were Hackday projects and perhaps they will inspire ideas for other people.
  • Smasher - This plugin was developed as a simple tool to authenticate with the boundary firewalls used on the IBM network. It was my first ever Sametime plugin, in fact it was originally developed before the Sametime client adopted a plugin architecture. The smasher development is fully described in an earlier blog posting.
  • Auto-Hello -  Many people choose to start Sametime chats by sending a simple message Hi or Hello. to which I must reply Hello before the conversation really starts. I developed the Auto-Hello plugin to automate this process. After I released the first version, I learned that Sebastian Thomischke had already developed a similar plug-in so I collaborated with him on this plugin. This plugin never have many active users and when Sebastian left IBM the source code was lost.
  • Proxy Buddies - When the person you want to chat with is not on-line, you must find someone else to chat with. For Hackday 4, I worked with Mark Wallace to develop the proxy buddies plugin which was an automated utility to select someone else to chat with. It was implemented in a modular way where separate plugins could provide different mechanisms for finding alternative buddies to chat with. We developed plugins which would provide lists based upon:
    • Looking for on-line people within the target person's management chain
    • Looking for people in the same department as the target person
    • Searching for people within the target's person's social network by using the SONAR API
  • Message Attendant - some instant messaging systems (but not Sametime) provide a capability of sending instant messages to people who are not currently on-line. I was thinking about ways to achieve the same functionality in Sametime and I came up with a secure mechanism whereby a Sametime user could provide limited delegated authority to a bot program to take messages on their behalf when they are not online. This mechanism was subsequently the subject of a patent application, so I can't describe too much detail here.
  • IMQ (or Instant Message Queue) - was another attempt to tackle the issue of sending messages to people who are not on-line. It works by allowing people to queue up messages so that they will be automatically delivered when the person was next on-line. This plugin received a mixed reaction. Some people thought it was very useful function, but others thought that it was a potential source of SPIM. After hearing the concerns, I added features to stop the inappropriate use of the plugin. However, the feature was never adopted into the core product because of the mixed reactions.
  • MicroBlogCentral/Status Updater - My idea for a Hackday 6.5 project was to  develop a Sametime plugin which would be able to post to several micro-blog sites at once. When I did investigation, I found out that Jessica Ramirez had already developed such a plugin, so instead I decided to team up with her to extend her plugin. A few other people joined in with us and the resultant project is described in detail by me in an earlier blog post. A version of the plugin with slightly reduced  functionality was subsequently released under an open source license through OpenNTF.
  • Persistent Note store - A customer was developing a Sametime extension with the Sametime Connect Toolkit, but they ran into problems when they cound that they needed to use functions which are only available from the Sametime Java Toolkit. They contacted me through their support representative to ask if it was possible to mix the two toolkits in a single extension. I advised them that such mixing was possible and in order to illustrate the method, I sent them code that extended the BuddyNote sample that ships  with the Sametime Connect Toolkit to store the notes on the Sametime server instead of the local file system (this was only possible by using the APIs provided in the Sametime Java Toolkit). This was subsequently published in an article on the DeveloperWorks site.
I hope this list provides Hackers with the capabilities of the Sametime platform and inspiration for their own Hacks.


  1. Hi Brian -
    Thanks for writing Smasher. I've been using it for 2 years with several versions of Sametime
    including ST 7.5.1 and 8.0.2. However, I've just had to upgrade to Sametime 8.5.1 and can no longer find Smasher. Can you tell me if Smasher is supported for ST 8.5.1 and how I can configure ST to find and install it? If not
    supported for ST 8.5.1, is there a plug-in that
    does the same thing (autheticate with BSO firewall).

    Barry Draper
    Content Manager Collaboration Services &
    Document Manager teams

  2. Barry,
    I am glad you like smasher. It is not really "supported" at all, but I think it does work with ST8.5.1. I suspect your problem could be caused by the plugin being disabled as a side effect of your upgrade. Try the instructions on the following wiki page

    I don't use smasher myself any more (although I know many people do). I currently use the BugMeNot plugin for Firefox that Stephen Kruger wrote (see )