Community:SummerOfCode13:Brainstorming: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
Line 389: Line 389:
! Mentor(s)  
! Mentor(s)  
! Comments
! Comments
|-
| Project Janus
| Build a Firefox addon that emulates dynamic profile switching, like Chrome supports signing in as multiple profiles. The actual profile-switching code is out of scope of a GSoC project, but writing a visual stub that users can interact with would give us valuable information as to what kind of support (real multiple profiles, Guest Mode, Private Mode) are most useful to people. The addon would need to collect metrics, e.g. how often to people switch profiles, how many profiles does an average user need, how many sites to people access across multiple profiles. Building a Chrome extension to collect the same metrics would also be very useful.
| Javascript, Addon SDK
| Monica Chew (mmc)
| Monica Chew (mmc), Tanvi Vyas (tanvi)
| This is primarily a quantitative user experience project.
|}
|}



Revision as of 19:45, 25 March 2013

Mozilla community members - submit proposals here for 2013 Google Summer of Code projects with Mozilla. (If this page looks empty, it's because accepted ideas have already been transferred to the official list.) The absolute last deadline for submitting ideas in time to help us get accepted by Google is March 29th.

Are you a students looking to apply to SoC with Mozilla? Your first stop should be the official list of ideas. This page is full of weird and whacky ideas, some of which are still on here for a reason - it could be that they are not properly defined, the wrong size, or don't have a mentor. That makes them less likely to get accepted. You can, of course, also submit your own ideas - you don't have to put an idea on this page and get it 'made official' in order to send in a proposal for it.

How To Write A Good Project Proposal

Before adding an proposal 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 who you are, 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

Here are the ideas lists from previous years.

Proposals can be in almost any part of the Mozilla project - don't be fooled by the "Code" in "Summer of Code". If there is no category below for your part of Mozilla, add one!

Mozilla Platform (Gecko)

Title Details Skills Needed Reporter Mentor(s) Comments

Firefox

Title Details Skills Needed Reporter Mentor(s) Comments
motion controlled web apps I want to develop apps for mozilla firefox which are motion controlled ,integrating them with leap motion device , I even want to add 3D web browser and speech recognition features to it .I can develop game applications which user can play just with motion of hand sittting in front of his/her computer. HTML5 , css, javascript ,c++ , java .

Firefox for Android

Title Details Skills Needed Reporter Mentor(s) Comments

Firefox OS / Boot2Gecko

Title Details Skills Needed Reporter Mentor(s) Comments

Calendar

Title Details Skills Needed Reporter Mentor(s) Comments

Thunderbird

Title Details Skills Needed Reporter Mentor(s) Comments
Tests Write tests for Thunderbird features where they are missing. We also have some contributors writing patches that were rejected because the contributor was not up to speed to produce a test for the feature (much harder than just producing the feature/fix). If the student picks up (helps with) these patches/contributors and produces the patches, it would help us. Example bugs: bug 580349, bug 379831, bug 253830 Javascript required. Experience with mozmill or xpcshell test infrastructure an advantage. aceman mconley
Utilize capability attributes of nsIMsgIncomingServer and nsIMsgFolder Remove hard-coded checks through-out the comm-central codebase where a simple check of the server (nsIMsgIncomingServer) capability can be used.

Example:

if (server.type == "nntp" || server.type == "rss") { enableSubscribe(); }

Change to:

if (server.canSubscribe) { enableSubscribe(); }

For this to work, the student has to see if the server types return the proper value for the capability (some may be unimplemented yet) and may have to add some new attributes where needed. Hard-coded checks are bad because they do not pick up new server types automatically even if they would have the capability. Extension authors have a hard time plugging into these hard-coded spots. Often they have to duplicate the whole function from TB to add their new server type to it. The same can be done with folders, i.e. nsIMsgFolder.

Starting point: bug 63369.

C++, Javascript aceman
Rewrite our database code to be asynchronous when database if huge. This would help us in improving the start-up time of Thunderbird. Main idea is splitting the database in chunks and then loading it, if the database is quite big. I guess related bug would be: bug 588952.

Difficulty: Medium to hard depending on how far we go.

C++ mainly atuljangra ?anyone? jcranmer - Mork database async opening needs to be completed, and we would probably also need nsIMsgDBHdr instances to become "dead" (cached copies of the database or newer changes).
Implement backend connectors for Ensemble Mconley's new address book work should be stable enough by the summer so that it is possible to write new connectors to various contact storage backends. We will only be targeting read-only support this summer. Possible backends include system address book on any platform, LDAP, CardDAV servers and Google Contacts. The connector API is specified here, but be evolve during the project. Applicants should specify which backend they're interested in implementing, and should be highly proficient in Javascript. C/C++ is a bonus, but not entirely necessary. Previous experience working with their chosen backend is highly desirable. Thorough tests for the new connector will be expected. JS, although some C/C++ for native may be necessary jcranmer mconley
Implement a mailbox-to-maildir converter This is one of the last critical pieces blocking moving away from mbox-style mailboxes. C++, although some JS may be necessary jcranmer jcranmer
Open ended project to solve several critical bugs My idea for this project is that we can have a student solve various bugs that are arising in Thunderbird which are makin users unhappy. For example Bug 516222, Bug 803921, Bug 618553 and many others. We can utilize this to solve such critical bugs. This would be some kind of open ended bug. Main area of concern would be Mailnews core. C/C++ mostly, Js for testing atuljangra ?anyone from Mailnews core? atuljangra- Do we need to prioritise the ideas?
Make OS X users happier Something from Bug 728438 to integrate Thunderbird better into OS X would be good. This includes interesting Bugs like the Quickloock integration Bug 457546, which was already a student project, but needs to be finished, integrated into Thunderbird and some tests. The same is true for Bug 465257 to support multi-touch gestures. It also includes Bugs to improve the addressbook behaviour for OS X users (write support, Bug 391057 and picture support, Bug 496789). You need to know about C++, JS and OS X APIs. ? ?

SeaMonkey

Title Details Skills Needed Reporter Mentor(s) Comments

NSS (Network Security Services)

Title Details Skills Needed Reporter Mentor(s) Comments

Bugzilla

Title Details Skills Needed Reporter Mentor(s) Comments

Firefox Support (SUMO)

Title Details Skills Needed Reporter Mentor(s) Comments

QA

Title Details Skills Needed Reporter Mentor(s) Comments

Automation & Tools

Title Details Skills Needed Reporter Mentor(s) Comments
Improve Usefulness and Ergonomics of Peptest Peptest is a test framework that was written to test the responsiveness of Firefox. In it's current state it is more of a proof of concept that still needs to be fleshed out with all the bells and whistles that will make it truly useful to developers. Some tasks include integration with the built-in profiler, using Marionette as a back-end to drive tests (will also make it easier to run peptests on mobile platforms), improvements to the API exposed to test authors, multitude of other minor tweaks that help make the Peptest experience as painless as possible. Python and javascript Andrew Halberstadt (irc: ahal) Andrew Halberstadt (irc: ahal)

Documentation

Title Details Skills Needed Reporter Mentor(s) Comments

Mozilla IT and Infrastructure

Title Details Skills Needed Reporter Mentor(s) Comments

Persona / BrowserID

Title Details Skills Needed Reporter Mentor(s) Comments

Sync / Services

Title Details Skills Needed Reporter Mentor(s) Comments

Developer Tools

Title Details Skills Needed Reporter Mentor(s) Comments

Add-on SDK

Title Details Skills Needed Reporter Mentor(s) Comments

Foundation

Title Details Skills Needed Reporter Mentor(s) Comments

Release Engineering

Title Details Skills Needed Reporter Mentor(s) Comments

Instantbird

Title Details Skills Needed Reporter Mentor(s) Comments

Emscripten

Title Details Skills Needed Reporter Mentor(s) Comments

Rust

Title Details Skills Needed Reporter Mentor(s) Comments
Debug symbol generation Rust programs are tricky to debug when they don't work because they lack debugging symbols. This work has been started, but for many core Rust features the current debugging support is little to none. The goal of this project would be to support building the self-hosted compiler with full debugging symbols enabled, and fill out the suite of automated gdb tests to ensure that the debugging support does not regress in the future. The project will require making use of LLVM's source-level debugging features and building on the debugging support that already exists in the compiler. Rust, LLVM experience beneficial Josh Matthews (jdm) Josh Matthews (jdm) Practical experience with Rust is rare. Therefore, any student interested in this project should take some time to become familiar with Rust so that the actual project time is spent on practical work instead of learning the language.

Security Engineering

Title Details Skills Needed Reporter Mentor(s) Comments
Project Janus Build a Firefox addon that emulates dynamic profile switching, like Chrome supports signing in as multiple profiles. The actual profile-switching code is out of scope of a GSoC project, but writing a visual stub that users can interact with would give us valuable information as to what kind of support (real multiple profiles, Guest Mode, Private Mode) are most useful to people. The addon would need to collect metrics, e.g. how often to people switch profiles, how many profiles does an average user need, how many sites to people access across multiple profiles. Building a Chrome extension to collect the same metrics would also be very useful. Javascript, Addon SDK Monica Chew (mmc) Monica Chew (mmc), Tanvi Vyas (tanvi) This is primarily a quantitative user experience project.

Open(Art)

Title Details Skills Needed Reporter Mentor(s) Comments
MIDI, OSC, Arduino communication It would be great to have an easy way to connect creative coding to physical controllers. MakeyMakey is a great example of zero-code zero-install zero-configuration hardware hacking. This comes with the limitation of only sending binary key signals. The system that I'm imagining would be a small, installable web server that translates signals to and from [MIDI, OSC, Arduino] via WebSocket. JavaScript, Node.js, MIDI, OSC, Arduino Forrest Oliphant, in relation to the meemoo.org project.
Media server Design a method to record audio and video locally using WebRTC streaming to a local Node.js server. Saving images could also be a good goal. It should be easy to save media and then bring it back into the Meemoo app. JavaScript, WebRTC, Node.js Forrest Oliphant, in relation to the meemoo.org project.
Hacktivity design "Hacktivity" prototyping and design for ways to bridge the digital/analog high/low tech code/craft divide. http://meemoo.org/hack-our-apps/ JavaScript, craft, activity design, writing "
UX and graphic design General help designing the UX and graphic look of the site and app. UX design, graphic design, prototyping "