Now that the final Swift beta has been released, it’s time to start translating Swift in as many languages as possible! Thanks to a handful of early translators, we’ve been able to iron out (hopefully) the last translation issues from beta9, and we have Dutch, Polish, French, German, Norwegian, Czech, Slovak, Spanish, and Catalan translations in the works. So, now, we’re calling out to you: if your language is not in the list, and you feel you could do a good job translating the Swift user interface (containing about 250 strings), please drop by the Swift room swift@rooms.swift.im, and let us know!
Swift Translators Wanted
XMPP Scripting with Sluift
Did you ever want to find out what XMPP clients people in your contact list are using? Do you want to migrate your contact list from one server to another, but don’t want to provide your password to some on-line service to do that? Do you have some XMPP-related task you quickly want to write a script for, but don’t want to deal with complex asynchronous APIs? Well, Sluift may be just the thing you are looking for!
Sluift is a Lua-based script layer on top of the Swiften XMPP library. It provides a simple API to do common XMPP tasks, either interactively (through an XMPP console), or by running a script in batch mode. In this post, we’ll go through some examples of what you can already do with Sluift today.
Swiften on Lambdas
One of the cool new features of the upcoming C++ (0x) standard is support for lambda expressions, providing functional-style inline function declarations. After seeing Herb Sutter’s PDC 2010 webcast on lambdas, I wanted to try this out on Swiften, the XMPP library behind Swift. I adapted the introductory EchoBot example from XMPP: The Definitive Guide, and ported it from Python to a C++ application using Swiften. The result is surprisingly clean.
Retjilp: A Native Auto-Retweet Bot
Since I couldn’t find a bot that automatically retweets statuses using the native Twitter Retweet API (all I found was RSS pipes that prefixed messages with “RT”), I created one myself. Retjilp is a (Ruby) script that logs into Twitter, scans the statuses of the contacts you are following, and retweets the statuses matching specified words. The Swift Twitter feed shows the script in action, retweeting all Swift and XMPP related tags from the Swift developers. You can get Retjilp from the Git repository (or from GitHub).
The Myths of Innovation (Scott Berkun)

By taking some of the great past and present innovations off the divine pedestal they have been put on, Scott Berkun illustrates what innovating is really about in his Myths of Innovation. And although the subject sounds negative, this classic by Scott Berkun is strangely empowering, inspires everyone to be innovative, and does all this in the extremely pleasant, entertaining, and easy to read style we’re used to from Berkun. Highly recommended!
More squishy data
After Tobias Markmann told me that he was running into resource limitations with a Swiften-based tool for testing server load, I decided to do a small experiment myself. I created a small benchmarking tool, and ran it through the memory allocation profiler from Apple’s Instruments. It turned out that the combination of TLS and ZLib compression (aka “squishy data”) was causing a much higher memory usage than I would have expected.
“Swiften Developer’s Guide” available
People have recently been showing interest in using Swiften, Swift’s C++ XMPP library, for building their own XMPP applications. We therefore created the Swiften Developer’s Guide with a tutorial-style guide to Swiften (including examples), and made it available together with the Swiften API Documentation. If you’re interested in creating an XMPP client or component, be sure to give these documents (and some of the examples from the Swift code repository) a look!
Swift 1.0-beta8 released
We just released the next Swift beta, beta8. The major focus of this release was fix some crashes, problems, and papercuts from the previous beta(s). For a full list of changes, see the Swift 1.0beta8 release page. The list of outstanding cases is getting shorter and shorter, so this will hopefully be one of the last few betas before 1.0. This also means now is the perfect time to give Swift a shot, and give us your feedback!
Eclipse CPPUnit Error Parser
I’ve recently been experimenting with using Eclipse CDT as IDE for Swift development. One of the handy things is that Eclipse CDT has support for parsing compiler error messages, allowing you to quickly navigate to the failing source code line by simply clicking on the error message. Although Eclipse CDT supports all the compilers we use for Swift out of the box, I was still missing the easy navigation for fixing failing CPPUnit tests. Since the error parser (just like almost everything else from Eclipse) is extensible, I wrote a small plugin for parsing CPPUnit error messages.
Swift 1.0-beta6 released
It’s been a while since we released the previous Swift beta. As a result, the sixth beta is quite packed with bugfixes, speedups, and general improvements. The list of changes is too long to describe here, so head on over to http://swift.im/releases/swift-1.0beta6/ for details and downloads of the last Swift beta, and let us know what you think in the MUC room – swift@rooms.swift.im.


