Status Update: April 2011 - May 2011

A lot has been going on for Instantbird as the pace has been picking up as we approach the release of 0.3. Below we’ve highlighted some of the exciting new features that have become available since our last update. Some of these are currently available in 0.3 alpha 2, and the rest are available in the nightly builds! They’ll of course be included in 0.3 beta 1 (and the final release of 0.3).

Instantbird is participating in Google Summer of Code 2011 with one student project. Mozilla has been gracious enough to allow us to participate this year as part of their mentoring organization. The project includes an implementation of the XMPP protocol in JavaScript as an Instantbird extension. The XMPP implementation will be extensible to allow Instantbird extension developers to easily implement extra parts of the XMPP protocol beyond what will be included by default, some examples of this include collaborative editors and drawing boards. Details of the project proposal, as well as code and a blog are available to track this project.

Done:

  • 0.3 alpha 2 released! Give it a try and let us know what you think!
  • Contacts now show the list of the buddies they contain (as well as their online status) in the tooltip.
  • Windows (and Linux) users can now minimize to the system tray (we’ve integrated the popular MinTrayR add-on). Note that by default Instantbird will minimize to tray when the “x” is clicked, to quit the application choose “Quit” from the File menu or right click on the system tray icon and choose “Quit”. This behavior can be changed from the preferences window.
  • Alphabetical sorting of group names (bug 366) and contacts (bug 343).
  • You can now quickly jump to the n-th tab using <modifier>+<n> in the conversation window (bug 496), where <modifier> is ctrl on Windows/Linux and Command on Mac.
  • The conversation tabs styling has been updating to match Firefox 4 (bug 768), although we’re still working on getting some of the Aero glass effects in. Screenshot of a work in progress Screenshot of the ongoing work on the Windows Aero theme, but also showing the already finished new conversation and contacts list UI.
  • Users can now set their buddy icon and the display name of their accounts right on the contacts list (bug 334).
  • The Conversation UI has received a major overhaul to show the buddy icon, display name and current status of your contact. In addition, you can switch the buddy you’re talking to by clicking on the protocol icon (bug 744).
  • Message themes can also properly show the user’s own icon, go check one out!
  • A help command (‘/help’) was added to quickly and easily see which commands are available for the current conversation (bug 691).

For Developers:

  • An ‘icon-changed’ notification was added for when the user updates their buddy icon.
  • The UI code has been moved into the ‘content’ directory inside of omnijar (this will affect developers who have been unzipping omnijar to edit code).

Known Issues with Nightly Builds (0.3a3pre)

  • Commands do not work in protocol overrides (i.e. GTalk, Facebook) (bug 697).
  • Twitter dumps too much information to the error console (bug 681).
  • The user icon may not appear anymore on some protocols (ICQ/AIM/?) after restarting the application (bug 783).

Status Update: February 2011 - March 2011

Done:

  • Contact merging (bug 698).  If you talk to the same person on multiple IM networks you can now combine the buddies from each network into a single contact.  When opening a new chat the buddy that is online will be chosen automatically and the conversation window will automatically change to another buddy if they switch to a different IM network.
  • Tags have begun to be implemented (to replace the groups concept in the current buddy list).  Tags can be hidden by clicking the “x” on the right side of the buddy list, all buddies from this tag will go into an “Other Contacts” tag automatically, which is shown at the bottom of the buddy list.
  • The buddy list can now be closed on Mac without Instantbird quitting (bug 24). It can be reopened from the Dock.
  • Offline contacts vs. unknown contacts are now differentiated with icons.
  • Instantbird has been upgraded from libpurple 2.7.9 to 2.7.11. Changes of note include a fix for adding buddies in MSN (see all changes at their change log).
  • Dark variant of the “Simple” skin (bug 710).
  • For Developers:
    • Extensions are now able to register commands (bug 118).
    • A general JavaScript socket object has been included (bug 673).
    • Instantbird 0.3a2pre nightlies are now based on the mozilla-2.0 branch instead of the mozilla-central trunk (commit). This is the version of the Mozilla source that is used in Firefox 4.x.

Known Issues with Nightly Builds (0.3a2pre):

  • No feedback when an extension fails to install (bug 712).
  • Sounds do not work when the buddy list is closed on Mac (bug 731).
  • Commands do not work in protocol overrides (i.e. GTalk, Facebook) (bug 697).
  • Twitter dumps too much information to the error console (bug 681).

Status Update: November 2010 - January 2011

It’s been over two months from our last status update and a lot of changes and updates have occurred (from changeset to changeset). Below we list changes for the nightly trunk builds of Instantbird (0.3a1pre).

Done:

  • Basic support for Twitter was added (bug 598). When the twitter account is connected, a timeline conversation automatically opens. If the conversation is closed by the user, it’s reopened automatically when new messages arrive. The user should disconnect the account from the account manager to prevent new messages from being displayed. There’s a “track” advanced option that allows to specify keywords to track. This is a comma separated list of keywords. Comma means OR, space inside a keyword means AND.
  • The conversation UI has received a slight update: On Mac the splitter between the conversation and input boxes was reduced. For all operating systems, the status bar of the conversation window is now automatically hidden when the window is made small.
  • After quite a lot of debate, the wording of the option for when to create a new conversation window was updated (bug 387).
  • An old regression where the new JavaScript logger used *nix style line breaks on all systems was fixed so Windows logs can be viewed in Notepad (bug 473).
  • The conversation window can now be minimized with the ESC key (bug 441).
  • Support for Windows CE was dropped.
  • The themes preference pane now shows if themes are disabled or incompatible (bug 364).
  • Multi-user chats now show an disconnected icon when offline or after leaving a room (bug 520).
  • libpurple has been updated to 2.7.9 (from 2.7.3)
  • Localized strings with a keyboard accelerator were not localized properly in the ‘Join Chat’ dialog (bug 655).
  • For Developers:

