September 2014 Archives

The Grants Committee has concluded the voting of the September round.

Proposals in this round

Voting Results

IO::All Redux439 = 5+2+1+1
Inline::C(PP) ...8029 = 5+4+4+4+3+3+3+3
Pegex Grammar ...16
Swim Pod09

Definition of the score is found in 3.2 of the rules.

The Perl Foundation to increase brand, marketing, and PR

No Comments

Walnut, CA - With the planning stages of YAPC::NA 2015 (Yet Another Perl Conference) underway, The Perl Foundation has made an increased commitment to marketing and public relations: by teaming up with Pittsburgh based firm ALTRIS Incorporated.

ALTRIS Incorporated, a full-service printing, marketing, and web design firm, specializes in non-profit marketing, fundraising, branding, and event management. "We originally brought in the team at ALTRIS to help with our 2012 and 2013 end-of-the-year reports and sponsorship prospectus," said Dan Wright, Perl Foundation Treasurer, "having a professional marketing and PR team on board is the next step to growing the Foundation's brand, and events."

The Perl Foundation supports four yearly events, including the DC-Baltimore and Pittsburgh Perl Workshops, Perl Oasis, and YAPC::NA. ALTRIS Incorporated will be supporting local organizers and the Foundation's marketing and conferences committees promote their events internationally. The relationship will also include broadcasting news and updates regarding advancements in Perl, sponsorship opportunities, grants, and training materials.

Visit The Perl Foundation online at and on Facebook at Information regarding YAPC::NA 2015 will be available at

Toby Inkster reports on his book-writing progress in his latest blog post. Highlights:

  • The material is open and mirrored at GitHub and Bitbucket. He welcomes your comments and suggestions.
  • Work on the namespace chapter is beginning.

I and I'm sure many others are looking forward to having this great resource.


I am delighted to announce that the Perl Foundation will once again be taking part in the GNOME Outreach Program for Women.

The Outreach Program for Women (OPW) was started by the GNOME Foundation in 2006 to encourage women to participate in the GNOME project. In the first round eight interns took part working from GNOME. This program has been expanded and in the last round, that took place this summer, forty interns were accepted and seventeen Free and Open Source organisations took part including The Perl Foundation.

We are offering one internship in the winter program which runs from the 9th December 2014 to the 9th March 2015. We have mentors from Dancer and MetaCPAN signed up to provide project ideas and you can read about possible projects on our information page.

We could not take part in this program without the support of our sponsors. In particular I would like to thank Wendy and Liz for donating $1000 to the program.

The Grants Committee has received five grant proposals for the September round. Before the Committee members vote, we would like to solicit feedback from the Perl community on the proposals.

Review the proposals below and please comment there. The Committee members will start the voting process on September 26th and the conclusion will be announced by September 30th.

For the proposals from Ingy and David, we also got the following statement from them:

Ingy döt Net and David Oswald have a number of ambitious Perl related projects that we would like to collaborate on. We think that having a pair of programmers fulfilling grants will lead to a better experience for all.

We have thought up about a dozen potential ideas, and we think 4 of them are ready to propose now. The others will come to fruition over time.


Our ideal situation would be to continually propose 3-5 grants every 2 months, but only have 1 of them granted at a time. This is of course, up to you and based on your perception of the merit of our proposals, but hopefully we can get better and better at providing projects that really move Perl forward.

We have received the following grant application "Swim to Pod". Please leave feedback in the comments field by September 25th, 2014.

Swim to Pod

  • Name:
    • Ingy döt Net
    • David Oswald
  • Amount Requested

    USD $3000


Provide Swim tools that allow Perl programmers to produce elaborate Pod documention, painlessly.

Provide all the functionality of Pod in a syntax better than Markdown.

Provide 5 plugins for extending Swim in ways useful to Perl people.

Benefits to the Perl Community

Pod excels in providing a great model for documentation. That means it supports all (most of) the semantic concepts needed to write great docs. Where Pod falls down is on syntax. The syntax is so verbose that common idioms (like creating lists of lists) are often avoided because they are to hard to write.

