# from ReneeB
# on Sunday 01 April 2007 12:41 am:

>On 31 Mar 2007, at 23:14, Thomas Klausner wrote:

Yay!  Now that the time zones have caught up, I get to participate in 
the discussion.

>>> Even though I was fighting mail servers today, I managed to put
>>> some time aside
>>> for long-needed CPANTS improvements. (And I really have to thank
>>> the Catalyst/DBIC-guys for their wonderfull tools which made me
>>> finish a big project on time (more on this later...))
>>>
>>> So, the new CPANTS metrics are:
>>>
>>>     * docs_make_sense
>>>     * mentions_kwalitee
>>>     * uses_version_control
>>>     * reuses_code
>>>     * uses_recursion
>>>     * correct_speling
>>>     * nice_code_layout

I'm looking forward to the source (must just be delayed by PAUSE.)  I'm 
curious whether the mentions_kwalitee metric has any gaming-prevention.  
If I say "reduced kwalitee" in the changelog, does that count for or 
against me?

>Some of the new metrics can't be satisfied. I doubt that all dists can
>"use" 5 or more other CPAN dists. I think some of the metrics should
> be optional (uses_recursion, nice_code_layout, reuses_code). You
> shouldn't punish the people (like me) who don't like the code layout
> you like.

If your code doesn't have *any* recursion, the module is probably 
lacking several features anyway.  I think we would all be better off if 
whenever we start to write a "for" loop, we stop to think "how could I 
do this recursively?"  If done correctly, it also tends to rid code of 
those silly temporary arrays that lead to so much needless 
head-scratching.

As for code reuse, I think the metric needs work.  It should detect 
whether I've paste-reused code.  Any good module contains at least 15 
verbatim lines from each of 10 existing modules.  Saves the end-user 
the hassle of installing prerequisites or dealing with bugfixes.  For 
those that prefer a more SPOT style, the metric should detect whether 
we're using eval(`curl http://search.cpan.org/src/$wantcode`) to 
implement reuse.

The point of having the nice_code_layout metric is to force conformity.  
That's the important thing here.  We should also probably require vim 
modelines somewhere:

  # vim:ts=1:sw=1:noet:syn=lua

Is my personal favorite.  Though I think the lines should start with 
"peterbuilt" just to be perfectly clear.  After all, ";" is awfully 
abbreviated.  How can you expect an intern to understand something so 
terse?!

>You also should mention what "docs_make_sense" is! What are the rules
>for "docs_make_sense".

That one is still under development.  We're working on a massively 
parallel distributed human comprehension evaluator.  At present, it 
seems that the HaMCaQE (harmonic mean captcha quiz engine) may prove 
more viable than the SDMC (shakespearian digital monkey cluster) due to 
the wide availability of porn site subcontractors.  I'm still working 
on the SIGSEC (statistical ignorance game show entropy collector) 
though, and think it shows real promise.  For the time-being, we're 
using a stopgap hack of a simple part-of-speech ordering analysis, 
though that tends to get easily confused by recently trendified 
nounverbifications.

--Eric
-- 
perl -e 'srand; print join(" ",sort({rand() < 0.5}
  qw(sometimes it is important to be consistent)));'
---------------------------------------------------
    http://scratchcomputing.com
---------------------------------------------------

Reply via email to