Show pageOld revisionsBacklinksBack to top This page is read only. You can view the source, but not change it. Ask your administrator if you think this is wrong. ====== FreeBSD Google Code-in Tasks ====== %%=%%= Contact channels ==se | IRC | #freebsd-soc @ EFNET | | Mailing list | [[freebsd-hackers@FreeBSD.org|freebsd-hackers@]] | 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|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 ==== ====== Completed tasks ====== ---- ===== Describe ZFS' reservation feature in the handbook chapter about ZFS ===== | Category | Documentation | | Difficulty | easy | | Time limit | 4-12 | | Mentor | <pgj@freebsd.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|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@freebsd.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|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@freebsd.org> | | Requirements | A subsection in the %%FreeBSD%% multimedia handbook chapter containing the information from the [[Ports/multimedia/mythtv|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%%: [[Ports/multimedia/mythtv|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|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@freebsd.org>, <jceel@freebsd.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|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|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@freebsd.org> <eadler@freebsd.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|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@freebsd.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@freebsd.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|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@freebsd.org> <eadler@freebsd.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|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|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@freebsd.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|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@freebsd.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|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|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@freebsd.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|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|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@freebsd.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|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@freebsd.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|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@FreeBSD.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|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@FreeBSD.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|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@FreeBSD.org>, <des@freebsd.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|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@freebsd.org>, <jceel@freebsd.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** \\ * [[http://code.google.com/p/google-summer-of-code/wiki/GsocLogos]] * [[http://www.freebsd.org/art.html]] 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@freebsd.org>, <gjb@freebsd.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: * http://www.oracle.com * http://www.opera.com Our page COULD look similar. Ideal candidate would study Jacob Nielsen web page on web usability: * http://www.useit.com/alertbox/ 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@freebsd.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|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@FreeBSD.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|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@FreeBSD.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|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@freebsd.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|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@FreeBSD.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|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@FreeBSD.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: * xfs ([[http://www.freebsd.org/cgi/man.cgi?query=xfs&apropos=0&sektion=0&manpath=FreeBSD+8.2-RELEASE&arch=default&format=html]]) * reiserfs ([[http://www.freebsd.org/cgi/man.cgi?query=reiserfs&apropos=0&sektion=0&manpath=FreeBSD+8.2-RELEASE&arch=default&format=html]]) * ext2 ([[http://www.freebsd.org/cgi/man.cgi?query=ext2fs&apropos=0&sektion=0&manpath=FreeBSD+8.2-RELEASE&arch=default&format=html]]) 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|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@freebsd.org> <eadler@FreeBSD.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@FreeBSD.org> | | Requirements | The %%FreeBSD%% handbook will have a new section describing the use of QEmu to virtualize other systems on %%FreeBSD%%. | [[/qemu]] ==== 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|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@FreeBSD.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|VirtualBox]] image to test the procedure, but can also use the information available online. Please read [[GoogleCodeIn/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@freebsd.org> <gjb@freebsd.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@freebsd.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@freebsd.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@freebsd.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@freebsd.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@freebsd.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@freebsd.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@freebsd.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@freebsd.org>, <des@freebsd.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|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|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@freebsd.org>, <jceel@freebsd.org>, <gjb@FreeBSD.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|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|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@freebsd.org>, <decke@freebsd.org> | | Requirements | the contents of the wiki page are available in the %%FreeBSD%% handbook chapter about [[/VirtualBox|VirtualBox]] | ==== Description of task ==== The %%FreeBSD%% operating system supports the [[/VirtualBox|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|VirtualBox]] This information needs to be put into the handbook subsection about [[/VirtualBox|VirtualBox]]: http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/virtualization-host.html Task requires: * A %%FreeBSD%% system (in a [[/VirtualBox|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@freebsd.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|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@freebsd.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: * [[/DTrace]] * [[DTrace/userland]] 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|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@freebsd.org> | | Requirements | the %%FreeBSD%% on laptops article contains the new information from the wiki page on [[/TuningPowerConsumption|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|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|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@FreeBSD.org> | | Requirements | A new, separate article containing the information from the [[ErnstDeHaan/AppServerJails|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|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@freebsd.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@freebsd.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|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|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@freebsd.org> <eadler@freebsd.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|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@freebsd.org>, <jceel@freebsd.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|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|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@freebsd.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@freebsd.org> <rdivacky@FreeBSD.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@FreeBSD.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|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@FreeBSD.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|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@freebsd.org> <eadler@freebsd.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|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@freebsd.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|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@FreeBSD.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|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@FreeBSD.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|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@freebsd.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|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@freebsd.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|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@freebsd.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|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@freebsd.org>, <freebsd-wireless@freebsd.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@freebsd.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|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|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@freebsd.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|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|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@freebsd.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|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@freebsd.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|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@freebsd.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: * http://people.freebsd.org/~schweikh/posix-utilities.html 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: * http://pubs.opengroup.org/onlinepubs/9699919799/ ---- ===== POSIX conformance of header files and C functions ===== | Category | Documentation / Quality Assurance | | Difficulty | medium | | Time limit | 20-30 | | Mentor | <ed@freebsd.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: * http://people.freebsd.org/~schweikh/posix-utilities.html 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: * http://pubs.opengroup.org/onlinepubs/9699919799/ ---- ===== 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@FreeBSD.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|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|VirtualBox]] image to test the procedure, but can also use the information available online. Please read [[GoogleCodeIn/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@FreeBSD.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|VirtualBox]] image to test the procedure, but can also use the information available online. Please read [[GoogleCodeIn/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@freebsd.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|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|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|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|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|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@FreeBSD.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|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@freebsd.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|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|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@freebsd.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|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. googlecodein/2011tasks.txt Last modified: 2022/10/06 23:28by KubilayKocak