Acme-CPANModules-Import-CPANRatings-User-stevenharyanto

 view release on metacpan or  search on metacpan

META.json  view on Meta::CPAN

            "WWW::Mechanize" : "0",
            "WWW::Parallels::Agent" : "0",
            "WWW::YouTube::Download" : "0",
            "Win32::App::which" : "0",
            "Xporter" : "0",
            "YAML::Syck" : "0",
            "autodie" : "0",
            "experimental" : "0",
            "google_talk_bot" : "0",
            "lib::xi" : "0",
            "perlsecret" : "0",
            "relative_lib" : "0",
            "text::highlight" : "0"
         }
      },
      "x_mentions" : {
         "x_mentions" : {
            "Acme::Damn" : "0",
            "Any::Mo" : "0",
            "App::ChangeShebang" : "0",
            "App::Countdown" : "0",

META.json  view on Meta::CPAN

            "WWW::Mechanize" : "0",
            "WWW::Parallels::Agent" : "0",
            "WWW::YouTube::Download" : "0",
            "Win32::App::which" : "0",
            "Xporter" : "0",
            "YAML::Syck" : "0",
            "autodie" : "0",
            "experimental" : "0",
            "google_talk_bot" : "0",
            "lib::xi" : "0",
            "perlsecret" : "0",
            "relative_lib" : "0",
            "text::highlight" : "0"
         }
      }
   },
   "provides" : {
      "Acme::CPANModules::Import::CPANRatings::User::stevenharyanto" : {
         "file" : "lib/Acme/CPANModules/Import/CPANRatings/User/stevenharyanto.pm",
         "version" : "0.002"
      }

README  view on Meta::CPAN

        $ds->search("j.1.\@")->data },
        <br><br>dseek*cacheobj=&gt;sub{ state
        $ds=Data::Seek-&gt;new(data=&gt;$data);
        $ds-&gt;search(&quot;j.1.\@&quot;)-&gt;data },
        <br><br>dpath=&gt;sub{ dpath(&quot;/j/1/*&quot;)-&gt;match($data) },
        <br><br>jpath=&gt;sub{
        JSON::Path-&gt;new(q[$.j.1.[*]])-&gt;values($data) }, <br> }); <br>
        =head2 #

        <br><br>### <br> Benchmark: running dpath, dseek, dseek_cacheobj,
        jpath for at least 0.25 CPU seconds... <br><br>dpath: 1 wallclock
        secs ( 0.27 usr + 0.00 sys = 0.27 CPU) @ 8292.59/s (n=2239)
        <br><br>(warning: too few iterations for a reliable count)
        <br><br>dseek: 1 wallclock secs ( 0.29 usr + 0.00 sys = 0.29 CPU) @
        37.93/s (n=11) <br><br>(warning: too few iterations for a reliable
        count) <br> dseek_cacheobj: 0 wallclock secs ( 0.33 usr + 0.00 sys =
        0.33 CPU) @ 42.42/s (n=14) <br><br>(warning: too few iterations for
        a reliable count) <br><br>jpath: 0 wallclock secs ( 0.27 usr + 0.00
        sys = 0.27 CPU) @ 11711.11/s (n=3162) <br><br>(warning: too few
        iterations for a reliable count) <br> =head2 #

        <br><br>Also: 1) the syntax is rather inconsistent: ':n' for array
        index access, but '.@' (instead of ':@') for grabbing all elements.
        2) currently cannot select subtree (must always select leaf node).
        <br><br>As alternatives, I recommend the much simpler JSON::Path, or
        the more powerful Data::DPath. <br>

    Games::2048

README  view on Meta::CPAN

        Author: MIYAGAWA <https://metacpan.org/author/MIYAGAWA>

        It's rather unfortunate that currently the choice for general
        purpose cross-platform filesystem notification modules on CPAN falls
        between this module (FNS) or File::ChangeNotify (F::CN). The other
        CPAN modules are either OS-/framework-specific. <br><br>FNS has a
        simple API but is perhaps too simple for some uses, while F::CN uses
        Moose and has a big startup overhead. <br><br>If you simply want to
        check from time to time whether a change has occured, you need to
        wrap the wait() method with alarm(). And I found on my Linux PC that
        I need a timeout of at least 3 seconds for this to work reliably.

        Rating: 8/10

    experimental
        Author: LEONT <https://metacpan.org/author/LEONT>

        Vote +1 to add this to core. Please make coding in Perl 5 relatively
        painless.

    MIME::Lite::HTML

README  view on Meta::CPAN

        Author: TOKUHIROM <https://metacpan.org/author/TOKUHIROM>

        Also look at Text::CharWidth for an alternative that can be used
        with text in other languages (Chinese, etc). <br>

    Taint::Runtime
        Author: RHANDOM <https://metacpan.org/author/RHANDOM>

        Nice idea. Perl should really have included something like this
        (analogous to warnings.pm for -w). <br><br>However, for something as
        security-related as tainting, I personally think the interface is a
        bit too complex and not robust enough. There are too many pitfalls
        where one can fail to turn on tainting properly. <br><br>* First,
        user must remember to import $TAINT, or doing '$TAINT = 1' has no
        effect. There's no error/warning for this mistake. <br><br>* Then,
        if one also forgets to import taint_start or taint_start, then doing
        'taint_start' or 'taint_env' (without parentheses) will do nothing.
        Also does not produce an error/warning except under strict mode.
        <br><br>* One must remember to 'taint_env' *after* 'taint_start'.
        There's no warning/error if one does the opposite. <br><br>I'd
        rather have something like this: <br><br>{ <br><br>use tainting;

README  view on Meta::CPAN


    Perl::Squish
        Author: ADAMK <https://metacpan.org/author/ADAMK>

        Have failed to build for 1.5 years (reported bug RT#66958 left
        untouched, users need to install Module::Install first). No usage
        documentation. <br><br>

        Rating: 2/10

    perlsecret
        Author: BOOK <https://metacpan.org/author/BOOK>

        Nice collection of perl shortcuts. Today I forgot about the name for
        &quot;x!!&quot; and nicely found it in this module.

    PerlX::ArraySkip
        Author: TOBYINK <https://metacpan.org/author/TOBYINK>

        Cute idea as always, though I'd rather use comments rather than
        taking multiple sub calls hit.

README  view on Meta::CPAN


    Locale::Geocode
        Author: DIZ <https://metacpan.org/author/DIZ>

        Sorry to have to rate with 1 star. I don't have problem with the
        interface/documentation. The 1-star rating is just to warn people
        that the data used by this module is not up to date. And that
        YEARS-old bugs are not being fixed. <br><br>At the time of this
        writing, this module still uses ISO 3166-2:1998 (first edition) +
        the newsletters (minor updates) up to 2006. When it should be
        updated to ISO 3166-2:2007 (second edition) + all the newsletters.
        For example, this module does not report 3 newer provinces in
        Indonesia. <br><br>Sadly we live in a world where countries and
        subcountries change all the time.

        Rating: 2/10

    Locale::SubCountry
        Author: KIMRYAN <https://metacpan.org/author/KIMRYAN>

        UPDATE 2012-08-30: I am not sure if the module is now fully
        compliant to the new ISO 2007, but bug reports are certainly being
        responded and resolved now. Updating rating from 1-star to 4-star.
        Thanks, Kim. <br><br>2012-02-17: Review to version 1.47:
        <br><br>Sorry to have to rate with 1 star. I don't have problem with
        the interface/documentation. The 1-star rating is just to warn
        people that the data used by this module is not up to date. And that
        months-old bugs are not being fixed. <br><br>At the time of this
        writing, this module still uses ISO 3166-2:1998 (first edition) when
        it should be updated to ISO 3166-2:2007 (second edition) + all the
        newsletters (minor updates). For example, this module does not
        report 3 newer provinces in Indonesia. <br><br>Sadly we live in a
        world where countries and subcountries change all the time.
        <br><br>EDIT: Ok, so I was not being clear that I was not talking
        about my own bug report (posted at about the same time of this
        review). And bugs were certainly being resolved up to about 7 months
        ago. <br>

        Rating: 8/10

README  view on Meta::CPAN


    Bash::Completion
        Author: MELO <https://metacpan.org/author/MELO>

        Clean code, plugin interface simple to use, but implementation needs
        to be improved. For example, parsing $ENV{COMP_LINE} &amp;
        $ENV{COMP_POINT} into @argv is done simplistically using
        split(/\h+/), without regard to shell's quotes/escapes.
        (Getopt::Complete's way is somewhat better by invoking shell, but it
        also has its problems. I guess in this regard external programs are
        second-class citizens to shell functions because they don't get the
        equivalents of COMP_WORDS/COMP_CWORD). <br>

        Rating: 6/10

    Bash::Completion::Plugins::cpanm
        Author: PERLER <https://metacpan.org/author/PERLER>

        Cool, except that with cpanm I often install local distribution
        (cpanm Foo-Bar-1.23.tar.gz). Perhaps the completion can look in the
        filesystem first before firing API request. Also, might be nice if

README  view on Meta::CPAN

        Rating: 6/10

    autodie
        Author: TODDR <https://metacpan.org/author/TODDR>

        I started using autodie in almost all of my applications a few
        months ago. It's somewhat of a mixed blessing. For existing
        applications, it can break things and making things less robust,
        solely because old code are not built with autodie in mind.
        <br><br>But the best thing about it is that it's lexically scoped,
        so for sections of code that you're not sure about, just sprinkle
        'no autodie' to get the old behaviour. <br><br>It should be used on
        probably 95% of code out there. For the rest of the cases, where you
        need to report the status of each I/O operation, it's obviously more
        convenient to check $? instead of trapping exception everytime.
        <br><br>+1 for getting it into core. <br>

    App::FileTools::BulkRename
        Disclaimer: I maintain a &quot;competitor&quot; module, App::perlmv.
        Apparently a lot of people, like me, likes to rename files using
        Perl. And the examples in the documentation are about renaming movie

README  view on Meta::CPAN

        filesystem differences can be tricky, and CPAN Testers can help
        providing feedback. <br><br>Keep up the good work.

        Rating: 8/10

    Script::State
        Author: MOTEMEN <https://metacpan.org/author/MOTEMEN>

        Nice idea, straight and simple interface. A better name could
        perhaps be chosen? Documentation should be expanded, e.g. to warn
        users about security, since Data::Dumper a.k.a. eval() is used to
        load variable content. Also, the implementation does not yet
        consider file locking.

    PathTools
        I guess File::Spec's API is sane enough, but I suspect not a lot of
        people are using it because there's not enough incentive for it.
        When 99% population of the world use Unix/Linux/Windows (even Macs
        been technically Unix for a number of years), &quot;/&quot; works
        everywhere and using File::Spec does not gain you anything except
        lots of typing exercise. <br><br>That's why I think Path::Class

README  view on Meta::CPAN

        or other whistles and bells. And the interface &amp; default levels
        are rather syslog-oriented. But it's fast alright. The POD doesn't
        mention a comparison to Log::Log4perl, but a casual benchmark shows
        that it's at least 10x faster. <br><br>So this module will certainly
        come handy if you have a performance critical application.
        <br><br>Btw, note that the benchmarks are done for actual logging to
        output. For log statements that do not actually get logged (e.g.
        because the level is below the desired output level), I don't find
        that extreme differences in overhead between logging frameworks. For
        example, on my Athlon64 X2 5600+ PC, Log::Fast's overhead is roughly
        around 3mils/sec, while Log::Log4perl is around 1,5mils/sec.

    Log::Minimal
        Author: KAZEBURO <https://metacpan.org/author/KAZEBURO>

        Log::Minimal's slogan is &quot;minimal but customizable&quot;. It's
        minimal alright, probably only suitable for simple scripts as the
        moment you organize your application/library into separate modules,
        you'll want/need categories instead of just level, which is not
        provided by Log::Minimal. <br><br>Also, only formats is
        customizable, there is currently no way to customize level. And the

README  view on Meta::CPAN

        This module has been developed for more than a decade and seen
        different maintainers over the years. The codebase is indeed showing
        these, with different capitalization and indentation styles, among
        other things. <br><br>However, among more than a dozen or so of INI
        modules in CPAN, ironically there seems to be few other choices if
        you go beyond the most basic feature set. Some INI modules can only
        simplistically rewrite/dump the whole INI structure and thus lose
        comments/orders, while others can't even write INI files.
        <br><br>Config::IniFiles by far offers the most options and
        features, like dealing with line continuation, case sensitivity,
        default section, multiline/array, deltas, etc. So for now, despite
        all of its quirks, this module is still hard to beat.
        <br><br>There's another nice little INI module that can do
        read/set/delete/unset (instead of just read/dump): Prima::IniFile,
        but it is included in a totally unrelated distribution.

        Rating: 8/10

    DateTime
        Author: DROLSKY <https://metacpan.org/author/DROLSKY>

        Amidst all the glowing reviews may I add a reminder that, as with
        everything, there's a catch: runtime performance. On my PC, the
        speed of creating a DateTime object is just around 6000/sec. If you
        use DateTime intensively, it can quickly add up. <br><br>Imagine
        serving a web page that fetches 50 rows from database, where for
        convenience you convert each date column to a DateTime object, and
        you have 120 requests/sec coming in... That's already 6000 objects
        (an extra second!). <br><br>Which is unfortunate because DateTime is
        so wonderful, convenient, correct, complete and all that. So one
        approach you can use might be to delay converting to DateTime object
        until necessary.

    Date::Manip
        Author: SBECK <https://metacpan.org/author/SBECK>

        Wow, there are surely a lot of negative reviews ... <br><br>First of
        all, Date::Manip has a long history. I used this module back in
        2001-2002, IIRC. Back then it was *the* swiss army of date/time

devdata/stevenharyanto  view on Meta::CPAN

    <![endif]-->

    

    
     <script type="text/javascript">
       var global_auth_token = "";
     </script>
    
  </head>
  <body class="page-cpanratings section_onion">
    <nav class="navbar navbar-inverse" data-height="120">
      <div class="container-fluid">
        <div class="navbar-header">
          <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
            <span class="sr-only">Toggle navigation</span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
          </button>
          <a class="navbar-brand" href="/">

devdata/stevenharyanto  view on Meta::CPAN



<blockquote class="review_text">
The &quot;extremely fast and efficient&quot; claim currently doesn't hold, as this module creates a *whole* flattened tree for *every* search operation.
<br><br>A simple benchmark:
<br><br>###
<br>
use Benchmark qw(timethese);
<br>
use Data::Seek;
<br>
use Data::DPath qw(dpath);
<br>
use JSON::Path;
<br><br>my $data = { map { $_ =&gt; {map {$_=&gt;[1..4]} 1..20} } &quot;a&quot;..&quot;z&quot; };
<br><br>timethese(-0.25, {
<br><br>dseek =&gt; sub { $ds = Data::Seek-&gt;new(data=&gt;$data); $ds-&gt;search(&quot;j.1.\@&quot;)-&gt;da...
});
<br>
###
<br><br>###
<br>
Benchmark: running dpath, dseek, dseek_cacheobj, jpath for at least 0.25 CPU seconds...
<br><br>dpath:  1 wallclock secs ( 0.27 usr +  0.00 sys =  0.27 CPU) @ 8292.59/s (n=2239)
<br><br>(warning: too few iterations for a reliable count)
<br><br>dseek...
dseek_cacheobj:  0 wallclock secs ( 0.33 usr +  0.00 sys =  0.33 CPU) @ 42.42/s (n=14)
<br><br>(warning: too few iterations for a reliable count)
<br><br>jpath:  0 wallclock secs ( 0.27 usr +  0.00 sys =  0.27 CPU) @ 11711.11/s (n=3162)
<br><br>(warn...
###
<br><br>Also: 1) the syntax is rather inconsistent: ':n' for array index access, but '.@' (instead of ':@') for grabbing all elements. 2) currently cannot select subtree (must always select leaf node).
<br><br>As alternatives, I recommend the muc...

</blockquote>


<div class="review_footer">
<p class="review_attribution">
<a href="/user/stevenharyanto">Steven Haryanto</a> - 2014-08-10T04:37:01
(<a href="/dist/Data-Seek#11870">permalink</a>)
</p>

devdata/stevenharyanto  view on Meta::CPAN




<img src="//cdn.perl.org/perlweb/cpanratings/images/stars-4.0.png" alt="****">

</h3>



<blockquote class="review_text">
It's rather unfortunate that currently the choice for general purpose cross-platform filesystem notification modules on CPAN falls between this module (FNS) or File::ChangeNotify (F::CN). The other CPAN modules are either OS-/framework-specific.
<br>...
</blockquote>


<div class="review_footer">
<p class="review_attribution">
<a href="/user/stevenharyanto">Steven Haryanto</a> - 2013-07-04T20:56:05
(<a href="/dist/Filesys-Notify-Simple#11193">permalink</a>)
</p>

<div class="helpfulq">

devdata/stevenharyanto  view on Meta::CPAN




<img src="//cdn.perl.org/perlweb/cpanratings/images/stars-4.0.png" alt="****">

</h3>



<blockquote class="review_text">
Nice idea. Perl should really have included something like this (analogous to warnings.pm for -w).
<br><br>However, for something as security-related as tainting, I personally think the interface is a bit too complex and not robust enough. There are ...
}
<br><br>use tainting;
<br>
{
<br><br>no tainting;
<br><br>... code is running without taint mode ...
<br>
}
<br><br>No functions, no variables to set, no exports. Tainting of %ENV etc should be done automatically just like -T.
<br><br>EDIT: I wrote tainting and uploaded it to CPAN as proof of concept.
</blockquote>


<div class="review_footer">
<p class="review_attribution">
<a href="/user/stevenharyanto">Steven Haryanto</a> - 2012-12-28T00:11:34
(<a href="/dist/Taint-Runtime#10699">permalink</a>)

devdata/stevenharyanto  view on Meta::CPAN


</div>


<div class="review" data-review="10356" data-user="10616">
<a name="10356"></a>
<h3 class="review_header">



<a href="/dist/perlsecret">


perlsecret</a>

   (<a href="https://metacpan.org/release/perlsecret/">1.002</a>)




<img src="//cdn.perl.org/perlweb/cpanratings/images/stars-5.0.png" alt="*****">

</h3>



<blockquote class="review_text">
Nice collection of perl shortcuts. Today I forgot about the name for &quot;x!!&quot; and nicely found it in this module.
</blockquote>


<div class="review_footer">
<p class="review_attribution">
<a href="/user/stevenharyanto">Steven Haryanto</a> - 2012-09-06T23:09:34
(<a href="/dist/perlsecret#10356">permalink</a>)
</p>

<div class="helpfulq">

3 out of 3 found this review helpful.

Was this review helpful to you?&nbsp;

<!-- we should add non-js links to rate stuff helpful/not helpful too... -->

devdata/stevenharyanto  view on Meta::CPAN




<img src="//cdn.perl.org/perlweb/cpanratings/images/stars-1.0.png" alt="*">

</h3>



<blockquote class="review_text">
Sorry to have to rate with 1 star. I don't have problem with the interface/documentation. The 1-star rating is just to warn people that the data used by this module is not up to date. And that YEARS-old bugs are not being fixed.
<br><br>At the time o...
</blockquote>


<div class="review_footer">
<p class="review_attribution">
<a href="/user/stevenharyanto">Steven Haryanto</a> - 2012-02-07T17:07:11
(<a href="/dist/Locale-Geocode#9590">permalink</a>)
</p>

<div class="helpfulq">

devdata/stevenharyanto  view on Meta::CPAN




<img src="//cdn.perl.org/perlweb/cpanratings/images/stars-4.0.png" alt="****">

</h3>



<blockquote class="review_text">
UPDATE 2012-08-30: I am not sure if the module is now fully compliant to the new ISO 2007, but bug reports are certainly being responded and resolved now. Updating rating from 1-star to 4-star. Thanks, Kim.
<br><br>2012-02-17: Review to version 1.47:...

</blockquote>


<div class="review_footer">
<p class="review_attribution">
<a href="/user/stevenharyanto">Steven Haryanto</a> - 2012-02-07T17:04:09
(<a href="/dist/Locale-SubCountry#9588">permalink</a>)
</p>

devdata/stevenharyanto  view on Meta::CPAN




<img src="//cdn.perl.org/perlweb/cpanratings/images/stars-3.0.png" alt="***">

</h3>



<blockquote class="review_text">
Clean code, plugin interface simple to use, but implementation needs to be improved. For example, parsing $ENV{COMP_LINE} &amp; $ENV{COMP_POINT} into @argv is done simplistically using split(/\h+/), without regard to shell's quotes/escapes. (Getopt::...

</blockquote>


<div class="review_footer">
<p class="review_attribution">
<a href="/user/stevenharyanto">Steven Haryanto</a> - 2011-02-18T05:50:47
(<a href="/dist/Bash-Completion#8246">permalink</a>)
</p>

devdata/stevenharyanto  view on Meta::CPAN




<img src="//cdn.perl.org/perlweb/cpanratings/images/stars-5.0.png" alt="*****">

</h3>



<blockquote class="review_text">
I started using autodie in almost all of my applications a few months ago. It's somewhat of a mixed blessing. For existing applications, it can break things and making things less robust, solely because old code are not built with autodie in mind.
<b...

</blockquote>


<div class="review_footer">
<p class="review_attribution">
<a href="/user/stevenharyanto">Steven Haryanto</a> - 2010-11-24T08:55:23
(<a href="/dist/autodie#7880">permalink</a>)
</p>

devdata/stevenharyanto  view on Meta::CPAN




<img src="//cdn.perl.org/perlweb/cpanratings/images/stars-5.0.png" alt="*****">

</h3>



<blockquote class="review_text">
Nice idea, straight and simple interface. A better name could perhaps be chosen? Documentation should be expanded, e.g. to warn users about security, since Data::Dumper a.k.a. eval() is used to load variable content. Also, the implementation does not...
</blockquote>


<div class="review_footer">
<p class="review_attribution">
<a href="/user/stevenharyanto">Steven Haryanto</a> - 2010-11-22T08:17:30
(<a href="/dist/Script-State#7874">permalink</a>)
</p>

<div class="helpfulq">

devdata/stevenharyanto  view on Meta::CPAN




<img src="//cdn.perl.org/perlweb/cpanratings/images/stars-5.0.png" alt="*****">

</h3>



<blockquote class="review_text">
This logging framework is also minimalistic: no categories/hierarchiecal loggers, no custom levels, no config file, or other whistles and bells. And the interface &amp; default levels are rather syslog-oriented. But it's fast alright. The POD doesn't...
</blockquote>


<div class="review_footer">
<p class="review_attribution">
<a href="/user/stevenharyanto">Steven Haryanto</a> - 2010-11-17T19:50:25
(<a href="/dist/Log-Fast#7848">permalink</a>)
</p>

<div class="helpfulq">

devdata/stevenharyanto  view on Meta::CPAN




<img src="//cdn.perl.org/perlweb/cpanratings/images/stars-4.0.png" alt="****">

</h3>



<blockquote class="review_text">
This module has been developed for more than a decade and seen different maintainers over the years. The codebase is indeed showing these, with different capitalization and indentation styles, among other things.
<br><br>However, among more than a do...
</blockquote>


<div class="review_footer">
<p class="review_attribution">
<a href="/user/stevenharyanto">Steven Haryanto</a> - 2010-11-12T00:42:19
(<a href="/dist/Config-IniFiles#7830">permalink</a>)
</p>

<div class="helpfulq">

devdata/stevenharyanto  view on Meta::CPAN


   (<a href="https://metacpan.org/release/DateTime/">0.65</a>)



</h3>



<blockquote class="review_text">
Amidst all the glowing reviews may I add a reminder that, as with everything, there's a catch: runtime performance. On my PC, the speed of creating a DateTime object is just around 6000/sec. If you use DateTime intensively, it can quickly add up.
<br...
</blockquote>


<div class="review_footer">
<p class="review_attribution">
<a href="/user/stevenharyanto">Steven Haryanto</a> - 2010-10-29T01:17:00
(<a href="/dist/DateTime#7804">permalink</a>)
</p>

<div class="helpfulq">

lib/Acme/CPANModules/Import/CPANRatings/User/stevenharyanto.pm  view on Meta::CPAN

package Acme::CPANModules::Import::CPANRatings::User::stevenharyanto;

use strict;

our $AUTHORITY = 'cpan:PERLANCAR'; # AUTHORITY
our $DATE = '2023-10-29'; # DATE
our $DIST = 'Acme-CPANModules-Import-CPANRatings-User-stevenharyanto'; # DIST
our $VERSION = '0.002'; # VERSION

our $LIST = {description=>"This list is generated by scraping CPANRatings (cpanratings.perl.org) user page.",entries=>[{description=>"\n(REMOVED)\n",module=>"Log::Any",rating=>undef},{description=>"\nProvides a thin/lightweight OO interface for \$?, ...

1;
# ABSTRACT: List of modules mentioned by CPANRatings user stevenharyanto

__END__

=pod

=encoding UTF-8

lib/Acme/CPANModules/Import/CPANRatings/User/stevenharyanto.pm  view on Meta::CPAN

<br><br>dseek >>cacheobj=&gt;sub{ state $ds=Data::Seek-&gt;new(data=&gt;$data); $ds-&gt;search(&quot;j.1.\@&quot;)-&gt;data },
<br><br>dpath=&gt;sub{ dpath(&quot;/j/1/I<< &quot;)-&gt;match($data) }, 
<br><br>jpath=&gt;sub{ JSON::Path-&gt;new(q[$.j.1.[ >>]])-&gt;values($data) },
<br>
});
<br>
=head2 #

<br><br>###
<br>
Benchmark: running dpath, dseek, dseek_cacheobj, jpath for at least 0.25 CPU seconds...
<br><br>dpath:  1 wallclock secs ( 0.27 usr +  0.00 sys =  0.27 CPU) @ 8292.59/s (n=2239)
<br><br>(warning: too few iterations for a reliable count)
<br><br>dseek:  1 wallclock secs ( 0.29 usr +  0.00 sys =  0.29 CPU) @ 37.93/s (n=11)
<br><br>(warning: too few iterations for a reliable count)
<br>
dseek_cacheobj:  0 wallclock secs ( 0.33 usr +  0.00 sys =  0.33 CPU) @ 42.42/s (n=14)
<br><br>(warning: too few iterations for a reliable count)
<br><br>jpath:  0 wallclock secs ( 0.27 usr +  0.00 sys =  0.27 CPU) @ 11711.11/s (n=3162)
<br><br>(warning: too few iterations for a reliable count)
<br>
=head2 #

<br><br>Also: 1) the syntax is rather inconsistent: ':n' for array index access, but '.@' (instead of ':@') for grabbing all elements. 2) currently cannot select subtree (must always select leaf node).
<br><br>As alternatives, I recommend the much simpler JSON::Path, or the more powerful Data::DPath.
<br>


=item L<Games::2048>

lib/Acme/CPANModules/Import/CPANRatings/User/stevenharyanto.pm  view on Meta::CPAN



Rating: 4/10

=item L<Filesys::Notify::Simple>

Author: L<MIYAGAWA|https://metacpan.org/author/MIYAGAWA>

It's rather unfortunate that currently the choice for general purpose cross-platform filesystem notification modules on CPAN falls between this module (FNS) or File::ChangeNotify (F::CN). The other CPAN modules are either OS-/framework-specific.
<br><br>FNS has a simple API but is perhaps too simple for some uses, while F::CN uses Moose and has a big startup overhead. 
<br><br>If you simply want to check from time to time whether a change has occured, you need to wrap the wait() method with alarm(). And I found on my Linux PC that I need a timeout of at least 3 seconds for this to work reliably.


Rating: 8/10

=item L<experimental>

Author: L<LEONT|https://metacpan.org/author/LEONT>

Vote +1 to add this to core. Please make coding in Perl 5 relatively painless.

lib/Acme/CPANModules/Import/CPANRatings/User/stevenharyanto.pm  view on Meta::CPAN


Also look at Text::CharWidth for an alternative that can be used with text in other languages (Chinese, etc).
<br>


=item L<Taint::Runtime>

Author: L<RHANDOM|https://metacpan.org/author/RHANDOM>

Nice idea. Perl should really have included something like this (analogous to warnings.pm for -w).
<br><br>However, for something as security-related as tainting, I personally think the interface is a bit too complex and not robust enough. There are too many pitfalls where one can fail to turn on tainting properly.
<br><br>* First, user must remember to import $TAINT, or doing '$TAINT = 1' has no effect. There's no error/warning for this mistake.
<br><br>* Then, if one also forgets to import taint_start or taint_start, then doing 'taint_start' or 'taint_env' (without parentheses) will do nothing. Also does not produce an error/warning except under strict mode.
<br><br>* One must remember to 'taint_env' I<after> 'taint_start'. There's no warning/error if one does the opposite.
<br><br>I'd rather have something like this:
<br><br>{
<br><br>use tainting;
<br><br>... code is running in taint mode ...
<br>
}
<br><br>use tainting;

lib/Acme/CPANModules/Import/CPANRatings/User/stevenharyanto.pm  view on Meta::CPAN

=item L<Perl::Squish>

Author: L<ADAMK|https://metacpan.org/author/ADAMK>

Have failed to build for 1.5 years (reported bug RT#66958 left untouched, users need to install Module::Install first). No usage documentation.
<br><br>


Rating: 2/10

=item L<perlsecret>

Author: L<BOOK|https://metacpan.org/author/BOOK>

Nice collection of perl shortcuts. Today I forgot about the name for &quot;x!!&quot; and nicely found it in this module.


=item L<PerlX::ArraySkip>

Author: L<TOBYINK|https://metacpan.org/author/TOBYINK>

lib/Acme/CPANModules/Import/CPANRatings/User/stevenharyanto.pm  view on Meta::CPAN


I don't know why Sawyer X's review is marked as unhelpful (2 out of 8), but I agree with him. This is I<not> an Acme module, it's a port of a JavaScript library of the same name.
<br>


=item L<Locale::Geocode>

Author: L<DIZ|https://metacpan.org/author/DIZ>

Sorry to have to rate with 1 star. I don't have problem with the interface/documentation. The 1-star rating is just to warn people that the data used by this module is not up to date. And that YEARS-old bugs are not being fixed.
<br><br>At the time of this writing, this module still uses ISO 3166-2:1998 (first edition) + the newsletters (minor updates) up to 2006. When it should be updated to ISO 3166-2:2007 (second edition) + all the newsletters. For example, this module do...
<br><br>Sadly we live in a world where countries and subcountries change all the time.


Rating: 2/10

=item L<Locale::SubCountry>

Author: L<KIMRYAN|https://metacpan.org/author/KIMRYAN>

UPDATE 2012-08-30: I am not sure if the module is now fully compliant to the new ISO 2007, but bug reports are certainly being responded and resolved now. Updating rating from 1-star to 4-star. Thanks, Kim.
<br><br>2012-02-17: Review to version 1.47:
<br><br>Sorry to have to rate with 1 star. I don't have problem with the interface/documentation. The 1-star rating is just to warn people that the data used by this module is not up to date. And that months-old bugs are not being fixed.
<br><br>At the time of this writing, this module still uses ISO 3166-2:1998 (first edition) when it should be updated to ISO 3166-2:2007 (second edition) + all the newsletters (minor updates). For example, this module does not report 3 newer province...
<br><br>Sadly we live in a world where countries and subcountries change all the time.
<br><br>EDIT: Ok, so I was not being clear that I was not talking about my own bug report (posted at about the same time of this review). And bugs were certainly being resolved up to about 7 months ago.
<br>


Rating: 8/10

=item L<Data::Rmap>

Author: L<BOWMANBS|https://metacpan.org/author/BOWMANBS>

lib/Acme/CPANModules/Import/CPANRatings/User/stevenharyanto.pm  view on Meta::CPAN

Author: L<WOWASURIN|https://metacpan.org/author/WOWASURIN>

Fun module to play with, especially for those among us infected with a bit of PHP envy (me, never!).
<br>


=item L<Bash::Completion>

Author: L<MELO|https://metacpan.org/author/MELO>

Clean code, plugin interface simple to use, but implementation needs to be improved. For example, parsing $ENV{COMP_LINE} &amp; $ENV{COMP_POINT} into @argv is done simplistically using split(/\h+/), without regard to shell's quotes/escapes. (Getopt::...
<br>


Rating: 6/10

=item L<Bash::Completion::Plugins::cpanm>

Author: L<PERLER|https://metacpan.org/author/PERLER>

Cool, except that with cpanm I often install local distribution (cpanm Foo-Bar-1.23.tar.gz). Perhaps the completion can look in the filesystem first before firing API request. Also, might be nice if there is some caching because it seems to be slow (...

lib/Acme/CPANModules/Import/CPANRatings/User/stevenharyanto.pm  view on Meta::CPAN

<br><br>If it's still working for you, great. I personally have moved on to other modules like Email::Sender::Simple, which abstracts sending mechanism (transport) and support SMTP auth, for two. Also, many of the guide/documentation for Mail::Sendma...


Rating: 6/10

=item L<autodie>

Author: L<TODDR|https://metacpan.org/author/TODDR>

I started using autodie in almost all of my applications a few months ago. It's somewhat of a mixed blessing. For existing applications, it can break things and making things less robust, solely because old code are not built with autodie in mind.
<br><br>But the best thing about it is that it's lexically scoped, so for sections of code that you're not sure about, just sprinkle 'no autodie' to get the old behaviour.
<br><br>It should be used on probably 95% of code out there. For the rest of the cases, where you need to report the status of each I/O operation, it's obviously more convenient to check $? instead of trapping exception everytime.
<br><br>+1 for getting it into core.
<br>


=item L<App::FileTools::BulkRename>

Disclaimer: I maintain a &quot;competitor&quot; module, App::perlmv. Apparently a lot of people, like me, likes to rename files using Perl. And the examples in the documentation are about renaming movie files too, something which I do a lot :)
<br><br>I applaud Stirling Westrup for taking a legacy script and improving it. May we have a lot of ideas to borrow from each other.
<br><br>This is an early release, there are quite a few things I find lacking. Most importantly, I suggest adding a test suite as soon as possible. The filesystem differences can be tricky, and CPAN Testers can help providing feedback.
<br><br>Keep up the good work.


Rating: 8/10

=item L<Script::State>

Author: L<MOTEMEN|https://metacpan.org/author/MOTEMEN>

Nice idea, straight and simple interface. A better name could perhaps be chosen? Documentation should be expanded, e.g. to warn users about security, since Data::Dumper a.k.a. eval() is used to load variable content. Also, the implementation does not...


=item L<PathTools>

I guess File::Spec's API is sane enough, but I suspect not a lot of people are using it because there's not enough incentive for it. When 99% population of the world use Unix/Linux/Windows (even Macs been technically Unix for a number of years), &quo...
<br><br>That's why I think Path::Class might have a better chance of succeeding. It gives niceties like a few more convenience methods, a shortcut of getting dir &amp; file object from each other, etc. It gives users more incentive of using a proper ...


Rating: 8/10

lib/Acme/CPANModules/Import/CPANRatings/User/stevenharyanto.pm  view on Meta::CPAN



Rating: 8/10

=item L<Log::Fast>

Author: L<POWERMAN|https://metacpan.org/author/POWERMAN>

This logging framework is also minimalistic: no categories/hierarchiecal loggers, no custom levels, no config file, or other whistles and bells. And the interface &amp; default levels are rather syslog-oriented. But it's fast alright. The POD doesn't...
<br><br>So this module will certainly come handy if you have a performance critical application.
<br><br>Btw, note that the benchmarks are done for actual logging to output. For log statements that do not actually get logged (e.g. because the level is below the desired output level), I don't find that extreme  differences in overhead between log...


=item L<Log::Minimal>

Author: L<KAZEBURO|https://metacpan.org/author/KAZEBURO>

Log::Minimal's slogan is &quot;minimal but customizable&quot;. It's minimal alright, probably only suitable for simple scripts as the moment you organize your application/library into separate modules, you'll want/need categories instead of just leve...
<br><br>Also, only formats is customizable, there is currently no way to customize level. And the levels are &quot;not standard&quot; (not that there is an official authoritative standard, but the popular convention is TRACE/DEBUG/INFO/WARN/ERROR/FAT...
<br>
DEBUG/INFO/WARN/CRITICAL and NONE). Surely most people would expect another level between WARN and CRITICAL, for non-critical errors? But that is actually just a matter of taste.

lib/Acme/CPANModules/Import/CPANRatings/User/stevenharyanto.pm  view on Meta::CPAN



Rating: 6/10

=item L<Config::IniFiles>

Author: L<SHLOMIF|https://metacpan.org/author/SHLOMIF>

This module has been developed for more than a decade and seen different maintainers over the years. The codebase is indeed showing these, with different capitalization and indentation styles, among other things.
<br><br>However, among more than a dozen or so of INI modules in CPAN, ironically there seems to be few other choices if you go beyond the most basic feature set. Some INI modules can only simplistically rewrite/dump the whole INI structure and thus ...
<br><br>Config::IniFiles by far offers the most options and features, like dealing with line continuation, case sensitivity, default section, multiline/array, deltas, etc. So for now, despite all of its quirks, this module is still hard to beat.
<br><br>There's another nice little INI module that can do read/set/delete/unset (instead of just read/dump): Prima::IniFile, but it is included in a totally unrelated distribution.


Rating: 8/10

=item L<DateTime>

Author: L<DROLSKY|https://metacpan.org/author/DROLSKY>

Amidst all the glowing reviews may I add a reminder that, as with everything, there's a catch: runtime performance. On my PC, the speed of creating a DateTime object is just around 6000/sec. If you use DateTime intensively, it can quickly add up.
<br><br>Imagine serving a web page that fetches 50 rows from database, where for convenience you convert each date column to a DateTime object, and you have 120 requests/sec coming in... That's already 6000 objects (an extra second!).
<br><br>Which is unfortunate because DateTime is so wonderful, convenient, correct, complete and all that. So one approach you can use might be to delay converting to DateTime object until necessary.


=item L<Date::Manip>

Author: L<SBECK|https://metacpan.org/author/SBECK>

Wow, there are surely a lot of negative reviews ...
<br><br>First of all, Date::Manip has a long history. I used this module back in 2001-2002, IIRC. Back then it was I<the> swiss army of date/time manipulation, something you use when you want the most flexible/complete thing in Perl. True, it's slow,...
<br><br>But then things change. DateTime project was started, and now it is somewhat the de facto standard. It's more modern and far more modular than the monolithic Date::Manip (every timezone and language support and parsing/formatting modules ship...



( run in 1.813 second using v1.01-cache-2.11-cpan-98e64b0badf )