First of all, the goal of the week was to find and fix as many bugs as possible. This is what our ‘hackathon bug count dials’ were displaying at the end of the week:

In only one week, we found 19 bugs, and fixed 64! Not a bad result for our first hackathon, don’t you think? As you can see from the trend, we put a big dent in the list of open bugs:

And if fixing all these bugs wasn’t enough, we found the time to do some other things on the side as well during the week:
Thanks again to all the people who have helped us during this excellent week!
]]>Thanks to the hackathon week (of which details will be posted shortly), we believe this first beta to be pretty stable. Nevertheless, should you find some bugs, please come and tell us about it!
]]>
That’s right: in merely a couple of days, we managed to fix 50 (more than half!) of the open bugs, and found 17 new bugs. And what’s more: we still have the whole weekend ahead of us, so you still have a chance to join us in fixing, testing, and improving Swift!
A big thank you to all the people who have been helping us out so far!
]]>This summer, you’ll see the following new faces hanging around the Swift room:
Since Kevin and I could only mentor Cătălin and Mateusz, and we really wanted to have Yoann join us as well, we decided to bring in some extra help this year. Tobias, who not only has participated in GSoC 4 times as a student, but also is a top Swift contributor, and authored practically all of the Swift Jingle code during GSoC last year, will be mentoring Yoann in the screen sharing project.
As you can see: great times ahead!
]]>(Thanks to Tobias for suggesting this).
]]>For those interested in the nitty gritty protocol details: file transfers are negotiated through the Jingle File Transfer protocol (XEP-0234), using SOCKS5 (XEP-0260) as the main transport, and In-Band Bytestreams (XEP-0261) as fallback. To improve connectivity, we use both the NAT Port Mapping Protocol and the UPnP Internet Gateway Device protocols to allow connections through most firewalls, and SOCKS5 relaying proxies in case all else fails.
The new feature has been tested for interoperability against (slightly modified) development versions of both Pidgin and Gajim, which, together with the Pidgin-based Adium, cover a large XMPP user base. After both clients update their protocols to track the newly published Draft specification versions, all 3 should be able to exchange files seamlessly.
What still remains to be done is lots of testing (both internal testing, user testing, reliability testing, and interop testing), bugfixing, and some refactoring here and there to clean up some of the code (which already is in very good shape). Our end goal is to reach a rock solid implementation, with a near guarantee that file exchange will always work (which experience teaches us is far from trivial).
To conclude, we’ld like to thank Tobias for contributing this great new feature to Swift, for providing valuable protocol feedback to the XSF, and for laying the foundation to other exciting Jingle-based features (including voice/video conferencing).
]]>Stroke is a native Java port of the Swiften XMPP library that Remko and I work on. It came about because Isode (my day job) needed an XMPP library for use in a Java project and none of the alternatives at the time seemed to be suitable, so I’ve been spending some of my work days over the last while porting Swiften. Isode have decided to open-source Stroke and I’ve uploaded the development repository to http://swift.im/git/stroke alongside the Swift and Swiften code.
Stroke’s now in a basic usable state but I’m still working on adding some of the basic necessary features. Particularly, at this stage, it’s lacking in:
I intend to address these as time allows.
On the other hand, it’s already inherited some of the nice features that Swiften has, particularly:
If you’d like to grab a copy to have a look at, experiment with or just follow development of, head over to http://swift.im/git/stroke.
If you’d like to chat about Stroke (or Swiften, or Swift), we’ve got a chat room and a mailing list, linked from our Discussion Page and I’d love to hear from you.
The primary license is the GPL v3, although alternative licensing may be arranged for Stroke (and for Swiften). Contact Us.
]]>We have to mention that these weren’t the only proposals we received. Most of the proposals we received this year were of good quality: we suspect that the teaser tasks we put up for potential students made it possible for both the students and us to get an idea up front of what should be expected. However, based on experience from previous years, we decided we should only accept 2 students, to ensure that we could give our full attention to making all projects successful (including fast integration into a Swift release). We’re convinced that both Vlad and Tobias will live up to their expectations, and implement some of the most requested Swift features today!
]]>We would like to thank Isode for sponsoring time for Kevin to work on Swift, Flosoft for providing our download infrastructure, Dave Cridland for the logo, all the translators who helped us make Swift available in different languages, all the code contributors, all of whom should be listed on our About page, and all our beta testers for giving us feedback and bugreports throughout the whole development period!
]]>The release notes are available at http://swift.im/releases/swift-1.0rc1/ and the changelog since beta9 is:
Please test http://swift.im/releases/swift-1.0rc1/, and encourage friends, families and colleagues to do the same, and we’ll look forward to Swift 1.0.
]]>