# from Aristotle Pagaltzis
# on Friday 04 July 2008 22:38:
>* Eric Wilhelm <[EMAIL PROTECTED]> [2008-07-04 10:25]:
>> Assuming that we could obtain download counts (which we can't)
>
>...Case in point: I keep my own minicpan mirror...
So? I said "(which we can't)" to convey that counting downloads is
impossible -- it cannot be done. I went on to briefly explain that it
is also futile, which you have also done. Now that we've covered that
twice, we can move on?
Getting opt-in counts of usage via dependency scanning:
grep -h '^use ' $(echo $PATH | sed 's/:/\n/g' | sort -u | \
sed 's/$/\/*/') | perl -pe 's/^use //; s/(;| |\().*//' | sort -u
The above pipeline is a very dumb scan [1], but already gathers useful
information. Now take that output and prune [3] every module which is
not found in your ~/.cpanplus/02-packages.details.txt.gz [2] and post
the resulting list [4].
Now, of course this is all fun and interesting, but it does $me very
little good to tell $you what modules I'm running. So, even if $you
worked through all of the caveats in [1], why would $me bother to
install it and setup a cron job to post the results? Thus, I think the
incentive has to come in the form of something $me can use to improve
$me's code/process/etc. For example, a local DB holding all of that
info and some reports -- which is where the source file and frequency
count become important.
Footnotes:
[1] It should skip missing directories, has obvious static scanning
problems (re eval, pod, quoting, &c) with '^use ', misses require()s,
and anything after a semicolon. The -h option and final `sort -u` also
drops the source file and frequency data. And there's nothing in that
grep which says it is a perl file. Further, this skips cgi-bin, sbin,
and doesn't even look for library trees.
[2] The 02packages.details.txt.gz can be found in your mirror's
"modules/" directory, but of course if you have the module installed via
CPAN(PLUS), your local copy is up-to-date enough to list it.
[3] http://scratchcomputing.com/tmp/module_is_shipped.pl
[4] http://scratchcomputing.com/tmp/modules_in_bin.txt [5]
[5] I see 'the' in there, and yes Ingy published a "the.pm", but no I
don't have it installed. See [1].
--Eric
--
"It is impossible to make anything foolproof because fools are so
ingenious."
--Murphy's Second Corollary
---------------------------------------------------
http://scratchcomputing.com
---------------------------------------------------