Student Application Template
Name: Simion Vlad Bogolin
Contact/Email: email - vladbogolin@gmail.com, irc - vladbogo
Background: I am a fourth year student at "Politehnica" University of Bucharest, Computer Science and Engineering Department. The main areas that I am interested in are: algorithms, computer graphics and operating systems.
- Skills: My skills consist in a strong background in algorithms and data structures. As it comes to programming languages I prefer C/C++ and Java, in which I also have more experience (about 2 years in Java and more than 6 years with C). Apart C/C++ and Java, I have experienced the next programming languages: Python, Haskell, Scheme, Bash Scripting, Matlab, Assembly language, Clips, Prolog. When it comes to versioning tools, I am quite familiar with Git (I have developed several school team projects using it) and SVN (which I used during last summer GSoC and also for some school projects). Also, I have some experience with Qt: last year during GSoC I developed a display manager for BRL-CAD using Qt. A display manager is the primary means with which BRL-CAD interacts with geometry.
- Why me?: First of all, I am really enthusiastic to work to open source projects. Also, I must say that I consider that I have all the necessary skills in order to complete this project. I do not back away from difficult tasks and I am fully committed to finishing the project. I also plan to be an active developer after GSoC is over. Least but not least, I think that this is a great opportunity to learn new things that will help me in my future career, so this makes me even more enthusiastic about the project.
Project title: Get Muon ready
Project details: The Muon Package Manager is a powerful package manager aimed towards the intermediate - power-user range. It offers complete control over your packages with an interface that still keeps usability in mind. The first goal of the project is to get Muon in Debian, but also the project aims to improve Muon (see details below).
- Getting Muon ready:
I started by building Muon on Linux Mint and on Debian to see what needs to be fixed in order to have a fully functional Muon in Debian. After a little bit of struggle, I managed to successfully build Muon on both systems:
So, as it can be seen in the above some menu entries are missing and also the toolbar cannot be shown. Below you can find a step by step plan in order to have a successful project:
- Step 1: Solve the differences in the graphical user interface: have all buttons, menu entries and every other aspect of the interface shown.
- Step 2: Solving package sources issues: make sure that packages are displayed correctly and that are ready to be installed
- Step 3: Installing packages: installing a packages, installing multiple packages
- Step 4: Removing packages
- Step 5: Checking that the status of the packages is consequent with the system
- Step 6: Checking that updates are found and can be installed
- Step 7: Making sure everything in the interface works as expected
- Step 8: Testing - different scenarios will be tested for every item: for example for the “Apply changes” button it should be tested the fact that it installs, removes, installs and removes packages.
Below, you can find attached the required addon with my name added to the “About Muon” window:
- Muon Discover and Muon Installer:
- Apart from what is discussed above when it comes to Muon Discover and Muon Installer the first thing that needs to be solved is the source management issue. As it can be seen from the below pictures this is a serious problem:
muon_discover.png muon_installer.png
- After the source management, the next step would be to install new software. Also a big aspect that is missing when dealing with Muon Discover and Muon Installer is the ratings and reviews management. I guess that in this case a new ratings and reviews management system should be created since the sources for Kubuntu and Debian are different. In my opinion the best solution for this is to have a server side database that stores per package information about ratings and reviews. In this case the communication between Muon and the server needs to be assured. More exactly, I was thinking to use a web server so that the communication protocol wouldn’t be a problem and a relational database that stores the information.
- Muon improvements:
- Improve search: At the moment, the quick search has a quite weird behaviour: sometimes as long as you type, the number of hits decreases at first to just a few then increases considerably, even though the query is more specific. This improvement aims to make an “incremental” search that will show proper results. I’ve chosen this improvement to work at because I think that will help users find the package faster, especially when they do not know exactly the name, just a keyword.
Related issue link: https://bugs.kde.org/show_bug.cgi?id=276338
- Improve search: At the moment, the quick search has a quite weird behaviour: sometimes as long as you type, the number of hits decreases at first to just a few then increases considerably, even though the query is more specific. This improvement aims to make an “incremental” search that will show proper results. I’ve chosen this improvement to work at because I think that will help users find the package faster, especially when they do not know exactly the name, just a keyword.
Synopsis: Getting Muon, the apt frontend written by and for Kubuntu, in Debian. There are a great bit of ubuntu specific data that needs to be fixed up and provided in Debian. Besides this, the project aims to add a set of improvements to Muon.
Benefits to Debian: The main benefit for Debian would be the fact the it is going to have a new package manager that would help users install/manage packages easier.
Deliverables: A fully functional Muon in Debian.
Project schedule: I will be able to start effectively working at the project from the start of the coding period. I will use the community bonding period to get more familiar with the code, to discuss with my mentors to see if I haven’t missed anything so that I can start writing code from the beginning of the coding period. Below you can find a more detailed schedule:
- Community bonding: discuss with mentors, research, get familiar with the code
- Week 1: solving the graphical issues - items not shown. At the end of this week all items should appear even though their behaviour might not work yet.
- Week 2: source management so that at this end of the week Moun has the sources ready to be used.
- Week 3: installing new software + time for unexpected problems.
- Week 4: dealing with package updates, checking package status and any other things that need to be done so that Muon is fully functional in Debian.
- Week 5: testing to make sure that everything works as expected (testing would be done separately for muon, muon discover and muon installer in order to have all of them working). Also, preparing for midterm evaluation.
- Week 6-7: working at the ratings and review management system. At the end of week 7 Muon integration in Debian should be done. Also, at least 2 days are reserved for testing.
- Week 9-11: working at the search feature: design of an algorithm, implementation and testing
- Week 12: more testing and time reserved for unexpected problems
- Week 13: final testing and preparing the final evaluation
The above schedule is orientative. I tried making it as realistic as possible and reserved time for unexpected problems that might appear. If everything goes fine and finish all the features earlier, I will start working at other improvements.
Exams and other commitments: The starting coding period overlaps a bit with my exam period (I will probably have one or two exams in the last weeks of May), but this shouldn’t be an issue: if necessary I will start coding earlier so that everything goes according to schedule. Also, in July I will have my final paper presentation (one or two days). This shouldn't be an inconvenient because I plan to have my final paper done until the coding period starts.
Other summer plans: No other plans.
Why Debian?: For the past 4 years, I use linux as my main operating system, especially for programming projects. Even though I tried quite a few distributions during the years they were all Debian based. Last year, I took an operating system course and I started to develop my passion for this field. The things I learned in this course (about OS internals) made me have a deeper understanding of how computers are working which can only be translated in a better, more optimized code. Now, I pursue an advanced operating system course (kernel programming) and I find it very interesting and useful. Even though my selected project aims on the interface and on the user aspect, I’ve chosen Debian I will have the chance to work in the future on both sides: kernel side and user side.
- Are you applying for other projects in SoC?: Yes, I will apply for other GSoC projects.
Finally, I want to thank you for taking time to read my proposal. I hope we will collaborate during this summer but also after GSoC.