Google Summer of Code 2014 has Commenced!

Instantbird again has the pleasure of participating in Google Summer of Code under the Mozilla umbrella. In the past we’ve had a variety of exciting projects and this year is no different. Three students will be working with us this summer:

Saurabh Anand (sawrubh), mentored by Patrick Cloke (clokep), will aim to add support for reliable file transfer to Instantbird using FileLink as a fallback to standard file transfer.

Mayank Kumar (mayanktg), mentored by Benedikt P. (Mic), will be adding voice and video support to Instantbird by integrating WebRTC for XMPP. WebRTC makes it easy for us to have real-time communication without the use of additional plugins.

Nihanth Subramanya (nhnt11), who last year added the “awesometab“, will be looking to improve loading of conversations and history under the guidance of aleth. He will work on adding the ability to search across all logs of a contact and loading the previous context of a conversation when scrolling (“infinite scroll”).

Please feel free to stop by #instantbird on irc.mozilla.org to say hello and congratulate our students! Thanks again to Mozilla for allowing us to participate in Google Summer of Code with them!

First Milestone of the Awesometab has landed!

Awesometab is the project name for a tab developed by Nihanth Subramanya during the Google Summer of Code 2013 (via Mozilla) which allows to quickly start the conversation you want to start. The suggestions will be based on several parameters like frequency and recency of previous conversations and will show the most likely results when you open the new conversation-tab. It will also include already ongoing conversations (Switch to conversation) and suggestions for multi user chats such as IRC channels and XMPP chatrooms on the servers that you’re connected to.

What’s this milestone that has landed already?

After problems with the sheer size of the patch during last years GSoC project, we decided to split this year’s projects into smaller parts that can land as soon as they are ready.

So far a filterable contact list in a tab has landed that can easily be opened using the common shortcut of Ctrl+T for New Tab (from both the contact list or a conversation window) or by clicking the likewise familiar New Tab-button in the tab bar.

New conversation tab

New conversation tab, list filtered for contacts starting with letter f

It features a search bar at top of the tab content which allows to refine the results. It currently matches the entered name against each part of the contact’s names but will do more later (see next section).

Contacts are displayed similar to results in Firefox’ awesomebar while retaining the familiar look of the conversation header with the contact icon and status indicator at the left and the contact name and status message to the right of it. Additionally the tags of the contact are displayed, indicated by the same icons as Firefox uses for tags on the Awesomebar.

Starting a conversation is as easy as single clicking on the result or selecting an item with the keyboard and pressing Enter – a middle click opens the new conversation in background instead while keeping the new conversation tab visible, just in case that you need to start more than one conversation!

And what’s next?

The next step (already under development!) will be further improving this list by integrating already ongoing conversations (Switch to tab/conversation). We’d also like to include a way to filter the list by tags and to highlight the text that matches the filter like the Awesomebar does.

Later on a ranking algorithm will be introduced and tweaked to show the most important results first instead of the alphabetically sorted list that you currently get when opening the tab.

These changes are most likely going to be integrated as soon as they are ready and reviewed, so make sure you have a nightly build and update frequently!

I’m really happy to see how well this project is going, I’m already enjoying how easy it became to start a conversation using the filterable contact list. I’m looking forward to actually see the conversations I most likely want to start right away!

Thanks, Nihanth, it’s really great work that you’re doing here!

Google Summer of Code 2013 Projects Announced

For the third year in a row, Instantbird will be participating in Google Summer of Code. Last year, Will Nayes worked on an Account Import Wizard and in 2011, Varuna Jayasiri worked on our JavaScript XMPP implementation (currently used by Google Talk and Facebook accounts in Instantbird, as well as Google Talk, Facebook and XMPP in Thunderbird).

Instantbird will be mentoring three student projects this year:

Additional JavaScript Protocol Plug-ins (Yahoo!)

The goal of this project is to reimplement Yahoo! Messenger support in Instantbird using JavaScript and XPCOM interfaces. — Quentin Headen (qheaden)

