Songs of Doom

Archive for the 'Computers' category

XMPP: The Definitive Guide – Rough Cuts edition

7:51 am

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.

XMPP: The Definitive Guide

Sleek Migrate – A server migration tool.

4:55 pm

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.

XMPP: The almost-definitive-guide to-be

6:27 pm

You’ll already have read, or be about to read, similar blog posts from Remko and Peter, I imagine, here’s my take:

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.

Psi 0.12

8:50 pm

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

8:16 pm

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

Thanks, Psi

9:09 pm

I’ve been meaning to make this post for an age…
A decent number of people thank the Psi project, and that’s great; I get thanked more than most, I think, because I’m the one who gets to make the release announcements, and it looks like I do all the work because of this. These days, I write very little code, because I just try and keep the other things ticking over and bad things happen when I touch the codebase (and I never wrote that much code, anyway). Trying to spread around the thanks to the people who do the work, at least all the following guys deserve it. In no particular order:
Thanks Remko, Mblsha, Textshell and Machekku, our developers.
Thanks Justin, who despite leaving is still churning out code for us.
Thanks Hal, the webmaster.
Thanks Fritzy, for hosting our dev tools.
Thanks Jason, for graphics.
Thanks IceRam, for the windows installer.
Thanks AlekSi, Gislan and Senu, working on projects for GSoC this year.
Thanks MichalJ, who’s /still/ moderating the forums and making sure people get answers.
Thanks Joonas, who’s still working on his previous GSoC project.

Also, thanks to our numerous other code contributors, translators and packagers, who between them would make this post infeasibly long. You are not forgotten, however hard it is to make sure all the patches are reviewed and integrated, to give you a string freeze with as much warning as we should, or to give you long enough to run off builds at release time, and you’re all appreciated.

Thanks to everyone who hangs around the mailing lists, or the forums, or the muc being useful.

It’s nice to say thank-you sometimes.

If I didn’t thank you and you deserve to be, I’m sorry, and thank you.

Summer of Code ’08

9:15 pm

As summer 2008 approaches, students have been busy applying, the XSF has been busy scoring applications, and mentors have been busy preparing. It’s time again for Google’s Summer of code, a scheme to pay students to work on open source code for the summer, and hopefully for them to continue contributing afterwards. This year has been a good year for the XSF, and we had a good selection of strong applications. Congratulations to those students who made it through, and consolations to those students that didn’t make it into our limited number of slots – we hope you’ll contribute anyway to the great developer communities that make up the XSF.

Psi has been particularly lucky this year to have had many strong applications, and for the XSF to have assigned three of its six slots to Psi projects.

In no particular order:

Adam Czachorowski (gislan) is going to be working together with Remko on “Metacontacts support and various roster improvements for Psi”. Adam’s project will be looking at overhauling our roster support, to add many interesting features designed to make the roster more accessible, and less prone to its current verbosity.

Paweł Wiejacha (senu) is going to be working with me on “Themable WebKit-based Chat Dialogs”. Paweł’s project is going to produce a new, friendlier face for our chat windows. Not only will you be able to theme the windows with the same themes as Adium, Kopete, and Google Talk, but you’ll also be able to see extended presence information about your contacts, such as the tune they’re listening to, and their mood.

Aleksey Palazchenko (AlekSi) is going to be working with me on “Psi: Message history”. AlekSi’s project is going to address several shortcomings in our history system. Particular highlights of the plan are to support server-side history (XEP-136), to provide a much more usable GUI, and to log MUC history.

I’d like to take the opportunity to welcome our new contributors to the project, and wish them the best of luck for the summer. These are all projects with a high importance to Psi, and I’m hoping we can make major advancements in our usability.

Psi-0.12-RC2

8:55 pm

Just late enough in the day that people will believe this isn’t an April’s fool, the Psi team are delighted to announce the release of Psi-0.12-RC2, fixing all blocking bugs found in RC1.

Download sites are:
Mac: http://downloads.sourceforge.net/psi/Psi-0.12-RC2.dmg
Windows: http://downloads.sourceforge.net/psi/psi-0.12-RC2-win32.zip
Source: http://downloads.sourceforge.net/psi/psi-0.12-RC2.tar.bz2

If no issues are found, we’ll go gold in a couple of weeks.

Managing ‘todo’ lists – MaybeLater

12:08 pm

A story about my new Todo/GTD list application, MaybeLater