Many Perl people use Markdown which offers simpler syntax, but lacks many of the common semantic idioms in Pod. For instance, Markdown has no ability to do 'Data Definition' lists that are so common in CPAN docs (dl/dt/dd HTML tags). Markdown is also weak in nesting semantic blocks.

This summer Ingy created Swim, after thinking about it and discussing it for 8 years. He has converted all the documentation in over 80 of his CPAN (and other language) distributions. The result is incredibly easy to write and maintain doc, all published to Pod for CPAN and GitHub rendering.


  1. Tested support for full Pod semantics in Swim
  2. Tools to convert Swim to Pod
    • From .swim files
    • From .pm files embedded
  3. Provide 5 new Swim plugin modules
    • Useful Perl/doc things
    • Examples to write more
  4. Module automation plugins for turning Swim to Pod
    • Dist::Zilla
    • Module::Install
  5. Pod-to-Swim conversion tool

Project Details

Here are the things that Swim currently does:

  • Supports all basic markup semantics
  • Converts to Pod, HTML, Markdown, nroff (manpages) Text, DVI, PDF and more
  • Extensible by plugins A Travis badge plugin is currently on CPAN
  • Swim is Pegex based
    • Defined by a readable (human friendly) grammar
    • Will have implementations in many languages (including JavaScript)


  1. Write tests for all the semantic capabilities of Pod.
  2. Make basic swim --to=pod pass those tests.
  3. Write a Pod parsing grammar for Pod-to-Swim tool.
  4. Swim plugin module candidates:
    • Unicode escapes <U+2603> <U SNOWMAN>
    • HTML table support
    • Video embedding
    • Side-by-side comarison widget
    • Syntax highlighting code blocks
  5. Dist::Zilla plugin that transforms:
    • from: doc/My/Module.swim
    • or from: lib/My/
    • to: lib/My/Module.pod

Project Schedule

This project will take 2 months and can be started immediately upon acceptance.

Completeness Criteria

Above modules released to CPAN with all functionality and tests in place. Passing all tests.


Ingy döt Net has created markup languages in the past including the Kwiki wiki markup and the Socialtext wiki markup. He is extremely familiar with parsing, syntax and semantics issues in this space.

David Oswald has been a Perl user for over a decade, is an author of several CPAN modules, and maintainer of more. David also runs Salt Lake Perl Mongers.

Ingy and David work well together and have decided to collaborate on a number of projects that will benefit Perl and Software Development.


This document was written entirely in Swim and converted to Pod.

See these links:

We have received the following grant application "Pegex Grammar for YAML". Please leave feedback in the comments field by September 25th, 2014.

Pegex Grammar for YAML

  • Name:
    • Ingy döt Net
    • David Oswald
  • Amount Requested

    USD $3500


Make and YAML::Tiny driven by a common formal grammar.

Benefits to the Perl Community

Perl has four major YAML implementations:

They all have major incompatabilities. In the past year the #yaml channel on has gotten all the right people together to resolve this. A great next step would be to make the two pure Perl implementations YAML and YAML::Tiny be grammar driven.

Pegex is a Perl 6 Rules inspired framework that greatly lowers the barriers to writing parsers. The main goal of Pegex is to make grammars for parsing a language or syntax be as human friendly as possible. Pegex is also extremely fast for pure Perl code.

By having the Load functions for YAML and YAML::Tiny be grammar driven, the following benefits would occur:

  1. Both modules would parse the same YAML exactly the same
  2. Bugs could easily be fixed for both modules in the same grammar
  3. YAML::Tiny would be tinyer
  4. would become faster


This project will provide:

  • Pegex grammar for YAML
  • YAML and YAML::Tiny parser/loaders based on the grammar
  • Common test suite proving compatability

Project Details

Pegex is four years old, and has several CPAN modules based on it. It makes language defining grammars appear crystal clear. It has undergone an optimization development phase that makes it very fast.

