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!

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!

Instantbird speaks your language

Instantbird 1.3 became available on November, 15, and it comes with new features (you can see them clicking here). The Instantbird team is interested in offering this IM client to everyone, so there’s a new language in this release: Brazilian Portuguese - Sim, nós falamos Português!. Now Brazilians users can enjoy Instantbird in their language.

Additionally, Instantbird brought back the Russian language in this release. This language was in Instantbird since version 0.2, but it was not present in version 1.2. Thanks go out to our Russian localization team for making this possible!

Since the 0.2 release, Instantbird has been available in 5 languages - English, Finnish, French, Polish and Russian. The 1.0 release brought six more languages and now Instantbird is available in 13 languages!

The Instantbird team has a goal: “to redefine the way instant messaging is used, to work the way you want.” To reach this goal, it’s necessary that Instantbird can be used by as many people as possible, in every country. So we encourage interested people to translate it to their languages. If you’re interested in helping us achieve this goal by creating new translations or improving Instantbird, you can get more information here.

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.

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.

Why should I switch from Pidgin?”

This is a question people keep asking us. With some variations (“Why should I switch from Adium?”), or sometimes without the question mark (“There’s nothing more than Pidgin”).

We are not competing…

I think people ask us this question because they perceive us as competing with Pidgin/Adium/[insert the name of your favorite open source IM client]. But there’s no good answer to that question, because we are not competing, here is why:

  • we share values. We believe that instant messaging technologies should be freely accessible and open: people should not be locked in closed systems.
  • we share a technology stand point: we think that to empower people to increasingly use the open IM technologies that we like, we need to offer people a tool that makes it easy to access both promising open technologies and legacy networks.
  • we share code. Instantbird, like Adium, relies on libpurple, which is at the heart of Pidgin, to connect to legacy networks. We take this code, but we also give back: several changes made to libpurple to improve its reliability in Instantbird are now part of Pidgin. We are working together, and Instantbird developers are definitely part of the Pidgin developer community.

… but we offer an alternative

I can easily understand why people think we compete though, as we do provide an alternative. I assume people who ask the previously mentioned question actually wanted the answer to another question: How is Instantbird different from Pidgin? Now, this is a question we can answer!

I will actually provide several different answers: the first will satisfy technically oriented people, the others should be understandable by everybody. Most of my points compares Instantbird to Pidgin, but are still applicable when comparing Instantbird to other IM clients.

Technical differences

The biggest technical difference between Pidgin and Instantbird is that Pidgin uses GTK+ and Instantbird uses the Mozilla XUL platform to display its user interface.

The Mozilla platform has advantages compared to GTK+:

  • The Mozilla platform is well known for its awesome extensibility. Add-ons can modify almost anything that is part of the Instantbird user interface, and the skills required to build add-ons are similar to the skills required to create a website, as the technologies are basically the same: HTML, CSS, JavaScript, XML, … Instantbird add-ons are easy to install, some can even be installed without restarting the application! (To be fair, Pidgin also supports plugins, but writing them in C requires much more programming knowledge and to compile them for each platform. Pidgin also has Python (via D-Bus) and Perl scripting APIs, but I’m not sure they are actually usable on Windows.)
  • While a GTK+ user interface is native on some Linux desktop operating systems (typically those based on Gnome or XFCE), a XUL user interface also acts native on Windows (we even included some Aero Glass effects for Windows 7) and Mac OS X where GTK may not fit as well.
  • Thanks to the Mozilla accessibility effort, the XUL platform is very accessible and we have received a lot of enthusiastic feedback from users of assistive technologies who love Instantbird.

Developing on top of Mozilla also has some (perceived) downsides:

  • We need to ship the whole Mozilla toolkit, which makes us package megabytes of compiled code we didn’t write. This means for example that the Instantbird installer for Windows weights 9.9MB. Some people (especially some Miranda fans) seem to think this is huge, but while I like to find ways to reduce the size of the installer we ship, I tend to think at this point it is mostly a non-issue. Just for comparison, the Pidgin installer weights 9.5MB without GTK, and 32.4MB with all its dependencies included.
  • The Mozilla platform has the reputation of using more resources than other browsers/toolkits. The good news is, some bright people are currently making a huge effort to reduce the memory usage, so this will be mitigated in future releases. Plus the situation is not as bad as some people pretend it to be: the memory usage measurements we see in comments about Instantbird aren’t that scary, some people start to complain when an application uses 40MB of memory. Hey come on, we are in 2011, new machines have been shipping with gigabytes of memory for years already…
  • I heard from some Linux packagers that the Mozilla build system is not easy to work with for them. While there may be some pain points here, it doesn’t really affect the end user.

