About You

  • What is your name?

Alexandru Cosmin Mihai

  • What is your email address?

alexcosmin.mihai@gmail.com

  • What is your Sugar Labs wiki username?

Alexmihai

  • What is your IRC nickname on irc.freenode.net?

alex_mihai

  • What is your first language? (We have mentors who speak multiple languages and can match you with one of them if you'd prefer.)

My first language is Romanian, but I am fluent in English.

  • Where are you located, and what hours (UTC) do you tend to work? (We also try to match mentors by general time zone if possible.)

I am located in Bucharest, Romania (UTC + 2) and I am planning to work from 07:00 to 15:00 (UTC).

  • 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?

Here, in Bucharest, is a group of young computer science specialists and students called ROSEdu (Romanian Open Source Education). As an aspiring member of this organization I have created content in the form of questions related to the Introduction to Operating Systems course (a course about how Linux based operating systems work) which have been used on the online competition-quiz platform developed by ROSEdu called World of USO (USO roughly translates to Introduction to Operating Systems in Romanian) which is accessible to students at my University during the first semester of the year, when the course takes place (here is a snippet from an email on the ROSEdu mailing list stating my participation https://pastebin.com/UsUqf1tY).

I would love to work on an open-source project this summer because I believe that I can learn a lot of relevant information and improve my software developing skills. I also believe that the atmosphere of an open-source organization is one of the best for working and learning because of its passion-driven members.

About your project

We are looking for projects that will enhance the Sugar Learning Platform. Please consider how your project will have impact on children learning.

  • What is the name of your project?

Just say no to GTK2

  • 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?

GTK is the underlying UI framework of Sugar and therefore is largely used in the whole codebase, including the currently available activities. Many of these activities were written using GTK2 which is now at its life's end. In order to make sure that the activities that are using GTK2 remain supported on newer versions of Sugar which will continuously make use of newer technologies, we must port them to the currently available GTK3 widget toolkit. Since activities represent a very important part of Sugar, this project will be beneficial to its end-users who will be able to enjoy their favourite activities without encountering any problems on the present and future releases of Sugar and it will also be beneficial to developers who will be able to expand these activities using GTK3's features and more easily port them to GTK4 when it becomes available. In order to complete this project, I will use Python, the GTK+3 toolkit and the Python binding of it, the PyGObject libraries, the Sugar Toolkit GTK3, Flake8 and any other technology that becomes necessary during the project. The activities that I have planned to port are:

Number Activity name
1 Arithmetic
2 Bichos
3 Blocku
4 Bounce
5 Calendario
6 Club-Othello
7 Diccionario-Guarani-Castellano
8 Feliz-navidad
9 Fortune-maker
10 Free-from-malaria
11 GCD
12 Panorama
13 Read-sd-comics
14 Puppys-Pen
15 Starchart x
16 Compress
17 Colgadito x
18 Ayni
Flipsticks x
19 Ajedrez x
20 Ahocradito
21 Adivinanzas x
22 Jam-Tank
23 Geotonky
24 Analyze
Colgadito-spyral
Amazonas v
I-Can-Read x
SuperTux v
Lemonade v
Fossrit v
Sugarizehelp v
Agubrowser
iknowEditor v
25 Gogo x
  • What is the timeline for development of your project? The Summer of Code work period is from mid-May to mid-August; 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 (end of June); the last steps always take longer than you think, and we will consider cancelling projects which are not mostly working by then.

Unfortunately, my final exams end on the 15th of June, so until then I will not be able to put in as much effort as I would like to do for the rest of the GSoC time period.

Week no. Time period Description
- 23-04 -> 14-05 Community bonding: attend as many IRC meetings as possible in order to get up to date with what the Sugar Labs community is currently working on and create a small database of all the original and highly involved contributors to the activities that I will port so in case that I need some specific information about a particular activity that I cannot find otherwise, I can try to get in touch with them.

Ask for advice on how my workflow should look like.

1 to 4.5 14-05 -> 15-06 Finish my semester and take my final exams while researching more on GTK+ and the differences between GTK+2 and GTK+3, PyGTK, GTS, Sugar 3 toolkit.

Port activity 1.

5 (remaining of it) 15-06 -> 17-06 Port activity 2 and get used to the Sugar Labs coding style.

Discuss with the mentors the quality of my work and how I can improve.

6 18-06 -> 24-06 Port activities 3 - 6.

Start working on creating a small activity on my own in order to further improve my skills. Use the "Make your own sugar activities" FLOSS manual as a starting point.

7 25-06 -> 01-07 Port activities 7 - 10.

Continue to discover best practices for porting activities by communicating with my mentors.

8 02-07 -> 08-07 Port activities 11 - 14.
9 09-07 -> 15-07 Port activities 15 - 18.
10 16-07 -> 22-07 Port activities 19 - 22.

Make sure that anything my mentors suggested at the second evaluation is taken into consideration for improvement.

11 23-07 -> 29-07 Port activities 23-25.

Start reviewing my work.

12 30-07 -> 05-08 Look again through the activities that I have ported and integrate any improvements that I have discovered after porting the first ones.

Continue to communicate with my mentors and ask for guidance if I encounter problems during the process.

13 06-08 -> 12-08 Fix any last problems that are found after reviewing the ports.
  • 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.

I believe that I will be able to complete my project because a large part of the learning process at my college is done through individual projects with deadlines and so far I have managed to successfully complete all of them. Most of the code I have written for these projects is in C/C++ or Java and they have taught me many concepts about OOP, design patterns, algorithms and data structures that are universally used and therefore writing good code in Python should not represent a problem. I believe that I am an ambitious person and I usually manage to achieve what I propose by putting enough effort, even if it seems difficult at the beginning (for example, I managed to be in the top 10 out of 600 students in my year at my Faculty last semester ordered by overall marks with mark 9.88 out of 10).

The fact that I have already ported an activity to GTK3 also makes me confident that I will be able to complete this project. (https://github.com/sugarlabs/textdungeon/pull/2)

I have listed some of the projects that I have completed in C/C++ and Javascript in my resume which is accessible here: http://bit.ly/2Hs3HZg .

Some of my projects are posted on Github. You can see them here: https://github.com/alexandrucosminmihai .

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.

In my opinion, completing this project is important because it will offer the possibility to have a larger number of activities available on Sugar after GTK+2 will not be available anymore on Linux, when its security updates support ends I also believe that this project will help the community by modelling a more uniform codebase across the activities available for Sugar. This will make it easier for new Sugar Labs contributors to pick up existing activities and upgrade them further in the future without having to deal with deprecated code or technologies and will provide a more consistent design across the activities (by replacing deprecated widgets, for example). I also consider that having as many activities as possible upgraded to the latest version of the technology stack is important because it makes them more reliable and compatible with newer versions of different underlying components of Sugar and their enhancing future features.

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

After making sure that I cannot find the solution to my problem by using online knowledge resources, I will try to ask for help on the Sugar IRC. So far, every time I had a question, there was always someone to answer it on the Sugar IRC room.

  • 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 intend to continuously keep updated the status of my work on a wiki page and communicate with my mentors and the community via IRC and the mailing lists.

Miscellaneous

Here are links to the merge / pull requests I have done so far:

https://github.com/sugarlabs/textdungeon/pull/2

https://github.com/sugarlabs/sugar-docs/pull/134

  • Describe a great learning experience you had as a child.

Probably one of the most important learning experiences I had as a child, before going to school, was learning how to use the PC my parents had at home. Because they were mostly busy with their jobs and chores, I had to learn by myself how to "play" with the PC by a lot of trial and error processes (the fact that I didn't speak too much English at the time, made things even more of an adventure). I believe that the roots of my passion for software engineering and computers in general come from this period in my life.