Songs of Doom

Archive for the 'Psi' category

Happy New Year

1:15 pm

As reported by myself at midnight ( http://permalink.gmane.org/gmane.network.jabber.psi.devel/4865 ) and Remko this morning ( http://el-tramo.be/blog/psi-qt4-unleashed ) we decided to launch the Qt4 development branch of Psi as a new year’s present to the Psi development community. For more details, please read Remko’s post but a summary of what we’ve done so far follows, please note that this is development code, it *is* buggy and even the Qt4 (and Qt4.1) libraries are still pretty raw.

* We use the qt3 compatability library at the moment, although the amount we do is lessening over time.
* We now use QCA2.
* Mac users now get brushed metal dialogs if they want them.
* Some code has been cleaned up, classes split into more sensible locations and our file structure cleaned up a bit.
* The chat dialogs and options dialogs which were broken in our initial port have been fixed up by Fran (thanks Fran).

There are still plenty of outstanding issues, including
* No GPG support yet.
* Segfaults.
* Missing roster functionality.
* The compatability library is quite unpleasant in places
So please don’t use this code for production environments, or share with your less computer-savvy friends as the user experience is not ideal.

All in all though, there’s been a lot of work put into this branch already, especially by Remko, Misha, Fran and myself and I hope that before too long, with the community’s help, we’ll be seeing a stable Qt4 release.

Happy New Year.

Bells of Jingle

1:05 am

As a further update on my previous post about Jingle support, we’ve been progressing at a fairly rapid pace and as described in our Jingle branch wiki page we now have Jingle audio calls working both from Psi to Psi, and from Psi to and from Google Talk. Hopefully this means we’ve got the interface with libjingle working ok, and any other client that comes along using libjingle will interoperate just fine. We can but hope. Now that the linux code supplied with libjingle works, we’re looking at other platforms; first of all Mac OSX.
Please not that this is not a guarantee that the jingle branch is stable yet, it’s certainly not, but it’s getting better :)

I say, I say, I say, did you hear the one about….

1:07 am

Subsequent to my last post about the branches of Psi we’ve been working on, I’m now delighted to announce that we’ve also been working on a third branch in the recent weeks.

The Jingle protocol (session and voice) is the culmination of months of discussion between the Google Talk team and interested parties in the JSF, which finally became standards-track yesterday. Jingle is basically the voice protocol supported by the Google Talk client.

The Google Talk team today announced the first release of a C++ library which manages the Jingle protocol. This means that other clients should be able to take this code and integrate Jingle support without coding the p2p and other details themselves.

In the last month or so, Sean Egan (one of the nice guys on the GT team (yes, they rock)) has been helping Remko and myself integrate the libjingle code in Psi ready for libjingle’s release today, meaning……voice calling for Psi. This is where a lot of Remko and my time has gone which might otherwise have been spent on visible Psi development.

Since the libjingle library has been publically released now, we are able to give a first glimpse of our Psi branch using the library.

Also included (and a necessary pre-requisite to Jingle support), this is the first time you’ve seen Psi supporting Entity Capabilites (there’s a patch that’s been circulating that we’ve noticed some unofficial builders have been including but it’s broken (hey, sometimes there’s a reason patches don’t make it into mainline ;) )). As such, if you just want to test caps, grab the repository and don’t enable jingle support when you compile. Unlike all the warnings further down the post about the stability of our interface with libjingle, the Caps support should be fine now and will be merged into mainline as soon as our rather hectic roadplan allows.

There are disclaimers:

  • This is heavily unstable software
  • This is not feature-complete
  • This voice support, which doesn’t yet work reliably, is linux-only at the moment.

The state of the code at last glance was:

  • Psi < -> Psi calling will not work. It will look like it does, but no stream will be established.
  • Psi < -> Google Talk calling will work, but will terminate a short time afterwards (20 or 30 seconds)
  • Psi < -> call calling should work ok. (call is the example command-line client in psi/third_party/libjingle/talk/examples/call. Just cd there, run qmake and then make)

So please feel free to have a play with what’s up there, and if you want to submit bug fixes, I’d be more than delighted, but don’t expect things to work properly yet.

