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

<br>
find(sub { ... }, &quot;some.tar.gz&quot;);
<br><br>instead of the multiline, tedious setup just to search a file.
<br>


=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), &quot;\&quot; (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, &quot;:utf8&quot;', with 'say P undef' I am just trading one warning (&quot;Use of uninitialized value&quot;) 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 &quot;complex&quot; 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 &quot;dumber&quot; 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 &quot;use&quot; 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 &quot;Test::More&quot; for &quot;Test::More&quot;. However, it currently does not work out of the box with subtests (submitted as wishlist to RT).

lib/Acme/CPANModules/Import/CPANRatings/User/stevenharyanto.pm  view on Meta::CPAN



=item L<Module::Quote>

Author: L<TOBYINK|https://metacpan.org/author/TOBYINK>

Wouldn't a function like load_module(&quot;Math::Module&quot;)-&gt;new(42) be more obvious? Is there a specific goal for using custom quote operator (which requires Devel::Declare, and thus a C compiler to build)?
<br>


=item L<Module::Hash>

Author: L<TOBYINK|https://metacpan.org/author/TOBYINK>

Wouldn't a function like load_module(&quot;Math::Module&quot;)-&gt;new(42) be more obvious? Is there a specific goal for using a tied hash (since there is already %INC)?


=item L<Promises>

Author: L<YANICK|https://metacpan.org/author/YANICK>

5-star for its documentation.
<br>


=item L<Lingua::ITA::Numbers>

Author: L<PETAMEM|https://metacpan.org/author/PETAMEM>

Does the author care to explain the sudden influx of Lingua::&lt;3-letter-code&gt;:: modules (which look like mostly just repackaging of their corresponding Lingua::&lt;2-letter-code&gt;:: modules with no mention of purpose in the PODs)? The original...
<br><br>No Changes file. Versioning synchronized for all 3-letter modules with no indication of what version of the 2-letter-code module is used. For example, Lingua::ITA::Numbers' doc still says &quot;decimals don't work properly&quot;, while Lingua...


=item L<HTTP::Headers::Patch::DontUseStorable>

Author: L<PERLANCAR|https://metacpan.org/author/PERLANCAR>

@zaxon: I'm not sure if it's a bug with HTTP::Headers, more like a workaround for Storable. See the FAQ in the updated v0.03 for more details.
<br>


=item L<Storable>

Author: L<NWCLARK|https://metacpan.org/author/NWCLARK>

Balancing previous glowing reviews. Storable has it faults, for example historically its track record for file format backwards compatibility is poor, making programs fail when loading Storable files after the module is upgraded.
<br><br>Also, more importantly, add builtin support for Regexp object already! It's almost 2013, Regexp object has been around for, what, more than a decade? I can understand not supporting serializing filehandle or coderef, but Regexp object?


Rating: 2/10

=item L<WWW::YouTube::Download>

Author: L<OALDERS|https://metacpan.org/author/OALDERS>

Works for me too ATM. I've tried several command-line scripts (most of them Python-based, like youtube-dl, tubenick, etc). Sometimes they work, sometimes they broke. It's the nature of this kind of script. The quality comes from persistence. This mod...


=item L<Number::Zero>

From the module's POD: &quot;The number zero and undef are difficult to determine in Perl.&quot;
<br><br>Are they?
<br><br>say !defined($data) ? &quot;undef&quot; : &quot;not undef&quot;;
<br><br>say defined($data) &amp;&amp; $data==0 ? &quot;zero&quot; : &quot;not zero&quot;; # yes, warn if non-numeric
<br><br>use Scalar::Util 'looks_like_number';
<br>
say looks_like_number($data) &amp;&amp; $data==0 ? &quot;zero&quot; : &quot;not zero&quot;;
<br><br>Though I understand the need for a convenient &quot;is_zero&quot; function if you need to test for zero in a program a lot.


=item L<Syntax::SourceHighlight>

Author: L<MATLIB|https://metacpan.org/author/MATLIB>

IMO, currently the only usable (read: non-crap) code syntax highlighting library on CPAN. Cons: you'll need to install GNU Source-highlight (and its development library/header) which pulls over 100MB of packages on my Debian.
<br>


Rating: 8/10

=item L<Syntax::Highlight::Engine::Kate>

Author: L<MANWAR|https://metacpan.org/author/MANWAR>

Highlighter engine doesn't seem updated (for example, defined-or is not yet interpreted correctly by this module but already correctly by Kate itself). Does not provide default theme (must specify all colors). Seem to be very slow (takes 1.5s for a 1...
<br><br>


Rating: 2/10

=item L<Syntax::Highlight::JSON>

Author: L<MART|https://metacpan.org/author/MART>

No documentation. Combines formatting and syntax-highlighting, so you cannot preserve original formatting. Only outputs to HTML and no default &quot;theme&quot; (CSS) provided.
<br>


Rating: 2/10

=item L<Syntax::Highlight::Engine::Simple>

Author: L<AKHUETTEL|https://metacpan.org/author/AKHUETTEL>

Output looks decent. However, it currently only formats to HTML/CSS (no ANSI, LaTeX, etc). Also, it needs more languages support.
<br>


Rating: 6/10

=item L<Syntax::Highlight::Universal>

Author: L<PALANT|https://metacpan.org/author/PALANT>

Only targets (X)HTML (i.e. no alternative output like ANSI or LaTeX). Supposedly slow. But it doesn't matter because code no longer builds (last updated in 2005).


Rating: 2/10

=item L<text::highlight>

Outdated (no longer updated), poor capability (even for some simple Perl code, the output is atrocious), few languages supported. A far cry from Pygments or coderay.

lib/Acme/CPANModules/Import/CPANRatings/User/stevenharyanto.pm  view on Meta::CPAN

=item L<HTML::Escape>

Author: L<TOKUHIROM|https://metacpan.org/author/TOKUHIROM>

Still a bit slower than PHP's htmlspecialchars(), but in the same ballpark. An order of magnitude faster than HTML::Entities. Does not provide unescaping, but it's okay since escaping is the majority of use cases.


=item L<Clone::Fast>

Casual benchmarking on my PC shows that Data::Clone is up to twice faster than this.


Rating: 6/10

=item L<Perl::Strip>

Author: L<MLEHMANN|https://metacpan.org/author/MLEHMANN>

Balancing previous unhelpful review. Slowish (can't complain, PPI-based) but works and comes with a command-line utility.
<br><br>Beware though that the command-line utility modifies file in place without backup, without warning, and without option to create backup.
<br>


Rating: 8/10

=item L<Perl::Squish>

Author: L<ADAMK|https://metacpan.org/author/ADAMK>

Have failed to build for 1.5 years (reported bug RT#66958 left untouched, users need to install Module::Install first). No usage documentation.
<br><br>


Rating: 2/10

=item L<perlsecret>

Author: L<BOOK|https://metacpan.org/author/BOOK>

Nice collection of perl shortcuts. Today I forgot about the name for &quot;x!!&quot; and nicely found it in this module.


=item L<PerlX::ArraySkip>

Author: L<TOBYINK|https://metacpan.org/author/TOBYINK>

Cute idea as always, though I'd rather use comments rather than taking multiple sub calls hit.


=item L<App::perlfind>

Author: L<MARCEL|https://metacpan.org/author/MARCEL>

A timesaver. Using it on a daily basis (aliased to &quot;pod&quot;). Thanks, Marcel!


=item L<PerlX::Maybe>

Author: L<TOBYINK|https://metacpan.org/author/TOBYINK>

A nice syntax addition for avoiding passing or writing a bunch of undefs. More convenient to write than using ternary operator or grep. I'm beginning to adore syntax modules like this (as long as it adds negligible overhead).
<br><br>


=item L<File::Path::Tiny>

Author: L<DMUEY|https://metacpan.org/author/DMUEY>

I like the concept, but do not like the overly short names mk() and rm(). Instead of mk(), how about mkdir_p() or mkpath() like in File::Path. Instead of rm(), how about rm_r() or rmtree() like in File::Path.
<br>


Rating: 6/10

=item L<Exporter::Lite>

Author: L<NEILB|https://metacpan.org/author/NEILB>

2011-10-04: I am now using Exporter::Lite exclusively instead of Exporter. Got bit once by Exporter when using for an OO module due to clash of assigning to @ISA vs 'use base'. +1 for putting it into core.
<br><br>EDIT 2012-08-08: Nowadays I revert back to Exporter most of the time because Exporter is core. To avoid @ISA issue, one simply needs to import import() instead setting @ISA:
<br><br>use Exporter qw(import);
<br>


=item L<YAML::Syck>

Author: L<TODDR|https://metacpan.org/author/TODDR>

To be fair, in my experience YAML::Syck is not &quot;much more buggy&quot; than ::XS. It even sometimes works with my YAML data while ::XS crashes. Go figure.


=item L<Devel::FindPerl>

Author: L<LEONT|https://metacpan.org/author/LEONT>

IMO the module should explain in the POD, in what cases using $^X is not enough or how it is different from Probe::Perl.
<br><br>Anyway, quoting CPAN Testers' CPAN Authors FAQ, $^X is not enough when:
<br>
1) perl was executed with a relative path and the script has chdir()ed; 2) because $^X originates in C's argv[0] (in the main() function) it is possible for the calling program to exec() in such a way that argv[0] isn't the path to the interpreter; 3...


=item L<Taint::Util>

Author: L<AVAR|https://metacpan.org/author/AVAR>

IMO this is the best module to deal with tainting. BTW there are several other modules like Taint (only provides taint + tainted, no untaint), Untaint (only provides untaint with awkward interface, like $v = untaint(qr/.../, $v)), Scalar::Util (only ...


=item L<Markdown::Pod>

Author: L<KEEDI|https://metacpan.org/author/KEEDI>

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<&gt;> and the likes are not yet escaped, producing C&lt;&gt;&gt; when it should have been C&lt;&lt; &gt; &gt;&gt; or C&lt;E&lt;gt&gt;&gt;.
<br><br>Ordered list numbering does not yet work, e.g. &quot;2. ...\n3. ...\n&quot; produces &quot;=item 1. ... =item 1. ...&quot;
<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 &quot;foo_bar and foo_baz&quot; becomes &quot;fooI&lt;bar and foo&gt;baz&quot;.
<br><br>Plus it segfaults sometimes (might be my perl though).




( run in 0.848 second using v1.01-cache-2.11-cpan-d80b1682f3f )