Recent work was done to get YAML indentation working in Pegex. This was a major hurdle. This is now a good time to make a complete YAML grammar. Since Pegex works in many languages, eventually there will be exactly compatible YAML parsers in Perl, Python, Ruby, JS, etc.


  • Write a grammar for YAML in Pegex
    • Grammar will be well documented
    • Each grammar rule will be tested
  • Convert YAML to use the grammar for its loader
  • Convert YAML::Tiny to use (a subset of) the grammar for its loader
  • Both modules pass a common test suite

Project Schedule

This project will take 2-3 months and can be started immediately upon acceptance.

Completeness Criteria

Both modules released to CPAN, using the new Pegex grammar and passing the same tests. Pegex/YAML grammar published in its own GitHub repo.


Ingy döt Net invented the YAML language, is the author and maintainer of YAML and YAML::XS and is one of he people currently actively maintaining YAML::Tiny. He also is the creator of the Pegex parsing framework.

David Oswald has been a Perl user for over a decade, is an author of several CPAN modules, and maintainer of more. David also runs Salt Lake Perl Mongers.

Ingy and David work well together and have decided to collaborate on a number of projects that will benefit Perl and Software Development.

We have received the following grant application "Inline::C(PP) Module Support". Please leave feedback in the comments field by September 25th, 2014.

Inline::C(PP) Module Support

  • Name
    • Ingy döt Net
    • David Oswald
  • Amount Requested

    USD $2,000


Make Inline::C and Inline::CPP the best choice for writing "XS" modules.

Benefits to the Perl Community

In 2000, and Inline::C brought XS from "hard things possible" to "hard things simple". People with basic knowledge of Perl and C could combine the two, without having to learn the entirety of the black art of XS.

Soon after, support was added for C++, Java and ~25 other languages. Inline was consider rather successful.

The missing piece of all this is that Inline (C, C++) was never really polished to write CPAN modules; CPAN dists that would handle the compilation parts at install/build time, and then become nearly indistinguishable from plain XS modules after installation.

A common pattern has been for module programmers to start with Inline::C and then use it to learn XS, so that they can release the modules to CPAN. Often Inline::C has been used to generate the XS which is then pasted into a module distribution with a few adaptations to fit the distribution's framework. Though very successful, Inline should go further to simplify and remove the need for authors to manually work through tedious and error-prone steps.

In the summer of 2014, a number of core Inline developers came together to get Inline up to modern standards. We've decided the next big move is to polish up Inline so that it is ModuleReadyâ„¢; so that it supports module authorship and distribution.

This will allow many more people to use C and C++ to make Perl modules, without ever needing to learn XS boilerplate, which is a significant barrier to entry. Those who already know XS will still be pleased to rediscover that Inline is an easy way to create XS, and that these enhancements make it a good choice as a basis for XS module distributions.


  • Allow compilation of inlined C code to happen during a module's build time, and then allow Inline to get out of the way to a greater degree than currently happens.
  • Make use Inline not trigger a C compile or a C source check when running installed.
  • Provide support integration for:
    • Dist::Zilla
    • Module::Install
    • ExtUtils::MakeMaker
    • Module::Build
  • Make sure that the right things happen at test and build time (vs runtime).
  • Test that all works properly with C++.
  • Provide support for C modules where the C code is not 'inlined'
    • Like YAML::XS
  • Release a few current XS modules using Inline.
    • YAML::XS
    • String::Slice

Project Details

Inline development has resurged in #inline on The primary maintainers of Inline, Inline::C and Inline::CPP (C++) are the ones who want to make this happen.

These three modules above have already undergone considerable refactoring, modernization and bug fixing in the past 3 months, with many releases to show for it.

