Changes

Jump to: navigation, search

Outreachy

14,488 bytes removed, 01:58, 17 November 2016
Outreachy Program Cohort: Round 12 (May-August 2016): moved section to past cohorts
Treeherder is growing. More people are using it every day. And the amount of data it displays is also growing. So we need to expand its ability to scale to more and more data. Treeherder is primarily written in AngularJS on the front-end. However, we display thousands of small objects on the main landing page. Using Angular’s ng-repeat for this proved unacceptably slow. It was converted to using JQuery and raw JavaScript DOM manipulation which has been acceptably fast for a while, but is harder to maintain. ReactJS has been used in other parts of the product to significantly improve performance and is easier to read and edit. The participant will convert the existing job matrix rendering to use ReactJS.
 
==Outreachy Program Cohort: Round 12 (May-August 2016)==
===Enhancements to Python testing tool plugin for generation of HTML reports===
* Mentor: [https://mozillians.org/en-US/u/davehunt/ Dave Hunt]
* Participant: [https://mozillians.org/en-US/u/anaribeiro/ Ana Ribero]
* [http://outreachy.anaplusplus.com/ Participant Blog]
 
Inclusive culture is essential to building all kinds of diversity and making diverse people feel welcome in open source projects. We have many groups working on this topic all around Mozilla and other open source communities. This Outreachy participant will engage in community research, documenting best practices and case studies in the development of open inclusive culture.
 
The participant will be responsible for developing enhancements to pytest-html - a plugin based on the popular Python testing tool pytest, which generates a HTML report based on test results.
 
The desired enhancements include: gracefully degrading when JavaScript is not available; saving CSS, images, and other resources as additional files rather than embedding in a single file; grouping results by package/module/class; and including test docstrings in the report.
 
Any new enhancements to the plugin must also be accompanied with tests, which will ensure that these new features work in all expected environments, and reduce the chances of regression.
 
===Make Firefox look great on desktop!===
*Mentor: [https://mozillians.org/en-US/u/Gijs/ Gijs Kruitbosch]
*Participant: [https://mozillians.org/en-US/u/Rakhi/ Rakhi Sharma]
* [http://rakhish.wordpress.com/ Participant Blog]
 
Firefox for desktop is used by hundreds of millions of people every day. We control what it looks like using CSS, XUL (a markup language that's a bit like HTML), and JavaScript. There's also a small amount of C++ here and there.
 
For this project, the participant will help to address a number of styling problems where Firefox does not currently look its best.
 
===Project SmartHome prototyping===
* Mentors: [https://mozillians.org/en-US/u/kglazko/ Kate Glazko] and [https://mozillians.org/en-US/u/marcia/ Marcia Knous]
* Participant: [https://mozillians.org/en-US/u/Mermi/ Manel Rahem]
* Participant Blog: https://mermi.github.io
 
The participant will be involved with Project SmartHome, working on assisting active and ongoing prototyping, integrating logging and metrics into SmartHome work with the collaboration of the metrics team, and helping with user research testing analysis and results.
 
===Webcompat.com Web Application Engineer===
*Mentor: [https://mozillians.org/en-US/u/miketaylr/ Mike Taylor]
*Participant: [https://mozillians.org/en-US/u/venkid/ Deepthi Venkitaramanan]
*[http://venkid.com/portfolio.html#Outreachy Participant Blog]
 
Mozilla's Web Compatibility team builds and maintains a web application called webcompat.com that allows individuals to easily report site compatibility issues - and to allow us to better understand the larger picture of compatibility issues affecting Firefox users on the web.
 
In this Outreachy project, the participant will contribute to one or more of the following projects to help us succeed from a few different angles.
* Design and implement a system that allows site owners and developers to register for notifications (i.e., RSS, E-mail) for issues related to a given domain
* Design and build a user interface that allows bug reporters to identify possible duplicate problems
* Use cutting edge features like Service Workers to enable offline and sync capabilities between the client and server
* Migrate webcompat.com front-end to use ES6 modules (likely powered by something like Babel)
 
===Convert Mozmill tests to Marionette===
*Mentor: John Dorlus <jdorlus@mozilla.com>, Silne30 on IRC
*Participant: [https://mozillians.org/en-US/u/bennyjr35/ Benjamin "Benny" Forehand, Jr.]
*Participant Blog: https://www.bennyjr.xyz/blog and https://benjaminfjr.blogspot.com/
 
This project involves reading and writing code in both Python and Javascript. Mozmill is one of Mozilla’s older automated testing frameworks; tests written in Mozmill are being ported to Marionette, which is an implementation of the Webdriver standard, capable of interacting with both web content and browser UI.
Applicants should have a strong knowledge of Python and at least some exposure to Javascript. The starting point (and main focus) for this project will be the work outlined in Bug 1132680; there is other work in the same area that can be done if that bug gets finished early.
 
 
===Realtime Push Notifications for Kinto===
*Mentor: [https://mozillians.org/en-US/u/natim/ Remy Hubscher]
*Participant: [https://mozillians.org/en-US/u/ipsha21/ Ipsha Bhidonia]
*[https://ipsha218.wordpress.com/feed/ Participant Blog]
Kinto is the Mozilla storage solution to backup and sync Firefox Account Users data. It is currently used as a backend for Firefox OS applications and for Firefox and Fennec updates in the Go Faster projects.
https://kinto.readthedocs.org
 
Today a notification system allow us to notify Firefox and Fennec users for them to come and get updates.
 
The participant would extend the notification system to implement realtime updates between devices.
 
* On the server side we are using Pyramid and Python with a bit of AsyncIO
* On the client side this will involve JavaScript and Websocket management.
 
===Test-driven Refactoring of Marionette's Python Test Runner===
* Mentor: [https://mozillians.org/en-US/u/maja_zf/ Maja Frydrychowicz]
* Participant: [https://mozillians.org/en-US/u/vakila/ Anjana Vakil]
[https://developer.mozilla.org/en-US/docs/Mozilla/QA/Marionette Marionette's] Python Test Runner is slated to become the canonical harness for running most new automated tests for Firefox, but it needs to be lovingly cleaned up and stabilized first. We've already started this work and we're excited to have you help us continue.
 
We want it to be easy and safe for teams around Mozilla to customize the Test Runner for their needs, so we're writing a suite of tests for the Test Runner itself to prevent breaking any existing automation infrastructure -- i.e. we're testing the thing that runs Firefox tests. Part of your role will be to write more of these tests. While writing tests, you will naturally find areas in the Test Runner code that need to be improved or reorganized in order to be testable in the first place. This is what we mean by "test-driven refactoring". Other tasks might include:
* Making the test results more informative and easy to read on [https://treeherder.mozilla.org Treeherder's] log viewer.
* Making the tests more convenient to run locally with mach.
 
===Add robust AMI management to the TaskCluster AWS Provisioner===
* Mentor: [https://mozillians.org/en-US/u/dustin/ Dustin J. Mitchell]
TaskCluster (https://tools.taskcluster.net) is a distributed task execution system Mozilla uses to build, test, and release Firefox. The AWS provisioner is the component responsible for managing the AWS EC2 instances that execute tasks. The project is to improve its management of AMIs, making them easier to create, deploy, and clean up.
 
===Improving user experience of Firefox Accounts===
* Mentor: [https://mozillians.org/en-US/u/vladikoff/ Vlad Filippov] (vladikoff on IRC)
 
There are several pending initiatives that are focused on improving the user experience of Firefox Sync and [https://accounts.firefox.com Firefox Accounts]. As part of this Outreachy internship project you will be involved in improving user interaction, running experiments, and measuring success of certain features. Your engineering skills will assist in the following:
 
* Developing new application improvements to reduce the number of user errors on password reset, [https://github.com/mozilla/fxa/blob/rfeeley/eye-password-experiment/features/FxA-80-eye-password-experiment/README.md password change], and [https://github.com/mozilla/fxa/blob/feature-mailcheck-part-two/features/proposed/FxA-79-mailcheck-part-2/README.md sign up flows]. This will give you developer experience working with the Firefox Accounts UX team.
* Experimenting with [https://github.com/mozilla/fxa/blob/rfeeley/eye-password-experiment/features/FxA-80-eye-password-experiment/README.md “Show Password” UX]. Determining which design is more effective in terms of speed and popularity.
*Improving the verification rate and speed of new users signing up for Firefox Accounts.
 
===Content Process Management Tool===
* Mentor: [https://mozillians.org/en-US/u/mconley/ Mike Conley]
* Participant: [https://mozillians.org/en-US/u/Rutuja/ Rutuja Surve]
* [https://rutujasurveblog.wordpress.com/2016/05/17/outreachy-2016-my-first-post/ Participant Blog]
"With multi-process Firefox going out the door in the very near future, we're looking at scaling up and tuning the number of content processes that Firefox starts and uses.
 
Memory usage is something we want to keep an eye on while we do this, so this project is about building a Content Process Management tool that can track real-time memory usage across each process. We might increase the number of uses of the management tool over time, but we'll start with memory management.
 
===Taskcluster tools UI/UX improvements===
 
* Mentor: [https://mozillians.org/en-US/u/wcosta/ Wander Lairson Costa]
* Co-Mentor: [https://mozillians.org/en-US/u/dustin/ Dustin J. Mitchell]
* Participant: [https://mozillians.org/en-US/u/andreadelrio/ Andrea Del Rio Lazo]
 
[https://docs.taskcluster.net Taskcluster] is the new Mozilla CI that will in future be responsible to run every build and test for Firefox, Firefox TV, rust and other Mozilla projects. We are a small and passionate team engaged to make Taskcluster the best CI ever.
 
===Automation of Taskcluster Documentation===
* Mentor: [https://mozillians.org/en-US/u/jonasfj/ Jonas Finnemann Jensen] and [mailto:bstack@mozilla.com Brian Stack]
* Participant: [https://mozillians.org/en-US/u/kt/ Kristel Teng]
 
Our task execution platform TaskCluster consists of many small services.
We would like a system to which each component can upload its documentation in a reference format markdown for text, JSON for API references, etc. From the uploaded references we would then generate the entire documentation site.
 
By uploading documentation and reference files from the services, we can have it automatically update when we deploy new features.
Services already uploads some formal JSON references, but this needs more structure.
 
Technically speaking:
- A node.js module for uploading a directory of JSON files + a manifest
- A service generating a static documentation site from uploaded documentation.
Useful skills:
- node.js
- HTML/CSS/JS (react.js would be nice to have)
- Some graphical design skills
 
This is not a project about writing documentation, most of it already exists. It needs automatic deployment and structure.
 
===Fixing some papercuts in the Firefox desktop user interface===
* Mentor: [https://mozillians.org/en-US/u/jaws/ Jared Wein]
* Participant: [https://mozillians.org/en-US/u/kbroida/ Katie Broida]
* [http://blog.katiebroida.com/ Participant Blog]
Firefox for desktop is used by hundreds of millions of people every day. We control how it works and what it looks like using CSS, XUL (a markup language that's a bit like HTML), and JavaScript. There's also a small amount of C++ here and there.
 
Some of the work will cover:
* Improving entering and exiting of Reader Mode
* Cleaning up the styling of our getting-started tour
* Improving shadows of the dropdowns for the URL and search box
* Increasing legibility of the menubar on Windows 8
* Researching and improving the Windows 10 Start Menu tile for Firefox
* Showing the Windows 10 accent color in the Firefox title bar
 
===Web Platform Test Crime Scene Investigation===
*Mentor: [https://mozillians.org/en-US/u/ehsan/ Ehsan Akhgari]
*Participant: [https://mozillians.org/en-US/u/deckycoss/ Decky Coss]
*Participant Blogs: http://cosstropolis.com/blog and http://cosstropolis.com/blog/feed.xml
 
"We run a lot of automated tests against each revision to Firefox’s code, and we verify that code changes do not cause tests to stop passing. One group of tests, called Web Platform Tests, is shared among all major web browsers, and we have only begun running them recently. As a result, we imported thousands of tests and marked some of them as currently failing, and they have languished in that state. Some of these failures are caused by Firefox not correctly implementing an edge case, while others may be very important problems - as things stand, it's hard to figure out which ones are which. We need your help cleaning up this mess!
 
===Prototype new Firefox features with the Test Pilot team===
* Mentors: [https://mozillians.org/en-US/u/6a68/ Jared Hirsch] (_6a68 on IRC) and [https://mozillians.org/en-US/u/djustice/ Dave Justice] (JSON_voorhees on IRC)
* Participant: [https://mozillians.org/en-US/u/kaganjd/ Jen Kagan]
* Participant blog
 
The Mozilla Test Pilot team is seeking someone to join a small, enthusiastic team focused around rapidly testing new features in Firefox. The team's process is built around getting feedback frequently and directly from an active user base which allows rapid iteration of the feature design.
 
In this program, you will participate in a well-documented four step process:
* Lo-Fi Validation: Sketches, ideation, paper prototypes, and user research.
* Prelaunch: Define and build a minimum viable product, establish your testing protocols, and validate the research.
* Active Testing: Launch and test your prototype, collect metrics and feedback, evolve and re-test.
* Sunsetting: Analyze the tests and determine release platforms.
 
As this program is about rapidly evaluating potential new features, the specifics of what the participant will be developing this summer haven't been settled yet--but ideas are floating around security, privacy, tracking protection, and file transfer. Below are some examples of what the team is currently prototyping as of February 2016:
 
* Universal Search: adding recommendations from sources around the internet directly into the Awesome Bar.
* Tab Center: rethinking tab management by moving tabs to the side of the browser and making them easier to search.
* Better 404s: Using the Internet Archive's Wayback Machine to replace 404 pages with an older version of the page.
* Page Shot: Enabling smarter sharing of screenshots by copying DOM content as well.
= For Future Applicants =
Confirm
514
edits

Navigation menu