XIFF is an Open Source Flash library for instant messaging and presence clients using the XMPP (Jabber) protocol. XIFF includes an extension architecture that makes it easy to add functionality for additional protocol extensions, or even your own special-needs extensions. There are quite a few extensions already included in the library, giving it support for XML-RPC over XMPP (XEP-0009), Multi-user conferencing (XEP-0045), Service browsing (XEP-0030), and XHTML message support (XEP-0071).
I am proud to announce that I have successfully completed my Google Summer of Code Project. As we hit the official pencils down date, I thought it might be good to publish results and final toughts.
I started the project in time and completed it 3 working days later than planned, though it could require more effort if we didn't change our goals. I cooperated with Tomas and Tobias to fix the flaws I couldn't notice during development. Changes I made to Openfire and XIFF are listed here and here. All changes have been imported into trunk and hopefully be included in next releases.
It was a wonderful experience to work on Openfire and SparkWeb, especially with my mentor Gaston. Even if my GSoC project is complete, I feel there'll always be something to do for me with Jabber. I am having fun with Jabber, and planning to continue working on Jabber development as a community contributor.
I would like to thank Google for giving me such a great opportunity. I also thank David Smith and Peter Saint-Andre for their excellent support.
See you around!
This weekend I jumped back into development of SparkWeb to reacquaint myself with the list of outstanding issues/bugs in order to set a course for fixes and improvements. As a result, I have updated SparkWeb's roadmap in its issue tracker, adding a handful of bugs to be smashed in the weeks ahead for the 1.0 release (and also closed a lot of outdated ones). Clearly the next release will be focused on bugfixes and stabilizations. However, let's look into the void a bit further and see what new features and enhancements are on the horizon.
Dynamic Theming and Skinning
After developing on and using SparkWeb for nearly a year now, I have grown tired of its current skin and icon theme. In the code we are actually hardcoding a lot of color values and of course hardcoding the skin images themselves. This is not ideal in the least. Let's work towards a skinnable SparkWeb with updated icons. What I have in mind is something less "heavy" on the eyes, something like Yahoo's Flex skin they released under the BSD license:
As for the icons, they should also be themable. Imagine SparkWeb with a beatifully clean flex skin matched with the IM-related icons from KDE's Oxygen icon theme. I would like to see that, myself.
Secure communications over XMPP. Enough said, right? I am sure a lot of you would like this feature.
Easy extendabilitiy with the option to disable/enable certain functions would be great. I am sure a lot of you saw Dele's manipulations of SparkWeb adding Audio/Video communications. That is an obvious use case of such a framework, and I image his code would serve as a good guide for determining "plug points" in the code to implement it.
Stay tuned, and don't be shy to report bugs and submit patches of course.
I have been selected as the new project lead for both the SparkWeb and XIFF projects here at the Ignite Realtime community. For about half a year David and I were the only developers contributing code to those projects on a full-time basis -- before SparkWeb's source was even opened up. I added initial support for shared groups, group chat invitations, kick/ban/nick-change announcements in group chat, various bug fixes, and a bunch of other little features here and there. With my previous work on SparkWeb I have seen first hand how its code has matured over the year. I think it is in a 'good' state right now, but clearly there is always room for improvements.
David has made a lot of necessary refactorings in the past that have improved its performance and Safa is currently ensuring SparkWeb is fully compatable with BOSH 1.6. Also, we have various other patches containing excellent improvements from other people in the community that will be included in an upcoming release. These two projects now have a decent amount of activity from outside of Jive, which is great.
From some recent conversations in the weekly chats it is clear to us that people feel comfortable with Openfire, the server -- and that what they are expecting to see is a client evolve to the same degree. I would like to hear more about this perspective so I can focus to make it happen in SparkWeb's use-case.
Interested in getting involved yourself? Well, what are you waiting for? This is an open source community after all... grab the source and join the fun. Send any of your code contributions, ideas, or feedback to me and let's make the most excellent XMPP web app/lib out there!
I have updated the XIFF library to be compatible with BOSH 1.6. As SparkWeb is based on XIFF, most of the information here also applies to SparkWeb. Main good news are:
This updated version of XIFF will be fully compatible with the updated Openfire and Openfire's BOSH update will be included in version 3.6.x. However, there is an issue with Openfire versions released before the update.
According to XEP-0206, after a successful authentication, clients should send a body with xmpp:restart attribute set to true. But older Openfire versions do not recognize xmpp:restart, handling the request as if it was a polling request. Thus, it responds to the client after 30 seconds.
If you use the updated version of XIFF or SparkWeb with a version of Openfire that does not support BOSH 1.6 (i.e. lower than 3.6), please be aware that you will be experiencing a latency of 30 seconds during logins.