We make Instantbird for you!

Some developers make their programs the best for themselves and share it with you, for free. These programs are the result of people’s hard work which they offer you as a gift, and so these people deserve respect for that! Unfortunately, it is not unusual that if somehow the product doesn’t work out for you, it’s your problem, not theirs, and you are free: to fix it, to report the issue and hope someone will fix it, or to look for a greener pasture. Your comments are valued if they help developers make their program better for everybody, for example if it helps fixing bugs that lots of people suffer from. Your opinions and wishes may not be taken into account, however, unless you intend to actually start working on them: patches are welcome, not additional work (people are busy already).

We work to make Instantbird the best for you. We look forward to gathering your feedback and acting upon it to make Instantbird even better, for you. We assume that when someone takes the trouble to come and talk with us to complain about something, there’s a valid concern. Even when it’s well hidden behind factually inexact assertions that we can’t agree with. If people cannot express themselves clearly, there’s a reason why they are confused, and if a confusion is common, we should find its cause and fix it.

As this difference may be a bit theoretical, I’m going to give a concrete example in the next point: the way we deal with stability issues.

Stability

Crash reports

Let’s see what happens in the unfortunate event of the user being hit by a bug resulting in a crash of the application:

If you are using Pidgin and want to help get the bug fixed, you need to get a backtrace (on Unix systems) or to have installed the debug symbols before the crash so that a crash report could be dumped to the disk (on Windows). Then you need to open a ticket on trac and give all the info you have. As this process may be a bit scary for most end-users, I’m afraid valuable feedback could get lost.

If the same issue happens with Instantbird, first we apologize:

Instantbird crash reporter

Then all you have to do to send us the technical information about the crash is a single click in this crash reporter dialog. We collect all these crash reports and analyze them to improve the stability of the next version of Instantbird.

Nightly testing

In addition to collecting crash reports, another thing we do to maintain a high stability level for Instantbird is that we encourage early adopters to run with nightly builds of Instantbird which are updated almost daily with the very latest version of our source code. Therefore, if something we changed degrades the stability, we receive crash reports way before the defective change ends up in a release you may use.

If some change feels a bit risky to us, we push it to our testers at least a week before releasing, or we delay it so that it gets appropriate testing before being included in the next release.

Just as a comparison, Pidgin’s currently in development code is tested only by developers and others people are discouraged from attempting to use it.

Learn more about our stability efforts.

Changing

We keep seeing comments of people (who have not actually tried Instantbird) who think we should go improve Pidgin instead of “wasting time” on Instantbird.

In the page of our website where we explain why we create Instantbird, we conclude:

It’s time to bring back innovation!

To do this, we need to be able to change things easily. As Instantbird is still a young project, we can change fast.

Pidgin on the other hand is already a mature project with policies about when it’s acceptable to change APIs or when they are frozen: it’s basically impossible to change an API in Pidgin until a new major version is released (so after the Pidgin 2.0.0 release, the API changes have to wait until Pidgin 3.0.0 comes out to be included: currently Pidgin 2.0.0 was released over four years ago!). This is a good thing to ensure the plugins stay compatible, but it slows down the changes to the application.

Different feature sets

This is my last point even though most people would expect to see it first. Instantbird and Pidgin have different feature sets.

On one hand, Pidgin has some features that Instantbird doesn’t have. Some that we will have in the future. Some that we don’t want to have. I’m not going to give a full list here because I don’t actually have a list of all Pidgin features to compare and check what we have and what we don’t have. We are neither trying to copy Pidgin nor to directly compete against it, so such a list would be irrelevant anyway.

On the other hand, Instantbird has some features that Pidgin doesn’t have (message themes, automatic updates, inline search, …) and even some unique features (for two examples, see my blog posts introducing Time Bubbles and Magic copy).

Conclusion

So, should you switch to Instantbird? If I were you, I would. But I’m not you. Deciding which IM client you use is your choice, based on your taste, your needs, your feelings. It’s your decision, really!

If you like what you currently have and see nothing you like in what Instantbird offers, just keep using what you like.

If you love Instantbird, then, obviously you should use it.

If you are in the middle and like Instantbird but for some reason can’t use it because something you really need is missing or doesn’t work, please tell us about it, we are eager to receive your feedback! And maybe there’s already an add-on to customize Instantbird to do what you wanted that we can point you to.

In any case, we are not going to try to force you to switch from Pidgin or whatever IM client you may be using right now to Instantbird. We respect your freedom, we respect your choices, we love you!