Tab completion in Instantbird 1.2

We’ve made some major improvements to the tab completion of nicknames in IRC channels (and other chatrooms). The goal, as always, is to make it “just work” (so you can think about more important things!).

Simply press TAB to complete the first couple of letters you have typed:

image0

To undo the completion, just press Backspace as usual.

If there is no unique nick that fits the bill, Instantbird tries to guess which nick you mean from the context. For example, if you have recently been pinged by someone, that nick is preferred. Otherwise it just completes as much as possible, and shows you a list of alternative completions:

image1

You can then always press TAB again to cycle through these candidate nicks until you get the right one:

image2

(Shift+TAB will cycle through the list in the opposite direction.)

Notice how Instantbird automatically added a colon after the nick, as we were addressing someone at the start of a message. And if you add another nick, you get a comma-separated list:

image3

Of course, sometimes that may not be what you intended. So if you delete the trailing colon by pressing Backspace, the punctuation adjusts accordingly:

image4

Don’t forget you can also reply to any message by double-clicking it! This will add the sender’s nick to the beginning of the message.

Status Update: July 27, 2012

Sorry that we have been so awful at updating our blog again, but we have been busy working on getting Instantbird 1.2 ready for release!  We’re hoping to get this release out the door in the next few weeks (there’s a few final blockers we’re attempting to fix)!

A few weeks ago (in the beginning of July), Instantbird was string frozen for 1.2.  This means that no new patches will be accepted (for 1.2) which change any strings, this gives our localization (l10n) teams time to translate Instantbird 1.2 into different languages. Instantbird 1.1 was released in 13 languages: Czech, German, English, Spanish, Estonian, French, Italian, Dutch, Polish, Russian, Slovak, Swedish and Ukrainian!  Hopefully we can release Instantbird 1.2 in even more languages!  Unfortunately not all of these languages have been updated yet, so if you’re interested in translating Instantbird to your language, check out the translation information and get in contact with us!

Additionally, our Google Summer of Code student, Will Nayes, has been doing excellent work and already has importers working for Colloquy, Google Talk, mIRC, Pidgin, Windows Live Messenger and XChat!  He’s currently working on importing logs from each of these clients so you can smoothly transition from other clients to Instantbird without any data loss.  We hope Will is enjoying working on Instantbird as he’s doing a great job!

Status Update: May 23, 2012

We’ve made quite a bit of improvements over the past few weeks. Although a lot of the changes are behind the scenes or fixing regressions, there are some exciting user facing changes, as detailed below! We’ve also been working with our Google Summer of Code 2012 student, wnayes, quite a bit to get him up to speed of how things work in Instantbird. He’s made great progress on understanding the code and has even fixed a bug (see the “top protocols” page, below)!

Landed Changes:

"Top Protocol" Page in the Account Wizard

Top Protocol” Page in the Account Wizard”

  • The account wizard now has a “top protocols” page to allow users to quickly set up accounts that are most applicable to them. This is localizable as different instant messaging networks are popular in different regions.
  • Tab Completion improvements:
    • Will no longer complete the same name multiple times.
    • You can now cycle backwards through the list of completions by holding shift while pressing tab.
    • All matching names can be cycled through now, although they are prioritized as:
      1. Names of people who have pinged you (i.e. said your name in the chat).
      2. Names of active participants.
      3. Names of inactive participants.
  • IRC changes

Google Summer of Code Status:

The past few weeks were the “bonding” period for Google Summer of Code students and their respective communities; actual work has started this week. As part of the “bonding” period, we asked wnayes to check out bug 1391: adding the “top protocols” page to the account wizard (see above for a screenshot!).  We thought this would be a great introduction to our tools (mostly Bugzilla and Mercurial), our workflow (requesting reviews and feedback, discussing why changes were made, etc.), some of the languages that we use (XUL, XBL, CSS, and JavaScript) and to some of the account manager code that he will be working on this summer! wnayes has done a great job and the changes are already in the nightly builds!

