Differences between revisions 2 and 3
Revision 2 as of 2014-03-10 08:28:42
Size: 4423
Editor: ?BharathMS
Comment:
Revision 3 as of 2014-03-10 11:14:45
Size: 6168
Editor: ?BharathMS
Comment:
Deletions are marked like this. Additions are marked like this.
Line 9: Line 9:
 * '''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 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. I do know javascript but it is usually not my language of choice. I have also attended a 3 day International Debian Conference held in NMAMIT and attended the packaging session taught there.  * '''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. 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 NMAMIT and attended the packaging session taught there.
Line 17: Line 17:
   In the end package the code to deploy easily on Debian based machines.
   
   Also provide a standard design for the database that can be used to store metrics. In the end package the code to deploy easily on Debian based machines.
Line 24: Line 24:
 * '''Preferences''':
   * Python Templating Engine - jinja2
   * Dynamic Graphing - flot.js
Line 43: Line 46:
 * '''Project schedule''': how long will the project take? When can you begin work?  * '''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.js.
  2. Work Period 1:
   * May 19 - May 31: Create a database structure that can be used to store various metrics
   * June 1 - 15:
     1. Design and Implement a simple interface to add/remove metrics that can be graphed.
     2. Test this interface with simple use cases.
     3. 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.

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. 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 NMAMIT and attended the packaging session taught there.

  • Project title: Debian Metrics Portal

  • Project details:

    • 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.
      • interface to view updated graphs where the updating is done by cron jobs.
      Also provide a standard design for the database that can be used to store metrics. In the end package the code to deploy easily on Debian based machines. Creating a new metric involves specifying:
      • the metrics that are being graphed (local or remote)
      • a way to gather data that matches with the metrics
      • type of graph
      At regular intervals the cron jobs execute, gather new data and plot graphs that will be updated on the portal. A web interface should be developed that makes it easy to view some common metrics used.
  • Preferences:

    • Python Templating Engine - jinja2
    • Dynamic Graphing - flot.js
  • Code: The requested code can be found at --- <will provide link in melange link>

  • 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.js.
    2. Work Period 1:
      • May 19 - May 31: Create a database structure that can be used to store various metrics
      • June 1 - 15:
        1. Design and Implement a simple interface to add/remove metrics that can be graphed.
        2. Test this interface with simple use cases.
        3. 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.
  • 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) during June. But other than that I do not have any other summer plans.

  • 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.