Google Summer of Code 2010: Wrap up report
In the past four years, the Haiku Project has had both the honor and privilege of being a Mentoring Organization in Google Summer of Code™. This is a wonderful opportunity for the Project, as it exposes Haiku to many potential youthful and energetic minds that are interested in developing Open Source Software. Even more exciting, it provides a unique opportunity of generating income for the Project while growing a handful of carefully selected students into knowledgeable and potential long-term contributors.In the larger scope of Google Summer of Code, here is a passage by Carol Smith from Google's Open Source Blog:
Over 2000 mentors and over 1000 students from 69 countries began working together on over 150 open source software projects, and we're happy to announce that 89% of our student participants have received passing final evaluations, which is about 4% better than 2009. This is our best success rate to date.
Specifically for the Haiku Project in 2010, seven students were allotted. Of those, five students successfully passed the program! During the program, one student (Alex Wilson) was granted commit access to the Haiku Project. Additionally, numerous students have expressed plans to continue contributing in the future.
At the moment, IPv6 is not included in default images. However, basic IP address assignment, ICMP, and ping6 is working. Some code, which includes NetServer and ifconfig has yet to be merged and is accessible at his github account: haikuipv6.
Atis plans to continue working on the existing problems in the network stack (e.g., #6502) and to eventually bring IPv6 to a fully working status.
Janito Vaqueiro Ferreira Filho
Ext3 Indexed Directory Lookup was committed in r37295 and was needed for implementing read support. For write support, the basics of journaling is implemented, but needs more thorough testing. The majority of his code was committed earlier in the week as r38573. In addition to working on ext support, Janito fixed some issues relating to BFS and the block cache. (r37899, r38103 )
Lucian Adrian Grijincu
Lucian was one of the most promising students during the initial selection phase and a clear majority of our mentors voiced votes of confidence in him. However, he did not receive a passing evaluation at midterms. This was due to a combination of both failing to reply to his mentor's inquiries for a period several weeks and the code produced not being reflective of the time leading upto midterms. The code is hosted on his github account: lkl-linux-2.6, lkl-haiku-fs.
Shortly after the start of the coding period, Christopher received news that his university had retracted their word on accepting Google Summer of Code as a valid internship. This necessitated changes to his project proposal -- specifically reducing the scope of the project to DVD support.
Originally, he started out making a media plug-in, but finally opted for an add-on. The latter provided better interfacing and control for application -- mostly because the library needs path information. Other problems cropped up, such as the absence of a demuxing node and faulty mpeg decoding. This led to the realization that the kit needs more before it can do the job. Christopher has even presented some thoughts Pitching Media Kit ideas Alternatives to plug-in sniffing A true streaming equivalent of BDataIO His code is hosted on his github account: Haiku-DVD-addon
As mentioned in his recent blog post, the Services Kit is capable of handling HTTP requests (file uploading, POST requests, authentication, cookie support, ...). It supports asynchronous as well as synchronous requests. Lastly, Christophe has started updating WebPositive to utilize Services Kit. This provides a real world test-bed scenario & will improve WebPositive by replacing the cURL backend with native API.
Nathan did not receive a passing evaluation at finals. Maintaining regular communication and providing in-progress patches were the two big factors leading to that decision. As for the project status, overall the kernel is not completed. The majority of the code is stubbed out, but important bits, such as vm86 & SMP are not implemented. Additionally, paging and jumping into long mode have issues that need to be resolved. Nathan has mentioned that, the project "proved to be a more difficult challenge that [he] expected." An older set of patches are available on Trac: #6306, #6307, #6308, #6309, #6310.
This involved archiving of BLayout, BLayoutItem and subclasses (#5525), deriving BLayout from BLayoutItem (#6407), and updating numerous applications to use the new Layout API. In addition to his original proposal, numerous archiving features were implemented as part of #6256 (BArchiver, BUnarchiver, BArchivable)
Alex was also granted commit access halfway through the coding period! In the future, he plans to working towards making the Layout API suitable for public consumption.
In closing ...
As always, many thanks to: Google for sponsoring this program and allowing the Haiku Project to participate, Carol Smith (Google Summer of Code Program Administrator), and our mentors who helped make this endeavor successful.
More important than the short-term code contributions is that the students are now more experienced open source developers -- specifically for Haiku. One student is now a full fledged contributor to the Project, and several others show promise of growing into contributors. This empowers them with the confidence and ability to continue making valued contributions to Haiku (or any open source project for that matter). As an open source project that develops an operating system, our pool of active committers is relatively small and being able to embrace new contributors is literally a wonderful thing.
As with every year of participating in Google Summer of Code as a Mentoring Organization, we try to identify areas that can be improved for next year.
- what we as a Mentoring Organization want to achieve (from both Google Summer of Code overall and from each student)
- the concept of our Mentor Pool, as opposed to a strict "This is my mentor" mentality
- expectations and guidelines for students (how their progress is evaluated for pass/fail, the expected interactions, ...)
- introducing more milestones (to make the time more manageable for the students)
- re-organizing the student application template (requiring a timeline, what the student expects from the mentor, ...)
All in all, this was another successful year for Haiku. Congratulations to all who have participated!
- Back into Google Summer of Code
- Haiku mentors once more in Google's Code-In
- Media Kit Contract Underway
- WLAN Master Thesis Published
- Haiku's GCI 2015 winners
- Google Code-In 2015 now in progress
- Haiku, Inc. board of director elections complete
- Analysis of Haiku Operating System (BeOS Family) by PVS-Studio
- Haiku at VALS' second Semester of Code