Community:SummerOfCode19:Brainstorming: Difference between revisions

→‎2019 Proposed Project List: Update mentors for Matrix Chat in Thunderbird
(Add WASM sandboxing project)
(→‎2019 Proposed Project List: Update mentors for Matrix Chat in Thunderbird)
Tags: Mobile edit Mobile web edit
 
(22 intermediate revisions by 12 users not shown)
Line 23: Line 23:
[[SummerOfCode|Here are the ideas lists from previous years]].
[[SummerOfCode|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!
Proposals can be in almost any part of the Mozilla project, though they do need to be mostly focused on code.


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


== 2019 Proposed Project List ==
== 2019 Proposed Project List ==
Line 72: Line 72:


iii) improving accuracy/precision/recall by implementing additional feature extraction steps or making the already existing ones better.
iii) improving accuracy/precision/recall by implementing additional feature extraction steps or making the already existing ones better.
|-
| Make the Firefox WebAuthn Soft Token a Real Thing
| The Web Authentication Soft Token provides second-factor login support without needing a Security Key dongle. It would be very usable if the Soft Token were a) synchronized across an account using Sync, b) could be controlled via a Web Extension, and perhaps c) had some UI. If these things were true, most people could get quality authentication support without buying another device.
| C++, Javascript, Basic cryptography
| [https://mozillians.org/en-US/u/jcjones/ J.C. Jones]
| [https://mozillians.org/en-US/u/jcjones/ J.C. Jones]
| https://wiki.mozilla.org/Security/CryptoEngineering#Web_Authentication
|-
|-
| WebSocket Monitor
| WebSocket Monitor
Line 109: Line 102:
| [https://github.com/taskcluster/taskcluster Taskcluster] currently supports reporting results to the [https://github.com/taskcluster/taskcluster/pull/129/checks?check_run_id=54327344 GitHub Checks API], but only reports success or failure.  Let's add support for showing [https://developer.github.com/v3/checks/runs/ annotations] - snippets of log output, more detailed results, images, and so on.  We can even add support for additional "actions" on the task, such as re-running with debugging enabled.
| [https://github.com/taskcluster/taskcluster Taskcluster] currently supports reporting results to the [https://github.com/taskcluster/taskcluster/pull/129/checks?check_run_id=54327344 GitHub Checks API], but only reports success or failure.  Let's add support for showing [https://developer.github.com/v3/checks/runs/ annotations] - snippets of log output, more detailed results, images, and so on.  We can even add support for additional "actions" on the task, such as re-running with debugging enabled.
| Server-side JS
| Server-side JS
| [https://mozillians.org/en-US/u/djmitche/ Dustin Mitchell]  
| [https://mozillians.org/en-US/u/djmitche/ :dustin]  
| [https://mozillians.org/en-US/u/ireneOwl/ Irene Storozhko], [https://mozillians.org/en-US/u/djmitche/ Dustin Mitchell]  
| [https://mozillians.org/en-US/u/ireneOwl/ :owlish], [https://mozillians.org/en-US/u/djmitche/ :dustin]  
|  
|  
|-
|-
Line 116: Line 109:
| [https://github.com/taskcluster/taskcluster Taskcluster] currently supports logging in with Auth0, the Mozilla login system.  We would like to make it useful outside of Mozilla, and most other users do their development on GitHub, making GitHub logins a good solution.  This project would involve adding support for signing in with GitHub, as well as the more challenging task of assigning appropriate permissions to users based on the setup of their GitHub account.
| [https://github.com/taskcluster/taskcluster Taskcluster] currently supports logging in with Auth0, the Mozilla login system.  We would like to make it useful outside of Mozilla, and most other users do their development on GitHub, making GitHub logins a good solution.  This project would involve adding support for signing in with GitHub, as well as the more challenging task of assigning appropriate permissions to users based on the setup of their GitHub account.
| Server-side JS
| Server-side JS
| [https://mozillians.org/en-US/u/djmitche/ Dustin Mitchell]  
| [https://mozillians.org/en-US/u/djmitche/ :dustin]  
| [https://mozillians.org/en-US/u/ireneOwl/ Irene Storozhko], [https://mozillians.org/en-US/u/djmitche/ Dustin Mitchell]  
| [https://mozillians.org/en-US/u/ireneOwl/ :owlish], [https://mozillians.org/en-US/u/djmitche/ :dustin]  
|  
|  
|-
|-
Line 166: Line 159:
|-
|-
| An Android file downloader designed for Emerging Markets
| An Android file downloader designed for Emerging Markets
| A lesson learned thanks to our UX team is in Emerging Markets the data plan is dynamic: in late nights we have the most affordable bandwidth. Here's the question: Why not schedule big files and videos and have them downloaded when you're sleeping? The mvp would be an App which we can send urls to. After receiving these urls the App either downloads it directly or defer it to late night. As there are more and more background restrictions enforced on new Android APIs, this should be a fun and challenging journey. A stretch goal would be to embed this downloader in our browser for Emerging Markets, Firefox Lite. We've also prepared an even more ambitious mission for those who want tough challenges: Design the app and make it dynamic deliverable. With aabs we can satisfy both light and heavy users by defaulting Android Download Manager as the download tool and prepare the aforementioned downloader dynamically so that Firefox Lite itself is still minimized in terms of disk size. Nevin and mTwTm are Android developers who can provide assistance to Android App design.
| A lesson learned thanks to our UX team is in Emerging Markets the data plan is dynamic: in late nights we have the most affordable bandwidth. Here's the question: Why not schedule big files and videos and have them downloaded when you're sleeping? The mvp would be an App which we can send urls to. After receiving these urls the App either downloads it directly or defer it to late night. As there are more and more background restrictions enforced on new Android APIs, this should be a fun and challenging journey.
 
A stretch goal would be to embed this downloader in our browser for Emerging Markets, Firefox Lite. Firefox Lite is not satisfied with the current Android Download Manager in several ways: We'd like to give users the ability to pause/resume a download, we'd like to download a file directly to SDcard (opposed to download it to the main storage and move it into SDcard).
 
We've also prepared an even more ambitious mission for those who want tough challenges: Design the app and make it dynamic deliverable. With aabs we can satisfy both light and heavy users by defaulting Android Download Manager as the download tool and prepare the aforementioned downloader dynamically so that Firefox Lite itself is still minimized in terms of disk size. Nevin and mTwTm are Android developers who can provide assistance to Android App design.
| Android Java/Kotlin
| Android Java/Kotlin
| [https://github.com/mTwTm/ mTwTm(Teng-pao Yu)]
| [https://github.com/mTwTm/ mTwTm(Teng-pao Yu)]
| [https://github.com/mTwTm/ mTwTm(Teng-pao Yu)], [https://github.com/cnevinc/ Nevin Chen]
| [https://github.com/mTwTm/ mTwTm(Teng-pao Yu)] (mTwTm@mozilla.com), [https://github.com/cnevinc/ Nevin Chen] (nevin@mozilla.com)
|  
|  
|-
|-
Line 191: Line 188:
| [https://mozillians.org/en-US/u/froydnj/ Nathan Froyd]
| [https://mozillians.org/en-US/u/froydnj/ Nathan Froyd]
|  
|  
|-
| Test automation our linting tools
| We have a several linting tools running on Firefox code base, they currently don't have a test suite.
The goal of this project is to make sure that tests are executed. We currently have a similar [https://bugzilla.mozilla.org/show_bug.cgi?id=1432410 test automation for static analyzer jobs]. The idea would be to extend (or replicate) this model for [https://searchfox.org/mozilla-central/source/tools/lint/ ./mach lint] (which run flake8, eslint, etc) and [https://searchfox.org/mozilla-central/source/python/mozbuild/mozbuild/mach_commands.py#2327 ./mach clang-format]
The bug is https://bugzilla.mozilla.org/show_bug.cgi?id=1448008
| Python
| [https://github.com/sylvestre Sylvestre] (s@mozilla.com)
| [https://github.com/abpostelnicu Andi Postelnicu] (andi@mozilla.com)
|
|-
| Firefox Account Security Dashboard
| Firefox Account administrators and users need an easily digestible view into the important events that have occurred on an account, providing a way to audit for irregularities.
| JavaScript, HTML, CSS, MySQL
| [https://mozillians.org/u/vbudhram/ Vijay Budhram], [https://mozillians.org/u/stomlinson/ Shane Tomlinson]
| [https://mozillians.org/u/vbudhram/ Vijay Budhram], [https://mozillians.org/u/stomlinson/ Shane Tomlinson]
| The Firefox Account platform tracks security information about an account, but does not surface this information in an easily consumable format. Users and administrators should be able to see a timeline of an account’s security related events, such as connecting devices, signing into services, changing or resetting passwords, and adding or removing 2FA. Each event in the timeline should include a timestamp, IP address, and location information when they occurred.
This project would entail updating our security event API to ensure we track and expose the required data. The first phase is to build a script that consumes the API and pretty prints the timeline. The second phase is to provide a web interface for the security timeline.
|-
| Improving FastParquet
| FastParquet is a Python library that needs improvement to how it writes the parquet file format
| Python
| [https://mozillians.org/en-US/u/ekyle/ Kyle Lahnakoski]
| [https://mozillians.org/en-US/u/ekyle/ Kyle Lahnakoski]
| [https://github.com/klahnakoski/mo-parquet/blob/dev/docs/StudentProject%202019.md Read more]
|-
| Faster Pyparsing
| Pyparsing is a Python library that provides a DSL for language specification. It could use some optimization.
| Python
| [https://mozillians.org/en-US/u/ekyle/ Kyle Lahnakoski]
| [https://mozillians.org/en-US/u/ekyle/ Kyle Lahnakoski]
| [https://github.com/mozilla/moz-sql-parser/blob/dev/docs/Student%20Project%202019.md Read more]
|-
| <s>Regression Detection</s>
| <s>Use machine learning to guide statistical model selection, then use the model(s) to detect regressions in future data. </s>
| <s>Machine Learning, Statistics, Python</s>
| <s>[https://mozillians.org/en-US/u/ekyle/ Kyle Lahnakoski]</s>
| <s>[https://mozillians.org/en-US/u/ekyle/ Kyle Lahnakoski]</s>
| <s>[https://github.com/mozilla/ActiveData/blob/dev/docs/Student%20Project%20190121.md Read more]</s>
|-
| <s>Bugzilla Kanban Board</s>
| <s>Show bugs like [https://en.wikipedia.org/wiki/Post-it_Note post-it notes] on a [https://en.wikipedia.org/wiki/Whiteboard whiteboard]. Much like a [https://en.wikipedia.org/wiki/Kanban_board Kanban board]</s>
| <s>JSX/React</s>
| <s>[https://mozillians.org/en-US/u/ekyle/ Kyle Lahnakoski]</s>
| <s>[https://mozillians.org/en-US/u/ekyle/ Kyle Lahnakoski]</s>
| <s>[https://github.com/mozilla/bugzilla-tiles Read more]</s>
|-
| <s>More ActiveData Recipes</s>
| <s>Build out the user interface of the [https://github.com/mozilla/active-data-recipes active-data-recipes] project so that making new recipes is even easier</s>
| <s>JSX/React some Python</s>
| <s>[https://mozillians.org/en-US/u/ekyle/ Kyle Lahnakoski]</s>
| <s>[https://mozillians.org/en-US/u/ekyle/ Kyle Lahnakoski]</s>
| <s>[https://github.com/mozilla/active-data-recipes/pull/112/files#diff-0f126940e57c54541662345b499622f1 PR with proposal] or [https://github.com/mozilla/active-data-recipes/tree/master/docs/Student%20Project%20190130.md Read more]</s>
|-
| TUID service improvments
| The TUID service handles millions of requests daily from hundreds of machines. It must go faster, and be stabilized.
| Python/Flask/Sqlite
| [https://mozillians.org/en-US/u/ekyle/ Kyle Lahnakoski]
| [mailto:gmierzwinski@mozilla.com Gregory Mierzwinski]
| [https://github.com/mozilla/TUID/blob/dev/docs/Student%20Project%20190204.md Read more]
|-
| Firefox Source Docs Infrastructure
| Improve the infrastructure underpinning Firefox's [https://firefox-source-docs.mozilla.org/ in-tree documentation].
| Python, Sphinx, Rst
| [https://mozillians.org/en-US/u/ahal/ Andrew Halberstadt]
| [https://mozillians.org/en-US/u/ahal/ Andrew Halberstadt]
| Writing docs for Firefox's in-tree [https://firefox-source-docs.mozilla.org/ source docs] is time consuming and difficult and the end result is difficult to navigate.
With [https://developer.mozilla.org/en-US/ MDN] de-prioritizing build and workflow docs, we need a suitable replacement for all of Firefox's contribution and workflow documentation. The great advantage of documentation living in-tree, is that it can be updated along with the source. Unfortunately the current system to build and generate docs is difficult to write for, slow to build and generates poorly organized documentation. These factors discourage developers from creating or updating docs.
This project aims to improve the documentation experience via static analysis tools (e.g hint when docs might need to be updated), enabling linters, faster build times, additional language support and well structured hierarchies. Help make documentation a bigger part of our developer's day to day workflow.
|-
| Improve FixMe
| [http://fixme.ossn.club/ Improve FixMe], a tool for surfacing meaningful contribution opportunities to new contributors. This project started two years ago as a GSoC project and we are looking into adding more capabilities. The tool currently fetches issues only from GitHub and relays a lot into the tags project maintainers use in their repositories. We want to add gitlab support and come up with a more sophisticated way of identifying technologies and skills needed for new contributors
| - Backend: Go, Buffalo, Postgresql. - Front-end: React, typescript, Redux
| [https://mozillians.org/en-US/u/bacharakis/ Christos Bacharakis]
| [https://mozillians.org/en-US/u/bacharakis/ Christos Bacharakis]
| [https://github.com/ossn/fixme Link to] front-end source code, [https://github.com/ossn/fixme_backend link to backend] source code. [http://fixme.ossn.club/ FixMe tool in action]
|-
| Rust AV1 Encoder (rav1e) Project
| Mozilla's rav1e Project [http://github.com/xiph/rav1e] is a clean room AV1 encoder implementation written in Rust.  The goal is to create a production ready AV1 encoder for use with common internet use cases: Video-On-Demand (high latency), Live Streaming (some latency), Interactive Video Conferencing (low latency).
|
* C/C++
* Rust
* SIMD
| [mailto:negge@mozilla.com Nathan Egge]
| [mailto:negge@mozilla.com Nathan Egge]
| We are looking for GSoC students to help us research and implement advanced encoding algorithms in rav1e.  Areas of interest are:
* Scene detection
* Frame type assignment and ordering
* Encoder complexity analysis and design of speed levels
* Rate-distortion optimization algorithms
* Parallelized encoding using Rust fearless concurrency
* Chunked encoding
|-
| Evangelizing best practices for coding the web
| There’s a team inside Developer Outreach focused on making useful projects for today’s web developers and designers. We are launching a series of small gifts to the world: micro-sites, demos, videos, courses, articles, tools, etc — that teach topics like CSS, accessibility, layout design, understanding the web stack, etc. This project would be a chance for you to join us, and help with an ongoing project, or make one of your own. We are looking for someone with the empathy of a teacher, who studies what other people need, and does their best to provide that. Perhaps you will bring the perspective of a CodeNewbie, a fresh generation or community to our team.
|
* HTML, CSS.
* Maybe ARIA or JavaScript.
* Experience with creating content to teach people stuff (writing, code demos, video, etc).
* Knowing how to build and launch a website.
| [https://mozillians.org/en-US/u/jensimmons/ Jen Simmons]
| [https://mozillians.org/en-US/u/jensimmons/ Jen Simmons]
| We don’t expect you to be an expert. We want someone who is passionate about web design / development, and is passionate about teaching others. Someone who cares about strengthening the technical health of the web by evangelizing best practices. Someone who understands the pain of trying to learn, and wants to ease that pain for others.
Also, this project is about knowing how to use CSS, HTML, etc, and wanting to teach web developers how to build websites. It’s not for someone with a more traditional Computer Science background who hates CSS and wishes the web would transform into a JavaScript application runtime environment. We’ll be creating educational projects, using code to do so,  not engineering Mozilla software. We are especially interested in someone who loves CSS and has done a lot of interesting experiments with it, or has the capacity to learn more about CSS quickly.
|-
| Firefox Sync for Chrome
| The idea is to build a platform-agnostic library in JS that will work as a Sync client. Then it will be used to make a Chrome extension that allows using Firefox Sync in Chrome. The goal is to make Firefox Sync the default way to synchronize browsers stuff.
| Javascript
| [mailto:driva95@protonmail.com Davide Riva]
| Mentor to be found
|-
| Matrix Chat in Thunderbird
| [http://matrix.org/ Matrix] is an open, decentralized protocol for instant messaging (and more!) It has bridges to many other networks and protocol, e.g. IRC, Slack, and more. Initial support for Matrix was added in {{bug|1199855}}, but there's a lot to do still:
* Update and re-integrate the Matrix SDK
* Support more features from the Matrix SDK (room topics, typing notifications, read receipts, etc.)
* Support one-on-one conversations.
* Add tests specific to Matrix.
* Improve the Matrix JS-SDK that Instantbird and Thunderbird depend on.
* Improving and expanding shared code and APIs used by all JavaScript protocol plugins (IRC, XMPP, Yahoo and Twitter).
* Improving documentation of the process for adding a protocol to Instantbird/Thunderbird.
* Using the Matrix protocol on a day-to-day basis to dog-food the code and see what else is missing.
| JavaScript, XPCOM, experience using HTTP APIs
| [mailto:ryan@thunderbird.net ryanleesipes]
| [mailto:clokep@gmail.com clokep], [mailto:a.ahmed1026@gmail.com Abdelrhman Ahmed]
| We don't expect you to know how to deal with Thunderbird's XPCOM. We're looking for someone who is interested in Chat and will help you get familiar with hacking on Thunderbird and can connect you with developers on the Matrix project as well.
|-
|-
| ..your next idea here!
| ..your next idea here!
|
| some details
|
| skills/language
|
| reporter
|
| mentor
|
| comments
|}
61

edits