Google Summer of Code 2011

From PC-BSD Wiki
Revision as of 09:32, 10 March 2011 by Drulavigne (Talk | contribs)

Jump to: navigation, search

Application to be Mentoring Organization

The following is the information the PC-BSD Project provided in its application to be a Google Summer of Code 2011 mentoring organization.

Project description:

The PC-BSD Project, founded in 2005, produces a BSD-licensed desktop operating system. While the underlying core of the operating system is based on FreeBSD, the PC-BSD Project focuses on the desktop user rather than on system administrators who manage production systems. This means that the PC-BSD Project maintains a separate code base for the utilities that desktop users need but which are not provided by the FreeBSD Project. Examples include a graphical installer and graphical utilities for common tasks such as networking, firewall management, jail management, software management, and user management. All of these utilities needed to be written from scratch as equivalents did not exist for BSD-based operating systems. PC-BSD also created the PBI software management system which is separate from FreeBSD ports and packages and allows users to easily browse for, install, uninstall, and upgrade both their applications and operating system. PC-BSD has been localized into over 50 languages, has its own development and documentation teams, and maintains its own website, trac database, forums, IRC channel, blog, and social media sites. It has an active community of beta testers, translators, code contributors, and advocates, as well as a community manager to assist new contributors.

Why is your organization applying to participate in Google Summer of Code 2011? What do you hope to gain by participating?

A good portion of PC-BSD users are currently in college or university and use PC-BSD for its price, usability, and because they want to learn more about how operating systems work and are developed. We would like to be able to give students the opportunity to learn more about PC-BSD and to mentor them so that they can become active contributors within the Project. We also appreciate the exposure that a project receives for its GSoC participation.

Did your organization participate in past Google Summer of Codes?

If we are accepted, this will be our first GSoC.

If your organization has not previously participated in Google Summer of Code, have you applied in the past? If so, for what year(s)?

We submitted an application in 2010.

What license(s) does your project use?

BSD 3-clause for code and CC-BY 3.0 for documentation.

What is the URL for your Ideas page?

http://wiki.pcbsd.org/index.php/Google_Summer_of_Code_2011#Ideas_for_Student_Projects

What is the main development mailing list for your organization?

The main development list is dev.

The full listing of available mailing lists is on the listinfo page.

What is the main IRC channel for your organization?

#pcbsd on IRC freenode

Does your organization have an application template you would like to see students use? If so, please provide it now.

Yes, it is here.

What criteria did you use to select these individuals as mentors? Please be as specific as possible.

Our mentors are interested in providing mentoring, have commit access to the codebase, are adept in the required languages (QT, C), and are willing to provide the necessary time commitment to GSoc participants.

What is your plan for dealing with disappearing students?

We plan for mentors to have daily communication with their mentees and for students to provide regular, mandatory student reports. Students will also be required to maintain a presence on the IRC channel and mailing list. Mentors, as well as the rest of the development and testing community, will provide feedback on commits (commit messages are automatically emailed to developers and testers). This constant feedback should allow us to be aware of potential problems and give us time to try to address them.

What is your plan for dealing with disappearing mentors?

Mentors are active within the PC-BSD communication channels so we are aware pretty quickly if/when any life events occur which constrain their availability. We do have a pool of active contributors available to choose from should a mentor become unavailable.

What steps will you take to encourage students to interact with your project's community before, during and after the program?

We will provide a wiki and blog space where students can post their status reports. The development mailing list and IRC channel are quite active and the community is responsive to requests for help, general brainstorming, and code testing. We will also make the community aware of each project's status through our social media sites. Our project ideas page encourages students to join the IRC channel and development list before the program begins to give them an opportunity to discuss their ideas and become familiar with the community that will be assisting them. Once the project is complete, students will be encouraged to maintain regular contact, even if they choose not to become an active contributor to the Project.

What will you do to ensure that your accepted students stick with the project after Google Summer of Code concludes?

We will profile each students' accomplishments on our website and social media sites and will encourage students to maintain a presence on the PC-BSD communication channels.

Ideas for Student Projects

The following list are ideas for projects that we think would make good Google Summer of Code candidates. Please note that project ideas are not limited to this list. Feel free to brainstorm your idea at #pcbsd on IRC Freenode or on the PC-BSD development list. Before submitting your application, double-check that it includes all of the information in the submission template.

Suggested Projects:

Hardware probe script

This project would automatically run at system boot, taking the information from dmesg, pciconf, usbconfig, etc. and populate appropriate values to rc.conf, loader.conf, sysctl.conf, etc. One suggested approach would be to use . The design should allow the probed information to be populated to a database such as

Touch screen driver

This project requires knowledge of

Wireless drivers

The following drivers are needed:

Broadcom based: BCM4310, BCM4313, BCM43225, DW1501

Realtek based: RT2760T, RTL8185, RTL8191SE, RTL8187SE, RTL8192SE

Your project should list which specific drivers will be written. Knowledge of C and driver interfaces is required.

Bluetooth gui

This project requires knowledge of QT

Finish Graphical Boot Loader

This project requires knowledge of

give URL to OliverFromme's work

Animated boot screen

This project requires knowledge of

Student Application Template

Students are responsible for writing a proposal and submitting it to xx before the application deadline of March xx. Your proposal needs to include the following information:

  • First and Last Name
  • Email Address
  • Phone Number
  • IRC and/or Skype Name
  • Availability: how many hours per week will you spend working on GSoC and what other obligations (such as work, school, vacation, etc.) do you have this summer? Be as specific as possible: when will the project begin and and? You should be ready to produce a day by day schedule before the program starts. Please note that participating in Google Summer of Code is a significant time commitment and you should not apply if you have a full-time job planned for the summer.
  • Bio: what skills do you bring to this project? Have you had any past involvement with the PC-BSD Project? If your project includes programming in a particular language, such as C or QT, what experience do you have? Have you ever used a trac or svn? Have you completed courses that will be relevant to your project idea? What do you think you will need to learn to complete this project?
  • Project Title: a descriptive title in forty characters or less.
  • Project Description: include a few paragraphs to describe your project. Don't just cut/paste from the ideas page; instead describe your research into the problem and your solution. Explain what you will be doing and how it will benefit the PC-BSD Project.
  • Deliverables: provide a list of quantifiable results and related code milestones. We suggest at least two milestones before the mid-term evaluations and two after. This schedule should include multiple commit points so others can test your work as early as possible.
  • Test Plan: what parts of your code need testing and how do you plan to test them? This might include both functionality and performance tests.
  • Project Schedule: how long will your project take? On what date can you begin work?