Community:SummerOfCode11:Brainstorming: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
No edit summary
No edit summary
 
(38 intermediate revisions by 13 users 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 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.  
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.  
Line 20: Line 21:
[[SummerOfCode|Links to ideas lists from previous years]].
[[SummerOfCode|Links to ideas lists from previous years]].


==Mozilla Platform==
== Mozilla Platform ==


{| class="standard-table"
{| class="standard-table"
|-
|-
!Title
! Title  
!Details - with links as appropriate
! Details - with links as appropriate  
!Reporter
! Reporter  
!Mentor(s)
! Mentor(s)  
!Comments
! Comments
|}
|-
| Qt/KDE port of Firefox<br><br>
|
Goal: Finish the Qt Widget code, so that Firefox can run on Linux using Qt (whereas currently it must run using GTK).
 
A lot of work has been done to get Firefox to support Qt, in part due to Fennec's goal of supporting MeeGo (which is Qt-based). Firefox Qt builds exist already, but need more work to be ready for general use.
 
A pure Qt port of Firefox for Linux would be interesting from several standpoints: It might be faster than the current GTK builds, and also it would integrate better with KDE distros, which should make it popular.


==Firefox==
|
Alon Zakai


{| class="standard-table"
| <br>
| <br>
|-
|-
!Title
| Port Mozilla C/C++ codebase to java
!Details - with links as appropriate
|
!Reporter
The aim of this project is to port parts of Firefox C/C++ codebase to java to create java version of Firefox eventually. The way Firefox written (platform-specific code wrapped with Netscape Portable Runtime) makes possible to use effective code translation.
!Mentor(s)
 
!Comments
Project will create iterative and incremental process. Every cycle starts with working version of java Firefox (splitted up into legacy and ported parts). Cycle consist of following development tasks:
|}
 
1. Choosing legacy module/sources to port.
 
2. Running source translator on it.
 
3. Fixing (porting) broken code. Beside fixing runtime for translated code (special library to reduce and simplify code modifications of translated sources) is updating.
 
4. Analysis new porting patterns and cases for translation using new runtime features.
 
5. Modify translator according discovered patterns so it will produce more applicable code.
 
6. Recover two java Firefox parts integrity if any problems. Update build scripts.
 
More detailed information you can read [https://docs.google.com/document/pub?id=1R71HRpSyDTlXlaNm3WPURal0GIqq5-X6e5mpntVoP08 here].
 
'''Refs:'''
 
[1] http://simile.mit.edu/wiki/Java_Firefox_Extension
 
[2] https://developer.mozilla.org/en/java_in_firefox_extensions
 
[3] http://www.mozilla.org/rhino/
 
[4] http://java.net/projects/squawk/
 
[5] http://tech.novosoft-us.com/product_c2j.jsp


==Thunderbird==
[6] http://www.tangiblesoftwaresolutions.com/Product_Details/CPlusPlus_to_Java_Converter_Details.html


{| class="standard-table"
| Makarov Dmitry  (student) <br/>  <br/> MENTOR WANTED!
|-
|
!Title
|
!Details - with links as appropriate
!Reporter
!Mentor(s)
!Comments
|}
|}


== Calendar ==
== Firefox  ==


{| class="standard-table"
{| class="standard-table"
Line 62: Line 93:
! Mentor(s)  
! Mentor(s)  
! Comments
! Comments
|}
|-
| Profile Management with Login Integration<br>
|
Firefox already stores the users' details and usage in [http://support.mozilla.com/en-US/kb/Profiles profiles](-although the procedure is lengthy-). I want to give the user a management system where the user can log-in to the browser and the predefined settings would be loaded and the activity would be recorded to the profile .In a lot of universities,organizations and homes(parental control), the system adminstrator and the user are different, and the admin wants to authenticate or give some special rights to the user (-for which external clients or login-systems like cyberoam-). I&nbsp;can break down the whole system into 2 parts - form and settings.&nbsp;
 
The form could be of multiple usage - from a simple username/pwd type to another having different fields required to authenticate the user.( it can also have a new registration option)<br>
 
After Login, the user can do any pre-defined settings, he can have his own boomarks, own add-ons, own proxy settings, some saved passwords, sync options, security settings with his/her mobile and other settings which he/she chose.Also this can help universities/organizations to record users' activity specific to his profile.
 
Already a lot of people([https://bugzilla.mozilla.org/buglist.cgi?query_format=specific&order=relevance+desc&bug_status=__open__&product=&content=profile bug list]) are using profiles and these would give them a clean interface to do so.I believe this would be a great feature and can enhance the usability a lot.&nbsp;
 
| ankur<br>
| <br>
| <br>
|-
| A page loading progress bar with bandwidth usage data counter
|
I recommend this as an improvement to the existing version of Firefox
beta release. Add the page loading bar at the bottom of each page as
well as place the user's internet bandwidth usage counter beside it.
This data counter will display the usage for each webpage used in one
browsing session. 
The data counter should be merged into a chart depicting the total
webpage usage out of the user's internet plan's bandwidth. The features can
be embedded into a jetpack. HTML, CSS, and JavaScript languages are needed.
Source of programming languages:
https://developer.mozilla.org/En/Developing_add-ons
Source of Firefox-plugin usage out of CPU usage (for my reference on
OS resource usage for my proposal):
https://developer.mozilla.org/en/Monitoring_plugins
|
Sawaiz (student)
| <br>
| <br>
|-
| Touchpad support.
|
As I Experienced, navigating a internet browser isn’t easy when using a touchpad, so I come up with an idea to make a tool helping this activity.
 
I’m going to define some (editable) gestures which would be simple to use on touchpad, some additional actions e.g. double click on the link to open it in new tab, little changes in context menu.
|
Krzysztof Piniecki (student)
| <br>
| <br>
|-
| Resource tracker for extensions
|
Create CPU-time and memory resource tracker for add-ons. Result must be looking similar to Google Chrome Shift-Esc task manager. That is feature showing consumed resources per add-on. By contrast Chromium that use extension process separation and show process characteristics this project implementation will use js-profiling abilities of Firefox.
 
More detailed information you can read [https://docs.google.com/document/pub?id=18Lw7UtzZog9m1taCds5nlEFycNpkIgGA0AsbGMq45u8 here].
 
'''Refs:'''
 
[1] http://www.mozilla.org/projects/venkman/
 
[2] https://jetpack.mozillalabs.com/
 
[3] https://wiki.mozilla.org/Electrolysis
 
[4] https://addons.mozilla.org/en-US/firefox/addon/firebug/
 
[5] http://www.softwareishard.com/blog/firebug/tracing-console-for-firebug/
 
[6] https://addons.mozilla.org/en-US/firefox/addon/xul-profiler-by-yoono/
 
[7] https://addons.mozilla.org/en-US/firefox/addon/memory-profiler/
 
[8] https://addons.mozilla.org/en-US/firefox/addon/leak-monitor/
 
[9] https://engtech.wordpress.com/2007/11/13/howto-greasemonkey-profiler-firebug/


==Camino==
[10] http://seleniumhq.org/projects/ide/


See the [http://wiki.caminobrowser.org/Development:Good_Bugs_and_Projects Camino Summer of Code page] for project suggestions.
[11] http://www.mozilla.org/performance/jsprofiler.html
| Makarov Dmitry  (student) <br/>  <br/> MENTOR WANTED!
|
|
|}


==SeaMonkey==
==Thunderbird==


{| class="standard-table"
{| class="standard-table"
|-
|-
!Title
!Title
!Details - with links as appropriate
!Details
!Reporter
!Reporter
!Mentor(s)
!Mentor(s)  
!Comments
!Comments
|}
|}


==Instantbird==
==Camino==
 
See the [http://wiki.caminobrowser.org/Development:Good_Bugs_and_Projects Camino Summer of Code page] for project suggestions.
 
==SeaMonkey==


{| class="standard-table"
{| class="standard-table"
Line 88: Line 196:
!Mentor(s)
!Mentor(s)
!Comments
!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
|
|-
|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)==
==NSS (Network Security Services)==
Line 140: Line 218:
! Mentor(s)  
! Mentor(s)  
! Comments
! 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.
| [mailto:shigorin@gmail.com Michael Shigorin] (no student)
|
| There seems to exist [http://search.cpan.org/dist/HTML-TagCloud/ HTML-TagCloud] module.
|}
|}


Line 165: Line 251:
|}
|}


==Rhino==
{| class="standard-table"
|-
!Title
!Details - with links as appropriate
!Reporter
!Mentor(s)
!Comments
|}


==Mozilla IT Infrastructure==
==Mozilla IT Infrastructure==

Latest revision as of 17:23, 9 March 2012

Looking for this year's Summer of Code information? Step right this way.

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
Qt/KDE port of Firefox

Goal: Finish the Qt Widget code, so that Firefox can run on Linux using Qt (whereas currently it must run using GTK).

A lot of work has been done to get Firefox to support Qt, in part due to Fennec's goal of supporting MeeGo (which is Qt-based). Firefox Qt builds exist already, but need more work to be ready for general use.

A pure Qt port of Firefox for Linux would be interesting from several standpoints: It might be faster than the current GTK builds, and also it would integrate better with KDE distros, which should make it popular.

Alon Zakai



Port Mozilla C/C++ codebase to java

The aim of this project is to port parts of Firefox C/C++ codebase to java to create java version of Firefox eventually. The way Firefox written (platform-specific code wrapped with Netscape Portable Runtime) makes possible to use effective code translation.

Project will create iterative and incremental process. Every cycle starts with working version of java Firefox (splitted up into legacy and ported parts). Cycle consist of following development tasks:

1. Choosing legacy module/sources to port.

2. Running source translator on it.

3. Fixing (porting) broken code. Beside fixing runtime for translated code (special library to reduce and simplify code modifications of translated sources) is updating.

4. Analysis new porting patterns and cases for translation using new runtime features.

5. Modify translator according discovered patterns so it will produce more applicable code.

6. Recover two java Firefox parts integrity if any problems. Update build scripts.

More detailed information you can read here.

Refs:

[1] http://simile.mit.edu/wiki/Java_Firefox_Extension

[2] https://developer.mozilla.org/en/java_in_firefox_extensions

[3] http://www.mozilla.org/rhino/

[4] http://java.net/projects/squawk/

[5] http://tech.novosoft-us.com/product_c2j.jsp

[6] http://www.tangiblesoftwaresolutions.com/Product_Details/CPlusPlus_to_Java_Converter_Details.html

Makarov Dmitry (student)

MENTOR WANTED!

Firefox

Title Details - with links as appropriate Reporter Mentor(s) Comments
Profile Management with Login Integration

Firefox already stores the users' details and usage in profiles(-although the procedure is lengthy-). I want to give the user a management system where the user can log-in to the browser and the predefined settings would be loaded and the activity would be recorded to the profile .In a lot of universities,organizations and homes(parental control), the system adminstrator and the user are different, and the admin wants to authenticate or give some special rights to the user (-for which external clients or login-systems like cyberoam-). I can break down the whole system into 2 parts - form and settings. 

The form could be of multiple usage - from a simple username/pwd type to another having different fields required to authenticate the user.( it can also have a new registration option)

After Login, the user can do any pre-defined settings, he can have his own boomarks, own add-ons, own proxy settings, some saved passwords, sync options, security settings with his/her mobile and other settings which he/she chose.Also this can help universities/organizations to record users' activity specific to his profile.

Already a lot of people(bug list) are using profiles and these would give them a clean interface to do so.I believe this would be a great feature and can enhance the usability a lot. 

ankur


A page loading progress bar with bandwidth usage data counter

I recommend this as an improvement to the existing version of Firefox beta release. Add the page loading bar at the bottom of each page as well as place the user's internet bandwidth usage counter beside it. This data counter will display the usage for each webpage used in one browsing session. The data counter should be merged into a chart depicting the total webpage usage out of the user's internet plan's bandwidth. The features can be embedded into a jetpack. HTML, CSS, and JavaScript languages are needed. Source of programming languages: https://developer.mozilla.org/En/Developing_add-ons Source of Firefox-plugin usage out of CPU usage (for my reference on OS resource usage for my proposal): https://developer.mozilla.org/en/Monitoring_plugins

Sawaiz (student)



Touchpad support.

As I Experienced, navigating a internet browser isn’t easy when using a touchpad, so I come up with an idea to make a tool helping this activity.

I’m going to define some (editable) gestures which would be simple to use on touchpad, some additional actions e.g. double click on the link to open it in new tab, little changes in context menu.

Krzysztof Piniecki (student)



Resource tracker for extensions

Create CPU-time and memory resource tracker for add-ons. Result must be looking similar to Google Chrome Shift-Esc task manager. That is feature showing consumed resources per add-on. By contrast Chromium that use extension process separation and show process characteristics this project implementation will use js-profiling abilities of Firefox.

More detailed information you can read here.

Refs:

[1] http://www.mozilla.org/projects/venkman/

[2] https://jetpack.mozillalabs.com/

[3] https://wiki.mozilla.org/Electrolysis

[4] https://addons.mozilla.org/en-US/firefox/addon/firebug/

[5] http://www.softwareishard.com/blog/firebug/tracing-console-for-firebug/

[6] https://addons.mozilla.org/en-US/firefox/addon/xul-profiler-by-yoono/

[7] https://addons.mozilla.org/en-US/firefox/addon/memory-profiler/

[8] https://addons.mozilla.org/en-US/firefox/addon/leak-monitor/

[9] https://engtech.wordpress.com/2007/11/13/howto-greasemonkey-profiler-firebug/

[10] http://seleniumhq.org/projects/ide/

[11] http://www.mozilla.org/performance/jsprofiler.html

Makarov Dmitry (student)

MENTOR WANTED!

Thunderbird

Title Details 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

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


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