Summer Coding 2010 proposal - RPM Recoverer

About my project

 * 1) Project name
 * 2) *RPM Recoverer
 * 3) Reference
 * 4) *My proposal is related to Customizable application installer
 * 5) Description
 * 6) *Ailurus is an application which makes Linux easier to use. It can help people configure Linux, install software, learn Linux skills and so on. The Recover RPM is a very handy feature provided by Ailurus. It helps user to keep track of the softwares that has been installed or removed. Ailurus takes snapshots of installed softwares, and can revert the installed softwares to any snapshot taken before. But the snapshot have to be manually made, thus made this feature actually not very easy to use. I want to make improvement to this feature by taking snapshots automatically so that there is not need to make snapshot manually. And make it possible to export snapshots as files, so users can quickly recover their softwares even on a different machine.
 * 7) *This work will benefit the users of Ailurus, as well as Linux users who need frequent changes of their installed softwares.
 * 8) *I will use Python for development.
 * 9) Timeline
 * 10) *Week 1: Survey and design. Study the structure of Ailurus, form a design scheme while communicating with the mentor.
 * 11) *Week 2: Implement the automatically snapshots feature.
 * 12) *Week 3: Implement the snapshots import / export feature.
 * 13) *Week 4: Get feedback, fix bugs, complete the project.
 * 14) Convincing
 * 15) *I am an experienced C/C++ programmer and familiar with Python. I have used Linux for development for almost three years, and have extensive experience with development under Linux. Last summer, I interned at Alibaba Research Institute where I implemented the decoding algorithm of a Statistical Machine Translation (SMT) system. This summer, I have enough spare time for a large project and I have the determination to complete the project. I believe these two factors alone with skills of a top CS student will help me complete the project.

Me and the community

 * 1) If your project is successfully completed, what will its impact be on the Fedora community? Give 3 answers, each 1-3 paragraphs in length. The first one should be yours. The other two should be answers from members of the Fedora community, at least one of whom should be a Fedora Summer Coding mentor. Provide email contact information for non-Summer Coding mentors.
 * 2) *My answer:
 * 3) *Nowadays, there are more and more high-quality free softwares that can be easily installed by Linux users with a few keystrokes. But sometimes conflicts between softwares give user a hard time, with automatically generated snapshots of installed softwares, users can easily revert their machines to a previous state. A lot of Fedora users will benefit from my project.
 * 4) *Mentor's answer:
 * 5) *I feel that it is a very good feature to automatically export software name list. It is also very convenient if users can recover their softwares even on a different machine. I believe many Fedora users will get benefits from Wenchuan's work. I am Homer Xing. My email address is homer.xing [AT] gmail [DOT] com.
 * 6) What will you do if you get stuck on your project and your mentor isn't around?
 * 7) *If I get stuck I will think harder myself before consulting others. If I really can't solve it myself, other than my mentor, I can discuss the problem with other Ailurus developers. And for specific technical problems, there's a myriad of online resources available, such as stackoverflow.com, etc.
 * 8) In addition to the required blogging minimum of twice per week, how do you propose to keep the community informed of your progress and any problems or questions you might have over the course of the project?
 * 9) *Ailurus has its own documentation, and I plan to follow this tradition. In addition, I plan to use wiki pages to record my progress.
 * 10) *Problems and questions will also be recored on wiki pages. And I will try to solve them with discussion with my mentor and mailing list if necessary.

Miscellaneous

 * 1) We want to make sure that you are prepared before the project starts
 * 2) * Can you set up an appropriate development environment?
 * 3) **Yes, that's not particularly difficult.
 * 4) * Have you met your proposed mentor and members of the associated community?
 * 5) **I have met my mentor. Through our communication, I got lots of useful feedbacks from him, which help me to have a better understanding of the project.
 * 6) What is your t-shirt size?
 * L
 * 1) Describe a great learning experience you had as a child.
 * 2) *I love LEGO when I was a child. Building all sorts of things with LEGO is my favorite activity as a child. And I it as a great learning experience.

Note: you will post this application on the wiki in the category Category:Summer Coding 2010 applications. We encourage you to browse this category and comment on the talk page of other applications. Also, others' comments and your responses on the talk page of your own application are viewed favorably, and, while we don't like repetitive spam, we welcome honest questions and discussion of your project idea on the mailing list and/or IRC.

The NeL project has some good general recommendations for writing proposals. We encourage Summer Coding code to include tests.

Comments
Use the Talk:Summer Coding 2010 student proposal application to actually make comment, which then appear here on the main proposal page. You can use this link to make a new comment].