The darcs repo is available at:

http://dev.psi-im.org/darcs/psi-jingle/

use ./configure --help to work out what you need, my line looks like this:

./configure --with-glib-inc=/usr/include/glib-2.0 --with-glibconfig-inc=/usr/lib/glib-2.0/include/ --with-ortp-lib=/usr/local/lib/ --with-ortp-inc=/usr/local/include/ortp/ --with-ilbc-inc=/usr/local/include/ilbc/ --with-ilbc-lib=/usr/local/lib --with-speex-inc=/usr/local/include/speex/ --with-speex-lib=/user/local/lib --enable-jingle

Please note that this development is parallel to the release series until it’s stable, when we’ll merge it back in.

/K

Branch update

5:07 pm

Psi development seems to have been pretty stagnant lately so here’s an update on what’s been happening in the world.

Psi-0.10

The story of 0.10 isn’t a happy one, unfortunately; it’s been dragging on for a very long time due to circumstances outside my control. I think the code’s ready. Most, if not all, of the translations are now in. Once we’ve got a new logo / icons ready, we’ll ship. Fortunately, while 0.10 has been stalled, we’ve branched the codebase and have been working on other things:

The Qt4 port

Assorted people have been working pretty hard on getting Psi ported over to the new Qt4 library; it’s turned out that this wasn’t as trivial as some people might have hoped but we’re progressing well. Psi’s now usable (in a basic state) on Qt4 and once we’ve got 0.10 out of the door the codebase should be ready for some very early public consumption. We’re taking the opportunity while porting to get some code rewriting done, so things will hopefully feel a little smoother as well.

Wishlists

Fran suggested to me that it’d be useful for contributers to have a list of things I’d like implemented that’s a bit nicer to scour than the bug tracking system, so I created a feature wishlist. The idea is that I’ll list here small, or self-contained units of code which’re useful to Psi, but not on the immediate roadplan for the core development team. I hope to add to this list and then maintain it so that anyone with a hankering to get some coding time in has some ideas, together with suggestions for implementation. If anyone has ideas that they think could be added to this list, please let me know and I’ll have a look at them.

Google Talk

1:54 pm

As I suspect every other Jabber/XMPP using person on the planet has done, I feel I’d better make a post about Google Talk. Release this morning, it’s an xmpp service running on talk.google.com using gmail addresses for accounts.

What things do we need to know about it?
The Google Talk client itself supports voice chat, I’ve not tested this. Google say they’ll be releasing open specs soon, so we’ll enjoy seeing those I think.
Apart from this, both the client and server are fairly basic at the moment, possibly as you’d expect a few hours into beta. The server doesn’t support s2s, disco, offline message storage. However, as it’s xmpp, all the jabber client->client extensions work fine as long as you’re using clients that support them. So using Psi, as I obviously am, typing notifications work fine, even though the GT client doesn’t support this (yet?).

Psi is one of the listed clients, which is neat. Unfortunately the instructions google give for setting Psi up for google talk appear to not be perfect, and they link to our old documentation, as the new stuff is still a couple of hours away from release. IceRAM’s writing a Google Talk/Psi howto at the moment, and hopefully by the evening we’ll have the new documentation like, a test release of our new version (so that’s Psi-0.10-test1) and lots of happy bunnies.

If anyone would like to write my thesis for me while I’m involved in all this, please feel free.

On the personal side, I’m finally back at training (TaeKwon-Do) again after two months forced rest (I broke my foot) and I’m feeling the effects of my lack of training, both in my general fitness and my technique. I don’t think I’m going to be entering any half marathons again soon, nor making great progress towards my next grade for many months. To rub salt in the wound, the foot still hurts.

/K

No Summer of Code for Psi

12:06 pm


The application from my brother to work on Psi was rejected. I’m upset for Psi, but glad for Jabber for the 10 projects that were accepted.

I’ve just been told that my previous version of this article sounded very bitter, which it probably did so I’m cutting it.
I’m very sorry to anyone who previously read the old version and took offense, it wasn’t my intention. I also understand that my posts to jdev sounded very bitter so I’m also sorry for that. I am sad, obviously, because I care about the progress of Psi more than perhaps I should. The JSF council are far more impartial than I am and probably made better decisions on the SoC applicants than I would have.

