This page is for submitting ideas for Summer of Code projects for 2009. Therefore, it will inevitably contain suggestions of wildly variable quality. Ideas approved by the SoC admins are here.
How To Make Good Suggestions
- 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. Potential mentors sign up here.
- Check back regularly. The administrators may have questions about your idea that you will need to answer.
(More thoughts on making a good list)
Suggestion List
Last year's ideas: Confirmed, Brainstorming
Mozilla IT Infrastructure
Title
|
Abstract - links to details/bugs/etc
|
Reporter
|
Mentor(s)
|
Comments
|
Weighted & GSLB GeoDNS
|
Blog post #1 & #2 for background and here for project notes. Would like to build on the existing GeoDNS platform and include per resource record weighting & better management/reporting tools. Would also like to build on this tool to become an open-source Global Load Server Load Balancing tool.
|
mrz
|
mrz/IT
|
Trying to find out ways to get more community involvement with IT-related activities. We have a lot of community involved with Firefox but little with how IT runs Mozilla's services. I believe this will also help give more insight into IT and enable us to be more transparent and help replace some of the closed-source tools we use to deliver Mozilla products & services.
|
Mozilla Platform
Title
|
Abstract - links to details/bugs/etc
|
Reporter
|
Mentor(s)
|
Comments
|
Web pages over rsync
|
A lot of web pages today are dynamic and so uncacheable, even though large parts of them are the same between requests. The rsync protocol is a great way of sending the deltas between two similar files in a small number of bytes. tridge has done a proof of concept, using proxies and librsync, for caching everything and using rsync to send deltas instead of complete pages when things change a bit. This has the potential to transform the web experience for users on slow connections. The project would be to fix up his proxy, and make a matching Firefox extension which together would form a proof of concept.
|
Gerv
|
tridge has agreed to co-mentor, but we need a Mozilla person who thinks this is cool to mentor as well.
|
Metalink support
|
Native support for the Metalink Download Description (XML) format (bug 331979) which lists mirrors and checksums, along with other useful metadata such as mirror location. Listing multiple URLs for a file increases availability while the checksums guarantee integrity and let downloads be repaired automatically. You can also filter downloads by location and other things. Metalink is currently supported by most download managers including DownThemAll!
It would also be great to have Mozilla people involved with Metalink as well.
|
Ant Bryan
|
|
|
Firefox
Title
|
Abstract - links to details/bugs/etc
|
Reporter
|
Mentor(s)
|
Comments
|
Printable CSS repository
|
The other day I [mentioned how cool printable stylesheets were]. I figured I'd write up an idea for a Firefox addon (or perhaps a future feature). It would make a pretty cool summer of code project (or two depending on if you split it up). The idea is not all that different from [Userstyles] or [GreaseMonkey] though intends to be easier to use.
On the client side when attempting to print a page the addon would inject a printable stylesheet to make the printable output waste less paper, be more readable and just ascetically superior to raw printing. Since each site is unique if it didn't have a stylesheet for the site already it would query a central repository for stylesheets that match that url. If one or more is found it would be offered to the user as a stylesheet that could be installed and then printed with. Installing leaves a copy on the clients computer so that it could be used even in offline mode and if the repository were unavailable.
On the server side of things there would obviously need to be a repository of stylesheets and a way to review and rate them. For privacy purposes I think there should be no remote loading content in the stylesheet that doesn't originate on the server which the stylesheet is for (for example a sites logo would be ok if served from the site's server). Ratings and reviews would let the better ones gravitate to the top and the poorer ones fall to the bottom.
This approach is better than the more popular "select what you want to print" since it allows for not just printing a block of text, but printing web pages in a more meaningful and readable way.
|
Raccettura
|
|
|
Support ed2k:// hyperlinks (ed2k/Kad network)
|
Create an extension that facilitates getting content from the (already existing) distributed serverless Kad network and thus allows HTML/CSS constructs like the following:
<object src="ed2k://...">
@font-face { ... src: url(ed2k://...); ... }
background-image: url(ed2k://...);
The idea is that content does not need centralized Web hosting if it has enough readers willing to participate in file exchange.
The student is not expected to create a brand new Kad servent software from the scratch. The extension should (instead) be able to install (if not installed previously) and then use an existing ed2k/Kad software on the user's machine (free software such as eMule or MLDonkey, probably both should be known); the extension should just be able to determine (using ed2k and AICH hashes and file size given in the URL) whether the designated object exists in servent's cache; thus the extension's algorithm for serving content to Firefox is like the following:
- If the ed2k://... URL designates an object that exists in servent's cache, grab it.
- If the ed2k://... URL designates an object that does not exist in servent's cache, launch the servent (if not already running) and feed the URL into the servent.
- If the object is not popular enough to be downloaded within a reasonable amount of time (e.g. half a minute), the extension signals to Firefox that request failed (similar to
504 Gateway Timeout of HTTP), but servent continues getting the object and thus the subsequent requests for the same object (e.g. when the page is reloaded) are more likely to be successful.
Note: if the «ed2k://» URL has «s=http://...» optional part (see «The ed2k link format» section in the Internet Archive page of Overnet), the extension should try the given Web URL first, and only if it fails (or if the given response does not match URL's filesize/ed2k hash/AICH hash) use the local servent.
|
Mithgol the Webmaster
|
|
|
Thunderbird
Title
|
Abstract - links to details/bugs/etc
|
Reporter
|
Mentor(s)
|
Comments
|
A user-focused front-end to bug submission
|
Like the bugzilla helper project, but specific to thunderbird, in order to limit the scope. see bugzilla helper for some thoughts, as well as this mdat thread
|
DavidA
|
Clarkbw
|
See below under Bugzilla - I think that in eight weeks, a student could probably do the wider project. But I'd love to have Clarkbw help me mentor it :-) - Gerv
|
Calendar
Title
|
Abstract - links to details/bugs/etc
|
Reporter
|
Mentor(s)
|
Comments
|
Camino
Title
|
Abstract - links to details/bugs/etc
|
Reporter
|
Mentor(s)
|
Comments
|
SeaMonkey
Title
|
Abstract - links to details/bugs/etc
|
Reporter
|
Mentor(s)
|
Comments
|
Bugzilla
Title
|
Abstract - links to details/bugs/etc
|
Reporter
|
Mentor(s)
|
Comments
|
Better Bugzilla Helper
|
The current Bugzilla Helper was great for its time, but other Bugzillas have done their own step-by-step versions since which are easier to use. And people have had good ideas, like "here's a screenshot of a Thunderbird window - click on where you think the problem is" and so on. Someone needs to research what others have done, write a plan for a much better simple bug filing system, get it discussed and approved in the community, and build it.
|
Gerv
|
Gerv
|
|
L10n
Title
|
Abstract - links to details/bugs/etc
|
Reporter
|
Mentor(s)
|
Comments
|
Verbatim/Silme
|
GSoC participant will work with the l10n team to build a web-based tool to help localize Firefox. The tool interface may be written with the web application framework Django and will use the python library Silme as an intermediary layer. One of the main features of the webtool will be a unified dashboard to show the status of all localization projects in each locale inside Mozilla, including Firefox, AMO, SUMO, Thunderbird, Fennec, and more.
|
SethB
|
SethB, Axel (Pike on IRC), Zbigniew Braniecki (Gandalf on IRC)
|
No comments.
|
Firefox Support (Sumo)
Title
|
Abstract - links to details/bugs/etc
|
Reporter
|
Mentor(s)
|
Comments
|
Rhino
Title
|
Abstract - links to details/bugs/etc
|
Reporter
|
Mentor(s)
|
Comments
|
Rhino JavaScript performance optimization
|
A number of JavaScript engines have recently increased their performance substantially, using approaches such as a tracing JIT. Investigate and implement new code generation and runtime strategies to increase Rhino's JavaScript execution speed.
|
Norris Boyd
|
Norris Boyd (norrisboyd[at]gmail.com)
|
|
ES3.1 Support in Rhino
|
The EcmaScript 3.1 specification effort is making good progress. Investigate and begin implementation of support for the new 3.1 language features in Rhino.
|
Norris Boyd
|
Norris Boyd (norrisboyd[at]gmail.com)
|
|
Fennec
Title
|
Abstract - links to details/bugs/etc
|
Reporter
|
Mentor(s)
|
Comments
|
Mozilla Labs
Title
|
Abstract - links to details/bugs/etc
|
Reporter
|
Mentor(s)
|
Comments
|
Integrate Thunderbird and Weave
|
Weave is a way of storing personal Firefox data in the cloud (better description needed). This project would build an interface to Weave from Thunderbird, such as address book data, configuration parameters, etc.
|
DavidA
|
Anant
|
dmose already has a basic port running, but there's lots more to be done w.r.t data sync engines.
|
Port the Weave web client to 0.3
|
There is an existing web based interface to access data items stored by Weave. However, after major architectural changes to the server-side, it needs a complete overhaul (and possibly a rewrite) to work with the latest version.
|
Anant
|
Anant
|
|