The goals for this grant are not conceptually hard, but require some focus. This grant will give us the time to focus. There is no reason to expect this work will take more than 2 months.


  1. Identify existing (or create new) modules that use different 'XS' strategies. These will be the driving test cases.

    They should include:

    • Inlined C
    • External C
    • Currently using XS
    • Trying to ship with Inline
    • C++
  2. Adjust Inline to know about development vs build vs installed runtimes.

    There are a few strategies. Likely there will be a dependency on a small module, say Inline::Module, that knows how to DTRTs, at the right times.

  3. Facilitate making Inline and Inline::C/CPP authoring and build tools for distributions, not just runtime tools.

  4. Make sure that Inline::C and Inline::CPP work right. In particular, upgrade the grammar tests and parsing to handle many C and C++ constructs that have been found to be lacking in current parsing solutions.
  5. Release real modules to CPAN that exercise each of the new development strategies.

    Watch for results on cpantesters.

  6. Write automation helpers:

    • Dist::Zilla plugin
    • Module::Install plugin
    • Documentation for ExtUtils::MakeMaker and Module::Build
  7. Write documention for how to be an "XS" author without learning XS boilerplate.

    Likely this will include a tutorial.

Project Schedule

David and Ingy see no reason this can't be done in two months. One month for code and modules. One month for documentation and testing. We hope to work on other grants, each about 2 months, so there is good reason to get this one done, done right, and out of the way.

Completeness Criteria

Release of these modules to CPAN (with above support):


Ingy döt Net is the original creator of Inline and Inline::C. His primary focus in Perl is to bring the "hard" things into the hands of beginners.

David Oswald has been maintaining Inline::CPP for four years, and is the only person to have made releases on Inline::CPP since 2003.

Ingy and David work well together and have decided to collaborate on a number of big projects that benefit Perl and Software Development. Inline was the obvious first choice.

We have received the following grant application "IO::All Redux". Please leave feedback in the comments field by September 25th, 2014.

IO::All Redux

  • Name
    • Ingy döt Net
    • David Oswald
  • Amount Requested

    USD $3,000


Rewrite IO::All to match the needs of 10 years experience.

Benefits to the Perl Community

IO::All is a Perl module that attempts to make all Input/Output operations in Perl, as simple, normal, and uniform as possible. IO::All has been in existence since 2004. It is useful and somewhat extensible, but has a number of inconsistencies, flaws and misgivings.

The proposal is the refactor and/or rewrite the IO::All code to become the perfect way to encode almost all of Perl IO needs. In other words:

  • All things are done safely
  • Unicode issues are all handled correctly
  • Options have the proper scope (lexicalpackageobject)
  • Can be used safely in production
  • Stays simple for 1-liners (small needs)
  • Internals are all plugin based rather than semi-hardcoded
  • Defaults are sane
  • Mo(o(se)) compatible OO
  • Weirder stuff like operator overloads need not be turned on explicitly


Using the Alt module strategy, we deliver an Alt-IO-All-Redux dist that installs a new IO::All. This is tested in beta until deemed safe to release properly as the new IO-All dist.

Current IO::All plugins are revised to the new strategy.

Project Details



  • Create Alt-IO-All-Redux dist so that new code can be used and tested by the community immediately
  • Write tests for new behaviors
  • Refactor the code to match the new design
  • Port current IO::All extension modules to new design
  • Get people on #io-all IRC channel and beyond to test the rewrite
  • Release as IO-All when deemed ready

Project Schedule

This project will take 2 months and can be started immediately upon acceptance.

Completeness Criteria

Alt-IO-All-Redux passes all tests, is vetted by the community and is released to CPAN as the new IO-All dist.


Ingy döt Net wrote IO::All in 2004. Of his many CPAN modules, it is probably one of the 3 most popular.

David Oswald has been a Perl user for over a decade, is an author of several CPAN modules, and maintainer of more. David also runs Salt Lake Perl Mongers.

Ingy and David work well together and have decided to collaborate on a number of projects that will benefit Perl and Software Development.

We have received the following grant application "Nile - Visual Web App Framework Separating Code From Design Multi Lingual And Multi Theme". Please leave feedback in the comments field by September 25th, 2014.

Nile - Visual Web App Framework Separating Code From Design Multi Lingual And Multi Theme

  • Name:

    Ahmed Amin Elsheshtawy

  • Amount Requested:

    USD 10,000


The main idea in this framework is to separate all the html design, text, and layout from programming with easy interface like Android.

