Planet Psi

May 02, 2008

Remko Tronçon

Mimicking Jaiku with Psi

The day before yesterday, Peter Saint-Andre sent out a couple of Jaiku invites to all Jabber Google Summer of Code students and their mentors, including me. Never having looked at microblogging before, I toyed around with it a bit, and it quickly reminded me that I still had something on my Psi wish-list for a while now: a flat, live log of all Jabber events in your network. Since I had a long weekend, I quickly coded up a prototype, and hooked it into Psi.

The result looks a bit like this:

If you know Jaiku, you’ll probably notice that this looks very similar to the Jaiku web interface. Besides status messages, there are all kinds of (extended) presence events from your contacts, such as the currently playing tune or his/her current mood. Groupchat (`channel’ in Jaiku) and directed messages are interleaved with the events, and get a hyperlink which, when clicked, opens up the corresponding groupchat or chat dialog. This type of event log allows you to have a good overview of everything that is happening in your Jabber network. And if your log gets cluttered with groupchat events, you can always disable groupchat events (or any other type of event) at the top of the dialog, with a more compact log as a result. Finally, just as with the Jaiku Jabber bot, you can quickly reply to the last event from a certain user at the bottom of the dialog. 

When will this prototype be production-ready, you ask? Well, I’m actually not planning to invest any more time in it in the near future. The reason is that Aleksey Palazchenko (aka AlekSi) will create a brand new history system for Psi for his Google Summer of Code project. I’m pretty sure his new history system will enable us to get a global live history of events, together with filtering based on type. And if we still need some extra functionality, we could always create a plugin.

by Remko Tronçon at May 02, 2008 06:34 PM under XMPP

May 01, 2008

Remko Tronçon

Improving Psi’s roster

For a while now, Psi users have been requesting several changes and additions to the roster (or `contact list‘). These requests include grouping contacts into meta-contacts, nested roster groups, and displaying user avatars in the roster. We have been postponing all these changes to the roster as much as possible, because none of us wanted to touch the roster code, for reasons I’ll explain below. This year, Psi is fortunate enough to have Adam Czachorowski (aka Gislan), a student from the Google Summer of Code, to work on roster improvements.

So far, the major cause of all Psi developers staying clear from doing substantial roster changes is probably the fact that all roster-related classes are very tightly coupled to each other. This has several consequences: 

  • It’s hard to get a good understanding of which piece of code does what, since there is no separation of logic between the different classes, and none of them work without the other one.
  • The code is very fragile: if you change one tiny piece, you might break something completely different. Moreover, it’s hard to tell what you broke, since the functionality is spread out across the different classes.
  • The code is untestable: Since there is no decent separation of the roster logic (i.e. the structure of the roster) and the roster user interface (i.e. how it is shown), it has been impossible so far to create some form of automated tests for the roster code. Because of the tight coupling between the various classes, it is impossible to test each part of the roster functionality in isolation, making unit testing impossible. Given that the roster is the most central part of the Psi user interface, it is actually unacceptable that we have no form of testing whether it (still) functions correctly.
  • There can be no reuse of any of the roster code in other parts of the UI (such as the list of participants in the MUC dialog), or even for other IM clients that are based on the back-end of Psi.

Because of these fundamental issues, a complete makeover of the roster code is in order. More specifically, we want to have a clear separation of anything that has to do with UI, and the actual logic of the roster. Additionally, we want the (untestable) UI layer to be as thin as possible, pushing as much down to the logic layer as we can. Finally, we want to achieve a full coverage of the logic layer using only unit tests.

What Gislan will exactly do in his Google Summer of Code project still has to be worked out in detail. He will be responsible for a major part (if not all) of the roster rewrite, and get some new functionality in there as well (since that will be a breeze with the new code). You can follow his progress on his blog, and get more detailed technical information on the project page for his GSoC project.

by Remko Tronçon at May 01, 2008 09:21 AM under XMPP

April 27, 2008

Aleksey Palazchenko

GSoC: application details

Abstract

Psi is one of the best XMPP-clients today, but it's current history system is lack of features. My project is its redesign and reimplementation. In more details:

  • more usable UI;
  • implementing history for groupchat;
  • implementing server-side history (XEP-0136).

read more

by AlekSi at April 27, 2008 11:00 AM under SoC

April 23, 2008

Adam Czachorowski

First post!

This monday I’ve got an email from Google, saying that my GSoC application was accepted! During summer, I’ll be working on Metacontacts support and various roster improvements in Psi and my mentor will be Remko Tronçon, under the XMPP Standards Foundation umbrella.

I’ll try to blog here about this project as often as possible to keep community informed and possibly get some positive feedback. I’m new to blogging, so it might be painful for me to write and for you to read first few posts, but I’ll do my best not to bore everyone to death ;-)

My accepted application is available here. If you have any comments or suggestions on that, let me know! I’d really like to know what do you think about this project. I’ll add some additional information about my plans for upcoming weeks within next few days.

And if you’re wondering who I am and/or how to contact me, take a look at this page or just contact me at jabber or e-mail (both: gislan (shift-2) utumno.pl)

by Adam Czachorowski at April 23, 2008 01:14 PM under gsoc psi xmpp

April 22, 2008

Kevin Smith

Summer of Code ‘08

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 [...]

by Kev at April 22, 2008 09:15 PM under Psi

Pawel Wiejacha

Accepted into Google Summer of Code!

I am happy to announce that I've been accepted for Google's Summer of Code 2008.

I've never managed to keep up with a blog. Well, I have a personal diary that no one knows about :D. I didn't want to keep technical blog to promote myself. I'm also too boring person to entertain my potential readers with non-technical entries.

Now I've created blog. I'll be posting GSoC related entries here. Maybe I'll come to like blogging.

I'll be working for XMPP Standards Foundation (XSF) this summer. The abstract of my proposal is available here. In few words: I'm going to make Psi prettier. It will have themable chat dialogs with XHTML-IM support and contact's extended presence (e.g. mood, user tune etc.) changes logging.

I never realized how big an event GSoC truly is, until today when I got 300 emails (students' introductions) from gsoc-students mailing list. I am just one of 1125 students who will work to improve over 175 FLOSS projects.

I'm glad to be a part of this year's Summer of Code.

by nospam@example.com (Paweł Wiejacha) at April 22, 2008 04:09 PM under gsoc

April 21, 2008

Aleksey Palazchenko

My last hours...

http://tinyurl.com/553qfa
#gsoc at FreeNode is totally madness.

UPDATE: I'm in. I'm a GSoCer now. Yesss!

by AlekSi at April 21, 2008 03:59 PM under SoC

April 13, 2008

Aleksey Palazchenko

One week

One week has passed since students’ application deadline. One week before announcement and start of “community bonding” period. I think this is little bit worrying time for all students.

read more

by AlekSi at April 13, 2008 01:46 PM under SoC

April 01, 2008

Kevin Smith

Psi-0.12-RC2

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.

by Kev at April 01, 2008 08:55 PM under Psi

March 31, 2008

Aleksey Palazchenko

First blog entry for SoC

Application was sent. Waiting for comments.

by AlekSi at March 31, 2008 04:45 PM under SoC

March 26, 2008

Aleksey Palazchenko

Resume for Google's Summer of Code

Palazchenko Aleksey
(Nicknamed Alek Silverstone or AlekSi for short)
21 years old. Student of Moscow Institute of Electronic Technology.

read more

by AlekSi at March 26, 2008 07:52 AM under SoC

February 23, 2008

Kevin Smith

Psi 0.12-RC1 released

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

by Kev at February 23, 2008 01:07 PM under Psi