It’s been an exciting time recently for the “XMPP: The Definitive Guide” book that Peter, Remko and I have been working on. Just over a week ago, Remko announced the availability of the book in the Rough Cuts scheme, where you can buy a PDF of the unfinished manuscript to read now, and receive the full version when it’s ready. Then, earlier this week, Peter posted about our submission of the full manuscript to O’Reilly, ready for technical review. Now it’s my turn with the good news: O’Reilly have updated the Rough Cut of the book with our submission, meaning that there is a complete, current book on the XMPP technologies available.
There will still be changes to the manuscript as a result of reviewers’ comments, but we think this is now a text we’re happy to have available. O’Reilly have feedback mechanisms for Rough Cuts, so if you read the book and anything is unclear (or, let us hope not, wrong) please help us make this book something that can guide current and future developers in their work with XMPP.
Taking a quick break from writing on XMPP: The Definitive Guide, someone in the jdev room reminded me that I started on a project a while ago to make migrating xmpp server software easier.
I wanted to migrate from ejabberd to another server, and didn’t fancy writing yet another one-way conversion script, so threw some code together that lets you plug multiple import/export filters in. Currently it supports two filters for getting data in to servers, Tigase’s (quite limited) import filter (roster entries only), and the XEP-0227 generic format. Ideally, all servers will support XEP-0227 for both import and export natively at some point, but at the moment not many servers support even import with it (although some do!), and thanks to Dave Cridland for finding and fixing some of my bugs in this. The only filter I have for getting data out of a server at the moment does it over the wire (and so should work for any server implementation) - it takes a list of uname/password pairs (which can be sucked out of most servers quite easily), and then connects an IM-less session for each of these to extract their roster (including subscription states), their vcard, some iq:private nodes (useful for muc bookmarks etc) etc.
It’s based on Nathan Fritz’s excellent SleekXMPP library (Python) to drive it, and the code’s currently available from http://github.com/Kev/sleekmigrate/tree/master - I may set up a more permanent home for it some day, if it starts to see real-world use. It’s quite raw, so if you want to use it, either use the source, or contact me and I’ll see about cleaning it up a bit or helping.
Remko TronÃ§on, Peter Saint-Andre and I are writing a book on XMPP for O’Reilly, with a working title of “XMPP: The Definitive Guide”, expected to hit the shelves (and hopefully fly off them soon after) early 2009.
If you’re wondering how things like this come about, the story goes something like this:
Every so often, someone comes into the Jabber Development room, and asks if there’s any getting started documentation, or they ask if there’s a decent book, or they ask if there’s a guide to what Jabber/XMPP can do for them as a developer. For some reason, it seems to usually be me that ends up letting them know that there isn’t really, unless you want to go and read the RFCs, or the XEPs. I got the daft idea that writing such a book would be helpful, so I poked Remko and asked if he was interested in co-authoring something if O’Reilly would publish it - he was, so off we went and did very little for quite a while. As it happens, O’Reilly were interested in publishing a book about XMPP; realising an XMPP book wasn’t an XMPP book without Peter, we set about persuading him that joining us in the venture was a Smart Thingâ¢, and things started moving.
We met up for a pizza at FOSDEM in February, hashed out where we wanted to go with the book, wrote out the overview, sent it off to O’Reilly, who didn’t hate it, and started writing.
Since then, we’ve made some decent progress on it, and also found out that writing books is hard work (even given that each of us has written at least either a doctoral thesis or RFCs). Still, we’re chugging along and things should be really taking shape in the next month or two The rest will, someday, be history – we’ll post an update later when we’re closer to the inevitable fame and fortune.
Say hello to Psi 0.12. Thanks to everyone involved in this or previous releases.
New in 0.12 - Multi-user chat windows now join one on one chat windows and can be opened in tabbed form, either sharing a window, or seperately. - The roster search has been updated, and now triggers a filter when typing into the roster window. - An XML ringbuffer is now used, allowing access to already received XML in the XML console. - When resolving a name for new contacts, the full name is now used if the nick name is missing from the vcard. - Auto-connect on wake is now an independent option. - MUCs can now be bookmarked, and auto-joined. - The old config.xml file has been dropped in favour of the new options.xml format - all options in Psi can now be configured from the Advanced options pane (no more hand-editing of config files is required). - Vcard avatars are now transmitted for the benefit of legacy clients and servers not supporting PEP. - A new diagnostics group is available in the help menu, to allow debugging problems with the QCA security layer. - Launching several instances of the same profile on Windows and Unices with DBUS now behaves more sensibly. - On X11, the taskbar should now flash on new messages for compliant window managers.
Downloads from http://psi-im.org/download/
I’m not at the XMPP Summit, sadly, but I’m being my usual nuisance self remotely, thanks to the summit MUC, and the live feed (thanks bear) at http://www.ustream.tv/channel/xmpp-summit–5.
I’m sure someone who’s there can write a summary later, but at least this means those of us not fortunate enough to make it out there can enjoy the talks. P.S. SleekXMPP and SleekBot are getting mentioned at the moment ;)