Status update

It’s been three weeks now since the last status update and here’s a short summary of things that have been done in the meantime.

Some contributors are getting more closely involved with the project lately. Subsequently some tasks, such as posting status updates, will occasionally be performed by people besides Florian, in fact this entry was written by Benedikt P.

Done:

  • Making the buddy list ready for the future: the buddy list backend mentioned in the last update has been finished, debugged and finally landed two weeks ago.

  • The Mozilla framework has supported CSS transitions for a while now and we decided to ditch our old animation code in favour of this state-of-the-art technology. Changing the display- and hide-animations on the buddy list is part of bug 504. Along with the change to the buddy list backend it greatly increased the speed when switching on the display of offline buddies. There should no longer be any noticeable delay, even when there are many buddies on the list.

  • If you ever tried to *emphasize* words in a plain text chat, be happy: we are displaying plain text formatting now, such as *bold*, /italics/, underline and |code| (bug 543).

  • We made conversation tabs look more native on Mac, taking advantage of a suggestion from Markus Stange:

    The old flat look:

    Cropped screenshot of the old look of the unified toolbar on Mac

    Now with a nice gradient in the title bar:

    Cropped screenshot of the new look of the unified toolbar on Mac

    If you have any other ideas how to make Instantbird more awesome, feel free to contact us or to file an enhancement request on our bugtracker.

  • Stuff for devs, stuff that matters: we’re using Services.jsm now and were able to reduce the number of lines used to get XPCOM services by 2/3.

  • Brainstorming: some brainstorming about completion of nicknames (among other things) happened on our IRC channel, summarized results and ideas can be found in the wiki.

Status update

It’s time again to give an overview of what we’ve been doing in the last few weeks and what we plan to do next.

Done:

  • The rewrite of the buddy list backend is going well. The new implementation, is almost usable (as long as you don’t need to add, remove or rename a contact). I can’t wait to land this in our nightly builds! (This will occur as soon as everything is re-implemented so there is no feature-loss). Bug 555 tracks this work.
  • I’ve spent some time analyzing the crash reports we have received after the libpurple update. I emailed the Pidgin developers mailing list to share my findings. The feedback received allowed us to fix a whole class of Windows-only crashes by applying a Glib fix.
  • On Mac, the mozilla-central switch from ppc/i386 universal builds to i386/x64 universal builds caused some breakage in our nightly builds.
    • For now, we have reverted to producing ppc/i386 builds, following the direction taken on comm-central.
    • However, we are aware that current nightly builds are pretty broken when run on a PPC machine.
    • We will switch to i386/x64 universal builds as soon as we have a new Mac build machine that can run Mac OS X 10.6 (the current nightly builds are compiled on a PowerMac G5).
  • I wasted a disappointingly large amount of time trying to buy a recent used Mac Mini on ebay, dealing with the confusing messages of an inexperienced seller. Transaction finally canceled today, back to square one :(.
  • Some time spent trying to understand issues with the update system, with our servers, and our buildbot slaves. No exciting details to report about this.
  • Various fixes:
    • Emoticons will no longer annoyingly appear in URLs. This was fixed in bug 207.
    • The issue mentioned previously about message themes installed with the new add-on manager is fixed.
    • The ‘themes’ icon in the preferences dialog has changed (bug 484).

Status update

We’ve been a bit quiet since the 0.2 release, but we haven’t slept all of this time, so let’s do another status update!

After some time spent polishing the new website and dealing with post-release work (like testing and enabling major updates), we have started working toward Instantbird 0.3:

  • Some major refactoring work to allow protocol plugins to be written fully in JavaScript had started a long time before the final 0.2 release. This work was being done in the js-proto branch. The branch has been merged so that our nightly testers can help spot new issues in 0.3a1pre nightly builds. They have been super helpful, and have found 2 regressions, which are now fixed.
  • Instantbird 0.2 is based on the mozilla-1.9.2 platform. Instantbird 0.3 will be based on Mozilla 2.0. The work to switch to using code from mozilla-central is almost completed. This involved updating our build system (which is a copy of the comm-central one), changing the way our XPCOM components are registered, and other adjustments to make Instantbird’s code work with a newer Mozilla. This work has happened in a mozilla2 branch in our repository. The branch isn’t merged yet because there remains a serious regression that we need to fix (JavaScript code included in message styles isn’t executed).
  • We have welcomed new translators, who have enthusiastically started translations of Instantbird into 7 new locales (Czech, Dutch, Estonian, Italian, Slovak, Spanish and Ukrainian)!

Development is slower than usual this month, because some members of the team, including myself, are taking some time away from the Internet.

In the relatively near future, we will finish the work to switch to Mozilla 2.0, and upgrade libpurple to the latest released version (2.7.*).

Status Update - Why 0.2 is not out yet

The last status update here was more than a month ago, so it’s probably time for another update. We are still working toward releasing Instantbird 0.2 in the near future.

At this point, the code of the application is ready. Two points are still holding the release though:

  • we have to rework the server side part of our update system, because the scripts we used on the server up to version 0.2b2 of Instantbird were not able to handle updates in several languages. We want to be sure that users who downloaded Instantbird 0.2 beta 2 in a non-English language will receive an updated version in the same language.
  • we are redesigning the main website of Instantbird. The goal of this redesign is partly to provide a visual refresh, but also to clarify the message. We are de-emphasizing the “multi-platform” argument (it is probably irrelevant to most users and is probably quickly understood by those who care about using Instantbird on more than one operating system), and we try to emphasis the simplicity and ease of use of Instantbird.

We look forward to putting Instantbird 0.2 in the hands of users who didn’t dare to try the beta releases.