Acme-CPANModules-Import-CPANRatings-User-stevenharyanto

 view release on metacpan or  search on metacpan

LICENSE  view on Meta::CPAN

    you changed the files and the date of any change; and

    b) cause the whole of any work that you distribute or publish, that
    in whole or in part contains the Program or any part thereof, either
    with or without modifications, to be licensed at no charge to all
    third parties under the terms of this General Public License (except
    that you may choose to grant warranty protection to some or all
    third parties, at your option).

    c) If the modified program normally reads commands interactively when
    run, you must cause it, when started running for such interactive use
    in the simplest and most usual way, to print or display an
    announcement including an appropriate copyright notice and a notice
    that there is no warranty (or else, saying that you provide a
    warranty) and that users may redistribute the program under these
    conditions, and telling the user how to view a copy of this General
    Public License.

    d) You may charge a fee for the physical act of transferring a
    copy, and you may at your option offer warranty protection in
    exchange for a fee.

LICENSE  view on Meta::CPAN

                     END OF TERMS AND CONDITIONS

        Appendix: How to Apply These Terms to Your New Programs

  If you develop a new program, and you want it to be of the greatest
possible use to humanity, the best way to achieve this is to make it
free software which everyone can redistribute and change under these
terms.

  To do so, attach the following notices to the program.  It is safest to
attach them to the start of each source file to most effectively convey
the exclusion of warranty; and each file should have at least the
"copyright" line and a pointer to where the full notice is found.

    <one line to give the program's name and a brief idea of what it does.>
    Copyright (C) 19yy  <name of author>

    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 1, or (at your option)
    any later version.

LICENSE  view on Meta::CPAN

    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA  02110-1301 USA


Also add information on how to contact you by electronic and paper mail.

If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:

    Gnomovision version 69, Copyright (C) 19xx name of author
    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
    This is free software, and you are welcome to redistribute it
    under certain conditions; type `show c' for details.

The hypothetical commands `show w' and `show c' should show the
appropriate parts of the General Public License.  Of course, the
commands you use may be called something other than `show w' and `show
c'; they could even be mouse-clicks or menu items--whatever suits your

README  view on Meta::CPAN

        instead of formatting each cell separately using sprintf() and
        joining cells together with join(). <br><br>I did a comparison in:
        <a
        href="http://blogs.perl.org/users/steven_haryanto/2014/07/benchmarki
        ng-several-ascii-table-generator-modules.html"
        rel="nofollow">blogs.perl.org/users/steven_haryanto/...</a>

    Mo  Author: TINITA <https://metacpan.org/author/TINITA>

        A great alternative when Moo is a bit too much for you. Useful for
        scripts that must start really fast. Mind you, Moo loads about 5K
        lines of code and more than a dozen files, all of which takes +-
        10ms on my computer. Mo on the other hand is only a single line of
        +-500 characters, and it's inlinable. It loads in under 1ms. If a
        script must be executed thousands of times a day, that 9ms
        difference will matter more. <br><br>I use this for a very
        lightweight parent class. A richer subclass then uses Moo.
        <br><br>Isn't it great that we have the choices and upgrade path
        from the very minimal Mo, to Moo for normal cases, to Moos and Moose
        for even richer (but heavier) alternatives. Truly TIMTOWTDI! <br>

README  view on Meta::CPAN

        user-friendly). For the sake of minimizing surprise to my users, I
        would avoid the use of Xporter. <br><br>UPDATE 2014-01-24: some
        edits. I appreciate the effort of the author to defend her module,
        though I am not convinced by her arguments.

    Dist::Zilla::Shell
        Author: DOLMEN <https://metacpan.org/author/DOLMEN>

        Nice tool that lets you type dzil commands like 'build', 'test', etc
        while sending all the other unknown commands like 'ls -l', 'man Foo'
        to the underlying shell. Also lets you avoid multiple startup
        overhead of dzil :-)

    CPANPLUS::Shell::Curses
        Author: MARCUS <https://metacpan.org/author/MARCUS>

        Unmaintained. Installs but no longer runs.

        Rating: 2/10

    Task::Mechanistic

README  view on Meta::CPAN

        Rating: 4/10

    Filesys::Notify::Simple
        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

README  view on Meta::CPAN

    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;
        <br><br>... code is running in taint mode ... <br> } <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.

        Rating: 8/10

