I was thinking of making a screenshot laden post on what’s changing/improved with 1.0, but it’ll be a lot of work. Do you guys think you’d like that/would it be beneficial?
Archive for October, 2006
I just noticed a comment in one of the blog posts basically asking for a lot of links. So, FYI:
There are a bunch of links at the main page, http://adiumx.com/. In case you do not see them, they are right underneath the protocol icons.
In either case though, this one is the forums. If you have any problems with anything Adium related, you are always welcome to post on the forums.
For future reference, please post problems to the forums and not in the blog comments.
Evan, Colin and myself all went to Chicago over the weekend. For those who do not know, we were there for a gathering of developers called c4.
- All planes except for mine were late coming in. Mine was late leaving Chicago on Sunday.
- The transportation system in Chicago rocks. Evan and I are both from the Southern part of the states, and nobody in these areas seems to take public transportation. If we had something like the L in Houston I’d take it everywhere I could.
- Colin almost died.
- I got lost on the L at 3 am in the morning on Saturday.
- This is the first time Evan, Colin or myself have met each other in real life.
- Colin and I did not get a chance to try Chicago style pizza.
There were others, but those seem to come to mind the quickest. There were some awesome presentations, and we got to meet a lot of great people. Colin and I went to the Sunday event at Adler and I got to show off the app Evan and I are working on to a few people.
Evan and Colin outside with DrunkenBatman and some other dudes:
Here I am at the Greek place we ended up at on Friday night:
The best part is that we had a really great time. We even talked about Adium and Growl a little bit. I definitely plan to go to c4 again next year.
I enjoyed meeting new people the most. I got to meetup with Daniel Jalkut, Justin Miller, Travis Cripps and many other great people. It was just an awesome thing to do, and I’m sure as hell glad I went.
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.
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.
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 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 🙂