Adium

Google Summer of Code 2006 Roundup

October 24th, 2006 by Evan Schoenberg

This was our first year to participate in the Google Summer of Code. 35 applications were submitted, of which 18 were voted qualified and interesting by one or more of our 8 potential mentors. 6 applications were ultimately accepted. Here’s a look at each of the projects in turn.

Improved Jabber Support via Smack

The Jabber instant messaging protocol is undoubtedly rising as a big player in IM. It’s one of the few openly standardized protocols, has unmatched features, and is backed by widely known groups including Apple, Google, and LiveJournal.

Andreas Monitzer, mentored by Augie Fackler, produced twelve thousand lines of code, written in two different languages and involving changes to two distinct codebases — Adium itself and the Jive Smack Jabber library itself. The project was a resounding success; some work is still required to prepare the results for a release, but we expect to do so in our next release cycle. Adium 1.1 will likely be one of the most advanced Jabber clients in the world. This was generally considered to be the highest priority project of the initial SoC ideas, and its completion is a big step forward for open instant messaging on the Mac.

Smack support, about 75% complete, has already been merged into the trunk of Adium’s subversion repository for inclusion in Adium 1.1.

Jingle Audio Support via Smack

When Google released their Google Talk instant messaging service, they included an important new technology known as Jingle. Jingle adds the capability to send streaming data across a Jabber network, which can be used for voice chat (Jingle-Audio), video chat (Jingle-Video), and file transfers.

Alvaro Saurin, mentored by Evan Schoenberg, undertook the herculean task of first implementing Jingle support to the Smack Jabber library and then creating an audio-visual Quicktime framework for multimedia in Adium, necessary since Adium previously has had no audio or video support. The Smack side of the project was wholly successful, and other developers at Jive Software plan to continue development of the results. This means that Jingle will be available not only to Adium but also to other clients using smack. The Adium side is still in progress; Alvaro has laid much of the groundwork, and he will be continuing to work on the project as time allows; his work on the Adium multimedia framework should allow future development of audio and video support on other protocols in addition to Jabber.

Improved Accessibility Support

Adium is translated into 21 languages, but until this summer it was not well prepared to speak the language of accessibility. Chirag Shah, mentored by Peter Hosey, rectified this situation, making Adium highly compliant with OS X’s Universal Access capabilities for text-to-speech throughout the UI via VoiceOver, text zooming for messages, and more. Besides opening Adium to more users, this should also bring us in line with US Government Section 508 regulations, which could increase the use of Adium in schools and government offices.

Super Menu Duck (aka Improved Status Menu)

A common request we’ve received is for Adium’s “menuling” (the status menu icon that can appear on the right side of the menubar) to be able to stay active even when Adium is not running; Apple’s iChat IM application can do this, and it’s often considered to be one of its remaining advantages over Adium. Joshua Lock worked with mentor Colin Barrett on rewriting the menuling from scratch.

Sadly, this project was not finished, although Joshua made a tremendous effort to learn Cocoa, Objective-C, and the Adium codebase simultaneously in time to finish the project. This is not to say that the project was not fruitful: progress has been made on the menuling, and Joshua has indicated that he intends to continue working on both his project and the rest of Adium.

New Tabs via PSMTabBarControl

After Apple changed the visual appearance of their NSTabView control in the release of Mac OS X 10.2, the Adium team had to scramble to implement their own custom tabs to continue supporting tabbed messaging. Years later, John Pannel of Positive Spin Media wrote his own tab implementation designed to be easier to use than Adium’s and licensed in a more flexible license.

Summer-of-Coder Kent Sutherland (with design input from his mentor, David Smith) updated PSMTabBarControl to match, then exceed, the functionality requirements for Adium’s tabbed messaging. This included tear off tabs, vertical tabs, and improved tab overflow handling. Because of his work, this highly advanced tab implementation is freely available for any Mac OS X application to use. (As of this writing, at least three other projects using it, including Kent’s own program Chax, which made him the ideal developer for this task!)

This project has been merged into the trunk of Adium’s subversion repository for inclusion in Adium 1.1.

Contact List Splitting

Another common request we’ve received is the ability to separate groups into different contact lists so you can have multiple lists on screen at once with a specific set of groups. Due to his familiarity with the contact list code Nicholas Peshek’s application to develop this functionality was accepted.

Although he was not fully successful in his efforts Nicholas attempted to integrate this functionality and properly handle it’s behavior, ultimately delivering a proof of concept that could separate lists and save them for restoration. Nicholas has indicated that he intends to continue working on both Adium and his branch to complete this functionality for inclusion in a future release.

Conclusion

