Reviews by M. Conrad


Log-Any (0.15) *****

I have needed this module in every programming language I have ever used for every program I have ever written.

I have started to contribute features to it several times, but gave up because the existing API really is at exactly the right level of performance vs. complexity, and none of my ideas were a net improvement. All my innovation can fit easily enough on the Adapter side.

RapidApp (0.99200) *****

Great framework for quickly putting together an interface to view the contents of a database! Reads your DBIC schema, and configures grid-views according to the column types, relations, and constraints you have defined.

Has room for improvement, but provides tons of value out of the box already. It practically finishes some smaller projects before they've started.

DateTime-Format-Flexible (0.25) ****

A previous review mentions this module missing a parse_datetime method, but the current version has the method.

In fact, this module now implements the DateTime::Format API better than DateTime::Format::Natural! (in the sense that parse_datetime croaks like you would expect, instead of returning a bogus datetime object)

I'm docking one star for speed, though. DateTime::Format::Natural is about 5x faster (which doesn't matter for me, but could for someone with a lot of dates to parse)

DateTime-Format-Natural (1.01) ****

Great module, but it breaks the API of DateTime::Format!

I think this code sums it up:

$date= $self->date_parser->parse_datetime($date);

# WHY!? WHY... *sigh*

if ($self->date_parser->isa('DateTime::Format::Natural')) {

croak "Invalid date: $date"

unless $self->date_parser->success;


In other words, you have to special case it if you want a design with pluggable date parsers.

This bug is mentioned right in the documentation, so I get the idea there is no intent to fix it.