Summer Coding 2010 proposal - an optimized architecture for customizable application installer

From FedoraProject

Jump to: navigation, search
Important.png
Proposal deadline is passed. This page is locked.
Do not change any details on this page. If must change something, talk with the project mentor first.

Contents

About Me

  1. Hello~ My name is Haofu Han
  2. My Email: gtxx3600(at)gmail(dot)com
  3. My Wiki: https://fedoraproject.org/wiki/User:Gtxx3600
  4. My Primary language: Chinese,English
  5. Where are you located, and what hours do you tend to work? Shanghai, China. My work time : 8AM ~ 10PM (GMT+8)
  6. Have you participated in an open-source project before? If so, please send us URLs to your profile pages for those projects, or some other demonstration of the work that you have done in open-source. If not, why do you want to work on an open-source project this summer?

I wrote small patch for Ailurus(see[1] or [2]) such as 'expand hardwareinfo panel','identify desktop platform of application' ,etc

And now I am working on making Ailurus easier to customize.

I like the spirit of open-source ,that's why I'm here~

Customizable Application Installer

My idea is come from here: Summer_Coding_2010_ideas#Customizable_application_installer

Description

Linux is a GREAT OS, but to many new comers, it't hard to learn to ropes. Ailurus is an application which makes Linux easier to learn & use. It helps new users of GNU/Linux to install software, config the desktop environment easily, and learn some useful Linux skills etc.

Ailurus lists specific software for specific task. It lists few software, rather than all packages in Fedora repository, which helps new users because new users can find out software they want directly, rather than do searching in a lot of packages.

To make Ailurus more customizable, I'm making effort to achieve these goals:

  1. New software items can be added, if software is in Fedora repository. The only work is to provide a package name, then a new item will appear.
    • For example, user chooses "For developers -> Development" category. Then user can add "gvim" in this category.
  2. Software items can be removed.
    • For example, user chooses "Common -> Appearance" category. Then user can remove any items freely from this category.
  3. Experienced Users can specify the whole process of install (For the application which has a complex install process )
    • For example, user could specify the terminal-commands and python statement to install a application
  4. Under the user's permission, the changes to the software items can be uploaded to a web service on google app-engine. Other users can download the changes.
    • For example, user adds "gvim" item. Then user can upload "gvim" item to a web service.

All these work will be done in Python + PyGtk.

Timeline

  • I have already start my work for days~
  • week 1~2 : Radicate the architecture of new features(0.5 week) and adjust origin architecture to suit the new features (1.5week)
  • week 3~4 : Design(0.5 week) & Implement(1 week) & Test(0.5 week) the tool-lib for Adding/Removing software item
  • week 5~6 : Design(0.5 week) & Implement(0.5 week) & Integrate the related UI with tool-lib (0.5 week) and add the change into Ailurus (0.5 week)
  • week 7~8 : Fix bugs (1 week) and implement advance features (1 week)
  • week 9~10: Make sure every thing work as it should be, write document and packaging
  • week 11  : submission

Convincing

Open-source and linux are my passion.

I'm a developer of Ailurus (http://ailurus.cn) and I have already have sth done with it such as:

  • expand the hardwareinfo panel
  • develop a method to identify application's desktop platform

now I'm working on making Ailurus more customizable ~

I'm good at debug shooting and never give up when I was stuck.

I know linux programing well.

I have lots of programing experience and I'm familiar with Python, Java, C/C++, asm, Gtk, Qt. Last term, I implement a simple OS (That teaches me a lot; see http://github.com/gtxx3600/mySimpleOS)

I'm familiar with project and team-work. Last summer, my friends and I wrote an instant messaging software with teaching aid function (I wrote the server and my friend take the client; see http://github.com/gtxx3600/AMSServer)

Last winter, I participated in developing an online-exam system (used in college)

Me and the community

Impact

  1. My Answer
    • This work will make use Fedora easier and user could customize their Fedora simpler.Humanize our desktop environment and app-management. More people will be attracted by the spirit of share and freedom, join us and become a Fedora user.
  2. Mentor's Answer
    • As far as I know, the standard Fedora package installer is awesome, however it is not customizable. Now Haofu Han tries to implement "customizable" software. After this project succeeds, the users can customize the software items. They can store the names of their favorite software. They can hide the software which they dislike. It will be a useful application which is complementary to standard Fedora package installer. The usability of Fedora will be improved.
    • I am Homer Xing. My email is homer.xing [AT] gmail [DOT] com
  3. Fedora community's Answer
    • I am Liang Suilong. My mail is liangsuilong [AT] gmail [DOT] com
    • In your proposal, you refer to Firefox extensions management. I believe that a packager manager in Fedora can not be allowed to manage software out of Fedora repository or RPM package. So this part should be removed in my opinion.
      • Thanks for your advice, I have already changed that part~
    • Will you merge some features of reposiDevelopmenttory configuration written by Chen Yangyang? It is quite convenient that A package manager have a configure front-end.
      • Surely there will be. Chen Yangyang and I are good friends, we will enhance communication and collaborate closely to make Ailurus more perfect.
    • Gpk-application is the default front-end in Fedora. Yumex-ng also has a long history. They are both not perfect. So you can port some good features to enhance your application from them.
      • I would like to convey my heartfelt thanks to you for your valuable suggestion, your advice will make me to attain a yet higher goal.

Other

  1. What will you do if you get stuck on your project and your mentor isn't around?
    • I contact with my mentor regularly, so there is no need to worry about that~
    • Usually I could find my answer in Google. In other cases debugging or discuss with team-members will help.
    • I'm good at trouble-shooting~
  2. 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?
    • I will update my progress on wiki, and I have already subscribed to the summer-coding-discuss~

Miscellaneous

  1. We want to make sure that you are prepared before the project starts
    • Can you set up an appropriate development environment?
      • Of course~
    • Have you met your proposed mentor and members of the associated community?
      • Yes, I have
  2. What is your t-shirt size?
    • XL
  3. Is there anything else we should have asked you or anything else that we should know that might make us like you or your project more?
    • Thanks for providing us such a great opportunity~