8428
Comment:
|
← Revision 12 as of 2014-03-18 14:48:55 ⇥
8429
|
Deletions are marked like this. | Additions are marked like this. |
Line 34: | Line 34: |
* '''Code''': The requested code can be found on my [[http://www.github.com/bharathbrat/GSoC-Debian | Github]] account. | * '''Code''': The requested code can be found on my [[https://www.github.com/bharathbrat/GSoC-Debian | Github]] account. |
Student Application Template
Name: Bharath M S
Contact/Email: brat.197@gmail.com IRC: brat197 on Freenode.
Background: I am a final year student studying CSE in BMSIT, Bangalore, India. I have used Debian in the past and am running Ubuntu at present. I have 3 years of experience in coding. I am comfortable with C, C++ and Python. The curriculum in my education stops at C++, I taught myself Python from the internet. Using python I wrote a script that parses a sports website, and sends a text message (I did not write this script though) when the live score of a game changes. I have also written a script that uses a simple substitution encryption algorithm and sends a mail. The mail can be read using another decryption script. I have implemented a "Cookbook of Skip List" in C. I have worked on matplotlib in the past during a 6 month internship at Campusdiaries. There the statistics were straightforward and hard coded to a certain extent. My responsibility on that project was to graph the metrics.(Can provide code privately.) I do know javascript but it is usually not my language of choice. I have also attended a 3 day Mini-Debian Conference held in Mangalore and attended the packaging session taught there. I have begun to get myself acquainted with jinja2 and flot.js.
Project title: Debian Metrics Portal
Project details:
- At present the various statistics used under Debian are spread and there is no way in connecting them. As a result it is possible that different people are trying to graph the same metrics. This can result in waste of time and effort. The idea is to develop a Debian Metrics Portal that can be used to:
- Add/remove metrics to be graphed. The metrics can be local or remote.
- Web interface to view updated graphs where the updating is done by cron jobs.
- Create a web interface that can graph a limited number of metrics on the client side that can be chosen dynamically.
- the metrics that are being graphed (local or remote)
- a script that gathers the data required for the graph and creates a .csv file
- a script that reads the csv file and plots the graph
- At present the various statistics used under Debian are spread and there is no way in connecting them. As a result it is possible that different people are trying to graph the same metrics. This can result in waste of time and effort. The idea is to develop a Debian Metrics Portal that can be used to:
Preferences:
- Python Templating Engine - jinja2
- Dynamic Graphing - flot
Code: The requested code can be found on my Github account.
Synopsis: In this project we are developing a portal that has a simple interface to make it easy to add/remove metrics to be graphed. The idea is to create an infrastructure that can be used to bring all the statistics used (needed) by various projects under Debian to be brought together and be accessible from this portal.
Benefits to Debian
- An ordered and clean way of maintaining statistics needed by the whole Debian project.
- The easy interface should help make others to keep updating this page to make it bigger and more useful as the trends change.
- "One portal to add them all, One portal to remove them, One portal to update them all and in the darkness view them." (I am sorry. I could not resist.)
Deliverables: ( Given in the project description page - Copied)
- database structure to store all historical data points of all metrics
- standardized declarative interface to add/remove metrics to be graphed. The interface should allow for both "local" metrics (e.g. data generated by scripts run on the machines hosting the metrics portal) and "remote" metrics (e.g. data generated by remote data sources which are then periodically gathered by the metrics portal)
- cron jobs to periodically fetch new data and generate graphs
- proof of concept: integration of (some of the) existing graphs in the metrics infrastructure
- web interface to show updated graphs of the various metrics
- client-side dynamic web interface to graph, on demand, specific metrics (possibly more than one at a time to look for correlations) over the desired time periods
- (optional) produce a Debian Package of the portal code to ease deployment on Debian-based machines
Project schedule:
1. Community Bonding Period:
- discuss details of the design information of the portal with the mentors and general template that can be used add/remove metrics
- acquaint myself with Debian infrastructure and any previous work done in this field
- get to know the mentors and their preferences with regard to the project
- learn everything required from jinja2 and flot.
2. Work Period 1:
- May 19 - May 31: Create a database structure that can be used to store various metrics. (End of semester Exams could be during this phase.)
- June 1 - 15:
- Design and Implement a simple interface to add/remove metrics that can be graphed.
- Test this interface with simple use cases.
- Provide support in this interface for adding and removing both local and remote metrics.
- June 16 - 23: Write cron jobs that run within the infrastructure periodically fetch data and generate graphs.
- June 23 - 26: (Room for error) Wrap up the work done so far. Submit mid-term evaluations.
3. Work Period 2:
- June 27 - July 7: Integrate existing graphs into the infrastructure.
- July 8 - 18: Design and Implement a web interface to display various metrics.
- July 19 - August 7: Build a client-side web interface that can be used dynamically to plot some specific metrics.
- August 8 - 11: Fix bugs. Testing. Make additional modifications if required
- August 11 - 17: (Room for Error) Wrap up the work. Package.
- August 18 - 22: Submit final evaluations.
- August 22: Submit required code samples to Google.
Exams and other commitments: I will have my end of semester exams around 10 days at the end of May. ( The time table is not yet out) During this period the time I work will reduce. But immediately after the exams I can work full time without any restrictions.
Other summer plans: I may be going for a short vacation (3 days) in June. But other than that I do not have any other summer plans.
Why me?:
- I was part of the data analysis department at campusdiaries during my internship.
- I can learn fast. I taught myself python and have also taken up various courses online. (can provide certificates)
- To use flot it is required to know some amount of jQuery which I picked up in a few hours and can now graph using flot.
- I have already begun graphing a few basic metrics using matplotlib and flot (see link provided on melange) to improve my understanding of what is required to design the portal. I have tried various methods of transferring data to figure out which is better and also discussed with the mentors which format they would prefer.
- I have been looking for projects to contribute to in my free time after I graduate. I will be contributing to this project even after the GSoC is over.
Why Debian?: Debian was the first distribution I used. Call it a sentiment of wanting to give back something. Also I have some experience in the area with which the project deals with.
- Are you applying for other projects in SoC? Yes.