<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>Paul Johnson</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/paul_johnson/" />
    <link rel="self" type="application/atom+xml" href="http://blogs.perl.org/users/paul_johnson/atom.xml" />
    <id>tag:blogs.perl.org,2009-11-03:/users/paul_johnson//528</id>
    <updated>2012-11-05T22:12:56Z</updated>
    <subtitle>A blog about the Perl programming language</subtitle>
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type Pro 4.38</generator>

<entry>
    <title>Google Code-In 2012</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/paul_johnson/2012/11/google-code-in-2012.html" />
    <id>tag:blogs.perl.org,2012:/users/paul_johnson//528.4024</id>

    <published>2012-11-05T21:47:32Z</published>
    <updated>2012-11-05T22:12:56Z</updated>

    <summary>Could your module or project benefit from having someone fix a specific bug add a test for a specific feature improve test coverage by 5% write a tutorial create a screencast for beginners write an example program create a homepage...</summary>
    <author>
        <name>Paul Johnson</name>
        <uri>http://www.pjcj.net</uri>
    </author>
    
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/paul_johnson/">
        <![CDATA[<p>Could your module or project benefit from having someone</p>

<ul>
	<li>fix a specific bug</li>
	<li>add a test for a specific feature</li>
	<li>improve test coverage by 5%</li>
	<li>write a tutorial</li>
	<li>create a screencast for beginners</li>
	<li>write an example program</li>
	<li>create a homepage for the module</li>
</ul>

<p>?</p>

<p>If so, you could be in luck.  These are all potential tasks for students in this year's Google Code-In.</p>

<p>Following on from our success last year, The Perl Foundation is hoping to take part in the Google Code-In again this year.  GCI is a programme similar to the Google Summer of Code, but aimed at students between the ages of 13 and 17. Students complete short well defined tasks for open source projects, and the two top students from each organisation will be invited to visit Google's headquarters in Mountain View, California for a five-day trip.</p>

<p>This is a wonderful opportunity that we have to get young students involved in open source software in general and Perl in particular. One of the aims of the GCI programme is to find those who will become long-term contributors and ensure the future of open source projects. So if you want to help ensure the long-term viability of Perl, or find a new developer for your project, then please get involved with GCI.</p>

<p>This year only ten organisations will take part in GCI.  To back up our application we need to prepare some tasks for the students.  If you are a module author, or you are involved in a Perl project, <strong>WE NEED YOUR HELP!</strong>  But you can also benefit, so this is a win-win proposition.</p>

<p>We need a set of tasks to make available to students, along with mentors willing to help students with the tasks.  We need tasks in the following five categories:</p>

<ul>
	<li>  <strong>Code</strong>: Tasks related to writing or refactoring code</li>
	<li>  <strong>Documentation/Training</strong>: Tasks related to creating/editing documents and helping others learn more</li>
	<li>  <strong>Outreach/Research</strong> Tasks related to community management, outreach/marketing or studying problems and recommending solutions</li>
	<li>  <strong>Quality Assurance</strong>: Tasks related to testing and ensuring code is of high quality</li>
	<li>  <strong>User Interface</strong>: Tasks related to user experience research or user interface design and interaction</li>
</ul>
Last year we had 162 tasks successfully completed by 89 students.  That was wonderful, and we would like to do at least as well this year.

<p>Please take a look at the <a href="http://wiki.enlightenedperl.org/gci2012">wiki</a> for more information and take ten minutes to sign up as a <a href="http://wiki.enlightenedperl.org/gci2012/mentors">mentor</a> or add one or more <a href="http://wiki.enlightenedperl.org/gci2012/tasks">tasks</a> to the list.  We need these lists populated as soon as possible to support our application.</p>

<p>Thank you!</p>]]>
        
    </content>
</entry>