Google Summer of Code (GSoC) 2006 was a wonderful experience for Adium and our six students. The work listed above has accelerated our timeline on some extremely high priority projects by months. In addition to that, the “spillover” effects from the project will impact many other projects positively. Andreas’ improvements to Smack and Alvaro’s implementation of Jingle audio support will benefit other projects using Smack, including Jive Software’s Spark. Kent’s changes to PSMTabBarControl could quite possibly enhance the user interfaces and reduce the code maintenance costs of dozens of Mac applications currently using their own tab classes.

We’ve also already seen benefits from other projects’ GSoC students — Adium 1.0 will have QQ protocol support, a longtime request from Chinese users, which was implemented by Mark Huetsch for Gaim‘s GSoC.

Along with the work that was done, several Adium developers learned a lot about the intricacies of Jabber while discussing things with Andreas, and all of the students came out of the project with more knowledge than they had before (ranging from original research on UI problems to learning new languages and APIs).

Last, but not least, many of our students plan to contribute further to Adium. Developer time and energy is one thing almost any open source project can use more of, so we’re delighted to have students continuing to contribute.

The Future

If you’re a student thinking about participating next year — and if you’re thinking about it, you should! — there’s a few things we learned this year that might help.

  • First: Talk to us! Many of the students we had this year participated on our irc channel both before and after submitting their applications. With multiple conversations with them demonstrating that they were competent and easy to get along with, it was much easier for us to commit to voting for their projects.
  • Second: Think carefully about what project(s) you want to apply for. Useful and interesting student-submitted projects may actually have a better chance than projects from the “official” idea list: there’s less competition, and innovation is exciting. On the other hand, ideas on the official list are ones that we regard as high priority, so it’s likely that many projects on the list will have an application accepted. A good example is the “Improve Jabber Support” project this year: we considered this a very important project, and 11 applicants did, as well. We could only accept one no matter how qualified each student was, a maximum 1 in 11 success rate.
  • Third: Get the code and have a look around before making time estimates. Parts of Adium are, to be honest, pretty spaghetti-like code. It’s also a lot larger than most student projects. Having a feel for these issues will help you plan more accurately. Google Summer of Code is intended to be a full-time internship, demanding full-time hours; schedule your summer appropriately, as it will be fun but also hard work.

We’re already looking forward to GSoC 2007. 🙂

Thanks to Google for their sponsorship, to all of the Adium development team (mentors and non-mentors) for assisting the students, and most of all to Andreas, Alvaro, Chirag, Joshua, Kent, and Nicholas for their involvement.

Some services down

October 16th, 2006 by Chris Forscythe

Some of you folks may have noticed that Subversion and Trac are down. This is true for Adium, Colloquy and Growl. Services are currently being shuffled around to improve performance and prevent future downtime. We don’t have an ETA on this, but it’ll be back up as soon as possible. Thanks for your patience 🙂

Trac registration now enabled

September 26th, 2006 by Evan Schoenberg

Trac now allows registration for bug reporting and feature requests, at long last. Registration is required but does not demand more than a username and password. An email address may optionally be included when registering for email notification of ticket changes without revealing your address to spammers.

We hope this change will streamline interaction with you all via Trac in a spamfree and friendly environment 🙂

Defending the Duck

September 23rd, 2006 by Chris Forscythe

In the previous entry about the Adium icon, we had a person anonymously add this comment, which I would like to address:

