Reflections Through The Gate

Monday, after a long period of heavy development, I finally put out version 1.1.0 of the IM Gateway plugin! A total of 85 issues from JIRA were closed along the way and I’m quite pleased with the results. Along the way there were a number of stumbling blocks where I would just about be ready to release and something major would come up, and I certainly did not want to release anything with serious issues going on. As development continued, more and more features became interesting to me and were implemented. Since 1.0’s release, I’ve had a number of helpful folk step up and offer patches, testing, code, translations, and help with libraries I depend on. I want to take a moment to thank everyone who contributed in any way! You are all invaluable to me! There are a number of big plans coming for the next major release, but I wanted to highlight some of the things from 1.1.0’s release and even comment on some of it!

First off, there’s XMPP/Google Talk support. One might ask, why do you want XMPP support when there’s s2s? That’s a question that’s been fought many times in the past and typically results in nothing being decided. Well I decided to implement it and then another helpful person (thanks Mehmet!) took my piddly start with it and turned it into a full on transport for the plugin. After implementing it I found myself using it with some accounts I had seen no reason to add to my Adium X config but decided hey, if I can handle it server side, then I’ll just carry it around with me. Has been working out really well!

Then there’s Gadu-Gadu support. This is a protocol I did not expect to ever implement. Why? Everything about it is Polish. I couldn’t find my way around the web site enough to even download a copy of the client. However, I said early on that if someone would translate or help me download or generally help me get it set up and there was a good API out there, I’d do it. So thanks to Marcin for stepping up and helping me get this started! The API itself was amazingly enough the easiest API to work with yet!

And what about SIMPLE support? Thanks to Ravin and Patrick for writing this support as I wouldn’t have even known where to begin! I still don’t understnad SIP/SIMPLE. Who knows if I ever will. But the transport sure works with my OpenSER server! I’m hoping some folk will take a look at it so I can get a feel for what it does and does not work with and maybe I can work with them to tweak it to work correctly with various implementations.

Another interesting thing that was added is an XMLRPC interface so site administrators can write their own web front ends for users to register with the various transports. That way folk could use some various standard web look and feel for the registration, and/or their own authentication mechanism, or even just something they consider “nicer” for their users, and dodge around typical requirements of registering through a client or requiring the admin to do it for them.

A lot of the inner workings of the plugin were redone, making things a lot more efficient in terms of network traffic and overall coding structure. I don’t know that anyone but me will appreciate the reworkings of the code, but hey. =)

One of the interesting things that came about is that I ended up as the lead developer for Martyr, a very cool IRC library. IRClib just wasn’t getting it done for me so I tried out Martyr, adored it’s structure, and offered to help improve it. It’s already led to a far better IRC transport than what I had before.

Beyond that I want to thank the folk from nimbuzz for creating the wonderful project OpenYMSG (a fork of YMSG) that fixes a number of problems I kept running into in the past! Through their improvements Yahoo support in the IM Gateway plugin was promoted to being considered stable! On top of that they’ve helped me out some with JML, the library that handles MSN support. Great work folk!

Well that’s enough of me, I’m excited about things to come though and I hope you all will join me in that excitement and continue to help me with testing, ideas, and whatever! =)

one question remains - is it possible to register several accounts - say 2 icq uins - so that in my roster are the contacts from both of them?

Not yet! =) That’s on my 2.0 list though. (that and/or having multiple instances of gateways running) I do have some news on that front though. I went through a concept of how that would work from an XMPP protocol standpoint in my head and talked with Peter St. Andre about it a bit and he seems to think it’s an interesting approach. I’m going to write up an XEP proposal in the near future so start the ball rolling. ( I assume you have voted for that feature in the issue tracker? ;D )