README  view on Meta::CPAN

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

        Perl is not Ruby != everything Ruby does is horrible. This module
        has its uses.

    Time::Out
        Author: PATL <https://metacpan.org/author/PATL>

        A wrapper around Perl's alarm()/$SIG{ALRM}, so it has the same
        limitations, e.g. you cannot use this to properly timeout external
        programs started by system()/backtick. For the latter, you might
        want to try IPC::Cmd (run() or run_forked()), or some simpler
        interface for it like System::Timeout. <br><br>

    Util::Timeout
        Author: NOTBENH <https://metacpan.org/author/NOTBENH>

        A wrapper around Perl's alarm()/$SIG{ALRM}, so it has the same
        limitations, e.g. you cannot use this to properly timeout external
        programs started by system()/backtick. For the latter, you might
        want to try IPC::Cmd (run() or run_forked()), or some simpler
        interface for it like System::Timeout. <br><br>

    System::Timeout
        Author: CHENGANG <https://metacpan.org/author/CHENGANG>

        This is a thin wrapper over IPC::Cmd's run(). I'd personally use
        run() directly, it's not much harder or longer to type. Plus,
        IPC::Cmd is a core module. <br><br>

README  view on Meta::CPAN

    Carp::Always::Color
        Author: DOY <https://metacpan.org/author/DOY>

        Like Carp::Always? Want something better? Here it is. <br>

    CHI Author: ASB <https://metacpan.org/author/ASB>

        The DBI of caching. Stop reinventing your caching framework and just
        use this. <br><br>UPDATE 2013-01-16: unfortunately, the use of Moose
        reduces the usefulness of CHI for command-line scripts (0.2s/146
        files/53k lines startup overhead just to initialize a File cache).
        So 4 stars instead of 5. Let's hope the author migrates to Moo
        someday. <br>

        Rating: 8/10

    Monkey::Patch
        Author: FRODWITH <https://metacpan.org/author/FRODWITH>

        Compared to several other monkey-patching modules (like Sub::Monkey
        or Class::Monkey) I prefer this one because the interface is

README  view on Meta::CPAN


        Module name should perhaps be
        Log::Log4perl::Appender::File::RoundRobin to make it clearer that
        the backend is File::RoundRobin. <br>

    Any::Mo
        Why exclude Moo? <br><br>Also the issue with any Any::* (or Any::*)
        modules is that there should be a mechanism (preferably a common
        one) to adjust the ordering. Sometimes I prefer Moose first, for
        full capability or compatibility or whatever. Sometimes I prefer
        Mouse or Moo, for quick startup (but don't mind Moose if those are
        not available). This also happens to me for YAML::Any: in some cases
        I prefer YAML::Syck, in others YAML::XS, this depends on the data
        that I'm handling. <br>

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

        I personally don't see much value of this syntactic sugar since Perl
        already allows us to express clearly. Pick one: <br><br>for ($foo) {
        say $_ if defined } <br><br>for (grep {defined} $foo) { say $_ }

README  view on Meta::CPAN


    Acme::Damn
        Author: IBB <https://metacpan.org/author/IBB>

        5 stars for cute metaphor (there's also Acme::Holy by the same
        author, but that is just another implementation of Scalar::Util's
        blessed()) and for prompt support from the author. <br><br>I'm sure
        there exists a real use case to move this out of Acme::, however
        obscure that might be. Can't come up with any right now, all I can
        think of is reblessing, which can be handled with bless() from the
        start. <br><br>UPDATE 2013-09-11: I found a real use-case for it!
        Cleaning up data to be sent to JSON. BTW, Data::Structure::Util also
        has an unbless() function, but Acme::Damn is smaller and faster.
        Data::Structure::Util also currently doesn't build on Windows. <br>

    WWW::Parallels::Agent
        @Justin Case: The name is unfortunate, but it's already proper
        (WWW:: followed by website or company name). HTTP client libraries
        are in LWP::. But VM:: is also an apt choice. <br>

    Underscore

README  view on Meta::CPAN


    Devel::Platform::Info
        Author: BARBIE <https://metacpan.org/author/BARBIE>

        I knew CPAN wouldn't let me down. Now I can discard my own
        OS/platform detecting code (which probably is buggier and not nearly
        as extensive) and rely on Devel::Platform::Info instead.
        <br><br>Devel::Platform::Info gives information not only about the
        OS but also architecture, kernel type &amp; version, etc. In my case
        I need to detect distro name, its version, and its codename. All of
        those are provided. <br><br>This module is so new though (started in
        2010) so I wonder whether this need has never come up before. <br>

    Package::Builder
        Author: DRAUONER <https://metacpan.org/author/DRAUONER>

        Less boilerplate please!

        Rating: 2/10

    File::LibMagic

