Community:SummerOfCode11: Difference between revisions

m
Changed protection level for "Community:SummerOfCode11" ([Edit=Allow only autoconfirmed users] (indefinite) [Move=Allow only autoconfirmed users] (indefinite))
(Adding SeaMonkey; removing superfluous headings)
m (Changed protection level for "Community:SummerOfCode11" ([Edit=Allow only autoconfirmed users] (indefinite) [Move=Allow only autoconfirmed users] (indefinite)))
 
(6 intermediate revisions by the same user not shown)
Line 1: Line 1:
<span style="color: red; font-weight: bold">Looking for this year's Summer of Code information? [[SummerOfCode|Step right this way.]]</span>
This page lists all the Google Summer of Code 2011 projects with confirmed mentors, and which have been approved by the SoC administrator. New suggestions can be made on [[Community:SummerOfCode11:Brainstorming|the Brainstorming page]].  
This page lists all the Google Summer of Code 2011 projects with confirmed mentors, and which have been approved by the SoC administrator. New suggestions can be made on [[Community:SummerOfCode11:Brainstorming|the Brainstorming page]].  


Line 10: Line 12:
* Read [http://weblogs.mozillazine.org/gerv/archives/2006/05/how_not_to_apply_for_summer_of.html How Not To Apply For Summer Of Code] and avoid doing the things listed there.
* Read [http://weblogs.mozillazine.org/gerv/archives/2006/05/how_not_to_apply_for_summer_of.html How Not To Apply For Summer Of Code] and avoid doing the things listed there.
* Read our examples of good applications: [[SummerOfCode/SampleApplications/1|1]], [[SummerOfCode/SampleApplications/2|2]], [[SummerOfCode/SampleApplications/3|3]].
* Read our examples of good applications: [[SummerOfCode/SampleApplications/1|1]], [[SummerOfCode/SampleApplications/2|2]], [[SummerOfCode/SampleApplications/3|3]].
* You can't apply yet because applications haven't opened. Once you can, there will be a link here.
* Apply on [http://www.google-melange.com/gsoc/org/google/gsoc2011/mozilla the GSoC site].


Questions of any sort? Send mail to [mailto:gerv@mozilla.org Gerv] and/or [mailto:chofmann@mozilla.org chofmann]. We will try and respond as soon as possible and get your questions directed to the right person.  Please allow at least 48 hours for a reply.
Questions of any sort? Send mail to [mailto:gerv@mozilla.org Gerv] and/or [mailto:chofmann@mozilla.org chofmann]. We will try and respond as soon as possible and get your questions directed to the right person.  Please allow at least 48 hours for a reply.
Line 16: Line 18:
==Mozilla Platform==
==Mozilla Platform==


{| class="standard-table"
{| class="standard-table" border="1"
|-
|-
!Title
!Title
Line 34: Line 36:
|fantasai
|fantasai
|fantasai
|fantasai
|
|-
|-
|Create a JPEG XR decoding library
|Create a JPEG XR decoding library
Line 50: Line 53:
[http://lists.w3.org/Archives/Public/public-xg-htmlspeech/2010Nov/att-0036/htmltts-draft.html proposal]
[http://lists.w3.org/Archives/Public/public-xg-htmlspeech/2010Nov/att-0036/htmltts-draft.html proposal]
|-
|-
| SVG/MathML clipboard features<br><br>
|
Goal: implement clipboard features for SVG images and MathML formulas.
Currently, Mozilla lacks support for [https://bugzilla.mozilla.org/show_bug.cgi?id=330046 copying text] in SVG images. This feature is implemented for MathML but it would be more useful to preserve the whole mathematical structure when copying a formula. The MathML3 recommendation contains a new [https://bugzilla.mozilla.org/show_bug.cgi?id=539506 clipboard specification] that should help to implement interoperable features.
As possible extensions to this work, one can implement [https://bugzilla.mozilla.org/show_bug.cgi?id=334801 copying SVG images] or the related feature of pasting SVG/MathML in the Mozilla editor. Another related lacking feature is [https://bugzilla.mozilla.org/show_bug.cgi?id=330045 text search]  in SVG.
|
Frédéric Wang
|
Frédéric Wang
| <br>
|-
|
Improving MathML Font Support
|
Our MathML support uses exclusively the [https://bugzilla.mozilla.org/show_bug.cgi?id=569195 STIX fonts] to stretch mathematical symbols. The purpose of this project is to prepare support for various other unicode fonts such that [https://bugzilla.mozilla.org/show_bug.cgi?id=407439 Asana Math], [https://bugzilla.mozilla.org/show_bug.cgi?id=372351 Cambria Math] or [https://bugzilla.mozilla.org/show_bug.cgi?id=622576 Neo Euler].
The first step is to move nsMathMLChar from using nsIRenderingContext to gfxFontGroup. After that, the key feature to implement will be an interface to read [https://bugzilla.mozilla.org/show_bug.cgi?id=407059 OpenType MATH table].
|
Frédéric Wang
|
Frédéric Wang
| <br>
|}
|}


==Firefox==
==Firefox==


{| class="standard-table"
{| class="standard-table" border="1"
|-
|-
!Title
!Title
Line 71: Line 98:
==SeaMonkey==
==SeaMonkey==


{| class="standard-table"
{| class="standard-table" border="1"
|-
|-
!Title
!Title
Line 104: Line 131:
|}
|}


==NSS (Network Security Services)==
== Calendar ==


{| class="standard-table"
{| class="standard-table" border="1"
|-
! Title
! Details - with links as appropriate
! Reporter
! Mentor(s)
! Comments
|-
| Full Offline Support
|The Mozilla Calendar Project supports experimental offline support but only for reading your events while offline. While this is great if you want to look at your calendar while away from the internet, it still hinders productivity. One of the top 5 most wanted bugs in the Calendar product is adding support for also changing events when offline and writing them back to the calendar server when network connectivity returns.
 
A student fixing this bug will have to develop a performant synchronization mechanism that is capable of applying changes done offline to remote calendars when going back online. This needs to be implemented general enough to work with our existing calendar providers and with extensibility in mind.
 
There are at least two categories of calendar servers here, those allowing to upload single events (i.e CalDAV) and those requiring to upload the full calendar (i.e webdav/ics). This needs to be kept in mind when going back online, since it may be needed to first download the full calendar before applying the changes.
 
When calendar items are written back to the server, conflicts might occur. The student is responsible for providing the user with understandable UI to resolve those conflicts. The dialog should be more detailed than the current CalDAV dialog that just allows discarding changes or overwriting the server item. The dialog should provide good balance between making it easy for beginner users to understand and allowing power users to find out details about the conflict.
 
Technologies the Student should have experience in include database design, (preferably experience with sqlite), advanced javascript, basic understanding of XPCOM and either experience with XUL or HTML. Knowledge of the Mozilla Platform is not a must, but makes it easier to get started with coding.
 
Note this project can prove to be very ambitious due to the amount of conceptual work and research needed. A small amount of code is already attached to {{bug|380060}}, but it should be evaluated if this solution is the best w.r.t our existing architecture and the performance requirements in a synchronization scenario.
| Philipp
| Philipp Kewisch ([mailto:mozilla@kewis.ch mozilla@kewis.ch], Fallen on [irc://irc.mozilla.org/#calendar moznet / #calendar])
|
|}
 
==Instantbird==
 
{| class="standard-table" border="1"
|-
!Title
!Details - with links as appropriate
!Reporter
!Mentor(s)
!Comments
|-
|JavaScript Implementation of IM protocols
|Goal: Implement new protocols in JavaScript, or create more stable implementations of existing ones.
 
Instantbird 0.3 will support protocol plugins implemented in JavaScript in addition to the C libpurple plugins used before. The student will either add support for new protocols in Instantbird (if so, explain why this protocol matters) or reimplement in JavaScript protocols that are currently poorly supported by libpurple (if so, explain what will be better supported in the new implementation, or why the current implementation is broken). All new protocol plugins will go through a strict code review to ensure high code quality. The student working on new protocols should take every opportunity to improve the code and APIs shared by all JS protocol plugins.
|Florian Quèze
|Florian Quèze or Patrick Cloke
| IRC and Twitter protocols have been (or are in the process of) being implemented and should not be considered.
|-
|Account import wizard
|Goal: Ease the pain of switching to Instantbird
 
Lots of users don't try a new IM client only because they don't want to spend time reconfiguring all their IM accounts. Being able to import accounts from other clients installed on the system would help Instantbird adoption. The student should focus on the dominant IM clients (Windows Live Messenger, AIM, ...) and on the other multi network IM clients (Digsby, Pidgin, Trillian, Miranda, ...). The student will need to study the way other IM clients store their profile data (reverse engineering may be required), think of an architecture to share as much code as possible between the various import modules, and implement import modules for some clients
|Florian Quèze
|Florian Quèze
|
|-
|Indexed Logs
|Goal: Create an easily search-able and sync-able storage for IM logs.
 
A student working on this project will implement a new log storage back-end in Instantbird using SQLite. The format should allow efficient search (reuse code from Gloda in Thunderbird) and prevent dataloss. The student will also have to think about the user interface of the log viewer. Things to keep in mind when working on this project: it should be easy to import logs from other IM applications into this system; it should be easy to export logs; it should be easy to store logs on a remote server.
|Florian Quèze
|Florian Quèze
|
|-
|Voice and Video
|Goal: Support voice and video communication.
 
This project intends to explore the possibilities for Voice and Video communication using the Mozilla platform. The student will need to experiment both with usage of the microphone and webcam and with codecs available in the system on the three supported OSes. Compatible implementations of the various IM protocols that support these features is out of the scope of this project, but the student will at least need to prove that s/he has seriously investigated using the various open source projects that have started some work on this. A (mostly) working proof of concept is expected. UI mockups for what a well-thought user interface for voice and video could be would be appreciated.
|Florian Quèze
|Florian Quèze
|
|}
 
==NSS (Network Security Services library)==
 
{| class="standard-table" border="1"
|-
|-
! Title  
! Title  
Line 125: Line 222:
| Wan-Teh Chang
| Wan-Teh Chang
| You must be an experienced C programmer and can work full time on the project.
| You must be an experienced C programmer and can work full time on the project.
|}
== Rhino (JavaScript engine in Java) ==
{| class="standard-table" border="1"
|-
! Title
! Details - with links as appropriate
! Reporter
! Mentor(s)
! Comments
|-
| Explore and implement JDK7 InvokeDynamic
| JDK7 (currently in beta and due for general release this summer) contains new features for [http://openjdk.java.net/projects/mlvm/ dynamically typed languages] on top of the Java VM. One significant feature brought by [http://jcp.org/en/jsr/detail?id=292 JSR 292 features] is the new invokedynamic bytecode instruction and supporting libraries, which has the potential to make Rhino bytecode both simpler and faster. The goal of this project would be to make Rhino generate bytecode that uses JSR 292 InvokeDynamic and compare its performance characteristics with the current code. There is an [http://kenai.com/projects/davincimonkey/pages/Home initial implementation] by Oracle's John Rose which can serve as a starting point. Language: Java.
| Hannes Wallnoefer
| Hannes Wallnoefer
|
|-
| Implement ECMAScript 5 strict mode
| Rhino has pretty solid ECMAScript 5 support, with [https://developer.mozilla.org/en/JavaScript/Strict_mode strict mode] being the major exception. Implementation involves adding detection of the strict mode directive to the parser and then adding checks for the various strict mode rules. Some of the restraints are already detected by Rhino which should make it easy to get started. Language: Java.
| Hannes Wallnoefer
| Hannes Wallnoefer
|
|}
|}


==Firefox Support (Sumo)==
==Firefox Support (Sumo)==


{| class="standard-table"
{| class="standard-table" border="1"
|-
|-
!Title
!Title
Line 147: Line 267:
==Developer Tools==
==Developer Tools==


{| class="standard-table"
{| class="standard-table" border="1"
|-
|-
!Title
!Title
Account confirmers, Anti-spam team, Confirmed users, Bureaucrats and Sysops emeriti
4,925

edits