Beefy Boxes and Bandwidth Generously Provided by pair Networks
We don't bite newbies here... much

Comment on

( #3333=superdoc: print w/replies, xml ) Need Help??

You'd like to learn perl a bit better, but missing a cool and useful idea? Or just want to gather a bit of fame in the Perl community?

Here are a few project ideas that I'd would like to see implemented, and that seem interesting enough for me to implement them. When I have time, which is the caveat - I won't get around to them in the near future.

Enough teasing, here's the list

  • Popularity Contest for CPAN Modules
  • Offline Command Line Search for CPAN
  • Which tests matter?
  • Binary CPAN mirror

They are all related to the perl+CPAN infrastructure, and need perl's facility as a glue language.

Popularity Contest

So you wrote a CPAN module, and after a few weeks you're a bit disappointed - all smokes are green, you've got one or two ratings, but still you have no idea how many people actually use your module. Or at least have it installed.

Debian has a (partial) solution for this, named "Popularity Contest", short popcon. They offer a package which runs a cron job once a week, and reports (anonymously) via email which packages are installed, and (if this information is available) if they were used.

I'd like to see something similar for CPAN distributions. I wouldn't send emails (because not everybody has a mail server installed) but rather report via HTTP POST requests.

I could argue about usefulllness, for example for perl distributors who want to decide what to deliver by default. But mostly I'm just curious about the results.

Offline Command Line Search for CPAN

I'm one of these unfortunate people who are offline rather often, and of course my best ideas come when I can't search CPAN to find out if somebody did the hard 90% of the work already. Also I just don't like to be forced to use a browser for any task. Plain CPAN and CPANPLUS can only search in module and distribution names.

That's why I'd like to have a command line utility that searches the POD documentation, for example using the excellent KinoSearch module. Let's assume there's already a CPAN::Mini mirror available...

Which tests matter?

The other day a fellow Perlmonger told me about a problem of his: Some of his modules have quite extensive test suites that need to be maintained. Over time they assemble some duplicated tests, and removing them would ease the maintenance burden.

There are two nice ideas how to find out which tests matter, both of them involving Devel::Cover.

The first is to run each test separately with Devel::Cover, identify which statements and branches are covered, and then search for test files which don't test anything that is also tested elsewhere.

The second sounds less efficient, but more fun: nuke each test file in turn (and restore the previously nuked), run Devel::Cover and see if the coverage has changed. You can use some evolutionary algorithms to optimize removal of multiple test files.

Binary CPAN Mirror

I love CPAN, but I use Linux with a package management system and CPAN ignores that. It installs to /usr/local/ so it's not that bad, but I'd like it better if I could install all CPAN packages with my package management system (in this case apt).

I can build Debian packages from CPAN packages with dh-make-perl, but it always takes some time, and I have to check (and follow) the dependencies manually.

So what I'd like to have (or build) is a CPAN mirror that automatically builds binary packages from CPAN tar balls.

This is a non-trivial taks because non-perl dependencies aren't encoded in a cross-platform and machine readable format in CPAN packages, but a partial solution for pure-perl only modules would still be formidable.

So if you that inspired you, feel free to implement any of them (or tell me that there already is a solution), or go on and write about your own cool perl project ideas.

(Update: fixed a few typos, Corion++ and Arunbear++)

In reply to Cool Ideas for Perl Projects by moritz

Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":

  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.
  • Log In?

    What's my password?
    Create A New User
    What's the matter? Cat got your tongue?...

    How do I use this? | Other CB clients
    Other Users?
    Others surveying the Monastery: (4)
    As of 2018-05-26 22:39 GMT
    Find Nodes?
      Voting Booth?