Changes

Jump to: navigation, search

Outreachy

8,838 bytes added, 22:02, 28 February 2017
Outreachy Program Cohort: Round 14 (May 30 -Aug 30, 2017): added round 14 project descriptions
====Rust: Web Assembly showcase====
'''Mentor:''' [https://mozillians.org/en-US/u/brson/ Brian Anderson]<br />
'''IRC:''' brson
Interns will not be expected to fix bugs the Rust compiler itself on
their own, though they are certainly welcome to - their task is to
write an interesting web applications.
====Unsafe Code Linting Tool for Rust====
'''Mentor:''' [https://mozillians.org/en-US/u/nmatsakis/ Nicholas Matsakis] <br />
'''IRC:''' nmatsakis
 
'''Project Description''':
Rust is a new systems programming language that is fast and memory safe. It is growing quickly, is pleasant to contribute to, and is in need of contributions in many areas!
 
A crucial part of Rust's design is the ability for authors to use ""unsafe code"" to build up new abstractions and libraries. Unsafe code allows you to locally suspend some of the Rust type system rules, effectively giving you a lower-level language closer to C. The idea is that these lower-level details are encapsulated within a library that exports a safe interface. For example, the Rayon library exposes very convenient, simple primitives for writing threaded programs. If you stick to those primitives, your program will be free of data-races and other nasty parallel programming bugs. But internally the Rayon library makes use of traditional C-style threads to implement this abstraction.
 
At present, Rust doesn't give you very fine-grained tools for reasoning about unsafe code. Once you start writing an unsafely implemented library, it's entirely up to you to track whether a given pointer is safe to use and so forth. Just as when writing C code, this can easily go awry, particularly as code is updated. It could easily happen, for example, that an array index i is known to be in-bounds, and hence an unsafe array access (no bounds check) like vec[i] is safe. But as the program is updated, perhaps that assumption no longer holds -- now the array access could be out of bounds, leading to memory safety errors.
 
The goal with this internship is to develop a lint tool that would integrate with the rustc front-end to help improve the experience of writing unsafe code. This tool would allow unsafe code authors to write out and check more of their reasoning automatically: for example, they might document that why they believe that the variable i is in bounds (e.g., because it is compared against the length of the array, and the variable vec is not updated in the meantime). Then the tool can help check whether any of these assumptions stops being true (e.g., perhaps vec is changed to point to a different vector).
 
The project will involve both design and implementation. There is a general plan for how the linting tool should work, but part of the fun will be iterating on the tool once we try to put it to use and see how well it works. If all goes to plan, we can release the tool to the public.
 
Good candidates will have moderate programming experience in some language; experience with C, C++, or Rust specifically is not required. This work will primarily involve building a lint, which interfaces with the front-end of the Rust compiler, but will also involve learning a bit about the Rayon codebase (or some other suitable example of an unsafely implemented library).
 
====Push Notifications for Signin Confirmation====
'''Mentor:''' [Sean McArthur https://mozillians.org/en-US/u/seanmonstar/] <br />
'''IRC:''' seanmonstar
 
'''Project Description:'''
You will be implementing a form of 2FA in Firefox Accounts. Once completed, if a user has multiple devices connected to their Firefox Account, they will be able to receive a push notification to one of their other devices asking for confirmation when trying to log in to their Firefox Account.
 
Skills required: Git, JavaScript (node and browser)
 
As part of your application please try to fix a ‘good first bug’ at: waffle.io/mozilla/fxa?label=good-first-bug
 
To get started with Firefox Accounts servers please visit: github.com/mozilla/fxa-local-dev
 
To learn more about Firefox Accounts project check out: fxa.readthedocs.io/en/latest/
 
====bugzilla.mozilla.org improvements====
'''Mentor:''' [https://mozillians.org/en-US/u/emceeaich/ Emma Humphries] <br />
'''IRC:''' emceeaich
 
'''Project Description:'''
1) [BMO RESKIN] Mozilla recently rebranded, and BMO doesn't match this re-branding at all. It would be nice to reskin it to look like the central Mozilla property it is.
 
Skills: CSS, HTML Templates, Perl
 
2) [BZ KANBAN] There is a kanban board that works using bugzilla APIs: https://github.com/leif81/bzkanban it would be very nice for (some teams, anyway) if this was integrated into BMO.
 
Skills: JavaScript, CSS, HTML, Perl
 
3) [METRICS GRAPHICS @ BMO] We have a very old reporting infrastructure that generates reports server-side and looks ugly. Meanwhile, another part of Mozilla has created the metrics graphics library. At minimum, replacing our existing reporting system with this would look spiffy.
 
====Site permission management UI====
'''Mentor:''' [https://mozillians.org/en-US/u/johannh/ Johann Hofmann] <br />
'''IRC:''' johannh
 
'''Project Description:'''
We would like to add a section to Firefox preferences that allows users to manage their saved site permissions (Geolocation, Camera, Microphone, ...). Our UX team is currently designing a nice-looking UI for this. Features include viewing and removing permissions and globally disabling access to a certain permission for all sites. Your task would be to implement this UI inside the Firefox preferences using JavaScript, HTML and CSS.
 
You might enjoy this project if you like working on user interfaces, care about privacy and security and want to have a sizeable impact on the privacy and security of millions of Firefox users.
 
====Implement UI Automated Tests for Treeherder using Selenium and Jasmine====
'''Mentor:''' [https://mozillians.org/en-US/u/camd/ Cameron Dawson] <br />
'''IRC:''' camd
 
'''Project Description:'''
Treeherder is a mission-critical product used by our core developers as well as our team of Sheriffs that help protect the quality of our code base. We have a very small number of automated tests for the UI. The rest must be done manually before each push to production.
 
This project would involve writing User Interface tests with Jasmine and Karma as well as Selenium. They would be executed automatically in Travis CI on each push to the master branch of the code-base and provide quick results on whether it is safe to push the new version of Treeherder to production.
 
====DevRel Website: Technical Content Creation/Management====
'''Mentor:''' [https://mozillians.org/en-US/u/havi/ Havi Hoffman] <br />
'''IRC:''' havi
 
'''Project Description:'''
"This internship will be focused on content migration, content management, and multimedia content creation for a large complex website built in Drupal 8.
 
The Developer Relations team is building a site that speaks to developers, designers, and all those who build the Web. This project serves many goals: to update and modernize our blog, Mozilla Hacks (hacks.mozilla.org), and our Mozhacks YouTube channel; to aggregate and share valuable content that is now spread across a host of websites and Mozilla wikis; to raise awareness of the DevRel team and all the Mozillians who do outreach and advocacy with people around the world who build the web; and to make it easy for a visitor to discover all the ways Mozilla interacts with developers, designers, technologists.
 
You will help build out and maintain the new website over the course of our launch. Deliverables will be very tactical with many hours focused on manual migration of content. In addition, there will be great opportunities to participate in content and asset creation for the new site.
 
The DevRel website showcases some of the key technologies being built by the Emerging Technologies group and evangelized by the DevRel team. The site will support many types of current and evergreen content: articles, videos, presentations, demos, events, and more, as well as profile pages for staff and contributors.
 
We think it's a great opportunity for someone seeking 'real-world' experience in technical communications and media creation for the developer community. You will gain in-depth, hands-on content management experience. Develop and amplify your skills as an editor, technical communicator, and media creator, while working with our diverse geo-distributed team of developer and designer advocates.
 
You’re a strong fit for this role if you have basic experience and familiarity with online publishing in a variety of media formats. We don’t need you to be a coder, but working knowledge of HTML, and familiarity with WordPress, Drupal, or other content management systems and media creation tools are desirable. Please be detail-oriented, comfortable in written and spoken English. As a site editor/content manager, we’ll ask you to help others set up accounts and load their content.
 
Someone with skills to create demos in HTML, CSS, or to make videos is a plus. Javascript or Drupal site building skills an additional plus.
==Outreachy Program Cohort: Round 13 (Dec 2016-March 2017)==
Confirm
514
edits

Navigation menu