Current
[adiumx.git] / SoC.rtf
blobc5ac76a3a2c14c9a1e43e0a5a76ec9f8fe000505
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\vieww17220\viewh16740\viewkind0
5 \pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural\pardirnatural
7 \f0\b\fs24 \cf0 Top Title (Synopsis or About or something like that)
8 \f1\b0 \
10         Now that Summer of Code is technically over (I'll get to why I say technically down below), it seems like it would be a good time to look at what went right, what went wrong, and what we all got done. 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 arguably the future of IM. It's one of the few open standards for IM, has highly advanced features unmatched by any other protocol, and is backed by widely known groups including Apple, Google, and LiveJournal. \
16         Andreas Monitzer and his mentor, Augie Fackler, ended up producing twelve thousand lines of code, written in two different languages, and involving changes to two completely separate codebases. As a result of this, Adium 1.1 will likely be among 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 Improved Disability Support
20 \f1\b0 \
21         Accessibility to people with disabilities such as blindness or cerebral palsy is an area of software development that has been sadly neglected by many projects, Adium included. Chirag Shah's hard work with his mentor Peter Hosey on improving accessibility support brings us improvements in both interacting with system accessibility features like VoiceOver (which previously would often crash Adium!), and new features such as sensible descriptions of Adium's custom controls, and text zooming in the message view. \
22         As well as the obvious improvements for many people using Adium, 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.\
25 \f0\b Super Menu Duck (aka Improved Status Menu)
26 \f1\b0 \
27         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.\
28         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). However, progress has been made on it, and Joshua intends to continue working on both his project and the rest of Adium.\
30         (Note from Chris) I think this project in itself has completely succeeded. Joshua will remain on as a developer, finishing the SMD, and he learned Cocoa. Could probably emphasize this more.\
33 \f0\b New Tabs via PSMTabBarControl
34 \f1\b0 \
35         After Apple changed the visual appearance of their NSTabView control in the release of Mac OS X 10.2, many third party developers scrambled to develop their own custom tabs. Adium's implementation was among the most advanced of these, but due to its complexity, and due to the somewhat restrictive GPL license, few if any projects other than Adium used it. Some years later, John Pannel of Positive Spin Media began working on yet another new tab implementation, but this one was designed to be easy to use, and usable in both commercial and OSS projects (by using the BSD license).\
36         One of the Adium developers looked into replacing Adium's tab implementation with it, but it lacked several advanced features that were required.  Kent Sutherland (with design input from his mentor, David Smith) brought PSMTabBarControl up to match, and then exceed, the requirements for using it in Adium. This included tear off tabs, vertical tabs (along the lines of the upcoming version of iChat in Mac OS X 10.5), and improvement to tab overflow handling. Because of his work, there is now a freely available highly advanced tab implementation for any OSX app to use. As of this writing I know of three projects using it, and hopefully more will in the future.\
38         (Note from Chris) Could bring up his other project in order to emphasize the importance of why a generic tab imp was needed.\
41 \f0\b Jingle AV Support
42 \f1\b0 \
43         When Google released their Google Talk instant messaging service, a number of people in the Jabber community noted that it included new extensions to Jabber called Jingle and Jingle-Audio. These extensions provided the capability to initiate streaming data transfers with Jabber, which can be used for important tasks such as voice chat (Jingle-Audio), video chat (Jingle-Video), and transferring files.\
44         Alvaro Saurin Parra and his mentor, Adium lead developer Evan Schoenberg, worked on first adding Jingle capability to the Smack jabber library, and then began work on integrating the new capabilities into Adium. Unfortunately, the project proved too large to accomplish completely in the time frame of Summer of Code, but the framework is now in place. Alvaro plans to continue his work in collaboration with another developer at Jive Software (makers of the Smack library), with the eventual goal of bringing full Google Talk compatible voice chat to Adium.\
46         (Note from Chris) Could possibly discuss the difficulty of getting this to work due to the JEP vs. Real Life implementation issue.\
49 \f0\b Contact List Splitting
50 \f1\b0 \
51         <anyone seen kbotc around lately?>\
52         (Response from Brian) Yes, I spoke with him last week, he intends to finish it up and understands what went wrong in the process.\
54         (Note from Chris) Should we address this one?\
55         (Note from Brian) Failure should be acknowledged as much as success, it was a project.\
58 \f0\b Conclusion
59 \f1\b0 \
61         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.\
62         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).\
63         Last, but not least, many of our students plan to contribute further to Adium. <flesh out this paragraph>\
64         \
65         If you're a student thinking about participating next year, there's a few things we learned this year that might help. \
66         First and possibly most important: \
67                 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.\
68         Second: \
69                 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.\
70         Third: \
71                 Get the code and have a look around before making time estimates. Parts of Adium are, to be honest, pretty spaghetti-code-like. It's also a lot larger than most student projects. Having a feel for these issues will help you plan more accurately.}