CPAN is mirrored, and there is no way to know how often your module distribution has been downloaded and no way can easily be made. Very often I have wished to know the number of users that DBIx::Simple has.

Sometimes you can tell your module is used because you get email about it. But that tends to happen only if something is broken and the bug is discovered. I guess that DBIx::Simple is used by more people than PLP, but I get more mail about PLP. Because it is broken (in some very interesting ways; or at least it appears to be broken to those who don't know how things work internally. strangely enough, the brokenness is sometimes intended behaviour).

The recent Makefile.PL security danger invented by DOMIZIO and all the fuss about it, did inspire me. I could just send a simple HTTP request or something like that to my web server on module installation. That doesn't say anything about actual usage, but it would give me information that would be valuable to me.

It could include useful information like $^O and $]. That would probably teach me that not everyone uses a recent Perl on Linux :)

It would explain what it is about to do and then wait ten seconds so it can be terminated if someone doesn't like it. I don't want it to default to not-sending the information, because most installations are done with CPAN or CPANPLUS. Environment variables can probably be used to determine that the module is just being used for automated testing. Update: It would hook into make install to avoid useless statistics from smoke testers.

It would not eval something or use dynamic code, but would instead discard any information received from the web server.

This probably cannot tell me about Windows users that use PPM, but it can give me a lot more information to work with than I have now.

Before I implement this, I would like to know if anyone thinks it's wrong to gather this information. Please let me know what you think about this, in public or privately. [Please be warned though that I reserve the right to ignore your opinion =)]

Update: To be absolutely clear, a summary:

Another update: Opt-out doesn't seem to be very popular. I'm glad I asked first :) Please make sure you read 350615, where I propose these changes:

Juerd # { site => 'juerd.nl', plp_site => 'plp.juerd.nl', do_not_use => 'spamtrap' }


In reply to Gathering module usage statistics by Juerd

Title:
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, details, 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, summary, 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.