Community:SummerOfCode11:Brainstorming

Revision as of 08:47, 16 March 2011 by MichaelShigorin (talk | contribs) (→‎Bugzilla: +FR: tag cloud/concordance extension)

This page is for anyone to submit ideas for Google Summer of Code projects with Mozilla for 2011. As it is open to all, it will inevitably contain suggestions of wildly variable quality.

Students: ideas approved by the SoC admins are here. You can also submit ideas from this page, but they are rather less likely to be accepted. (There's probably a reason they haven't been moved to that page.) You can also submit your own ideas - you don't have to put an idea on this page and get it made official in order to propose it.

How To Make Good Suggestions

Before adding an idea to this list, please consider the following:

  • Be specific. It's hard to understand the impact of, or the size of, vague proposals.
  • Consider size. The student has eight weeks to design, code, test and document the proposal. It needs to fill, but not overfill, that time.
  • Do your research. Support the idea with well-researched links.
  • Don't morph other people's ideas. If you have a related idea, place it next to the existing one, or add a comment.
  • Insert only your own name into the Mentor column, and then only if you are willing to take on the responsibility. If you think the SoC admins won't know you, leave contact details.
  • Check back regularly. The administrators may have questions about your idea that you will need to answer.
  • Know when to give up. If you've added the same idea for the last three years and it hasn't made it to the official page, perhaps you can predict what will happen this time.

Suggestion List

Links to ideas lists from previous years.

Mozilla Platform

Title Details - with links as appropriate Reporter Mentor(s) Comments
SVG/MathML clipboard and search features

Goal: implement clipboard and search features for SVG images and MathML formulas.

Currently, Mozilla lacks support for searching or copying text in SVG. MathML has these features for simple text but it would be more useful to preserve the mathematical structure when copying formulas. The MathML3 recommandation contains a new clipboard specification that should help to implement interoperable features.

As possible extensions to this work, one can implement copying SVG images or the related feature of pasting SVG/MathML in the Mozilla editor.

Frédéric Wang



Firefox

Title Details - with links as appropriate Reporter Mentor(s) Comments

Thunderbird

Title Details - with links as appropriate Reporter Mentor(s) Comments

Calendar

Title Details - with links as appropriate Reporter Mentor(s) Comments

Camino

See the Camino Summer of Code page for project suggestions.

SeaMonkey

Title Details - with links as appropriate Reporter Mentor(s) Comments
Score-based filtering You can filter on quite some terms, but you can't weigh them. A scoring system will allow a much finer control, eg. it would be just a property score with a range of maybe 1..1000, along with some new conditions
          [is                         ]
          [isn't                      ]
Score     [is lower than              ][\/]     [<value in range>]
          [is lower than or equal to  ]
          [is greater than            ]
          [is greater than or equal to]

and actions

[Increment score by]
[Decrement score by][\/]     [<value in range>]
[Set score to      ]

Each message would start with a score of 500 before filters get applied.

This feature will require MailNews Core C++ hacking.

Related:
Bug 151622 "filters that score messages"

Karsten "Mnyromyr" Düsterloh Karsten "Mnyromyr" Düsterloh

Instantbird

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)

Title Details - with links as appropriate Reporter Mentor(s) Comments

Bugzilla

Title Details - with links as appropriate Reporter Mentor(s) Comments
Tag Cloud Feature: means for quickly grasping a larger bugzilla instance as well as for data mining.

Could involve tags, keywords, or even probably configurable arbitrary fields.

Michael Shigorin (no student) There seems to exist HTML-TagCloud module.

Mobile/Fennec

Title Details - with links as appropriate Reporter Mentor(s) Comments

Firefox Support (Sumo)

Title Details - with links as appropriate Reporter Mentor(s) Comments

Rhino

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 dynamically typed languages on top of the Java VM. One significant feature brought by 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 initial implementation by Oracle's John Rose which can serve as a starting point. Hannes Wallnoefer Hannes Wallnoefer
Implement ECMAScript 5 strict mode Rhino has pretty solid ECMAScript 5 support, with 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. Hannes Wallnoefer Hannes Wallnoefer

Mozilla IT Infrastructure

Title Details - with links as appropriate Reporter Mentor(s) Comments

Mozilla Services (Sync, Identity, etc)

Title Details - with links as appropriate Reporter Mentor(s) Comments

Developer Tools

Title Details - with links as appropriate Reporter Mentor(s) Comments

Drumbeat/Batucada

Any hacking projects connected to a Drumbeat project or Batucada.

Title Details - with links as appropriate Reporter Mentor(s) Comments