I am a dual degree M.Sc.(Hons. ) Mathematics and B.E.(Hons.) Computer Science undergraduate at Birla Institute of Technology and Science (BITS) Pilani K.K. Birla Goa Campus based in Goa, India. I shall be working on Mozilla’s ‘Content Process Management Tool’ project this summer along with my mentor Mike Conley. This is one of the fifteen projects Mozilla is floating for this round of Outreachy (Open Source Program for Women). I shall be writing a series of blog posts on a regular basis on my work on this project.
In my very first post, I would like to share my experience while applying for Outreachy. These internships were inspired in many ways by Google Summer of Code and by how few women applied for it in the past, given the low number of women participating in the FOSS development. These internships were started to improve and encourage women’s participation in such projects. I applied for the organization ‘Mozilla’.
The Mozillian community is extremely supportive and welcoming towards new contributors.I started working on my initial contribution, which was a UI mock-up wireframe for the tool along with two memory-related bug fixes.
The project is about building a Content Process Management tool that can track real-time memory usage across each process, focussing mainly on memory management. The broad aim of this is to help scale up and tune the number of content processes that Firefox starts and uses, keeping memory in mind. Once the basic version of this management tool is ready, we can further increase the number of uses of this tool over time.
After many constructive reviews and suggestions from my mentor, here’s the prototype of the tool that I came up with:
Given full control of the Firefox UI, this is how the tool would look like on opening it from the browser. Since it majorly focuses on Memory (RSS and USS) measurements as the project mainly aims at memory management, there is a mechanism of linking it to about:memory available as well. It gives detailed statistics of Process-Id, RSS, USS, Peak Memory, Virtual Memory usage and Page Faults per tab. Physical, free, cached and swapped memory statistics are also available. The user can sort these statistics and even check for software incompatibilities with the browser. There is also a graphical view of these statistics available, that gives the user a very clear picture.
I began my work a couple of weeks before the application deadline and continued working on it after that as well. I got to learn a lot from the entire process, right from setting up the build environment of Firefox using mercurial, reading up exhaustively on Task Managers and how they work, understanding the about:memory and nsIMemoryInterfaces code from the code base to coming up with a patch (UI wireframe mock-up, link attached below) to getting it reviewed in detail from the mentor and bug-tracking it on Bugzilla. Building and testing patches using Firefox Nightly, which uses the latest code in mozilla-central, updated every 24 hours is the best any contributor can ask for. I feel that Mozilla has a very clean and neat way of reporting bugs, coming up with patches, discussing them on Bugzilla and including them in the source tree after thorough reviews. It has been a great experience so far.
To all the aspiring Outreachy participants, I would encourage you to explore the world of FOSS Projects, hang out on IRC channels and feel free to ask questions. Try finding out the kind of work that interests you the most and keep contributing.
I shall shortly be writing my next post in this series! Questions and comments are welcome! 🙂