Community:SummerOfCode18: Difference between revisions

fix link for metricsgraphics
No edit summary
(fix link for metricsgraphics)
 
(16 intermediate revisions by 9 users not shown)
Line 1: Line 1:
This is Mozilla's list of green-lit project proposals for the 2018 Google Summer of Code.  
This is Mozilla's list of green-lit project proposals for the 2018 Google Summer of Code.  


<b>Are you a student looking to apply to GSoC with Mozilla?</b> You're in the right place. This page lists all the confirmed [[SummerOfCode|Google Summer of Code]] projects. New suggestions can be made on [[Community:SummerOfCode18:Brainstorming|the Brainstorming page]]. Do not edit this page yourself; contact Mike Hoye or Florian for edits.
<b>Are you a student looking to apply to GSoC with Mozilla?</b> You're in the right place. This page lists all the confirmmed [[SummerOfCode|Google Summer of Code]] projects. New suggestions can be made on [[Community:SummerOfCode18:Brainstorming|the Brainstorming page]]. Do not edit this page yourself; contact Mike Hoye or Florian for edits.


If you're interested in participating in Mozilla's GSoC program, you can choose from the list below, '''but you do not have to'''. You can submit a proposal for your own idea. You should look at the [[Community:SummerOfCode18:Brainstorming|guidelines]], though, and discuss your ideas or application in the #introduction channel on IRC.Mozilla.org. This is important, as GSoC projects '''must have''' a supporting member of the Mozilla community to evaluate and mentor them, named in the application.
If you're interested in participating in Mozilla's GSoC program, you can choose from the list below, '''but you do not have to'''. You can submit a proposal for your own idea. You should look at the [[Community:SummerOfCode18:Brainstorming|guidelines]], though, and discuss your ideas or application in the #introduction channel on IRC.Mozilla.org. This is important, as GSoC projects '''must have''' a supporting member of the Mozilla community to evaluate and mentor them, named in the application.
Line 36: Line 36:
| [https://github.com/w3c/respec/ ReSpec] is a JS-based tool used to write W3C Specifications (Web Standards) that is widely used by the Web Standards Community. With 5+ years of development, it's heavily depended upon by the W3C community at large (of which Mozilla is an active participant). ReSpec's code is in need of some modernization, optimizations, and bug fixes - and we could use your help! In this project, you would have the opportunity to make ReSpec's UI more accessible, making it leaner and faster using distributed processing with Web Workers, and/or adding new features to make the lives of W3C spec Editor's better.  
| [https://github.com/w3c/respec/ ReSpec] is a JS-based tool used to write W3C Specifications (Web Standards) that is widely used by the Web Standards Community. With 5+ years of development, it's heavily depended upon by the W3C community at large (of which Mozilla is an active participant). ReSpec's code is in need of some modernization, optimizations, and bug fixes - and we could use your help! In this project, you would have the opportunity to make ReSpec's UI more accessible, making it leaner and faster using distributed processing with Web Workers, and/or adding new features to make the lives of W3C spec Editor's better.  
| Languages or skills needed: JavaScript, HTML, CSS.  
| Languages or skills needed: JavaScript, HTML, CSS.  
| Marcos Caceres (Mozilla)
| [https://mozillians.org/en-US/u/mcaceres/ Marcos Caceres]
| Marcos Caceres (Mozilla)
| [https://mozillians.org/en-US/u/mcaceres/ Marcos Caceres]
| ReSpec offers students the opportunity to work on a large code base that has extensive real world use and impact. The project offers students an extensive range of problems to tackle, from UI design, to concurrent processing (using Web Workers to do distributed text processing), dealing with accessibility and internationalization, writing and learning about unit and integration tests, security, code review, etc. - as well as exposure to the W3C and the web standards community, this project also aims at teaching students about how web standards are put together. To determine if this is a project you would like to be part of, see the [https://github.com/w3c/respec/issues/ list of issues] you could work on. It's a great opportunity to learn about all aspects of open source software development, but with the freedom to take on small to large challenges over the Summer (depending on your skill level and level of confidence). About the mentor: Marcos Caceres is a Staff Engineer at Mozilla who has been working on Web Standards for over a decade. Marcos is the lead maintainer of ReSpec. Marcos has extensive experience mentoring developers and has previously successfully mentor a GSO student.  
| [https://github.com/w3c/respec/issues/1502 Ideas list]. ReSpec offers students the opportunity to work on a large code base that has extensive real world use and impact. The project offers students an extensive range of problems to tackle, from UI design, to concurrent processing (using Web Workers to do distributed text processing), dealing with accessibility and internationalization, writing and learning about unit and integration tests, security, code review, etc. - as well as exposure to the W3C and the web standards community, this project also aims at teaching students about how web standards are put together. To determine if this is a project you would like to be part of, see the [https://github.com/w3c/respec/issues/ list of issues] you could work on. It's a great opportunity to learn about all aspects of open source software development, but with the freedom to take on small to large challenges over the Summer (depending on your skill level and level of confidence). About the mentor: Marcos Caceres is a Staff Engineer at Mozilla who has been working on Web Standards for over a decade. Marcos is the lead maintainer of ReSpec. Marcos has extensive experience mentoring developers and has previously successfully mentor a GSO student.  
|-
|-
| D3D11 backend for gfx-rs HAL
| D3D11 backend for gfx-rs HAL
Line 70: Line 70:
| [https://wasdk.github.io/WasmFiddle/ WasmFiddle] is a web application that facilitates learning of the WebAssembly and its usage in the browser. The goal is to create a learning tool that will allow user to quickly start a project that uses WebAssembly, learn based on examples, explore existing popular toolchains (emscripten, rust, etc), etc. The project will be similar to what jsfiddle, jsbin, or codepen proposes, but with additional elements specific to WebAssembly only, e.g. a code generation from C/C++ languages or how the code will be compiled by the browser and run in native machine code.
| [https://wasdk.github.io/WasmFiddle/ WasmFiddle] is a web application that facilitates learning of the WebAssembly and its usage in the browser. The goal is to create a learning tool that will allow user to quickly start a project that uses WebAssembly, learn based on examples, explore existing popular toolchains (emscripten, rust, etc), etc. The project will be similar to what jsfiddle, jsbin, or codepen proposes, but with additional elements specific to WebAssembly only, e.g. a code generation from C/C++ languages or how the code will be compiled by the browser and run in native machine code.
| Languages or skills needed: JavaScript, HTML, CSS, WebAssembly. Suggested additional technologies: React, Rust, C++.
| Languages or skills needed: JavaScript, HTML, CSS, WebAssembly. Suggested additional technologies: React, Rust, C++.
| Yury Delendik (Mozilla)
| [mailto:ydelendik@mozilla.com Yury Delendik] :yury (Mozilla)
| Yury Delendik (Mozilla)
| [mailto:ydelendik@mozilla.com Yury Delendik] :yury (Mozilla)
| The project involves extending the functionality of the existing WasmFiddle/WasmExplorer projects to:
| The project involves extending the functionality of the existing WasmFiddle/WasmExplorer projects to:
* control, inspect and understand every part of the WebAssembly compilation pipeline;
* control, inspect and understand every part of the WebAssembly compilation pipeline;
Line 78: Line 78:
* influence JavaScript developers through well-thought out examples, best practices and templates;
* influence JavaScript developers through well-thought out examples, best practices and templates;
* add support for many languages: C/C++/Rust/etc;
* add support for many languages: C/C++/Rust/etc;
* create environments where users can play and have fun with: WebGL, Physics, Games, Audio Synthesizers
* create environments where users can play and have fun with: WebGL, Physics, Games, Audio Synthesizers.
See [https://github.com/wasdk/WebAssemblyStudio/ WebAssemblyStudio repository] for new version of the WasmFiddle.
|-
|-
| Pontoon's path to first contribution
| Pontoon's path to first contribution
Line 89: Line 90:
| [https://github.com/WICG/aom/blob/gh-pages/explainer.md AOM] is JavaScript API designed to help the authors to make the web pages accessible, i.e. make them usable by the assisstive technologies such as screen readers, screen magnifiers and others. AOM specification is inspired by [https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA ARIA] standard, an HTML 5 extension, used to add semantics to the web pages. If you are familiar with ARIA, then you can think of AOM as JavaScript ARIA. The AOM proposal (phase 1) was already implemented in Chrome under a flag, and you can help do the same in Firefox.
| [https://github.com/WICG/aom/blob/gh-pages/explainer.md AOM] is JavaScript API designed to help the authors to make the web pages accessible, i.e. make them usable by the assisstive technologies such as screen readers, screen magnifiers and others. AOM specification is inspired by [https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA ARIA] standard, an HTML 5 extension, used to add semantics to the web pages. If you are familiar with ARIA, then you can think of AOM as JavaScript ARIA. The AOM proposal (phase 1) was already implemented in Chrome under a flag, and you can help do the same in Firefox.
| Languages or skills needed: C++.  
| Languages or skills needed: C++.  
| Alexander Surkov (Mozilla)
| Alexander Surkov (Mozilla) (surkov.alexander@gmail.com)
| Alexander Surkov (Mozilla)
| Alexander Surkov (Mozilla) (surkov.alexander@gmail.com)
| This project is the opportunity to hack on the heart of Mozilla Firefox, the Gecko engine. It involves working with a large code base and solving a wide variety of problems, from the solution architecture to finding efficient ways to implement it. If you want to learn about Gecko and accessibility, that's the right place. AOM has the potential of becoming a new standard in making the web page accessible next few years. You can help to happen it sooner.
| This project is the opportunity to hack on the heart of Mozilla Firefox, the Gecko engine. It involves working with a large code base and solving a wide variety of problems, from the solution architecture to finding efficient ways to implement it. If you want to learn about Gecko and accessibility, that's the right place. AOM has the potential of becoming a new standard in making the web page accessible next few years. You can help to happen it sooner.
|-
|-
| metricsgraphics - zooming and brushing
| metricsgraphics - zooming and brushing
| [https://github.com/mozilla/metricsgraphics metricsgraphics] is JavaScript library designed to help with the presentation of interactive visualization. It is used extensively both inside and outside Mozilla. This project would be about adding a set of zooming and brushing features to facilitate the exploration of large and/or noisy datasets, such as in the [https://wiki.mozilla.org/EngineeringProductivity/Projects/Perfherder Perfherder] or [https://github.com/mozilla/missioncontrol/ Mission Control] projects. Detailed project description to come.
| [https://github.com/mozilla/metricsgraphics metricsgraphics] is JavaScript library designed to help with the presentation of interactive visualization. It is used extensively both inside and outside Mozilla. This project would be about adding a set of zooming and brushing features to facilitate the exploration of large and/or noisy datasets, such as in the [https://wiki.mozilla.org/EngineeringProductivity/Projects/Perfherder Perfherder] or [https://github.com/mozilla/missioncontrol/ Mission Control] projects.  
| Languages or skills needed: JavaScript, HTML/SVG
| Languages or skills needed: JavaScript, HTML/SVG
| William Lachance (Mozilla)
| William Lachance (Mozilla)
| William Lachance (Mozilla)
| William Lachance (Mozilla)
|  
| [https://docs.google.com/document/d/1_KIOJtemqlCBktDdfdjDuS4XhICeaKO3QhNRwbnnf-g/edit?usp=sharing Detailed project outline]
|-
|-
| Ailurus Notebook
| Iodide Notebook
| The [Ailurus Notebook|https://github.com/mozilla/javascript-notebook] is a pure client-side browser-based IDE and publication tool for scientific computing and computational inquiry using web technologies (HTML, CSS, Javascript, WebAssembly). It provides a Jupyter-style notebook interface, granting scientists full access to the power of the DOM and browser APIs within a familiar iterative workflow, and with zero overhead -- absolutely no software installation and configuration is required, so people can seamlessly learn from and extend the work of others.
| The [https://github.com/mozilla/iodide Iodide Notebook] is a pure client-side browser-based IDE and publication tool for scientific computing and computational inquiry using web technologies (HTML, CSS, Javascript, WebAssembly). It provides a Jupyter-style notebook interface, granting scientists full access to the power of the DOM and browser APIs within a familiar iterative workflow, and with zero overhead -- absolutely no software installation and configuration is required, so people can seamlessly learn from and extend the work of others.


Students will contribute to: extending the functionality of the notebook; making the notebook code more robust and performant; helping to shape the user experience; and creating example notebooks.
Students will contribute to: extending the functionality of the notebook; making the notebook code more robust and performant; helping to shape the user experience; and creating example notebooks.
Line 161: Line 162:
| Good JavaScript experience and a basic understand of how the web works.
| Good JavaScript experience and a basic understand of how the web works.
| [mailto:jhofmann@mozilla.com Johann (:johannh)]
| [mailto:jhofmann@mozilla.com Johann (:johannh)]
| [mailto:nhnt11@mozilla.com Nihanth (:nhnt11)]
| [mailto:nhnt11+gsoc@gmail.com Nihanth (:nhnt11)]
| A more detailed description can be found [https://bugzilla.mozilla.org/show_bug.cgi?id=1306334#c2 here]
| A more detailed description can be found [https://bugzilla.mozilla.org/show_bug.cgi?id=1306334#c2 here]
|-
|-
Line 186: Line 187:
| You can learn more by [https://bugzilla.mozilla.org/show_bug.cgi?id=566510 reading the bug on Bugzilla], but note that the comments there stem back multiple years as people have been wanting this feature for a long time. While working on this you will become very familiar with the [https://developer.mozilla.org/en-US/docs/Tools/Browser_Toolbox Browser Toolbox], our own "Inspector" tool for the browser user-interface, as well as writing automated tests for the new feature you're adding. Most of our tab-selection code lives within [https://searchfox.org/mozilla-central/source/browser/base/content/tabbrowser.xml our tabbrowser.xml] file, which you can browse around if you're interested to see how some operations work.
| You can learn more by [https://bugzilla.mozilla.org/show_bug.cgi?id=566510 reading the bug on Bugzilla], but note that the comments there stem back multiple years as people have been wanting this feature for a long time. While working on this you will become very familiar with the [https://developer.mozilla.org/en-US/docs/Tools/Browser_Toolbox Browser Toolbox], our own "Inspector" tool for the browser user-interface, as well as writing automated tests for the new feature you're adding. Most of our tab-selection code lives within [https://searchfox.org/mozilla-central/source/browser/base/content/tabbrowser.xml our tabbrowser.xml] file, which you can browse around if you're interested to see how some operations work.
|-
|-
| ..your project here!
| A/B testing framework for Android
|
| In Firefox for Android we are using an A/B testing framework based on "Switchboard". We want to re-write this framework in Kotlin as a standalone-library that can be used in our other Android apps.
|
| Android, Java, Kotlin
|
| [mailto:skaspari@mozilla.com Sebastian Kaspari (:sebastian)]
|
| [mailto:skaspari@mozilla.com Sebastian Kaspari (:sebastian)]
|
| See more detailed project description:
 
https://github.com/pocmo/fretboard/wiki/Google-Summer-of-Code-2018
 
List of issues/tasks:
 
https://github.com/pocmo/fretboard/issues
|-
| Native Android XML support in Mozilla localization infrastrucure
| Mozilla develops software for various platforms, one of which is Android. Localizations of Android apps are typically stored in the XML dialect, which is not supported by [https://pontoon.mozilla.org/ Pontoon], Mozilla's localization tool. That means our localization process is unnecessarily complicated, because we need to convert between Android XML files and files supported by our localization tools. Your task will be to solve this problem by writing translation quality checks for [https://pypi.python.org/pypi/compare-locales compare-locales] and adding support for the XML dialect to Pontoon.
| Python
| [https://mozillians.org/en-US/u/mathjazz/ Matjaž Horvat] (Mozilla)
| [https://mozillians.org/en-US/u/Pike/ Axel Hecht] (Mozilla)
|-
 
| Improve Enigmail User Experience
| [https://enigmail.net Enigmail] is an add-on for Thunderbird that adds OpenPGP-based email encryption and authentication. This is a Thunderbird project that focuses on improving the user interface for Enigmail, such that it fits better into the general Thunderbird UI and makes user experience smoother. The goal of this project is to lower the entry-barrier for non-experts to use encryption by simplifying the existing core workflows and tasks. The main areas to work on are initial setup, sending and reading mails.
| JavaScript, HTML/XUL and CSS
| [mailto:patrick@enigmail.net Patrick Brunschwig (:pbrunschwig)], [mailto:kewisch@thunderbird.net Philipp Kewisch (:Fallen)]
| [mailto:patrick@enigmail.net Patrick Brunschwig (:pbrunschwig)]
| List your top 3 pain points in the Enigmail UI, and what you would do to fix them.
|-
|}
|}
Confirmed users
955

edits