Reviews by Justin Case


List-Haystack (0.01) *

This can be accomplished in a one-liner. It simply takes a list and converts it into a hash. The author is a bit disingenuous claiming it "converts the given list to internal structure to find the element fast" without mentioning this.

URI-Escape-XS (0.14) *

Claims to be a drop-in replacement for URI::Escape, but it behaves differently and that difference is undocumented. Unlike URI::Escape, it doesn't escape reserved characters by default. If you want the same behavior, you have to pass in "^A-Za-z0-9\-\._~" as the second argument. It also benchmarks much slower than the pure-perl version - 2x slower for decoding, 10x slower for it's incompatible encoding and 100x slower for compatible encoding.

Text-DeLoreanIpsum (0.01) *

Useless; belongs in the Acme namespace.

SVN-DumpReloc (0.02) ****

Simple, small and nice tool which does it job as it should.

Beware of one missing feature: properties aren't changed (neither svn:log nor svn:mergeinfo).

Coro (6.49) *

Instead of working with P5P to make Coro work with the latest version of Perl, the author decided to fork perl instead, and he has no plans to support future versions either. So users now have to pin themselves to older versions of perl or use his own "stable perl" fork. Read his inadequate rationale here:

AnyEvent-JSONRPC (0.15) *

Broken, buggy, incomplete and unmaintained.

SimpleXMLParse (1.5.0) *

avoid like the plague. the first clue is the poor choice of module names. then look at the source and see that it uses regular expressions to parse xml.

Bhagavatgita (0.01) *

useless noobware that belongs under the Acme:: namespace.

Tiny-Tiny (0.001) *

joke modules belong under Acme::

LWP-UserAgent-Patch-LogResponse (0.06) **

Note this mucks with the internals of LWP instead using the safer handler API that LWP provides.

EBook-MOBI (0.1) *

Very misleading name. You would expect this to read/write MOBI files. Instead, it only converts Pod to MOBI. So it should be named something like Pod::Mobi or Pod::To::Mobi, following existing examples of other Pod converters.

WWW-Parallels-Agent (v0.0.2-TRIAL) ***

Poorly chosen namespace. Too easy for users to think this is a parallel useragent. This should be under VM (VM::Parallels::Agent).

TheForce (0.001) *

useless joke modules belong under the Acme namespace. somebody might actually confuse this with another poorly named, but useful module, called TheSchwartz.

Poppler (0.04) *

does not work

LWP-UserAgent-Anonymous (0.03) **

Storing an old proxy list in the module instead of pulling fresh data is not a good idea. And I question the use of the decrepit Net::Telnet module.

EV (4.03) *

Horrible support. Author auto-responds with rant when RT ticket is created. Then ignores email requests. Somebody else had same issue as me and this was his response:

Date-FromToday (0.02) *

Don't see how this is any better than the venerable DateTime module. Plus, this module requires Moose.

Geo-Distance-XS (0.08) *****

I feel the need, the need for speed!

AnyEvent-Redis2 (0.1) *

Appears to offer nothing over the existing AnyEvent::Redis. The documentation doesn't even bother to acknowledge the existing module, let alone how this one is any better.

Dpchrist-ExtUtils-MakeMaker (1.017) *


URI-Encode (0.03) *

The rationale for this module is that it's tinier than URI::Escape? What does 20 fewer lines of code buy you? Is this faster or use less memory? No!

TMDB (0.01) *

another waste of a top-level namespace

Bundle-Dpchrist (1.044) *

You should delete this from CPAN and move it to a more appropriate site like github, gitorius, bitbucket, launchpad, etc.

Win32-Sound (0.49)

Did the job, but a little buggy. Win32::Sound::Volume('100%') is fading all the way left (ie, sound only out of the left speakers), but the documentation says it should set right=left=100% which should be sound out of all speakers. Bug on winxp, ActivePerl 5.10.1 build 1006 with a Sound Blaster X-Fi.

Perl-Tidy (20090616) **

Doesn't appear to be maintained anymore and the code is so monolithic that it's hard for anybody else to contribute.

DBD-Pg (2.15.1) **

DBD::Pg still does not support cursors. It's embarrassing! Every time you execute a query it fetches the entire result set and stores it in memory, no matter how big it is.

AnyEvent-Kanye (0.02) *