- Divyanshu Verma
- IRC: dev1010
DuplicateFinder: An application which takes a path to search for duplicate files in it. Once the duplicate files are found, they are displayed and the user can then select and delete the files. It also features a restore option, to restore the file if it is deleted by mistake. It also has a nice GUI.
PicExtractor: An application which downloads images from www.carwalls.com When you start the program, it crawls the pages of the site, and simultaneously, it downloads the images that are not on the computer. Once you have crawled the whole website, then it downloads and crawls only those images that are not downloaded previously.
JTester:This application allows you to write and edit your java code directly on the GUI interface. When you are done, you can compile it just by the press of a button. The errors after compilation or the output is displayed there itself.
MobileSync:This application controls your desktop remotely through bluetooth. For this, a mobile handset with bluetooth functionality is needed. You can send a command through your mobile to your PC to shut it down, restart, play songs, start any application or close it, all that through a bluetooth connection.
PicSecure:Basically, a form of Steganography. It basically hides the data in the image and then restores it back from the image file. The image is not hampered and can be viewed the same as it was before. But, the data is hidden.
- Improving Debian Team Activity Metrics
- This project deals with the development of two deliverables, consisting of an API and a web interface. The Debian Team Metrics  has already implemented the way to get the data which measures the performance and activity of the teams in the Debian community by inspecting their postings on the different mailing lists, commit statistics from project repositories and package upload records from the Ultimate Debian Database. This data is regularly updated by running Cron jobs. The important thing to note is that data is ready, but we have to design an API which acts on the data provided by these metrics and the user input through the web interface and produce the results accordingly which can be implemented and viewed on the web interface.
- The technology to be used for the development of the API is Python which is a simple and robust language. The development of the API should be done keeping in mind that the data is ready. The API just has to deal with this data and produce useful information out of it. The development of the API will allow the user to customize the data on which it acts and produce meaningful graphs out of it which will be focussed on the attributes provided by him/her on the web interface.
The technology used for the database is ?PostGre SQL which helps in managing the data extracted from the various sources described above. The API and the web interface to be developed will query the database and get the desired information, which will then be presented on the web interface, and will also be used for the creation of the graphs.
- The Graphs will be created by using R-scripts, which create a png image file from the data available to it. The data, as described above will be fetched by querying the database using different technologies described above.
- Once the API and the web interface are developed, they will be tested, updated, modified and corrected if any bugs are found. Once they are final, they will be documented appropriately for future references. The main motive behind the development of the interface would be simplicity of the website. Stress would also be given to reduce the load on the servers.
- An working example would have the following steps:
- First, the user interacts with the web interface and provides some input for the information and graphs that he wants to access. A possible input includes:
- name of the mailing list.
- value of n, where n is the total number of names of top commiters.
- absolute year/year duration. 2011, 2012, last 2 years, etc. are some examples.
- This will lead to the creation of a graph as shown here 
- Then, this data reaches the server, where the database is queried for the data by either the API or Django. This gives us the information which we need to process, and create a graph.
- This information is processed using R scripts which creates the graph. Any lacking information may be supplied by the default values for the creation of the graph.
- Finally, this graph is sent to the client in an interface which is customized by Django. The images may be cached, so that the server does not have to do the processing all over again. This will help in reducing the load on the server.
- I have read the code available in the git repository  and also all the discussions on the mailing list 
- The project consists of the development of an API to get the data from the metrics and the development of a web front-end which would present the data obtained in a nice format.
Benefits to Debian
- After the completion of the project, the Debian community would be able to check and evaluate the performances of the various teams and individual members. It is also beneficial to an individual, as he would be able to view all the hard work he has done throughout at a glance. This all would be presented in a nice web interface integrated with different functions to customize the view.
- A tested and documented API written in Python which would be applied to get the data from the metrics. It will also include the development of a simple web interface which will act upon the data made available through the API, customize it for the end user and then display it. My commitment to the Debian community does not end here and with the help of this project, I would like to become a permanent contributor to the community.
16th - 25th April:
- Reading the Team Activity Metrics Code, understanding how the metrics is generated and data obtained.
- Communicating with the mentors, and taking their help whenever required. Getting their views on how they want it to be done. Getting to know about the Debian community and their coding style.
26th April - 13th May:
- Talking with my mentors about the development of the API. Deciding all the functions to be incorporated. Discussing about the pros and cons a particular way to be followed while writing the code so that the code developed is efficient.
- Studying Django in detail.
14th - 27th May:
- Getting to know about the Debian community, mailing-lists, ways to interact with them, understanding the philosophy.
- Continuing studying Django.
28th May - 17th June:
- Start writing the code for the development of the API, focussing on the points discussed with my mentor.
- Communicating with my mentor on a regular basis and updating him about the progress of the code.
18th June - 1st July:
- Testing the code written with various test cases, looking for any bugs in the code and removing them.
- Documenting the API.
- Communicating with the mentor about the various styles of documentation, and discussing about which one to adopt.
2nd - 8th July:
- Testing and finalizing the code written for the API before the Mid Term Evaluations.
- Communicating with my mentor about the next step, which is the development of the web interface.
- Discussing and planning the way to implement the functionalities provided throught the API in the web interface.
- Getting to know about R scripts
9th - 15th July:
- Mid Term Evaluations
- Finalizing a plan, and starting to code for the web interface using Django.
- Primary objective to be kept in mind while coding in Django would be the Debian Website Style as described above.
16th - 29th July:
- Writing code for the web interface.
- Informing the mentors about my progress on a regular basis.
- Continuously testing the developed interface, as the API is already ready
30th July - 8th August:
- Testing the developed interface and the API. Bugs found in the code would be fixed.
- Documentation would be finalized.
- Any modifications to improve or optimize the code would be done in this period.
9th - 12th August:
- Ensuring that the project is working as it should be.
Exams and other commitments
- I will be having exams from (15-26th) May, regardless, I will start with the coding.
Other summer plans
- I have been using Debian for the past three-four months and I really like the concept of open source software. I wanted to contibute to the development of this OS and this project seems to be a good opportunity.
Are you applying for other projects in SoC?