The framework uses html templates for the design with special xml tags for inserting the dynamic output into the templates.

All the application text is separated in language files in xml format supporting multi lingual applications for easy translating and modifying all the text. The framework supports SEO links and routing in many ways.

The framework build on Modern Perl using Moose for easy interface.

The entire framework uses object oriented style for a unified and clean interface like working with Java.

Benefits to the Perl Community

This framework will highly reduce the development time of a powerful and modern web application in Perl as you can build a full working modern web application with routed URL, template driven multi lingual database driven in few lines of code like Android.


I am working on this project "Nile" framework over a year and I already released it on or github in alpha versions:

Project Details

The main idea of the project has been released as a module on cpan and github.

Some of the main features of the framework:

Separate coding from design

Multi lingual applications

Multi theme applications

SEO URL friendly


Plugin based

Full OO style

Shared application context

Modern Moose based

Helper classes for files, pagination, request, response, XML, database, Serialization, Router, Dispatcher, Language, Logs.

Helper classes for shared Config (XML based files), Settings (database based), Vars.

Views class for easy working with dynamic templates.

Applications can be build with inline actions routing for quick applications or routed to plugins.

Still I have a lots of ideas to be implemented and modifications based on developers and community feedback.


The first alpha version has been released.

Subsequent alpha versions is being released everyday.

New sub modules are being added every while.

New ideas added everyday.

Beta versions will start after main API is been stable.

Final versions will be within one year of working full time.

Considering feedback from the Perl communities and Developers.

Keep working on developing the framework and maintaining it.

Project Schedule

I already started on this project over a year now and work full time on it and I will keep working on it for a long time as it is expected to be a great support for the Perl developers and the Perl community.

The first stable release for production I expect to be within six months working full time.

Completeness Criteria

The framework alpha version is released on cpan and work on it will continue forever by receiving feedback and feature requests from all the developers all over the world. Until version 1.00 the API will be unstable.


My short resume is located here online:

I am working with Perl since 1998 as a self-hired for my online personal business at as a developer for Auction software, classifieds software, pay per click/impression software, forums, etc. for my own business.

I have also a RHCSA and RHCE training and have a good experience with Linux and *nix systems and server issues.

I also I just started Java and Mobile Applications.

Pattawan Kaewduangdee writes:

First of all, I would like to say thank you to The Perl Foundation for giving me such a great opportunity to work on MetaCPAN as an intern in the GNOME Outreach Program for Women. MetaCPAN is a really friendly part of the Perl community where I have learnt a lot from smart and specialized Perl developers.

While I was participating in the program I improved the user experience of MetaCPAN by making existing features more visible. For example, adding feed icons for subscription and making the feed data more descriptive. I fixed bugs such as adding an error page title, upgrading the autocomplete plugin including making table sort types be persistent. In addition, I enhanced the search result page with keyword suggestions, upgraded infrastructure components like Bootstrap3 as well as introducing Font Awesome.

As well as learning technical skills I also learnt about the social aspects of the community. I got to know a lot of Perl people as a MetaCPAN intern. I was given support, friendship, and knowledge exchange from people who are specialists in many different areas. This is a great thing that really makes me like the Open Source community. I also believe that taking part in the Outreach Program for Women was a key factor in my success in getting sponsorship from the Enlightened Perl Organization to enable me to participate in YAPC::Asia.

After finishing this program I plan to keep working on MetaCPAN as a contributor. If I have free time during my studies I want to contribute to other Perl projects in the area of search engine technology which is also my study area and is of personal interest.

Also, thank you so much to Randy Stauner, Olaf Alders and Thomas Sibley for being my mentors. Thanks to every MataCPAN contributor and user for any feedback and suggestions on my work which really helped me to learn. This project is a memorable experience in my life.

PPW 2014 Call for Talks

The Pittsburgh Perl Workshop Organizers are happy to announce our 7th annual event this November 7th through 9th in downtown Pittsburgh, PA. Our web site is now live and accepting registrations. We are also accepting talk submissions through September 26th:

