Improving ICQ, final results
ivan.komarov at dfyz.info
Fri Aug 13 23:20:47 EDT 2010
In this email, I'll try to sum up what I had (and hadn't) done this
summer as part of my SoC project. I'm going to stick around even after
the official deadline (don't even hope to get rid of me), so I'll send
another email sometime later about what horrible things I'm going to
do to Pidgin after the summer ends.
I'll describe my progress on each of four tasks from my project page
(http://developer.pidgin.im/wiki/GSoC2010/ImproveICQ) in the order
they are listed on it.
1. I straightened out our ICQ privacy mess, and wrote a convoluted
post about that -- http://dfyz.livejournal.com/142411.html, for those
who haven't read it. One thing that came up after I posted it was
Sadrul's proposal/patch to make the privacy lists editable using the
request API. I commited a version of this idea as
eca3adf7cdd9217fcf670611fb705385fcfaa48d, but since it abuses the API
a little (the "Remove" button is actually the "Cancel" button), the
editor closes immediately after you remove any users from a list. If I
try to reopen the editor manually, its window will pop up in different
places. I don't know how to fix that, and I don't think this behaviour
should go in a release, so I made this revision a separate head of my
branch to be able to merge it later if someone finds a way to make it
2. I revamped our liboscar encoding-related code to make it more clean
and accurate. I got rid of hacks that were no longer needed (such as
the one from #1645), restructured the code, and made one big change:
we now always send messages in UTF-16 or ASCII (whichever is the
simplest possible encoding for a given message). That should fix
#10833 and a bunch of other problems I was aware of.
3. I tested file transfers in different conditions and didn't find any
real problems that needed fixing. Maybe I wasn't diligent enough,
since #12446 slipped from me (I didn't look into this issue closely
4. The patch attached to #555 implements the "Search for Buddy" and
"Set User Info" dialogs, so I just needed to apply it to my branch. It
is, however, 3 years old, so the code is ugly and wrong sometimes, and
I had to kick it until it started to work. I got about halfway through
before I left for my vacation in the US. Unfortunately, I only have
Mac here (I don't know it's possible to develop Pidgin on Mac OS X),
limited Internet connectivity, and I forgot my private key at home,
which means committing is a little problematic. I'll try to find a way
to finish and commit it before Aug 16th, but if not, I'll do it when I
return from the US in September.
I also monitored Trac for new ICQ issues and tried to fix them.
Examples include #12284, #12044, and #12209.
I won't elaborate on additional refactorings I made, because they
don't affect the user experience directly, and the technical details
are probably interesting only to Mark and me. :)
All in all, I had a great summer, even though I didn't get to
implement everything I wanted. Thank you all, guys, especially Mark,
Ethan, and Jan!
More information about the Devel