hari_shankar

Contact information

  • Name: Hari Shankar Gautam

  • Email Address:hshgautam@gmail.com

  • IRC nickname:hsgautam

  • Launchpad ID:hshgautam

  • Skype username:hshgautam

  • Webpage/blog:--

  • College-University:Indian Institute of Technology (IIT) Kharagpur

  • Major: Electrical Engineering

Project

1. Project Name: Splash Screen Customization

2. Project description: Graphical application to create splash screens, custom throbber and animations. The ability to navigate, preview and activate splash screens is important. Adding xsplash themes should be simplified for the general public.

3. If you would be willing and able to do other projects instead, which ones?

  • I have no plans to do other projects.

4. Why did you like this idea?

  • Xsplash is a good software which has improved the boot performance of Ubuntu since its release in Ubuntu-9.10 but it does not provide any graphical utility to create custom splash screens and animations. Since this program aims to develop a graphical application to make custom animations and splash screens, it will make the customization of xsplash easy for general public. That,s why I liked this idea.

5. Project architecture

  • A mock-up of the application is given below. The window on the left will show the images imported by the user and the one on the right will show the selected image. The program is described in detail below:
  • mock-up6.png

  • For the manipulation of multi-frame objects imagemagick will be used which includes a number of ready-made ImageMagick interfaces. This makes it possible to modify or create images automatically and dynamically.

  • If a user already has a GIF image of the animation, he will be able to generate the multiframe PNG image directly from the GIF by pressing the ‘Generate’ button on the bottom. Using imagemagick this task can be done in following steps: (this is just a command-line description, for programmatic manipulation of file, API will be used)
    1. First a PNG image is generated for each frame of the animation by using the following command:

      convert +antialias animation.gif animation.png

    2. Now, the following command is used to combine all those PNG images into one multiframe PNG file:

      convert `ls *.png` -append animation.png

    3. To add transparency or remove white background from the multiframe image generated in step 2, the following command can be used which will make the white background transparent:

      convert animation.png  -transparent white animation.png

  • There will be options like rotate, flip, mirror, scale etc. which will allow a user to create different frames of the animation. He will be able to generate the multiframe PNG image for the animation by selecting all the frames and pressing the ‘Generate’ button. For example, if a user has the image of a wheel, he will be able to generate a rotating wheel animation as follows:
    1. First he will generate different frames of the rotating wheel using the rotate option.
    2. To combine all those frames into a multiframe PNG image he has to select all the frames and press the ‘Generate’ button. Now the generated animation can be used as a xsplash throbber animation.
  • The ‘Test’ button will allow previewing the animation before generating the final image.
  • There will be other options like convert to PNG, append horizontally, append vertically etc. which will allow a user to manipulate different types of images and combine them so that they can be used for xsplash animation.

6. Milestones

  • Week 1 : Familiarization with the different aspects of the project.
  • Week 2 : Finalizing the basic structure of the GUI.
  • Week 3 : Preparing a requirement specification document to precisely identify the functions to be implemented. And then accordingly defining the structure of the GUI.
  • Week 4,5,6: Coding for GUI starts.

    [Mid Term Evaluations] (Final version of the GUI will be shown)

  • Week 7,8,9 : Implementation of all the functions. Coding of the project completed.
  • Week 10 : Testing the application developed.
  • Week 11 , 12: Documenting the product.

7. Why will your proposal benefit Ubuntu?

  • Ubuntu has been designed to be user-friendly. Since this project aims at the GUI development for Xsplash customization, this will make the things simpler for general public and will certainly increase the customizability and user-friendliness of ubuntu desktop.

Open Source

1. Previous open source developments:

  • Although I have limited experience of open source development but I have very extensive programming experience in C, C++, C# and Java. I have successfully completed many projects some of which are listed below :

[GUI Related Projects]

  • News Paper Agency Automation Software: The project was in the area of software engineering. The aim of the project was to develop software that would automate the working of a newspaper agency. The software was developed and documented on the guidelines of Software Engineering principles. A fifty page document was prepared containing SRS, DFD, UML diagram, class diagram, collaboration diagram, activity diagram and state chart. The final software was successfully coded and implemented in Java.

