in reply to Gathering module usage statistics

I would not do this. I would also like to know how much my modules are used, but I think this would be the wrong way to get that information.

First it doesn't tell you the whole story: you would not see PPM, but also RPM, ports, eports... users. And you would get lots of people installing modules that they will never use. Plus what happens if someone downloads the module, then installs it while online? You will end up increasing significantly the complexity of the install process, for no benefit to the user.

But the basic reason against it is that it would run contrary to what I think Open Source stands for. Of course you always get a nice ego boost when you learn that <insert big corporation, personal hero or favourite arch-ennemy name here> uses your software, but that's not the point. The point is to release code that you are proud of. With no ties attached. "Phoning home" is for closed-source code. And lots of people hate it. I would not be proud to do it. I would feel that I would break the trust that users put in me.

BTW, did Larry try to track who was downloading Perl 1?

Replies are listed 'Best First'.
Re: Re: Gathering module usage statistics
by dragonchild (Archbishop) on May 04, 2004 at 19:56 UTC
    I don't want to know who is using it. I want to know the following:
    1. How many installs this month?
    2. What Perl versions were used to install it this month?
    3. What OS'es was it installed this month?

    I don't care if it's in New York or Newfoundland. I don't care if it's one guy on 10 computers or 10 guys on one computer. I don't care if they make a million a month or lose a million a month.

    Why do I care? Because I want to allocate the 4-8 hours I have a month to the modules that have the most usage. That's the only reason. It has nothing to do with ego.

    Also, as the user, I want to know how many installs there are for a given module on my OS with my Perl version. Let's say I want to use module X, but no-one has ever installed it on my OS. Now, I know I might have issues. But, if 10k people have installed it on my OS, I feel pretty safe knowing most of the kinks have been worked out. Same goes for Perl version. If the only people who've ever installed this module had Perl 5.8.x installed, but I have 5.005_3 installed, I might expect issues.

    ------
    We are the carpenters and bricklayers of the Information Age.

    Then there are Damian modules.... *sigh* ... that's not about being less-lazy -- that's about being on some really good drugs -- you know, there is no spoon. - flyingmoose

    I shouldn't have to say this, but any code, unless otherwise stated, is untested

      Why do I care? Because I want to allocate the 4-8 hours I have a month to the modules that have the most usage. That's the only reason. It has nothing to do with ego.

      There's a difference between usage and install base. ACME::POE::Knee might be installed on a bunch of boxes because people thought it sounded neat and wanted to try it out once, but that doesn't mean it's getting used very often. Other distributions may be installed on fewer boxes, but get used heavily.

      Don't get me wrong ... "number of installations" is an interesting metric, but it's not the same as "usage"

        I agree. In an evaluation process, I often download and test multiple modules, maybe I even install them, but I only use a subset of the tried modules.
Re: Re: Gathering module usage statistics
by Juerd (Abbot) on May 04, 2004 at 20:36 UTC
    In general, I can refer to dragonchild's opinion, because it closely matches mine.

    First it doesn't tell you the whole story: you would not see PPM, but also RPM, ports, eports... users.

    True, but still the figures that it would deliver are more comprehensive than the void we have now. That I wouldn't get a count for packaged modules does not bother me at all.

    And you would get lots of people installing modules that they will never use.

    But by installing it they do show interest. There is no way to get real usage information without contacting "home" each time a method is called. I do not want to do that. I want rough information, more than I have now.

    You will end up increasing significantly the complexity of the install process, for no benefit to the user.

    It would be a 10 second sleep and then some online transaction that has a few-seconds timeout. Other than that, the user that doesn't object to sending information would not notice any difference. I imagine it would be something like:

    For usage statistics, this installation script will send a message to 'cpanusage.juerd.nl:80'. Only your OS (Linux) and your version of Perl (5.008004) will be sent. *** If you do not wish to send this information, abort now, set the NO +PHONEHOME environment variable and run 'make install' again. The following code will be executed if you do not abort: (undef) = LWP::UserAgent->new->head( 'http://cpanusage.juerd.nl:80/', dist => 'DBIx::Simple', distver => DBIx::Simple->VERSION, os => $^O, perlver => $], ); No personal information will be sent. ABORT NOW IF YOU DO NOT WANT THIS INFORMATION TO BE SENT. 10...9...8...7...6...5...4...3...2...1...Thank you for your cooperatio +n!
    Unattended installations happen as usual but take longer and send information, and it gives people who like watching installations something to look at :)

    Of course you always get a nice ego boost when you learn that <insert big corporation, personal hero or favourite arch-ennemy name here> uses your software, but that's not the point.

    That is indeed not the point. I'm not interested in who or where my code is used. I would like to know THAT it is used, HOW MUCH it is used and on WHICH PLATFORMS it is used.

    "Phoning home" is for closed-source code.

    I disagree. Phoning home without being open about it is for closed-source code. Phoning home and sending personal information is too. Letting know exactly what will happen and giving the opportunity to evade it is IMHO good OO practice.

    I would feel that I would break the trust that users put in me.

    It would break my trust only if it was not done without a way for me to know. But I read READMEs and I do watch installation output. If those don't mention the action, I would hate it.

    BTW, did Larry try to track who was downloading Perl 1?

    Irrelevant. He did in any case get feedback in other ways.

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