Merged [18304]: Fixed menu item image scaling in certain cases. Fixes #5737
[adiumx.git] / SoC.rtf
blob5fbabeb3e118fe0da7668c1e6fcecbfeb6c8ac6d
1 {\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf410
2 {\fonttbl\f0\fswiss\fcharset77 Helvetica-Bold;\f1\fswiss\fcharset77 Helvetica;}
3 {\colortbl;\red255\green255\blue255;}
4 \margl1440\margr1440\vieww17060\viewh12980\viewkind0
5 \pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural\pardirnatural
7 \f0\b\fs24 \cf0 Adium: Google Summer of Code 2006
8 \f1\b0 \
10         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.\
13 \f0\b Improved Jabber Support via Smack
14 \f1\b0 \
15         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. \
16         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.\
19 \f0\b Jingle Audio Support via Smack\
21 \f1\b0 \
22         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.\
23         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.\
26 \f0\b Improved Disability Support
27 \f1\b0 \
28         Adium is translated into 21 languages, but until this summer it was not well prepared to speak the language of disability.  Chirag Shah, mentored by Peter Hosey, rectified this situation, making Adium highly compliant with OS X's accessibility 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.\
31 \f0\b Super Menu Duck (aka Improved Status Menu)
32 \f1\b0 \
33         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.\
34         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: great progress has been made on the menuling, and Joshua intends to continue working on both his project and the rest of Adium.\
37 \f0\b New Tabs via PSMTabBarControl
38 \f1\b0 \
39         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.\
40         Summer-of-Coder Kent Sutherland (with design input from his mentor, David Smith) updated PSMTabBarControl to match Adium's, and 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!)\
44 \f0\b Contact List Splitting
45 \f1\b0 \
46         <anyone seen kbotc around lately?>\
47         (Response from Brian) Yes, I spoke with him last week, he intends to finish it up and understands what went wrong in the process.\
49         (Note from Chris) Should we address this one?\
50         (Note from Brian) Failure should be acknowledged as much as success, it was a project.\
53 \f0\b Conclusion
54 \f1\b0 \
56         Overall I would say that Google Summer of Code has been a wonderful experience for the project. The work listed above has accelerated our timeline on some extremely high priority projects by months, if not more. In addition to that, the "spillover" effects from the project will impact many other projects positively. Andreas' improvements to Smack will benefit other projects using it, including Jive Software's Spark, while 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.\
57         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).\
58         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.\
59         \
60         If you're a student thinking about participating next year, there's a few things we learned this year that might help. \
61         First and possibly most important: \
62                 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.\
63         Second: \
64                 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 idea list just because there's less competition. At the same time though, the ideas are on the list are ones that we regard as high priority, so it's very likely that projects on the list will have an application accepted. A good example would be the jabber improvements project this year; there were 11 applicants for it of varying quality, several of them quite good. One of them was basically guaranteed to be accepted, but that's still a 1 in 11 success rate.\
65         Third: \
66                 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.}