[Operating Systems] (in C )

  1. Bourne Shell : Implemented my own version of Bourne Shell using C. All the important system calls like fork(), wait etc were used. Advanced concepts like pipelining and process synchronization using semaphores were used. The shell executed most of the commands supported by Unix.
  2. Scheduler Simulation: Made a program to simulate the functioning of the scheduler of Unix. All the important scheduling algorithms like FIFO, Preemptive Round Robin Scheduling and Multilevel Queue were simulated and tested.

[Networks] (in C using UNIX socket programming)

  1. Ftp server : Wrote a code for ftp server and client which can perform function of downloading/uploading of files.
  2. HTTP Server : Wrote code a HTTP server and client(implementing only PUT and GET commands) adhering to the standards. The server and client were compliant with the standards. The server was accessible from standard browsers like Mozilla Firefox. The client could access contents of websites on www.
  3. DNS load balancing : Proxy servers were written for HTTP servers mentioned above which performed load balancing by making connections to a different IP(which were mirrors of original HTTP servers) in a round robin way each time a new request was made.
  4. Chat Client : Wrote code for making a chat client in which several people can simultaneously chat.

2. Why Open source ?

  • I have been using Ubuntu for many years and I am really amazed by the quality of products that are developed by the open source community. The availability of the source code and the right to modify it is very important. It enables the unlimited tuning and improvement of a software product. It also makes it possible to port the code to new hardware, to adapt it to changing conditions, and to reach a detailed understanding of how the system works. Source code availability also makes it much easier to isolate bugs, and (for a programmer) to fix them. That's why I would like to be associated with the open source community and contribute to the development of open source projects.

Availability

1. How long will the project take? When can you begin?

  • In my view 3 months time is enough to successfully complete the project along with proper testing, integration and documentation. I can begin on the project form 10 th May 2010 onwards.

2. How much time do you expect to dedicate to this project? (weekly)

  • As I do not have any other commitments for the summer so I can devote my full time to the project. Roughly 6-8 hours can be devoted six days a week. So roughly I will devote 35 – 40 hours a week.

3. Where will you based during the summer?

  • I will be at Indian Institute of Technology(IIT), Kharagpur, India

4. Do you have any commitments for the summer? (holidays/work/summer courses)

  • NO, I do not have any other commitments for this summer.

5. Please designate a back up student (in case you need to withdraw your application)

  • I have no plans to withdraw from this project. If an opportunity is given to me I will work with full sincerity and dedication.

Other

1. Have you ever participated in a previous GSoC? (describe your project)

  • No

2. Have you applied for any other 2010 Summer of Code projects? If yes, which ones?

  • No

3. Why did you apply for the Google Summer of Code ?

  • Being a programming enthusiast I am very much interested to participate in GSOC. GSOC gives an opportunity to be involved in an open source development and work with highly motivated people. I just love coding and am passionate about making new programs and learning new technologies.

4. Why did you choose Ubuntu as a mentoring organisation?

  • I have been using Ubuntu for a long time. I have very good knowledge of Ubuntu. I have configured my Ubuntu desktop and Its kernel to suite my needs. In addition to that I configured the Ubuntu kernel on many of my friends machines according to their needs. Having so much experience of ubuntu it would be a great privilage for me to be associated with ubuntu on an open source project and will help me further enhance my knowledge.That’s why have chosen Ubuntu as a mentoring organization.

5. Why do you want to participate and why should Ubuntu choose you?

  • I have so much experience of working on ubuntu. In addition to that I have very good programming skills in C/C++, gtk +2.0 and Java which will help me to accomplish the goals of the project. In my past I have successfully implemented many large projects and I have technical expertise, experience and motivation to contribute to the open source community of Ubuntu.

GSoC/2010/hari_shankar (last edited 2010-04-18 19:59:16 by 203)