FreeBSD Google Code-in Tasks
== Contact channels ==se
IRC |
#freebsd-soc @ EFNET |
|
Mailing list |
freebsd-hackers@ <freebsd-hackers AT FreeBSD DOT org> |
You MUST put 'GCIN' as a first word of the 'Subject' line |
You may find a sample template for the task proposal below.
What GCIN is for FreeBSD?? READ THIS : GoogleCodeIn
MENTORS MUST READ THIS: http://code.google.com/p/google-code-in/wiki/GCIAdminMentorInformation
You are not allowed to put unmentored tasks on this list!!!
Consider this page to be semi-moderated. Expect to be e-mailed, if something is missing from your proposal. <!-- we can filter these out later if required.
"Code" category is fine for small fixes. Participants can't own a copyright for the contributed stuff. In other words, due to being < 18 (21), participants can not submit stuff, which would require 'Copyright (c) ....' line.
-->
Table of contents
Contents
- FreeBSD Google Code-in Tasks
-
Completed tasks
- Describe ZFS' reservation feature in the handbook chapter about ZFS
- Describe ZFS' quota feature in the handbook chapter about ZFS
- Add a small section about MythTV to the FreeBSD handbook's multimedia chapter
- Add a chapter about embedded systems and the flattened device tree to the FreeBSD developers handbook
- Create the FreeBSD cheat sheet
- Create a handbook section about how to use Wireless Mesh Networking
- Write a section on WINE in the freebsd virtualization handbook chapter
- Describe how to use Synaptics touchpad in the X11 configuration section of the FreeBSD handbook
- Update screenshots and version information of alpine in the mailers subsection of the electronic mail chapter of the FreeBSD handbook
- Update the developer tools section of the FreeBSD developers handbook with a list of tools on a wiki page
- Document how syscalls are added to the system based on instructions listed on a wiki page
- Add a section to the FreeBSD handbook on how to use the kismet software to debug WI-FI problems based on instructions from a wiki page
- Add an article on Asus Eee PC based on instructions from a wiki page
- Check the FreeBSD handbook's bibliography appendix B for broken links/references
- Check the FreeBSD commercial vendors webpage for broken links/references
- Add a description about the source TinderBox to the FreeBSD developers handbook based on content from a wiki page
- FreeBSD poster for Google 'Summer of Code' and 'Code In' events
- New www.FreeBSD.org front page graphics layout
- Merge notes on Linuxisms from a wiki page to the FreeBSD porters handbook
- Document the new ports license infrastructure in the FreeBSD porters handbook
- Mention and encourage the use of http://portscout.cc in the FreeBSD porters handbook
- Document missing ports meta variables in the FreeBSD porters handbook
- Document the MOVED file in the FreeBSD porters handbook
- Create a new section in the FreeBSD handbook's filesystem chapter about supported Linux filesystems
- Make FreeBSD 9 promotional video
- Add QEmu as a host option to the FreeBSD handbook chapter on virtualization based on content from a wiki page
- Update a section of the FreeBSD documentation on CVSup to match current reality
- Create some FreeBSD artwork
- Implement FreeBSD community portal (FCP1) - login
- Implement FreeBSD community portal (FCP2) - SQL tables for FCP1
- Implement FreeBSD community portal (FCP3) - displaying profile page
- Implement FreeBSD community portal (FCP4) - groups functionality
- Implement FreeBSD community portal (FCP5) - private message
- Implement FreeBSD community portal (FCP6) - file upload from WWW
- Implement FreeBSD community portal (FCP7) - file upload from the command line
- Create a chapter for the FreeBSD developers handbook based on the notes in the SubversionPrimer
- Write an article about FreeBSD on MacBooks based on a FreeBSD wiki page
- Update the FreeBSD handbook chapter about FreeBSD and VirtualBox based on information from a wiki page
- Write a section in the electronic mail chapter of the FreeBSD handbook on using sSMTP in a secure manner based on instructions given in a wiki page
- Update the FreeBSD handbook with information on DTrace based on content from a wiki page
- Update the FreeBSD on laptops article with information about tuning power consumption
- Convert the ErnstDeHaan/AppServerJails wiki page into a separate article (Tomcat)
- Write a GNATS to SQL converter script
- Write a section in the FreeBSD developers handbook about debugging the kernel with DCons
- Create a FreeBSD ports/packages cheat sheet
- Prepare screencast from new FreeBSD 9.0 installer for !YouTube portal
-
Tasks not completed (copied to 2012 page)
- Document /dev
- Profile libc++
- Describe how to create a ZFS mirror pool in the FreeBSD handbook
- Describe the ZFS deduplication feature in the handbook chapter about ZFS
- Update the xorg configuration section of the FreeBSD handbook on how to configure X11 without HAL support in addition to the one that currently explains the use of HAL and move common setup items to the front
- Write an article about using FreeBSD with clang/llvm
- Update the IPsec section of the FreeBSD handbook which is still using gifconfig(4), which is based on FreeBSD 4.X only
- Describe ZFS compression in a separate subsection (remove it from the 21.2.2.2 ZFS RAID-Z subsection) and various compression algorithms (lzjb, gzip) in the handbook chapter about ZFS
- Describe how to use ZFS snapshots in a separate subsection (remove it from the 21.2.2.2 ZFS RAID-Z subsection) of the handbook's ZFS chapter
- Write a chapter about the new TTY layer for the FreeBSD developers handbook
- Describe the TMPFS filesystem for /tmp (pros and cons) in the FreeBSD handbook
- FreeBSD atheros 802.11n work - help with tools
- Create a chapter for the FreeBSD developers handbook showing how to use mercurial for FreeBSD development
- Create a chapter for the FreeBSD developers handbook showing how to use GIT for FreeBSD development
- Update the FreeBSD handbook's printer chapter by adding a description on the CUPS system to use network printers and USB printers
- Improve indexing of the FreeBSD handbook
- POSIX conformance of command line utilities
- POSIX conformance of header files and C functions
- Update the FreeBSD developers handbook on debugging modules with newer instructions from a wiki page
-
Tasks that were not added
- Describe the Media Independent Interface (MIIBus) in the FreeBSD developers handbook based on content from a wiki page
- Update the FreeBSD FAQ with information about common USB problems and how to solve them based on instructions in a wiki page
- Demonstrate UFS Journaling recovery in a video
- Find FreeBSD man pages that do not have an EXAMPLES section
- Translate the "Why you should use a BSD style license for your Open Source Project" article into German
- Add some hints on benchmarking the system to the FreeBSD developers handbook
- TEMPLATE: Name of a task (task must be very small and very granular)
Completed tasks
Describe ZFS' reservation feature in the handbook chapter about ZFS
Category |
Documentation |
Difficulty |
easy |
Time limit |
4-12 |
Mentor |
<pgj AT freebsd DOT org> |
Requirements |
A new subsection in the ZFS chapter of the FreeBSD handbook explains the reservation feature of ZFS and what the benefits are with an example (i.e. using programlisting tags). It has to have correctly formatted SGML according to our Documentation Primer. |
Description of task
The FreeBSD operating system supports the ZFS file system, which supports a feature called reservation. This technique allows the user to set a storage reservation which guarantees that the filesystems saves the set amount of disk space. For example, setting a 1 GB reservation on the /mypool/music zfs file system tells the system that no matter how little space is left, at least 1 GB is preserved to copy 1 GB of data to the music directory. This is helpful in planning future storage space use or for temporarily limiting the complete allocation of disk space. The basics of reservation need to be explained with some examples and the procedure of activating it must be described in the handbook for our user community.
Task requires:
A FreeBSD system (in a VirtualBox Virtual Machine) installed on your computer.
Knowledge of the documentation guidelines for the FreeBSD project: http://www.freebsd.org/doc/en_US.ISO8859-1/books/fdp-primer/
- Make yourself familiar with ZFS using it's manual page (by typing "man zpool" and "man zfs" in a terminal)
- Check out a copy of the documentation tree from the documentation repository to get the source code for the chapter
Describe ZFS' quota feature in the handbook chapter about ZFS
Category |
Documentation |
Difficulty |
easy |
Time limit |
4-12 |
Mentor |
<pgj AT freebsd DOT org> |
Requirements |
A new subsection in the ZFS chapter of the FreeBSD handbook explains the quota feature of ZFS and what the benefits are with an example (i.e. using programlisting tags). It has to have correctly formatted SGML according to our Documentation Primer. |
Description of task
The FreeBSD operating system supports the ZFS file system, which supports a feature called quota. Basically, quotas can be used to limit users from using up all the disk space when multiple users share the disk space. The basics of zfs quotas need to be explained with some examples and the procedure of activating it must be described in the handbook for our user community.
Task requires:
A FreeBSD system (in a VirtualBox Virtual Machine) installed on your computer.
Knowledge of the documentation guidelines for the FreeBSD project: http://www.freebsd.org/doc/en_US.ISO8859-1/books/fdp-primer/
- Make yourself familiar with ZFS using it's manual page (by typing "man zpool" and "man zfs" in a terminal)
- Check out a copy of the documentation tree from the documentation repository to get the source code for the chapter
Add a small section about MythTV to the FreeBSD handbook's multimedia chapter
Category |
Documentation |
Difficulty |
medium |
Time limit |
7-15 |
Mentor |
<decke AT freebsd DOT org> |
Requirements |
A subsection in the FreeBSD multimedia handbook chapter containing the information from the MythTV wiki page with correct markup ready to be committed |
Description of task
There is a howto in the FreeBSD wiki on how to use MythTV on FreeBSD: MythTV We want to have this in our FreeBSD handbook chapter on multimedia to help our users run this software. If possible, the howto needs to be tested whether it still works as described with the current version of MythTV available in the FreeBSD Ports Collection.
Task requires:
A FreeBSD system (in a VirtualBox Virtual Machine) installed on your computer.
Knowledge of the documentation guidelines for the FreeBSD project: http://www.freebsd.org/doc/en_US.ISO8859-1/books/fdp-primer/
- Check out a copy of the documentation tree from the documentation repository to get the source code for the chapter
Add a chapter about embedded systems and the flattened device tree to the FreeBSD developers handbook
Category |
Documentation |
Difficulty |
medium |
Time limit |
14-25 |
Mentor |
<gavin AT freebsd DOT org>, <jceel AT freebsd DOT org> |
Requirements |
The FreeBSD developers handbook has a new chapter explaining the things developers need to take care of when developing FreeBSD for embedded systems and how they can make use of the flattened device tree that many of these systems support nowadays. |
Description of task
An important part when developing embedded FreeBSD systems is the knowledge on how to use the flattened device tree (FDT), which is different than the device tree on non-embedded systems. The following FreeBSD wiki page has information on the structure of the FDT and how developers can get device information from it: FlattenedDeviceTree A new chapter in the FreeBSD developers handbook needs to be created to get this information in one place where developers are likely to look for it and where we can point people to when questions about the FDT are being asked. When adding these instructions to the developers handbook, the source code for the chapter needs to be correctly formatted and must conform to our documentation source code style guidelines.
Task requires:
A FreeBSD system (in a VirtualBox Virtual Machine) installed on your computer.
Knowledge of the documentation guidelines for the FreeBSD project: http://www.freebsd.org/doc/en_US.ISO8859-1/books/fdp-primer/
- Check out a copy of the documentation tree from the documentation repository to get the source code for the chapter
Create the FreeBSD cheat sheet
Category |
Outreach |
Difficulty |
medium |
Time limit |
<= 15 |
Mentor |
<wkoszek AT freebsd DOT org> <eadler AT freebsd DOT org> |
Requirements |
2-page (A4) PDF with the most important files/examples/commands for FreeBSD setup and configuration |
Description of a task
Participant will study other cheatsheets available for popular tools: the VIM editor, the Emacs editor, the GIMP graphics program and others.
Layout for the cheat sheet is up to the participant. The idea of the layout will me coordinated with the mentor.
Participant will install FreeBSD system in the VirtualBox virtual machine and will accomplish this from the command line. Next, FreeBSD will get configured to be able to communicate easily with the Internet. VM should have SSHD available, so that it's possible to get an access to the VM from the SSH client, from the main system (host).
The whole process will be convered in the cheatsheet. e.g.: if you modify /etc/ssh/sshd_config, sample configuration lines and its parameters must be documented in the cheatsheet.
Create a handbook section about how to use Wireless Mesh Networking
Category |
Documentation |
Difficulty |
medium |
Time limit |
10-23 |
Mentor |
<adrian AT freebsd DOT org> |
Requirements |
A new, separate chapter containing the information from the WiFi/Mesh wiki page with correct markup ready to be committed |
Description of task
There is a howto in the FreeBSD wiki on how to create and use a wireless network with FreeBSD: WiFi/Mesh We want to have this in a separate article to instruct our users on how to create such a network. If possible, the howto needs to be checked whether it still works as described.
Task requires:
- Several FreeBSD systems (on real hardware) with mesh-supported network cards.
Knowledge of the documentation guidelines for the FreeBSD project: http://www.freebsd.org/doc/en_US.ISO8859-1/books/fdp-primer/
- Check out a copy of the documentation tree from the documentation repository to get the source code for the chapter
Write a section on WINE in the freebsd virtualization handbook chapter
Category |
Documentation |
Difficulty |
medium |
Time limit |
12-20 |
Mentor |
<uqs AT freebsd DOT org> |
Requirements |
A new, separate subsection in the FreeBSD handbook containing the information from the Wine wiki page with correct markup ready to be committed |
Description of task
There is a howto in the FreeBSD wiki on how to use WINE to run certain software on FreeBSD that are not natively available: Wine We want to have this in a separate subsection in this FreeBSD handbook chapter: http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/virtualization-host.html
- If possible, the howto needs to be tested whether it still works as described with the current version of WINE available in the FreeBSD Ports Collection.
Task requires:
A FreeBSD system (in a VirtualBox Virtual Machine) installed on your computer.
Knowledge of the documentation guidelines for the FreeBSD project: http://www.freebsd.org/doc/en_US.ISO8859-1/books/fdp-primer/
- Check out a copy of the documentation tree from the documentation repository to get the source code for the chapter
Describe how to use Synaptics touchpad in the X11 configuration section of the FreeBSD handbook
Category |
Documentation |
Difficulty |
medium |
Time limit |
10-20 |
Mentor |
<rea AT freebsd DOT org> <eadler AT freebsd DOT org> |
Requirements |
a new subsection containing instructions on how the Synaptics touchpad is configured is added to the FreeBSD handbook chapter on configuring X11 |
Description of task
To use the Synaptics touchpad, users need to configure it. These steps are listed in a wiki page, but not yet in the FreeBSD handbook: SynapticsTouchpad To make this part of the official FreeBSD documentation, it needs to be added to the FreeBSD handbook chapter on X11 and it's configuration: http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/x-config.html The goal is to put the contents of the wiki into the handbook with some descriptive text and the neccessary steps/options the user has to set in order to use the touchpad. The content added to the handbook needs to conform to our official FreeBSD documentation markup and style.
Task requires:
A FreeBSD system (in a VirtualBox Virtual Machine) installed on your computer.
Knowledge of the documentation guidelines for the FreeBSD project: http://www.freebsd.org/doc/en_US.ISO8859-1/books/fdp-primer/
- Check out a copy of the documentation tree from the documentation repository to get the source code for the chapter
Update screenshots and version information of alpine in the mailers subsection of the electronic mail chapter of the FreeBSD handbook
Category |
Documentation |
Difficulty |
easy |
Time limit |
5-12 |
Mentor |
<pgj AT freebsd DOT org> |
Requirements |
Updated screenshots of the lastest alpine version appear in the chapter about electronic mail of the FreeBSD handbook |
Description of task
The FreeBSD handbook chapter on electronic mail explains how to use the alpine mailer. However, the screenshots in http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/mail-agents.html section need to be updated to show current version of alpine instead of pine 4.58. The security warning also needs to be revisited whether it is still relevant.
Task requires:
A FreeBSD system (in a VirtualBox Virtual Machine) installed on your computer.
Knowledge of the documentation guidelines for the FreeBSD project: http://www.freebsd.org/doc/en_US.ISO8859-1/books/fdp-primer/
- Check out a copy of the documentation tree from the documentation repository to get the source code for the chapter
Update the developer tools section of the FreeBSD developers handbook with a list of tools on a wiki page
Category |
Documentation |
Difficulty |
medium |
Time limit |
7-15 |
Mentor |
<gavin AT freebsd DOT org> |
Requirements |
The FreeBSD developers handbook is updated with the developer tools listed on the wiki page. |
Description of task
The FreeBSD developers handbook has a chapter explaining various tools that come in handy when developing software for FreeBSD: http://www.freebsd.org/doc/en_US.ISO8859-1/books/developers-handbook/tools.html Another list of useful tools was created on the following wiki page: DevTools We want to have the developers handbook updated with the tools listed on that wiki page so that developers find all the tools in one place (the handbook, not the wiki). When adding these tools to the developers handbook, the source code for the chapter needs to be correctly formatted and must conform to our documentation source code style guidelines.
Task requires:
A FreeBSD system (in a VirtualBox Virtual Machine) installed on your computer.
Knowledge of the documentation guidelines for the FreeBSD project: http://www.freebsd.org/doc/en_US.ISO8859-1/books/fdp-primer/
- Check out a copy of the documentation tree from the documentation repository to get the source code for the chapter
Document how syscalls are added to the system based on instructions listed on a wiki page
Category |
Documentation |
Difficulty |
medium |
Time limit |
10-15 |
Mentor |
<rea AT freebsd DOT org> |
Requirements |
The FreeBSD developers handbook has a new chapter/section explaining how syscalls are added to the system. |
Description of task
An important part when developing software for the FreeBSD operating system is the knowledge on how to add syscalls. Developers, who do not know how to do this will require instructions in the developers handbook to help them get started with this. A page in the FreeBSD wiki shows how this can be done: AddingSyscalls The goal is to use the information of said wiki page to create a new chapter/subsection in the developers handbook. When adding these instructions to the developers handbook, the source code for the chapter needs to be correctly formatted and must conform to our documentation source code style guidelines.
Task requires:
A FreeBSD system (in a VirtualBox Virtual Machine) installed on your computer.
Knowledge of the documentation guidelines for the FreeBSD project: http://www.freebsd.org/doc/en_US.ISO8859-1/books/fdp-primer/
- Check out a copy of the documentation tree from the documentation repository to get the source code for the chapter
Add a section to the FreeBSD handbook on how to use the kismet software to debug WI-FI problems based on instructions from a wiki page
Category |
Documentation |
Difficulty |
easy |
Time limit |
10-12 |
Mentor |
<jceel AT freebsd DOT org> |
Requirements |
The FreeBSD handbook chapter on networking contains the new information on how to use kismet to debug WI-FI connections from the wiki page. |
Description of task
There are instructions in the FreeBSD wiki to help users debug WI-FI connections using the kismet software available in the ports collection: Kismet This information would be useful to our userbase to troubleshoot problems they might encounter with different WI-FI adapters/drivers/connections. This information needs to be added to the FreeBSD handbook or an appropriate preexisting article on WI-FI. The information added in that way needs to conform to FreeBSD's documentation formatting and style guidelines described in the FreeBSD documentation primer: http://www.freebsd.org/doc/en_US.ISO8859-1/books/fdp-primer/
Task requires:
A FreeBSD system (in a VirtualBox Virtual Machine) installed on your computer.
Knowledge of the documentation guidelines for the FreeBSD project: http://www.freebsd.org/doc/en_US.ISO8859-1/books/fdp-primer/
- Check out a copy of the documentation tree from the documentation repository to get the source code for the chapter
Add an article on Asus Eee PC based on instructions from a wiki page
Category |
Documentation |
Difficulty |
easy |
Time limit |
12-18 |
Mentor |
<jceel AT freebsd DOT org> |
Requirements |
The FreeBSD documentation set has a new article describing how to properly run FreeBSD on Asus Eee PCs. |
Description of task
There are instructions in the FreeBSD wiki to help users of various Asus Eee PC platforms run FreeBSD: Laptops/Asus_Eee The information in there would make a good article for users that want to use FreeBSD as an operating system in these systems. The article added needs to conform to FreeBSD's documentation formatting and style guidelines described in the FreeBSD documentation primer: http://www.freebsd.org/doc/en_US.ISO8859-1/books/fdp-primer/
Task requires:
A FreeBSD system (in a VirtualBox Virtual Machine) installed on your computer.
Knowledge of the documentation guidelines for the FreeBSD project: http://www.freebsd.org/doc/en_US.ISO8859-1/books/fdp-primer/
- Check out a copy of the documentation tree from the documentation repository to get the source code for the chapter
- Basic knowledge on how to create FreeBSD articles or take a preexisting article as a template
Check the FreeBSD handbook's bibliography appendix B for broken links/references
Category |
Research, Documentation |
Difficulty |
easy |
Time limit |
4-6 |
Mentor |
<gavin AT FreeBSD DOT org> |
Requirements |
The FreeBSD handbook's bibliography appendix B has no broken links in it. |
Description of task
The FreeBSD handbook's bibliography appendix B contains many links to external sites: http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/bibliography.html Some of these sites might not be available anymore, have moved or may contain new information not related to FreeBSD. In order to keep that section up to date, the objective of this task is to go through the whole appendix B and check whether the links are still correct and point to the source mentioned in the text. Broken links should be reported to your mentor. If you find other (updated) links that contain the information, update the broken links accordingly. If the information the link pointed to does not exist anymore, discuss with your mentor whether just the link or the whole information should be removed.
Task requires:
A FreeBSD system (in a VirtualBox Virtual Machine) installed on your computer.
Knowledge of the documentation guidelines for the FreeBSD project: http://www.freebsd.org/doc/en_US.ISO8859-1/books/fdp-primer/
- Check out a copy of the documentation tree from the documentation repository to get the source code for the chapter
- Knowledge on how to research information on the internet
- Thorough work style
Check the FreeBSD commercial vendors webpage for broken links/references
Category |
Research, Documentation |
Difficulty |
easy |
Time limit |
6-12 |
Mentor |
<gavin AT FreeBSD DOT org> |
Requirements |
The FreeBSD commercial vendors web page does not contain any broken links. |
Description of task
The FreeBSD project maintains a link on its webpage to external sites where commercial vendors offer services around FreeBSD: http://www.freebsd.org/commercial/commercial.html Some of these sites might not be available anymore, have moved or may contain new information not related to FreeBSD anymore. In order to keep that web page up to date, the objective of this task is to go through all the links and check whether the vendors still exist and still offer the services they advertise as described. Broken links should be reported to your mentor. If you find that their homepage has moved to a new location, update the broken links accordingly. If the information the link pointed to does not exist anymore (i.e. vendor is out of business) or has been replaced by a new site (like a page for linkfarming), discuss with your mentor whether just the link or the whole vendor information should be removed.
Task requires:
A FreeBSD system (in a VirtualBox Virtual Machine) installed on your computer.
Knowledge of the documentation guidelines for the FreeBSD project: http://www.freebsd.org/doc/en_US.ISO8859-1/books/fdp-primer/
- Check out a copy of the documentation tree from the documentation repository to get the source code for the chapter
- Knowledge on how to research information on the internet
- Thorough work style
Add a description about the source TinderBox to the FreeBSD developers handbook based on content from a wiki page
Category |
Documentation |
Difficulty |
medium |
Time limit |
14-22 |
Mentor |
<gjb AT FreeBSD DOT org>, <des AT freebsd DOT org> |
Requirements |
The FreeBSD developers handbook will have a new chapter about the source tinderbox, describing its functionality and how to use it. |
Description of task
The source tinderbox is a set of scripts that automates the checkout of the latest sources from the FreeBSD repository, the compilation of the sources, creating build logs and monitoring individual tinderbox instances. In order to expose more developers to tinderbox' functionality, it needs to be documented in the FreeBSD developers handbook. A wiki page has details on tinderbox and is available here: Tinderbox
To complete the task, the information from that wiki page need to be put into the developers handbook along with examples and/or descriptive text that shows what tinderbox is capable of. The new content needs to conform to our documentation code style guidelines as outlined in the Documentation Project Primer for New Committers (see below).
Task requires:
A FreeBSD system (in a VirtualBox Virtual Machine) installed on your computer.
Knowledge of the documentation guidelines for the FreeBSD project: http://www.freebsd.org/doc/en_US.ISO8859-1/books/fdp-primer/
- Check out a copy of the documentation tree from the documentation repository to get the source code for the chapter
FreeBSD poster for Google 'Summer of Code' and 'Code In' events
Category |
Outreach |
Difficulty |
medium, hard |
Time limit |
> 15 hours |
Mentor |
<wkoszek AT freebsd DOT org>, <jceel AT freebsd DOT org> |
Requirements |
Participant will deliver a GIMP template of a poster for The FreeBSD Project advertising Google GSoC/GCIN programmes |
Description of a task
The purpose of this task is to advertise Google Open Source programs among young people and college students.
Participant will create a template of a poster for advertising FreeBSD in the context of Google Code-In and Google Summer of Code programmes. The poster must be ready to be sticked to the university's front door. It must be something very easy to read and simple (simple as in 'Artistic minimalism' not as 'Do this task as quickly as possible').
The poster must be something you would like to see on your own school's wall with advertisements.
Technical proposal
You must create a layout (preferably white, since it always plays nicely with other colors) which will be able to accomodate two logos: GCIN/GSoC logo and FreeBSD logo.
Sample logos
Logo must be easily replacable. Think of your template to be used over next 5 years. We must be able to take the template, be able to copy & paste new logos for 2014 and render it nicely. In other words: your template to be valuable must be reusable.
Mentor of this project is not a judge. Use your own imagination. The poster layout must be practical. Look at previous GCIN/GSoC logos. Take a look at their sizes (they vary). Take a look at colors (they vary too). Come up with something attractive.
Participant must be fluent in GIMP or any other FREE graphics program. She/he must be technically skilled and artistically talented.
New www.FreeBSD.org front page graphics layout
Category |
Outreach |
Difficulty |
medium |
Time limit |
> 15 hours |
Mentor |
<wkoszek AT freebsd DOT org>, <gjb AT freebsd DOT org> |
Requirements |
Graphical template for new FreeBSD web page |
Description of a task
Current page of The FreeBSD Project doesn't meet our expectations. We think new page layout must be created. New page must meet all new design goals and usability metrics. New page must be beautiful.
Page should conform all Web 2.0 style standards. It must be minimalistic, yet very practical. It must contain one drop-down menu with most popular options. Additionally, it must contain columns of the most crucial information for users (like the current one, but better).
Screen space consumption must be exploited. In the perfect case page would take 100% width of the available space or be created with 12-column 960px template.
For inspiration, take a look at:
Our page COULD look similar.
Ideal candidate would study Jacob Nielsen web page on web usability:
You must read all articles in bold font.
Merge notes on Linuxisms from a wiki page to the FreeBSD porters handbook
Category |
Documentation |
Difficulty |
easy |
Time limit |
10-14 |
Mentor |
<rea AT freebsd DOT org> |
Requirements |
The FreeBSD porters handbook will have a new section explaining what people that are working on ports from Linux need to be aware of when adding them to the FreeBSD ports collection. |
Description of task
The FreeBSD ports collection consists of a variety of ported software that oftentimes was not originally written for FreeBSD. As such, porters who want to make this software available for FreeBSD users, need to make special arrangements in order to run the software from other Unix-like operating systems such as GNU/Linux. Instructions and helpful advice on how to do that is available on the following wiki page: Ports/PortabilityGuidelines
The contents of said wiki page needs to be converted into a separate section of the FreeBSD porters handbook so that porters can find this information easily. When adding these instructions (and possibly examples) to the porters handbook, the source code needs to be correctly formatted and must conform to our documentation source code style guidelines.
Task requires:
A FreeBSD system (in a VirtualBox Virtual Machine) installed on your computer.
Knowledge of the documentation guidelines for the FreeBSD project: http://www.freebsd.org/doc/en_US.ISO8859-1/books/fdp-primer/
- Check out a copy of the documentation tree from the documentation repository to get the source code for the chapter
Document the new ports license infrastructure in the FreeBSD porters handbook
Category |
Documentation |
Difficulty |
easy |
Time limit |
12-18 |
Mentor |
<gjb AT FreeBSD DOT org> |
Requirements |
The FreeBSD porters handbook will have a new section explaining the new license infrastructure and how to use it in new ports that are added to the ports collection. |
Description of task
The FreeBSD ports collection consists of a variety of ported software which come with very different licenses. People/companies who are using the ports collection may sometimes opt to not accept/use ports that has a certain license clause in them that they do not find acceptable. The new license infrastructure allows people set explicitly set which licenses they want to accept and which one to deny, which results in the port not being installed. This license infrastructure is fairly new and has not been documented in the porters handbook yet. The following wiki page has more information on this license infrastructure: Ports/LicenseInfrastructure
The task is to convert the relevant parts of that wiki page into a new section of the porters handbook explaining what porters have to do in order to make new ports use this new license infrastructure. When adding these instructions (and possibly examples) to the porters handbook, the source code needs to be correctly formatted and must conform to our documentation source code style guidelines.
Task requires:
A FreeBSD system (in a VirtualBox Virtual Machine) installed on your computer.
Knowledge of the documentation guidelines for the FreeBSD project: http://www.freebsd.org/doc/en_US.ISO8859-1/books/fdp-primer/
- Check out a copy of the documentation tree from the documentation repository to get the source code for the chapter
Mention and encourage the use of http://portscout.cc in the FreeBSD porters handbook
Category |
Documentation |
Difficulty |
easy |
Time limit |
6-10 |
Mentor |
<gjb AT FreeBSD DOT org> |
Requirements |
The FreeBSD porters handbook will have a new section showing the benefits of portscout. |
Description of task
The FreeBSD porters handbook need to have a link to http://portscout.cc so that more people make use of it. A short explanation on portscout in general should be added as well. When adding these instructions to the porters handbook, the source code needs to be correctly formatted and must conform to our documentation source code style guidelines.
Task requires:
A FreeBSD system (in a VirtualBox Virtual Machine) installed on your computer.
Knowledge of the documentation guidelines for the FreeBSD project: http://www.freebsd.org/doc/en_US.ISO8859-1/books/fdp-primer/
- Check out a copy of the documentation tree from the documentation repository to get the source code for the chapter
Document missing ports meta variables in the FreeBSD porters handbook
Category |
Documentation |
Difficulty |
easy |
Time limit |
6-10 |
Mentor |
<rea AT freebsd DOT org> |
Requirements |
The FreeBSD porters handbook will have all the missing meta variables along with a short description of its options. |
Description of task
The FreeBSD porters handbook has a short list of variables that exist in the ports infrastructure in order to encapsulate common dependencies that many ports have. This list is incomplete and can be found here: http://www.freebsd.org/doc/en/books/porters-handbook/makefile-depend.html#USE-VARS
A list of USE_variables (i.e. USE_MYSQL, USE_PGSQL, USE_SQLITE) can be found in the files located in the /usr/ports/Mk directory of a FreeBSD system. These have to be added to the porters handbook along with a description to help people creating ports make use of these variables. When adding these instructions to the porters handbook, the source code needs to be correctly formatted and must conform to our documentation source code style guidelines.
Task requires:
A FreeBSD system (in a VirtualBox Virtual Machine) installed on your computer.
Knowledge of the documentation guidelines for the FreeBSD project: http://www.freebsd.org/doc/en_US.ISO8859-1/books/fdp-primer/
- Check out a copy of the documentation tree from the documentation repository to get the source code for the chapter
Document the MOVED file in the FreeBSD porters handbook
Category |
Documentation |
Difficulty |
easy |
Time limit |
6-10 |
Mentor |
<gjb AT FreeBSD DOT org> |
Requirements |
The FreeBSD porters handbook will have a description of the MOVED file, explaining it's purpose. |
Description of task
The FreeBSD ports collection contains a file called MOVED, which has "a list of (recently) moved or removed ports". This file is not documented in the FreeBSD porters handbook at the moment, but is nevertheless useful when i.e. ports get renamed. A section in the porters handbook should explain the structure and purpose of this file and when to use it. When adding these instructions to the porters handbook, the source code needs to be correctly formatted and must conform to our documentation source code style guidelines.
Task requires:
A FreeBSD system (in a VirtualBox Virtual Machine) installed on your computer.
Knowledge of the documentation guidelines for the FreeBSD project: http://www.freebsd.org/doc/en_US.ISO8859-1/books/fdp-primer/
- Check out a copy of the documentation tree from the documentation repository to get the source code for the chapter
Create a new section in the FreeBSD handbook's filesystem chapter about supported Linux filesystems
Category |
Documentation, Research |
Difficulty |
medium |
Time limit |
20-24 |
Mentor |
<gavin AT FreeBSD DOT org> |
Requirements |
The FreeBSD handbook contains a new chapter on Linux filesystems describing how they can be used in FreeBSD. |
Description of task
FreeBSD supports a number of filesystems that are used on Linux, but these are currently not documented in the FreeBSD handbook's filesystem chapter. A new subchapter "Linux filesystems" or similar is to be created and the following supported filesystems should be put there in separate subsections:
The sections on each of these filesystems don't neccessarily have to be big, but should describe at least:
- a brief description
- a few characteristics
- how it can be used/mounted in FreeBSD (usage examples can be taken from the man pages)
These sections can then be extended by the FreeBSD community once this task is complete (that's why the initial sections don't have to be big). You can find the most information you'll need when describing these filesystems in the man pages linked above. Wikipedia and a search on the web can also provide information, but keep it focused on FreeBSD.
Task requires:
A FreeBSD system (in a VirtualBox Virtual Machine) installed on your computer.
Knowledge of the documentation guidelines for the FreeBSD project: http://www.freebsd.org/doc/en_US.ISO8859-1/books/fdp-primer/
- Check out a copy of the documentation tree from the documentation repository to get the source code for the chapter
- Basic web research skills
- Motivation to learn more about these filesystems
Make FreeBSD 9 promotional video
Category |
Outreach |
Difficulty |
hard |
Time limit |
5 days |
Mentor |
<wkoszek AT freebsd DOT org> <eadler AT FreeBSD DOT org> |
Requirements |
Participant will create 1 minute video and upload it to YouTube |
Description of a task
Participant will make an attractive promotional video for the FreeBSD 9 system. The video may take any form. There's only one requirement: it must be the best OS promotional video out there.
Add QEmu as a host option to the FreeBSD handbook chapter on virtualization based on content from a wiki page
Category |
Documentation |
Difficulty |
easy |
Time limit |
14-22 |
Mentor |
<gavin AT FreeBSD DOT org> |
Requirements |
The FreeBSD handbook will have a new section describing the use of QEmu to virtualize other systems on FreeBSD. |
Description of task
QEmu is a popular CPU emulator that is available in the FreeBSD ports collection under emulators/qemu. It can be used as a virtualization platform to emulate other processors/systems running on FreeBSD as a host. The FreeBSD handbook already has a chapter on virtualization, however, QEmu is not covered there yet. The purpose of this task is to create a section within this chapter describing QEmu and how it can be set up as a host on FreeBSD. The following wiki page can be used as a source of information: qemu Although care must be taken as some information is likely outdated and needs to be tested on recent versions of FreeBSD. The added information in the handbook page needs to conform to FreeBSD's documentation formatting and style guidelines described in the FreeBSD documentation primer: http://www.freebsd.org/doc/en_US.ISO8859-1/books/fdp-primer/
Task requires:
A FreeBSD system (in a VirtualBox Virtual Machine) installed on your computer.
Knowledge of the documentation guidelines for the FreeBSD project: http://www.freebsd.org/doc/en_US.ISO8859-1/books/fdp-primer/
- Check out a copy of the documentation tree from the documentation repository to get the source code for the chapter
- Knowledge about QEmu would be helpful, but is not required to work on this task.
Update a section of the FreeBSD documentation on CVSup to match current reality
Category |
Documentation |
Difficulty |
medium |
Time limit |
5 days |
Mentor |
<gavin AT FreeBSD DOT org> |
Requirements |
Updates to a page |
Description of Task
A page of the FreeBSD documentation, http://www.freebsd.org/doc/handbook/cvsup.html , was written several years ago and hasn't really been updated since. Whilst most of the details are still technically correct, one major change is that the "csup" application only mentioned in passing is now available in all supported versions of FreeBSD, and is now the recommended way of obtaining the source code. This page needs reworking so that "csup" is the preferred application to use throughout, with mention of CVSup moved to a "note" section, rather than the other way around.
The page will also benefit from being read over by somebody less familiar with the subject area, and any parts which are unclear should be reworked or reworded in order to make the page easier for first-time readers to use.
Task Requirements
Students are encouraged to use a FreeBSD system like our VirtualBox image to test the procedure, but can also use the information available online.
Please read ../GettingStarted before accepting this task, as it contains further details on what this task consists of, as well as providing useful information on how to obtain the page source and how to proceed with the task.
Create some FreeBSD artwork
Category |
Outreach |
Difficulty |
easy |
Time limit |
5 |
Mentor |
<eadler AT freebsd DOT org> <gjb AT freebsd DOT org> |
Requirements |
Participant will create some FreeBSD wallpapers or other decorative art |
Description of a task
This is a task for the creative person. We would like some nice wallpapers, logos, screen savers, or anything else aesthetically pleasing to feature on the FreeBSD website. Please see http://www.freebsd.org/logo.html for existing FreeBSD graphics and logos.
Task Requirements
This task may be completed using whatever tools you are comfortable with. Resulting work can be submitted in the format most suitable for the task selected.
This is a task for the creative person. We would like some nice wallpapers, logos, screen savers, or anything else aesthetically pleasing to feature on the FreeBSD website.
Implement FreeBSD community portal (FCP1) - login
Category |
Code, Research, Outreach |
Difficulty |
hard |
Time limit |
5 days |
Mentor |
<wkoszek AT freebsd DOT org> 2NDMENTORNEEDED |
Requirements |
Minimal login form with PHP sources and a screencast showing how it works |
Description of a task
This is a research task. It may or may not be deployed in production systems. No effort has been made to coordinate this task with the FreeBSD Core Team.
Your task is to implement the very basic FreeBSD community portal as a WWW site. The WWW portal will present simple Username/Password login form to the user, and will support logging in from: Facebook, LinkedIn, Yahoo, Google, MSN.
After logging in, site will present basic user's information fetched from FB/Y!/Google/MSN (Facebook and LinkedIn is required, the rest is optional).
User must create sample Facebook application, so that the functionality is indeed tested in practice. Picking non-FreeBSD app name is adviced. Good Work-In-Progress app name is: "freebsd_gcin".
Technology choice is up to you, but PHP is preferred (Facebook API is in PHP at least). No framework is required to accomplish the task; frameworks aren't prohibited. In case of not using any framework, please follow the MVC design principles.
Please follow Steve's Krug "Don't make me think" principles as well as Jacob Nielsen's useability rules. In other words: make it as minimalistic and simple as possible.
Implement FreeBSD community portal (FCP2) - SQL tables for FCP1
Category |
Code, Research, Outreach |
Difficulty |
hard |
Time limit |
5 days |
Mentor |
<wkoszek AT freebsd DOT org> 2NDMENTORNEEDED |
Requirements |
.sh script which will create SQL tables for profile's data |
Description of a task
This is a research task. It may or may not be deployed in production systems. No effort has been made to coordinate this task with the FreeBSD Core Team.
The WWW portal will fetch the basic user information from other social/community sites (explained in FCP1 tasks) and will have to store them in SQL database.
Your task is to design SQL tables so that storing basic user information is possible on the portal's side. In other words: we'd like to be able to use create user's profile with name/surname fetched from LinkedIn. By basic user information we understand whatever user information is exported from Facebook or LinkedIn, for example. You must check by yourself (or by coordinating it with FCP1 participant) which information is that. Example of basic user information include: name, surname, age, country of residence, interests etc..
We require as little confidential data as possible. It is more likely to get users accept potential 'freebsd_gcin' app if they require only basic credentials.
After fetching the information, we perform INSERTions to the SQL database.
1 database and 1 table created in it are fine.
Technology choice is up to you, but PHP is preferred (Facebook API is in PHP at least). No framework is required to accomplish the task; however, frameworks aren't prohibited. In case of not using any framework, please follow the MVC design principles.
Implement FreeBSD community portal (FCP3) - displaying profile page
Category |
Code, Research, Outreach |
Difficulty |
hard |
Time limit |
5 days |
Mentor |
<wkoszek AT freebsd DOT org> 2NDMENTORNEEDED |
Requirements |
PHP form being able to handle UTF-8 formated text and insert it into SQL row database |
Description of a task
This is a research task. It may or may not be deployed in production systems. No effort has been made to coordinate this task with the FreeBSD Core Team.
The WWW form will fetch UTF-8 formated data from the HTML form and insert it to the simpliest possible SQL database. Data user could be asked for include: interests, "About me", "Free time", "Hobby", tags (aka tags in blogs, Wikis etc..).
The database's table format doesn't have to be 'final'. The goal of this task is to show, that WWW form can handle e.g.: Polish diacritic characters or Russian Cyrillic alphabet and store it in the database. Onca again: SQL table can be trivial. It can be as simple as 4 fields being able to handle text data.
Please follow Steve's Krug "Don't make me think" principles as well as Jacob Nielsen's useability rules when designing the WWW form. In other words: make it as minimalistic and simple as possible.
Technology choice is up to you, but PHP is preferred (Facebook API is in PHP at least). No framework is required to accomplish the task; however, frameworks aren't prohibited. In case of not using any framework, please follow the MVC design principles.
Implement FreeBSD community portal (FCP4) - groups functionality
Category |
Code, Research, Outreach |
Difficulty |
hard |
Time limit |
5 days |
Mentor |
<wkoszek AT freebsd DOT org> 2NDMENTORNEEDED |
Requirements |
.sh script which will create SQL table for user groups, PHP script for assigning to the group |
Description of a task
This is a research task. It may or may not be deployed in production systems. No effort has been made to coordinate this task with the FreeBSD Core Team.
For this task you assume users are collected in simple: ID, NAME, SURNAME SQL table. Your task is to implement 'groups' SQL table, where users can get grouped.
Next, you must write simple PHP script which assumes, that variable $user_id holds user ID. For now make it static and equal to 123:
- $user_id = 123;
Script must show available groups in three rows: 'Group name', 'Subscribe', 'Unsubscribe'. Group name is always displayed. 'Subscribe' column has buttons with 'Subscribe' label only when user can subscribe. 'Unsubscribe' columnt has buttons with 'Unsubscribe' label only when user can unsubscribe. If the user isn't yet in a group, he can subscribe. User can unsubscribe only when he's already in that group. We keep such a layout for usability reasons. Example:
Group name |
|
|
|
System administrators |
Subscribe |
|
|
Web development |
Subscribe |
|
|
Programming |
|
Unsubscribe |
(user already is in that group) |
Kernel bugs |
|
Unsubscribe |
(same here) |
Bug reports |
Subscribe |
|
He isn't here yet |
Please follow Steve's Krug "Don't make me think" principles as well as Jacob Nielsen's useability rules when designing the WWW form. In other words: make it as minimalistic and simple as possible.
Technology choice is up to you, but PHP is preferred (Facebook API is in PHP at least). No framework is required to accomplish the task; however, frameworks aren't prohibited. In case of not using any framework, please follow the MVC design principles.
Implement FreeBSD community portal (FCP5) - private message
Category |
Code, Research, Outreach |
Difficulty |
hard |
Time limit |
5 days |
Mentor |
<wkoszek AT freebsd DOT org> 2NDMENTORNEEDED |
Requirements |
PHP script with a Private Message form |
Description of a task
This is a research task. It may or may not be deployed in production systems. No effort has been made to coordinate this task with the FreeBSD Core Team.
For this task you assume users are collected in a simple: ID, NAME, MSG_ID, MESSAGE_TEXT SQL table. Your task is to implement 'Private message' functionality -- ability for user X to send a private message to user Y.
For simplicity, you can assume user X is a source user and his ID is 123 and is present in variable $user_src_id:
- $user_src_id = 123;
For simplicity, you can assume user Y is a destination user and his ID is 999 and is present in variable $user_dest_id:
- $user_dest_id = 999.
Alternatively, you can make destination ID be fetched from the WWW form (this is harder, but preferred). No validation for IDs must be done for simplicity.
Script must be able to (1) present HTML form with message title, text and 'Send' button (2) accept UTF-8 formatted input (3) submit it to the destination user's table.
Please follow Steve's Krug "Don't make me think" principles as well as Jacob Nielsen's useability rules when designing the WWW form. In other words: make it as minimalistic and simple as possible.
Technology choice is up to you, but PHP is preferred (Facebook API is in PHP at least). No framework is required to accomplish the task; however, frameworks aren't prohibited. In case of not using any framework, please follow the MVC design principles.
Implement FreeBSD community portal (FCP6) - file upload from WWW
Category |
Code, Research, Outreach |
Difficulty |
hard |
Time limit |
5 days |
Mentor |
<wkoszek AT freebsd DOT org> 2NDMENTORNEEDED |
Requirements |
PHP script with a file upload functionality |
Description of a task
This is a research task. It may or may not be deployed in production systems. No effort has been made to coordinate this task with the FreeBSD Core Team.
In order to accomplish this task you must implement a PHP script with a form asking a user for a file to upload. Once the user clicks 'Upload', file is send to the server and (1) filename of the file is stored in the SQL database (2) SHA1 checksum of the contents of the file is calculated (3) the file is stored to the file name which is equal to the SHA1 value. SQL table can be very simple - FILE_ID, FILENAME, SHA1_CHECKSUM
Example:
You have 'freebsd.txt' text file which has 'FreeBSD' in it. Once the user uploads the 'freebsd.txt' file, SHA1 is calculated and the result is '5ca5c2e9f3fd4fae8db2f481cc2ae65c649c4365'; file is saved to '5ca5c2e9f3fd4fae8db2f481cc2ae65c649c4365.db' file, and values(1, 'freebsd.txt', 5ca5c2e9f3fd4fae8db2f481cc2ae65c649c4365.db) land in the SQL table.
Uploaded files should be kept in 'db' directory. So the full path to the file saved should be 'db/5ca5c2e9f3fd4fae8db2f481cc2ae65c649c4365.db'.
Please follow Steve's Krug "Don't make me think" principles as well as Jacob Nielsen's useability rules when designing the WWW form. In other words: make it as minimalistic and simple as possible.
Technology choice is up to you, but PHP is preferred (Facebook API is in PHP at least). No framework is required to accomplish the task; however, frameworks aren't prohibited. In case of not using any framework, please follow the MVC design principles.
Implement FreeBSD community portal (FCP7) - file upload from the command line
Category |
Code, Research, Outreach |
Difficulty |
hard |
Time limit |
5 days |
Mentor |
<wkoszek AT freebsd DOT org> 2NDMENTORNEEDED |
Requirements |
.sh or C/.php script which can upload file from a local disk to the WWW page |
Description of a task
This is a research task. It may or may not be deployed in production systems. No effort has been made to coordinate this task with the FreeBSD Core Team.
In order to accomplish this task you must implement a .sh/ANSI C and .php programs/scripts which work together.
This is VERY important functionality. Think of sending bug reports and kernel panic messages on a system failure. Users could make their rc.conf fit their 'FreeBSD community portal' settings and make bug reports be sent automatically or semi-automatically, after administrator's confirmation.
Client: The client side must be able to work as a part of the FreeBSD base system. In other words - it is your task to find a way to take whatever we have already in the base system and make it send a file via HTTP. Base system means 'minimal system with no additional applications installed'. Examples of possible solutions: you analyze how fetch(1) program is written and you try to use its routines/libraries to implement file upload functionality.
Server:
The PHP side of things should be smart enough to receive a request for the file upload. Details on how to handle uploading and saving are explained in detail FCP6 task (SHA1-based naming scheme). Please follow the rules explained there.
Please follow Steve's Krug "Don't make me think" principles as well as Jacob Nielsen's useability rules when designing the WWW form. In other words: make it as minimalistic and simple as possible.
It is important to understand that client must work from the bare system installation. Technology choice is up to you, but PHP is preferred (Facebook API is in PHP at least). No framework is required to accomplish the task; however, frameworks aren't prohibited. In case of not using any framework, please follow the MVC design principles.
Create a chapter for the FreeBSD developers handbook based on the notes in the SubversionPrimer
Category |
Documentation |
Difficulty |
medium |
Time limit |
15-25 |
Mentor |
<rea AT freebsd DOT org>, <des AT freebsd DOT org> |
Requirements |
The FreeBSD developers handbook will have a new chapter giving information on the use of Subversion and FreeBSD specifics like the repository layout and daily work. |
Description of task
The FreeBSD project is using the Subversion (SVN) source code management system to store and retrieve all sources for the system. To help developers work with SVN and the FreeBSD repository, a wiki page was created called the SubversionPrimer
This Primer needs to be moved into the developers handbook as a separate chapter (divided into subchapters as neccessary) so that all information for developers is available in one place. When adding these instructions and examples to the developers handbook, the source code needs to be correctly formatted and must conform to our documentation source code style guidelines.
Task requires:
A FreeBSD system (in a VirtualBox Virtual Machine) installed on your computer.
Knowledge of the documentation guidelines for the FreeBSD project: http://www.freebsd.org/doc/en_US.ISO8859-1/books/fdp-primer/
- Check out a copy of the documentation tree from the documentation repository to get the source code for the chapter
- Basic knowledge of source code management systems like SVN or any other
Write an article about FreeBSD on MacBooks based on a FreeBSD wiki page
Category |
Documentation |
Difficulty |
easy |
Time limit |
6-12 |
Mentor |
<crees AT freebsd DOT org>, <jceel AT freebsd DOT org>, <gjb AT FreeBSD DOT org> |
Requirements |
A separate article is created which explains the steps needed to run FreeBSD on Apple MacBooks |
Description of task
The FreeBSD operating system can be run on Apple MacBooks. There are some special things that are required when doing so, which are described in the following FreeBSD wiki page: AppleMacbook
The contents of that wiki page must be described in an article for our user community.
Task requires:
A FreeBSD system (in a VirtualBox Virtual Machine) installed on your computer.
Knowledge of the documentation guidelines for the FreeBSD project: http://www.freebsd.org/doc/en_US.ISO8859-1/books/fdp-primer/
- Check out a copy of the documentation tree from the documentation repository to get the source code for the chapter
Update the FreeBSD handbook chapter about FreeBSD and VirtualBox based on information from a wiki page
Category |
Documentation |
Difficulty |
easy |
Time limit |
4-10 |
Mentor |
<beat AT freebsd DOT org>, <decke AT freebsd DOT org> |
Requirements |
the contents of the wiki page are available in the FreeBSD handbook chapter about VirtualBox |
Description of task
The FreeBSD operating system supports the VirtualBox software to run other operating systems. A wiki page describes the latest steps and things that need to be taken care of when doing so: VirtualBox
This information needs to be put into the handbook subsection about VirtualBox: http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/virtualization-host.html
Task requires:
A FreeBSD system (in a VirtualBox Virtual Machine) installed on your computer.
Knowledge of the documentation guidelines for the FreeBSD project: http://www.freebsd.org/doc/en_US.ISO8859-1/books/fdp-primer/
- Check out a copy of the documentation tree from the documentation repository to get the source code for the chapter
Write a section in the electronic mail chapter of the FreeBSD handbook on using sSMTP in a secure manner based on instructions given in a wiki page
Category |
Documentation |
Difficulty |
medium |
Time limit |
10-20 |
Mentor |
<rea AT freebsd DOT org> |
Requirements |
The FreeBSD handbook will have a new subsection on using sSMTP in a secure manner in the electronic mail chapter. |
Description of task
The sSMTP is a send-only mail server that is used widely on systems to send status mail to administrators without running a full mail server. To set up such a system in a secure manner, some configuration has to be made. These steps are detailed in the following wiki page: Ports/mail/ssmtp
In order to expose this to more of our users, we need to have this in our FreeBSD handbook in the electronic mail chapter. The task is to test whether the instructions given are still valid and if they are, to document them in the FreeBSD handbook with the proper style that fits the rest of the handbook. When adding these instructions and examples to the handbook, the source code needs to be correctly formatted and must conform to our documentation source code style guidelines.
Task requires:
A FreeBSD system (in a VirtualBox Virtual Machine) installed on your computer.
Knowledge of the documentation guidelines for the FreeBSD project: http://www.freebsd.org/doc/en_US.ISO8859-1/books/fdp-primer/
- Check out a copy of the documentation tree from the documentation repository to get the source code for the chapter
- Basic knowledge of SMTP would be helpful
Update the FreeBSD handbook with information on DTrace based on content from a wiki page
Category |
Research, Documentation, Code |
Difficulty |
medium |
Time limit |
12-20 |
Mentor |
<pgj AT freebsd DOT org> |
Requirements |
The FreeBSD handbook will have an updated chapter on DTrace with the latest information about DTrace in FreeBSD and how to use it (with examples). |
Description of task
The FreeBSD handbook has a chapter on DTrace, which was ported to FreeBSD: http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/dtrace.html
However, it does not contain the latest information on DTrace for current releases of FreeBSD. The following wiki pages have detailed information on how to use DTrace:
Your task is to take the information from the wiki page and put the relevant parts (examples, scripts, etc.) into the handbook chapter on DTrace so that more users make use of DTrace's capabilities. The new content of that chapter needs to conform to our documentation code style guidelines as outlined in the Documentation Project Primer for New Committers (see below).
Task requires:
A FreeBSD system (in a VirtualBox Virtual Machine) installed on your computer.
Knowledge of the documentation guidelines for the FreeBSD project: http://www.freebsd.org/doc/en_US.ISO8859-1/books/fdp-primer/
- Check out a copy of the documentation tree from the documentation repository to get the source code for the chapter
Update the FreeBSD on laptops article with information about tuning power consumption
Category |
Documentation |
Difficulty |
medium |
Time limit |
5-15 |
Mentor |
<bcr AT freebsd DOT org> |
Requirements |
the FreeBSD on laptops article contains the new information from the wiki page on TuningPowerConsumption |
Description of task
There is an article about how to use FreeBSD on laptops. It does not have a section on how to tune power consumption to get more battery live when running it on battery power only. There is a wiki page with some steps that describe what one can do to achieve this: TuningPowerConsumption The goal is to update the article with the information presented in the wiki page so that the a separate chapter describes the steps on what you can do to preserve power.
Task requires:
A FreeBSD system (in a VirtualBox Virtual Machine) installed on your computer.
Knowledge of the documentation guidelines for the FreeBSD project: http://www.freebsd.org/doc/en_US.ISO8859-1/books/fdp-primer/
- Check out a copy of the documentation tree from the documentation repository to get the source code for the chapter
Convert the ErnstDeHaan/AppServerJails wiki page into a separate article (Tomcat)
Category |
Documentation |
Difficulty |
medium |
Time limit |
7-20 |
Mentor |
<gjb AT FreeBSD DOT org> |
Requirements |
A new, separate article containing the information from the ErnstDeHaan/AppServerJails wiki page with correct markup ready to be committed for our users |
Description of task
There is a howto in the FreeBSD wiki on creating a tomcat server with a focus on security
We want to have this in a separate article to instruct our users on how to create such a system. The version information of the software might be outdated, so the howto needs to be checked whether it still works as described.
Task requires:
A FreeBSD system (in a VirtualBox Virtual Machine) installed on your computer.
Knowledge of the documentation guidelines for the FreeBSD project: http://www.freebsd.org/doc/en_US.ISO8859-1/books/fdp-primer/
- Check out a copy of the documentation tree from the documentation repository to get the source code for the chapter
Write a GNATS to SQL converter script
Category |
Code, Research |
Difficulty |
medium, hard |
Time limit |
5 |
Mentor |
<eadler AT freebsd DOT org> |
Requirements |
Participant will upload GNATS-to-SQL converter |
Description of a task
The target of this task is to research, whether conversion from GNATS to SQL database is possible.
Participant must mirror at least 2000 tasks from the GNATS database, create SQL tables based on the GNATS database bug format, and write a script, which will bring bug reports from ASCII to SQL database.
No specific technology is required for this task. Script can be written in any modern programming language. Perl is well known to be the best for text processing, but using Perl for this task isn't a requirement.
Write a section in the FreeBSD developers handbook about debugging the kernel with DCons
Category |
Documentation |
Difficulty |
easy |
Time limit |
10-30 |
Mentor |
<gavin AT freebsd DOT org> |
Requirements |
The FreeBSD developers handbook has a new subsection in the debugging chapter about using Dcons to debug the system. |
Description of task
The FreeBSD developers handbook outlines multiple ways to debug the system's kernel to find bugs and errors. What's missing is debugging the system using DCons. The steps to do so have been outlined in the following FreeBSD wiki page: DebugWithDcons This needs to be written as a subsection in the debugging chapter: http://www.freebsd.org/doc/en_US.ISO8859-1/books/developers-handbook/kerneldebug.html so that developers can find enough information to use DCons for that purpose. The subsection needs to be correctly formatted and must conform to our documentation source code style guidelines.
Task requires:
A FreeBSD system (in a VirtualBox Virtual Machine) installed on your computer.
Knowledge of the documentation guidelines for the FreeBSD project: http://www.freebsd.org/doc/en_US.ISO8859-1/books/fdp-primer/
- Check out a copy of the documentation tree from the documentation repository to get the source code for the chapter
Create a FreeBSD ports/packages cheat sheet
Category |
Outreach, Research |
Difficulty |
medium |
Time limit |
<= 15 |
Mentor |
<bcr AT freebsd DOT org> <eadler AT freebsd DOT org> |
Requirements |
max. 2-page (A4) PDF with the most important descriptions/examples/commands for using the FreeBSD ports collection from a user point of view |
Description of a task
The FreeBSD ports collection provides an easy way for installing, configuring and updating third party software like text editors, browsers, multimedia applications, servers, etc. on the FreeBSD operating system. The objective of this task is to create a cheat sheet for our users that contains all the neccessary information to use the ports collection for daily tasks. This cheat sheet is intended to be handed out at FreeBSD booths or to be printed at home. As such, the sheet not only needs to have listings of the required commands the user has to enter, but also a short description (as short as possible) to understand what the command does. The layout for the cheat sheet is up to the participant and can be coordinated with the task mentors. The sheet should cover the following areas (preferably in that order):
- Short description what ports/packages are
- Installing and updating the ports collection (using portsnap)
- Finding ports using (make search ...)
- Installing a port/package
- Configuring a port using make config
- Running security checks on installed ports
- Updating installed ports (using portmaster and portupgrade)
- Reporting ports problems
- Links for further information like freshports.org, the ports PR database, etc.
The following page in the FreeBSD handbook contains most of the required information: http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/ports.html
Students are encouraged to use a FreeBSD system like our VirtualBox image to test the procedure, but can also use the information available online.
Prepare screencast from new FreeBSD 9.0 installer for !YouTube portal
Category |
Outreach |
Difficulty |
easy |
Time limit |
8-20 |
Mentor |
<wkoszek AT freebsd DOT org>, <jceel AT freebsd DOT org> |
Requirements |
Screencast from the basic FreeBSD 9.0 installation published on YouTube. If the participant decided not to include audio documentary, he's expected to use YouTube 'balloons' (tooltips) to comment the video. This textual form must be done in English. |
Description of a task
FreeBSD 9.0 gained new installer called bsdinstaller. New users aren't familiar with its functionality. The goal of this task is to document FreeBSD 9.0 installer in an easily accessible way: screencast. Screencast will show new users, from the first person perspective, what you click and what you type to have FreeBSD installed. Video will get published on YouTube.
Task requires:
Have a program called VirtualBox installed on your computer.
- Have FreeBSD 9.0 ISOs downloaded on your computer (mentor will point to the valid URL link to the ISO)
- Video capture software (participant will choose the video capture software for this task)
Virtual Machine created in VirtualBox
Once Virtual Machine is created, participant will record a sessions of successful installations of the FreeBSD - one for i386 (old computers) and one for amd64 (new computers).
Once finished, participant will compare two installations and make notes on what's common and what's different between amd64 and i386. Participant will verify with the mentor whether the installation was indeed correct and whether other screencast sessions are worth recording for more coverage (e.g.: we may want to show sample configurations).
Final step will be to upload screencast(s) to the YouTube.com portal.
In case of differences between i386 and amd64, more than one videos are permitted. If i386 and amd64 happen to be installed in the same way (100% key presses necessary to get FreeBSD installed match), one uploaded video is expected.
Word to participant:
You must comment the video throught YouTube 'ballons' (tool-tips). Comments must be done in English. You're encouraged to provide step-by-step audio documentary too. (It is less work, and lets other people get more insight into what you do. Simply speaking: it's faster to provide better audio description than a written description.) Audio commentary may be done in your native language. If you don't include audio commentary, you don't loose point and you won't be graded lower. In other words: you must always provide English textual description with an eventual audio presentation of what you do.
Tasks not completed (copied to 2012 page)
Document /dev
Category |
Code / Documentation |
Difficulty |
medium |
Time limit |
20 |
Mentor |
<theraven AT freebsd DOT org> |
Requirements |
Documentation for ptmx device node. |
Description of a task
Look at the source of ptmx to find what it does and add a man page documenting it.
Profile libc++
Category |
Quality Assurance |
Difficulty |
hard |
Time limit |
40 |
Mentor |
<theraven AT freebsd DOT org> <rdivacky AT FreeBSD DOT org> |
Requirements |
Benchmarks comparing libc++ to libstdc++ and a list of performance troublespots for libc++ |
Description of a task
Compile some existing C++ code using both libc++ and libstdc++ and compare performance. Produce a set of benchmarks showing how the two compare. Identify parts of libc++ and that are slower than their libstdc++ equivalents (fixing them is optional) so that they can be addressed before FreeBSD moves to using libc++ by default.
Describe how to create a ZFS mirror pool in the FreeBSD handbook
Category |
Documentation |
Difficulty |
medium |
Time limit |
4-16 |
Mentor |
<bcr AT FreeBSD DOT org> |
Requirements |
A new subsection in the ZFS chapter of the FreeBSD handbook explains how to set up a zfs mirror in textual form with some examples (i.e. using programlisting tags). It has to have correctly formatted SGML according to our Documentation Primer. |
Description of task
The FreeBSD operating system supports the ZFS file system to create mirrors (RAID-1) of at least two storage media (i.e. disks). This procedure needs to be explained in the handbook for our user community.
Task requires:
A FreeBSD system (in a VirtualBox Virtual Machine) installed on your computer.
Knowledge of the documentation guidelines for the FreeBSD project: http://www.freebsd.org/doc/en_US.ISO8859-1/books/fdp-primer/
- Make yourself familiar with ZFS using it's manual page (by typing "man zpool" in a terminal)
- Check out a copy of the documentation tree from the documentation repository to get the source code for the chapter
Create a subsection within the ZFS chapter describing the steps to create a ZFS mirror pool Send your changes to your mentor for review.
Describe the ZFS deduplication feature in the handbook chapter about ZFS
Category |
Documentation |
Difficulty |
medium |
Time limit |
6-20 |
Mentor |
<bcr AT FreeBSD DOT org> |
Requirements |
A new subsection in the ZFS chapter of the FreeBSD handbook explains what deduplication is and what the benefits are with some examples (i.e. using programlisting tags). It has to have correctly formatted SGML according to our Documentation Primer. |
Description of task
The FreeBSD operating system supports the ZFS file system version 28, which supports a feature called deduplication. This technique allows the reduction of disk space by counting and linking the copies of a file/block on disk. For example, you are saving an email attachment of 1 MB in seven different directories on a ZFS filesystem that has deduplication activated on the underlying pool. That only takes up the 1 MB for the initial file, each further copy is just a link to the original file. In this case, it would only require 1 MB of disk space for this file, while on non-dedup filesystems, it would take up 7 MB (7 * 1 MB) storage space. These basics need to be explained and the procedure of activating deduplication shown in the handbook for our user community.
Task requires:
A FreeBSD system (in a VirtualBox Virtual Machine) installed on your computer.
Knowledge of the documentation guidelines for the FreeBSD project: http://www.freebsd.org/doc/en_US.ISO8859-1/books/fdp-primer/
- Make yourself familiar with ZFS using it's manual page (by typing "man zpool" in a terminal)
- Check out a copy of the documentation tree from the documentation repository to get the source code for the chapter
Update the xorg configuration section of the FreeBSD handbook on how to configure X11 without HAL support in addition to the one that currently explains the use of HAL and move common setup items to the front
Category |
Documentation |
Difficulty |
medium |
Time limit |
7-14 |
Mentor |
<bcr AT freebsd DOT org> <eadler AT freebsd DOT org> |
Requirements |
The X11 configuration section contains a subsection on how to configure X11 without HAL (with common items to both in a subsection before them) |
Description of task
The FreeBSD handbook page about configuring X11 (http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/x-config.html) describes how to configure the system to use the HAL system. This system is deprecated, but still in use. We want to describe to our users both ways of X.org configuration: with and without HAL. Currently, we only describe the use of HAL, not what needs to be done in order to configure X11 without it. Setup items that are common to both should be extracted and moved to a section before them to avoid redundant textual descriptions. The contents of X11 configuration subsection should look like this then:
6.4.2 Configuring X11
6.4.2.1 Common config items
6.4.2.2 Configuration without HAL
6.4.2.3 Configuration with HAL
Task requires:
A FreeBSD system (in a VirtualBox Virtual Machine) installed on your computer.
Knowledge of the documentation guidelines for the FreeBSD project: http://www.freebsd.org/doc/en_US.ISO8859-1/books/fdp-primer/
- Check out a copy of the documentation tree from the documentation repository to get the source code for the chapter
Write an article about using FreeBSD with clang/llvm
Category |
Documentation |
Difficulty |
medium |
Time limit |
10-20 |
Mentor |
<rea AT freebsd DOT org> |
Requirements |
a new article containing instructions what clang/llvm is and how to use it in FreeBSD |
Description of task
The FreeBSD system is moving to replace the GCC (GNU Compiler Collection) with clang/llvm (C language for the low level virtual machine). The following wiki page has an initial writeup of the subject with some instructions on how to use it to compile the FreeBSD base system: BuildingFreeBSDWithClang The goal is to create an article which has more detailed instructions based on this wiki page with our official FreeBSD documentation markup and style applied.
Task requires:
A FreeBSD system (in a VirtualBox Virtual Machine) installed on your computer.
Knowledge of the documentation guidelines for the FreeBSD project: http://www.freebsd.org/doc/en_US.ISO8859-1/books/fdp-primer/
- Check out a copy of the documentation tree from the documentation repository to get the source code for the chapter
Update the IPsec section of the FreeBSD handbook which is still using gifconfig(4), which is based on FreeBSD 4.X only
Category |
Documentation, Research |
Difficulty |
easy |
Time limit |
10-25 |
Mentor |
<remko AT FreeBSD DOT org> |
The objective of this task is to create a list of man pages that do not contain this string. The best way to do this is to create a script that can automatically search for that string in a set of files (man pages in this case) passed to it. Your mentor can help you with commands or advice on which programming language to use. But if you don't want to code, you can also do this task manually (or semi-manually), but this will take more time than writing and running a script to produce the list.
Task requires:
A FreeBSD system (in a VirtualBox Virtual Machine) installed on your computer.
- A checked out copy of the FreeBSD src tree (HEAD, /usr/share/man/ should suffice) to get the most current man pages
- Basic programming/scripting skills (or willingness to learn)
- Thorough workstyle
Describe ZFS compression in a separate subsection (remove it from the 21.2.2.2 ZFS RAID-Z subsection) and various compression algorithms (lzjb, gzip) in the handbook chapter about ZFS
Category |
Documentation |
Difficulty |
medium |
Time limit |
8-22 |
Mentor |
<bcr AT FreeBSD DOT org> |
Requirements |
A new subsection in the ZFS chapter of the FreeBSD handbook explains what zfs compression is and what the benefits are with some examples (i.e. using programlisting tags). The subsection 21.2.2.2 ZFS RAID-Z does not contain anything about compression after this. The section has to have correctly formatted SGML according to our Documentation Primer. |
Description of task
The FreeBSD operating system supports the ZFS file system version 28, which supports a feature called compression. This technique allows the reduction of disk space by compressing files that are being copied on such a file system and decompresses them when being used/read linking the copies of a file/block on disk. Depending on the compression algorithm used and the type of file (text file, binary file, etc.), this can yield saving disk space in some cases. Parts of it are already described in subsection 21.2.2.2 ZFS RAID-Z, which need to be removed to distinguish compression and RAID-Z features. The basics of zfs compression need to be explained, the algorithms for specific file types described and the procedure of activating and using compression shown in the handbook for our user community.
Task requires:
A FreeBSD system (in a VirtualBox Virtual Machine) installed on your computer.
Knowledge of the documentation guidelines for the FreeBSD project: http://www.freebsd.org/doc/en_US.ISO8859-1/books/fdp-primer/
- Make yourself familiar with ZFS using it's manual page (by typing "man zpool" in a terminal)
- Check out a copy of the documentation tree from the documentation repository to get the source code for the chapter
Describe how to use ZFS snapshots in a separate subsection (remove it from the 21.2.2.2 ZFS RAID-Z subsection) of the handbook's ZFS chapter
Category |
Documentation |
Difficulty |
easy |
Time limit |
4-12 |
Mentor |
<rea AT freebsd DOT org> |
Requirements |
A new subsection in the ZFS chapter of the FreeBSD handbook explains what zfs snapshots are and what their benefits are with some examples (i.e. using programlisting tags). The subsection 21.2.2.2 ZFS RAID-Z does not contain anything about snapshots after this. The section has to have correctly formatted SGML according to our Documentation Primer. |
Description of task
The FreeBSD operating system supports the ZFS file system, which has a feature called snapshot. By snapshotting a filesystem, you create an exact read-only copy right at the time the snapshot is taken. This can be used as a backup mechanism as well as when using the zfs send feature to transfer parts of the filesystem over the network to another zfs filesystem using these snapshots. The basics of zfs snapshots need to be explained with some examples and the procedure of activating/using it must be described in the handbook for our user community.
Task requires:
A FreeBSD system (in a VirtualBox Virtual Machine) installed on your computer.
Knowledge of the documentation guidelines for the FreeBSD project: http://www.freebsd.org/doc/en_US.ISO8859-1/books/fdp-primer/
- Make yourself familiar with ZFS using it's manual page (by typing "man zpool" and "man zfs" in a terminal)
- Check out a copy of the documentation tree from the documentation repository to get the source code for the chapter
Write a chapter about the new TTY layer for the FreeBSD developers handbook
Category |
Documentation |
Difficulty |
medium |
Time limit |
15-25 |
Mentor |
<ed AT freebsd DOT org> |
Requirements |
The FreeBSD developers handbook has a new chapter about the details of the new TTY layer, as well as man pages for category 9. |
Description of task
The FreeBSD developers handbook currently has no information about FreeBSD's new TTY layer. However, this has been documented in the FreeBSD wiki on the following page: TTYRedesign The task is to take the relevant information from that wiki page and create a chapter in the developers handbook to describe the new TTY layer. The chapter needs to be correctly formatted and must conform to our documentation source code style guidelines.
Task requires:
A FreeBSD system (in a VirtualBox Virtual Machine) installed on your computer.
Knowledge of the documentation guidelines for the FreeBSD project: http://www.freebsd.org/doc/en_US.ISO8859-1/books/fdp-primer/
- Check out a copy of the documentation tree from the documentation repository to get the source code for the chapter
Describe the TMPFS filesystem for /tmp (pros and cons) in the FreeBSD handbook
Category |
Documentation |
Difficulty |
easy, medium, hard |
Time limit |
4-8 |
Mentor |
<pgj AT freebsd DOT org> |
Requirements |
A new section in the filesystems chapter explains the TMPFS filesystem with an example |
Description of task
The FreeBSD operating system supports the TMPFS filesystem, which is described on the following FreeBSD wiki page, but not in the FreeBSD handbook: TMPFS The basics of TMPFS, it's pros and cons must to be explained with an example for /tmp and the procedure of activating/using it must be described in the handbook for our user community.
Task requires:
A FreeBSD system (in a VirtualBox Virtual Machine) installed on your computer.
Knowledge of the documentation guidelines for the FreeBSD project: http://www.freebsd.org/doc/en_US.ISO8859-1/books/fdp-primer/
- Make yourself familiar with TMPFS using it's manual page (by typing "man tmpfs" in a terminal or by using other sources on the web)
- Check out a copy of the documentation tree from the documentation repository to get the source code for the chapter
FreeBSD atheros 802.11n work - help with tools
Difficulty |
medium |
Time limit |
8-20 |
Mentor |
<adrian AT freebsd DOT org>, <freebsd-wireless AT freebsd DOT org> |
Requirements |
Basic knowledge of C; An ath(4) 802.11n NIC (non-USB); I can likely help you acquire one. |
Description
The athstats and wlanstats tools provide some debugging and diagnostic functionality. It would be nice to tidy these up, write up some manual pages where required, help debug some issues with the tools and eventually include them as part of the base system.
This requires some basic knowledge of C and a willingness to learn quickly. I can help you acquire a PCI/PCIe atheros NIC but you'll need to have a wireless access point (which everyone does these days, right?) Bonus points if you have an 802.11n access point.
Create a chapter for the FreeBSD developers handbook showing how to use mercurial for FreeBSD development
Category |
Documentation |
Difficulty |
medium |
Time limit |
12-23 |
Mentor |
<uqs AT freebsd DOT org> |
Requirements |
The FreeBSD developers handbook will have a new chapter giving information on the use of Mercurial for FreeBSD daily work as a developer. |
Description of task
The Mercurial source code management system can be used to send and retrieve the FreeBSD project's source code to/from the main repository. To help developers work with Mercurial and the FreeBSD repository, the following wiki page was created: LocalMercurial
The contents of this wiki page needs to be converted into the developers handbook as a separate chapter so that all information for developers who want to use Mercurial is present in one place to find. When adding these instructions and examples to the developers handbook, the source code needs to be correctly formatted and must conform to our documentation source code style guidelines.
Task requires:
A FreeBSD system (in a VirtualBox Virtual Machine) installed on your computer.
Knowledge of the documentation guidelines for the FreeBSD project: http://www.freebsd.org/doc/en_US.ISO8859-1/books/fdp-primer/
- Check out a copy of the documentation tree from the documentation repository to get the source code for the chapter
- Basic knowledge of source code management systems like Mercurial, SVN or any other
Create a chapter for the FreeBSD developers handbook showing how to use GIT for FreeBSD development
Category |
Documentation |
Difficulty |
medium |
Time limit |
12-23 |
Mentor |
<uqs AT freebsd DOT org> |
Requirements |
The FreeBSD developers handbook will have a new chapter giving information on the use of GIT for FreeBSD daily work as a developer. |
Description of task
The GIT source code management system has become popular among software developers over the years. It is possible to use it to to send and retrieve the FreeBSD project's source code to/from the main repository. To help developers work with GIT and the FreeBSD repository, the following wiki page was created that details the basic workflow: GitWorkflow
The contents of this wiki page needs to be converted into the developers handbook as a separate chapter so that all information for developers who want to use GIT is present in one place to find. When adding these instructions and examples to the developers handbook, the source code needs to be correctly formatted and must conform to our documentation source code style guidelines.
Task requires:
A FreeBSD system (in a VirtualBox Virtual Machine) installed on your computer.
Knowledge of the documentation guidelines for the FreeBSD project: http://www.freebsd.org/doc/en_US.ISO8859-1/books/fdp-primer/
- Check out a copy of the documentation tree from the documentation repository to get the source code for the chapter
- Basic knowledge of source code management systems like GIT, SVN or any other
Update the FreeBSD handbook's printer chapter by adding a description on the CUPS system to use network printers and USB printers
Category |
Documentation, Research |
Difficulty |
hard |
Time limit |
10-25 |
Mentor |
<rea AT freebsd DOT org> |
Requirements |
The FreeBSD handbook will have an updated chapter on using CUPS to manage printers connected via USB or the network to a FreeBSD system. |
Description of task
The CUPS (Common Unix Printing System) is widely used to manage printers connected via the network to a FreeBSD system. In addition to that, USB printers are also popular devices these days and can also be connected to a FreeBSD system. The FreeBSD handbook's chapter on printing does not have any information on CUPS to manage network or USB printers. To help our users set up and run CUPS, networked or USB printers on FreeBSD, research must be done in order to know what are the neccessary steps to achieve this on a FreeBSD system. Then, the results need to be documented in the FreeBSD handbook chapter on printing. When adding these instructions (and possibly examples) to the handbook, the source code needs to be correctly formatted and must conform to our documentation source code style guidelines.
Task requires:
A FreeBSD system (in a VirtualBox Virtual Machine) installed on your computer.
Knowledge of the documentation guidelines for the FreeBSD project: http://www.freebsd.org/doc/en_US.ISO8859-1/books/fdp-primer/
- Check out a copy of the documentation tree from the documentation repository to get the source code for the chapter
- Basic knowledge of CUPS would be helpful
Improve indexing of the FreeBSD handbook
Category |
Research, Documentation, Code |
Difficulty |
hard |
Time limit |
15-25 |
Mentor |
<rea AT freebsd DOT org> |
Requirements |
The FreeBSD handbook will have each chapter in it's index when rendered to Postscript/PDF output. |
Description of task
The FreeBSD handbook can be rendered into Postscript/PDF output. Each chapter should have an index produced from indexterms at the beginning of each chapter definition in the SGML output. Unfortunately, not all of them do and as a result, a ??? is added instead to the index of the Postscript/PDF output. With a proper index, readers are able to locate a specific chapter easier by loooking at the indexterms in the appendix or simply by using the table of contents.
The objective of this task is to improve the indexing using the Postscript/PDF output of the current handbook to find sections/chapters that do not have primary/secondary indexterms causing ??? to be printed instead. A script located at doc/share/misc/indexreport.pl in the checkout from the doc repository can help find them. When there is a chapter/section found that has no indexterms, sensible ones need to be defined and added based on the content of the chapter.
Task requires:
A FreeBSD system (in a VirtualBox Virtual Machine) installed on your computer.
Knowledge of the documentation guidelines for the FreeBSD project: http://www.freebsd.org/doc/en_US.ISO8859-1/books/fdp-primer/
- Check out a copy of the documentation tree from the documentation repository to get the source code for the chapter
POSIX conformance of command line utilities
Category |
Documentation / Quality Assurance |
Difficulty |
medium |
Time limit |
10-15 |
Mentor |
<ed AT freebsd DOT org> |
Requirements |
A page similar to Jens Schweikhardt's from 2001 |
Description of a task
POSIX is the standard that describes how UNIX-like operating systems like Linux, *BSD, Solaris and Mac OS X should behave. The POSIX specification is divided in several chapters, namely how certain APIs have to be implemented (header files, functions, etc) and how base system utilities should work (command line switches, etc).
Somewhere between 2001 and 2006 Jens Schweikhardt made this page, that gives a nice overview of which command line switches are implemented by our versions of the utilities:
This page was based on the 2001 revision of POSIX, while there have been two new revisions in the mean time, namely Issue 6 (2004) and Issue 7 (2008). Also, various tools have been implemented in the mean time, meaning this page is now out of date. It would be nice if we had an up-to-date version, preferably even comparing multiple version of FreeBSD (8.x, 9.x, HEAD).
POSIX Issue 7 can be read online here:
POSIX conformance of header files and C functions
Category |
Documentation / Quality Assurance |
Difficulty |
medium |
Time limit |
20-30 |
Mentor |
<ed AT freebsd DOT org> |
Requirements |
A page similar to Jens Schweikhardt's from 2001 |
Description of a task
POSIX is the standard that describes how UNIX-like operating systems like Linux, *BSD, Solaris and Mac OS X should behave. The POSIX specification is divided in several chapters, namely how certain APIs have to be implemented (header files, functions, etc) and how base system utilities should work (command line switches, etc).
Somewhere between 2001 and 2006 Jens Schweikhardt made this page, that gives a nice overview of which command line switches are implemented by our versions of the utilities:
It would be awesome if we had a page similar to this, but then grouping all functions for each header file, stating whether:
- The header file itself is available,
- Which of the structures/functions/etc. are present in the header file and which are not,
- If they are available, does the prototype/definition conform to POSIX.
For this assignment, it's sufficient to look at FreeBSD HEAD. The latest version of the POSIX specification is Issue 7, from 2008. POSIX Issue 7 can be read online here:
Update the FreeBSD developers handbook on debugging modules with newer instructions from a wiki page
Category |
Documentation |
Difficulty |
easy |
Time limit |
10-12 |
Mentor |
<gavin AT FreeBSD DOT org> |
Requirements |
The FreeBSD developers handbook chapter on debugging modules contains the new information from the wiki page. |
Description of task
FreeBSD's developers handbook has a section describing the steps needed to debug kernel modules: http://www.freebsd.org/doc/en_US.ISO8859-1/books/developers-handbook/kerneldebug-kld.html However, the information contained in that section are somewhat outdated. Newer instructions are available in the following wiki page: DebuggingModules The purpose of this task is to take the information from the wiki page and update the developers handbook chapter accordingly. The final page needs to conform to FreeBSD's documentation formatting and style guidelines described in the FreeBSD documentation primer: http://www.freebsd.org/doc/en_US.ISO8859-1/books/fdp-primer/
Task requirements
Students are encouraged to use a FreeBSD system like our VirtualBox image to test the procedure, but can also use the information available online.
Please read ../GettingStarted before accepting this task, as it contains further details on what this task consists of, as well as providing useful information on how to obtain the page source and how to proceed with the task.
Tasks that were not added
These tasks were not added to Melange. Some do not have mentors assigned to them.
Describe the Media Independent Interface (MIIBus) in the FreeBSD developers handbook based on content from a wiki page
Category |
Documentation |
Difficulty |
easy |
Time limit |
12-17 |
Mentor |
<gavin AT FreeBSD DOT org> |
Requirements |
The FreeBSD developers handbook will have a new section describing the use of MIIBus for devices attached to the network. |
Description of task
FreeBSD implements IEEE 802.3 Media Independent Interface or MIIBus for its underlying networking capabilities. FreeBSD Developers who want to know more about this interface currently find no information about it in the FreeBSD developers handbook. The purpose of this task is to remedy this by using the following wiki page as a source of information: MIIBUS Other links to more information about MIIBus are also available at the bottom of this wiki page. The information should be used to create a new section/chapter describing the use of MIIBus and it's implementation in FreeBSD. The added information needs to conform to FreeBSD's documentation formatting and style guidelines described in the FreeBSD documentation primer: http://www.freebsd.org/doc/en_US.ISO8859-1/books/fdp-primer/
Task requirements
Students are encouraged to use a FreeBSD system like our VirtualBox image to test the procedure, but can also use the information available online.
Please read ../GettingStarted before accepting this task, as it contains further details on what this task consists of, as well as providing useful information on how to obtain the page source and how to proceed with the task.
Update the FreeBSD FAQ with information about common USB problems and how to solve them based on instructions in a wiki page
Category |
Documentation |
Difficulty |
easy |
Time limit |
5-12 |
Mentor |
<rea AT freebsd DOT org> |
Requirements |
The FAQ contains a new entry on how to solve common USB problems like when mass storage devices are not detected. The entry needs to be formatted correctly according to our FreeBSD style and doc source code standards. |
Description of task
The FreeBSD operating system has support for many devices connected via the Universal Serial Bus (USB). However, given the vast amount of devices, there are some problems that occur frequently for which there are already solutions available on the following wiki page: USB . The FreeBSD FAQ is the right place for this, so the mini FAQ on the wiki page needs to be transformed into a FreeBSD FAQ entry. With this, we can point users directly to the FAQ when these kinds of questions come up in the mailing lists.
Task requires:
A FreeBSD system (in a VirtualBox Virtual Machine) installed on your computer.
Knowledge of the documentation guidelines for the FreeBSD project: http://www.freebsd.org/doc/en_US.ISO8859-1/books/fdp-primer/
- Check out a copy of the documentation tree from the documentation repository to get the source code for the chapter
Demonstrate UFS Journaling recovery in a video
Category |
Outreach |
Difficulty |
easy |
Time limit |
10-12 |
Mentor |
|
Requirements |
A video was created showing how UFS recovers after a crash. |
Description of task
FreeBSD's UFS filesystem was extended to use a Journal for faster recovery after a system crash. For example, if the filesystem was shut down uncleanly due to a power failure, the system will boot up, will find the missing file system entries in the journal and recover the missing pieces and start up normally without running manual checks. The purpose of this task is to demonstrate this behavior of the system in a video.
To do this, install FreeBSD in a VirtualBox (or use the provided images) and make sure UFS+J is used on any filesystem. Then, simulate a power failure by killing the VirtualBox task while the FreeBSD VM is running. Then restart the FreeBSD VM and show how the system is recovering from the crash.
Task requires:
A FreeBSD system (in a VirtualBox Virtual Machine) installed on your computer.
- Video recording software
Find FreeBSD man pages that do not have an EXAMPLES section
Category |
Documentation, Research, Code |
Difficulty |
easy |
Time limit |
10-15 |
Mentor |
|
Requirements |
A list or script is created that shows all man pages that do not have an EXAMPLES section. |
Description of task
FreeBSD's man pages are known to have an EXAMPLES section which gives advice on how to use the functionality that the man page describes. However, as new man pages get added, some of them might not have such a section (or some man pages don't actually require one). We need to find these EXAMPLE-less man pages and add EXAMPLES sections if appropriate (this last part is NOT part of this task, you only need to find them). FreeBSD's man pages can be found (in compressed form usually) in the system under /usr/share/man (having a checked out source tree helps). The directories man1 - man9 contain the FreeBSD man pages. The files in there can be opened in an editor. For example, the mouse(4) man page can be found under /usr/share/man/man4/mouse.4 (this one does not have an EXAMPLES section). A man page that already has a man page should contain a line like this: .Sh EXAMPLES
The objective of this task is to create a list of man pages that do not contain this string. The best way to do this is to create a script that can automatically search for that string in a set of files (man pages in this case) passed to it. Your mentor can help you with commands or advice on which programming language to use. But if you don't want to code, you can also do this task manually (or semi-manually), but this will take more time than writing and running a script to produce the list.
Task requires:
A FreeBSD system (in a VirtualBox Virtual Machine) installed on your computer.
- A checked out copy of the FreeBSD src tree (HEAD, /usr/share/man/ should suffice) to get the most current man pages
- Basic programming/scripting skills (or willingness to learn)
- Thorough workstyle
Translate the "Why you should use a BSD style license for your Open Source Project" article into German
Category |
Translation |
Difficulty |
easy |
Time limit |
20-27 |
Mentor |
<bcr AT FreeBSD DOT org> |
Requirements |
A translated article is available in sgml source to be committed to the FreeBSD german documentation project. |
Description of task
The FreeBSD German documentation project is translating the FreeBSD documentation (books, articles, etc., not man pages) into german in order to make it easier for german speaking people to understand the system. There are some articles that have not been translated yet. The objective of this task is to translate the following article into german: http://www.freebsd.org/doc/en_US.ISO8859-1/articles/bsdl-gpl/index.html
To do this, you need to make a copy of the article.sgml file containing the english text and translate that copy. Be careful to keep the formatting and indentation of the article. However, this can be done later on, the translation is the primary focus of this task. The following web page of the german documentation project gives some helpful instructions on how to start or how to translate certain words: https://doc.bsdgroup.de
Task requires:
A FreeBSD system (in a VirtualBox Virtual Machine) installed on your computer.
- A checked out copy of the FreeBSD documentation tree to get the most current version of the article in question
- German language skills (does not necessarily have to be your first language)
- An editor with syntax highlighting is helpful
- Thorough workstyle
Add some hints on benchmarking the system to the FreeBSD developers handbook
Category |
Documentation |
Difficulty |
medium |
Time limit |
12-20 |
Mentor |
<gavin AT freebsd DOT org> |
Requirements |
The FreeBSD developers handbook has a new chapter giving some hints on what is important when benchmarking the system and how to do it properly. |
Description of task
An important part when enhancing the FreeBSD operating systems is to know whether or not the added functionality makes the system perform faster than before. In order to do that, benchmarks are being used to collect useful information to make educated comparisons. However, when done wrong, these benchmarks will either not make any sense, provide the wrong data or results in false conclusions drawn by the developer doing the benchmark. To avoid that, a wiki page listing some of the pitfalls when benchmarking is available here: BenchmarkAdvice The advice given there needs to be added to the FreeBSD developers handbook so that people doing benchmarks can be pointed there for doing correct benchmarks. When adding these hints to the developers handbook, the source code for the chapter needs to be correctly formatted and must conform to our documentation source code style guidelines.
Task requires:
A FreeBSD system (in a VirtualBox Virtual Machine) installed on your computer.
Knowledge of the documentation guidelines for the FreeBSD project: http://www.freebsd.org/doc/en_US.ISO8859-1/books/fdp-primer/
- Check out a copy of the documentation tree from the documentation repository to get the source code for the chapter
TEMPLATE: Name of a task (task must be very small and very granular)
Category |
Code / Documentation / Outreach / Quality Assurance / Research / Training / Translation / UI |
Difficulty |
easy, medium, hard |
Time limit |
number of participant's hours/days for this task |
Mentor |
<email AT freebsd DOT org> |
Requirements |
What do we expect to be there to grade this task as 'completed' |
Description of a task
Description of a task goes here. No cryptic acronyms, preferably no FreeBSD slang. Be as detailed as possible. Be as descriptive as possible. Propose how to engage in the task, how to start, what tools to use. Do not expect participants to use FreeBSD as daily OS (encourage them to do that, of course!), thus remember that VirtualBox/VMWare are perfectly valid FreeBSD environments.
Tasks must be small. Participants in the 13-17 age range can apply for 1 task at a time, but can do it up to 15 times i.e.: 15 tasks can be completed by the 13-17 year old teenager over the duration of the Google Code-In. This should give you a feeling of what kind of tasks we must have here.