KDEEdu

Please apply also in melange, google's web app; if you do not apply there before April 3, we will not be able to accept your application. Also, use the "discussion" link above to see our questions/suggestions for you. (If you want to get email when we change that, you can use "prefs" and "watch" above).

About you
Yazen Ghannam yghannam7388@gmail.com yghannam7388 yghannam7388 English Orlando, Florida, USA. GMT -4
 * What is your name?
 * What is your email address?
 * What is your Sugar Labs wiki username?
 * What is your IRC nickname?
 * What is your primary language? (We have mentors who speak multiple languages and can match you with one of them if you'd prefer.)
 * Where are you located, and what hours do you tend to work? (We also try to match mentors by general time zone if possible.)

I can work in the mornings or evenings, from 7am to 2pm or from 5pm to 11pm. I am a new member of the Ubuntu Bugsquad. https://launchpad.net/~yghannam7388
 * 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?

About your project
KDE Education Project for Sugar There are a number of educational applications available on the K Desktop Environment. Sugar, having education in mind, would like to use these applications. The only problem is that these applications  are written for KDE using the Qt toolkit, while Sugar uses the GTK+ toolkit. Therefore for Sugar to have access to these applications they must be made compatible with the GTK+ toolkit.
 * What is the name of your project?
 * Describe your project in 10-20 sentences. What are you making? Who are you making it for, and why do they need it? What technologies (programming languages, etc.) will you be using?

Trolltech, the developer of the Qt Toolkit, has included QGtkStyle in Qt 4.5. The QGtkStyle class provides a widget style rendered by GTK+ (http://doc.trolltech.com/4.5/qgtkstyle.html). QGtkStyle will allow programs written in Qt to integrate better into desktop environments that use GTK+. Using QGtkStyle as an alternative to recoding an entire program from Qt to GTK+ will dramatically speed up the process of bringing KDEEdu applications to Sugar.

The only drawback to using QGtkStyle is that the Qt libraries will still be needed to run KDEEdu applications on Sugar. This may pose a problem for hardware with less resources such as the OLPC XO-1. After porting a KDEEdu application to Sugar and finding it stable, I will try to reduce the number of Qt libraries by removing ones that are not needed by the application.

One experience that was lacking in my early education was the use of computers to solve math problems. You could always use a word processor to type a report or the internet to find a map for geography but you always needed to solve math problems out my hand. Therefore, I would like to "sugarize" a mathematics application from KDEEdu, probably KAlgebra since it is general purpose and has graphing capabilites. I believe this will help all students, but especially those who may find it hard to visualize math concepts.


 * What is the timeline for development of your project? The Summer of Code work period is 7 weeks long, May 23 - August 10; tell us what you will be working on each week. (As the summer goes on, you and your mentor will adjust your schedule, but it's good to have a plan at the beginning so you have an idea of where you're headed.) Note that you should probably plan to have something "working and 90% done" by the midterm evaluation (July 6-13); the last steps always take longer than you think, and we will consider cancelling projects which are not mostly working by then.

May 23 Start Work; Add QGtkSyle to KDEEdu application.

May 30 Begin to "Sugarize" the application. This entails making the application compatible with Sugar and its features.

June 6 Continue "Sugarizing"/debugging

June 13 Continue "Sugarizing"/debugging

June 20 Finish "Sugarizing"/debugging

June 27 Package Application and dependencies/test on various platforms

July 6-13 Midterm Evaluation

July 13 Begin reducing Qt library/debugging

July 20 Finish reducing Qt library/debugging

July 27 Package Application and dependencies/test on various platforms

August 3 Organize and proofread documentation

August 10 End Work


 * Convince us, in 5-15 sentences, that you will be able to successfully complete your project in the timeline you have described. This is usually where people describe their past experiences, credentials, prior projects, schoolwork, and that sort of thing, but be creative. Link to prior work or other resources as relevant.

This summer I will change my major from Electrical Engineering to Computer Engineering. The change is happening due to my increased interest in programming and open source software. My interest in software started when I took an introductory course on C programming. In this course I successfully developed programs to act as automatic teller machines, inventory databases, etc. I came to realize how useful programming knowledge is in our time. Later in my school career I took a course on Computer Organization. This course was based more on hardware but we used programming to understand some of the concepts. Our project for this course was to develop a program to act as a MIPS processor emulator; this emulator needed to successful process different instructions based on the MIPS datapath given to us. This would be my first experience with a large and complex program.

Eventually, I realized that most of my programming knowledge is based on developing engineering/scientific command line applications. So earlier this year I set a goal for myself to learn to use graphical toolkits. In order to learn the two major toolkits, Qt and GTK+, I decided to help port applications between the two toolkits. This was to become my summer project, until I heard about Google Summer of Code and the KDEEdu idea from Sugar Labs.

I have already decided to dedicate myself to learning the skills needed for this idea over the summer. Nonetheless, I feel that working in a structured way with professionals would be extremely beneficial to me and the open source community. My dedication to learning these skills and help from my mentor and the community will make success for this project a reality.

You and the community

 * If your project is successfully completed, what will its impact be on the Sugar Labs 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 Sugar Labs community, at least one of whom should be a Sugar Labs GSoC mentor. Provide email contact information for non-GSoC mentors.

With the completion of this project, Sugar Labs will have a documented procedure to port and deploy applications that are part of the KDE Education Project. This will include about twenty applications, and others that are built using Qt but are not part of KDEEdu. This will save Sugar activity developers from having to write applications that may already exist but are not built for Sugar or don't use GTK+.

From homunq: KDEEdu is one of the most important set of open source educational programs. Having a demonstrated way to get those working in Sugar would help fill a number of important holes in our activity line-up, and would also help with making impressive demos.


 * Sugar Labs will be working to set up a small (5-30 unit) Sugar pilot near each student project that is accepted to GSoC so that you can immediately see how your work affects children in a deployment. We will make arrangements to either supply or find all the equipment needed. Do you have any ideas on where you would like your deployment to be, who you would like to be involved, and how we can help you and the community in your area begin it?

I live in large metropolitan area with a school district that is making large budget cuts. The best way to deploy Sugar in the area would be to contact Orange County Schools, the local school district, and offer to setup Sugar on computers within one of the local schools. Hopefully, in the end, the local district will see benefit in switching all of its student-used computers to Sugar or another open source system. I could contact a local school if Sugar Labs is willing to deploy in my area.


 * What will you do if you get stuck on your project and your mentor isn't around?

I will look for answers with other developers. This project is a crossroads of many greater projects (Sugar, KDE, Qt, GTK+) and so I will attempt to get answers any way I can. That includes the fundamental Google search, followed by contacting developers on IRC and mailing lists. This task of inter-compatibility between graphical toolkits is so important to open source development that there will be some great advice available.


 * How do you propose you will be keeping the community informed of your progress and any problems or questions you might have over the course of the project?

I will be active on the IRC channels and mailing lists. If possible, I'll create a blog page and link it to one of the mailing lists or RSS feeds. This way I can post on my progress everyday (or more) and everyone will be able to follow.

Miscellaneous

 * We want to make sure that you can set up a development environment before the summer starts. Please send us a link to a screenshot of your Sugar development environment with the following modification: when you hover over the XO-person icon in the middle of Home view, the drop-down text should have your email in place of "Restart." See the image on the right for an example. It's normal to need assistance with this, so please visit our IRC channel, #sugar on irc.freenode.net, and ask for help.

Large
 * What is your t-shirt size? (Yes, we know Google asks for this already; humor us.)
 * Describe a great learning experience you had as a child.

I have always enjoyed hand-ons learning. One experience that I enjoyed was making ice cream in school. The process was very simple: take the ingredients (milk, sugar, flavoring, salt) and put it all in a plastic bag. Next place the bag in a coffee can filled with ice. Now roll the can on the table (or wherever) for a while, maybe half an hour to an hour. Eventually, the ingredients in the bag will solidify and you will have ice cream. I think this was the first time that I was able to see and participate in the process of making something I enjoyed in my daily life.
 * 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?

I think the project is important for many of the reasons I've mentioned. But as for me, I have been known to work on the computer for up to ten hours straight without fatigue. That's not to say that I don't get frustrated when my programs don't work as expected, but I get in the zone and I really enjoy it. My programming projects (C, Matlab, etc.) have always been my favorite assignments and always keep me distracted from my other work. But then again, that's why I'm changing majors. ;)