<entry>
    <title>cpancover</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/paul_johnson/2012/05/cpancover.html" />
    <id>tag:blogs.perl.org,2012:/users/paul_johnson//528.3313</id>

    <published>2012-05-29T10:38:04Z</published>
    <updated>2012-06-03T19:47:22Z</updated>

    <summary>I&apos;ve started work on my Devel::Cover grant from TPF. If you are interested you can see my report for the first week at http://www.nntp.perl.org/group/perl.qa/2012/05/msg13184.html. As a part of that work I have updated cpancover and moved it to a new...</summary>
    <author>
        <name>Paul Johnson</name>
        <uri>http://www.pjcj.net</uri>
    </author>
    
    <category term="cpancoverdevelcover" label="cpancover Devel::Cover" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/paul_johnson/">
        <![CDATA[<p>I've started work on my Devel::Cover grant from TPF.  If you are interested you can see my report for the first week at <a href="http://www.nntp.perl.org/group/perl.qa/2012/05/msg13184.html">http://www.nntp.perl.org/group/perl.qa/2012/05/msg13184.html</a>.</p>

<p>As a part of that work I have updated cpancover and moved it to a new home at <a href="http://cpancover.com">http://cpancover.com</a>.</p>

<p>cpancover is my project to provide coverage details for CPAN modules.  Whilst useful in its own right, I also tend to use CPAN as my extended test suite for Devel::Cover.  I was able to procure a server in the beta phase of <a href="http://bigv.io">http://bigv.io</a> from the nice folk at <a href="http://bytemark.co.uk">http://bytemark.co.uk</a> and I decided it was time for cpancover to have its own domain name.</p>

<p>If you would like to see a module added to cpancover please let me know.  Or, better yet, patch <a href="https://github.com/pjcj/Devel--Cover/blob/master/utils/install_modules">https://github.com/pjcj/Devel--Cover/blob/master/utils/install_modules</a> and send me a pull request.</p>]]>
        
    </content>
</entry>

<entry>
    <title>Vim report for Devel::Cover (Perl QA Hackathon) - part 2</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/paul_johnson/2012/04/vim-report-for-develcover-perl-qa-hackathon---part-2.html" />
    <id>tag:blogs.perl.org,2012:/users/paul_johnson//528.3069</id>

    <published>2012-04-09T20:41:10Z</published>
    <updated>2012-04-09T22:16:10Z</updated>

    <summary>At last week&apos;s QA Hackathon in Paris I put together a Vim report for Devel::Cover to show coverage information as Vim signs. See http://blogs.perl.org/users/paul_johnson/2012/03/vim-report-for-develcover-perl-qa-hackathon.html Whilst nice, and somewhat useful, this was very much a proof of concept. It only worked...</summary>
    <author>
        <name>Paul Johnson</name>
        <uri>http://www.pjcj.net</uri>
    </author>
    
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/paul_johnson/">
        <![CDATA[<p>At last week's QA Hackathon in Paris I put together a Vim report for Devel::Cover to show coverage information as Vim signs.  See http://blogs.perl.org/users/paul_johnson/2012/03/vim-report-for-develcover-perl-qa-hackathon.html</p>

<p>Whilst nice, and somewhat useful, this was very much a proof of concept.  It only worked for statement coverage, it wasn't particularly clever, nor was it particularly pretty.</p>

<p>I've just released Devel::Cover version 0.86 which solves a number of these problems.  It shows all types of coverage data (that Devel::Cover knows about), it seems to be pretty usable (at least in the way I use vim), and it provides a way to customise it to make it pretty (I'm fairly happy with the way mine looks).</p>

<p><img alt="cov1.png" src="http://blogs.perl.org/users/paul_johnson/cov1.png" width="716" height="560" class="mt-image-none" style="" /></p>

<p>In this image you can see some of the features.  The column on the left-hand side shows the coverage information.  Five coverage criteria are displayed as:</p>

<p> P - Pod coverage<br />
 S - Statement coverage<br />
 R - Subroutine coverage<br />
 B - Branch coverage<br />
 C - Condition coverage</p>

<p>Successfully covered criteria are displayed in green, uncovered criteria in red.  Since only one criterion can be displayed, the most important is chosen.  In the list above, lower criteria are more important.  Any uncovered criterion is displayed in preference to a covered criterion.</p>

<p>Thus, in line 69, although the statement is covered, as is the subroutine, there is is no pod coverage and so we see a red P.  Lines 70, 72 and 73 are covered statements, hence the green S.  Line 74 is a covered statement too, but it is also a covered branch, so we see a green B.  Line 77 is an uncovered condition resulting in a red C.  You get the idea.</p>

<p><img alt="cov2.png" src="http://blogs.perl.org/users/paul_johnson/cov2.png" width="514" height="345" class="mt-image-none" style="" /></p>

<p>If you are editing a file, coverage information can get out of date.  Vim does its best to move signs appropriately when you are editing, but in the image above you can see a file being edited with out of date coverage data and the left hand coverage column has a red hue to make this more apparent.</p>

<p>Since I don't know your colour scheme, this is all customisable by adding an appropriate devel-cover.vim file somewhere under your ~/.vim directory.  I use the dark solarized theme (http://ethanschoonover.com/solarized) and have included my cutomised devel-cover.vim file in the docs so you can copy from it.</p>

<p>I can see this becoming a standard tool that I use during my development.  I'm really thankful to Miyagawa for pointing me in the right direction at the QA Hackathon.</p>

<p>And on that note, many, many thanks to Laurent Boivin (elbeho), Philippe Bruhat (BooK) and the Les Mongueurs de Perl for the organisation, which was just about perfect.  Additionally, the event would not have been possible without <a href="http://2012.qa-hackathon.org/qa2012/sponsors.html">sponsors</a>: <a href="http://www.cite-sciences.fr/fr/cite-des-sciences/">The City of Science and Industry</a>, <a href="http://www.diabolocom.com/">Diabolo.com</a>, <a href="http://www.dijkmat.nl/">Dijkmat</a>, <a href="http://duckduckgo.com/">DuckDuckGo</a>, <a href="http://dyn.com/">Dyn</a>, <a href="http://freeside.biz/freeside/">Freeside Internet Services</a>, <a href="http://www.hederatech.com/">Hedera Technology</a>, <a href="http://www.jaguar-network.com/">Jaguar Network</a>, <a href="http://www.mongueurs.net/">Mongueurs de Perl</a>, <a href="http://shadow.cat/">Shadowcat Systems Limited</a>, <a href="http://www.splio.com/">SPLIO</a>, <a href="http://www.teclib.com/en">TECLIB'</a>, <a href="http://weborama.com/2/">Weborama</a>, and <a href="http://www.perl-magazin.de/">$foo Magazine</a> and individual donations from Martin Evans, <a href="http://mdk.me/">Mark Keating</a>, Prakash Kailasa, Neil Bowers, 加藤 敦 (Ktat), Karen Pauley, Chad Davis, Franck Cuny, 近藤嘉雪, Tomohiro Hosaka, Syohei Yoshida, 牧 大輔 (lestrrat), and Laurent Boivin.</p>

<p>The effects of those few days in Paris will be felt for weeks and months to come, so thanks again to all the sponsors and individuals who made it happen.</p>

<p>Finally, I am applying for a grant from TPF to help push Devel::Cover work forward.  The time for feedback is drawing to a close, so if you have any comments you'd like to make about that, please leave them at http://news.perlfoundation.org/2012/04/grant-application-improving-de.html</p>]]>
        
    </content>
</entry>

<entry>
    <title>Vim report for Devel::Cover (Perl QA Hackathon)</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/paul_johnson/2012/03/vim-report-for-develcover-perl-qa-hackathon.html" />
    <id>tag:blogs.perl.org,2012:/users/paul_johnson//528.3020</id>

    <published>2012-03-31T14:48:23Z</published>
    <updated>2012-03-31T15:13:54Z</updated>

    <summary>Last night over dinner I had a discussion with Miyagawa about what Devel::Cover could steal from Ruby. He mentioned a Ruby backend which uses Vim signs to show coverage information. So today I shamelessly stole it and produced a basic...</summary>
    <author>
        <name>Paul Johnson</name>
        <uri>http://www.pjcj.net</uri>
    </author>
    
    <category term="develcovervimqahackathon" label="Devel::Cover Vim QA HAckathon" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/paul_johnson/">
        <![CDATA[<p>Last night over dinner I had a discussion with Miyagawa about what Devel::Cover could steal from Ruby.  He mentioned a <a href="https://github.com/nyarly/Simplecov-Vim">Ruby backend</a> which uses Vim signs to show coverage information.</p>

<p>So today I shamelessly stole it and produced a basic version for Devel::Cover.</p>

<p>Devel::Cover has more coverage criteria, so extra work will be required to provide this information, but the report seems useful for now.  To use it run</p>

<p>  $ cover -report vim</p>

<p>and then in vim:</p>

<p>  :so cover_db/coverage.vim</p>

<p>I'd be happy to get bug reports, feature requests, patches or even pull requests against the <a href="https://github.com/pjcj/Devel--Cover">repository</a>.  And if anyone would like to take this idea and produce a backend for emacs or any other editor, please do so.</p>

<p>This has just been released in Devel::Cover 0.84.  This is the second Devel::Cover release I have made at the QA hackathon in Paris this weekend.  Many, many thanks to all the organisers, sponsors and participants.</p>]]>
        
    </content>
</entry>

<entry>
    <title>Perl Accepted For GCI - Now We Just Need Students</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/paul_johnson/2011/11/perl-accepted-for-gci---now-we-just-need-students.html" />
    <id>tag:blogs.perl.org,2011:/users/paul_johnson//528.2434</id>

    <published>2011-11-13T14:40:27Z</published>
    <updated>2011-11-13T16:40:53Z</updated>

    <summary>Some of you may remember that a couple of weeks ago I wrote about how The Perl Foundation was hoping to take part in the Google Code-in 2011 (GCI) and I badgered you for help in providing tasks and acting...</summary>
    <author>
        <name>Paul Johnson</name>
        <uri>http://www.pjcj.net</uri>
    </author>
    
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/paul_johnson/">
        <![CDATA[<p>Some of you may remember that a couple of weeks ago I <a href="http://blogs.perl.org/users/paul_johnson/2011/10/gci-2011.html">wrote</a> about how <a href="http://www.perlfoundation.org/Google%20Code-in">The Perl Foundation</a> was hoping to take part in the Google Code-in 2011 (<a href="http://wiki.enlightenedperl.org/gci2011">GCI</a>) and I <a href="http://blogs.perl.org/users/paul_johnson/2011/10/more-about-gci-2011.html">badgered</a> you for help in providing tasks and acting as mentors in the programme.</p>

<p>I am happy to announce that the application of The Perl Foundation has been officially <a href="http://www.google-melange.com/gci/accepted_orgs/google/gci2011">accepted</a> and Perl will be taking part in GCI 2011.  This is due in large measure to the wonderful reaction to our appeals which has lead to numerous high quality tasks being added to the <a href="http://wiki.enlightenedperl.org/gci2011/gci2011/ideas">ideas page</a> and many selfless developers volunteering to be <a href="http://wiki.enlightenedperl.org/gci2011/mentors">mentors</a>.  Without your assistance our application would not have been successful, so thank you very much to everyone involved.</p>

<p>But the tasks are only part of the story.  Undoubtedly the track record that Perl has in GSOC as well as last year's GCI was a contributing factor, as was the leadership of Florian Ragwitz and Mark Keating.  So many thanks to everyone who has brought us to this point.</p>

<p>Of course, we're now just at the start of the programme though.  We have <a href="http://wiki.enlightenedperl.org/gci2011/gci2011/ideas">tasks</a> and <a href="http://wiki.enlightenedperl.org/gci2011/mentors">mentors</a>, but it's not too late to add more.  So please continue to add tasks and sign up as a mentors.  Look at my <a href="http://blogs.perl.org/users/paul_johnson/2011/10/more-about-gci-2011.html">previous post</a> if you need ideas.</p>

<p>But we also need students!  Mark Keating has provided <a href="http://www.perlfoundation.org/Google%20Code-in">information</a> on <a href="http://www.perlfoundation.org/#gci">The Perl Foundation's website</a> including <a href="http://www.perlfoundation.org/attachment/press_releases/GCi-2011-basic-home-small-office-printer.pdf">two</a> <a href="http://www.perlfoundation.org/attachment/press_releases/GCi-2011-basic.pdf">flyers</a> to post in appropriate locations.  Remember that GCI is for students aged between 13 and 17 who do not attend university.  They do not necessarily have to be studying a computing course.  Students have to opportunity of earning up to $500 and the chance of a trip to visit Google's headquarters.  Students will be able to start working on tasks on 21st November 2011.</p>

<p>So yes, this is another appeal for help.  Please spread the word and help us find students for this programme.  We often hear about the need to attract new people into the Perl community.  If you would like to do more than just talk about it, this is a perfect opportunity.<br />
</p>]]>
        
    </content>
</entry>

<entry>
    <title>More about GCI 2011</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/paul_johnson/2011/10/more-about-gci-2011.html" />
    <id>tag:blogs.perl.org,2011:/users/paul_johnson//528.2374</id>

    <published>2011-10-30T21:31:18Z</published>
    <updated>2011-10-31T00:35:46Z</updated>

    <summary>The Google Code-in 2011 (GCI) will be starting shortly. This is the programme under which students aged between 13 and 17 years are encouraged to get involved in open source projects. The Perl Foundation would like Perl to be a...</summary>
    <author>
        <name>Paul Johnson</name>
        <uri>http://www.pjcj.net</uri>
    </author>
    
    <category term="gci" label="GCI" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/paul_johnson/">
        <![CDATA[<p>The Google Code-in 2011 (<a href="http://wiki.enlightenedperl.org/gci2011">GCI</a>) will be starting shortly.  This is the programme under which students aged between 13 and 17 years are encouraged to get involved in open source projects.  The Perl Foundation would like Perl to be a part of this programme, bringing both short and long-term benefits to Perl and the students alike.</p>

<p>Many of you will have seen my <a href="http://blogs.perl.org/users/paul_johnson/2011/10/gci-2011.html">previous post</a> asking the Perl community for help in creating tasks for students.  A few of you have subsequently added tasks to the <a href="http://wiki.enlightenedperl.org/gci2011/gci2011/ideas">ideas page</a>.  For this we are extremely grateful.  Some of you may well be planning to add some tasks.  We'll also be very grateful for these tasks.</p>

<p>It's almost time to submit our application.  But for our application to be successful we really need to add more tasks.  So I'm renewing my appeal for your help.</p>

<p>We need help from all sorts of people.  From developers, from designers, from technical writers, from managers, from marketers, from QA people and testers, from architects, from trainers, from user interface specialists and from anyone who can speak more than one language.  And if you're reading this and don't fit into any of those categories then you undoubtedly have other talents and we probably need you even more.</p>

<p>We need you to visit the <a href="http://wiki.enlightenedperl.org/gci2011/gci2011/ideas">ideas page</a> and read about the sort of tasks we need.  Then create a login and add a task.  If you can't or don't want to create a login, please mail your task to me at <a href="mailto:paul@pjcj.net">paul@pjcj.net</a>.</p>

<p>Here are some suggestions for tasks:</p>

<p> - Develop a new feature.<br />
 - Port to a new operating system.<br />
 - Fix a bug.  (Go and check your RT queue.)<br />
 - Add tests for a feature.<br />
 - Add tests to improve coverage.  (Take a look at <a href="http://pjcj.sytes.net/cpancover/">cpancover</a>).<br />
 - Add to or improve documentation.<br />
 - Write a tutorial.<br />
 - Make a tutorial video.<br />
 - Make a promotional video.<br />
 - Add internationalisation (I18N) to a module.<br />
 - Translate documentation, tutorials or web sites.<br />
 - Investigate API changes.<br />
 - Research new ideas. algorithms or libraries.<br />
 - Compare and contrast modules.</p>

<p>But feel free to let your imagination run wild.  Any task that a young student could perform that would be beneficial to the project is fair game.</p>

<p>In addition, if you really cannot think of a task to add, but you would be willing to act as a mentor please add your name to the <a href="http://wiki.enlightenedperl.org/gci2011/gci2011/ideas">ideas page</a> and note any areas in which you would be willing to mentor.  In particular we are in need of mentors who would be able to assist with translation tasks, so if you speak more than one language please add your name and note which languages you speak.  We also need mentors who would be happy to work with students on bugs in modules where the author is unable to do so.  But we're very happy to accept all volunteers.  So please either add a task or sign up as a mentor.  (Or both.)</p>

<p>But this is getting very urgent.  Our application needs to be on Tuesday so please don't delay and sign up today!</p>

<p>Thank you very much for your assistance.  I trust that with your help this year's GCI will be even more successful than last year's.</p>]]>
        
    </content>
</entry>

<entry>
    <title>GCI 2011</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/paul_johnson/2011/10/gci-2011.html" />
    <id>tag:blogs.perl.org,2011:/users/paul_johnson//528.2362</id>

    <published>2011-10-26T17:08:10Z</published>
    <updated>2011-10-26T18:22:35Z</updated>

    <summary>The Perl Foundation is hoping to take part in the Google Code-in once again this year. This is a programme under which students aged between 13 and 17 are able to undertake short, well defined tasks for open source projects,...</summary>
    <author>
        <name>Paul Johnson</name>
        <uri>http://www.pjcj.net</uri>
    </author>
    
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/paul_johnson/">
        <![CDATA[<p>The Perl Foundation is hoping to take part in the <a href="http://www.google-melange.com/gci/document/show/gci_program/google/gci2011/about">Google Code-in</a> once again this year.  This is a programme under which students aged between 13 and 17 are able to undertake short, well defined tasks for open source projects, and in return they will get a tee-shirt, a certificate, gain credits and can also be paid up to $500 for their work by Google.  The ten students with the most credits at the end of the programme will also be invited to visit the Google headquarters.</p>

<p>This is a wonderful opportunity that we have to get young students involved in open source software in general and Perl in particular. One of the aims of the GCI programme is to find those who will become long-term contributors and ensure the future of open source projects.  So if you want to help ensure the long-term viability of Perl, then please get involved with GCI.</p>

<p>If you are a module author, or you are involved in a Perl project, <strong>WE NEED YOUR HELP!</strong>  But you can also benefit, so this is a win-win proposition.</p>

<p>We need a set of tasks to make available to students, along with mentors willing to help students complete the tasks, if necessary.  We need tasks in the following eight categories:</p>

<p><strong>Code</strong>: Tasks related to writing or refactoring code<br />
<strong>Documentation</strong>: Tasks related to creating/editing documents<br />
<strong>Outreach</strong>: Tasks related to community management and outreach/marketing<br />
<strong>Quality Assurance</strong>: Tasks related to testing and ensuring code is of high quality<br />
<strong>Research</strong>: Tasks related to studying a problem and recommending solutions<br />
<strong>Training</strong>: Tasks related to helping others learn more<br />
<strong>Translation</strong>: Tasks related to localization<br />
<strong>User Interface</strong>: Tasks related to user experience research or user interface design and interaction</p>

<p>WE NEED YOUR HELP <strong>NOW</strong>!</p>

<p>We need to submit our application by 1st November 2011 supported by a list of tasks.  Ideally we should have at least eighty tasks covering all the categories above.  Half of the tasks will be for the first phase of the programme, and the remainder for the second phase.</p>

<p>So, we need at least eighty tasks in the next five days.  If every module author or project member were to provide just one task we could easily do that.  Please take ten minutes to read up on GCI, select a task and add it to the <a href="http://wiki.enlightenedperl.org/gci2011/gci2011/ideas">wiki</a> today.</p>

<p>Tasks might include such items as fixing bugs (check your RT queue), adding tests for specific areas or to improve code coverage in general, writing a tutorial, translating documentation, making a video promoting the project or demonstrating its use, adding new features, researching potential new areas, or anything else which could help the project.</p>

<p>Please take a look at the <a href="http://wiki.enlightenedperl.org/gci2011">wiki</a> for more information and add your tasks to the <a href="http://wiki.enlightenedperl.org/gci2011/gci2011/ideas">ideas page</a>.</p>

<p><strong>Please help!</strong>  Every module author and project member can make a difference in helping to ensure the future of open source, Perl and your own project.  <a href="http://wiki.enlightenedperl.org/gci2011/gci2011/ideas">Add</a> a task now.  Really,  Just do it.  Then add another one tomorrow.  And the next day.  We can't have too many.  We already know that you are generous and happy to give back to the Perl community.  Please consider this new way of doing so.  If you don't think you would be able to act as a mentor, please add the task anyway, and we will find someone else to mentor.  Thank-you for your help.</p>

<p>Oh, and it's great for the students too, so if you have any way of publicising this to appropriate students too, please do that.  But <a href="http://wiki.enlightenedperl.org/gci2011/gci2011/ideas">add</a> a task first!</p>]]>
        
    </content>
</entry>

<entry>
    <title>Variable Names</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/paul_johnson/2011/09/variable-names.html" />
    <id>tag:blogs.perl.org,2011:/users/paul_johnson//528.2193</id>

    <published>2011-09-14T22:19:48Z</published>
    <updated>2011-09-14T22:47:34Z</updated>

    <summary>I wrote this on beginners@perl.org today in a thread which was discussing short variable names: My own take on variable names is that naming is one of the hardest problems in software development, and that the length of a variable...</summary>
    <author>
        <name>Paul Johnson</name>
        <uri>http://www.pjcj.net</uri>
    </author>
    
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/paul_johnson/">
        <![CDATA[<p>I wrote this on beginners@perl.org today in a thread which was discussing short variable names:</p>

<p><br />
My own take on variable names is that naming is one of the hardest problems in software development, and that the length of a variable name should reflect the length of the scope in which it is visible.  A single letter variable name is fine in a small loop, for example.  A larger scope would call for a correspondingly larger variable name.                                            <br />
                                                                                 <br />
The rationale for this is that our short-term memory can store only a small amount of information; 7 ± 2 items according to Miller, but more recently thought to be 3 or 4 "chunks".  When reading or writing code, additional text such as unnecessary comments, excessive punctuation and even long names can obscure the meaning of the code making it harder to reason about.  If a common variable in a small scope can be given a short name, that variable and its purpose can be stored in our short-term memory for the duration of our concentration on that scope.  For larger scopes, where there are more names, this would overflow our short-term memory requiring us to go back and check what the short name actually referred to, negating the benefit of having less cluttered code.</p>

<p>Naturally, this is also the reason why the name must be descriptive rather than merely long, and certainly shouldn't be misleading.</p>

<p>And as with other names, a single letter variable name should reflect its purpose as much as possible, to further aid our understanding; $q for a queue, $c for a customer, $n for a count and so forth.  The problems start to occur when we have a customer and a context, for example, and at that point having a variable named $c is more of a hindrance than a help.  That's when you would want $cust and $cxt, or $customer and $context depending on the size of their scopes.</p>]]>
        
    </content>
</entry>

</feed>