About eighteen months ago, I came across David Allen’s “Getting Things Done”, with the bold tagline “How to Achieve Stress-free Productivity”. While this post isn’t supposed to be an advertisement for the book, I tried it and it worked for me. I’d just started a new job, and aware of how disorganised I’d been during my PhD, I wanted a system to make sure I made a good impression with my new colleagues (also, I was tired of forgetting things) – so I tried a few applications which aim to help with a GTD system, and settled on one. I used this almost religiously – every thought I had either gets entered straight into the application if I’m at work at my desk, or gets written on one of the pink sticky notes I keep in my pocket, and stuck in my wallet.

This has worked pretty well for me since then, and I like to think that I’m fairly organised at work, and all my tasks for when I’m at home, or away, also get entered into the system. The problem which has repeatedly presented itself is that the application lives on my machine at work, and I rarely have access to that when I’m not in the office – although my tasks were recorded, they weren’t available when I needed to complete them.

This brought me to the conclusion that I should use a remote application for managing my lists, and after a quick look around I didn’t find any that appealed to me (many very good looking applications were recommended to me which were closed systems, and I have a tendency to like running my own systems if I can).

Fortunately, I’ve been wanting an excuse to learn the Django web framework for a while, and so I set to work writing a new GTD app which does what I want it to do as simply as I could. The result is MaybeLater. I’ve spent an hour or two on this most nights for the last week, and yesterday morning it reached the stage where I had enough features implemented to allow me to switch from my old application to MaybeLater exclusively. It’s still reasonably raw and featureless, but it does the job for me.

Last night, my better half also started using it, and within 30 minutes or so, the bug tracker had its first two entries (I’ve since fixed one of them).

One thing I miss about the old application was the ability to quickly enter a new task without firing up my web browser, logging in etc. I’ve made it as easy as I could without much effort in the web interface so far (although I have plans for improving this), but my next task is going to be implementing an XMPP interface, so I can simply send a plain-text message to a bot in my roster and have it entered into my task inbox. It seems like a good excuse to roll out Nathan Fritz’s easy-to-use SleekXMPP library which I already use a lot when I work on the SleekBot XMPP groupchat bot.

It should be fun to see where this goes.

Psi 0.12-RC1 released

1:07 pm

Hi all,
After only a little over four months since 0.11′s release, the Psi team are delighted to announce that we’ve got the first release candidate prepared for the 0.12 release. This is a great step towards a more regular release cycle, which we’re sure everyone will appreciate, but this does not mean that 0.12 will be lacking in the new and cool. Recognising that Psi’s user interface could be more usable at times, the majority of our changes for 0.12 revolve around usability. Please see the README for full release details, but probably the most important are:

Tabbed MUCs.
Tabbed chat has been very well received in previous releases, but has only gone to highlight just how badly tabbed groupchat/muc was needed, so we’ve gone ahead and implemented this. Those of us who’ve been using this new feature for a while can’t understand quite how we did without it, and various options are available for you to tweak exactly whether mucs and chats are tabbed together, or seperately, or not at all.

Improved roster search.
The roster search function has been improved, and will now filter the roster down to only matching contacts, making it much easier to find your contacts in the list.

Bookmarked conferences.
MUCs/groupchats can now be bookmarked (subject to server support, which almost every server has), so the user interface provides quick access to favourite mucs, and also to autojoin settings at login time.

Advanced option exposure.
While we’re confident our default settings will work for most of our users, we know how much many of you like to tinker with settings and to tweak Psi to be uniquely yours. Now all the options in Psi have been converted to a new internal format which allows us to provide access in the UI to every option. Those of you familiar with Firefox’s about:config will no doubt feel at home here, and will find the options in the Advanced tab of the options window (be warned that, of course, these options are only intended to be changed if you’re sure of what you’re doing and with a recent config backup, some of these may not be for the faint of heart).

We’d like to thank all the contributors, including those who’ve submitted patches for us, tested for bugs, fixed bugs, supported other users and translated Psi, and anyone else who helps the project in any way.

Now, please, go forth and test:
Mac: http://downloads.sourceforge.net/psi/Psi-0.12-RC1.dmg
Windows: http://downloads.sourceforge.net/psi/psi-win32-0.12-RC1.zip
Source: http://downloads.sourceforge.net/psi/psi-0.12-RC1.tar.bz2

Yours in Psi,
/K

Bad Behavior has blocked 633 access attempts in the last 7 days.