Name: Gustavo Prado Alkmim
Contact/Email: galkmim@gmail.com, alkmim on irc.debian.org
Background:
-- Graduado em Ciência da Computação pela Universidade Federal de Lavras (Brazil). -- Ex-membro of Tecnolovre, a cooperative speciallized on open-source based solution. (www.tecnolivre.com.br They have also a very incomplete english page: http://www.tecnolivre.com.br/?p[l]=en) -- Estudante de Mestrado pela Universidade Estadual de Campinas. -- Advanced Skills on C/C++ and shellscript languages -- Basic Skills on Python and Java languages -- Network Linux Administration -- Linux user since 2005. -- Experience with the proposed project: In the last xxx weeks I started to take a look on the code and think on solutions. I have already done a high level approach of the verification function.
I graduated in Computer Science at the Federal University of Lavras (Ufla/Brazil). I was a member of a cooperative in which we were specialized on open source software based solutions. Currently, I am a master student at State University of Campinas (Unicamp/Brazil), working with Future Internet. I used linux since the very early of my graduation. I am a experienced programmer in C++ and shellscript and I have basic skills on python and java and I have no problems in start on another programming language like perl. I have also compiled linux kernel something about yourself: technical skills, experience, etc. Who are you? What makes you the best person to work on this project? I graduated in Computer Science at the Federal University of Lavras (Ufla/Brazil). I was a member of a cooperative in which we were specialized on open source software based solutions. Currently, I am a master student at State University of Campinas (Unicamp/Brazil), working with Future Internet. I used linux since the very early of my undergraduation. I am a advanced programmer in C/C++ and shellscript and I have basic skills on python and java and I have no problems in start on another programming language like perl. I have also compiled linux kernel something about yourself: technical skills, experience, etc. Who are you? What makes you the best person to work on this project?
Project title: Apt ordering code improvements
Synopsis: The objective of this project can summarize in five points:
- 1 - Insert a function to verify the correctness of the ordered list (dependency checking). This envolves to create a new function and call it on the end of the order process. 2 - Create other type of ordenations according to various constraints. 3 - Divide the ordered list in independent lists that can be processed in parallel (probabily use the idea of graphs). This envolves change the structure of the orderlist.h file (create a way to store the independent lists). 4 - Create a way to parallelize the installation process. (using independent list created in step 2). This envolves other files too. 5 - Add regression tests with various known configurations to test the new (and old) code
Benefits to Debian: The libapt is an important part of the debian package manager.
The ordering code is essencial do guarantees that packages are going to be installed in the right order. Considering this fact, a function the verifies the correctness of this ordering is very important (Objective 1). It will ensure that broken packages are not goint to appear "imprevisible" while the intalation occurs. Also, ordering the packages according to other constraints are also an interesting improvement (Objective 2). The objectives 3 e 4 are going to increase a lot the performance of the installation/download of the packages. Considering that currently processor have up to 4 cores, the ability to make parallel downloads is very interesting. Finally, the objective 5 is very important to test the new code and old codes. Also, any new improvements on the apt ordering may be verified using this regression tests.
Deliverables: quantifiable results e.g. 'Port Debian to VAX', 'Write 3 articles for X website'.
- 1 -
Project details: a more detailed description.
- - Estágio atual:
Project schedule: I'm going to start to work on this project next week. I know the possibili
how long will the project take? When can you begin work?
Other summer plans: are you getting married? Do you have a long vacation planned? Are you expecting to start a job? Be aware that if you are accepted for the summer, then Google will be paying you as though you were working for them. We (in Debian) will therefore expect you to be working 35-40 hours per week on your project. It is very unlikely that you will be able to combine a successful SoC with another summer job working for somebody else.
Exams and other commitments: I don't have any kind of exams. Possibly I may submit articles from my research, but I know how to conciliate it and I hope this will not interfere on GSoC.
If you are a Debian Developer: What added value can you bring to this project by doing it as part of the Summer of Code rather than as part of your usual Debian work ?
I'm not a Debian Developer
If you are not a Debian Developer: Do you have plans for Debian after the summer ?
I am not a Debian Developer yet, but I got very interested on it while I was studying the code and discussing ideas with the mentor. I discover that we may do very good things while working on our normal jobs (or university in my case). I really want to keep the work on the apt code after the GSoC even if my proposal were not chosed, I will try to work on it.
