Ratings and Reviews for CPAN

cpanratings
 

Rate a distribution

Find a distribution you would like to review:

Recent reviews (RSS feed)

Dios (0.000003) ****

Thanks for the second serious perl5 object module, which seems to be way towards the goals of perl6.

Of course InsideOut has it's problems, esp. not supporting mixins (role) directly, you'd need a seperate module to enable that. It should have been easy to add that to Dios directly.

I esp. like the easyness of the implementation via macros ("keyword"). This is how it should be done for a prototype, when not being implemented in C for performance. I writing a similar type system in C, and it is much more work, as I don't have macros yet.
Unfortunately core doesn't support the PPI context yet, which is needed for the keywords, I hope I can help there to get rid of PPI.
Another problem is $$self being an integer only, which can be used to get access to foreign objects - security.

Typed method dispatch is thereby enforced at compile-time, which avoids the whole rabbit-hole of dynamic dispatch problems, which are solved by InsideOut quite effectively. Just different from Moose/perl6.

Very impressive. With added role/mixin support I'd even think about switching over, and let full CLOS-style method combinations aside.

experimentals (0.015)

Thanks for working around this annoying non-expertise in adding new features either wrong (50%) or right (50%), and the -report feature.

use 5.022 should be enough to enable all the new features, and when they are
misdesigned or misimplemented as they usually are you'll have to live with that anyway.

Catalyst-Runtime (5.90097) ****

Cool framework for me

Dancer2 (0.161000) *****

I've found Dancer2 to be an excellent, fast framework.
I've tried a few other frameworks, from other languages. Some have so many dependencies it's amazing they even compile. Others try to mould you into the frameworks way of doing things whilst not supporting some of the amazingly cool features of Dancer (regrex route mappings, hello!!).
People I work with think I'm a Wizard or Magician, because of the applications I produce, but I'm not. It's because of tools like Dancer.
And database integration is as easy as with Perl, since you just install the module and start using it.
So 5 stars from me, a great framework.

MongoDB (v0.708.3.0) *****

Great module that works well. I've used it in pretty heavy application and haven't seen any issues, I populate a database from Active Directory which has over 70,000 documents. Documentation for this module is excellent and very very useful to do the basics with Documents and Collections. I found my own (a couple actually, depending on if it is an _id object or _id string) way to lookup id's. I found it useful to create a sub called findDocumentByID which, given an _id, returned a hash ref of the Document.
I tried another MongoDB module but it was out of date and had an issue from months back unfixed.
I'm using this with Windows 32bit (I know, I know) and under Windows and Cygwin, it works well.

Net-Packet (3.28) *

This module declares itself as "obsolete, you will receive no support", but this is not mentionned in the POD or on the bug tracker. So you may discover this like me only once you have endured the broken install of Net::Libdnet.

See Net::Frame instead.

Net-Libdnet (0.98)

Painful to install on Ubuntu because the Makefile.PL is not smart enough to automatically apply the bundled patches to handle the dnet.h/dumbnet.h differences.

Devel-DumpTrace (0.24) *****

This handy module allowed me to more easily find a bug in my code. Being able to see variable values as it traces each line of code is immensely helpful. It was easy to start using, and the documentation is clear. Another great feature is the ability to control whether it traces through module (package) code.

PerlIO-gzip (0.19) *****

I was using IO::Uncompress::Gunzip and IO::Compress::Gzip to process gzip'ed log files, but it was slow, taking about twice the time to process a file as `gzip` took on the command-line. So I switched over to IO::gzip and that doubling of time went away. It's just as fast as running on the command-line. Incredible! I'll be doing all my gzip file processing with this bad boy from now on. Thanks for a great module, Nick!

Net-WebSocket-Server (0.003002) *****

I just like it, intuitive in itself.
A WebSocket server easy to hook in with your own code.
All the callbacks you need are considered.
Great job, from my point of view.

Devel-Confess (0.007012) *****

