Community:SummerOfCode19:Brainstorming: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
(Add 1st party ad blocking project)
(Added bugbug)
Line 67: Line 67:
| Seeking a mentor
| Seeking a mentor
| https://bugzilla.mozilla.org/show_bug.cgi?id=1519197
| https://bugzilla.mozilla.org/show_bug.cgi?id=1519197
|-
| [https://github.com/marco-c/bugbug bugbug]
| A platform for machine learning projects applied on Bugzilla, VCS and other software development data.
| Python
| [https://github.com/marco-c Marco Castelluccio]
| [https://github.com/marco-c Marco Castelluccio]
| The project will involve one or more of 1) building additional classifiers (e.g., to detect bugs with no steps to reproduce, or to suggest a developer to assign to a bug), 2) improving accuracy/precision/recall of the existing classifiers by implementing other machine learning techniques (e.g., by using convolutional neural networks or recurrent neural networks), 3) improving accuracy/precision/recall by implementing additional feature extraction steps.
|-
|-
| ..your next idea here!
| ..your next idea here!

Revision as of 00:46, 15 January 2019

Once again, Mozilla intends to apply to participate in Google's Summer Of Code.

Mozilla community members, please submit proposals here for 2019 Google Summer of Code projects with Mozilla. This page is for brainstorming - as we approach the deadline, those ideas that are accepted will be transferred to the official list.)

Our application for summer of 2019 goes into Google on February 4th, so get those project ideas in well ahead of time.

Are you a student looking to apply to GSoC with Mozilla? Your first stop should be the official list of ideas. This page is full of weird ideas, only some of which will make the cut. 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, though they do need to be mostly focused on code. If there is no category below for your corner of Mozilla, add one!

Here is the template for adding project proposals. Feel free to add new proposal to existing general categories, or add new categories as appropriate.

2019 Proposed Project List

Title Details Skills Needed Reporter Mentor(s) Additional Comments
Improve Python in the browser The pyodide project allows the Python scientific stack to run in the browser by compiling it to WebAssembly. Help make stuff run better and faster there. Python and JavaScript. Can learn the WebAssembly parts as you go. Michael Droettboom Michael Droettboom There are a number of specific projects we have in mind, but are open to other proposals that are within scope and seem practical within the timeframe. (1) Implement matplotlib's display on top of Web APIs (HTML5 Canvas, etc.) This would allow us to avoid shipping a whole separate rendering engine to the browser. (2) Build WebAssembly support into the conda packaging system to make it easier to distribute new compiled packages for Pyodide. (3) Make multi-dimensional arrays sharable between Python and Javascript. See Pyodide's list of issues for additional ideas. About the mentor: Michael Droettboom is a Staff Data Engineer at Mozilla, and a former lead developer of matplotlib with years of experience building the Python scientific ecosystem.
ReSpec ReSpec is a JS-based tool used to write W3C Specifications (Web Standards) that is widely used by the Web Standards Community. With 6+ 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. JavaScript, HTML, CSS. Marcos Caceres 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 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.
Ship Public Suffix List (PSL) over Remote Settings The list of public domain suffixes (DNS) is shipped with every release, with no way to update it on long term releases for example.

Now that Remote Settings has become a solid solution to ship data, we could use it to publish updates of the PSL. The task consist in migrating the current client code to read from Remote Settings instead of a file, and implement a scheduled job (like Python) to push updates automatically (most likely compiled as a DAFSA file)

JavaScript and some Python basics Mathieu Leplatre Mathieu Leplatre https://bugzilla.mozilla.org/show_bug.cgi?id=1083971
Support AdBlock Plus-style ad blocklists As of today, Gecko and GeckoView support ad blocking using a custom JSON format for blocklists and entitylists. The current blocklist format lacks regex pattern matching and the ability to block only images, scripts, or other specific resources from a page. The Fenix project would like first party support for the industry-standard blocklists used by other ad blockers, so we can benefit from the work of community-updated blocklists with our own custom ad blocking solution. C++? Colin Lee Seeking a mentor https://bugzilla.mozilla.org/show_bug.cgi?id=1519197
bugbug A platform for machine learning projects applied on Bugzilla, VCS and other software development data. Python Marco Castelluccio Marco Castelluccio The project will involve one or more of 1) building additional classifiers (e.g., to detect bugs with no steps to reproduce, or to suggest a developer to assign to a bug), 2) improving accuracy/precision/recall of the existing classifiers by implementing other machine learning techniques (e.g., by using convolutional neural networks or recurrent neural networks), 3) improving accuracy/precision/recall by implementing additional feature extraction steps.
..your next idea here!