2. It is not obvious (http://www.jasperhauser.nl/weblog/2006/07/obviousness.html). What does a duck have to do with messaging?

Actually, Adiumy (the nickname given to the icon) is a messenger bird, specifically here is the definition you should look at:

1. One who bears a message; the bearer of a verbal or written communication, notice, or invitation, from one person to another, or to a public body; specifically, an office servant who bears messages.

I’d say this has a lot to do with with messaging. As to the other point this poster made:

1. It reflects poorly on the application as something polished. I know plenty of people who have downloaded adium, seen the icon and trashed the program immediately figuring that no polished app would have such a silly icon.

Honestly, if they can’t get over the icon then I don’t know what to tell you. For instance, with 1.0 we’ll have (and these are from the changelog, which will be posted on sites all around):

Consulted the Vorlon
Added a contextual menu to make sandwiches tastier.
Added more popcorn to the general preferences.
Given away a rather awesome french toast recipe (passed down through hundreds of generations, guard it with your life!)

Given all of these things (and there’s a lot more), you have to wonder what kind of wackiness the Adium Group is doing. Well, to be honest, we’re having fun. We all love Adiumy, we know that he’s a messenger bird, and he’s a mascot as well. He’s very well recognized, and you can pick him out on your dock, which adds to usability for people with vision problems.

We’ve also had a lot of very talented people make some very different types of dock icons, all based on Adiumy. There were so many that I was able to make a very large desktop background (modified from someone elses) that encompassed some of the birds.

You have to realize something. We’re having fun, we’re doing this for free, and that fun rubs off. Developers continue on the Adium Project long after their initial goals have been reached because they’re having fun doing it.

Two more points and I’m done. If you are complaining that a duck does not mean anything to Adium, you need to look at the names for Adium prior to Adium X:

  1. Adium
  2. Adium CK
  3. Cocaim

Look at that second one. It’s actually “AIM DUCK” mashed together.

Last point, I promise. Nobody has ever attempted to show us any alternative. So even if we did want to move away from Adiumy, nobody has formally presented us with an alternative. Given that Adam Betts has updated the duck, and it looks way better, I’d say it’d be rather tough to convince us. But nobody has ever tried to that I can remember (been with the project what, 2, 3 years?). Without someone stepping up to present us with an alternative, we have no choice but to continue to use Adiumy.

Icons of the past and the future

September 14th, 2006 by Chris Forscythe

Duck progression

When Skyler Cohen showed this image to everyone, I thought it was really awesome. It shows where we’ve been and where we’re going.

The messenger bird icon we’ve had has always been a point of contention for some folks. The “zombie duck” as I like to call the first one got replaced by the “classic style” duck. Then we have old Adium and new Adiumy (the two images on the right).

Overall though, the duck has been a good mascot and has worked well for us for years. It’s drawn sharp criticism by some, and love and affection by others. You have to know you are doing something right if you get that kind of reaction.

In either case, just thought I’d show this to everyone.

Talk in Austin next Saturday

September 1st, 2006 by Chris Forscythe

So not this Saturday, but the next, I’ll be giving a talk in Austin for CocoaDevHouse

It’ll be on Adium and Growl and will have some app demos for GlowingBulb (the stuff Evan and I have been working on for a while).

Go take a look, and list yourself if you can attend:

CocoaDevHouseTexas

Temporary trac access

August 31st, 2006 by Chris Forscythe

So if you need access to trac, you can log in with:

username: adium
password: adium

We will not be turning anonymous access back on, but do have a plan to allow users to register for accounts at some point. It’ll probably be 3-4 weeks before we get a chance to take a good look at it though.

In the meantime, this and the forums are both places to report issues. If you post to the forums, please keep beta issues in the beta forums.

Trac anonymous write access temporarily disabled

August 28th, 2006 by Evan Schoenberg

We’ve just had a major flood of spammers which are somehow getting around the spam filters we had in place on Trac. Until we can solve the problem, anonymous bug / feature request submission will be disabled. We hope to have a fix in place within the week.

How the support infrastructure works

August 23rd, 2006 by Chris Forscythe

This post is about how the support infrastructure works. We have in place a bunch of different ways to contact us for support:

– The forums
– Trac ticket system
– Email
– Blog comments

But there are a bunch of questions people have. A lot of people ask:

Why haven’t the Adium devs fixed the squirrels!

Well, not really squirrels, so replace the word “squirrels” with a problem.

Most of the time when we don’t see an issue, we don’t fix it. So that’s why getting issues to us in a way that we can try to reproduce them is great. Screenshots, detailed steps, etc.

Does everyone remember “the aim problem from last week”? Good, we’re going to use it as an example from here on out.

So whenever you have a problem, say, “the aim problem from last week”, we absolutely need you to do a few things:

1) Figure out if it’s an issue that needs discussion, or if it’s one that needs to just be fixed.

Issues that need discussion are probably best to be posted on the forums.

Issues that just need a fix are probably best to be posted to trac.

If you don’t know, post to the forums.

(the rest assumes you are going to trac)
2) Do a search!

We get at least 15 duplicate tickets per day on all sorts of issues. Well, at least it feels that way. It’s understandable if you can’t find a ticket, but we have over 5000 tickets so more than likely your issue is in there somewhere.

3) Read the ticket. This includes comments.

Guys/Gals, we don’t need 50 people telling us that their aim connection is no longer working, with the same exact symptoms. If you have new info, we need that, but otherwise just continue watching the ticket.

4) Follow the Reporting Bugs page.

Do a search, you’ll find it.

Anyhow, hope this helps.

Oh ya, one more thing:

Comments in the blog are less likely to be worked if the issue is in trac/on the forums. But comments are indeed welcome. 🙂

Adium X 1.0b9

August 20th, 2006 by Peter Hosey

We don’t ordinarily do blog posts about betas, but I thought I’d follow up to the previous post by pointing out that 1.0b9 is now up. Besides the AIM thing, there are two other things on the changelog worth mentioning:

  • MSN custom emoticons work again, though not without a few rough edges still (#3941).
  • The long-awaited QQ service (#383). Hooray for the Google Summer of Code!

A lot of our Chinese users have been waiting for QQ support for a long time. As for custom emoticons, they’re not working perfectly yet (when we receive one, the message view doesn’t auto-scroll the way that it should), but they are working. I’ll throw out an informal prediction that it will be completely fixed by b10.

Happy beta-testing, and please report those bugs!