Provides some more features compared to Carp::Always, like producing stack trace even when exception is ref/object, color & dump function arguments (so you don't need a separate Carp::Always::Dump and Carp::Always::Color). Recommended.

Carp-Always (0.13)

This module works well for string exceptions (e.g. die "some message"), but for ref/object exceptions (e.g. die [404,"Not found"] or die $some_object) it will simply print/return the ref/object and thus no stack trace information is produced.

See also Devel::Confess, which can handle ref/object.

References:
blogs.perl.org/users/graham_knop/2013...

experimental (0.013)

Our prayer has been answered. experimental was added to perl core in 5.19.11

URI (1.67) *****

A very nice module! Highly recommended and useful.

Exporter-Lite (0.06)

Mostly unnecessary. The main premise of this module is that you don't need to inherit to use it. But you also can use Exporter (a core module, BTW) without inherinting it:

use Exporter qw(import);

XML-Parser (2.44) *****

Highly useful because of its speed, simplicity and adherence to standard Perl paradigms.

CSS-SpriteBuilder (0.03) ****

Does what it says on the tin.

Net-Google-Spreadsheets (0.1501) ***

0.1501 uses by default Net::Google::AuthSub that uses a Google API that has been deprecated for 2 years and that now longer works at all.

The workaround is to use Net::Google::DataAPI::Auth::OAuth2 for authentication.

Math-Gradient (0.04) *****

I wanted to experiment with color gradient: a quick look at the manual page and my first test script gave the expected beautiful result. Just does what it says on the tin. Five stars well earned.

Algorithm-Permute (0.12) *****

The functional (callback) interface is just what I wanted — ‘run this block of code once for each permutation of this array’. Couldn't be simpler.

The documentation could make this clearer though; you have to skip past a bunch of OO stuff to see it.

Net-Braintree (0.27.0)

This module has now been deprecated: support.braintreepayments.com/custome... Unfortunately, since the release contains no real documentation, this very important change in status has basically been left undocumented.

If you dig deeply enough, you'll find that it's documented _not_ in the README, but in README.md

It looks like the hosted Perl documentation has moved to developers.braintreepayments.com/java...

Color-Mix (0.02) *****

I think this module will be helpful for building a color theme for emacs, terminal, and other tools.

It did not calculate colors in the way I was expecting, but this was just my own ignorance. I had to learn a bit about color theory today to understand this, but the tools I have used in the past worked on the old traditional RYB color wheel. This has nothing to do the hex color being specified in RGB. Using the RYB scheme, the complimentary color of red is green.

The documentation is very explicit that it uses the RGB color wheel, but that didn't mean anything to me at first. Using that scheme, the complement of red is cyan.

At first I was convinced that the color schemes generated by Color::Mix were not as nice as the ones I generated on RYB. But after looking at a lot more samples, I think this is similarly nice, and will solve my problems.

Term-Menus (2.92) *****

I have searched for a while for a menu module and finally found Term::Menus. I am so glad when I tried it. It is neat and clear. Although I haven't got it all work out, Brian has given me a lot of help.

I am using to organize the test scripts I have. So each menu is a level of categories I organized the scripts into and the last level of menu will have the scripts listed and choose one will run the scrips.

Say I have some scripts to run GUI tests and some to run Package tests, I then list GUI and Package in Menu_main and choose GUI will go to Menu_GUI, there lists the scripts for GUI tests.

I haven't got all the feature provided in the great tool as some parts I couldn't get it right but so far it is the best. Hope I can figure them out soon.

Most important, Brian stand behind his code. Really appreciate all his time for helping me learn his great tool!

Git-Repository (1.313) *****

I commonly use this module:
github.com/mishin/YAPC-Russia-2015/bl...

my $git = Git::Repository->new( work_tree => getcwd );

$git->run( add => $options->{file} );

$git->run( commit => '-m', $message, "--date=$commit_day" );

$git->run( 'push' );

very useful to make things done!

Date-Holidays (1.01)

The idea is good, but a couple of things prevents me from using this interface.

First, the use of TryCatch (which brings the Moose ecosystem) makes the startup overhead too high for my taste (about 0.5s on my PC). Which is rather unfortunate because Date::Holidays itself does not use Moose.

Second, the interface assumes that a country has a single set of holidays, which is too restrictive in some cases. A more flexible/general interface would allow adding more calendars based not only on country but also religion, special community, organization, etc. And allow adding custom calendars.