FileLinks in Instant Messages

The Thunderbird Filelink feature allows users to upload attachments to an online storage service, replacing the email attachment with a link. This existing code could be used to implement file transfer. While some protocols support file transfer directly, this approach would provide a fallback that should always work. Designing and implementing a good UI frontend would also be required. — Atul Jangra (atuljangra)

Instantbird Awesometab

I propose to develop a “smart” user interface, in the form of a user-openable tab, that allows the user to quickly and efficiently open new chats – based on who they chat with most often, and on what accounts they do so. The user should be able to go from actively chatting in one conversation to doing so in a new one, losing no time in finding the contact to start the conversation with, refocusing to the correct UI element, or opening extra windows. — Nihanth Subramanya (nhnt11)

For the next few weeks the students are encouraged to bond with their community. All three have been active in recent weeks on our IRC channel (#instantbird on irc.mozilla.org), feel free to stop by and say hello! The Instantbird team looks forward to working with all of them during the summer. You can check out their blogs (linked to above) and back here for progress throughout the summer.

We’d like to thank Mozilla for letting us apply to Google Summer of Code as part of them! You can see the other student projects Mozilla is mentoring on the Google Summer of Code site.

Google Summer of Code 2013

Mozilla is doing Google Summer of Code 2013 and Instantbird is interested in participating again. Instantbird participated (through Mozilla) the last two years with JS-XMPP (by varuna in 2011) and the Import Wizard (by wnayes in 2012). Both projects were successful: Instantbird and Thunderbird use our JavaScript XMPP code and we’re hoping to integrate the Import Wizard into Instantbird soon, after which the UI could then be uplifted into Thunderbird.

It is time to start thinking about (and brainstorming) ideas for the chat in this year’s GSoC! We’ve already started brainstorming and came up with some ideas, but would love to get more ideas from people. Remember that a good GSoC project needs to be something that can be completed by a student in ~8 weeks (but also has to keep a student busy the whole time!). It should also be something that we would want to integrate into Instantbird by default and have expected behavior already defined.

Feel free to come chat with us on IRC (#instantbird on irc.mozilla.org) about this or any other topic!

Google Summer of Code 2012 Roundup

Instantbird 1.2 was released about two months ago and we must again apologize for keeping this blog fairly quiet.  Sorry about that!  But we’re here now, so read on for some (not really so) juicy Instantbird news!

Instantbird 1.2 release went fairly smoothly, much smoother than the last release!  We’ve gotten some great feedback (and had lots of bugs filed) and of course have started working on Instantbird 1.3 already! Most of the fixes that have so far gone into the 1.3 nightlies so far are minor…but taken altogether, I’m not sure I could go back to 1.2! Feel free to give them a try and report any issues to us!

Thunderbird 15 was “recently” released, which also contained the core chat backend of Instantbird.  We’ve had a bunch of bugs filed from that release too!  Between feedback from the two programs we’ve made a lot of minor improvements that will definitely make Instantbird (more of) a joy to use.

Google Summer of Code 2012 has been over for a bit (it ended in August), but we never thanked Will for his time with us and the great work he’s done so far.  Currently the account importer code he wrote this summer is undergoing review, but hopefully it will be complete for Instantbird 1.3 to allow extremely easy transitioning to Instantbird!  Thanks for a great summer Will!  We hope you’ve enjoyed working with your mentor, Florian, and the rest of the Instantbird team; we’ve definitely enjoyed working with you, helping you and watching you learn.  Good luck and hopefully we’ll continue to see you around (and have contributions from you!) in the future.  We’d also like to thanks Mozilla for graciously allowing us to be part of Google Summer of Code 2012 through them!

As always, feel free to stop by #instantbird on irc.mozilla.org (and, yes, Instantbird supports IRC: you can’t use the excuse that you don’t have an IRC client!) to give us some feedback or ask questions.

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!”)