Status Update: April 17, 2012

A lot has happened in the past two months since our last post: we’ve been quite busy trying to fix the list of blockers for Instantbird 1.2!

We’ve again joined Mozilla as part of their application for Google Summer of Code. You can see some of our ideas on Mozilla’s wiki. (We should find out soon whether Instantbird will be doing any projects or not this year!)

What’s New?

  • The JavaScript IRC implementation has landed! Many minor bugs were also fixed. The behavior is mostly the same as the old libpurple implementations, but there are differences. If you see issues, please file a bug! This will allow for better IRC support in the future.
  • The tab completion algorithm has been made smarter:
    • It now prefers the last person to have pinged you if there are multiple possible completions.
    • Addressing multiple participants is now handled gracefully.
  • There is now a reading position marker to show which messages arrived since you last viewed a conversation.
  • Updated to Mozilla 11.
  • A few crashers have been fixed.

What’s Coming Soon / Being Worked On?

What’s this I hear about Thunderbird integrating instant messaging code from Instantbird?

You may have heard that instant messaging was recently added to Thunderbird. This work was done by our very own Florian Quèze! Don’t panic though! This doesn’t mean that Instantbird development is stopping, we strongly believe there is a place for both a standalone instant messenger and a more integrated approach with email. This is a mutually beneficial relationship between Instantbird and Thunderbird where we share code, benefit from more testing and get a set of new people — and ideas — involved in making instant messaging easier and more about how you — the user — wants it!

For those curious, approximately one-third of the Instantbird codebase is now in Thunderbird’s Daily and Earlybird builds.  Feel free to give it a try and file any bugs in Mozilla’s bugtracker. Currently it looks like this feature will likely appear in Thunderbird 15.

We’re getting close to the Instantbird 1.2 release and we think there’s been a lot of great improvements that will make it easier and more natural to instant message with your friends, family, co-workers and others!

The Interruptions Manager

For Instantbird 1.1, which will be released soon, we realized a weak spot in our API was the ability to control whether events should be shown to a user or cancelled under certain conditions.  This fits in as part of our mission about giving control of instant messaging to the user: the user should only be interrupted by events that deserve their attention.  If you’re wondering how this is useful; extensions now have great control over how Instantbird is allowed to interact with the user.  For example, extensions could: keep conversations from opening (i.e. spam guards), quiet sounds during a full screen video, or even stop new conversations from opening if the user has set their status as Unavailable.

Extensions are able to simply register themselves with the interruptions manager and they will automatically be notified if certain events happen, including when Instantbird wants to: get your attention (e.g. flash the task bar), open a new conversation, play a sound or show a message notification.

The API is really easy to use and we’ve created some example add-ons that use it!  We have created an an add-on to not allow the NickServ from IRC accounts to open (source), an update of NickServKiller. Additionally there is an add-on to force auto-joined chats to be held on the buddy list (source), allowing you to give them your attention when you want to.  Another example of a great add-on is the Do Not Disturb add-on, which does not allow Instantbird to disturb the user while their status is set to Unavailable, really allowing you to concentrate on something more important (source).

There’s also a skeleton for an anti-spam add-on (an often requested feature!) that is just waiting to be finished!  Contact us on #instantbird on irc.mozilla.org if you’re interested in helping out.  And don’t worry, these extensions will be available on addons.instantbird.org soon!

We think this is a great addition for add-on developers working on Instantbird and can’t wait to see what exciting ideas people come up with!

IRC in Javascript - a contributor’s work

A short time after Instantbird 0.2 was released the js-proto branch was merged into the main development tree. This was the branch where the backend of Instantbird was prepared to support protocol plugins written entirely in Javascript. Not long after that, Patrick Cloke, an active contributor of the project, started working on an implementation of the IRC protocol plugin in Javascript.

Now he has written a long and detailed posting on his blog about the hows and whys, as well as the current status of his work. It’s spiced with lots of references to both Instantbird and specifications of the protocol. So if you’re interested in the technical aspects of Instantbird and how to extend Instantbird with a protocol plugin written in JS then you definitely should go and read it at his blog.