Reviews by Mike Friedman


File-ShareDir (1.102) *****

This really is one of the unsung heroes of CPAN. Does exactly what it says in a very straightforward way. Now that people are moving towards distributing apps in CPAN-like dists, this module makes it very easy to deal with things like data files, images, JavaScript, etc. that needs to be associated with your distribution. Just drop it in the auto dir and File::ShareDir will be able to find it when the module is installed. Works great with Dist::Zilla::Plugin::ShareDir as well.

Data-Alias (1.15) *****

A truly excellent module worthy of a five-star review. This module saves you from the headache of typing lengthy deref syntax to access deeply-nested data without copying, by providing an 'alias' keyword that lets you attach a lexical to any value. alias can also take a block in which aliasing semantics will be turned on. A great tool; I wish I had known about it earlier.

Test-WWW-Mechanize (1.30) *

A flexible, full-featured distribution for running Mech tests. Too bad its own tests have been failing for years. Impossible to install without a force; normally I'd skip it but I require it to resolve a dependency.

Devel-Declare (0.005011) ***

Devel::Declare is no-doubt extremely useful, but in its current state it is not quite possible to make good use of it unless you're already privy to a lot of deep compiler-magic knowledge. The main problem is the documentation, which is written as a tutorial rather than a reference. It is not clear which methods in the tutorial are actually part of the Devel::Declare interface and which are part of the hypothetical parser being developed. Further, things in the tutorial appear to behave differently than they do in real life. Once the documentation is updated to provide a description of the actual interface, I'm sure this project will be of much greater use to the community at large. Unfortunately, I don't have the necessary knowledge to be of much use, but I look forward to when persons much smarter than I can make this module digestible to mortals.

Net-Twitter-Lite (0.08006) *****

An excellent light-weight interface for Twitter. I was able to use this to set up a working Twitter OAuth signin for our website in very little time. Much appreciation to the author for providing both the heavy-duty Net::Twitter and this lighter version, which was easy to integrate into our system without dealing with long dependency chains.

The documentation contains 95% of what you need to know, and a glance at the examples directory provides the rest.

Test-Sweet (0.01) *****

Test::Sweet uses some nice Devel::Declare magic to provide a simple object-oriented testing framework for Moose. You can do inheritable tests in the manner of the (also excellent) Test::Class, but Test::Sweet also supports role composition for your tests. An excellent addition to Moose.

HTTP-Server-Simple (0.41) *****

An excellent, simple, and fast HTTP server. This module supports multiple server models via Net::Server, including pre-forking, Inetd, etc. There are hooks that allow easy customization of every aspect of the server's behavior, as well as a subclass that properly instantiates a standard CGI environment. I have been using HTTP::Server::Simple successfully to host persistent applications built with CGI::Application.

The documentation has been much improved and expanded in recent releases, so I recommend ignoring the older reviews that complain about such.

It would be nice if the server differentiated between a bad request (HTTP 400) and a valid request but with a bad method name (HTTP 501) but this is easily fixed by overloading the right methods.