Archive for 2007

SoC: Snapping Groups

Friday, July 6th, 2007


This is Andre Cohen, one of the SoC students working on Adium. I have this summer been extending the contact list’s functionality to allow groups to be detachable. As it has been seen here a lot of progress has been made. Groups can easily be detached, moved and organized in which ever way one prefers. As of two weeks ago the project became stable enough for everyday use.

Currently I have been working on smoothing out the experience. This includes:

  • Adding/perfecting options in the view and window menu
  • Making sure it is clear to the user when a groups are attached to each other or if they simply are next to each other
  • Fixing or perhaps revising the way contact lists hide on the edge of the screen (thus fixing a currently very interesting bug)

This project has been going very well. Having started a bit early on the project it is allowing me to take more time to make sure everything functions smoothly. More updates to come!

PS: Since this project is entirely focused on user interaction I look forward to hearing about concerns and/or suggestions about this project.

Adium 1.0.5 beta and beta notifications

Thursday, July 5th, 2007

Adium 1.0.5 beta is now available. Please grab it and let us know about any problems. Adium 1.0.5 will be the last release which supports OS X 10.3.9, so it’s particularly important that 10.3 users be in touch. ๐Ÿ™‚

Are you always interested in the latest Adium beta? As of Adium 1.0.5, we’ve added a hidden preference (shhh, don’t tell anyone!) to make the update notification system keep you posted on both betas and releases. Type the following into the Terminal to enable the preference:

defaults write com.adiumx.Adiumx AIAlwaysUpdateToBetas -bool YES

UPDATE: Please manually update to 1.0.5b3 if you downloaded b1 or b2; the update checking was not working properly in those builds. Thanks!

SoC: XMPP Update

Wednesday, July 4th, 2007


It’s been a while since my last update, so I’d like to list what I’ve implemented so far. Since mid-eval is up pretty soon, I’ll need it anyways ๐Ÿ™‚

  • The new registration interface (I already posted screenshots for it on this blog).
  • A small lock is shown next to connected accounts that use SSL/TLS encryption.
  • Integrated a fully-features discovery browser for accessing all the nice remote features. This also allows listing MUC channels and joining them (screenshot).
  • Implemented Ad-Hoc commands, both sending and receiving.
  • Implemented these commands into the discovery browser (screenshot). The server’s ad-hoc commands are shown in the account submenu (as demonstrated in this image), too. If any contact on the contact list has some ad-hoc commands available, they’re listed in their context menu (this is untested due to some non-Adium bugs).
  • Implemented displaying search results using the libpurple API. This will also benefit the other libpurple protocols.
  • Implemented MSN/Yahoo!-style buzz/nudge-support, including writing up a proposal for a XEP for it
  • Implemented XEP-0115: Entity Capabilities (version 1.3; I accidentally started a huge discussion on the xmpp-standards list to completely rewrite it after I implemented it)
  • Implemented XEP-0203: Delayed Delivery, which was very simple.
  • Automatic accept / accept+add / deny of subscription requests (called “Request for Authorization” in Adium I think)

The major parts still missing are:

  • The ad-hoc receiving part is planned to be used by AppleScript, so you can add custom AppleScripts to the list to be executed by clients connected to the same account (different resource), even with forms for interaction. This depends on Matthew Handley implementing the AS-part, though.
  • Multiuser-Chat enhancements. For this feature I’ll probably don’t have to do anything, since Erik Beerepoot agreed to add the connection between his work and libpurple itself, which should automagically make it work with XMPP (libpurple already implements all features I’d like to have added to Adium).
  • #1323
  • #4695

I’m well within my time plan, so the project is looking good so far.

SoC: Group Chat Improvements – some updates

Wednesday, July 4th, 2007


My name is Erik Beerepoot, i’m another SoC student here at Adium.

Although a bit on the late side perhaps, here’s an update on group chat improvements. As you can read on Google’s SoC page, I proposed to do several improvements on the current implementation of group chat. As coding has been going on for a little over a month now, some of this features have been implemented, and are waiting on dev feedback.

So far, I’ve updated the group chat interface, I’ve changed to old userlist and added a so-called widget bar. A planned feature for this bar is room commands; but for now, it just looks pretty.

I’ve also added drag & drop support to group chats. It is now possible to drag a contact from the contact list to a group chat, and the contact will join the group chat. I’m planning on adding sorting capabilities to the userlist (just like in the contact list), and also making this drag possible for turning a single user chat into a group chat.

Right now, I’m working on adding room/server bookmarking to adium. It is currently being discussed what exactly the proper graphical representation will be.

This is all for now, but i’ll have updates to follow soon!

About the recent downtime

Wednesday, July 4th, 2007

Hey folks,

Just a little heads up about the recent downtime. I didn’t post earlier because, well, this blog was down.

We’ve just finished the move of a couple of the services utilized for Adium to a heftier box at a much nicer datacenter at Network Redux. For those who have noticed, we’ve had outages on and off for months. The server was up, the problem was entirely the fault of the datacenter at the time. This move should correct that problem.

Some things are needing to be done still, but most of everything is back up.

AppleScript revisions – comments requested

Monday, June 25th, 2007

Hello. This is Matt, a SoCoder working on improving Adium’s AppleScript support.