README  view on Meta::CPAN

        two. Also, many of the guide/documentation for Mail::Sendmail are
        not quite up to date in style (though they still might work), for
        example the low level way of building HTML email. Also, the
        Changelog file doesn't seem to be maintained?

        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>

README  view on Meta::CPAN

        3 years now despite several RT items labeled as critical). So I
        suggest others checking out the alternatives.

        Rating: 2/10

    Log::Log4perl
        Author: ETJ <https://metacpan.org/author/ETJ>

        It's a very mature and an excellent logging framework. However, some
        of the common minor complaints are: 1) It's too complex. I agree: it
        should not be this hard to get started. 2) Configuration is too
        verbose. Agreed: but well, what can you do, most things from Java is
        a bit overengineered and verbose anyway. At least you can do almost
        anything with the configuration. 3) It's not very Perlish. Also
        agreed. 4) Performance. My note: speed is not an issue in majority
        of the cases and Log4perl's performance is adequate for most of the
        rest of the cases. For faster/leaner alternatives you might want to
        take a look at Log::Fast, but a lot of Log4perl's features are
        missing. <br><br>One of the main strengths of Log4perl is its
        sublogger/subcategory feature, which few other frameworks seem to
        have. <br><br>For other alternatives, also take a look at:

README  view on Meta::CPAN

        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
        manipulation, something you use when you want the most
        flexible/complete thing in Perl. True, it's slow, but it works.
        <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 shipped in one
        single distribution). <br><br>And then there's the 5.x -&gt; 6.x
        debacle. As someone who also sprinkle Perl 5.10 requirements to his
        CPAN modules, I can feel for the author. But the difference is, most
        of my modules are not that widely used/known, and also many start
        its life already requiring 5.10 right from its first released
        version. While in Date::Manip's case, this happens to a very widely
        used module. Surely backwards compatibility should be considered
        more. <br><br>All in all, you are free to use or not use
        Date::Manip. There are other alternatives. Pick wisely. <br>

        Rating: 6/10

    App::pmuninstall
        Author: XAICRON <https://metacpan.org/author/XAICRON>

README  view on Meta::CPAN

        one reason there's a time when I just couldn't do that. <br><br>Btw,
        there's also File::Which::Cached.

    String::ShellQuote
        Author: ROSCH <https://metacpan.org/author/ROSCH>

        I admit it. Ever since I know about escapeshellarg() and
        escapeshellcmd() in PHP, I've been reimplementing this function in
        Perl literally a million of times (mostly because of laziness and
        because it only takes a couple of lines in Perl). Only a few months
        ago after the millionth time I said enough is enough and started to
        look around in CPAN, and found this module. <br><br>The only problem
        for this module is lack of visibility. Before I've never read
        articles or blog posts mentioning this module, ever. Yes, we have
        system() that can bypass the shell, but qx() can't. So yes, this
        module needs to be marketed more! <br>

    Capture::Tiny
        Author: DAGOLDEN <https://metacpan.org/author/DAGOLDEN>

        Another very handy little module that takes the hassle out of

devdata/stevenharyanto  view on Meta::CPAN




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

</h3>



<blockquote class="review_text">
A great alternative when Moo is a bit too much for you. Useful for scripts that must start really fast. Mind you, Moo loads about 5K lines of code and more than a dozen files, all of which takes +- 10ms on my computer. Mo on the other hand is only a ...

</blockquote>


<div class="review_footer">
<p class="review_attribution">
<a href="/user/stevenharyanto">Steven Haryanto</a> - 2014-07-10T04:05:44
(<a href="/dist/Mo#11824">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 tool that lets you type dzil commands like 'build', 'test', etc while sending all the other unknown commands like 'ls -l', 'man Foo' to the underlying shell. Also lets you avoid multiple startup overhead of dzil :-)
</blockquote>


