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:

Tags

module, format, URL, distribution, package.

Mentors

Shlomi Fish


Add your task immediately above this marker using the template provided.

My tags:
 
Popular tags:
 
Powered by Catalyst