Revealing Stroke to the world
July 4, 2011, 9:52 amIt’s time to reveal the latest project I’ve been working on to the world and, just to prove that XMPP isn’t all of my life, it’s…an XMPP library.
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:
- TLS support.
- zlib compression support.
- Many (most?) of the protocol payload handling that its big brother Swiften has.
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:
- Support for the SCRAM-SHA1 authentication mechanism (a mandatory feature for XMPP, these days).
- XEP-0198 stanza acknowledgement support (for reliable messaging).
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.
Swift 1.0 Release Candidate
April 3, 2011, 2:07 pmA bit under a month since the last beta was released, Swift has reached Release Candidate stage for 1.0. This version is being released to check that each i is dotted and each t crossed, so please report any bugs/issues that you find, and in the absence of problems we’ll aim to release the final builds soon.
The release notes are available at http://swift.im/releases/swift-1.0rc1/ and the changelog since beta9 is:
- Added Spanish and Catalan translation (Thanks to Jan Kusanagi)
- Added Russian translation (Thanks to Ivan Tyumentsev)
- Added German translation (Thanks to Thilo Cestonaro)
- Fixed a bug where the avatar was not updating in the chat window.
- Fixed typo in room join message.
- Fixed a potential hang on shutdown on Mac OS X.
- Fixed compilation on systems with a recent version of Boost installed.
- Fixed the last couple of remaining known crashes
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.
Categories: Swift
Comments Off
Swift needs *you* for Google Summer of Code 2011
March 19, 2011, 6:25 pmJust under 24 hours ago, the XMPP Standards Foundation were told that they’ve been accepted for Google’s Summer of Code 2011. A healthy chunk of Swift projects are within the ideas the XSF are proposing this summer, and we’re looking forward to the opportunity to involve more people in what is, for Remko and me, a very enjoyable pastime. So if you’re a student, please visit our chat room or our mailing list and see if we can discuss ideas that excite you. If you know students who might be interested, please spread the word, and help make Swift’s first GSoC experience a great one.
Swift 1.0-beta9 released
March 13, 2011, 10:17 amWe’ve just released the final pre-1.0 beta of Swift (next step Release Candidate). We have no known bugs in Swift at this point, so if you find any please report them so we can get them fixed for the RC.
A fuller changelog is available at http://swift.im/releases/swift-1.0beta9/, but the highlights include:
* On servers that support it, users can now perform searches for contacts to add or chat to.
* The roster header can now be configured to show the JID instead of the nick.
* Server certificates are now verified and validated. Certificates not passing the tests require confirmation.
* Added dialog changing your nickname and avatar.
* Swift now uses SCRAM-SHA-1-PLUS authentication on servers that support it.
* Highlighting an item in the login account list and pressing detele will now prompt you to remove the cached credentials for that account. (Thanks to Thilo Cestonaro)
* Added keyboard accelerators for tabs and commands. (Thanks to Arnt Gulbrandsen)
* Security labels (XEP-0258) support has been updated to match the latest version of the specification.
* It is now possible to edit contacts from the standard menus (without needing to right-click on the item)
* Fixed all known bugs.
* Various speed improvements.
* Various aesthetic improvements.
* Added Dutch translation.
Please go forth and test: http://swift.im/releases/swift-1.0beta9/
See you in RC.
Categories: Swift
1 Comment »
Swift-1.0beta7 released.
October 10, 2010, 9:54 amI’m pleased to announce the release of Swift-1.0beta7 (http://swift.im/releases/swift-1.0beta7/, with a long list of substantial changes since beta6:
- Show popup notifications for incoming messages (and optionally, presence changes) through Growl (Mac OS X), Snarl (Windows), or FreeDesktop (Linux).
- Acknowledge server receipt of sent messages (Demo).
- Subsequent presence changes in the chat log are now combined to avoid clutter.
- It’s now possible to rename contacts and groups.
- It’s now possible to assign your contacts to groups.
- It’s now possible to cancel a login in progress.
- Whether roster groups are expanded or collapsed is now persisted between sessions.
- Fixed a problem where multiple notices were selected when new ones were added.
- The roster header will no longer show you with (No message) if you specify a message when you go offline.
- Contacts will no longer show as ‘typing’ if you go offline before they’ve sent the message.
- Fixed problems with the chat logs not properly scrolling to bottom.
- Joining rooms when you are not plain ‘available’ now correctly sends your status to the room.
- Being in a MUC with someone who has their role changed will no longer cause them to appear several times in the occupant list.
- The Mac Dock icon has stopped jumping when it shouldn’t.
- System and Presence messages in chat windows are now linkified (as well as chat messages, which were previously).
- We now only show the system tray message icon for message events.
- When reconnecting, we now try to reuse server-generated resources to avoid having multiple resources connected for the same client.
- We now detect when we should use chat state notifications.
- Fixed a problem where MUC discovery would loop when searching a server that has the same JID with different nodes.
- The chat window now shows date changes.
- Support creating new MUCs.
- Display avatars for offline contacts.
- Added “Clear” context menu for chat log.
- Fixed a problem where the roster wasn’t refreshed properly on reconnect.
- Display the user’s nickname at the top of the roster.
- Fixed problems with certain LibXML versions failing on the vcard-temp namespace.
- Various improvements for the Windows installer.
- Fixed assorted memory leaks.
We’re now approaching feature-completeness for 1.0, and Swift is pretty much ready for day-to-day use, so testing and feedback would be very welcome – grab it now from http://swift.im/releases/swift-1.0beta7/
Categories: Swift
Comments Off
Reliable Messaging in Swift
September 7, 2010, 5:34 pmKnowing whether your messages have reached your server is a common problem for people on unreliable connections, and XMPP addresses this with XEP-0198: Stream Management. Support for XEP-0198 has been slow to take off, but we’re starting to see a network effect of clients and servers supporting it, with a patch available for Psi, support in the upcoming release of Prosody and a working prototype for Isode’s M-Link, so we’ve reached the stage that it makes sense to add it for Swift.
Remko’s written all the code we need in our Swiften library, and I’ve plugged the UI together to produce XEP-0198 support for Swift, demonstrated in the video below. This has so far been tested against Prosody and M-Link, and has already shown itself to be useful.
Support will be included in the next beta release of Swift, or is already available in the source code repository.
Categories: Jabber, Swift
1 Comment »
Swift 1.0-beta4 released
June 22, 2010, 6:44 pmWorking hard to keep up with the great feedback we’ve been getting on the previous betas, Remko and I are pleased to announce our fourth beta of Swift.
These are the changes since 1.0-beta3:
* The chat window shows the total unread message count, not only the selected chat.
* Room subjects are now shown on join.
* The Find Room window now resizes correctly.
* The Windows installer now puts start menu shortcuts in a sensible place on re-install. This will take effect the second time you run an installer with this fix.
* Fixed a crash involving disconnects or reconnects.
* Various small fixes
Full details at http://swift.im/releases/swift-1.0beta4/
As with the previous betas, please grab the new release and let us know how you get on – what’s good, what’s not so good, and just generally discuss the project in the MUC room – swift@rooms.swift.im
Categories: Swift
1 Comment »
First public Swift beta released.
May 28, 2010, 7:38 pmOver a year ago (while writing XMPP: The Definitive Guide with Peter Saint-Andre) Remko Tronçon and I were reviewing the current state of XMPP clients and saw a gap for a simple cross-platform client targeting normal end-users who just want to chat. Swift is the client that we’ve been working on since then to fill this hole, and now we’d like your help with the project. Swift assumes that what you want to do most in your client is chat – either with a single person or a group of people – and that the experience should be based on making this easy and enjoyable.
The first public beta (preview) of Swift is now released, and we’d like you to help us. Primarily, we’d like feedback from you as to what needs to be done now, and also to find any issues – either technical or in usability – with what we’ve already done. This isn’t a final release, so you shouldn’t download it unless you’re willing to find issues in it, and report them back to us so we can improve it.

The roster

A chat room.
We’ve got Windows and Mac binaries ready so far. The source compiles on Windows, Mac and Linux, and with a little coaxing I even managed to give a demo on an N900 Maemo phone at FOSDEM this year.
The Swift 1.0-beta1 release page has links to the downloads and the source, visit it now and get started with Swift, and then use the mailing list, or the MUC room (swift@rooms.swift.im) to start discussing it.
Categories: Jabber, Swift
5 Comments »
XMPP: The Definitive Guide for $9.99
May 21, 2010, 2:09 pmI’ve just read that O’Reilly are doing just about every ebook in their store for just $9.99 today, so if you’ve not got your copy of XMPP: The Definitive Guide yet, this is a great opportunity to save some money (oh, and they sell other books too).
http://oreilly.com/catalog/9780596521271, use code ‘FAVFA’ at checkout.
More Swift teasings
September 6, 2009, 10:01 amIt’s been quite a while since I posted a teaser of the login window and people have been asking for updates since then, so here’s a quick post to appease everyone.
We’ve been making progress steadily over the last 6 months. One of the first things we got going was the chat interface:

It’s minimal, but that’s quite comfortable for us, at the moment. We’ll review that over time, so you may see buttons and icons appearing there in the future.
More recently, we’ve spent quite a while working on the contact list:

I was initially reticent to use custom rendering code for Qt’s views but in the end it seems to have turned out alright for us.
So where does that leave us – will it be another 6 months before we blog again?
I hope not – Remko and I are working towards an internal 1.0 Release Candidate quite hard now, and it hopefully won’t be a vast amount of time before we post about that. After 1.0RC, we’ll start making the builds gradually less private (to manage the amount of feedback we get) until we work to the big 1.0 release day.
Categories: Jabber, Swift
10 Comments »
