Acme-CPANModules-Import-CPANRatings-User-stevenharyanto
view release on metacpan or search on metacpan
lib/Acme/CPANModules/Import/CPANRatings/User/stevenharyanto.pm view on Meta::CPAN
package Acme::CPANModules::Import::CPANRatings::User::stevenharyanto;
use strict;
our $AUTHORITY = 'cpan:PERLANCAR'; # AUTHORITY
our $DATE = '2023-10-29'; # DATE
our $DIST = 'Acme-CPANModules-Import-CPANRatings-User-stevenharyanto'; # DIST
our $VERSION = '0.002'; # VERSION
our $LIST = {description=>"This list is generated by scraping CPANRatings (cpanratings.perl.org) user page.",entries=>[{description=>"\n(REMOVED)\n",module=>"Log::Any",rating=>undef},{description=>"\nProvides a thin/lightweight OO interface for \$?, ...
1;
# ABSTRACT: List of modules mentioned by CPANRatings user stevenharyanto
__END__
=pod
=encoding UTF-8
=head1 NAME
Acme::CPANModules::Import::CPANRatings::User::stevenharyanto - List of modules mentioned by CPANRatings user stevenharyanto
=head1 VERSION
This document describes version 0.002 of Acme::CPANModules::Import::CPANRatings::User::stevenharyanto (from Perl distribution Acme-CPANModules-Import-CPANRatings-User-stevenharyanto), released on 2023-10-29.
=head1 DESCRIPTION
This list is generated by scraping CPANRatings (cpanratings.perl.org) user page.
This list is generated by scraping CPANRatings (cpanratings.perl.org) user page.
=head1 ACME::CPANMODULES ENTRIES
=over
=item L<Log::Any>
Author: L<PREACTION|https://metacpan.org/author/PREACTION>
(REMOVED)
=item L<Process::Status>
Author: L<RJBS|https://metacpan.org/author/RJBS>
Provides a thin/lightweight OO interface for $?, much like what Time::Piece does for localtime()/gmtime() or File::Stat for stat(). Of course, Real(TM) programmers shift and fiddle bits by themselves, but for the rest of us this module is a nice conv...
=item L<Archive::Any>
Author: L<OALDERS|https://metacpan.org/author/OALDERS>
Nice idea, but the API needs to richer to be more useful (otherwise one will still need to go to individual Archive::Tar, Archive::Zip, etc). Currently the API provided are: listing files and extracting all files. We can't: create archive, add more f...
Rating: 8/10
=item L<Devel::Confess>
Author: L<HAARG|https://metacpan.org/author/HAARG>
Very nifty, it's like Carp::Always but with much more options/features (so you don't need a separate Carp::Always::Color, Carp::Always::Dump, and so on).
=item L<SQL::Statement>
lib/Acme/CPANModules/Import/CPANRatings/User/stevenharyanto.pm view on Meta::CPAN
=item L<App::DBBrowser>
Author: L<KUERBIS|https://metacpan.org/author/KUERBIS>
A nice, minimalistic, terminal-based user interface for browsing your database and tables. Might be useful for simple cases.
<br><br>It would be I<much> more useful if usernames/passwords, queries, and other settings can be saved in a config/session file.
<br>
=item L<Locale::Maketext>
Author: L<TODDR|https://metacpan.org/author/TODDR>
Users might want to check out this article on why one should perhaps use Locale::TextDomain instead of Locale::Maketext: <a href="http://www.perladvent.org/2013/2013-12-09.html" rel="nofollow">www.perladvent.org/2013/2013-12-09.html</a>
=item L<Curses::Toolkit>
Nice effort, but one might also want to look at Tickit, which is not curses-based and looks more promising. Being based on Curses, this module still suffers from the many bugs and limitations of curses. The lack of Shift-Tab support, for one.
<br><br>See also: <a href="http://www.perlmonks.org/?node_id=1059926" rel="nofollow">www.perlmonks.org/?node_id=1059926</a>
<br><br>As I explore doing TUI more, I will update the reviews.
<br>
=item L<Moo::Lax>
Author: L<DAMS|https://metacpan.org/author/DAMS>
Great idea! I've been bitten and annoyed by strictures on more than one occasion. It has its uses, but users should have a choice on how to react to warnings.
<br>
=item L<App::YTDL>
This module is based on WWW::YouTube::Download but its documentation does not yet explain how it differs from WWW::YouTube::Download. From what I see at a glance, App::YTDL supports downloading a video from a playlist and setting download speed limit...
<br>
=item L<Data::CompactDump>
Author: L<MILSO|https://metacpan.org/author/MILSO>
At the current form, simply too simplistic to be an alternative to Data::Dump or Data::Dumper. No support for blessed refs, filehandle/globs, circular references, and so on. Changes numbers to stringy numbers or vice versa.
<br><br>Currently also contains some bugs like for -1 (changes it to string), "\" (produces invalid dump, does not handle backslash yet currently),
<br><br>And Data::Dump's dump of {} and [] are currently more compact ;-)
<br><br>Need to be improved significantly first. But keep up the effort.
=item L<P>
Author: L<LAWALSH|https://metacpan.org/author/LAWALSH>
I personally don't mind the namespace choice. There are other single-letter CPAN modules too like B, L, U, V. If you have a beef with regard to namespace, don't single out P and perhaps downvote the other modules too.
<br><br>Having said that, I would like to comment on the design and implementation of this module.
<br><br>1) The choice of Unicode character U+2204 as representation of undef. Unless one does something like 'binmode STDOUT, ":utf8"', with 'say P undef' I am just trading one warning ("Use of uninitialized value") with another (...
<br><br>2) P loads utf8 by default. For ultra-lightweight cases, this is sometimes not desirable. There is currently no way to turn this off.
<br><br>3) The arbitrary choice of three levels deep when printing references. This can be customized but with an unusual syntax. But again, the arbitrary choice of three.
<br><br>4) The "complex" rules of newline printing. p() is like puts, it can optionally add a newline. But unlike puts, the doc says it can also remove newlines. The behavior can also change if the string to be printed ends with 0x83.
<br><br>I might use P for a sprintf/printf replacement, but for debugging values, I'd prefer something "dumber" like Data::Dump::Color (or Data::Printer, if that's your thing).
=item L<Xporter>
Author: L<LAWALSH|https://metacpan.org/author/LAWALSH>
A couple of comments. First, if you want to import the default exports I<as well as> some additional others, you can use Exporter's feature (the :DEFAULT tag):
<br><br>use SomeModule qw(:DEFAULT a b c);
<br><br>or you can also "use" twice:
<br><br>use SomeModule; # imports default exports
<br><br>use SomeModule qw(a b c); # import a, b, c
<br><br>Second, if you use Xporter, your module will behave unlike most CPAN modules out there, because a majority of modules use Exporter. When people see this Perl code:
<br><br>use SomeModule qw(a b c);
<br><br>normally they will expect only a, b, and c are exported. If SomeModule uses Xporter, it will also by default export the default exports.
<br><br>Basically Xporter is just Exporter with a different default (not arguably better or more user-friendly). For the sake of minimizing surprise to my users, I would avoid the use of Xporter.
<br><br>UPDATE 2014-01-24: some edits. I appreciate the effort of the author to defend her module, though I am not convinced by her arguments.
=item L<Dist::Zilla::Shell>
Author: L<DOLMEN|https://metacpan.org/author/DOLMEN>
Nice tool that lets you type dzil commands like 'build', 'test', etc while sending all the other unknown commands like 'ls -l', 'man Foo' to the underlying shell. Also lets you avoid multiple startup overhead of dzil :-)
=item L<CPANPLUS::Shell::Curses>
Author: L<MARCUS|https://metacpan.org/author/MARCUS>
Unmaintained. Installs but no longer runs.
Rating: 2/10
=item L<Task::Mechanistic>
If you peek into its Makefile.PL, you'll see a seemingly random/heterogenous collection of modules to install (instead of just WWW::Mechanize). This is probably a Task::BeLike::$AUTHOR in disguise.
<br><br>
=item L<Sereal>
Author: L<YVES|https://metacpan.org/author/YVES>
So far the best of the bunch.
<br><br>FAST: much faster than Storable, roughly the same speed as (sometimes slightly faster than) Data::Clone for cloning.
<br><br>FEATUREFUL: Can handle circular references, Regexp objects (trips out-of-the-box Storable), JSON::{PP,XS}::Boolean objects (trips Data::Clone).
<br><br>COMPACT: definitely more compact (up to several times) than Storable.
<br><br>I'm sold. What more do you want? Le Storable est mort, vive le Sereal!
=item L<Test::Tester>
Author: L<EXODIST|https://metacpan.org/author/EXODIST>
If you write test functions, you need this. It's like the "Test::More" for "Test::More". However, it currently does not work out of the box with subtests (submitted as wishlist to RT).
<br><br>PS: Thanks to Toby Inkster for pointing this module out.
<br><br>
lib/Acme/CPANModules/Import/CPANRatings/User/stevenharyanto.pm view on Meta::CPAN
I use Markdown::Pod for my module Perinci::To::POD.
<br><br>This module does not output proper POD for many (not so) edge cases, like:
<br><br>C<>> and the likes are not yet escaped, producing C<>> when it should have been C<< > >> or C<E<gt>>.
<br><br>Ordered list numbering does not yet work, e.g. "2. ...\n3. ...\n" produces "=item 1. ... =item 1. ..."
<br><br>Ordered list with item numbered other than 1 does not work (see above). This should be supported in POD because POD allows us to write the bullets/numbers for each item.
<br><br>Inline markup is not smart enough to differentiate word_with_underscore. So "foo_bar and foo_baz" becomes "fooI<bar and foo>baz".
<br><br>Plus it segfaults sometimes (might be my perl though).
Rating: 4/10
=item L<Lingua::Metadata>
Author: L<MAJLIS|https://metacpan.org/author/MAJLIS>
As previous reviewer noted, this module is actually just a front-end to the author's web service. Plus license is specifically BSD (which allows this module to be included in closed source projects), this is rather ironic to me.
<br>
=item L<Finance::Currency::Convert::WebserviceX>
Author: L<CLACO|https://metacpan.org/author/CLACO>
Simple, no-fuss interface, recommended. As mentioned in the doc, the alternatives have some downsides: Finance::Currency::Convert::Yahoo is based on web scraping while ::XE has usage limits.
<br>
=item L<Carp::Always::Color>
Author: L<DOY|https://metacpan.org/author/DOY>
Like Carp::Always? Want something better? Here it is.
<br>
=item L<CHI>
Author: L<ASB|https://metacpan.org/author/ASB>
The DBI of caching. Stop reinventing your caching framework and just use this.
<br><br>UPDATE 2013-01-16: unfortunately, the use of Moose reduces the usefulness of CHI for command-line scripts (0.2s/146 files/53k lines startup overhead just to initialize a File cache). So 4 stars instead of 5. Let's hope the author migrates to ...
<br>
Rating: 8/10
=item L<Monkey::Patch>
Author: L<FRODWITH|https://metacpan.org/author/FRODWITH>
Compared to several other monkey-patching modules (like Sub::Monkey or Class::Monkey) I prefer this one because the interface is simplest and the documentation is the most straightforward. Plus it can do stacked patching and unordered restore, which ...
<br><br>
=item L<Log::AutoDump>
Author: L<CAGAO|https://metacpan.org/author/CAGAO>
This module is simple and to the point. Unfortunately, if you're a user of Log4perl or other logging framework, you'll have to switch just for a single feature (autodumping).
<br><br>An alternative is to use Log::Any, which also features autodumping (via $log->debugf("%s", $complex), $log->warnf(), and friends), while still allowing you to use Log4perl and other frameworks supported by Log::Any.
<br><br>
=item L<List::Pairwise>
Author: L<TDRUGEON|https://metacpan.org/author/TDRUGEON>
Two nice and possibly very useful functions. But IMO the names 'mapp' and 'grepp' are two similar to 'map' and 'grep', making it prone to typos and misreading. Perhaps consider 'map2' and 'grep2'?
=item L<Log::Log4perl::Appender::File::FixedSize>
Author: L<HOREA|https://metacpan.org/author/HOREA>
Module name should perhaps be Log::Log4perl::Appender::File::RoundRobin to make it clearer that the backend is File::RoundRobin.
<br>
=item L<Any::Mo>
Why exclude Moo?
<br><br>Also the issue with any Any::* (or Any::*) modules is that there should be a mechanism (preferably a common one) to adjust the ordering. Sometimes I prefer Moose first, for full capability or compatibility or whatever. Sometimes I prefer Mous...
<br>
=item L<PerlX::Perform>
Author: L<TOBYINK|https://metacpan.org/author/TOBYINK>
I personally don't see much value of this syntactic sugar since Perl already allows us to express clearly. Pick one:
<br><br>for ($foo) { say $_ if defined }
<br><br>for (grep {defined} $foo) { say $_ }
<br><br>do { say $_ if defined } for $foo
<br><br>say $_ for grep {defined} $foo
<br><br>And save yourself from having to remember whether we should add a comma or not before "wherever".
<br>
=item L<TOBYINK::PerlX::A>
I have nothing against bundles like this, but beware that adding 'use TOBYINK::PerlX::A' will cause Perl to load 460 files and compile +- 160k lines (takes 1s on my Core i5 machine and 8s on my Atom netbook).
=item L<WWW::Google::Images>
Just adding a note that this module is unmaintained (as expressed by the author) and has stopped working for some time. If you are looking for alternatives, try REST::Google (which includes REST::Google::Search::Images). The latter has been working O...
=item L<Acme::Damn>
Author: L<IBB|https://metacpan.org/author/IBB>
5 stars for cute metaphor (there's also Acme::Holy by the same author, but that is just another implementation of Scalar::Util's blessed()) and for prompt support from the author.
<br><br>I'm sure there exists a real use case to move this out of Acme::, however obscure that might be. Can't come up with any right now, all I can think of is reblessing, which can be handled with bless() from the start.
<br><br>UPDATE 2013-09-11: I found a real use-case for it! Cleaning up data to be sent to JSON. BTW, Data::Structure::Util also has an unbless() function, but Acme::Damn is smaller and faster. Data::Structure::Util also currently doesn't build on Win...
<br>
=item L<WWW::Parallels::Agent>
( run in 2.258 seconds using v1.01-cache-2.11-cpan-d7f47b0818f )