<div class="review_footer">
<p class="review_attribution">
<a href="/user/stevenharyanto">Steven Haryanto</a> - 2013-11-12T20:03:32
(<a href="/dist/Dist-Zilla-Shell#11406">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">
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


   (<a href="https://metacpan.org/release/Time-Out/">0.11</a>)



</h3>



<blockquote class="review_text">
A wrapper around Perl's alarm()/$SIG{ALRM}, so it has the same limitations, e.g. you cannot use this to properly timeout external programs started by system()/backtick. For the latter, you might want to try IPC::Cmd (run() or run_forked()), or some s...
</blockquote>


<div class="review_footer">
<p class="review_attribution">
<a href="/user/stevenharyanto">Steven Haryanto</a> - 2012-12-14T00:42:05
(<a href="/dist/Time-Out#10661">permalink</a>)
</p>

<div class="helpfulq">

devdata/stevenharyanto  view on Meta::CPAN


   (<a href="https://metacpan.org/release/Util-Timeout/">0.01</a>)



</h3>



<blockquote class="review_text">
A wrapper around Perl's alarm()/$SIG{ALRM}, so it has the same limitations, e.g. you cannot use this to properly timeout external programs started by system()/backtick. For the latter, you might want to try IPC::Cmd (run() or run_forked()), or some s...
</blockquote>


<div class="review_footer">
<p class="review_attribution">
<a href="/user/stevenharyanto">Steven Haryanto</a> - 2012-12-14T00:40:21
(<a href="/dist/Util-Timeout#10659">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">
The DBI of caching. Stop reinventing your caching framework and just use this.
<br><br>UPDATE 2013-01-16: unfortunately, the use of Moose reduces the usefulness of CHI for command-line scripts (0.2s/146 files/53k lines startup overhead just to initia...

</blockquote>


<div class="review_footer">
<p class="review_attribution">
<a href="/user/stevenharyanto">Steven Haryanto</a> - 2012-04-24T05:20:53
(<a href="/dist/CHI#9834">permalink</a>)
</p>

devdata/stevenharyanto  view on Meta::CPAN


   (<a href="https://metacpan.org/release/Any-Mo/">0.30</a>)



</h3>



<blockquote class="review_text">
Why exclude Moo?
<br><br>Also the issue with any Any::* (or Any::*) modules is that there should be a mechanism (preferably a common one) to adjust the ordering. Sometimes I prefer Moose first, for full capability or compatibility or whatever. Someti...

</blockquote>


<div class="review_footer">
<p class="review_attribution">
<a href="/user/stevenharyanto">Steven Haryanto</a> - 2012-03-20T17:00:09
(<a href="/dist/Any-Mo#9736">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">
5 stars for cute metaphor (there's also Acme::Holy by the same author, but that is just another implementation of Scalar::Util's blessed()) and for prompt support from the author.
<br><br>I'm sure there exists a real use case to move this out of Acme...

</blockquote>


<div class="review_footer">
<p class="review_attribution">
<a href="/user/stevenharyanto">Steven Haryanto</a> - 2012-02-14T10:51:28
(<a href="/dist/Acme-Damn#9626">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 knew CPAN wouldn't let me down. Now I can discard my own OS/platform detecting code (which probably is buggier and not nearly as extensive) and rely on Devel::Platform::Info instead.
<br><br>Devel::Platform::Info gives information not only about th...

</blockquote>


<div class="review_footer">
<p class="review_attribution">
<a href="/user/stevenharyanto">Steven Haryanto</a> - 2011-11-01T02:54:59
(<a href="/dist/Devel-Platform-Info#9304">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">
It's a very mature and an excellent logging framework. However, some of the common minor complaints are: 1) It's too complex. I agree: it should not be this hard to get started. 2) Configuration is too verbose. Agreed: but well, what can you do, most...

</blockquote>


<div class="review_footer">
<p class="review_attribution">
<a href="/user/stevenharyanto">Steven Haryanto</a> - 2010-11-18T16:14:42
(<a href="/dist/Log-Log4perl#7852">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">
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 manipulation, something you use when you want the mos...

</blockquote>


<div class="review_footer">
<p class="review_attribution">
<a href="/user/stevenharyanto">Steven Haryanto</a> - 2010-10-28T21:46:00
(<a href="/dist/Date-Manip#7802">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 admit it. Ever since I know about escapeshellarg() and escapeshellcmd() in PHP, I've been reimplementing this function in Perl  literally a million of times (mostly because of laziness and because it only takes a couple of lines in Perl). Only a fe...

</blockquote>


<div class="review_footer">
<p class="review_attribution">
<a href="/user/stevenharyanto">Steven Haryanto</a> - 2010-08-25T11:15:19
(<a href="/dist/String-ShellQuote#7638">permalink</a>)
</p>

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

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

Very fast, several times faster than Text::TabularDisplay or Text::Table (and many times faster than the other slower table-generator modules). It uses sprintf() to format a whole row instead of formatting each cell separately using sprintf() and joi...
<br><br>I did a comparison in: <a href="http://blogs.perl.org/users/steven_haryanto/2014/07/benchmarking-several-ascii-table-generator-modules.html" rel="nofollow">blogs.perl.org/users/steven_haryanto/...</a>


=item L<Mo>

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

A great alternative when Moo is a bit too much for you. Useful for scripts that must start really fast. Mind you, Moo loads about 5K lines of code and more than a dozen files, all of which takes +- 10ms on my computer. Mo on the other hand is only a ...
<br><br>I use this for a very lightweight parent class. A richer subclass then uses Moo.
<br><br>Isn't it great that we have the choices and upgrade path from the very minimal Mo, to Moo for normal cases, to Moos and Moose for even richer (but heavier) alternatives. Truly TIMTOWTDI!
<br>


=item L<App::ChangeShebang>

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

Given that the name of this module/app is &quot;change shebang&quot; (instead of &quot;change shebang to samedir perl&quot;) perhaps this app can be made more generic? For example, I've had to change all shebangs from &quot;#!/usr/bin/env perl&quot; ...

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

<br><br>use SomeModule qw(a b c);
<br><br>normally they will expect only a, b, and c are exported. If SomeModule uses Xporter, it will also by default export the default exports.
<br><br>Basically Xporter is just Exporter with a different default (not arguably better or more user-friendly). For the sake of minimizing surprise to my users, I would avoid the use of Xporter.
<br><br>UPDATE 2014-01-24: some edits. I appreciate the effort of the author to defend her module, though I am not convinced by her arguments.


=item L<Dist::Zilla::Shell>

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

Nice tool that lets you type dzil commands like 'build', 'test', etc while sending all the other unknown commands like 'ls -l', 'man Foo' to the underlying shell. Also lets you avoid multiple startup overhead of dzil :-)


=item L<CPANPLUS::Shell::Curses>

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

Unmaintained. Installs but no longer runs.


Rating: 2/10

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

<br><br>I'm now using Perinci::CmdLine as replacement, but I cannot recommend it in general, as the two modules are not equivalent.


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

<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;
<br>
{
<br><br>no tainting;

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


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

Perl is not Ruby != everything Ruby does is horrible. This module has its uses.


=item L<Time::Out>

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

A wrapper around Perl's alarm()/$SIG{ALRM}, so it has the same limitations, e.g. you cannot use this to properly timeout external programs started by system()/backtick. For the latter, you might want to try IPC::Cmd (run() or run_forked()), or some s...
<br><br>


=item L<Util::Timeout>

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

A wrapper around Perl's alarm()/$SIG{ALRM}, so it has the same limitations, e.g. you cannot use this to properly timeout external programs started by system()/backtick. For the latter, you might want to try IPC::Cmd (run() or run_forked()), or some s...
<br><br>


=item L<System::Timeout>

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

This is a thin wrapper over IPC::Cmd's run(). I'd personally use run() directly, it's not much harder or longer to type. Plus, IPC::Cmd is a core module.
<br><br>

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


Like Carp::Always? Want something better? Here it is.
<br>


=item L<CHI>

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

The DBI of caching. Stop reinventing your caching framework and just use this.
<br><br>UPDATE 2013-01-16: unfortunately, the use of Moose reduces the usefulness of CHI for command-line scripts (0.2s/146 files/53k lines startup overhead just to initialize a File cache). So 4 stars instead of 5. Let's hope the author migrates to ...
<br>


Rating: 8/10

=item L<Monkey::Patch>

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

Compared to several other monkey-patching modules (like Sub::Monkey or Class::Monkey) I prefer this one because the interface is simplest and the documentation is the most straightforward. Plus it can do stacked patching and unordered restore, which ...

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


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

Module name should perhaps be Log::Log4perl::Appender::File::RoundRobin to make it clearer that the backend is File::RoundRobin.
<br>


=item L<Any::Mo>

Why exclude Moo?
<br><br>Also the issue with any Any::* (or Any::*) modules is that there should be a mechanism (preferably a common one) to adjust the ordering. Sometimes I prefer Moose first, for full capability or compatibility or whatever. Sometimes I prefer Mous...
<br>


=item L<PerlX::Perform>

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

I personally don't see much value of this syntactic sugar since Perl already allows us to express clearly. Pick one:
<br><br>for ($foo) { say $_ if defined }
<br><br>for (grep {defined} $foo) { say $_ }

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

=item L<WWW::Google::Images>

Just adding a note that this module is unmaintained (as expressed by the author) and has stopped working for some time. If you are looking for alternatives, try REST::Google (which includes REST::Google::Search::Images). The latter has been working O...


=item L<Acme::Damn>

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

5 stars for cute metaphor (there's also Acme::Holy by the same author, but that is just another implementation of Scalar::Util's blessed()) and for prompt support from the author.
<br><br>I'm sure there exists a real use case to move this out of Acme::, however obscure that might be. Can't come up with any right now, all I can think of is reblessing, which can be handled with bless() from the start.
<br><br>UPDATE 2013-09-11: I found a real use-case for it! Cleaning up data to be sent to JSON. BTW, Data::Structure::Util also has an unbless() function, but Acme::Damn is smaller and faster. Data::Structure::Util also currently doesn't build on Win...
<br>


=item L<WWW::Parallels::Agent>

@Justin Case: The name is unfortunate, but it's already proper (WWW:: followed by website or company name). HTTP client libraries are in LWP::. But VM:: is also an apt choice.
<br>


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

I don't use this module since I'm not on Windows. But why another module? File::Which also handles Win32 (probably not the &quot;the current directory is explored before PATH&quot; thing, but you should consider submitting a patch).
<br><br>At least the documentation should state why this module is necessary. It complicates scripts by having to select between two 'which' implementations.


=item L<Devel::Platform::Info>

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

I knew CPAN wouldn't let me down. Now I can discard my own OS/platform detecting code (which probably is buggier and not nearly as extensive) and rely on Devel::Platform::Info instead.
<br><br>Devel::Platform::Info gives information not only about the OS but also architecture, kernel type &amp; version, etc. In my case I need to detect distro name, its version, and its codename. All of those are provided.
<br><br>This module is so new though (started in 2010) so I wonder whether this need has never come up before.
<br>


=item L<Package::Builder>

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

Less boilerplate please!


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

I used Mail::Sendmail and a few others &quot;older&quot; modules back from the days when it didn't support setting envelope sender different from RFC From, and when the test hung on some dead host.
<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.

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


I've been using File::Slurp for years and is generally satisfied with it. However reading the negative reviews today and looking at its RT queue, I realize that this module is broken for many and is effectively abandoned by the maintainer (no new rel...


Rating: 2/10

=item L<Log::Log4perl>

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

It's a very mature and an excellent logging framework. However, some of the common minor complaints are: 1) It's too complex. I agree: it should not be this hard to get started. 2) Configuration is too verbose. Agreed: but well, what can you do, most...
<br><br>One of the main strengths of Log4perl is its sublogger/subcategory feature, which few other frameworks seem to have.
<br><br>For other alternatives, also take a look at: Log::Handler, Log::Any. And of course Log::Message too.
<br>


=item L<Log::Handler>

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

This review mostly compares Log::Handler with Log4perl, which is a mature and one of the most popular logging frameworks.

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

<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...
<br><br>And then there's the 5.x -&gt; 6.x debacle. As someone who also sprinkle Perl 5.10 requirements to his CPAN modules, I can feel for the author. But the difference is, most of my modules are not that widely used/known, and also many start its ...
<br><br>All in all, you are free to use or not use Date::Manip. There are other alternatives. Pick wisely.
<br>


Rating: 6/10

=item L<App::pmuninstall>

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

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

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

You can always count on CPAN to have prewritten modules for various things, including this one. I've never bothered before about portability and just rely on the &quot;which&quot; command, but for one reason there's a time when I just couldn't do tha...
<br><br>Btw, there's also File::Which::Cached.


=item L<String::ShellQuote>

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

I admit it. Ever since I know about escapeshellarg() and escapeshellcmd() in PHP, I've been reimplementing this function in Perl  literally a million of times (mostly because of laziness and because it only takes a couple of lines in Perl). Only a fe...
<br><br>The only problem for this module is lack of visibility. Before I've never read articles or blog posts mentioning this module, ever. Yes, we have system() that can bypass the shell, but qx() can't. So yes, this module needs to be marketed more...
<br>


=item L<Capture::Tiny>

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

Another very handy little module that takes the hassle out of figuring the various mechanisms of capturing output.
<br><br>Nice interface, great documentation, very easy to use. But....



( run in 0.262 second using v1.01-cache-2.11-cpan-0d8aa00de5b )