To follow along with what wnayes will be working on this summer, you can read his blog (RSS feed) and check out his user repository. Additionally, he’s posted some general information (his application, timeline and a series of links) that he’ll be updating as the summer continues. (And of course you can stop by our IRC channel, #instantbird on irc.mozilla.org, and say “Hi!”)

Google Summer of Code 2012

Instantbird is participating in Google Summer of Code (GSoC) again this year as part of Mozilla and we will be mentoring one student: Will Nayes.  The abstract for his project is:

Instantbird Account Import Wizard

When evaluating a new messaging client, the common frustration of reconfiguring accounts and settings is difficult to avoid. To combat similar issues, the developers at Mozilla have implemented account import wizards in their Firefox and Thunderbird software packages. I propose creating an Account Import Wizard for the IM client Instantbird, which will provide users with a flexible way to import profile data from existing messaging client installations. [source]

Will is in contact with us via our IRC channel #instantbird (on irc.mozilla.org) during the community bonding period. We’d love for you to stop by and help welcome wnayes to our community. We’re extremely excited to have Will working with us this summer!

We’d like to thank Mozilla for letting us apply to Google Summer of Code with them!  You can see all of Mozilla’s accepted applications on the GSoC 2012 site.

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!

Status Update: February 25, 2012

We’ve been awful at posting updates to our blog about what has been going on! It’s too late now to even blame it on the holidays, but we owe you all an update about what’s been happening and here it is!  We do, generally, still have status meetings on Monday’s at 6:00 PM Paris time (that’s noon EST) in #instantbird on irc.mozilla.org.  Feel free to stop by and tell us what you love or what you hate or anything else!

What’s New?

  • Tab completion is now smarter: “active” nicknames are now favored in completions and your own nickname is avoided in completions unless it’s the only match.
  • The JavaScript XMPP protocol implementation developed by Varuna JAYASIRI for Google Summer of Code 2011 is now used for Facebook Chat and Google Talk accounts. It can’t yet fully replace the libpurple implementation until DNS SRV is supported.
  • You can now scroll to the first unread message after opening a conversation that was on hold by pressing Alt+Page Up (you can also scroll to the top of the conversation by pressing Alt+Page Up again after that)!
  • When opening a conversation on hold, the UI is now updated asynchronously if there are a lot of messages to restore. You may notice a progress bar has replaced the UI freeze we used to have in this situation.
  • Conversations are now logged in a JSON format to allow more information than the old plaintext logs.
  • You can now delete Twitter messages.
  • Passwords are now stored in the Mozilla password manager! Previous saved passwords will be migrated to the password manager automatically, but the old saved password in the preference system is not yet deleted.  This will be handled in a future update.
  • Buddy authorization requests have been rewritten to remove the (awful) modal dialogue!
  • Mozilla was updated to 9.0.1 and libpurple was updated to 2.10.1.
  • Various crashers have been fixed.
  • Additionally, a lot of code reorganization has occurred for ongoing work of sharing code with Thunderbird.

What’s Coming Soon / Being Worked On?

  • Our JavaScript implementation of IRC should be landing in the nightly builds soon, which should have feature parity to the libpurple implementation.  Please test this out!  You can find more information in bug 507.
  • Integrate SIPE (bug 976).
  • Add a reading position marker to quickly find the last read message in a conversation, bug 860.
  • Upgrade to Mozilla 10.

What’s up with Instantbird 1.2?

We were hoping to release Instantbird 1.2 near the end of January, 2012.  Unfortunately there are a few blockers / regressions that have been found, causing us to be unable to release.  Everything slated as wanted or blocking Instantbird 1.2 can be seen on our Bugzilla.

  • The l10n scripts need to be updated and translations need to be updated.
  • Decide whether to drop QQ (we need to support showing captchas to keep it): bug 1021.
  • Finish the JavaScript XMPP work (not all of these necessarily need to be done for Instantbird 1.2):
    • Handle setting a user’s icon.
    • Allow adding/removing tags from a buddy.
    • DNS SRV (not required for Facebook Chat or Google Talk): Mozilla bug 14328.
    • Receiving formatted messages (bug 1231).
    • Sending private messages to MUC participants.
    • MUC topics need to be supported.
  • Currently a contact will disappear and not reappear when their name changes for some reason, bug 1178.
  • Conversations should show the history in new windows, bug 958.
  • All message styles (not just Bubbles) should support context messages, bug 1074.

Again, please accept our sincerest apologies for not providing any updates in the past couple of months about the progress we’ve made with Instantbird.  We’re really excited about Instantbird 1.2 and can hopefully get it out to everyone as soon as possible!  As always, Instantbird is made great by the community and we’d love to have more help in working on it!  If you have any ideas (or no ideas, but some free time!) stop by #instantbird on irc.mozilla.org and we can have some discussions or point you to ways to help you!

Weekly Meetings: November 7, 14 and 21, 2011

We’ve been a bit bad about posting summaries of our weekly meetings the past few weeks, but that doesn’t mean nothings been going on! In fact, we’ve had a lot of major changes coming down the pipeline: here’s a summary of what’s new with Instantbird.

Weekly meetings are held every Monday at 4pm UTC (that’s 6pm for people in France, and 9am for people in San Francisco) in #instantbird on irc.mozilla.org.

What’s Been Done?

  • Dependency on libpurple has been eliminate: this included a big rewrite of the core service and how accounts and statuses were handled.
  • Florian attended MozCamp and gave a talk on Instantbird.
  • Participants in chat rooms are now only colored once they’ve participated.
  • Mozilla has been updated from 7.0.1 to 9.0 beta 2.
  • Many small back logged patches have been checked-in.

What’s Been Happening?

There’s been lots of big changes landing, and more to come! Although many of them are back end changes, they’ll pave the way for more visible features in the future.  We’ll try to do a better job of keeping our blog up to date with what’s going on.

As always, full chat logs and the EtherPad is available for each meeting; November 7 (chat logs, etherpad), November 14 (etherpad), and November 21 (chat logs, etherpad). Note that no real discussion occurred on November 14th, just a summary of the week’s progress.