Thanks to Mark Jason Dominus and Tom Christiansen for volunteering talks for PPW already. And thanks to Infinity Interactive for covering the costs for John Anderson to come to PPW and teach our famous "From Zero to Perl" class on November 7th at no extra charge for anybody buying a ticket to PPW.

More Perl::Lint Progress


It's a while since I reported on Taiki Kawakami's grant to work on Perl::Lint, a static analyser for Perl 5.

Taiki continues to work on Perl::Lint actively: you can track his progress in the project's public Github repository. Recently he has implemented more policy checks and added filters to exclude policies.

The impressive Perl::Lint playground lets you experiment with the module from within your Web browser and the preview release on CPAN makes it easy to install an experimental version of the module on your own machine. Also, Taiki has shared the slides from his talk about Perl::Lint at YAPC::Asia recently.

Please play in the playground or install the module yourself and let us know what you think.

Tony Cook has requested an extension of $20,000 for his Maintaining Perl 5 grant. This grant has been running successfully since July 2013. The requested extension would allow Tony to devote another 400 hours to the project. The funds for this extension would come from the Perl 5 Core Maintenance Fund.

As well as posting reports on the p5p mailing list Tony provides detailed monthly reports, the most recent of which can be found in the following blog posts:

August 2014
July 2014
June 2014

Before we make a decision on this extension we would like to have a period of community consultation that will last for seven days. Please leave feedback in the comments or, if you prefer, email your comments to karen at

Tony Cook writes:

Approximately 22 tickets were reviewed or otherwise worked on, and 3 patches were applied.

With this month I've exceeded the hours in my grant.

8.36#121159 code, tests
#121159 debugging, coding (needs some re-work)
#121159 refactor, testing
0.50#121404 fix, retest, apply to blead and comment
1.12#122005 review is_common(), ptr_table_* code, produce a crash, comment
0.10#122024 review and close
0.57#122107 re-test, apply to blead, comment
1.12#122112 look into a solution
2.43#122143 testing, debugging, comment
0.22#122373 comment
0.33#122405 comment
0.47#122424 review, comment and close - Unicode::Collate and taint
2.13#122445 debug, backtrace, try possible fixes - segfault
with bignum and debugger
9.30#122455 review
#122455 try to make a test
#122455 produce a test, comment
#122455 try to add set/get magic for debug vars, research $DB::signal
#122455 debugging, testing, polish, comment
4.50#122476 write a patch, some testing
#122476 testing, TODO test, produce patch, comment
#122476 re-test, apply to blead and close
0.98#122490 (security) research, comment
0.30#122517 research and comment
1.28cpan #97773 - supply a hang prevention fix for Socket
1.12create report for ptr_table is_common() bug
0.17defined(@) and defined(%) - comment
1.67Fedora 20 and debugger - debug, fix y command, comment
0.22global method cache reset - comment
1.12p5p catch-up
p5p catch-up
0.43smartmatch: check I didn't break when BLOCK

38.44 Hours Total

This announcement is essentially the same as the one from July. This is a bi-monthly reminder.

The Grants Committee is accepting grant proposals all the time. We evaluate them every two months and another evaluation period has come.

If you have an idea for doing some Perl work that will benefit the Perl community, consider sending a grant application. The application deadline for this round is 23:59 September 14th UTC. We will publish the received applications, get community feedback and conclude the acceptance by September 30th.

The format will be the same as the July round (Proposals, Results).

To apply, please read how to submit a grant. Rules of Operation will also help you understand how the grant process works.

We will confirm the receipt of application within 24 hours.

If you have further questions, please comment here. If your comment does not show up here within 24 hours, the chances are that the spam filter did something bad. Get in touch with me at tpf-grants-secretary at

About TPF

The Perl Foundation - supporting the Perl community since 2000. Find out more at

About this Archive

This page is an archive of entries from September 2014 listed from newest to oldest.

August 2014 is the previous archive.

October 2014 is the next archive.

Find recent content on the main index or look in the archives to find all content.


OpenID accepted here Learn more about OpenID
Powered by Movable Type 6.2.2