Community:SummerOfCode09:Brainstorming

From MozillaWiki
Revision as of 13:49, 4 March 2009 by Mithgol the Webmaster (talk | contribs) (→‎Firefox: + ed2k/Kad support)
Jump to navigation Jump to search

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:
  • <img src="ed2k://...">
  • <object src="ed2k://...">
  • <video src="ed2k://...">
  • <audio 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