Update on Psi

8:45 pm

Ok, to keep everyone up to date on what’s happening in psi as I’ve been far too quiet recently:
Current is still 0.9.3, and the next version will be 0.10, which probably won’t be happening in the next month or two, so no worries about breaking our usual 6month release plan yet.

Important things for 0.10 include:

  • MUC; this is being done by sneakin (Nolan) and I believe is Almost Ready(tm).
  • Tabbed Chats; these are being done by me and a couple of minor bugs prevent it being Ready. The code’s not pretty, so a rewrite is in order, possibly post-0.10.
  • A shiney new line-edit that expands as necessary/autosizing rosters; these are both done by Mblsha and are pretty much complete
  • Growl notifications; coded by Remko and finished.
  • Adding photos to the vcard; done by Francisco Rodríguez
  • Lots of generic UI improvements, done by various people including Remko and Kris Vandebroek, which are currently underway.
  • Global Keyboard Shortcuts; an early version has been supplied by GreyCat, which I’ll probably rewrite to be release-ready.

Things on the horizon that might not, probably won’t, or won’t make it in for 0.10, but which are assigned/planned are:

  • xhtml-im; Fran and I are going to look at this soon
  • pubsub; Remko is probably going to look at this after 0.10 for 0.11
  • Status in roster; Remko has adapted one of Skazi’s patches to display contact’s status messages in the roster, but an unfortunate consequence is wasted space between entries, which needs to be resolved first.
  • Plugins; Initially only output plugins, both Remko and I have an interest in doing this but haven’t started yet

There’s many other things that I haven’t listed here that need to be done/will be done etc, as discussed on the mailing list.

In the near future; once I’ve tracked down the bug in tabs that I’m searching for tonight, I’ll make a preview release (hopefully in the next week or so) that will give people a taster of what’s to come, while hopefully being stable enough to use.

Revision control

3:52 pm

Well, after spending some time evaluating gnu-arch as a replacement for the increasingly dated CVS, we’ve pretty much decided arch isn’t currently the way to go. Next stop, darcs. Like arch, darcs is distributed, meaning everyone gets their own version control but, unlike arch, every time you make a new checkout of the repo, you get a new repo. What this means is that you don’t have to worry about being online, or offline, or branching, or anything similar. You get your new copy, and you work on it. If you want to, you can then push the changes back to the mainline. I’m about as excited about this as I was about arch when I started looking at it, so we’ll see. The big advantage is that it’ll work on windows, and the osx support should suck less than arch’s. Only time will tell.

New in the Psi world

4:20 pm

Two largeish developments in the world of Psi today.

Firstly, Remko Tronçon has just been elevated to the heady heights of the official development team. What this means is mostly just that he’s gotten recognition for the outstanding work he’s done for the project. He’ll still continue to code in the same manner he has to this date. His previous and continuing efforts include work on ad-hoc commands, growl popups, avatars, and various other things that haven’t made it into a Psi release yet for assorted and disinteresting reasons. He’s also responsible for the Mac build scripts, and is our official Mac packager. All hail Remko. I’ve had it on good authority that he doesn’t intend for his new-found fame to go to his head, and as soon as we’ve finalised on a new iconset for 0.10 consisting of himself in various facial expressions signifying degrees of presence, he’ll be returning to work for us.

Secondly, I’ve committed a patch for Growl support (written by Remko). For anyone who doesn’t know, Growl’s a very pretty OS X notification system, looking something like the below screenshot (again courtesy of Remko).
Remko's Growl Screenshot

Patch Management

1:32 am

Ok, how do people manage patch submissions?
I have those that come through the mailing list, those that’re sent directly to me by email, those transferred by Jabber and those that seem to appear from nowhere.

My solution from now on is going to be simple; all patches can go directly into the Flyspray bug tracking system.
Now I’ll have a ready list no matter whether I’m at home, at work, or on another continent, I’ll be able to see all the patches I’m neglecting.
Genius.
For small values of genius.

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