Acme-CPANModules-Import-CPANRatings-User-stevenharyanto
view release on metacpan or search on metacpan
From what I see at a glance, App::YTDL supports downloading a video
from a playlist and setting download speed limit, but perhaps the
author should do the mode detailed explaining to help users when to
choose between the two. <br>
Data::CompactDump
Author: MILSO <https://metacpan.org/author/MILSO>
At the current form, simply too simplistic to be an alternative to
Data::Dump or Data::Dumper. No support for blessed refs,
filehandle/globs, circular references, and so on. Changes numbers to
stringy numbers or vice versa. <br><br>Currently also contains some
bugs like for -1 (changes it to string), "\" (produces
invalid dump, does not handle backslash yet currently), <br><br>And
Data::Dump's dump of {} and [] are currently more compact ;-)
<br><br>Need to be improved significantly first. But keep up the
effort.
P Author: LAWALSH <https://metacpan.org/author/LAWALSH>
I personally don't mind the namespace choice. There are other
single-letter CPAN modules too like B, L, U, V. If you have a beef
with regard to namespace, don't single out P and perhaps downvote
the other modules too. <br><br>Having said that, I would like to
comment on the design and implementation of this module. <br><br>1)
The choice of Unicode character U+2204 as representation of undef.
Unless one does something like 'binmode STDOUT, ":utf8"',
with 'say P undef' I am just trading one warning ("Use of
uninitialized value") with another ("Wide character in
say/print"). The wide character warning is avoided if you do 'P
"%s", undef' though, which means... <br><br>2) P loads
utf8 by default. For ultra-lightweight cases, this is sometimes not
desirable. There is currently no way to turn this off. <br><br>3)
The arbitrary choice of three levels deep when printing references.
This can be customized but with an unusual syntax. But again, the
arbitrary choice of three. <br><br>4) The "complex" rules
of newline printing. p() is like puts, it can optionally add a
newline. But unlike puts, the doc says it can also remove newlines.
The behavior can also change if the string to be printed ends with
0x83. <br><br>I might use P for a sprintf/printf replacement, but
for debugging values, I'd prefer something "dumber" like
Data::Dump::Color (or Data::Printer, if that's your thing).
Xporter
Author: LAWALSH <https://metacpan.org/author/LAWALSH>
A couple of comments. First, if you want to import the default
exports *as well as* some additional others, you can use Exporter's
feature (the :DEFAULT tag): <br><br>use SomeModule qw(:DEFAULT a b
c); <br><br>or you can also "use" twice: <br><br>use
SomeModule; # imports default exports <br><br>use SomeModule qw(a b
c); # import a, b, c <br><br>Second, if you use Xporter, your module
will behave unlike most CPAN modules out there, because a majority
of modules use Exporter. When people see this Perl code: <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.
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
If you peek into its Makefile.PL, you'll see a seemingly
random/heterogenous collection of modules to install (instead of
just WWW::Mechanize). This is probably a Task::BeLike::$AUTHOR in
disguise. <br><br>
Sereal
Author: YVES <https://metacpan.org/author/YVES>
So far the best of the bunch. <br><br>FAST: much faster than
Storable, roughly the same speed as (sometimes slightly faster than)
Data::Clone for cloning. <br><br>FEATUREFUL: Can handle circular
references, Regexp objects (trips out-of-the-box Storable),
JSON::{PP,XS}::Boolean objects (trips Data::Clone). <br><br>COMPACT:
definitely more compact (up to several times) than Storable.
<br><br>I'm sold. What more do you want? Le Storable est mort, vive
le Sereal!
Test::Tester
Author: EXODIST <https://metacpan.org/author/EXODIST>
If you write test functions, you need this. It's like the
"Test::More" for "Test::More". However, it
currently does not work out of the box with subtests (submitted as
wishlist to RT). <br><br>PS: Thanks to Toby Inkster for pointing
this module out. <br><br>
Text::CharWidth
Author: KUBOTA <https://metacpan.org/author/KUBOTA>
It's faster than Unicode::GCString->new($str)->columns, but it
gives wrong answers to lots of characters, e.g. control characters
like "\n", "\t", etc are currently assumed to
have width of -1 character. You're better off with
Unicode::GCString.
Rating: 2/10
App::Options
Author: SPADKINS <https://metacpan.org/author/SPADKINS>
2010-10-13: <br><br>I admit, this is not the most flexible
configuration framework out there as it enforces some convention.
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 $_ }
<br><br>do { say $_ if defined } for $foo <br><br>say $_ for grep
{defined} $foo <br><br>And save yourself from having to remember
whether we should add a comma or not before "wherever".
<br>
TOBYINK::PerlX::A
I have nothing against bundles like this, but beware that adding
'use TOBYINK::PerlX::A' will cause Perl to load 460 files and
compile +- 160k lines (takes 1s on my Core i5 machine and 8s on my
Atom netbook).
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 OK for
me.
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
I don't know why Sawyer X's review is marked as unhelpful (2 out of
8), but I agree with him. This is *not* an Acme module, it's a port
of a JavaScript library of the same name. <br>
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
Data::Rmap
Author: BOWMANBS <https://metacpan.org/author/BOWMANBS>
A very handy utility, sort of like s/// on your nested data
structure instead of just strings. One nitpick: no coderef support.
I needed to replace all coderefs inside a data structure into a
string, since I want to pass it to JSON encoder. None of the
rmap_*() functions seem to let me get to the coderefs. (RT wishlist
ticket added.) <br><br>UPDATE 2011-12-30: The author (Brad) quickly
responded to my RT ticket and added rmap_code. Upgrading from 4- to
5-star :) Regexp support is not there yet though, and I have
suggested the ability to get all kinds of Perl-specific and weird
objects, because one of the main uses of Data::Rmap for me is to
"clean" a data structure to pass to non-Perl systems. <br>
Data::Properties::JSON
Author: JOHND <https://metacpan.org/author/JOHND>
The abstract for this module is a bit strange. What does this have
to do with 'test fixtures'? Also the documentation doesn't say much,
e.g. What will happen if a hash key contains funny characters (or
arrays, etc)? <br><br>A similar module in spirit is Data::Hive. I
think "providing convenient chained method access to
hierarchical data" should be refactored out. So perhaps
Data::Properties::{JSON,YAML,...} should just be a convenient
shortcut for {JSON,YAML,...} parser + Data::Hive.
Exporter::Auto
Author: NEILB <https://metacpan.org/author/NEILB>
I discourage module authors from exporting like this because it's
simply too impolite/intrusive for module users. If the module author
is lazy, there is already Exporter::NoWork which offers a few
options for module users. This module, on the other hand, gives no
control at all for users (so they'll have to resort to 'use Module
();'). <br><br>Let me remind all again by quoting from Exporter's
POD: "Do *not* export anything else by default without a good
reason! Exports pollute the namespace of the module user."
Net::Douban
Interface to web services should be put under WWW::*, not Net::*
HTML::Form::XSS
Author: DUMB <https://metacpan.org/author/DUMB>
Should probably be put under Test::*?
Thread::IID
Author: WROG <https://metacpan.org/author/WROG>
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
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 -> 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>
One would wonder why CPAN clients still don't have this crucial
feature Though you see Miyagawa listed in the Credits so maybe
cpanminus or its sister will end up having this functionality? One
can only hope. At 0.06, some things are not working flawlessly
(submitted in RT). Keep up the good work! <br><br>
App::lntree
Author: ROKR <https://metacpan.org/author/ROKR>
I guess this app is still useful, since "cp -sR" still
doesn't work as many would expect, and there are Windows users out
there (yes, newer NTFS does support symlinks; though I don't know
whether this module supports creating symlinks on NTFS). <br><br>A
minor comment would be on the name, maybe lnstree can be considered
instead (since "ln" indicates hardlink, at least for me).
Btw, there's also a free software called "lns" to do the
exact same thing. <br><br>
Data::Clone
Author: GFUJI <https://metacpan.org/author/GFUJI>
I've never encountered difficulty in cloning data structures in
Perl, usually I just use Clone or sometimes Storable's freeze + thaw
(the later does not yet support cloning Regexp objects out of the
box). <br><br>However, I like Data::Clone for its speed! It's
several times faster than Clone or freeze+thaw. So hats up. Planning
to use Data::Clone in future projects. <br><br>Now if we can
convince Goro to write a fast serializer/deserializer with compact
output (essentially, a faster version of Storable), that would be
even nicer :-) <br><br>
Data::Pond
Author: ZEFRAM <https://metacpan.org/author/ZEFRAM>
With due respect to the author, I fail to see the practical point of
Pond. Pond (Perl-based open notation for data) is the Perl
counterpart of JSON, except that implementation is currently only
available in Perl (CMIIW), and "Pond represents fewer data
types directly". <br><br>Pond is pitched against Data::Dumper +
eval, which is dangerous, but Data::Dumper + eval is by far not the
only method available for serialization. Perl can do Storable, JSON,
YAML, even PHP serialization format. <br><br>The documentation does
not show what Pond looks like. <br><br>One cute thing about Pond is
that you can check Pond syntax using a single regex. But apart from
that, there's nothing compelling in using Pond to serialize data.
Rating: 4/10
File::Which
Author: 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 "which" command, but for
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
( run in 0.539 second using v1.01-cache-2.11-cpan-13bb782fe5a )