- What is your name?
Alexandru Cosmin Mihai
- What is your email address?
- What is your Sugar Labs wiki username?
- What is your IRC nickname on irc.freenode.net?
- 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 GTK3 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.
- 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|
|1 to 4.5||14-05 -> 15-06||Finish my semester and take my final exams while learning more about GTK, PyGTK, GTS and trying to port at least one activity|
|5 (remaining of it)||15-06 -> 17-06||Port another activity|
|6||18-06 -> 24-06||Port at least another 4 activities|
|7||25-06 -> 01-07||Port at least another 4 activities|
|8||02-07 -> 08-07||Port at least another 4 activities|
|9||09-07 -> 15-07||Port at least another 4 activities|
|10||16-07 -> 22-07||Port at least another 4 activities|
|11||23-07 -> 29-07||Port at least another 4 activities|
|12||30-07 -> 05-08||Use this time as a safe margin|
|13||06-08 -> 12-08||Use this time as a safe margin|
- 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)
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 will result in 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.
Here is a link to a screenshot of my installed Sugar desktop environment on Fedora 27: https://imgur.com/a/gQzIv
Here are links to the merge / pull requests I have done so far:
- 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.