Reviews by Kent Fredric


JSON-MaybeXS (1.003005) *****

JSON::MaybeXS is what I would recommend anyone doing either reading or writing JSON in 2016.

It transparently wraps around deferring to an XS-based implementation wherever possible ( Including some XS implementations not supported by ), and falls back to JSON::PP nicely if no XS based implementation is available/can be installed, and allows you to absolve yourself of any political/technical consequences with having to choose a backend implementation, and allows the end user to have more control of that.

RRD-Simple (1.44) *****

Its about as ideal an interface and tool as I could hope for.

The simplicity of which I can create and maintain RRD Graphs makes me so very tempted to ditch munin entirely, because the amount of effort to make a single munin plugin is *more* complicated than the effort to make a self-hosting self-graphing daemon with this tool.

Common-Sense (0.01) *

This is going to be very amusing for machines without case sensitivity, such as windows, due to 'common::sense' already existing.

And this is much less useful than 'common::sense', which is already low on usefulness.

Class-Load (0.06) *****

This the best Module Loading tool I can find on CPAN, I've done a reasonably exhaustive search of everything and analysed their traits:

A long story short, much the competition on CPAN have
1) A horrible interface
2) Offer you with little more than a module-2-pathname translator
3) Possibly do a whole lot of stuff you never want / never need to do.
4) Lacking in features to just DWIM, especially with regard to working around various perl quirks in various languages.

If you're handling optional dependencies, this module is a MUST:

Test-Fatal (0.003) *****

I know this is still young, but its awesomeness is self evident when you use it. Test::Exception was good, but often lacking, to the point I often found myself injecting one-off utility functions in various tests to work around its failings.

Not to mention, to work with T::E you need a perfect memory, or you have to keep checking the POD to work out how it works.

Test::Fatal has none of these issues, because one function is easy to remember, easy enough to use every time, and its simple enough its easy to compose in-line into things.

Although T::E may be shorter in invocation, the psychological debit of using it is too high, and you can do most of what it does with combinations of 'is', and 'exception{ }' , combining the 2 things you know to provide a common goal, instead of needing to learn 3 things.

Additionally, foo { } @args style syntax looks frankly sodding horrible in test code, that missing "," always bites me in the ass.

Dist-Zilla-Plugin-MetaRecommends (0.03) *

Not trying to degrade the module or its author, but this module is superseded by Dist::Zilla::Plugin::Prereqs as follows:

[Prereqs / RuntimeRecommends ]
Dep::Name = Version ;

Also, this module no longer works with recent copies of Dist::Zilla and returns the wrong metadata keys, which produce invalid META.yml under the new 2.0 spec.

Thanks be to the author for their initial implementation, but its time has in my estimation, passed.

Dist-Zilla-Plugin-Twitter (0.007) *****

This is awesome. Really, it is, it mostly JustWorks.

There's only a few gotchas, and they're none of this modules fault, and you'll want to make sure they're not a problem before you release, or your CPAN upload will work, and you'll have the twittering fail.

1. Make sure your username and password are right in File::Homedir->my_home . '.netrc' ie:




2. (*nix) Make sure your .netrc isn't readable except by yourself:

chmod go-rwx ~/.netrc

This plugin could only in my estimation be improved by freeing the dependency on .netrc, and requiring that the authentication details work in a pre-release check before releasing.

( Also, the above would be nice to have documented, when that happens rating might improve =) )

But still, overall its tops.

NB. Win64 users will need to force install Net::SSLeay and IO::Socket::SSL to get it working at present. But it works.

Git-PurePerl (0.43) ****

A great tool. Saves much effort in programmatically augmenting Git repositories. The documentation could be much better, but the interface is clean enough that you can work out how it works by reading the code.

Creating git commits could be largely simplified, but other than that the interface is pretty good.

Git-CPAN-Patch (0.2.1) *****

I haven't even really used this much and have already found the killer feature that makes me very happy.

mkdir Foo

cd Foo

git-backpan-init Foo

And you get a nice git repository will a full history of the desired package. The practicality of this feature alone for being able to just rewind to a given version and have a full history without a published SCM, is just wonderful.

It also produces nicely formatted commits with the original authors names on them, and the proper commit timestamps.

Sys-Mmap-Simple (0.13)

Sys-Mmmap became File-Map at 0.16.

Find-Lib (0.06) ****

This module is immensely handy for anyone writing test-scripts. I battled with frustration and even contemplated writing my own tool to do exactly what this does as its hard to know what to search for.

Does exactly what I want to do, the way I want to do it, and no more.