Experimental File Transfer support hits Swift

It's been a busy summer for Tobias Markmann, one of the XMPP Standards Foundation’s 2011 Google Summer of Code students. He has been working on implementing File Transfer support for Swift, using the fresh Jingle XMPP protocols. I'm happy to announce that we integrated Tobias’s work as an experimental feature into the main Swift branch, where it will be further developed and brushed off before being enabled in our nightly builds and releases.

Continue reading →

Posted in Swift | Tagged File Transfer, Google Summer Of Code, Jabber, Jingle, Swift, and XMPP

TwitCoop: A Desktop Cage for Twitter Mobile Web

The official Twitter for Mac app gives a great interface for Twitter: lightweight, compact, no bloat, and it looks great. Unfortunately, amongst the hundreds of Twitter clients already existing, I couldn't find anything similar for Linux or Windows. Instead of creating yet another client (which Twitter doesn't like anyway), I did a bit of Qt WebKit coding, and created a small desktop client around the (current) Twitter Mobile Web interface.

Update: The mobile Twitter website was updated, and doesn't work as well anymore with TwitCoop. I will try to upgrade TwitCoop to work with the new interface, but it is currently not clear whether this is at all possible.

Continue reading →

Posted in Software | Tagged Qt, TwitCoop, Twitter, and WebKit

Summer of Swift Code 2011

Yesterday, Google announced the 1116 students that were accepted for this year's edition of the Google Summer of Code, 5 of which will be working with the XMPP Standards Foundation. We're very happy to welcome both Tobias Markmann and Vlad Voicu, who will be working full-time on Swift this summer, implementing file transfer support and conversation history respectively.

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!

Posted in Swift | Tagged Conversation History, File Transfer, Google Summer Of Code, Jabber, Swift, and XMPP

Swift 1.0 Released

Finally! After 2 years of development, we're happy to finally announce the first full release of the Swift IM client! In this first release, we have focused on building a user-friendly messaging client, with all the basic features you would typically need for having real-time conversations. In future versions (which are already in the works as we speak), we will be extending Swift with more features.

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!

Posted in Swift | Tagged Jabber, Swift, and XMPP

Swift Translators Wanted

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!

Posted in Swift | Tagged I18n, Jabber, Swift, and XMPP

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.

Continue reading →

Posted in Programming and Swift | Tagged Jabber, Lua, Sluift, Swift, Swiften, and XMPP

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.

Continue reading →

Posted in Programming and Swift | Tagged C++, C++0x, CLang, GCC, Herb Sutter, Jabber, Lambdas, Swift, Swiften, Visual Studio, and XMPP

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).

Posted in Software | Tagged Bot, Retjilp, Ruby, and Twitter

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!

Continue reading →

Posted in Books | Tagged Books, Innovation, O'Reilly, Reviews, and Scott Berkun

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.

Continue reading →

Posted in Swift | Tagged Apple, Compression, Expat, Instruments, Jabber, LibXML, OpenSSL, Profiling, Swiften, TLS, XMPP, and ZLib