Introduction
Unfortunately we were not successful in our application to be a part of GCI in 2012. Google received many more applications for the program than they are able to accommodate.
Many thanks to everyone who submitted tasks or who volunteered to be a mentor. We have been encouraged to reapply in the future so with luck we will take part in another year.
Rental Forklift
Please add your suggested tasks for GCI here. Use the template below and add your tasks at the end of the list. Please fill in as much information as possible.
Remember that each task should take a competent student three to four hours to complete, and so probably wouldn't take you more than an hour or two at most.
If you have more complicated or time consuming tasks, see if they can be broken up into easier pieces. If that's not possible you can still add the task. When we come to judging our two winners, amongst other criteria we will take into account the difficulty of the tasks completed.
Tasks should fit into one or more of the following categories
A. Code
- Tasks related to writing or refactoring code
B. Documentation/Training
- Tasks related to creating/editing documents and helping others learn more
C. Outreach/Research
- Tasks related to community management, outreach/marketing, or studying problems and recommending solutions
D. Quality Assurance
- Tasks related to testing and ensuring code is of high quality.
E. User Interface
- Tasks related to user experience research or user interface design and interaction
Take a look at the set of this site.
Template
Title
Unique title of the task.
Categories
Many tasks will fall under more than one category. Please add all task categories here (see the list above for the five categories), in a comma separated list, from most to least relevant.
Count
If you have more than one identical task note the total number here. Ideally you will be able to be specific in each task, but this field is here so you don't feel a need to copy and paste whole tasks. If in doubt ask Aksesoris Mobil.
Description
Add a description of the task here. Please include sufficient detail to enable a student to get a feeling for the type and amount of work required such that they can decide whether they want to attempt the task. Include links to any required or helpful resources such as the repository, a bug report or other description of the task, the IRC channel or mailing list.
It will be hard to add too much detail here. If the project is hosted on github, mention that. If any specific hardware or software is required (you may want to fix a bug on a specific Operating System) mention that. If the results of the task need to be uploaded somewhere (for example a promotional video to be hosted on YouTube) mention that. Try to anticipate questions a student may have and answer them here.
Tags
Try to select five or six tags describing the task. This could ease searching for tasks. Try to reuse already existing tags if appropriate. Use a comma separated list.
Mentors
Please supply a list of as many mentors as possible who would be able to assist with this task. If there are a number of mentors who can step in for each other then we can more easily ensure timely feedback for the student. Please be sure that anyone added here has agreed to be a mentor and has signed up so to do. Use a comma separated list of, ideally, mentor IDs.
Tasks
Title
Make a video/screencast showcasing Devel::Cover
Categories
Outreach, Documentation, QA
Count
Description
Devel::Cover is the Perl code coverage module. It is fairly simple to use but new users could benefit from a video or screencast describing its use.
To complete this task you will need to upload. The video/screencast should be a few minutes long and should explain how to take a Perl Module and run the test suite under Devel::Cover. It should then show the resulting HTML output and explain what it means.
Devel::Cover has a git repository on here. It has a mailing list and an IRC channel at irc://irc.perl.com/perl-qa. You can access the IRC channel in your browser using mibbit. You will need to read the documentation and look at example output.
Tags
perl, Devel::Cover, video, screencast, github
Mentors
wesjdj, pjcj
Title
Add a Last.FM API call to WWW::LastFM
Categories
Code, Training
Count
There are in total 133 API calls, and only 2 have been implemented. There is as much work here as the mentor can possibly manage. We will probably set things up such that a student completes one task for their first API call. The next five calls for the same student will constitute a second task. And subsequently the student will need to complete ten calls per task.
Tags
perl, Moose, XML, XPath, XML::Rabbit, Last.FM, web API
Mentors
robinsmidsrod
Title
Write unit tests for Pod::Perldoc
Categories
Code, QA
Count
Description
perldoc is an important part of the perl toolchain but it has virtually no tests. In an effort to significantly improve code-quality, we need to devise and create unit tests for both the perl modules themselves, a test corpus of material, as well as the command line application.
Tags
TAP, perldoc, POD, text encoding, test generation
Mentors
mallen
Title
Perlybook.org - send .mobi to Kindle
Categories
Coding, User Interface
Count
Description
Perlybook.org turns POD documentation on CPAN (and other sites) to ebook formats. It even provides .mobi files for Kindle.
It would be great to have an extra input field where users can set their kindle email adress and the generated ebook is sent to this email address.
More info is available at here.
Tags
ebook, kindle, email,
Mentors
reneeb
Title
Perlybook.org - links in ebooks
Categories
Coding, User Interface
Count
Description
Perlybook.org turns POD documentation on CPAN (and other sites) to ebook formats. POD allows to set links to other pages (within the same distribution and to other pages as well).
Currently all links are parsed as "external" URLs, but links to pages that are in the ebook should link to that pages.
Especially for .mobi format this is quite tricky due to .mobi limitations.
More info is available at here.
Tags
ebook, kindle, email, epub, pod
Mentors
reneeb
Title
Perlybook.org - direct use from Kindle
Categories
Coding, User Interface
Count
Description
Kindle can download the ebooks directly. But currently there is a bug: You can't open the ebook. This should be fixed.
More info is available at here.
Tags
ebook, kindle
Mentors
reneeb
Title
Federated Login - Support SAML2 Login for Catalyst
Categories
Coding, User Interface
Count
Description
More and more educational institutions and e-ID projects build upon the Internet2 standard SAML 2.0. To stay relevant in these environments Catalyst needs to support login through SAML 2.0. Catalyst shoulb be able to support membership in more then one federations, preferably with support for attribut authorities. Autogeneration of WAYF pages would be nice too.
Tags
Internet2, SAML, login, Catalyst
Mentors
wisser
Title
Perlanet Web Site Improvements
Categories
Documentation
Count
1
Description
Perlanet is a CPAN module for aggregating web feeds. It is used to build sites like the Iron Man aggregator.
We have a simple web site at here which is build using Github's web site builder, but it could be a lot better. In particular I'd like to see a "cookbook" of interesting things that you can do with Perlanet. I have some ideas for this, but no time to implement them.
Tags
rss, atom, web feeds, perlanet, github, cpan
Mentors
davorg
Title
Make a tutorial on how to setup CPAN Testers on Windows
Categories
Documentation, QA
Count
1
Description
CPAN Testers is a system that lets authors test their modules in several different operating systems and perl versions. However, the amount of reports received from Windows users is still sub-par, and we believe creating a tutorial on how to setup your CPAN app to automatically submit tests from Windows can dramatically improve this.
Tags
per, cpan, tutorial, tests, qa, windows
Mentors
garu
Title
Create a Padre theme for the visually impaired
Categories
User Interface
Count
1
Description
Padre, the Perl IDE is a widely used development environment for Perl. For some time now it has supported themes, but we still lack a proper one to help visually impaired (poor-sighted, color blind) programmers.
To complete the task, the student will need to understand color schemes and find the best set(s) to help most visually impaired developers benefit from syntax highlighting under Padre.
Tags
perl, IDE, padre, color blind, accessibility
Mentors
garu
Title
Create new Padre themes
Categories
User Interface
Count
10
Description
Padre, the Perl IDE is a widely used development environment for Perl. For some time now it has supported themes, but so far we only have a few of them.
In this task, each student will come up with at least one new theme for Padre, in order to improve the overall user experience within the IDE.
Tags
perl, IDE, padre, theme, color
Mentors
garu
Title
Convert Perl Advent Calendars to Ebook
Categories
Outreach, Documentation
Count
Description
Perl Advent Calendars are a traditional product of the community. Every day, in December, developers add one small tip on Perl and CPAN, covering best practices, common procedures and nifty tricks.
The Advent Calendars are usually HTML created from POD, and this project is meant to convert all that POD into either EPub, MOBI or both.
Because of modules like EPublisher, this task can be accomplished quite easily in an automated fashion that will allow us to keep doing it for years to come.
Tags
perl, ebook, epub, mobi, kindle, tutorials
Mentors
garu
Title
Classify and comment on a Perl tutorial
Categories
Outreach, Documentation
Count
10 or more
Description
Perl has been around for longer then the WWW has existed. In the early days of the WWW Perl was used extensively and there are many Perl tutorials of varying quality to be found on the web.
Perl is a site which attempts to assess the quality of freely available Perl tutorials and classify them.
This task is to look at the Perl tutorial at here.
Tags
perl, tutorial
Mentors
mithaldu
Title
Compare and contrast 122 Perl class-builder helper modules.
Categories
B, C, E, A
Count
2
Description
Class builders
Perl has many modules designed to speed-up coding of new classes.
See: for the list of class builders to work with.
Use each of these modules as the basis of a small number test modules, to get a feel of how they work.
Perhaps start with a trivial class for a point in 2 dimensions, (x, y). Then a sub-class for (x, y, z). Then a sub-class for (x, y, z, t), where t is time.
Evaluate each module.
Preparation:
o Get an exceptional editor. I use UltraEdit. - Yes, you have to pay for it, but it's very cheap considering its exceptional power and convenience.
o Install Perl for your OS. - Do this as explained next, if you wish, so as to not impact any pre-installed Perl. - That way you can install, remove, or even edit, any modules whatsoever. - Go here to read installation instructions: Suggested evaluation criteria:
o Presence of CPAN (Comprehensive Perl Archive Network). - Reach CPAN via. - They should all be there because that's where I got the above list from.
o Resources: - Your mentor: Ron Savage ron@savage.net.au - Ask for help on - Perhaps ask for help on blogs.perl.org.
o Exclude modules which are part of a larger package, if desired. - But note that you have done this in your summary.
o How many other modules did you have to install to get the test module installed? - A rough estimate is OK. - Note: Some modules (e.g. Mojo) come with their own apps.
o Quality of explanation in the docs as to what the module does. - What does the module do for the coder?
o Readability of the documentation. - Beginner's impression. - Sample code in the docs. - Is there a cookbook in the docs? - Was it useful?
o Do the docs make sense compared to the general docs which ship with Perl? - These are: perlboot, perltoot and perltootc. - They can be viewed from the command line with: shell> perldoc perlboot shell> perldoc perltoot shell> perldoc perltootc
o Do the docs discuss sub-classing? - They should.
o Is there anything silly or confusing about the module's name?
o Is there a 'See Also' in the docs?
o How much help from others did you need to use the module? - This point, like others, will be affected by how many modules you've just assessed.
o Requirement or not of a C compiler. - If no C compiler is required, the code runs in a pure-Perl environment. - Might that be important? Personally I don't think so, but some people regard it as important.
o Simplicity of syntax in end-user code. - This is not really about saving the coder typing, but about the complexity of what has to be typed to utilize the module.
o Start-up time - Does the module add noticable start-up time to your scripts. - We /know/ Moose does, but that does not preclude it from wide-spread respect and use.
o Information overload. - Did you feel you had to learn too much just to get your sample code up and running?
o Outstanding bugs. - Reach the bug list via searching for the module on MetaCPAN as above. Then click on the bug menu in the left column. - Are there long-standing unfixed bugs? - Has the module been abandoned?
o Rating via reviews. - Reach the reviews via searching for the module on MetaCPAN as above. Then click on the review menu in the left column. - Beware of obsolete reviews.
o Date of last update. - Note that the date does not have to be recent.
Ideas for a summary:
o Which module(s) did you prefer?
o Why?
o Would you recommend it/them to a beginner?
o Would you recommend it/them to an expert in a non-Perl language?
o Would you recommend it/them to an expert in Perl? - This is a serious question. There are so many modules on CPAN we can't possibly be aware of them all.
o Would you stick to it/them or are you tempted to upgrade to a heavier-weight module?
o Were some modules clearly superior to others even if your didn't like them best?
o List the difficulties you had with modules. - This helps beginners enormously.
Notes:
o Suggested report format: - Prepare something similar, with modules down the left and features across the top. - Perhaps instead of text in the cells, use colors like this: - Rate features out of 10. - Use 4 shades of red for features you did not like. - 0 => deepest red up tp 3 => lightest red. - Use 3 shades of blue for OK features. - Use 4 shades of green for features you did like. - 7 => lightest green up to 10 => deepest green. - Add your summary from above below the table as commentary to it.
o Ron Savage (mentor) lives in Melbourne, Australia, so be aware of timezone differences.
Tags
perl, class builders, oop, cpan
Mentors
Ron Savage
Title
Compare and contrast 30 URL routing classes
Categories
B, C, E, A
Count
2
Description
URL mappers
Perl has many modules designed to help CGI scripts route requests to subroutines or objects.
See: for the list of URL mappers to work with.
Use each of these modules as the basis of a small number test modules, to get a feel of how they work.
Incorporate the modules into CGI scripts, to use the modules being evaluated.
Evaluate each module.
Preparation:
o Get an exceptional editor. I use UltraEdit. - Yes, you have to pay for it, but it's very cheap considering its exceptional power and convenience.
o Install Perl for your OS. - Do this as explained next, if you wish, so as to not impact any pre-installed Perl. - That way you can install, remove, or even edit, any modules whatsoever. - Go here to read installation instructions:
o Install a web server for your OS. - I use mini-httpd. - Note: Some of the modules come with a build-in (development) web server. See Mojolicious for example.
Suggested evaluation criteria:
o Presence of CPAN (Comprehensive Perl Archive Network). - Reach CPAN via. - They should all be there because that's where I got the above list from.
o Resources: - Your mentor: Ron Savage ron@savage.net.au - Ask for help on irc://irc.perl.org/#gci - Perhaps ask for help on blogs.perl.org.
o Exclude modules which are part of a larger package, if desired. - But note that you have done this in your summary.
o How many other modules did you have to install to get the test module installed? - A rough estimate is OK. - Note: Some modules (e.g. Mojo) come with their own apps.
o Quality of explanation in the docs as to what the module does. - What does the module do for the coder?
o Readability of the documentation. - Beginner's impression. - Sample code in the docs. - Is there a cookbook in the docs? - Was it useful?
o Do the docs discuss sub-classing? - They should.
o Is there anything silly or confusing about the module's name?
o Is there a 'See Also' in the docs?
o How much help from others did you need to use the module? - This point, like others, will be affected by how many modules you've just assessed.
o Requirement or not of a C compiler. - If no C compiler is required, the code runs in a pure-Perl environment. - Might that be important? Personally I don't think so, but some people regard it as important.
o Simplicity of syntax in end-user code. - This is not really about saving the coder typing, but about the complexity of what has to be typed to utilize the module.
o Start-up time - Does the module add noticable start-up time to your scripts. - We /know/ Moose does, but that does not preclude it from wide-spread respect and use.
o Information overload. - Did you feel you had to learn too much just to get your sample code up and running?
o Outstanding bugs. - Reach the bug list via searching for the module on MetaCPAN as above. Then click on the bug menu in the left column. - Are there long-standing unfixed bugs? - Has the module been abandoned?
o Rating via reviews. - Reach the reviews via searching for the module on MetaCPAN as above. Then click on the review menu in the left column. - Beware of obsolete reviews.
o Date of last update. - Note that the date does not have to be recent.
Ideas for a summary:
o Which module(s) did you prefer?
o Why?
o Would you recommend it/them to a beginner?
o Would you recommend it/them to an expert in a non-Perl language?
o Would you recommend it/them to an expert in Perl? - This is a serious question. There are so many modules on CPAN we can't possibly be aware of them all.
o Would you stick to it/them or are you tempted to upgrade to a heavier-weight module?
o Were some modules clearly superior to others even if your didn't like them best?
o List the difficulties you had with modules. - This helps beginners enormously.
Notes:
o Suggested report format: - Prepare something similar, with modules down the left and features across the top. - Perhaps instead of text in the cells, use colors like this: - Rate features out of 10. - Use 4 shades of red for features you did not like. - 0 => deepest red up tp 3 => lightest red. - Use 3 shades of blue for OK features. - Use 4 shades of green for features you did like. - 7 => lightest green up to 10 => deepest green. - Add your summary from above below the table as commentary to it.
o Ron Savage (mentor) lives in Melbourne, Australia, so be aware of timezone differences.
Tags
perl, class builders, oop, cpan
Mentors
Ron Savage
Convert the countdown script into a CPAN distribution.
Categories
Code
Count
Description
I have written a countdown script here:
countdown is similar to sleep only also displays the amount of time left before the timeout is over (to avoid not knowing how much time remains.)
It works nicely, but I'd like to convert it to a modulino (a command line application implemented as a module), add some POD documentation, and pack it as a CPAN distribution. For this, one will need to use Module-Starter and Module-Build and familiarise oneself with the contents of.
Tags
Module-Build, Module-Starter, Modulino, POD.
Mentors
Support more module formats in Module-Format
Code
Description
One should patch the Module-Format code (available on, to provide support for one or more of the following types: *Rumah Dijual *GPS Tracker *Baby Pink
Tags
module, format, URL, distribution, package.
Mentors
Shlomi Fish
Add your task immediately above this marker using the template provided.
Showing changes from previous revision. Removed | Added