I’ve created a page on the wiki here: FixAndExpandAppleScriptSupport

It contains an incomplete list of features that I’m planning on, or already have implemented. If any scripters out there would like to add their input to the design, now would be a good time. I’m interested in any high-level critique of the design as it is now, as well as any suggestions for features I need to include.

Thanks so much!

– Matt

SoC: XMPP New Registration

Friday, June 22nd, 2007

Hi again,

Since there has been some confusion among libpurple developers on how the new registration I added to Adium works, I’ve created some screenshots that might be of interest to others, too:

  1. Creating a new account is unchanged, of course.
  2. This is the slightly modified account pane. Note the “Register New Account” button there.
  3. After clicking that button, a new view comes up, which allows you to either enter your own server to register to, or choose one from the list (the list is automatically fetched from The numbers on the right display the geographical distance to that server in km, I’m not sure yet if I should display that. The list is ordered by that number.
  4. I’m entering my own testserver of my local LAN, though. You won’t be able to reach that one ๐Ÿ™‚
  5. After clicking “Request New Account”, the view switches back to the regular account pane and Adium (via libpurple of course) connects to that server and requests the registration form and displays it. This form view isn’t final, I have to work on that some more to get it to look more Mac OS X-like.
  6. I’m entering the data for a new test account.
  7. Registration successful! Note that the values have been filled in automatically in the account editor. The account itself hasn’t been created yet, though. This will only be the case when the user presses “OK” in that window.

I hope that this will solve the confusion, and why I need those code changes ๐Ÿ™‚

SoC: XMPP Improvements

Monday, June 18th, 2007


This year, I completely forgot to post my inital greeting blog post, so I’ll do that now ๐Ÿ™‚

Last year I implemented a Smack-based XMPP plugin, completely replacing the one based on libgaim (as libpurple was called back in the days). However, it got scrapped well after I finished it (more information is available in this blog post).
So, I’m doing the same thing again now, but this time in libpurple. On the one hand, this is much more difficult, since I have to learn a huge codebase, and fiddle around with it. On the other hand, I don’t have to implement all the basics like buddy management, since they’re already there and are working fine (more or less). So, my plan for this summer is slightly different, and can be found at the Google SoC page (this link will probably cease to work next year).

Since I’ve already started, there are already some things done, which I’d like to list right here:

  • I implemented an XML console that logs all communication with the server, which allows easier problem tracking and enables advanced users to use XMPP features not (yet) implemented in Adium.
  • PEP is implemented (no config, just publishing, retrieving and subscribing — should be good enough for now)
  • Based on that, I implemented user mood, user avatar, user tune and user nickname.
  • I implemented fields requests, which allow libpurple to display forms in Adium and get responses. This not only benefits XMPP, but also other prpls like ICQ. On XMPP, this enables registation forms, setting the account password, setting the vCard’s information, and some more I’d like to implement later.

Well, that’s all for now, but more is yet to come! I’m really looking forward to having a fully featured XMPP integration right in my favorite client ๐Ÿ™‚

10.5 issues

Friday, June 15th, 2007

Hey folks,

Before I start, this may all change by next week. But here’s what I/we have so far with regards to 10.5

So with 10.5 we’ve got some issues, like we always do with releases. The main problem we’re going to have here with fixing them is that folks who legally have access to 10.5 right now who are having issues are still under an NDA regarding 10.5. However, due to the GPL, any changes released in a binary must provide source code should the person request it. We typically release source with a release because that’s just the right thing to do.

So we’re between a rock and a hard place. It’s caused at least one person (a user who is not affiliated with the Adium team in any way) to question the project in general.

Here is what we’re going to do. If you have 10.5, you went to wwdc. If you spent all of the money going to wwdc, you are most likely a developer. So, we need your help fixing things. Some of our developers are at wwdc and have access to 10.5, but of course we don’t have the assortment of things with the 10.5 situation that we normally would, i.e., beta testing to a mass audience.

So, if you have 10.5 and you notice a crasher or a problem, if you can create a patch which doesn’t reveal any of the new API’s in 10.5, that would be the best way of getting things fixed. Even a patch that disables the feature on 10.5 is OK by us, if there’s no other non-compromising alternativeโ€”we’ve already done this with the Image Picker. (And yes, we will bring back the feature when 10.5 is released, since the changes needed to make it work will then no longer be covered by NDA.) If you have another solution, please post them in the comments here.

What we don’t need are tickets saying that something crashed but with no patches. We can’t do much of anything with them without asking for logging normally, which may (doubtful, I know, but still) reveal some private info which would violate your NDA in some way. Right now tickets without patches are just being closed asking folks to reopen them if they are still issues when 10.5 final is out.

Licenses suck. NDA’s suck. Ugh.

Anyhow, so if you have any questions about this, have suggestions, or whatever, hop on into #adium on freenode, or comment on this post. We’re open to suggestions.

If someone from Apple Legal were to give us confirmation that we could post commits with the new API’s in them to our subversion repo, I’d be more than thrilled.

We basically don’t want people sued over breach of NDA due to something submitted to us.

GSoC 2007 branches

Monday, May 28th, 2007

These are the student branches for GSoC 2007:

I created these branches in r19787 from trunk@19786.